gg_one
The convenient dart & flutter developer command line, bundling the gg_one tool family into one CLI.
14.3.0
3.8K downloads/mo
#4258 most downloaded on pub.dev
ggsuite/gg_one
What this package is like to depend on
Last release 10 days ago
14 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 63 of 70 stable releases
Nothing withdrawn
no release was ever pulled
3 months old
70 releases · first in 2026
70 releases in the last 12 months
see the full history below
Release timeline
70 releases · May 2026 to Aug 2026Releases
latest 60 of 70-
14.3.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.
-
14.2.111 Aug 2026 -
14.2.010 Aug 2026 -
14.1.310 Aug 2026Release notes
Open source →Changed
- Make sure »dart pub upgrade --tighten --major-versions« is called before publishing
-
14.1.210 Aug 2026Nothing published for this version
-
14.1.110 Aug 2026 -
14.1.009 Aug 2026Release notes
Open source →Changed
- Move gg commit conventions from gg_git to gg_one_core
- Improve commit behavior
-
14.0.009 Aug 2026Nothing published for this version
-
13.1.008 Aug 2026Nothing published for this version
-
13.0.008 Aug 2026Nothing published for this version
-
12.9.307 Aug 2026Nothing published for this version
-
12.9.205 Aug 2026Release notes
Open source →Changed
- Extract the state kernel, the check commands and the publish configuration into the new gg_one_core package
- Extract the commit, push, upgrade and ticket flows into the new gg_one_commit package
- Extract MergeFlow, CreatePullRequest, lock files helper and CanMerge into the new gg_one_merge package
- Extract DoPublish, CanPublish, DidPublish and the version tag tools into the new gg_one_do_publish package
- Reduce gg_one to the umbrella CLI; distribute behavior docs into the sub-packages
- Split gg_one into gg_one_core, gg_one_commit, gg_one_merge and gg_one_do_publish
- Port the .gg/gg.json ignore guard from gg_one main into gg_one_core
Removed
- Decouple internals from the gg_one barrel; remove dead code and unused dependencies
-
12.9.105 Aug 2026Release notes
Open source →Added
- ».gg/gg.json« must not be git-ignored: every command now heals simple .gitignore rules (».gg«, ».gg/«, ».gg/«, a literal ».gg/gg.json«) into the canonical ».gg/« + »!.gg/gg.json« pair and commits the fix — or fails with the manual fix when the rule cannot be rewritten safely
Changed
- Changes to .gg/gg.json are only amended into gg's own »#gg: …« bookkeeping commits. User commits are never rewritten silently; the state lands in a separate »#gg:« commit instead
Fixed
- The first »do publish« in a repository whose .gitignore ignored the whole ».gg/« folder no longer crashes with »git add .gitignore .gg/gg.json failed«
-
12.9.004 Aug 2026Release notes
Open source →Changed
- Show ticket deletion dialog at the beginning of publish. Recolorize.
- Use overrides in package.json
-
12.8.004 Aug 2026 -
12.7.204 Aug 2026Release notes
Open source →Added
- »do publish« refuses when the version about to be published is already in CHANGELOG.md and continuing would lose »## Unreleased« entries or the pubspec.yaml version does not match
- The versions in CHANGELOG.md are sorted before publishing. Newest first.
Changed
- Fix issues with CHANGELOG.md
-
12.7.104 Aug 2026 -
12.7.004 Aug 2026Release notes
Open source →Changed
- Improve push and publish workflow
- Rename »gg one do upgrade dependencies« into Rename
-
12.6.104 Aug 2026Release notes
Open source →Added
- Add cached repo test helpers (initCachedRepo, initCachedRepoPair, initCachedGit, initCachedLocalAndRemoteGit); move pushLocalChangesUpstream from gg_one to gg_git; fix stale emoji expectations from gg_status_printer 1.4.2
Changed
- Merge origin/main and tighten dependency constraints (dart pub upgrade --tighten)
Fixed
- Migrate slow git-fixture suites to gg_git cached repo helpers (do_publish -43%, full run -36%)
-
12.6.004 Aug 2026Release notes
Open source →Changed
- Rename .master to .ocean with automatic migration at next start
- Rename ocean workspace -> ocean
-
12.5.504 Aug 2026 -
12.5.403 Aug 2026Release notes
Open source →Changed
- Prevent pubspec.lock interrupting publishing
Fixed
- Fix issues with pubspec.lock
-
12.5.303 Aug 2026 -
12.5.203 Aug 2026 -
12.5.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
- replace do cancel-review with do review --abort
- refactor: rename publish --reconfigure to --restart
- refactor: shorten all CLI help texts to 60 chars
- Rework CLI texts
- refactor(gg_one): move do upgrade to do upgrade dependencies
- refactor(gg_one): move did upgrade to did upgrade dependencies
- reword all command descriptions to the same terse imperative gg do and gg can already use
- Rework console colors
- Improve cli log and colors
Removed
- refactor(gg_one): remove do maintain command
- refactor(gg_one): remove can checkout from the CLI
- refactor(gg_one): remove can merge from the CLI
- refactor(gg_one): remove can upgrade from the CLI
- refactor(gg_one): remove the check command group from the CLI
- refactor(gg_one): remove do configure-publish from the CLI
- remove do checkout — gg do import ticket covers reproducing a ticket
- Remove unused CLI commands
-
12.5.002 Aug 2026Release notes
Open source →Added
CreatePullRequest(lib/src/tools/create_pull_request.dart): opens — or reuses — the pull request of the current feature branch on GitHub/Azure DevOps and returns its url. It is created without auto-merge, sogg_multi do reviewcan open a pull request while the ticket is still being worked on; onlydo publishadds the auto-merge flag.
Changed
- Create pull request as part of the review
-
12.4.102 Aug 2026Release notes
Open source →Changed
- Merge main into 71
Fixed
- »gg do create ticket« no longer applies a stash it did not create: »git stash create« probes the worktree first, so a clean worktree skips stashing entirely and a foreign stash entry is never restored into the fresh ticket branch. The own entry is pushed with a »gg:<branch>« message and popped instead of applied, so the stash stack no longer grows with every ticket
- Fix git errors: own stash in create ticket, locale-independent push state
-
12.4.002 Aug 2026Release notes
Open source →Changed
- Throw an error on unknown gg one sub commands, also if option -h is given
- Throw an error when gg on do publish is called within a ticket repo
- Use gg_args 2.1.0 which reports unknown sub commands itself
Removed
- Remove gg do merge, use gg do publish --merge-only which asks for no version increment
-
12.3.001 Aug 2026Release notes
Open source →Changed
- Do not upload ticket.json. Share it manually and import it using "gg do checkout"
-
12.2.101 Aug 2026Release notes
Open source →Changed
- Merge gg one do merge to gg one do publish --merge-only
Removed
- The »gg do merge« command — use »gg do publish --merge-only«, which runs the same flow without version bump, changelog heading, registry upload and tag
- The »DoMerge« class — its merge implementation is now the plain tool »MergeFlow« (lib/src/tools/merge_flow.dart), driven by »DoPublish«
-
12.2.001 Aug 2026 -
12.1.201 Aug 2026Release notes
Open source →Changed
- Fix: Skipping unchanged repos from publishing does not work
Fixed
- Fixes
-
12.1.101 Aug 2026Release notes
Open source →Changed
- Make sure package is already published in registry before publishing
-
12.1.001 Aug 2026Release notes
Open source →Added
- Add »gg do merge«
Changed
- #gg: changed references to git
- #gg: changed references to pub.dev
-
12.0.201 Aug 2026 -
12.0.131 Jul 2026Release notes
Open source →Changed
- Never publish ticket.json
Fixed
- Remove the
.gg/ticket.jsonticket marker before the version bump and registry upload, so it is no longer shipped to pub.dev/npm inside the published package (previously it was only removed at merge time, after the upload)
-
12.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
-
11.3.031 Jul 2026 -
11.2.631 Jul 2026 -
11.2.530 Jul 2026Release notes
Open source →Fixed
do publishnow discards publish progress recorded on a different feature branch instead of refusing to run (or, on--continue, silently skipping the version bump and registry upload and merging without publishing). Such progress is a stale leftover that arrived with a copy of the repository — e.g. a ticket copy of the master workspace.- Fix publishing error
-
11.2.430 Jul 2026Release notes
Open source →Removed
- Don't delete branches twice. Remove pubspec_override.yaml before publishing
-
11.2.330 Jul 2026 -
11.2.229 Jul 2026Release notes
Open source →Changed
- Support projects without manifest: ProjectType.none, checks skipped, version tracked as git tag only
- do publish removes an already existing tag of the version to be published - locally as well as on the remote - before it tags the release. A publish that failed after tagging left the tag on a commit the retry replaces, which made the tag step refuse to tag ("must be greater ...") or tag an abandoned commit.
- Recreate tags on publishing
-
11.2.129 Jul 2026 -
11.2.029 Jul 2026Nothing published for this version
-
11.1.029 Jul 2026Release notes
Open source →Removed
- Remove git hooks functionality completely because merging is done via merge requests
-
11.0.229 Jul 2026 -
11.0.129 Jul 2026Release notes
Open source →Added
- do publish now waits after the registry publish until the version is actually visible on pub.dev/npm (via gg_publish's WaitUntilPublished): a message announces the wait incl. a status url, progress is reported and the wait is bounded by a timeout instead of hanging
Changed
- do publish: wait visibly until the version appears on pub.dev/npm
- do publish: keep merge and pull-request wait messages visible
- do merge: sync main fast-forward-only, reset gg-bookkeeping divergence
- Refuse to publish ticket repos with a suppressed publish target
- do publish waits until version is published and pull request is merged
Fixed
- do publish refuses to publish a repo whose publish target is suppressed by the ticket tooling (
gg multi do addwritespublish_to: none). Before, it silently skipped the registry upload and mergedpublish_to: noneinto the main branch — publish the ticket withgg multi do publishinstead - do publish announces a skipped registry upload instead of skipping silently
- do merge passes the pull request's source branch to the wait, so a moved HEAD no longer causes "No pull request found for branch main"
- do merge: updating the local main branch no longer aborts with "You have divergent branches": the pull is fast-forward-only, and when main diverged from origin/main with gg bookkeeping or lock-file drift only, it is reset to origin/main (real local commits still abort with a clear message)
-
11.0.022 Jul 2026Release notes
Open source →Added
- Add --pr flag (default on): merge via auto-merge pull request and wait, fall back to local merge on unsupported providers, --no-pr restores local merge
Changed
- Forward the merge message into the pull-request flow, drop the doMerge and doPublish states and prune legacy keys from .gg/.gg.json
- Absorb pre-push-hook worktree drift in the pull-request merge flow so the final checkout of main does not fail
- Skip pull request and wait when a resumed run finds the release content already merged into main
- Use the shared origin-url lookup and gg_lang lock-file names and memoize the legacy-key pruning
- gg_multi: changed references to git
-
10.3.020 Jul 2026Release notes
Open source →Changed
- Accept
testin a TypeScript package'sprebuildscript as fulfilling the build-must-run-test rule - gg_multi: changed references to git
Fixed
- Ignore
.gg/*instead of the whole.ggdirectory, so.gg/.gg.jsonand.gg/.ticket.jsonstay trackable
Removed
- Remove stale root .ticket marker from main - do merge only drops .gg/.ticket.json, so the old marker leaked through squash merges and preset wrong merge messages
- Accept
-
10.2.220 Jul 2026Release notes
Open source →Fixed
- Re-release combining the rc prerelease channel (10.2.0) with the do-merge dirty-worktree fix - pub.dev 10.2.1 was published without the rc channel
-
10.2.120 Jul 2026Release notes
Open source →Changed
- fix(do-merge): commit pending tracked worktree changes before switching branches, so a publish-time formatter (prettier --write reformatting pubspec.yaml) or a gg .gg/.gg.json state write no longer aborts the merge's git checkout <main> with 'local changes would be overwritten'
-
10.2.020 Jul 2026Release notes
Open source →Added
- Add rc prerelease channel to gg do publish (channel field/flag, X.Y.Z-rc.N computation, npm --tag rc, single + multi repo)
Changed
- Track .gg/.gg.json again - .gitignore excluded the whole .gg directory, so CI never saw the check states
- gg_multi: changed references to git
-
10.1.120 Jul 2026Release notes
Open source →Fixed
- Fix broken GitHub pipelines: doPush state was not written on the release commit during publish
-
10.1.015 Jul 2026Release notes
Open source →Added
- delete_feature_branch (bool, optional) in
.gg-publish.json: replaces the interactive delete-feature-branch prompt, so a config-driven publish is fully headless.do configure-publishnow asks the question up front (presettable via--delete-feature-branch) anddo publishpersists the decision in the runtime file — a resumed run never re-asks, and no prompt sits between the irreversible publish steps anymore. - All default prompts (version increment, merge message, branch/ticket
deletion) fail fast with an actionable error when stdin is not a
terminal (new throwWhenNotATerminal in
tools/terminal_guard.dart), instead of hanging forever in CI or piped shells.
Changed
- Tidy CHANGELOG Unreleased sections
- delete_feature_branch (bool, optional) in
-
10.0.015 Jul 2026Release notes
Open source →Added
do configure-publish: new command that interactively writes<repo>/.gg/.gg-publish.json(version increment + merge message;-mpresets the message).do publishruns it automatically when started without a resolved configuration, so all interactive decisions happen before the unattended publish. The command also makes sure.gg/.gg-publish.jsonis listed in.gitignore(appending and committing the entry once per repo).do publish --continue/--reconfigure: per-step publish progress (done_steps: prepare_version, publish_registry, merge, tag) is recorded in.gg/.gg-publish.jsonand a failed publish resumes at the first open step — including the version tag, which the old hash-based state could silently skip. A leftover progress file makes a plain re-run refuse until--continueor--reconfigureis chosen. The file stores the feature branch (trusted only when resuming) and is deleted after a fully successful publish. On resume, the hash-keyeddid commitcheck still runs, so raw commits added after the failure are never published unvalidated; the feature-branch deletion is idempotent and re-runs; when the merge is already done, the default branch is checked out before the first push.do configure-publishrefuses to overwrite a file that carriesdone_steps(code review).DoPublish.execacceptsresume:sogg_multi do publish --continueresumes each repo at its open step.PublishConfig: done_steps + branch runtime fields with withStepDone/isStepDone/hasStepProgress; newEnsurePublishConfigIgnoredtool;GgState.ignoreFilesnow excludes.gg/.gg-publish.jsonfrom content hashes.
Changed
- Breaking:
DoPublishno longer takes versionSelector / editMessage — both prompts live in the injectableDoConfigurePublishnow. The publish-step resume no longer uses the hash-keyed doPrepareVersion/doPublishPubDev/doMerge GgState keys; doPublish/doCommit are still written fordid publishand the pre-push hook. - Tidy CHANGELOGs: single Unreleased section and chronological order
Fixed
- Code-review fixes: resume-safe branch handling, progress guards for configure/--config, did-commit check and idempotent branch deletion on resume
-
9.5.006 Jul 2026Release notes
Open source →Changed
- feat: merge via auto-complete pull request on protected main (Azure) and wait until merged
- docs(gg_one): document protected-main pull-request publish flow
- gg_multi: changed references to git
-
9.4.001 Jul 2026Release notes
Open source →Changed
- npm-logged-in: resolve the package's actual publish registry
(
publishConfig.registry→@scope:registry→ defaultregistry) and runwhoamiagainst that registry, instead of always checking npmjs.org. This makes the check work for Azure DevOps, GitHub Packages and other private registries. Registries without reliablewhoamisupport (e.g. Azure DevOps) are skipped gracefully instead of failing the check — the auth is verified for real at publish time.
- npm-logged-in: resolve the package's actual publish registry
(
-
9.3.001 Jul 2026Release notes
Open source →Changed
- feat(gg): interactive npm publish + npm-logged-in precheck; package.json prepublishOnly->build->test rules (bridges exempt from build->test); do review pnpm blockExoticSubdeps + stdout; can publish runs per-repo can-publish; do merge/publish write doCommit; pana skip label
- gg_multi: changed references to git
-
9.2.226 Jun 2026Release notes
Open source →Changed
- Preserve dependency constraint operator (^^/~/exact) through publish
- gg_multi: changed references to git