CI dependency archive (ci/deps)
NEURON CI sometimes needs fixed third-party files (.deb packages, source
tarballs, installers). Fetching those from Launchpad, GNU mirrors, SourceForge,
and similar hosts can fail intermittently and block PRs or nightlies.
The ci/deps catalog pins those downloads. Managed binaries are stored as
assets on a dedicated GitHub repository (not in the nrn git tree, and not
mixed with NEURON product releases):
neuronsimulator/nrn-ci-deps →
Releases → tag
such as ci-deps-v1.
Operator manual
Full workflow and upgrade steps:
ci/deps/README.md
ci/deps/MANIFEST.yml — catalog (text only in git)
Concepts
Field |
Meaning |
|---|---|
|
We host the pin on nrn-ci-deps Releases. CI uses |
|
Catalog only; not yet switched off upstream. |
managed means we manage the pin, not “from the original software vendor.”
Common commands
Run from the repository root:
# List catalog entries
ci/deps/fetch.sh --list
# Download a managed asset from nrn-ci-deps (default for install helpers)
NRN_CI_DEPS_SOURCE=release ci/deps/fetch.sh mpich-noble-4.2.0-5.1 /tmp/out
# arm64 pin (ubuntu-24.04-arm wheel tests):
# NRN_CI_DEPS_SOURCE=release ci/deps/fetch.sh mpich-noble-4.2.0-5.1-arm64 /tmp/out
# Ubuntu 24.04 wheel tests: install pinned MPICH from the Release
# (selects amd64 or arm64 debs via dpkg --print-architecture)
ci/deps/install_mpich_noble.sh
# Compare pins to upstream (awareness only; does not auto-upgrade)
ci/deps/check-upstream.sh mpich-noble-4.2.0-5.1
# ci/deps/check-upstream.sh mpich-noble-4.2.0-5.1-arm64
Promote a new pin (files stay local/transient; then upload to nrn-ci-deps):
mkdir -p ci/deps/assets
# place files matching MANIFEST file: names, or fetch with SOURCE=upstream
ci/deps/publish.sh --tag ci-deps-v1
rm -f ci/deps/assets/* # optional; assets/ is gitignored
What is managed today
On nrn-ci-deps release ci-deps-v1:
Ubuntu 24.04 MPICH packages for wheel tests (LP#2072338), amd64 and arm64
GNU ncurses / readline sources for Mac static readline and the manylinux Dockerfile
automake 1.16.5 for the Ubuntu MUSIC job in
neuron-ci
Other MANIFEST rows stay managed: false until promoted the same way.
Adding the next download blocker
Download the failing URL once; record
sha256.Update
MANIFEST.yml; setmanaged: truewhen the Release asset exists on nrn-ci-deps.publish.shto theci-deps-vNrelease (default repo isneuronsimulator/nrn-ci-deps).Wire the pipeline to
fetch.sh/ an install helper.PR text only on nrn (MANIFEST, scripts, docs) — do not commit large blobs under
ci/deps/assets/.
Do not auto-upgrade pins: run check-upstream.sh when you want to know if
upstream changed, then bump deliberately.