scripts/update: relax note on parallelism now that nixpkgs-bootstrap updates are atomic

This commit is contained in:
2025-05-13 04:31:34 +00:00
parent f8fb4b9ef4
commit 0e198ad482

View File

@@ -1,14 +1,10 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p findutils -p git -p nix-update
# each update job has to do an entire nix eval, which can be memory intensive; be careful when tuning this
# N.B.: not all update jobs are actually independent! naive parallelism like this *will* result in
# failed/partial updates, e.g.:
# 1. `sane.nixpkgs-bootstrap.master` is being updated: this breaks eval of _all_ other attributes.
# 2. `sane.otherPackage` is being updated: its updateScript fails to eval `sane.otherPackage.src`,
# however this would eval if job 1 and 2 were serialized.
#
# TODO: perform parallel updates in some way that the update scripts don't interfere with eachother.
# each update job has to do an entire nix eval, which can be memory intensive; be careful when tuning this.
# N.B.: not all update jobs are atomic; parallel updates _may_ cause failed updates if eval of some package `pkgFoo`
# depends on the `src` field of some library `libBar`, and the two are updated simultaneously.
# this typically only happens when `libBar` is nix code, and `import`'d.
PARALLELISM=8
SELF_PATH=$PWD/$0