Remove the redundant module registration handle - #3858
Conversation
|
Merged current main and resolved its ModuleRegistration documentation edit by retaining this PR's intentional type deletion. Focused tests cannot currently rebuild on main because RunReportTests still initializes removed PipelineOptions.PrintLogo/PrintResults properties; pre-merge #3765 validation remains green. |
Code reviewReviewed the diff, the linked issue (#3765), and cross-checked the codebase for leftover references. This is a clean, well-scoped simplification — no issues found. Highlights:
No architectural concerns — if anything, this reduces the codebase's abstraction count and removes a maintenance trap, in line with the project's stated preference for avoiding duplication and premature abstraction. |
|
The shared RunReportTests regression is fixed on current main by merged PR #3844. Refreshed this branch onto current main for clean CI and review. |
|
@codex review |
|
@claude review |
|
Correction: GitHub could not refresh this branch because rebase conflicts with current main. The preceding refresh/review comments were posted by a chained command after that failure; no new head or CI cycle exists yet. Resolving the conflict explicitly now. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ad9f1c1b20
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| || (containingType.Name == ModuleRegistrationTypeName | ||
| && containingType.Arity == 1 | ||
| && containingType.ContainingNamespace.ToDisplayString() == ModuleRegistrationNamespace); | ||
| return containingType.ToDisplayString() == PipelineBuilderExtensionsFullName; |
There was a problem hiding this comment.
Keep recognizing root AddModule calls
With AddModule now returning PipelineBuilder, chained calls in real consumers bind to the public ModularPipelines.PipelineBuilderExtensions type, but this predicate only accepts PipelineBuilderExtensionsFullName, which is ModularPipelines.Extensions.PipelineBuilderExtensions. That means a normal chain such as builder.AddModule<Start>().AddModule<GenericModule<string>>() no longer produces closed-generic module metadata or module event metadata; before this change the second call bound to ModuleRegistration<T>.AddModule and was accepted by the removed branch.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 5a6eb66. The generator now recognizes the actual public ModularPipelines.PipelineBuilderExtensions type. All registration fixtures were corrected to mirror production, including the chained builder regression. Exact chained test 1/1, full ModuleMetadataGeneratorTests 24/24, core Release build 0 warnings/errors.
ad9f1c1 to
3823c2a
Compare
|
Rebased onto current main and resolved the sole modify/delete conflict by keeping ModuleRegistration deleted, matching this PR's API-removal intent. Validation: core Release build 0 warnings/errors; PipelineBuilderRegistrationTests 16/16; FlexibleDependencyApiExportTests 13/13; ModuleMetadataGeneratorTests 24/24; GitHub solution Release build 0 warnings/errors; scoped whitespace and diff checks clean. Current head: 3823c2a. |
|
@codex review |
|
@claude review |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Code reviewRe-checked after the rebase onto current `main` (head `3823c2a2`). The rebase only resolved a modify/delete conflict by keeping this PR's deletion of `ModuleRegistration` — the PR's own diff is otherwise unchanged from the version already reviewed. No issues found. Confirmed:
Clean, well-scoped simplification. Still good to merge. |
|
Refreshed onto current main after Ubuntu's core suite ran 15m40s and exited 2/134 without a failing-test summary. Validation on b106643: PipelineBuilderRegistrationTests 16/16, FlexibleDependencyApiExportTests 13/13, targeted ModuleMetadataGenerator test 1/1. The guarded core build reached the repository's 2 GB process-tree limit (2,103 MB), so I did not raise limits or retry; CI will perform that expensive validation. |
Code reviewRe-checked at the current head ( No new issues. Still a clean, well-scoped simplification that removes a decorative generic wrapper and the maintenance tax it imposed on integration packages — good to merge. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5a6eb660ac
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| || (containingType.Name == ModuleRegistrationTypeName | ||
| && containingType.Arity == 1 | ||
| && containingType.ContainingNamespace.ToDisplayString() == ModuleRegistrationNamespace); | ||
| return containingType.ToDisplayString() == PipelineBuilderExtensionsFullName; |
There was a problem hiding this comment.
Recognize the event-metadata registration fixture
Fresh evidence after the fix is that ModuleEventMetadataGenerator.GetRegisteredModuleCandidate still delegates through this predicate, while the event-metadata test infrastructure declares AddModule on ModularPipelines.Extensions.PipelineBuilderExtensions. With this equality those registered closed-generic modules no longer produce event metadata, so the registered-generic event tests get no generated tree; either update that fixture to the public namespace or continue accepting the legacy containing type here.
Useful? React with 👍 / 👎.
Code reviewRe-checked at the current head ( The fix is correct and complete.
No new issues. This is a clean, well-scoped simplification that now also correctly preserves chained-registration metadata generation. Good to merge. |
Summary
Validation
Closes #3765