Search topics...

How do you permanently archive source code? project? what should be archived? what should be documented? have you ever written any procedures of how to archive or build a project? How about describing how to install software tools and configuring them from scratch on a brand new computer that was pulled out of a box?

0 upvotes
Practice with AISoon

The goal of archiving is a reproducible build: someone (possibly years later) can recreate the exact product from the archive. Best practices:

What to archive:

  • Source code under version control with a tagged release marking the exact revision shipped.
  • Build scripts and toolchain information—compiler/IDE versions, makefiles/build configs, and where practical the actual toolchain installers or a pinned container image.
  • Dependencies / third-party libraries at specific versions, and the BOM (bill of materials) plus schematics/PCB files for the hardware.
  • Binaries/build artifacts that were released (firmware images, etc.) for reference.
  • Configuration, test suites, and any data/assets needed by the build.

What to document:

  • Step-by-step build instructions and the exact environment setup (OS version, tool versions, environment variables, paths).
  • How to flash/deploy and how to run tests; known issues and release notes.
  • Ideally pin everything so the build is deterministic; using a VM/container image is a strong way to preserve the environment.

Fresh-machine setup procedure (bare-metal "out of the box"): A good archive includes a procedure to take a brand-new computer to a working build, listing: which OS and version to install, which development tools/IDEs/compilers and exact versions to install and in what order, how to configure each (license keys, paths, environment variables, plugins), how to obtain the source (repo URL and tag), how to install dependencies, and finally the commands to build, flash, and verify. Writing and periodically testing such a procedure (or automating it via scripts/containers) is what makes an archive genuinely reproducible rather than just stored.