Development Cycle
Issue driven development
- Choose an issue from the current milestone.
- Create a branch (based on
main) for that issue. - Develope code in dedicated branch.
- Create Pull Request (PR) for merging issue branch back in to
main. - Code in PR is reviewed and tested before merging.
Only issues from current milestone will be merged!
While you can include work for an issue from a later milestone, it is at the discretion of the developer whether to change the issue to the current milestone for inclusion in the next release.
The release cycle
Warning
Only the repository administrators can perform these actions.
- Create a milestone for the new release.
- Create issues for tasks to be achieved during milestone.
- Development is issue-driven, as described in the next section.
- The release is ready when all issues in milestone have been addressed, and
maintest successfully. - The main branch is checked out at the last commit that completes the milestone.
- The version is bumped and committed.
- A release is created with a new tag set to the version commit.
- The release is published on GitHub.
Updating the release notes
After publishing a release on GitHub, update the docs release notes page:
-
Copy the appropriate template from
docs/releases/to a new file nameddocs/releases/vX.Y.Z.md:patch-template.mdfor a patch release (e.g.v0.0.8)minor-template.mdfor a minor release (e.g.v0.1.0)major-template.mdfor a major release (e.g.v1.0.0)
-
Fill in the new file: replace the placeholder date, populate the change sections, and update the Full Changelog compare URL.
-
Open
docs/releases/index.mdand add a new section for the release immediately after the page introduction:
Publishing a release
Warning
For package administrators only!
Once a release has been published on GitHub, it can be published to PyPI.
- Checkout the release tag with
and then
where v.X.Y.Z is the version tag you want to publish.
- Build the package with
- Publish the package with
Example
Eventually, the developer would like to have this automated by GitHub actions. Then the publishing of a release on PyPI would be directly tied to when the release is published on GitHub.
Setup for hatch publish
To run this command, you need to have setup a .pypirc file in your HOME directory with the following contents:
[com_pac]
repository = https://upload.pypi.org/legacy/
username = __token__
password = <actual_token_goes_here>
The token is generated through the admin interface of PyPI for the com_pac package.