Reviewers’ guide#
Review workflow#
Important
The reviewing process is a collaboration between the contributor and the reviewer and should always be conducted with respect. All contributions are valuable, and reviewers should always explain their reasons for requesting changes or rejecting a pull request.
Once a pull request is submitted, reviewers will ensures that the proposed changes adhere to the guidelines provided. As a reviewer, you will need to test the code to verify that everything is in order and request changes if necessary. To do so, create a local branch from the pull request
git fetch origin pull/<PULL NUMBER>/head:<BRANCH NAME>
where <PULL NUMBER>
is the number of the pull request and <BRANCH NAME>
is the name you assign to the local branch you are creating. Here is a checklist to guide your review :
Unit tests have been added and/or modified.
All unit tests pass succesfully.
The documentation builds with no errors or warnings.
The relevant sections of the documentation are complete and accurate.
Docstrings are clear and comprehensive.
The pull request correctly links to the related issue, if applicable.
Once the review is complete, if it has not already been done, you can ask for the PR issuer to add a short release note to the docs/release_notes/upcoming_changes
directory. If everything is satisfactory, give your approval and tag one of the maintainers to merge the pull request.
Release workflow#
Note
We use the following versioning notation:
X.Y.Z
where
X
is a major versionY
is a minor versionZ
is a patch version
Note also:
X.Y+1
is the futur minor versionX.Y.Z-1
is the previous patch version
Major/minor version release workflow#
Here are the step to make a major or minor release:
Once a milestone is almost completed, a new branch
maintenance/X.Y.x
is created and the final preparations before the release will be merged into this branch and thevX.Y.0
tag will be created from this branch.Update the documentation.
Merge the previous
doc/X.Y-1.Z
branch into the branch you are going to tag on without deleting the branch.Remove
.dev
from the__version__
in_version.py
.If relevant, add a
highlights.rst
file with a bulleted list of highlights for the release.Build the documentation site locally (see how to build the documentation)
Empty the
doc/release_notes/upcoming_changes
directory.Update the
switcher.json
file to add a new documentation version with the following values:{ "name": "X.Y", "version": "X.Y.0", "url": "https://www.graphinglib.org/doc-X.Y.0/", "preferred": true }
Remove the
"preferred": true
for the previous version.Rebuild the documentation to make sure it builds without problems.
Draft a release on GitHub. Copy the release notes from the documentation and adapt the syntax for Markdown.
Create the
vX.Y.0
tag.Merge the
maintenance/X.Y.x
(branch without deleting it) to themain
branch. Bump version toX.Y+1.0
(orX+1.0.0
for major version) inpyproject.toml
andsetup.py
. Bump__version__
toX.Y+1.0.dev
in_version.py
.Create a new
doc/X.Y.0
branch from themaintenance/X.Y.0
branch. Change the GraphingLib’s source URL inrequirements.txt
togit+https://github.com/GraphingLib/GraphingLib@doc/X.Y.0
.Manually trigger a build of the “latest” version on Read the Docs to update the project. Activate the version
doc/X.Y.0
and make it the default version in the admin settings.Bump
__version__
toX.Y.1
in_version.py
.
Patch version release workflow#
Attention
For a patch release, no updates are made on the main
branch. If a bug correction has to be also applied to the next major/minor release, add an issue so that it is modified in the main
branch. Unfortunately we don’t have an automatic backporting method as of now.
Here are the step to make a patch release:
Update the documentation.
Merge the previous
doc/X.Y.Z-1
branch into themaintenance/X.Y.x
branch and delete the old documentation branchBump
__version__
fromX.Y.Z-1
toX.Y.Z
in_version.py
.Build the documentation site locally (see how to build the documentation)
If relevant, add a
highlights.rst
file with a bulleted list of highlights for the release.Empty the
doc/release_notes/upcoming_changes
directory.Update the
switcher.json
file to bump the"version"
key of theX.Y.Z-1
version toX.Y.Z
and the"url"
from/doc-X.Y.Z-1/
to/doc-X.Y.Z/
. The"preferred"
configuration is left untouched.Rebuild the documentation to make sure it builds without problems.
Draft a release on GitHub. Copy the release notes from the documentation and adapt the syntax for Markdown.
Create the
vX.Y.Z
tag.Create a new
doc/X.Y.Z
branch from themaintenance/X.Y.Z
branch.Bump version to
X.Y.Z+1
inpyproject.toml
andsetup.py
Manually trigger a build of the “latest” version on Read the Docs to update the project. If the version
doc-X.Y.Z-1
is still active, deactivate it. Activate thedoc-X.Y.Z
version. If this patch release is on the latest major/minor version, set this new version as default in admin settings, else no changes necessary.