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:

  1. 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
    
  2. 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 that rake acceptance is the appropriate task

    bundle 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.

  1. Install the gem you just built, locally.

    rvm all do gem install dist/simp-rake-helpers-4.0.1.gem
    
  2. 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
    
  3. 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 in src/doc

    • All SIMP-owned projects in src/puppet/modules/

  4. 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