Skip to main content

pmpd [puhmp-eed] is a command line interface to deploy projects that use git.

Project description

pmpd [git puhmp-eed] is a command line interface for git deployments that release engineers can use to make life easier. It is heavily influenced by Vincent Driessen’s branching model and uses a syntax similar to gitflow. Its goal is to simplify and streamline deployments of complex branching systems by making commands and actions as human-friendly as possible. It provides a simple pmpd command that allows for merging and deploying branches to any number of distinct servers that are connected by a common git server like gitolite.

Main Features

  • Expressive and intuitive syntax

  • Makes continuous integration easier

  • Release branches are pmpd out

  • Identify conflicting feature branches before release time

  • Automated pmpd deployments similar to Google’s AppEngine approach

  • Multi server environments supported

  • Distributed branching model for large group collaborations


The latest stable version of pmpd can always be installed or updated to via pip:

$ pip install --upgrade pmpd


After installation is complete pmpd puts .pmpd/config.json into the root of your repository. You may want to add the folder to .gitignore, but leaving it there is also a good way to keep track of your build history. pmpd.conf is used to relate servers to reference branches and to specify which feature branches belong in a given release.

You must fill out .pmpd/config.json so that it matches the flow of your own deployments and you’ll probably update this file in some way every time a new release is pmpd out.



$ pmpd


$ pmpd [flags] [METHOD] [BRANCH]

See also pmpd --help


Build an alpha release based on the current state of production:

$ pmpd build alpha



Jared Hall, PyScape

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page