Guidelines for the core maintainers of the cisco-network-node-utils project - above and beyond the general developer guidelines.
- Is the pull request correctly submitted against
develop
? - Does
rubocop
pass? (TODO - this will be part of our CI integration to run automatically) - Is
CHANGELOG.md
updated appropriately? - Are new minitests added? Do they provide sufficient coverage and consistent results?
- Do minitests pass on all supported platforms
When we are considering publishing a new release, all of the following steps must be carried out.
- NOTE: Use the latest code base in
develop
-
Pull release branch based on the
develop
branch.- 0.0.x - a bugfix release
- 0.x.0 - new feature(s)
- x.0.0 - backward-incompatible change (if unvoidable!)
-
Run full minitest regression on supported platforms.
- Fix All Bugs.
- Make sure proper test case skips are in place for unsupported platforms.
- Make sure yum_package.yaml is updated with all versions that need to be tested.
-
Build gem and test it in combination with the latest released Puppet module (using Beaker and demo manifests) to make sure no backward compatibility issues have been introduced.
-
Update changelog.
- Make sure CHANGELOG.md accurately reflects all changes since the last release.
- Add any significant changes that weren't documented in the changelog
- Clean up any entries that are overly verbose, unclear, or otherwise could be improved.
- Create markdown release tag.
- Add compare versions
... +[v1.0.1]: https://github.com/cisco/cisco-network-node-utils/compare/v1.0.0...v1.0.1 [v1.0.0]: https://github.com/cisco/cisco-network-node-utils/compare/v0.9.0...v1.0.0
- Indicate new platform support (if any) for exisiting providers.
-
Update cisco_node_utils.gemspec if needed.
- Is the data still relevant?
- Do the version dependencies need to be updated? (e.g. rubocop)
-
Update version.rb file.
- VERSION = '1.0.0' + VERSION = '1.0.1'
-
Scrub README Docs.
- Update references to indicate new platorm support where applicable.
- Update nxos release information where applicable.
-
Open pull request from release branch against the
master
branch.- Merge after approval.
-
Create annotated git tag for the release.
-
Draft a new release on github.
-
Publish the gem to rubygems.org. (Replace
x.x.x
with actual gem version)gem build cisco_node_utils.gemspec gem push cisco_node_utils-x.x.x.gem
-
Merge
master
branch back intodevelop
branch.- Resolve any merge conflicts
- Optional: Delete release branch (May want to keep for reference)