Repository navigation
Test phase 8: graph checked on monorepo layouts; known gaps listed - #191
Merged
Merged
Conversation
Generated repositories shaped like real monorepos, checked against grimp and TypeScript: - scripts/graph-oracle/layouts.py: Python projects side by side each with its own src/ (monorepo), a root folder that is a package (root-init), and a namespace package split over two folders (namespace); - scripts/graph-oracle/ts_layouts.mjs: npm workspaces installed as symlinks, tsconfig.base.json paths that projects extend, barrels, .mts/.cts, import type, import(), require, and the forms fcs does not handle (#imports, exports subpaths, a folder's own package.json main). Baselines become a list: benches/graph/known_gaps.toml names every edge fcs misses or draws wrongly on each CI corpus (Django, Vite, the deep trees, the layouts), with its reason (a row of the graph-support page) and exact count. graph_oracle --gaps/--corpus fails on an edge that fits no gap and on a count that changed. The Python oracle builds one graph across ROOT and ROOT/src, plus FCS_ORACLE_PY_PATHS and FCS_ORACLE_PY_NAMESPACES for the layouts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EkCcM7SF9X6MgaCjoysdAw
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Phase 8 of the test plan: generated corpora shaped like real repositories for the import-graph oracle, and baselines turned into a list of documented gaps.
Generated layouts
scripts/graph-oracle/layouts.py(grimp):monorepo(services and libraries side by side, each a project with its ownsrc/andpyproject.toml),root-init(root folder is a package, run with the root on sys.path,.gitpresent),namespace(a PEP 420 package split oversrc/andplugins/src/). Writesoracle.envtelling the oracle what is on sys.path.scripts/graph-oracle/ts_layouts.mjs(TypeScript): npm workspaces installed as symlinks,tsconfig.base.jsonpathsthat each projectextends, an app alias, barrels,.mts/.cts,import type,import(),require, JSON, plus the unhandled forms on purpose (#imports,exportssubpath, folderpackage.jsonmain).Results (seed 1): root-init 468/468; TS workspaces 388/390 (one
#name, oneexportssubpath); monorepo 368/698, namespace 98/162 — every miss is an import into anothersys.pathfolder (another project'ssrc/, or the other portion of a namespace package), the documented "other sys.path entries" gap. No extra edges anywhere.Known gaps instead of counts
benches/graph/known_gaps.tomllists every edge fcs misses or draws wrongly on each CI corpus (Django, deep trees, Vite, the layouts), with the graph-support row it is and its exact count.graph_oracle --gaps FILE --corpus NAMEfails on an edge that fits no gap (a bug, or a gap to document) and on a count that changed (a fix: lower or remove the gap). Vite's--max-missing 7 --max-extra 1becomes 4#name, 2 foldermain, and one./x.jswherex.tsalso exists (plus its extra side).Oracle
src/check/oracle/py.pybuilds one graph acrossROOTandROOT/src(so imports between them are compared), plusFCS_ORACLE_PY_PATHS/FCS_ORACLE_PY_NAMESPACES. Django unchanged: 3,041 of 3,041.Docs: graph-support page (namespace packages row, monorepo note,
.js/.tstie, checked-corpora table), testing page, CHANGELOG.Generated by Claude Code