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 both N9K and N3K?
If you don't already have git-flow
installed, install it.
Either run git flow init
from the repository root directory, or manually edit your .git/config
file. Either way, when done, you should have the following in your config:
[gitflow "branch"]
master = master
develop = develop
[gitflow "prefix"]
feature = feature/
release = release/
hotfix = hotfix/
support = support/
versiontag = v
Most of these are default for git-flow except for the versiontag
setting.
When we agree as a team that a new release should be published, the process is as follows:
-
Create a release branch. Follow semantic versioning - a bugfix release is a 0.0.x version bump, a new feature is a 0.x.0 bump, and a backward-incompatible change is a new x.0.0 version.
git flow release start 1.0.1
-
In the newly created release branch, update
CHANGELOG.md
:Changelog ========= -(unreleased) ------------- +1.0.1 +-----
and also update
version.rb
:- VERSION = '1.0.0' + VERSION = '1.0.1'
-
Finish the release and push it to GitHub:
git flow release finish 1.0.1 git push origin master git push origin develop git push --tags
-
Add release notes on GitHub, for example
https://github.com/cisco/cisco-network-node-utils/releases/new?tag=v1.0.1
. Usually this will just be a copy-and-paste of the relevant section of theCHANGELOG.md
. -
Publish the new gem version to rubygems.org:
gem build cisco_node_utils.gemspec gem push cisco_node_utils-0.9.0.gem