s## Steps in preparing a jpylyzer release
Some steps in the jpylyzer release process use Docker. In order to run Docker as a non-root user, it is helpful to create a Unix docker group. Steps (see also the more detailed discussion here):
- Create the docker group:
sudo groupadd docker
- Add the current user to the group:
sudo usermod -aG docker $USER
- Then log out and then log back in for the changes to take effect, or run the following command:
newgrp docker
- Verify that everything works by running the following test:
docker run hello-world
-
Make necessary changes to the code.
-
Update version number in jpylyzer.py.
-
In case of changes to command-line interface, update jpylyzer.pod file in the Debian folder.
-
Create new entry in changelog using:
dch -i
then manually update the version number, and create list of changes. Also make sure the e-mail address is a valid e-mail address.
-
Update User Manual if necessary and export the Markdown file to HTML. See instructions here.
-
Commit all changes and push to the master branch.
-
Add tag:
git tag -a 1.x.x -m "release that fixes everything"
-
Push tags:
git push --tags
-
Create and upload PyPi packages by running:
./docker-package-pypi.sh
You'll need a
.pypirc
in your home directory with suitable credentials to upload to the package via twine. -
Build Windows binaries by running:
./docker-package-win.sh
-
Build Debian packages for Linux by running:
./docker-package.sh debian:stretch
-
Go to Latest Release and click on the Edit button.
-
Upload Linux/Windows packages to the release by dragging them to the Attach Binaries field at the bottom.
-
Website: update binVersion in _config.yml (this updates the links to all packages to the correct version).
-
Website: write a short release note in the _posts directory.
-
Test website by running:
jekyll serve
or checkout the following to use a Docker container that reproduces authentic GitHub pages rendering.
-
Check website in browser at the following address:
-
Commit changes to website and push to branch gh-pages.
-
Spread the word!