edpm
edpm (Easy Dependency Package Manager) is a lightweight tool for managing external dependencies in C++/CMake (and occasionally Python) projects. Unlike heavy package managers (e.g., Spack) or mixed approaches (like CMake’s FetchContent), edpm cleanly separates dependency fetching/building from your main build process—keeping things reproducible and straightforward.
Key Features
- Manifest & Lock File: edpm uses a YAML-based plan (“manifest”) and a lock file to ensure predictable, repeatable installs.
- Minimal Overhead: Installs a known set of scientific/engineering packages without building an entire OS worth of sub-libraries.
- Environment Scripts: Automatically generates shell scripts (bash/csh) so your tools can locate installed packages via
PATH,LD_LIBRARY_PATH, andCMAKE_PREFIX_PATH. - Extensible Recipes: Supports Git + CMake, tarballs, local filesystems, and specialized recipes (e.g., Geant4, ROOT).
Quick Start
- Install edpm:
pip install --upgrade edpm
- Initialize & Install:
# Create or edit your plan (plan.edpm.yaml) then install edpm add root geant4 edpm install
- Use the Environment:
source <(edpm env) # or edpm env csh > env.csh
This makes your newly installed packages available to your shell or CMake builds.
Why edpm?
- Avoid “version hell” and heavy-lift solutions like Spack when you only need a few well-defined libraries.
- Keep the build and install steps separate: simpler debugging, faster CI, and more control over dependencies.
- Clean integration with CMake through environment variables or optional
CMakePresets.json/EDPMConfig.cmake.
Contributing & Development
- To hack on edpm itself, clone this repository and install in editable mode:
pip install -e .
- We welcome new recipes for scientific libraries, feature requests, and issue reports.
edpm is open-source under the MIT License. For complete documentation, recipes, and usage details, please visit the GitHub project page.
Metadata
Release files for edpm 3.1.24
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| edpm-3.1.24.tar.gz | 65.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| edpm-3.1.24-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 133.9 kB
Release files / edpm-3.1.24.tar.gz
| Download URL | edpm-3.1.24.tar.gz |
|---|---|
| Size | 65.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
feda58b5984c3189acf8111a856451567100ad7a93608319b1335996e00ee79c
|
|
BLAKE2b-256 checksum How to use checksums |
10e0f27f63631e8949179cc2bb468f7ab89a71f8250ecde27365719f953170f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|
Release files / edpm-3.1.24-py3-none-any.whl
| Download URL | edpm-3.1.24-py3-none-any.whl |
|---|---|
| Size | 68.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
faddae9e092aaa1088f9cb0f29c2475633801c5eeb5e780427a1036ec3b65af2
|
|
BLAKE2b-256 checksum How to use checksums |
d60cb7b1a3ecd624ac303ab58d6c208e8ff361748aa2940d545ebbd565f531d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|