gg_multi
gg_multi manages multi package workspaces and supports orchestrated editing and publishing
10.1.1
4.0K downloads/mo
#4164 most downloaded on pub.dev
ggsuite/gg_multi
What this package is like to depend on
Last release 8 days ago
15 Aug 2026
Ships on a steady schedule
a new release about every 9 days
Most releases are documented
notes for 72 of 88 stable releases
Nothing withdrawn
no release was ever pulled
3 months old
88 releases · first in 2026
88 releases in the last 12 months
see the full history below
Release timeline
88 releases · May 2026 to Aug 2026Releases
latest 60 of 88-
10.1.115 Aug 2026 -
10.1.014 Aug 2026Release notes
Open source →Changed
- Rework copyright headers
Fixed
- Cleanup copy right headers. Update to dart 3.13. Auto fixes.
- Cleanup copy right headers. Update to dart 3.13. Auto fixes. Setup quick-check pipeline.
-
10.0.013 Aug 2026Nothing published for this version
-
9.1.111 Aug 2026 -
9.1.010 Aug 2026Release notes
Open source →Changed
- CLAUDE.md and handbook document the per-repo
.gg/publish_config.jsonthe AI maintains - Refactor commit messages, version increment
- CLAUDE.md and handbook document the per-repo
-
9.0.010 Aug 2026 -
8.3.210 Aug 2026 -
8.3.110 Aug 2026 -
8.3.010 Aug 2026 -
8.2.009 Aug 2026Nothing published for this version
-
8.1.008 Aug 2026Nothing published for this version
-
8.0.008 Aug 2026Nothing published for this version
-
7.13.105 Aug 2026 -
7.13.004 Aug 2026Release notes
Open source →Changed
- Show ticket deletion dialog at the beginning of publish. Recolorize.
- Use overrides in package.json
-
7.12.004 Aug 2026Nothing published for this version
-
7.11.204 Aug 2026 -
7.11.104 Aug 2026 -
7.11.004 Aug 2026Release notes
Open source →Changed
- Improve push and publish workflow
- Rename »gg do upgrade dependencies« into »gg do upgrade deps«
-
7.10.004 Aug 2026Release notes
Open source →Changed
- Rename .master to .ocean with automatic migration at next start
- Rename ocean workspace -> ocean
-
7.9.504 Aug 2026 -
7.9.403 Aug 2026Release notes
Open source →Changed
- Prevent pubspec.lock interrupting publishing
Fixed
- Fix issues with pubspec.lock
-
7.9.303 Aug 2026Release notes
Open source →Fixed
- Fix test error paths
Removed
- Remove ./ from test error paths to allow directly opening it in vscode
-
7.9.203 Aug 2026 -
7.9.103 Aug 2026Release notes
Open source →Changed
- dart pub upgrade --major-versions --tighten
- shorten the long CLI messages and share the duplicated ones: one unfinishedPublishMessage, one continueConflictMessage, one editMessage
- use the semantic colors of gg_console_colors: cAction for instructions, cWarn for warnings, cDetail for progress, cCmd/cPath inside a message
- wrap every exception text in cError
- assert the plain text in the tests, not the escape codes (rmC)
- replace the ✓/✗ emoji by the plain marks ✓/✗ — gg_status_printer 1.2.0 colors them via cSuccess/cError
- use rmC from gg_console_colors in the tests instead of a local copy of the color stripper
- print a blank line before each cyan repo name so the per-repo blocks are visually separated
- replace do cancel-review with do review --abort
- move ls under do
- refactor: rename publish --reconfigure to --restart
- refactor: shorten all CLI help texts to 60 chars
- Rework CLI texts
- refactor(gg_multi): move do maintain exec to do exec
- rename do update to do upgrade — do upgrade master instead of do update master
- move do exec to do exec cmd
- move do checkout to do import ticket
- move do init to do init workspace and do claude to do init claude
- reword the remaining command descriptions to the same terse imperative the rest of the CLI uses
- Rework console colors
- Improve cli log and colors
Fixed
- Fix unit test errors
Removed
- remove do install-git-attributes command
- remove do add-deps command
- remove do configure-publish from the CLI — do publish calls it itself
- Remove unused CLI commands
-
7.9.002 Aug 2026Release notes
Open source →Added
gg do reviewopens a pull request for every ticket repo right after pushing it and prints its url, so the work can be reviewed while the ticket is still open. The pull requests carry no auto-merge flag —gg do publishreuses them and sets it when the release is done. An existing open pull request is reused, and a repo whose pull request cannot be opened (no GitHub/Azure DevOps remote, missinggh/az) is reported without failing the review.
Changed
- Create pull request as part of the review
-
7.8.002 Aug 2026Release notes
Open source →Added
do update master: syncs the master workspace with the git platforms. It walks every organization of.organizations, fetches its current repository list, clones the repos master lacks and moves the ones the organization no longer offers to<root>/.trash/.master/<org>/<repo>. Repos are matched by remote url, so a folder named after the package is recognized. Nothing is removed on a guess: an unparsable/missing remote, an unregistered organization and every repo of an organization whose fetch failed stay untouched.--dry-runreports without changing anything.Trash.moveFromMaster: moves a master repository into<root>/.trash/.master, with the same never-overwrite(2)suffixing and cross-volume fallbackmoveFromTicketuses.- Add gg do update master
Changed
- Do not write dart specific code into pure typescript .gitattributes
- Throw an error when added repo in master is not clean
- Either copy symlinks or throw an exception that symlinks are not supported
Fixed
- Fix gg do add errors
-
7.7.002 Aug 2026Release notes
Open source →Changed
- Use gg_args 2.1.0 which reports unknown sub commands itself
- Keep gg bookkeeping commits out of CHANGELOG.md using --no-log
Removed
- Remove gg do merge, use gg do publish --merge-only which asks for no version increment
-
7.6.002 Aug 2026Release notes
Open source →Added
- Add »gg do create graph« to output mermaid graphs
gg do create graphboxes the repositories of each organization in a mermaidsubgraphwhen more than one organization is shown.--no-group-by-orgsturns the boxes off.- Add »gg do add --no-localize«, »--org« and »--all«
Changed
- Allow to group nodes by org
- Allow to print dependency graphs using "gg do create graph"
- Allow to print dependency graphs using "gg do create graph"
- dependency_graph
-
7.5.002 Aug 2026Release notes
Open source →Added
gg do create graphWrites the dependency graph to stdout or file, asmermaid(default) orjson. Inside a ticket it graphs the ticket repos and what they reach, outside a ticket the whole master workspace, and--org <name>narrows it down to one organization. Redundant edges are hidden by default (--no-transitive-reductionkeeps them); further options are--orientation,--(no-)dev-dependenciesand--3rdparty-deps.--output <file>(-o) writes the graph into a file instead of stdout. Arrows point from the dependency to the dependent, so a horizontal chart lists the dependencies on the left and the dependents on the right.
-
7.4.102 Aug 2026Release notes
Open source →Changed
gg can publishverifies the npm login of every repo as its own step. It therefore stays a ticket-wide, up-front check even though the rest of the per-repo publish readiness moved intodo publish, so a missing npm login is still reported before the first package is uploaded.- A failed
gg do mergereports "Merging … failed" and "The merge is marked as »failed«" instead of the publish wording. - New
CanPublishCommand.checkTicket(…, includeCanPublish:)andCanPublishCommand.checkRepo(…).gg can publishitself is unchanged apart from the added npm step. - Can publish runs per repo right before that repo is published
Fixed
do publish/do mergeno longer fail on a ticket whose repos depend on each other.gg can publishran pana for every repo up front, where a constraint naming an as-yet-unpublished sibling version cannot resolve. The check now runs per repo, right before that repo is published — after its refs were unlocalized and committed and before it is pushed — so every dependency published earlier in the same run is already on its registry.
-
7.4.001 Aug 2026Release notes
Open source →Changed
- Breaking:
ticket.jsonis no longer written into the repositories of a ticket, force-staged and pushed. It now lives in the ticket folder only (tickets/<ticket>/ticket.json), so a private ticket's description and repo list never reach a remote. - Breaking:
do checkouttakes the path or anhttp(s)URL of aticket.json; a directory is read as a ticket folder. Reading the marker fromorigin/<branch>still works for branches an older gg pushed, but warns that it is deprecated. - Do not upload ticket.json. Share it manually and import it using "gg do checkout"
Fixed
.gg/ticket.jsonand.gg/.ticket.jsonare gitignored again instead of whitelisted, andcopyDirectoryskips both names.
- Breaking:
-
7.3.201 Aug 2026Release notes
Open source →Changed
- Merge gg one do merge to gg one do publish --merge-only
Removed
- Dead »MockGgDoMerge« stubs in the do-review tests — gg_one's »DoMerge« class is gone, its merge implementation is now gg_one's »MergeFlow«
-
7.3.101 Aug 2026 -
7.3.001 Aug 2026Release notes
Open source →Changed
- #gg: changed references to pub.dev
Fixed
- Fix missing git references
Removed
- Remove code modifying publish_to because it is not used anymore
-
7.2.201 Aug 2026Release notes
Open source →Changed
- Fix: Skipping unchanged repos from publishing does not work
Fixed
- Fixes
-
7.2.101 Aug 2026Release notes
Open source →Added
- »do publish« makes sure every repo has at least one version on its registry (pub.dev / npm) before it is published. A repo that was never published is published manually by the user first — the shell commands to execute are shown, the publish continues after the package became visible on the registry
Changed
- Make sure package is already published in registry before publishing
- Adapt first-publish gate to merge-only mode from main
- Make sure, package is already published in registry before publishing
-
7.2.001 Aug 2026Release notes
Open source →Changed
- Introtruce .trash for deleted tickets and repos
Removed
- Introduce .trash for published tickets and removed repos
-
7.1.401 Aug 2026Release notes
Open source →Changed
- Auto merge CHANGELOG.md
- Tidy CHANGELOG entry
- #gg: changed references to git
Fixed
- Fix gg do rm repo does not work only work in ticket root but not when in one of the subfolders
- Fix »gg do merge« conflicting with a leftover remote feature branch of an already merged ticket
- Fix error while executing gg do merge
-
7.1.301 Aug 2026Nothing published for this version
-
7.1.201 Aug 2026Nothing published for this version
-
7.1.101 Aug 2026Nothing published for this version
-
7.1.001 Aug 2026 -
7.0.131 Jul 2026 -
7.0.031 Jul 2026Release notes
Open source →Changed
- Do not publish unchanged packages: skip repos without manual changes when no dependency outgrew its published constraint
- Prefix all gg-generated commit messages with "#gg: "; the unchanged-repo check treats such commits as not user generated
- Treat gg-labeled commits touching non-gg files as manual changes so force-committed user work blocks the skip
- Do not update unchanged packages
-
6.0.431 Jul 2026Release notes
Open source →Changed
- Print »waiting until ... appears on pub.dev only one time
- Don't hide files in .gg folder
-
6.0.331 Jul 2026 -
6.0.231 Jul 2026 -
6.0.131 Jul 2026 -
6.0.030 Jul 2026 -
5.12.1030 Jul 2026 -
5.12.930 Jul 2026 -
5.12.830 Jul 2026 -
5.12.730 Jul 2026 -
5.12.630 Jul 2026Release notes
Open source →Fixed
- Stale
.gg/.gg-publish.jsonpublish progress is no longer carried from the master workspace into ticket copies:copyDirectoryskips the file anddo adddeletes a leftover from the master repo before copying. Such a leftover made a freshgg do publishin the new ticket abort with »An unfinished publish left progress …«. - Fix publishing error
- Stale
-
5.12.530 Jul 2026 -
5.12.430 Jul 2026Nothing published for this version
-
5.12.330 Jul 2026 -
5.12.229 Jul 2026Release notes
Open source →Changed
- Support projects without manifest: ProjectType.none, checks skipped, version tracked as git tag only
- do publish: the wait for published dependencies now announces the registry status url, reports progress while polling (via gg_lang's RegistryWaiter logging) and no longer hangs — every registry lookup is bounded by a request timeout; the overall timeout was raised to 15 min (pub.dev, which itself can take up to ~10 min) / 5 min (npm)
- do publish: registry waits show status url and progress, never hang
- Raise pub.dev wait timeout to 15 min (pub.dev can take ~10 min)
- Reuse the ticket message as default
Fixed
- bin test no longer expects a Windows line ending in the "Missing target parameter." message
- Fix hanging publishing process
-
5.12.129 Jul 2026 -
5.12.029 Jul 2026Nothing published for this version