gg_publish
Various tools and checks for publishing dart packages, e.g. versioning, checks etc.
4.4.0
12K downloads/mo
#2688 most downloaded on pub.dev
inlavigo/gg_publish
What this package is like to depend on
Last release 10 days ago
14 Aug 2026
Ships unpredictably
gaps range from 8 days to 6 months
Most releases are documented
notes for 62 of 72 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
72 releases · first in 2024
38 releases in the last 12 months
see the full history below
Release timeline
72 releases · Mar 2024 to Aug 2026Releases
latest 60 of 72-
4.4.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.
-
4.3.312 Aug 2026Nothing published for this version
-
4.3.211 Aug 2026 -
4.3.110 Aug 2026 -
4.3.009 Aug 2026Release notes
Open source →Changed
- Improve commit behavior
- Move gg commit conventions from gg_git to gg_one_core
-
4.2.009 Aug 2026Nothing published for this version
-
4.1.009 Aug 2026Release notes
Open source →Added
SyncHybridVersions— writes the higher ofpubspec.yamlandpackage.jsoninto both manifests and regenerates the version files. A hybrid has two version numbers describing one artifact, and nothing kept them together, so they drifted.PublishTo.targets— the registries a package publishes to, as a set.fromDirectorystays, but only as a label for messages (pub.dev+npmfor a hybrid): no single string can answer "run pana?", "check the npm login?" and "is there any registry?" at once, and pretending otherwise is what made hybrids npm-only.Publishtakestargetsand anonPublishedcallback. A resumed publish passes the registries that are still open, and the callback runs between the uploads, so a registry that already accepted the version is recorded before the next one can fail.PublishedVersion.latestVersionFor/registryVersionsForanswer per registry;IsInRegistry.missingTargetsnames the registries a package has never been released on.
Changed
- A hybrid is published to both of its registries. Each manifest decides
for its own side:
publish_to: nonetakes the Dart side out without touching the npm side, andprivate: truedoes the reverse. pub.dev is uploaded first becausedart pub publish --dry-runis the only pre-upload validation gate. - When one registry fails after another succeeded, the failure now says which registry is already done — reporting "nothing happened" made users restart instead of continue, and the restart was then rejected by the registry.
PublishedVersion.getreturns the highest version across all registries of a package, andallVersions/registryVersionstheir union. The bump has to clear every registry the package is on.IsInRegistryreports true only when every registry has the package, and the first-publish prompt asks per registry, naming that registry's package name and publish command.- The npm wait prints the status page of the resolved registry. A scoped package on a private feed is not on npmjs.com, and that link sent users to a
publish_to:naming a custom pub server is treated as a pub.dev target instead of raisingUnimplementedError. Onlynonetakes a package off its registry. Note the version lookup still queries pub.dev itself — the registry url comes from the language catalog, not from the manifest.- Allow to publish hybrid packages
-
4.0.008 Aug 2026 -
3.10.204 Aug 2026Nothing published for this version
-
3.10.104 Aug 2026Release notes
Open source →Changed
- Merge origin/main and tighten dependency constraints (dart pub upgrade --tighten)
-
3.10.004 Aug 2026 -
3.9.504 Aug 2026 -
3.9.403 Aug 2026Release notes
Open source →Changed
- Prevent pubspec.lock interrupting publishing
Fixed
- Fix issues with pubspec.lock
-
3.9.303 Aug 2026Release notes
Open source →Changed
- refactor: shorten all CLI help texts to 60 chars
- Improve cli log
Fixed
- Fix unit test errors
-
3.9.201 Aug 2026 -
3.9.101 Aug 2026 -
3.9.001 Aug 2026Release notes
Open source →Added
- New command »is-in-registry«: checks if at least one version of the package is available on its registry (pub.dev / npm)
- »publish« makes sure at least one version is already on the registry. A package 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
- Merge main
-
3.8.601 Aug 2026 -
3.8.501 Aug 2026Release notes
Open source →Changed
- Stop publishing when warnings happen
- #gg: changed references to pub.dev
-
3.8.430 Jul 2026Nothing published for this version
-
3.8.330 Jul 2026Release notes
Open source →Removed
- Don't delete branches twice. Remove pubspec_override.yaml before publishing
-
3.8.230 Jul 2026 -
3.8.129 Jul 2026Release notes
Open source →Added
- RemoveVersionTag command: removes an already existing tag of the version to be published - locally as well as on the remote - so the publish flow can recreate it on the new release commit
Changed
- Publish removes an already existing version tag before publishing to the registry. A publish that failed after tagging left the tag on a commit the retry replaces, which made the tag step of the next run refuse to tag or tag an abandoned commit.
-
3.8.029 Jul 2026Release notes
Open source →Changed
- Support projects without manifest: ProjectType.none, checks skipped, version tracked as git tag only
- gg_multi: changed references to git
-
3.7.329 Jul 2026Release notes
Open source →Added
- WaitUntilPublished command: waits until the current manifest version is visible on the registry (pub.dev/npm) — announces the wait incl. a status url, reports progress and fails with a bounded timeout (15 min — pub.dev itself can take up to ~10 min) instead of hanging; skips packages that publish to no registry
- IsVersionPrepared.messagePrefixFor(manifestFile) builds the message prefix from the manifest the version was actually read from
- Add WaitUntilPublished command with status url and bounded timeout
Changed
- Raise WaitUntilPublished default timeout to 15 min (pub.dev can take ~10 min)
Fixed
- Fix hanging publishing process
- "Version in ./pubspec.yaml must be one of the following" no longer names pubspec.yaml for TypeScript projects, which made them look like they were detected as Dart projects. The message now names package.json.
- Requires gg_lang ^0.2.5, so npm published-version lookups no longer trust the "latest" dist-tag
-
3.7.228 Jul 2026 -
3.7.122 Jul 2026Release notes
Open source →Changed
- Run npm registry lookups in the package directory so the project-level .npmrc with private feeds is honored
- gg_multi: changed references to git
-
3.7.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)
- Address review: wrap registry version-parse errors as RegistryException, clarify spent-version rc message, lock cider rc changelog format
Changed
- gg_multi: changed references to git
-
3.6.001 Jul 2026Release notes
Open source →Changed
- npm/pnpm (TypeScript) publishes now run interactively by inheriting the
terminal's stdio, so the package manager can drive its own 2FA flow —
prompting for a one-time password or opening its browser login — instead
of failing with
ERR_PNPM_OTP_NON_INTERACTIVEwhen gg captured the pipe. Dart/pub.dev publishing is unchanged (still captured, gg answers the confirmation prompt). - feat(gg): do checkout + .gg/.ticket.json ticket marker; TS format no direct eslint & P:\programs\flutter/bin/internal/exit_with_errorlevel.bat
- 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
- npm/pnpm (TypeScript) publishes now run interactively by inheriting the
terminal's stdio, so the package manager can drive its own 2FA flow —
prompting for a one-time password or opening its browser login — instead
of failing with
-
3.5.126 Jun 2026 -
3.5.019 Jun 2026Release notes
Open source →Changed
- Treat dart-typescript bridge repos as TypeScript for can/do review (npm install, skip dart pub get); export isBridgeProject from gg_one
- Publish bridges as TypeScript: pnpm-aware publish, dual-manifest version bump, non-swallowed publish errors, idempotent resume, review skips merged repos, link: for local TS deps, package.json scripts check
- gg_multi: changed references to git
-
3.4.008 Jun 2026Release notes
Open source →Changed
- feat: language-universal publishing via gg_lang (npm + pub.dev registry-aware version checks, manifest-driven publish command, TypeScript bypasses CHANGELOG)
- feat(do add): auto-clone transitive deps into master before graph build & P:\programs\flutter/bin/internal/exit_with_errorlevel.bat
- gg_multi: changed references to git
- gg_multi: changed references to git
- Gg Multi: changed references to pub.dev
-
3.3.120 Apr 2026Nothing published for this version
-
3.3.007 Apr 2026Release notes
Open source →Changed
- kidney: changed references to path
- Refactor MainBranch to inject process runner and improve tests
- kidney: changed references to git
Fixed
- Remove useCarriageReturn and fix ggLog parameter in merge command
-
3.2.130 Mar 2026Nothing published for this version
-
3.2.019 Mar 2026 -
3.1.018 Mar 2026Release notes
Open source →Changed
- Improve error message for non-feature branches in is_feature_branch
- Update dependencies: gg_console_colors, gg_git, gg_capture_print
- Update latest dependencies, Add .gitattributes file
-
3.0.1918 Feb 2026Nothing published for this version
-
3.0.1811 Aug 2025 -
3.0.1709 Jun 2025 -
3.0.1613 Apr 2024 -
3.0.1512 Apr 2024Release notes
Open source →Added
- use dart pub outdated json response
Removed
- dependency to gg_install_gg, remove ./check script
-
3.0.1411 Apr 2024 -
3.0.1311 Apr 2024 -
3.0.1211 Apr 2024 -
3.0.1111 Apr 2024Release notes
Open source →Changed
- MockIsUpgraded reuses code from MockDirCommand
- derive all mocks from MockDirCommand
- Fintue mocks
-
3.0.1011 Apr 2024 -
3.0.909 Apr 2024 -
3.0.809 Apr 2024 -
3.0.709 Apr 2024 -
3.0.609 Apr 2024Release notes
Open source →Added
- Publish: add askBeforePublishing to supress asking for confirmation
-
3.0.509 Apr 2024 -
3.0.409 Apr 2024Release notes
Open source →Fixed
- IsPublished will no also handle packages that are not published to pub.dev
-
3.0.309 Apr 2024 -
3.0.208 Apr 2024Release notes
Open source →Added
- Take over IsVersionPrepared, PrepareNextVersion and PublishedVersion from gg_version
- IsVersionPrepared: Does also work for packages not published to git
-
3.0.108 Apr 2024 -
3.0.006 Apr 2024Release notes
Open source →Added
- Increased version
Changed
- Rework changelog
- 'Github Actions Pipeline'
- 'Github Actions Pipeline: Add SDK file containing flutter into .github/workflows to make github installing flutter and not dart SDK'
- BREAKING CHANGE:
is-publishedrenamed intois-latest state-published - Added a new
is-publishedwhich returnstruewhen the package is published at all
-
2.0.205 Apr 2024 -
2.0.104 Apr 2024Release notes
Open source →- Breaking change: Move
IsVersionPreparedandPublishedVersiontogg_version
- Breaking change: Move
-
2.0.004 Apr 2024Nothing published for this version