Test-build pipeline Phase B, PR 4: extract Partials generation into PartialsManager - #1221
Merged
mkarlesky merged 2 commits intoAug 20, 2026
Conversation
Needed by more than one pipeline-stage class once Partials preprocessing moves into its own class next. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…lass TestBuildExecutor owned every stage from preprocessing through execution; the three Partials stages (preprocessing partial headers/ sources, then extracting and generating implementation/interface content) are self-contained beyond the TestPipelineHelpers mixin already shared across this directory's pipeline classes, and are 446 lines on their own -- pulled into their own class, wired into TestPipelineManager alongside the other three pipeline-stage classes, mirroring the TestSourceFileDirectiveResolver precedent. No behavior change: the moved methods are unchanged, TestPipelineManager's stage sequence, conditions, and stop-point behavior are unchanged, and every existing unit example for the moved stages passed unmodified once retargeted at the new class's own (smaller) constructor. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
mkarlesky
deleted the
test-invoker-phaseb-pr4-partials-generator-extraction
branch
August 20, 2026 22:44
5 tasks
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.
Summary
Fourth and final PR implementing Phase B of the test-build pipeline (
lib/ceedling/test_invoker/) architecture review, following PR #1217 (Phase A), PR #1218 (PR 1), PR #1219 (PR 2), and PR #1220 (PR 3). Depends on PR 3's consolidation of the two Partial preprocessing methods.TestBuildExecutorowned every stage from preprocessing through execution -- including the three Partials stages (preprocessing partial headers/sources, then extracting and generating implementation/interface/types content), 446 lines that only shareTestPipelineHelperswith the rest of the class, no other coupling. Extracted into a newPartialsManagerclass (name and location confirmed with you beforehand), mirroring theTestSourceFileDirectiveResolverprecedent from an earlier session.directives_only_fallback?intoTestPipelineHelpersfirst -- it's called both by code that's moving (the Partials preprocessing body) and code that's staying (stage_preprocess_mocks,stage_preprocess_test_files), so it needed a home both classes can reach.lib/ceedling/test_invoker/partials_manager.rb, with a constructor pulling only the 9 collaborators they actually use (TestBuildExecutorno longer composesPartializerat all -- confirmed zero remaining references after the move).lib/ceedling/objects.ymlandTestPipelineManager's own constructor;TestPipelineManager#build_stage_sequence's stage 6/7/8 lambda bodies now call@partials_managerinstead of@test_build_executor-- no change to stage ordering, conditions, or stop-point behavior.ceedling new+ceedling test:allsmoke run (Partials and preprocessing enabled) before touching Docker -- confirmsobjects.ymlhas no typos or missing composers, since a DI resolution error would surface immediately at boot.spec/units/partials_manager_spec.rb, retargeted at the new class's own (smaller) constructor -- every example passed unmodified, since the moved code itself didn't change, only its home.Test plan
bundle exec rspec spec/units-- 2589 examples, 0 failures (both on host and inside the Docker image)ceedling new+ceedling test:allwith Partials and full test preprocessing enabled -- boots and completes cleanlythrowtheswitch/madsciencelab-plugins:v1.1.4)spec/system/delta_builds_spec.rb(wondrous_forest Partials cases) -- 16 examples, 0 failuresspec/system/gcov_deployment_spec.rb's Partials/coverage cases -- 16 examples, 0 failuresThis closes out the Phase B test-build pipeline architecture review.
🤖 Generated with Claude Code