Skip to main content

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, 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.

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

edpm-3.1.24.tar.gz (65.0 kB view details)

Uploaded Source

Built Distribution

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

edpm-3.1.24-py3-none-any.whl (68.9 kB view details)

Uploaded Python 3

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

Hashes for edpm-3.1.24.tar.gz
Algorithm Hash digest
SHA256 feda58b5984c3189acf8111a856451567100ad7a93608319b1335996e00ee79c
MD5 4f59577c2d9e6bb2a9ffd64ea1bac357
BLAKE2b-256 10e0f27f63631e8949179cc2bb468f7ab89a71f8250ecde27365719f953170f5

See more details on using hashes here.

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

Hashes for edpm-3.1.24-py3-none-any.whl
Algorithm Hash digest
SHA256 faddae9e092aaa1088f9cb0f29c2475633801c5eeb5e780427a1036ec3b65af2
MD5 2247a895f0154627fdb2740d47eb05cc
BLAKE2b-256 d60cb7b1a3ecd624ac303ab58d6c208e8ff361748aa2940d545ebbd565f531d8

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