Foreman 3.2.0 RC2 release process

Make this post a wiki

Roles

Manual updates: 2022-03-03

Release Engineer

  • Update manual if applicable for any additional installation steps
  • Update release notes section in the manual:
    • Release notes: bullet point list by category of all changes, include link to bug numbers. You can auto-generate changes using the release notes script.
    • CLI release notes are taken from the hammer-cli and hammer-cli-foreman changelogs
    • Link to installer changelogs and note versions being used
    • Headline features: half a dozen important features with a few sentences description each
    • Upgrade notes: all important notices that users must be aware of before upgrading
  • Update installer options section using the get-params script (Note: this step can only be done after packages are released)
    Generate the apipie docs and raise pull request in apidocs repository

Preparing code: 2022-03-03

Installer Maintainer

  • Make patch releases of installer modules that have important changes
    • Branch to MAJ.MIN-stable if recent changes to the module aren’t suitable for patch (x.y.z) release

Release Owner

  • Remove/change target version field for any open Redmine tickets assigned to the release still (next minor, unset it or reject) - haven’t done this as we may want to get the stuff before GA
  • Ensure that code in git matches issues fixed in 3.2.0-rc2 in redmine. issues.rb can be used to generate a comparison between the two.

Tagging a release: 2022-03-03

Release Owner

  • In foreman 3.2-stable:
    • Make sure test_3_2_stable is green
    • run make -C locale tx-update
    • Tag the release using tag.sh tag.sh 3.2.0-rc2 && git push upstream 3.2-stable --follow-tags
  • In smart-proxy 3.2-stable:
  • In foreman-selinux 3.2-stable:
    • Tag the release using tag.sh tag.sh 3.2.0-rc2 && git push upstream 3.2-stable --follow-tags
  • In foreman-installer 3.2-stable:
    • Tag the release using tag.sh tag.sh 3.2.0-rc2 && git push upstream 3.2-stable --follow-tags
  • Run the Jenkins Tarballs Release to create tarballs

Release Engineer

Note: If for some reason there was an issue with the tarballs that required uploading new tarballs, CDN cache should be invalidated so that the builders use the updated tarballs.

Packaging a release: 2022-03-03

Release Engineer

Background documentation

After the packages have been released

Release Owner

@MariaAga I can see React test failures in plugin test pipelines, can you have a look?

@MariaAga is currently out, maybe @amirfefer could take a look?

@aruzicka - just information this Version is not working with the foreman-datacenter-plugin. The service doesn´t start if it installed.

With “this version” being 3.2.0 rc? And what is “the service”? To be honest I’m surprised foreman-datacenter worked so long with its latest version being released in november 2020

foreman-rake apipie:cache

Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: rake aborted!
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: NoMethodError: undefined method `fields' for nil:NilClass
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /usr/share/foreman/app/controllers/api/base_controller.rb:438:in `add_scoped_search_description_for'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:11:in `<class:DevicesController>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:4:in `<module:ForemanDatacenter>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:3:in `<module:V2>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:2:in `<module:Api>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:1:in `<top (required)>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:324:in `block in require'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:291:in `load_dependency'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:324:in `require'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:411:in `block in require_or_load'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:40:in `block in load_interlock'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies/interlock.rb:14:in `block in loading'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/concurrency/share_lock.rb:151:in `exclusive'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies/interlock.rb:13:in `loading'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:40:in `load_interlock'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:389:in `require_or_load'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:367:in `depend_on'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:280:in `require_dependency'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/application.rb:440:in `load_controller_from_file'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/application.rb:330:in `block in reload_documentation'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/application.rb:329:in `each'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/application.rb:329:in `reload_documentation'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/apipie_module.rb:34:in `method_missing'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.17/lib/tasks/apipie.rake:285:in `with_loaded_documentation'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.17/lib/tasks/apipie.rake:129:in `block (2 levels) in <top (required)>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /usr/share/foreman/lib/tasks/apipie.rake:6:in `block (2 levels) in <top (required)>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: /opt/rh/rh-ruby27/root/usr/share/gems/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: Tasks: TOP => apipie:cache
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: (See full trace by running task with --trace)
Notice: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]/returns: 2022-03-14 13:19:42 +0100 | Started
Error: /Stage[main]/Foreman/Foreman::Rake[apipie:cache:index]/Exec[foreman-rake-apipie:cache:index]: Failed to call refresh: '/usr/sbin/foreman-rake apipie:cache:index' returned 1 instead of one of [0]

foreman-service start:

Error: Systemd start for foreman failed!
journalctl log for foreman:
-- Logs begin at Sat 2022-03-12 00:28:35 CET, end at Mon 2022-03-14 13:21:44 CET. --
Mar 14 13:21:30 pp-master-test-02.ict.dev.ttw foreman[18795]: [18795] === puma shutdown: 2022-03-14 13:21:30 +0100 ===
Mar 14 13:21:30 pp-master-test-02.ict.dev.ttw foreman[18795]: [18795] - Goodbye!
Mar 14 13:21:30 pp-master-test-02.ict.dev.ttw foreman[18795]: [18795] - Gracefully shutting down workers...
Mar 14 13:21:30 pp-master-test-02.ict.dev.ttw foreman[18795]: Exiting
Mar 14 13:21:37 pp-master-test-02.ict.dev.ttw foreman[18960]: => Booting Puma
Mar 14 13:21:37 pp-master-test-02.ict.dev.ttw foreman[18960]: => Rails 6.0.3.7 application starting in production
Mar 14 13:21:37 pp-master-test-02.ict.dev.ttw foreman[18960]: => Run `rails server --help` for more startup options
Mar 14 13:21:39 pp-master-test-02.ict.dev.ttw foreman[18960]: /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_puppet-3.0.0/lib/foreman_puppet/register.rb:155: warning: already initialized constant Foreman::Plugin::RbacSupport::AUTO_EXTENDED_ROLES
Mar 14 13:21:39 pp-master-test-02.ict.dev.ttw foreman[18960]: /usr/share/foreman/app/registries/foreman/plugin/rbac_support.rb:5: warning: previous definition of AUTO_EXTENDED_ROLES was here
Mar 14 13:21:39 pp-master-test-02.ict.dev.ttw foreman[18960]: API controllers newer than Apipie cache! Run apipie:cache rake task to regenerate cache.
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: Exiting
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: /usr/share/foreman/app/controllers/api/base_controller.rb:438:in `add_scoped_search_description_for': undefined method `fields' for nil:NilClass (NoMethodError)
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:11:in `<class:DevicesController>'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:4:in `<module:ForemanDatacenter>'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:3:in `<module:V2>'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:2:in `<module:Api>'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_datacenter-2.3.0/app/controllers/api/v2/foreman_datacenter/devices_controller.rb:1:in `<top (required)>'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/rh/rh-ruby27/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:83:in `require'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/rh/rh-ruby27/root/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:83:in `require'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:324:in `block in require'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:291:in `load_dependency'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:324:in `require'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:411:in `block in require_or_load'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:40:in `block in load_interlock'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies/interlock.rb:14:in `block in loading'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/concurrency/share_lock.rb:151:in `exclusive'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies/interlock.rb:13:in `loading'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:40:in `load_interlock'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:389:in `require_or_load'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:367:in `depend_on'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/dependencies.rb:280:in `require_dependency'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:481:in `block (2 levels) in eager_load!'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:480:in `each'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:480:in `block in eager_load!'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:477:in `each'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:477:in `eager_load!'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:356:in `eager_load!'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/application/finisher.rb:123:in `each'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/application/finisher.rb:123:in `block in <module:Finisher>'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/initializable.rb:32:in `instance_exec'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/initializable.rb:32:in `run'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /usr/share/foreman/config/initializers/0_print_time_spent.rb:45:in `block in run'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /usr/share/foreman/config/initializers/0_print_time_spent.rb:17:in `benchmark'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /usr/share/foreman/config/initializers/0_print_time_spent.rb:45:in `run'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/theforeman/tfm/root/usr/share/gems/gems/railties-6.0.3.7/lib/rails/initializable.rb:61:in `block in run_initializers'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/rh/rh-ruby27/root/usr/share/ruby/tsort.rb:228:in `block in tsort_each'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/rh/rh-ruby27/root/usr/share/ruby/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/rh/rh-ruby27/root/usr/share/ruby/tsort.rb:431:in `each_strongly_connected_component_from'
Mar 14 13:21:44 pp-master-test-02.ict.dev.ttw foreman[18960]: from /opt/rh/rh-ruby27/root/usr/share/ruby/tsort.rb:349:in `block in each_strongly_connected_component'

cc @Zenya as the maintainer of the datacenter plugin

Hi!! is there any update regarding if foreman_datacenter plugin works? same here with 3.2