Skip to main content

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, and CMAKE_PREFIX_PATH.
  • Extensible Recipes: Supports Git + CMake, tarballs, local filesystems, and specialized recipes (e.g., Geant4, ROOT).

Quick Start

  1. Install edpm:
    pip install --upgrade edpm
    
  2. Initialize & Install:
    # Create or edit your plan (plan.edpm.yaml) then install
    edpm add root geant4
    edpm install
    
  3. 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)

Source distribution for edpm 3.1.24
File Size Uploaded
edpm-3.1.24.tar.gz 65.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for edpm 3.1.24
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

3.1.24 This release

2 release files

3.1.19

2 release files

3.1.18

2 release files

3.1.17

2 release files

3.1.16

2 release files

3.1.15

2 release files

3.1.14

2 release files

3.1.13

2 release files

3.1.12

2 release files

3.1.9

2 release files

3.1.7

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.50

2 release files

1.0.48

2 release files

1.0.46

2 release files

1.0.45

2 release files

1.0.44

2 release files

1.0.36

2 release files

1.0.32

2 release files

1.0.31

2 release files

1.0.30

2 release files

1.0.28

2 release files

1.0.22

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page