Tag lib/ subpackages via TagBot matrix#3657
Merged
ChrisRackauckas merged 1 commit intoMay 20, 2026
Merged
Conversation
Mirrors the NonlinearSolve.jl setup so each registered subpackage under lib/ gets its own git tag/release on registration. Without this, diffs and PR lists between versions of a given subpackage are hard to recover because the monorepo only carried the top-level OrdinaryDiffEq tag. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.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.
Ignore until reviewed by @ChrisRackauckas.
Summary
Mirrors the NonlinearSolve.jl TagBot setup so each registered subpackage under
lib/gets its own git tag/release when it's registered. Today the monorepo only carries the top-levelOrdinaryDiffEqtag (v7.0.0, etc.), and there are no tags for any of the 56 subpackages inlib/— which makes diffing between versions of, say,OrdinaryDiffEqCoreorStochasticDiffEqtedious (currently requiresgit blameon eachProject.tomlversion bump, then scrolling through non-squashed commits).Background
From Slack discussion with Joshua Lampert and Hendrik Ranocha:
NonlinearSolve.jl already does this (see
.github/workflows/TagBot.ymlthere); Chris confirmed it should be easy to copy the pattern here and chose to keep merge commits (not squash) so bisecting performance regressions to individual commits still works.What this PR does
TagBot.ymlinto two jobs:TagBot-OrdinaryDiffEq— tags the top-level package (existing behavior, just renamed).TagBot-Subpackages— a matrix job that callsJuliaRegistries/TagBot@v1once per subpackage withsubdir: lib/<package>, the same mechanism NonlinearSolve.jl uses.permissions:block andworkflow_dispatch.inputs.lookbackknob copied from the NonlinearSolve.jl workflow.lib/. Verified each has aname/uuid/versionin itsProject.toml. The matrix is exactlyls lib/(verified viacomm).Notes
fail-fast: falseso one subpackage failing to tag doesn't cancel the others.<Subpackage>-vX.Y.Ztags from the next registration of each subpackage. It will not retroactively tag previously-registered versions.SciML/DiffEqBase.jl,SciML/StochasticDiffEq.jl,SciML/DelayDiffEq.jl) are already archived, so tagging them here fromlib/is safe — there's no other home to conflict with.Test plan
yaml.safe_load).workflow_dispatchafter merge and confirm no errors when there's nothing to tag.<Subpackage>-vX.Y.Ztag on the monorepo.