Knowledgebase

Build Systems and Compilation Print

  • programminglanguages, programming, performance, caching, troubleshooting, guide, howto, solution
  • 0

Producing runnable output.

WHAT A BUILD DOES

Turns source into something executable or deployable.

WHAT IT MAY INVOLVE

Compilation Dependency resolution Code generation Asset processing Packaging Running tests

WHAT TO AIM FOR

A single command producing the complete output.

WHY

A build requiring undocumented manual steps cannot be reproduced.

WHAT REPRODUCIBLE MEANS

The same source producing the same output, anywhere.

WHAT THREATENS IT

Unpinned dependencies Machine-specific paths Timestamps embedded in output Undeclared tool versions

WHAT TO PIN

Everything: language version, dependency versions, tool versions.

WHAT TO KEEP FAST

The build.

WHY

Slow builds are run less often, and problems are found later.

WHAT TO CACHE

Dependencies and intermediate results, where the tooling supports it.

WHAT TO SEPARATE

Development builds, optimised for speed Release builds, optimised for output

WHAT TO VERIFY

That the release build actually works, since it differs from the development one.

WHAT TO DOCUMENT

How to build from nothing.


Was this answer helpful?
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot