7.3.2.4.1. Pre-Release Checklist¶
The bulk of the work to release a component is to verify that the component is ready for release. Below is the list of verifications that must be executed before proceeding with the release. If any of these steps fail, the problem identified must be fixed before you can proceed with the tag and release steps.
7.3.2.4.1.1. Verify a release is warranted¶
This check verifies a new release is warranted and the version has been properly updated:
Clone the component repository and checkout the development branch to be tagged
git clone https://github.com/simp/rubygem-simp-rake-helpers.git cd rubygem-simp-rake-helpers git checkout master # this step isn't needed for master branch
Manually compare the development branch with the last release tag. (The existing rake task
pkg:compare_latest_tag
won’t necessarily work here.)git fetch -t origin # manually figure out which is last tag git diff tags/<last release tag> --name-only # manually verify mission-impacting changes have been # made (i.e., changes that warrant a release) and the # version has been updated in the CHANGELOG.md, version.rb # and/or TBD file.
7.3.2.4.1.2. Verify the changelog¶
This check verifies that the changelog information is available and can be extracted
Manually inspect the appropriate file (e.g., CHANGELOG.md) (The existing rake task
pkg:create_tag_changelog
won’t necessarily work here.)
7.3.2.4.1.3. Verify the component’s dependencies¶
This check verifies that the component’s dependencies are correct in
the Gemfile
and <component>.gemspec
Manually inspect the
Gemfile
and<component>.gemspec
to look for inconsistencies or missing runtime dependencies.
7.3.2.4.1.4. Verify a Ruby gem can be created¶
This check verifies that a Ruby gem can be created for this component:
bundle update
bundle exec rake pkg:gem
7.3.2.4.1.5. Verify unit tests pass¶
This check verifies that the component’s unit tests have succeeded in GitHub Actions.
Navigate to the project’s GitHub Actions results page and verify the tests for the development branch to be tagged and released have passed. For our project, this page is https://github.com/simp/rubygem-simp-rake-helpers/actions
Important
If the tests in GitHub Actions fail, you must fix them before proceeding. The automated release procedures will only succeed, if the unit tests succeed.
7.3.2.4.1.6. Verify acceptance tests pass¶
This check verifies that the component’s acceptance tests have succeeded:
Run the appropriate acceptance test rake task, if it exists. For this project,
rake -T
shows thatrake acceptance
is the appropriate taskbundle exec rake acceptance
Note
If the GitLab instance for the project is configured and current (it is sync’d every 3 hours), you can look at the latest acceptance test results run by GitLab. For our project, the results would be at https://gitlab.com/simp/rubygem-simp-rake-helpers/-/pipelines.
7.3.2.4.1.7. Verify gem works for SIMP projects¶
This check verifies that SIMP components can use this gem for build and test tasks.
Install the gem you just built, locally.
rvm all do gem install dist/simp-rake-helpers-4.0.1.gem
Download the latest versions of most of the SIMP components using the
simp-core
project.git clone https://github.com/simp/simp-core.git cd simp-core bundle update bundle exec rake deps:checkout
If the major version number for the gem has increased, for the following projects, update their Gemfiles to permit the newer version
All projects in
src/assets/
The
simp-doc
project insrc/doc
All SIMP-owned projects in
src/puppet/modules/
In each project listed above, execute the rake tasks affected by the changes. In this case, we assume the
spec
task was affected.bundle update bundle exec rake spec