Skip to main content

Deploy Python, Rust, shell, and collective CLI environments behind GNU environment modulefiles

Project description

module-manager

tests Coverage License Ruff Documentation PyPI Python versions

module-manager deploys versioned Python, Rust, shell, and collective CLI environments behind GNU environment modulefiles for Linux/HPC systems.

It writes tools and modulefiles into predictable versioned locations:

/prod/tools/<name>/<version>/bin
/prod/modulefiles/<name>/<version>

Quick Start

Deploy a Python CLI with uv tool install:

module-manager deploy-python ruff 0.8.0 \
  --package 'ruff==0.8.0' \
  --prefix /prod/tools \
  --module-root /prod/modulefiles \
  --execute-install

Deploy a Rust binary:

module-manager deploy-rust ripgrep 14.1.1 \
  --binary ./target/release/rg \
  --prefix /prod/tools \
  --module-root /prod/modulefiles

Deploy a shell script:

module-manager deploy-script my-tool 1.0.0 \
  --script ./scripts/my-tool \
  --prefix /prod/tools \
  --module-root /prod/modulefiles

Deploy a collective environment from a TOML manifest:

module-manager deploy-env --file dev-tools.toml --dry-run
module-manager deploy-env --file dev-tools.toml

Use the generated module:

module use /prod/modulefiles
module load ruff
ruff --version

Deployments make the deployed version the module default. Add --no-default when you want to write the versioned modulefile without changing the default.

Remove a deployed version:

module-manager uninstall ruff 0.8.0 \
  --prefix /prod/tools \
  --module-root /prod/modulefiles

Documentation

Full documentation lives in docs/ and can be served with MkDocs:

uv run mkdocs serve

Start with docs/index.md for installation, configuration, Python tools, Rust tools, shell scripts, collective environments, uninstall, and local development notes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

env_module_manager-0.3.0.tar.gz (87.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

env_module_manager-0.3.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file env_module_manager-0.3.0.tar.gz.

File metadata

  • Download URL: env_module_manager-0.3.0.tar.gz
  • Upload date:
  • Size: 87.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for env_module_manager-0.3.0.tar.gz
Algorithm Hash digest
SHA256 65a0867e613f990100f0ed2e5910e45ab602a8e964fa54b2481aa618c7313ccd
MD5 9e0a70307ff5840bdc8c1cacfed9229e
BLAKE2b-256 4c6f472956825051df65c337ba93bb13528b98eec1df902da93219a33952cdc8

See more details on using hashes here.

File details

Details for the file env_module_manager-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for env_module_manager-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 266cc46744493af377842c990dc16320dcfae8185e2397b90a3ea8d17d6d6905
MD5 d35f5f85335d5e66cc3227c1df8907b7
BLAKE2b-256 a6ab6f9ad6bda97a3656abf346d7858f78a7c6fb6801e5f9719fc8e08ed84e8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page