Simplifies Python application rollout and publishing.

bootstrapper, packaging, python, scaffold
pip install makeapp==1.9.1



release lic coverage


Simplifies Python application rollout and publishing.

  • Make a skeleton for your new application with one console command.
  • Automatically create a VCS repository for your application.
  • Automatically check whether the chosen application name is not already in use.
  • Customize new application layouts with skeleton templates.
  • Put some skeleton default settings into a configuration file not to mess with command line switches anymore.
  • Easily add entries to your changelog.
  • Publish your application to remotes (VCS, PyPI) with single command.

Application scaffolding

Scaffold a new application:

$ makeapp new my_new_app /home/librarian/mynewapp/ -d "My application." --author "The Librarian"

This will create a decent application skeleton using the default skeleton template (, docs, tests, etc.) and initialize Git repository.

makeapp also bundles templates for commonly used application types:

Multiple templates can be used together. Complete list of featured templates can be found in the documentation. User-made templates are also supported.

Application publishing

When you're ready to publish issue the following command while in project directory (containing

$ makeapp release
; Bump version number part manually: major, minor, patch
$ makeapp release --increment major

This will automatically:

  • bump up application version number
  • tag version in VCS
  • push sources to remote repository
  • upload application package to PyPI

Adding changes

When you're ready to add another entry to your changelog use change command:

$ makeapp change "+ New 'change' command implemented"

This will also stage and commit all changed files.

Supported message prefixes:

  • + - New feature / addition.

    Increments minor part of version number on release command.

  • ! - Important change/improvement/fix.

    Increment: patch part.

  • - - Feature deprecation / removal

    Increment: patch.

  • * - Minor change/improvement/fix. * prefix is added by default if none of the above mentioned prefixes found.

    Increment: patch.

Bash completion

To enable bash completion for makeapp command append the following line into your .bashrc:

eval "$(_MAKEAPP_COMPLETE=source makeapp)"