feat: migrate to zeitwerk#878
Merged
gildesmarais merged 9 commits intofeat/revamp-frontendfrom Mar 15, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a major refactor of the backend code structure to adopt the Zeitwerk autoloader, improves backend maintainability, and updates development and linting workflows. It removes manual requires and directory-specific namespace wiring, reorganizes files under the
app/web/**directory, and ensures that all code is autoloaded in a consistent, Rails-like fashion. Additionally, it adds a Zeitwerk eager-load check to the linting process and updates documentation accordingly. Several files are renamed or removed to reflect the new structure, and some error-handling and validation logic is refactored for clarity and consistency.Backend autoloading and structure improvements:
zeitwerkgem and removed therack-unreloadergem, enabling Zeitwerk-based autoloading for backend code under theHtml2rss::Webnamespace, and updatedapp.rbto useHtml2rss::Web::Bootfor setup and eager loading. [1] [2]app/web/**directory to match Zeitwerk's expectations, and removed manualrequirestatements in favor of autoloading. [1] [2] [3] [4] [5] [6] [7]Development and linting workflow updates:
rake zeitwerk:verify) to theMakefilelinting process and as part ofmake ready, ensuring loader drift is caught early in development. [1] [2] [3]Error handling and validation refactoring:
Html2rss::Webnamespace, and refactored validation logic inCreateFeedfor clarity and maintainability. [1] [2] [3] [4] [5]Roda plugin and middleware changes:
:headand:not_allowedplugins to Roda configuration, improving HTTP method handling.Documentation updates:
README.mdto explain the new backend file structure, Zeitwerk integration, and contributor guidelines for backend code placement.