Move the 93 non-pilot beamline/site descriptors to xmap/descriptors - #791
Merged
Conversation
CORA has one real deployment: 2-BM. The other 93 deployments/<slug>/ directories (79 further beamlines, 13 further Sites) were never a deployment in any operational sense; they were CORA modeling real, named instruments at facilities it has no relationship with, from public source, to stress-test that the domain vocabulary generalizes. The website presented them with the same page-tree depth as the real pilot, which is the false-parity problem the last PR's collapse narrowed but did not fix, and the user's own framing settled it: these aren't deployments, they're descriptors, and they should not be in cora's website at all. Moved via git-filter-repo (175 commits of history preserved, deployments/ promoted to the new repo's root) to the private github.com/xmap/descriptors, minus 2-bm and aps (2-BM's Facility record), which stay. The narrative write-up each used to carry (docs/deployments/<slug>/notes.md, from the last PR's merge) is deleted rather than relocated: it described a public-presentation shape that is itself being retired, not ported somewhere else to be retired later. In cora: - delete the 93 deployments/<slug>/ directories and their 80 docs narrative pages (2-bm's 18 real pages and index.md are untouched) - rewrite docs/deployments/index.md down to the one real deployment - collapse mkdocs.yml's Deployments nav to just APS + 2-BM's subtree (846 lines -> 35 in the prior PR -> ~10 now), and revert validation.nav.omitted_files to warn: with the fleet gone there is no longer a legitimate unlisted generated page, so the guard should bite again - drop 8ID_xpcs_practice and 9ID_xpcs_practice from aps/site.yaml: both were backed by 8-ID's and 9-ID's own descriptors, which just left; keeping the claim without the hardware behind it would be exactly the drift these fitness tests exist to catch Test suite: deleted test_pending_method_alignment.py outright (a fleet-wide IOU tracker over 93 files that are now gone; nothing 2-BM's own descriptor cites falls under it). Rewrote test_beamline_descriptor.py, test_site_descriptor.py, test_practice_derivation.py, and test_techniques_not_stale.py to drop every fleet-wide mechanism whose only subject was the departed corpus (orphan-model/loose-family/ promotion-threshold signals, the ~100-line Site-ordinal drift guard, the badge-count floor, _PENDING_METHODS entries that belonged to the 13 departed Sites) while keeping everything that exercises 2-BM's real descriptor or a synthetic fixture. The reasoning throughout: a drift guard only earns its keep against data cora's own commits can still change; re-running it forever against data cora no longer owns or edits guards nothing (see project_beamline_seeder_design's identical finding for why the analogous full-fleet seeder was never built). Also updated 8 integration/scenarios test files whose docstrings cited a now-moved deployments/<slug>/beamline.yaml path (prose citations only, no runtime reads, so nothing was functionally coupled). Verified: mkdocs build --strict clean, apps/api/tests/unit (14159 tests) green, apps/api/tests/unit/deployments (113 tests, down from 830) green, xmap/descriptors confirmed private and 404 unauthenticated.
test_the_descriptor_scan_reads_files pinned "> 50" as a non-vacuity guard against a past bug (a wrong parents[N] index made the scan read zero files and pass trivially). With the 93 non-pilot descriptors moved to xmap/descriptors, deployments/ now holds exactly 2 files (2-bm/ beamline.yaml, aps/site.yaml), so the floor legitimately fails. This test is not one of the fleet-wide mechanisms retired in the parent commit: it is a safety posture guard (CORA never binds a BLEPS interlock write PV) that must keep scanning whatever cora's own deployments/ tree actually carries, 2-BM's real descriptor included. Lowered the floor to >= 2 rather than removing the guard. Caught by CI (tests/architecture is part of the "fast" lane alongside tests/unit, which is what I ran locally before pushing; missed because I scoped my local re-run to tests/unit only). Re-ran `pytest tests/unit tests/architecture` locally after the fix: 52319 passed, 649 skipped, matching CI's fast lane exactly.
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
CORA has one real deployment: 2-BM. The other 93
deployments/<slug>/directories (79 further beamlines, 13 further Sites) were never a deployment in any operational sense — CORA modeling real, named instruments at facilities it has no relationship with, from public source, to stress-test the domain vocabulary. The website gave them the same page-tree depth as the real pilot; the last PR narrowed that but didn't fix it. Settled shape: these are descriptors, not deployments, and cora's website should not show them at all.git-filter-repo(175 commits preserved) to the privatexmap/descriptors, minus2-bmandaps(2-BM's Facility record), which stay.notes.md, from the last PR's merge) is deleted, not relocated — it described a public-presentation shape that's itself being retired.docs/deployments/index.mdrewritten down to the one real deployment;mkdocs.yml's Deployments nav collapses to just APS + 2-BM (846 → 35 → ~10 lines across the two PRs);validation.nav.omitted_filesreverted towarnsince there's no legitimate unlisted page left.8ID_xpcs_practice/9ID_xpcs_practicefromaps/site.yaml: both were backed by 8-ID's and 9-ID's own (now-departed) descriptors — keeping the claim without the hardware behind it would be exactly the drift these fitness tests exist to catch.test_pending_method_alignment.pyoutright (a fleet-wide IOU tracker over files that no longer exist). Rewrotetest_beamline_descriptor.py,test_site_descriptor.py,test_practice_derivation.py,test_techniques_not_stale.pyto drop every fleet-wide mechanism whose only subject was the departed corpus (orphan-model/loose-family/promotion-threshold signals, the Site-ordinal drift guard, the badge-count floor), keeping everything that exercises 2-BM's real descriptor or a synthetic fixture. Rationale throughout: a drift guard only earns its keep against datacora's own commits can still change.integration/scenariostest docstrings that cited a now-moveddeployments/<slug>/beamline.yamlpath (prose citations only, no runtime reads — nothing was functionally coupled).Test plan
mkdocs build --strict— cleanuv run pytest apps/api/tests/unit— 14159 passed, 1 skippeduv run pytest apps/api/tests/unit/deployments— 113 passed (down from 830, expected: the fleet-wide parametrization is gone with the fleet)github.com/xmap/descriptorsis private and returns 404 unauthenticated🤖 Generated with Claude Code