Upgrading Rails to 6.1 and plugins

Hi everybody,
right now there is an open PR for switching Rails version from 6.0 to 6.1 [0].
It’s still in draft and there is still some work to do but I would like to notify all plugin maintainers in advance and ask them to check if their plugins still works, so there won’t be any unwelcome surprises when we merge the 6.1 change.

The plan is to merge it this release and after that move to Zeitwerk [1]

I’ll take care about the following plugins:

  • :green_circle: Dynflow (already fixed in this PR [2], released in 1.6.5 version)
  • Remote Execution
  • Ansible
  • Leapp

I quickly checked the Katello plugin and it’s failing on migration and on the startup as well, see the full logs ([3] & [4]).

[0] https://github.com/theforeman/foreman/pull/9117
[1] Rails 6.1(2) upgrade
[2] https://github.com/Dynflow/dynflow/pull/411
[3] Katello migration on Rails 6.1 - Pastebin.com
[4] Katello startup on Rails 6.1 - Pastebin.com

1 Like

Note that @packaging should also get involved and make sure we have RPMs.

2 Likes

Hi,
as the date for 3.3 branching is getting closer (10.05), I would like to ping all plugin maintainers and remind them that after the branching we are going to merge the 6.1 PR to the core, which will for sure break some stuff in the plugins.

I did some work on few plugins and briefly checked others, but I would like to ask plugin maintainers to check it personally and verify that everything works well.

Plugin Status
katello :red_circle: Failing
Packaging and installer ?
foreman_remote_execution :green_circle: merged
foreman_ansible :orange_circle: PR in review
foreman_leapp :orange_circle: PR in review
foreman_azure_rm :orange_circle: There may be issues
foreman_bootdisk :orange_circle: There may be issues
foreman_openscap :orange_circle: There may be issues
foreman_theme_satellite :orange_circle: There may be issues
foreman-tasks :green_circle: Should be fine
foreman_discovery :green_circle: Should be fine
foreman_hooks :green_circle: Should be fine
foreman_rh_cloud :green_circle: Should be fine
foreman_templates :green_circle: Should be fine
foreman_virt_who_configure :green_circle: Should be fine
foreman_webhooks :green_circle: Should be fine

The main issues I found in Rex, Ansible and Leapp were:

  • Including / prepending template helpers
  • .where.not with multiple arguments

See the plugin PRs for more details, or feel free to ping me on IRC.

1 Like

Pinging @katello devs, this change will brake the foreman+katello workflow, and the date of merge is getting closer - 10th of May. If you need any help feel free to ping me.

I am looking into it right now.

Seems to work ok after Fixes #34862 - Rails 6.1 updates by parthaa · Pull Request #10087 · Katello/katello · GitHub

2 Likes

@Partha_Aji thanks for the fix, Katello tests now run but some of them are failing:

(20 failures / +20)
Actions::Katello::Repository::IndexContentTest.test_index_not_performed_if_last_contents_changed_older_than_last_indexed
Actions::Pulp3::AptUpdateTest.test_update_http_proxy_with_no_url
Actions::Pulp3::YumUpdateTest.test_update_http_proxy_with_no_url
Katello::AccessPermissionsTest.test_0008_route katello/api/v2/alternate_content_sources/create should have a permission that grants access
Katello::Api::V2::AlternateContentSourcesControllerTest.test_destroy
Katello::Api::V2::AlternateContentSourcesControllerTest.test_update_bad_subpaths
Katello::Api::V2::AlternateContentSourcesControllerTest.test_refresh
Katello::Api::V2::AlternateContentSourcesControllerTest.test_create
Katello::Api::V2::AlternateContentSourcesControllerTest.test_index
Katello::Api::V2::AlternateContentSourcesControllerTest.test_update_bad_base_url
Katello::Api::V2::AlternateContentSourcesControllerTest.test_create_bad_base_url
Katello::Api::V2::AlternateContentSourcesControllerTest.test_create_bad_subpaths
Katello::Api::V2::AlternateContentSourcesControllerTest.test_update
Katello::Api::V2::ContentViewComponentsControllerTest.test_show_all
Katello::Api::V2::ContentViewRepositoriesControllerTest.test_show_all
Katello::Api::V2::ContentViewRepositoriesControllerTest.test_show_all_search
Katello::Api::V2::ContentViewRepositoriesControllerTest.test_show_all_with_content_type
Katello::CleanDuplicateContentUnitsTest.test_ansible_tag
Katello::CleanDuplicateContentUnitsTest.test_duplicates_module_stream
Katello::SmartProxyExtensionsTest.test_sync_container_gateway

This is the last thing blocking the merge of the 6.1 PR

1 Like

Hey @lstejska

Do we have a rough issue of how many plugins might still be impacted by this?
I’m thinking about community plugins.

Well, hard to say, easiest answer is that every plugin is impacted by this change.
The only way how to verify it is to test each plugin and check that everything works.
The absolute minimum can be just run unit tests and see if something is broken (like in foreman_bootdisk and foreman_discovery)

2 Likes