Hot answers tagged

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 ...
user avatar
  • 1,279
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 ...
user avatar
  • 2,542
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 ...
user avatar
  • 8,704
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, ...
user avatar
  • 185k
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. ...
user avatar
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 ...
user avatar
  • 3,192
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 ...
user avatar
  • 22.1k
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 ...
user avatar
  • 501
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, ...
user avatar
  • 27.2k
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 ...
user avatar
  • 1,157
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 ...
user avatar
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 ...
user avatar
  • 2,384
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 ...
user avatar
  • 107k
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 ...
user avatar
  • 651
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 ...
user avatar
  • 2,409
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 ...
user avatar
  • 467
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(...
user avatar
  • 814
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 ...
user avatar
  • 11.6k
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 ...
user avatar
  • 11.9k
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 ...
user avatar
  • 1,314
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 ...
user avatar
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 ...
user avatar
  • 48k
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 ...
user avatar
  • 124k
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 ...
user avatar
  • 27.2k
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 ...
user avatar
  • 9,263
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 ...
user avatar
  • 5,632
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 ...
user avatar
  • 6,868
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 ...
user avatar
  • 35.5k
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 ...
user avatar
  • 4,539
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 ...
user avatar
  • 3,835

Only top scored, non community-wiki answers of a minimum length are eligible