Route monorepo TagBot to the registered package#111
Merged
ChrisRackauckas merged 2 commits intoJul 10, 2026
Merged
Conversation
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Member
Author
|
Plan / scratchpad:
The upstream TagBot Action still scans all historical versions for the selected package because it has no exact-version Action input. This PR removes the 57-package fan-out without depending on TagBot internals. |
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Member
Author
|
Follow-up |
ChrisRackauckas
marked this pull request as ready for review
July 10, 2026 10:55
Member
Author
|
The dependent OrdinaryDiffEq caller draft is now open: SciML/OrdinaryDiffEq.jl#3866. It must remain blocked until this PR merges and the moving |
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
lib/*packagelookbackinput without forwarding itRoot cause
The previous monorepo convention started TagBot once for the root and once for every registered subpackage on every JuliaTagBot comment. OrdinaryDiffEq currently expands one registration into 57 jobs. A burst of 18 registry merges expanded into 1,026 jobs, exhausted the shared GitHub API allowance, and caused 403 responses followed by long TagBot backoffs.
Implementation
The resolver extracts the
JuliaRegistries/GeneralPR number from the bot comment, reads the standardizedNew version: Package vX.Y.Ztitle, and validates the name against the caller's root andlib/*/Project.tomlfiles. The resulting one-element matrix invokes the existingtagbot.ymlreusable workflow only for that package.JuliaTagBot retry comments without a General PR link and manual dispatches without a package intentionally discover every package, but use
max-parallel: 1. Manual dispatch can name one package. Runs for the same subdirectory share a non-cancelling concurrency group.The existing
lookbackworkflow input remains accepted for v1 compatibility but is documented as ignored and is no longer forwarded. TagBot itself deprecated the setting and checks all registered versions.Validation
python3 -m unittest discover -s test -p 'test_resolve_monorepo_tagbot.py' -v— 9 tests passedjulia --color=yes test/runtests.jl— all existing testsets passedactionlint -color .github/workflows/*.yml— passed with no outputRunic v1.7.0 --check scripts test/runtests.jl— passed with no outputlib/OrdinaryDiffEqBDF, packageOrdinaryDiffEqBDF, version2.3.0This adds a public reusable workflow and should be released as a backward-compatible minor v1 release before dependent caller PRs merge.