distman

distman is a configuration-driven file distribution manager for safe, versioned software rollouts to predefined filesystem locations.

It is designed for production pipelines where deterministic deployments, environment-aware paths, quick version switching, and rollback matter more than building and installing packages.

deploy/
├── bin/
│   ├── tool -> versions/tool.2.a1b2c3d
│   └── versions/
│       ├── tool.1.91c8a77
│       └── tool.2.a1b2c3d
└── .distman/
    └── epoch

Why distman

Deploy safely

Configure once

Prepare and cache

Install

pip install -U distman

Quickstart

Create dist.json at the root of a Git repository:

{
  "author": "pipeline@example.com",
  "targets": {
    "tools": {
      "source": "tools",
      "destination": "{DEPLOY_ROOT}/tools"
    }
  }
}

Preview and then deploy:

dist --dryrun
dist --yes

The same operation is available through the suite command:

distman dist --dryrun

Learn More