Experimental — see EXPERIMENTAL.md. Task:
bb upgrade-check; scriptsbb/upgrade_check.clj,bb/upgrade_runner.clj.
atlas's own tests show that atlas works. They can't show whether your
registry still comes out the same, or whether the atlas tools still give the
same answers on it. bb upgrade-check answers that for one project and two
atlas versions:
atlas.llm-ide tools on each registry (blast
radius, consumers, bottlenecks, islands, …) and compares the answers tool
by tool, with the time each took.The tools' arguments are chosen from the first registry: its best-connected functions, its most used data keys and aspects. The same arguments are then given to the second side, so both answer the same questions.
bb upgrade-check --build app.registry/build! \
--from current --to mvn:0.1.15 \
--paths src,resources,test
| Option | |
|---|---|
--build | How the project builds its registry: a qualified fn of no args, or a .clj file to load. It must not start services. |
--project | The project directory (default .). |
--from, --to | current (the project's own deps, the default), mvn:<version>, local:<path to atlas core>, or git:<sha>. |
--paths | The :paths the registry build needs, comma separated. Registries often register entities from test/ or dev/ too. |
--probes | A file of [[tool args] …] to call instead of the chosen probes. |
--out | Where both sides and report.edn are written (default: a temp dir). |
From another repo: bb --config <atlas checkout>/bb.edn upgrade-check ….
The exit code is 0 when the registry and every answer are identical, 1
when anything differs, and 3 when a side fails to run (its run.log is in
--out). In a project's CI, run it on the PR that bumps atlas.
A difference is not necessarily a regression. On a production app (1,348
entities), moving from atlas 0.1.13 to the main that unified the
dependency-edge definition gave:
bottlenecks and
islands 4.6s → under 25 ms).Checked against the registry data, the new answers were the correct ones:
aspect-anomalies reported 0 sparse aspects, while 311 are used by
exactly one entity;So the report tells you what changed. Whether each change is a fix, a policy change or a regression is for the person bumping atlas to say in that PR.
atlas.llm-ide tools are probed. Code calling atlas functions
directly isn't, unless you list it with --probes as a tool call.bb/upgrade_runner.clj uses only atlas.registry/registry,
atlas.registry.serialise/sanitize and atlas.registry.lookup/handle-tool,
which atlas has had since 0.1.13.Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |