docs(build): reproducible development environments
Is your feature request related to a problem? Please describe. Cacti is hard to setup despite a well-documented BUILD.md
Describe the solution you'd like Creating one or more reproducible build supporting files. A good candidate is NixOS.
Describe alternatives you've considered Every new contributor needs to read BUILD.md and fix problems in the setup. Hundreds of hours were probably already lost in the process.
@RafaelAPB Thank you for reporting this! I renamed the issue slightly to be more specific that we are talking about development environment setup, not the build itself.
What I mean is that this issue could be considered done once there are documented steps for easily reproducing a working development environment for new contributors regardless of that development environment was actually able to provide reproducible builds or not. E.g., in the scope of this we are focused on enabling the development flow to be smooth and have an easy on-ramp.
Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code.
Source: https://reproducible-builds.org/
done once there are documented steps for easily reproducing a working development environment for new contributors regardless of that development environment
Agree on this, different people have different needs regarding runtime enrionment (and they change often as well), so I'd not use any specific tooling (e.g. I used Vagrant https://github.com/outSH/cactus/blob/vagrant/Vagrantfile which worked until it didn't due to IT policy). I'd like to keep only the following sections (because right now the file is quite large and overwhelming for newcommers):
- All commands needed to setup fresh Ubuntu 22
- How to setup WSL with docker/rancher desktop as container image
- How to setup devcontainers (since we need it anyway) / how to use codespaces, some links
- (optional) How to setup on mac
I'm willing to work on first two items if needed :)
@petermetz @outSH thank you both. Let us work on this on the next few weeks. @outSH would appreciate help on the two points you mentioned. @AndreAugusto11 put together a script that does the first point: https://gist.github.com/RafaelAPB/80d49dd6afff1be797ac3c42791ae318