Skip to main content
25 votes

Why should makefiles have an "install" target?

Many build scripts or Makefiles have an installation target because they were created before package managers existed, and because even today lots of systems don't have package managers. Plus, there ...
Jörg W Mittag's user avatar
8 votes

Splitting large C++ project

You mention static libraries in your question. I'm guessing (perhaps wrongly) that you code a program for Linux. You should use shared libraries when possible. Then you need much less linking time (...
Basile Starynkevitch's user avatar
7 votes
Accepted

Is there evidence to suggest that email notifications of build-breakage from a ci-server are industry standard?

Yes, it's an industry standard to notify not everyone, but only those whose changes are in the build when the build breaks. The reason is that in any organization of reasonable size you have a ...
Karl Bielefeldt's user avatar
7 votes
Accepted

Best practice for storing third party tools

It makes fully sense to store and keep installers of any third party tools you are using in your development process (not just your build process) in a location under your control. It does not matter ...
Doc Brown's user avatar
  • 214k
6 votes

Is it good practice to check in updated assemblyinfo.cs files after build

One of the big risks with letting your build server commit changes to your version control is that it is very easy to create an unintended feedback loop. It is often desirable that a commit to (trunk ...
Bart van Ingen Schenau's user avatar
6 votes
Accepted

What is the current definition of continuous integration?

There is no singular current definition of continuous integration. In Extreme Programming Explained, 2nd edition, Kent Beck wrote: Integrate and build a complete product. If the goal is to burn a CD, ...
Thomas Owens's user avatar
  • 84.2k
5 votes

Why should makefiles have an "install" target?

A makefile might have no install target, and more importantly, you can have programs which are not even supposed to be installable (e.g. because they should run from their build directory, or because ...
Basile Starynkevitch's user avatar
5 votes

Is there evidence to suggest that email notifications of build-breakage from a ci-server are industry standard?

It is beside the point. Industry standard is a bit of a problematic term, since it does not necessarily indicate that the practice is good. The consultant probably just use this term because it is a ...
JacquesB's user avatar
  • 61k
5 votes
Accepted

For which problems are dependency exclusions sensible solutions?

There are two problems that it solves, and both have work-arounds, but neither work-around is always available to real-world projects. But first, for those who aren't familiar with the Maven ...
kdgregory's user avatar
  • 5,270
4 votes
Accepted

Why are unity builds faster given modern compilers?

Most C and C++ header files (notably system headers, or those of large C++ libraries like Qt) have #include guards or the non-standard #pragma once. Practically speaking, standard C++ headers like <...
Basile Starynkevitch's user avatar
4 votes
Accepted

How should Rails be set up with an SPA client like Aurelia?

The technical benefits of multi-repo are fairly minor: smaller repositories, faster clone times, possibly improved performance on CI, but nothing that should make a real impact on anthropic scales. ...
lotyrin's user avatar
  • 56
4 votes
Accepted

Patch management in a multi repository environment

For the similar scenario we used a Quilt tool - patch set management utility: https://wiki.debian.org/UsingQuilt Basically you have a patches directory in the root of your project which contains ...
ph4r05's user avatar
  • 156
4 votes

"Nightly" a good place for experimental features?

Depending on the length and complexity of the build process, and how many of these "experimental" features actually exist at one time, I would suggest to use feature branches for each of them, with ...
Dan1701's user avatar
  • 3,108
4 votes
Accepted

How is a reproducible build guaranteed with version ranges in NPM?

It's possible by having two distinct lists of dependencies, one with ranges, and one with specific versions, known as a lockfile. Version ranges are helpful for libraries so that bug patches in your ...
curiousdannii's user avatar
4 votes

When to increment build number?

In a typical setup, build numbers are used when you have a central server that builds your software (often as part of a Continuous Integration pipeline). Those builds are then done periodically and/or ...
Bart van Ingen Schenau's user avatar
4 votes
Accepted

When to increment build number?

So do we need to increment the build number when the source code changes? No, you need to increment it when you build the application. Build numbers increment per build. That's why it's called a ...
Flater's user avatar
  • 56.3k
4 votes

Why are build tools, package repositories and programming languages, all so strongly coupled?

Because package maintenance is one of those tasks that most people think is easy - just administrate a bunch of version numbers and associated binary content - but really, really isn't. To properly ...
Kilian Foth's user avatar
3 votes
Accepted

How to organize the build system of a project as it starts including multiple languages across multiple operating systems and compilers?

Build Systems are Complex Build systems are by necessity quite complex and internally arcane. The important part is, like with your music player, how it simplifies that complexity to provide some ...
Kain0_0's user avatar
  • 16.3k
3 votes

Why should makefiles have an "install" target?

There are several reasons which come to mind. Many package creating software - the Debian build system for example, and IIRC rpm as well - already expect from the building script to "install" the ...
max630's user avatar
  • 2,585
3 votes

Are there any build systems that incorporate relative expected task times into the schedule?

Microsoft Visual Studio Team System (formerly TFS) does consider build action times and parallel builds; it takes the data from previous build history; and while I don't believe you can get the ...
Bruno Guardia's user avatar
3 votes

Licensing of source code when dependencies are not included

Is this a valid way of licensing the repository? No. Your software, being designed to use the other libraries, is still a derivative work whether you like it or not, regardless of whatever build ...
whatsisname's user avatar
  • 27.7k
3 votes

For which problems are dependency exclusions sensible solutions?

It solves the problem of third party libraries that set versions of common dependencies more narrowly than necessary. For example, they may actually work with anything 2.0 or above, but they set ...
Karl Bielefeldt's user avatar
3 votes
Accepted

What is the right way to create a build system?

Disclaimer: I know practically nothing about CMake; therefore, my answer would be about the general build systems instead of CMake specifically. The goal of a build is to take the source code and to ...
Arseni Mourzenko's user avatar
3 votes

How is a reproducible build guaranteed with version ranges in NPM?

The problem now is I find it hard to rectify the use of version ranges with the idea of having reproducible builds. It is obviously impossible. how it is ever possible to have reproducible builds ...
Jörg W Mittag's user avatar
3 votes

Can a build system be used effectively as a unit test runner?

Sbt has testQuick that only runs tests that failed before, weren't run before, or that a dependency was recompiled. It doesn't require any manual specifying of rules. I imagine other build systems ...
Karl Bielefeldt's user avatar
3 votes

Can a build system be used effectively as a unit test runner?

It is not trivial to provide «quality of life» features such as those mentioned above It is absolutely trivial. Each individual compiled test is built with, or linked against, some unit testing ...
Useless's user avatar
  • 12.7k
3 votes

Build systems/development environments allowing alternate/backup dependencies

I don't think this is idea is ever going to work. The biggest problem here is that you'd have to spend time creating tons of alternate implementations that may never get used. You are making them in ...
Becuzz's user avatar
  • 4,845
3 votes

How to Validate Output Binary During/After Compilation on Platform without ECC Memory

I am curious about, for this aspect, what developers usually do for this problem. They consider it so incredibly unlikely that they don't waste any time thinking about it.
Jörg W Mittag's user avatar

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