Feature #29991


Enable Zeitwerk autoload mode for Rails 6+

Added by Lukas Zapletal over 3 years ago. Updated over 1 year ago.

Target version:
Fixed in Releases:
Found in Releases:


We should take advantage of the new and threadsafe autoloader:

Subtasks 37 (7 open30 closed)

Refactor #33886: Fix early loads of constantsReady For TestingOndřej EzrActions
Refactor #33887: Postpone CacheManager recache after rails is initializedRejectedOndřej EzrActions
Refactor #33888: Postpone Setting load to after_initializationNewActions
Refactor #33889: Postpone FogExtensions after initializationNewActions
Refactor #33890: Require foreman/gettext directlyClosedActions
Refactor #33891: require Telemetry constantsDuplicateActions
Refactor #33892: Postpone setting validations to to_prepareClosedOndřej EzrActions
Refactor #33949: Fix early load of plugin fact parsersClosedLeos StejskalActions
Refactor #33950: Fix early load of ForemanInternal in initializerClosedLeos StejskalActions
Refactor #33957: Require Foreman::Util in initializersClosedLeos StejskalActions
Refactor #33964: Load Menu::Loader in 'to_prepare'ClosedLeos StejskalActions
Refactor #33967: Move basic ActiveRecord::Base custom extensions to ApplicationRecordClosedLeos StejskalActions
Refactor #33968: Fix loading of Foreman::Telemetry in initializersClosedLeos StejskalActions
Refactor #33975: Move menu loader from registries to servicesNewActions
Refactor #33989: Delay Initialization of ApiPie that depends on Model classesClosedLeos StejskalActions
Refactor #33991: Require /lib dependencies in initializers/foreman.rb ClosedLeos StejskalActions
Refactor #34005: Require middlewares properlyClosedActions
Refactor #34006: Plugin and its rbac_support are using Role and Permission models too earlyClosedOndřej EzrActions
Refactor #34009: Add plugin after_initialize hookClosedOndřej EzrActions
Refactor #34010: Add initialization method to RbacRegistryClosedOndřej EzrActions
Refactor #34011: Move add_permissions_to_default_roles to rbac_registryRejectedActions
Refactor #34012: Move add_all_permissions_to_default_roles to RbacRegistryRejectedActions
Refactor #34013: Move add_resource_permissions_to_default_roles to RbacRegistryRejectedActions
Refactor #34014: Move role creation into RbacRegistryRejectedActions
Refactor #34015: Move permission creation in DB to RbacRegistryRejectedActions
Refactor #34350: Require 'foreman/telemetry' in ldap initializerClosedLeos StejskalActions
Refactor #34353: Fix early load of fog_extensionsClosedLeos StejskalActions
Refactor #33895: setup Zeitwerk inflectorNewActions
Refactor #33896: Document how plugins can adjust Zeitwerk inflectorNewActions
Refactor #34007: Zeitwerk - remove 'foreman/provision' from init/foremanNewActions
Refactor #34137: Auto-loading & requiring /lib codeClosedActions
Refactor #34138: Autoload ProxyAPI files from /app/servicesClosedActions
Refactor #34139: Move Foreman::Renderer from lib/ to app/servicesClosedActions
Refactor #34146: Move services from lib/foreman to app/services/foremanClosedLeos StejskalActions
Refactor #34165: Require code from lib folderClosedLeos StejskalActions
Refactor #34646: Move initialization from application.rb into initializerClosedOndřej EzrActions
Bug #35419: Remove empty webpack_assets.rb fileClosedEwoud Kohl van WijngaardenActions

Related issues 4 (2 open2 closed)

Related to Foreman - Tracker #24837: Rails 6.0 TrackerClosed

Related to Foreman - Tracker #28570: Rails 6.1 TrackerNew

Related to foreman-tasks - Bug #34917: Tasks are loading ApplicationRecord too soon and it derails RailsClosedOndřej EzrActions
Blocks Foreman - Tracker #34647: Rails 7.0 TrackerNewEwoud Kohl van Wijngaarden

Actions #1

Updated by Lukas Zapletal over 3 years ago

Actions #2

Updated by Lukas Zapletal over 3 years ago

Actions #4

Updated by Ondřej Ezr about 2 years ago

  • Tracker changed from Bug to Feature
Actions #5

Updated by Ondřej Ezr over 1 year ago

Actions #6

Updated by Ondřej Ezr over 1 year ago

  • Related to Bug #34917: Tasks are loading ApplicationRecord too soon and it derails Rails added

Also available in: Atom PDF