Notes for developersο
Checklist for releasing a new Rockpool versionο
Make a release candidate branch
rc/<version>
fromdevelop
branch on internal gitlabMake sure the version number in
version.py
has been bumped. We use semantic versioning:major.minor.maintenance.(postN)
, where(postN)
is only for hotfixesMerge
master
intorc/...
to make sure all changes are mergedPush
rc/..
toorigin
Make a merge request from
rc/...
intomaster
Get all primary developers to review the merge request, ensure that all suggested modifications are included
Ensure that all pipelines pass, including manual pipelines
Update
CHANGELOG.md
usinggit log X..Y --oneline
Once the merge has succeeded, delete the
rc/...
branchMake and push a tag to the
master
branch for the new version (i.e. βvX.Y.Zβ)Once all CI tasks have succeeded, a manual CI task βpypi_deployβ will be available. Run this task to deploy to PyPI. This task must be run from the internal Rockpool repository
A pull request for the conda feedstock should be created automatically by a conda-forge bot. Check and merge this PR to bump the version on
conda-forge
Merge
master
back intodevelop
Bump the version number in the
develop
branch to something like βvX.Y.Z.devβ
Headings for CHANGELOG.md
ο
### Added
### Changed
### Fixed
### Deprecated
### Removed
### Security
Questions to resolve for each merge requestο
During code review for each merge request, make sure all of the following questions are addresssed. If any boxes are not ticked, there should be a good reason why not.
- [ ] Are there user-facing tutorials?
what does the feature do? how to use it?
what are the limitations of the feature? what it doesnβt do?
troubleshooting guide: what to do in case of issues/bugs/problems?
FAQ: what are the most common mistakes or confusions?
[ ] Is each tutorial minimal and relatively self-contained?
[ ] Is each tutorial didactic?
[ ] Is the developer documentation updated with any new modules or changes?
[ ] Are the packages / tutorials integrated into the documentation TOC?
[ ] Are all class / method / function / file links in the tutorials working correctly?
[ ] Do all user-facing class attributes have docstrings in
__init__()
?[ ] Do all non-user-facing class attributes have a leading underscore? (e.g.
_attr
)[ ] Are all user-facing class attributes either
Parameter
,State
orSimulationParameter
objects in__init__()
?[ ] Do Rockpool modules obey the standard Rockpool API for
evolve()
?[ ]
as_graph()
implemented, if at all possible, for any new modules[ ] Does every
__init__.py
have an initial docstring block, describing what the package / sub-package does and contains?- [ ] Are there tests implemented?
[ ] unit tests?
[ ] integration tests?
[ ] interface tests?
[ ] performance tests?
[ ] code coverage measured?
[ ] Is
CHANGELOG.md
updated?[ ] Is the implementation minimal? i.e. the simplest possible way of implementing the functionality