Making a release#
PsyNet releases are made periodically by the core developers. There is no real rule about how often these releases are made; it comes down to a balance between making new features available early and avoiding spamming PsyNet users with too many updates to keep track of.
After all changes to be released have been merged into the
master branch follow these steps:
Decide on a version number for the new release following semantic versioning guidelines. The upgrade type can be one of the following:
Major (new version includes breaking changes)
Minor (new version includes only new features and/or bugfixes)
Patch (new version includes only bugfixes)
Create a release branch from the
masterbranch on your local machine:
git checkout -b release-X.Y.Z
Update the CHANGELOG:
Using the GitLab interface identify the merge requests that contributed to the current
masterbranch since the last release. The last release can easily be identified by its release tag, e.g.
v10.1.0. Check that each merged merge request contains a populated CHANGELOG entry in its description. If any CHANGELOG entries are missing, notify the relevant contributors.
Combine the new CHANGELOG entries into PsyNet’s CHANGELOG.md file, updating any formatting as necessary.
Go through all the merge requests and close their associated issues with a comment linking them to the merge request: ‘Implemented in !ABC’ where ‘ABC’ is the merge request ID.
Write the new version number as the title of the new CHANGELOG entry.
Commit the changes with
git commit -m "Update CHANGELOG for version X.Y.Z"
Update PsyNet’s version number in following files:
and commit the changes with
git commit -m "Bump version to X.Y.Z"
Update the demos’ constraints.txt files by executing
from inside PsyNet’s root directory. This could take a while depending on the processing power of your system.
Before running the update script make sure to have checked out the version tag of Dallinger’s latest release inside your Dallinger directory as otherwise the generated constraints.txt files will be incorrect!
Commit the changes with
git commit -m "Update demos for version X.Y.Z"
Push the changes to the release branch.
Create a merge request using GitLab’s interface to merge the release branch into
masterand name it ‘Release version X.Y.Z’. You might want to inspect for a last time the code changes for the release using the ‘Changes’ tab of the merge request.
Merge the release branch to
mastervia the GitLab interface by choosing a simple merge commit (do not squash merge!).
On your local computer checkout the
masterbranch and pull the changes:
git checkout master git pull
Create a new tag corresponding to the new version number:
git tag vX.Y.Z
Push the tag with
git push --tags
Create a new PsyNet release using GitLab’s interface under Deployments > Releases.
Publish the new release on PyPi
You need to have the twine package installed; install/upgrade it with
python3 -m pip install --upgrade twine if you haven’t yet)
python3 -m build python3 -m twine upload --repository pypi dist/psynet-X.Y.Z*
The new PsyNet release should now be published on PyPi at https://pypi.org/project/psynet/.