Add Project#lib_root and #relative_lib_root; drop the project.codebase chain in Crc #1178
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1178
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Ten files in the Crc concept reach through the project into its codebase to get the library root:
project.codebase.lib_rootandproject.codebase.relative_lib_root.Projectis the object that knows its codebase, so it should answer the two questions itself. Ruling S66 givesProjectthe two answers. Ruling S70 applies the same answer atcrc/census/settings.rb:12.Reproduce
n/a: structure-wave reach-through answer, nothing to reproduce
Approach
Required work:
plugins/os-sdlc/lib/os_sdlc/project.rb, adddef lib_root = codebase.lib_rootanddef relative_lib_root = codebase.relative_lib_rootnext tocodebase. — check: presentdef relative_lib_rootinplugins/os-sdlc/lib/os_sdlc/project.rb@project.codebase.lib_rootwith@project.lib_rootand@project.codebase.relative_lib_rootwith@project.relative_lib_rootatcrc/census/expected_constants.rb:30,crc/census/files.rb:20,crc/census/test_lookup.rb:21,crc/cycle_edges/run.rb:13and:22,crc/error_lineage/run.rb:13and:22,crc/placement/run.rb:14and:22,crc/records/path_lookup.rb:49andcrc/score/run.rb:26. All paths are underplugins/os-sdlc/lib/os_sdlc/. — check: absentproject.codebaseinplugins/os-sdlc/lib/os_sdlc/crc/cycle_edges/run.rbplugins/os-sdlc/lib/os_sdlc/crc/census/settings.rb:12, replaceproject.codebase.relative_lib_rootwithproject.relative_lib_root. — check: absentproject.codebaseinplugins/os-sdlc/lib/os_sdlc/crc/census/settings.rbplugins/os-sdlc/lib/os_sdlc/crc/holders/run.rb:22-26, delete the privatecodebasemethod and use@project.lib_rootand@project.relative_lib_root(same chain as item 2; the detector missed it behind the private wrapper).crc/reach_through/run.rb:22passes the whole codebase toCollaboratorPass::Sourcesand stays unchanged. — check: absentdef codebaseinplugins/os-sdlc/lib/os_sdlc/crc/holders/run.rbAcceptance criteria
Project, whenlib_rootandrelative_lib_rootare called, then they return the same values asproject.codebase.lib_rootandproject.codebase.relative_lib_root..codebase., then none of those sites remains.Owner sketch
Non-goals
Add no test.
Origin
VERDICT: CREATE
Work started on branch crc-os-sdlc-run-3 (implementation 90, structure-change map).
Resolution
Done: S66/S70 applied: Project#lib_root and #relative_lib_root added; 10 Crc files plus crc/census/settings.rb call them; crc/holders/run.rb private codebase wrapper deleted.
Evidence:
2af8ddcc(Runner commit, gate green, suite 44-50 s). Implementation 90, dispatch 772.Follow-ups: none