Skip to content

Feat/generator dependency registry#200

Draft
OutlawAndy wants to merge 21 commits into
dev-97-update-rolemodel-rails-generatorsfrom
feat/generator-dependency-registry
Draft

Feat/generator dependency registry#200
OutlawAndy wants to merge 21 commits into
dev-97-update-rolemodel-rails-generatorsfrom
feat/generator-dependency-registry

Conversation

@OutlawAndy

Copy link
Copy Markdown
Member

Why?

Why were the changes needed? What issues were the changes addressing?
(Note: some changes may seem unrelated to the ticket, this is a great place to explain further.)

What Changed

What changed in this PR?

  • Change1

Pre-merge checklist

  • Update relevant READMEs
  • Run bin/bump_version or bin/bump_version --patch

Screenshots

If any UI changes need to be shown off, please add screenshots here.

mark-kraemer and others added 21 commits July 6, 2026 13:01
Apply the reviewer's concrete suggestions and reduce cross-generator coupling:

- deploy workflows: support deploying a specific SHA/branch via workflow_dispatch
  input; staging pushes now trigger on the `staging` branch
- core_setup README/USAGE: tighten the UI Components / feature descriptions
- simple_form: replace the interactive tailored_select prompt with a
  --tailored_select class option that delegates to the tailored_select generator
- tailored_select: own the SimpleForm input template and install it only when
  SimpleForm is present in the app
- webpack: own the Sentry webpack wiring via a --sentry option; core_setup passes
  it. The wiring itself is a single shared GeneratorBase helper reused by the
  standalone sentry generator, so there's one source of truth
- webpack: drop terser-webpack-plugin and rely on webpack 5's built-in minimizer
  (the '...' placeholder), keeping CssMinimizerPlugin
- sentry: guard set_sentry_user so it's a no-op without an auth generator,
  removing the hard Devise dependency in fresh core_setup apps

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Verifies against Rails 8.1.2: config.generators routing into
Rails::Generators.options, boolean hook_for default resolution at class
definition (including generator_name > base_name precedence), hook target
namespace lookup priority, declaration-position execution order, and that
the engine's eager-require path defines no hook-declaring generators
(engine generators blocks run before Rails::Generators.configure!).
Every rolemodel generator now records its run in a marker-delimited
managed block in config/initializers/rolemodel_generators.rb, read back
through Rails' own config.generators option resolution. Recording skips
--pretend and exempted classes, removes the entry on rails destroy, and
never overwrites an explicit false (the persistent opt-out).
coupling_hook wraps a boolean hook_for with a registry-computed default
(explicit config keys still win) and a skip note at the hook's position.
requires_generator aborts before any action when a prerequisite is not
recorded — invoke-only, so rails destroy teardown is never blocked.
- Strip --sentry flag from webpack invocation in core_setup
- Remove stale rolemodel:semaphore invocation from all_generator
- Add skip_registry_entry! to all 6 composite generators
- Pin Rails abort_on_failure behavior with spec
- Verify composite exemption from registry recording
… references

- Add Generator Registry section to root README with opt-out and drift
  recovery instructions
- Remove stale Semaphore links from both READMEs
- Document sentry↔webpack coupling on both generator READMEs
- Document tailored_select↔simple_form coupling
- Add Registry generator to both generator index lists
@mark-kraemer
mark-kraemer force-pushed the dev-97-update-rolemodel-rails-generators branch from ce61461 to 371fad1 Compare July 14, 2026 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants