Module versions
PROTEUS pins the version of every submodule it depends on. The pins live in
pyproject.toml
and serve as the single source of truth for which versions are tested and
supported together. proteus doctor checks your
installation against these pins, and
proteus update aligns your
installation to them.
Current pins
Python packages (PyPI)
These modules are installed via pip and pinned with minimum version bounds
in [project] dependencies. Click a badge to view the pinned release.
| Module | Role | Pin | Docs |
|---|---|---|---|
| fwl-janus | 1D convective atmosphere | Docs | |
| fwl-mors | Stellar evolution | Docs | |
| fwl-calliope | Volatile outgassing | Docs | |
| fwl-zephyrus | Atmospheric escape | GitHub | |
| fwl-aragog | Interior thermal evolution | Docs | |
| fwl-zalmoxis | Interior structure | Docs |
Git-pinned modules (non-PyPI)
These modules are installed from source via dedicated setup scripts and pinned
to exact commit SHAs in [tool.proteus.modules]. Click a badge to view the
pinned commit.
| Module | Role | Pin | Docs |
|---|---|---|---|
| AGNI | Radiative-convective atmosphere (Julia) | Docs | |
| SOCRATES | Spectral radiative transfer (Fortran) | Docs | |
| SPIDER | Interior evolution (C, requires PETSc) | Docs |
Optional modules
| Module | Role | Pin | Docs |
|---|---|---|---|
| LovePy | Multi-phase tidal heating (Julia) | GitHub | |
| atmodeller | Alternative outgassing backend (GPL-3.0) | GitHub | |
| VULCAN | Atmospheric chemistry (GPL-3.0) | GitHub | |
| Obliqua | Orbital evolution and tides (Julia) | n/a | GitHub |
How version pinning works
PROTEUS uses two pinning mechanisms depending on the module type:
PyPI packages ([project] dependencies)
Python submodules distributed on PyPI are pinned with minimum version bounds:
[project]
dependencies = [
"fwl-aragog>=26.05.13",
"fwl-janus>=24.11.05",
...
]
When you run pip install -e ".[develop]", pip resolves the latest version
that satisfies these bounds. For editable (development) installs, the local
git checkout takes precedence over the PyPI version on sys.path.
Git modules ([tool.proteus.modules])
Non-PyPI modules (AGNI, SOCRATES, SPIDER) are pinned to exact commit SHAs:
[tool.proteus.modules.agni]
url = "https://github.com/nichollsh/AGNI.git"
ref = "b06a3fed51e0f1610556634d5b5a5e0425428f0e"
The tools/get_*.sh setup scripts read these pins via
tools/_module_pins.py and clone or checkout the pinned commit. CI uses the
same mechanism to guarantee reproducible builds.
Bumping a version
To update a module pin:
- PyPI package: edit the version bound in
[project] dependencies(e.g.fwl-aragog>=26.06.01). - Git module: edit the
reffield in[tool.proteus.modules.<name>]to the new commit SHA.
Both are single-line changes in pyproject.toml. After bumping, run
python tools/generate_version_badges.py to update the badge tables on
this page, then proteus update to apply the new pin locally.
For the full procedure with worked examples (PyPI bump, git-commit bump, and choosing between a commit, tag, or branch), see Updating module pins.
See also: Updating module pins | Diagnose and update | Installation | Model description