Extract research/ and scripts/reverse_engineer/ to xmap/research (private) - #788
Merged
Conversation
…esearch repo This is production-adjacent, not core CORA: facility surveys, per-beamline device passes, and candidate descriptors mined from public sources ahead of modeling a deployment, plus the APS/PETRA-III/MXCuBE extraction tooling that produces them. None of it is imported by src/, none of it is in mkdocs nav or the docs.yml path filters, and its own README already said "tracked in the repo, but not published to the docs site" - it was just tracked in the wrong repo. deployments/ and catalog/ stay here: mkdocs_hooks.py globs them at build time to generate 411 site pages that mkdocs.yml hand-lists in nav, and they carry the vocabulary (SEED_ROLES, SEED_FAMILIES, the enums) the deployment/catalog descriptor tests actually check against. research/ carried none of that coupling, so it is the one piece that could leave today rather than waiting on the deployments site rework. History preserved via git-filter-repo (74 commits, research/ promoted to the new repo's root, scripts/reverse_engineer/ alongside it as reverse_engineer/) and pushed to github.com/xmap/research (private). In cora: - delete research/ and scripts/reverse_engineer/ - delete test_research_candidate_descriptors.py: its own non-vacuity assert would otherwise fail loudly the moment research/ is gone, by design; candidates now validate against the real loader on their own side, via reverse_engineer's new --cora flag, before ever being promoted into a descriptor here - move test_reverse_engineer.py (34 pure-function tests for the extractor's parse/mapping/emit/cli logic) to the new repo rather than deleting it, since its subject moved with it - drop the now-unused research/*/.cache/ .gitignore entries - repoint the 15 PETRA-III beamline.yaml comments and one deployments doc page that named research/ or scripts/reverse_engineer/ at the new repo instead Verified: apps/api/tests/unit/deployments/ (830 tests) green, mkdocs build --strict clean, no remaining research/ or reverse_engineer references outside the two corrected cross-repo pointers.
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
research/(facility surveys, per-beamline device passes, candidate descriptors: 248 files, 69 commits back to 2026-06-25) andscripts/reverse_engineer/(the APS/PETRA-III/MXCuBE extraction tooling that produces them) to the new private repoxmap/research, history preserved viagit-filter-repo.src/, neither is in mkdocs nav ordocs.yml's path filters.deployments/andcatalog/stay incora: the site build globs them to generate 411 pages, and their vocabulary (SEED_ROLES,SEED_FAMILIES, the enums) is what the descriptor tests actually check against, so this is the one piece of the "pull production-adjacent trees out of core" effort that could move ahead of the deployments-site rework.test_research_candidate_descriptors.py: its own non-vacuity assert would otherwise fail loudly the momentresearch/disappears, which is exactly the point of that assert. Candidate descriptors now self-validate against CORA's real loader from thexmap/researchside, via a new--coraflag on the extractor, before they're ever promoted into a descriptor here.test_reverse_engineer.py, 34 pure-function tests for the extractor's own parse/mapping/emit/cli logic, toxmap/research, since its subject moved with it.beamline.yamlcomments and one deployment doc page that named the old paths.research/*/.cache/.gitignoreentries.Test plan
uv run pytest apps/api/tests/unit/deployments/— 830 passedmkdocs build --strict— clean, no dangling nav or hook errorspytest tests/test_reverse_engineer.py— 34 passed, including the 3 that round-trip a candidate through CORA's real descriptor loader via--coragithub.com/xmap/researchis private and returns 404 unauthenticatedgrep-swept the tree for leftoverresearch//reverse_engineerreferences outside the corrected cross-repo pointers🤖 Generated with Claude Code