Easy Dependency Package Manager
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file edpm-3.1.24.tar.gz.
File metadata
- Download URL: edpm-3.1.24.tar.gz
- Upload date:
- Size: 65.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feda58b5984c3189acf8111a856451567100ad7a93608319b1335996e00ee79c
|
|
| MD5 |
4f59577c2d9e6bb2a9ffd64ea1bac357
|
|
| BLAKE2b-256 |
10e0f27f63631e8949179cc2bb468f7ab89a71f8250ecde27365719f953170f5
|
File details
Details for the file edpm-3.1.24-py3-none-any.whl.
File metadata
- Download URL: edpm-3.1.24-py3-none-any.whl
- Upload date:
- Size: 68.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
faddae9e092aaa1088f9cb0f29c2475633801c5eeb5e780427a1036ec3b65af2
|
|
| MD5 |
2247a895f0154627fdb2740d47eb05cc
|
|
| BLAKE2b-256 |
d60cb7b1a3ecd624ac303ab58d6c208e8ff361748aa2940d545ebbd565f531d8
|