136
votes
Accepted
What is the purpose of a dedicated build machine?
Normally you wouldn't just have a dedicated build machine, but also run a build server on that dedicated machine. A dedicated build machine merely offers the advantage of never blocking the work of a ...
112
votes
Accepted
What are the advantages of build scripts?
Automation.
When you are developing, only in the most simple projects will the default "build" button do everything you need it to do; you may need to create WS out of APIs, generate docs, link with ...
107
votes
What is the purpose of a dedicated build machine?
In addition to Traubenfuchs' answer, you have hinted at another reason for a build machine in your question.
Just because the software builds on your machine, it doesn't mean that it will build on ...
95
votes
Detect manual changes to an autogenerated C header
I think you are approaching this problem from the wrong angle.
Better let the generator place a clear and visible comment at the beginning of the C header file like
// This file is autogenerated, ...
70
votes
What are the benefits of multi-file programming?
There are a lot of technical reasons behind using multiple files when writing large complex systems. All of them are meaningless in the face of the best reason to use multiple files:
Readability.
...
57
votes
Accepted
Why is build.number an "abuse" of semantic versioning?
Your build number won't be reset to 0, when minor and major versions increase, this violates sections 7 and 8 of the specs:
Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards ...
54
votes
What is the purpose of a dedicated build machine?
The main reason for having a dedicated build machine is to get consistent builds regardless of who is doing the build. Developer workstations are rarely (read: never) identical. It's hard to know ...
41
votes
Detect manual changes to an autogenerated C header
Don't commit the generated C header file at all. In fact, delete the current file (thanks @user1936), change the script to call the header file .g.h (thanks @davidbak),
and add it to .gitignore, so ...
38
votes
Accepted
Is directly using Make considered obsolete?
The big difference is that CMake is a cross-platform meta-build system. A single CMake project can produce the usual Unix/Linux makefile, a Visual Studio project for Windows, an XCode project for Mac, ...
34
votes
What are the advantages of build scripts?
Like code, a build script is executed by the computer. Computers are exceptionally good at following a set of instructions. In fact, (outside of self-modifying code), computers will execute the same ...
27
votes
What are the benefits of multi-file programming?
The question falls into same category as why buildings are not build from one piece of rock but a bunch of bricks?
Answer:
easier to navigate than scroll through one huge file
make recompile works ...
26
votes
What exactly is the build number in MAJOR.MINOR.BUILDNUMBER.REVISION
The whole confusion stems from the different semantics that MS uses for "Build number" and especially "Revision". The terms just mean different things.
Most people (myself included) use a semantic ...
21
votes
What are the benefits of multi-file programming?
The other answers are fine, but something they're missing is actual technical limitations.
For example, you can't actually save all of the code for my day-job application in one file - it's bigger ...
20
votes
How can we avoid showing the literal path in the exception's stack trace?
Couple of pointers.
You should never expose stacktrace to users. Thats a security risk. You should also never expose exception messages to users, only for custom exceptions that you know can not ...
19
votes
What is the purpose of a dedicated build machine?
The other answers quite correctly noted that you should automate the build, which means it isn't necessary to walk to another office. However, let me propose a certain number of steps you could take ...
17
votes
Accepted
In-Source Build vs. Out-Of-Source Build
After asking the community here and continuing my search online, I have not been able to find significant engineering justification for using in-source builds. (There are many examples of reasons to ...
17
votes
Detect manual changes to an autogenerated C header
First a disclaimer: I don't think this is a good idea.
But here is one way to do it anyway:
void check_file_time() {
if (strcmp(__TIMESTAMP__, "Sun Feb 16 19:38:35 2020") != 0)
{
asm(...
16
votes
What is the purpose of a dedicated build machine?
... instead of getting an actual machine in our office to use, we're having to share a single machine with several other groups ...
You say that like it's a bad thing.
You now have a common build ...
15
votes
What are the advantages of build scripts?
If all you ever want to do is <compiler> **/*.<extension>, build scripts serve little purpose (though one can argue that if you see a Makefile in the project you know you can build it with ...
14
votes
Is directly using Make considered obsolete?
Is make really outdated?
I don't think so. In the end, make is still powerful enough to provide all the functionality desired, like conditional compilation of changed source and alike. Saying make ...
13
votes
Accepted
Purpose of building file using Make
If your program consists of a only a few files that can be built with a simple command line invoking the compiler, then make may be superfluous. However, in large projects you may have dozens of files ...
13
votes
What are the advantages of build scripts?
Many IDEs simply package up the commands used to build something and then generate a script and call it!
For example, in Visual Studio, you can see the command-line parameters for a C++ compile in ...
13
votes
Accepted
Redundant code sent down the pipe with Micro-frontends
You're absolutely correct that there's a tradeoff involved here: you are trading in some aspects of the user experience to get a better developer experience (which in turn might improve the user ...
10
votes
Accepted
What does it mean to build from source?
If I'm not wrong, to "build" generally means to compile files into machine readable ones and then group them into an executable.
Basically yes, though the term is a lot more general than that. For ...
10
votes
What are the benefits of multi-file programming?
I have been told to write large applications in several different files. They say it will run faster. What makes it run faster?
Also does a multifile application ACTUALLY run faster than a singlefile ...
9
votes
What are the advantages of build scripts?
make
is a lot easier to remember and type than
gcc -o myapp -I/include/this/dir -I/include/here/as/well -I/dont/forget/this/one src/myapp.c src/myapp.h src/things/*.c src/things/*.h
And projects ...
8
votes
Accepted
Why incremental builds in "make" don't use hashing algorithms?
An obvious (and arguably superficial) problem would be that the build system would have to keep record of the hashes of the files that were used for the last build. While this problem could certainly ...
8
votes
Does the Scrum Guide Specify How Often to Release QA/Test Builds?
No it does not. Only thing it states that at end of sprint, Potentially Releasable Product Increment is produced.
And general consensus of "Potentially Releasable" is that it does include it being ...
7
votes
Where do the responsibilities of build tools end and those of CI tools start?
This comment sounds right.
In my opinion, as much of the build code as possible should be in the product's internal build scripts, such as ant's build.xml, maven's pom.xml, etc. This serves 3 ...
7
votes
Is directly using Make considered obsolete?
Once upon a time high level languages were just an idea. People tried to implement compilers. Back then there were severe hardware limitations - there were no graphical tools so "plain text" ended up ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
builds × 175continuous-integration × 32
c++ × 19
version-control × 17
deployment × 12
maven × 12
build-system × 12
java × 10
c × 10
automation × 10
versioning × 8
make × 8
c# × 7
testing × 7
git × 7
development-process × 7
visual-studio × 7
design × 6
release-management × 6
release × 6
cmake × 6
javascript × 5
.net × 5
team-foundation-server × 5
dependency-management × 5