Repository navigation
Releases
Releases · Sydney-Informatics-Hub/shelley
v0.5.0
Changed
- Major refactor of
shelleyto be more modular and less repetitive to support
incoming CVMFS repos - Large and messy
CVMFSModuleBuilderclass replaced with a new set of core classes and functions
for better error handling and reusability - New logic for
buildso artefacts are deleted when a build is cancelled or
fails. This ensuresshelley cleandoesn't leave any stray artefacts. - Version ordering follows the same rules as Bioconda to account for uncommon version
specs (e.g. 0.4.0-dev for dev work, seqtk/r93) - If GitHub cannot be reached, the build stops before writing anything and says so,
e.g. "Couldn't reach GitHub (raw.githubusercontent.com): the request timed out
after 10 s. Try again in a few seconds.", instead of building a module without
the tool's command - Improved CVMFS error handling (e.g. all errors do not raise generic "check if CVMFS is mounted")
- Upgrade python dependencies for
packaging,pytest,pytest-asyncio,mypy
Added
- conda's version-ordering code is vendored in
shelley/_vendor/(BSD-3-Clause,
licence included), because conda cannot be installed as a library dependency.
Removed
- The 0.4.0 command code:
commands/build.py,commands/find.py,commands/search.py,
commands/clean.py,utils/batch.py,utils/cache.pyandbuilder/cvmfs_builder.py.
shelley.CVMFSModuleBuilderis no longer exported;shelley.cli_mainis the only
public name.
Fixed
shelley searchandshelley find -vno longer end in a traceback when output is
piped or run from a script; with no terminal to page on, they print the first page.- CI:
ruffno longer checks the design notes undertmp/, which had made lint fail findversion ordering fixedbuildcorrectly selects latest tool version
v0.4.0
Added
shelley cleanremoves built modules.- Support
buildfor tools with no shpc registry BioShell/#22 - Dependabot opens monthly, grouped PRs into
devfor GitHub Actions anduv.lock
updates; seedocs/how-to/developer-setup.md. - Release workflow: pushing a
vX.Y.Ztag onmainchecks that the versions and
CHANGELOG match, builds and smoke-tests the wheel, and creates the GitHub release
with the wheel and sdist attached. Seedocs/how-to/developer-setup.md. - Monthly data refresh workflow: regenerates
rsec_meta.json.gzand
galaxy_singularity_cache.json.gz, and opens a PR into
devwhen their content changes. Seedocs/how-to/maintain-corpus.md. - Test coverage reporting with
pytest-cov(in thedevextra). CI prints coverage
for every test run and adds a summary table to the run's page. See
docs/how-to/developer-setup.md. - README badges for CI status, latest release, supported Python, licence, ruff and uv.
- Release docs cover Zenodo archiving and DOIs, and why shelley is not yet on PyPI.
Seedocs/how-to/developer-setup.md.
Changed
- Local registries are now built in versioned subdirectories for
shelley cleanto
correctly uninstall tool versions. - Development tooling now uses ruff for linting and
formatting, replacing the unusedblackandflake8in thedevextra. CI enforces
ruff checkandruff format --checkon every pull request. The codebase was
reformatted once to match; seedocs/how-to/developer-setup.md.
Removed
print_about()andShelleyStyle.create_about_panel()fromshelley.utils. They were
unused and raisedNameErrorif called.- Support for Python 3.10.
shelleynow requires Python 3.11 or later.
Fixed
docs/how-to/maintain-corpus.mdpointed to a removed script for regenerating the
Galaxy cache; it now usesshelley-build-galaxy.
v0.3.0
[0.3.0] - 2026-07-31
Multi-user module builds.
Fixed
shelley buildnow produces modules every user on the machine can load. shelley
never toldshpcwhere to install, so it inherited shpc's default of
module_base: $HOME/shpc/modules. Because the build re-execs undersudo -E, which
preservesHOME, root wrote the modules and wrapper scripts into the invoking user's
home directory — unreadable and untraversable by anyone else, leaving the modulefile
symlink under/apps/Modules/modulefilespointing into an inaccessible tree.
Artifacts now land under/apps/shpcand/apps/localas documented.- Build artifacts are readable and executable by all users: directories
0755, files
0644, wrapper scripts0755, never group- or other-writable. Enforced by a
umask 022set before anything forks, plus an explicitchmodpass over the subtrees
each build touched. A restrictive umask in the invoking shell no longer leaks into
/apps. /apps/shpcand/apps/localare created on first build. Previously nothing created
them, and the one line referencing/apps/shpctargeted a path that did not exist.- The sudo probe now covers all three build roots, not just
/apps/Modules/modulefiles, so a first run on a fresh machine escalates correctly. shelley findno longer reports a module as installed when its modulefile symlink does
not resolve to a readable file — which is the case for every module built by an earlier
version into a home directory.- The sudo re-exec now re-runs the shelley that is actually running, via
sys.executable -m shelley, instead of resolvingshelleyonPATH. A PATH lookup can
find a different installation: with a system-wide shelley present, running a checkout
handed the privileged half of the build to the system copy, so the process that actually
installs could be an older version. The symptom was baffling — the unprivileged half
printed the new version's output while the build behaved like the old one, writing to
$HOME/shpcanyway. Requires the newshelley/__main__.py.
Changed
- Every
shpcinvocation is pinned to a shelley-managed settings file at
/apps/shpc/settings.ymlvia--settings-file. This is the highest-precedence layer in
shpc's resolution chain, so a per-user~/.singularity-hpc/settings.ymlcan no longer
redirect a shared build. The file is partial — shpc still merges its own defaults
underneath — and is regenerated only when stale. /apps/localis declared in that settings file rather than registered with
shpc config add registry, which would have expanded the override file into a frozen
snapshot of every site default.
Added
SHELLEY_SHPC_BASE,SHELLEY_LOCAL_REGISTRYandSHELLEY_LMOD_MODULES_PATHoverride
the build roots (defaults/apps/shpc,/apps/local,
/apps/Modules/modulefiles). They are forwarded explicitly across the sudo re-exec, so
the elevated child agrees with the parent. Note thatSHELLEY_SHPC_BASEis effectively
write-once: a generatedmodule.luabakes in absolute paths, so changing it after
modules exist invalidates them.
Removed
- The
chown -R $SUDO_USER:$SUDO_USERover the shpc base. Handing the tree to a single
account is what made builds single-user, and it let one unprivileged user rewrite
modules everyone else executes.
Migration
Modules built with 0.2.0 or earlier live under the original builder's home directory and
cannot be salvaged — module.lua bakes in absolute wrapper and container paths, so they
cannot be moved or chmodded into working order. Find them with
find /apps/Modules/modulefiles -type l -lname '/home/*' and rebuild those tools.
v0.2.0
[0.2.0] - 2026-07-22
Pinned version for BioShell launch.
Added
shelley find <tool> -v— lists every individual container build (one row per
--hash) with the date modified, install status and the full CVMFS container path.- [EXPERIMENTAL]
shelley build <tool> -i(--interactive) — opens an interactive session to
curate the aliases a module exposes (deselect, rename, and add) for both
upstream and local builds. - Update check — on startup shelley compares its version against the
main
branch and prints upgrade instructions when a newer release is available. The
result is cached for a day and fails silently on any network error. shelley update— upgrades shelley in place. It detects whether the install is
system-wide (/opt/uv/tools) or per-user and runs the matching
uv tool upgrade shelleyfor you.
Changed
- Merged the
versionscommand intofind. Runshelley find <tool> -v
(or--verbose) to see the full, paginated list of container versions.
Removed
versionscommand. Useshelley find <tool> -vinstead.
Fixed
shpcandsingularityare now loaded when required i.e. duringshelley build.
v0.1.0
What's Changed
- Search patch from bio-finder by @fredjaya in #4
- BUG: Fix inconsistent handling of version separators in shelley-bio build by @fredjaya in #11
- Improve
findby @fredjaya in #23 - Updating
searchwith rsec metadata by @fredjaya in #27 - Use shpc to build modules by @fredjaya in #20
- Update installation process and documentation; shelley rename by @fredjaya in #40
- BUG: Change container-guts dependency to Git repository by @fredjaya in #42
- REL: 0.1.0 by @fredjaya in #41
New Contributors
Full Changelog: https://github.com/Sydney-Informatics-Hub/shelley/commits/v0.1.0