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
Xis a major versionYis a minor versionZis a patch version
Note also:
X.Y+1is the futur minor versionX.Y.Z-1is 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.xis created and the final preparations before the release will be merged into this branch and thevX.Y.0tag will be created from this branch.Update the documentation.
Merge the previous
doc/X.Y-1.Zbranch into the branch you are going to tag on without deleting the branch.Remove
.devfrom the__version__in_version.py.If relevant, add a
highlights.rstfile 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_changesdirectory.Update the
switcher.jsonfile 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": truefor 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.0tag.Merge the
maintenance/X.Y.x(branch without deleting it) to themainbranch. Bump version toX.Y+1.0(orX+1.0.0for major version) inpyproject.tomlandsetup.py. Bump__version__toX.Y+1.0.devin_version.py.Create a new
doc/X.Y.0branch from themaintenance/X.Y.0branch. Change the GraphingLib’s source URL inrequirements.txttogit+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.0and make it the default version in the admin settings.Bump
__version__toX.Y.1in_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-1branch into themaintenance/X.Y.xbranch and delete the old documentation branchBump
__version__fromX.Y.Z-1toX.Y.Zin_version.py.Build the documentation site locally (see how to build the documentation)
If relevant, add a
highlights.rstfile with a bulleted list of highlights for the release.Empty the
doc/release_notes/upcoming_changesdirectory.Update the
switcher.jsonfile to bump the"version"key of theX.Y.Z-1version toX.Y.Zand 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.Ztag.Create a new
doc/X.Y.Zbranch from themaintenance/X.Y.Zbranch.Bump version to
X.Y.Z+1inpyproject.tomlandsetup.pyManually trigger a build of the “latest” version on Read the Docs to update the project. If the version
doc-X.Y.Z-1is still active, deactivate it. Activate thedoc-X.Y.Zversion. If this patch release is on the latest major/minor version, set this new version as default in admin settings, else no changes necessary.