Repository navigation
feat(breakage): derive the downstream packages from the Project.toml files - #109
Merged
Merged
Conversation
…files A plan job computes the targets of breakage-suite.yml: every package of the organization that loads the package under test (deps, weakdeps, extras, test environment, by uuid), plus the declared targets (applications, documentation builds). Callers no longer list packages. The report says when a target has no result on the base. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
The lists of downstream packages in the
Breakage.ymlof the packages were written by hand, and already wrong in several of them (CTSolvers without CTFlows, CTLie without CTFlows, CTBase without CTLie, CTModels without CTParser). They are now derived.A new
planjob inbreakage-suite.ymlcomputes the targets withscripts/breakage/consumers.jl: every package of the organization (non-archived, non-forkX.jlwith anameand auuid) that loads the package under test, by uuid, in the[deps],[weakdeps]or[extras]of itsProject.tomlor the[deps]of itstest/Project.toml.What the Project.toml files do not show is declared by the caller in
targets(default[]): an application owned elsewhere, a documentation build.consumers: falsekeeps the declared targets only (the applications group of OptimalControl). A declared target replaces the derived one of the same package, owner and check.The matrix and the number of expected cells come from the plan; its table, with the source of each target, is in the job summary. The job fails, and nothing else runs, when the organization cannot be read or when there is nothing to test: never a silently shorter list.
EXCLUDEDlists, with a reason, what is left out (the template of a new package, CTBenchmarks until its compat is updated). Archived repositories (CTDirectShooting) are left out by themselves.The report now says
has no result on the base (a new target)for a target that the base run did not have, instead of ignoring it.Backward compatible: a caller that still passes
targetsgets them plus the derived ones.Tests: the consumers (every place a package may be loaded from, the uuid and not the name, archived and fork, exclusions, errors that are not empty lists, the declared targets and their validation, the command line, the ecosystem as read on 2026-10-19) on a fake GitHub; 90 assertions in all. Mutation testing: 34 mutants of the script, all caught.
Run on the real organization, it finds for CTBase CTDirect, CTFlows, CTLie, CTModels, CTParser, CTSolvers, OptimalControl and OptimalControlProblems.
After the merge, the Breakage.yml of the packages (CTBase#626 and the seven open PRs) lose their lists.
🤖 Generated with Claude Code