Package Peek Plugins

Packaging a Production Release

A release is a zip file containing all the required python packages to install the plugins after the platform release has installed.


Windows users must use bash. Setup Msys Git

Create the release directory:

mkdir ~/plugin-release-dir


You should clean up any previously packaged releases: rm -rf ~/plugin-release-dir

Change to release directory:

cd ~/plugin-release-dir

Copy your private plugins “source distributions” into the release directory.


To build a source distribution, cd to the plugin dir and run the following:

# build the source distribution
cd ~/project/peek-plugin-example
python sdist

# Copy the source distribution to our release dir
cp ~/project/peek-plugin-example/dist/peek-plugin-example-#.#.#.tar.gz ~/plugin-release-dir


The documentation to create plugins includes a script, this does the following:

  • Checks for uncomitted changes
  • Updates version numbers on variose files in the code
  • Commits the version updates
  • Tags the commit
  • Optionally, uploads the plugin to PYPI
  • Optionally, copies the dist to $RELEASE_DIR
export RELEASE_DIR=`ls -d ~/plugin-release-dir`

# build the source distribution
cd ~/project/peek-plugin-example
bash #.#.#

# Where #.#.# is the new version


Repeat this step for each private plugin.

Make a wheel dir for windows or Linux/Debian8.


mkdir ~/plugin-release-dir/plugin-win
cd    ~/plugin-release-dir/plugin-win


mkdir ~/plugin-release-dir/plugin-deb8
cd    ~/plugin-release-dir/plugin-deb8

Build Wheel archives for your private requirements and dependencies. Wheel archives are “binary distributions”, they are compiled into the python byte code for specific architectures and versions of python.

This will also pull in all of the dependencies, and allow for an offline install later.

# Example of pulling in the desired public plugins as well
PUB="$PUB peek-plugin-user"
PUB="$PUB peek-plugin-active-task"
PUB="$PUB peek-plugin-chat"

# Private Plugins
PRI=`ls ../*.tar.gz

# Build the wheels
pip wheel --no-cache --find-links ../ $PRI $PUB

Zip the plugin dist dir.


cd ~
tar cvjf plugin-win.tar.bz2 -C ~/plugin-release-dir plugin-win


cd ~
tar cvjf plugin-deb8.tar.bz2 -C ~/plugin-release-dir plugin-deb8

Cleanup the release directory:

rm -rf cd ~/plugin-release-dir

What Next?

Refer back to the How to Use Peek Documentation guide to see which document to follow next.