Internals
At a very high level, fuel.nix does the following:
- Generate unique "manifests" for each version of each package
every night at 00:00 UTC under the
./manifestsdirectory using a CI action that runs the./scripts/refresh-manifests.shscript. - Provide
packageflake outputs (e.g.forc-0-20-0,fuel-core-0-18-0-nightly-2023-04-29) by collecting, filtering (filters.nix) and patching (patches.nix) all manifests. Also provide package sets for the latest semver releases and nightlies e.g. (fuel-latest,fuel-nightly). - Provide a special set of "milestone" packages
(e.g.
forc-wallet-testnet) and package sets (e.g.fuel-testnet) by finding packages that match the commits specified inmilestones.nix. - Provide
devShells to assist working on the fuel repos by collecting all of the inputs to their associated packages and inheriting their environment variables.
Click on the links above to dive into more details on each step.
Alternatively, for a quick look at adding or updating packages: