gg_publish 4.8.0 copy "gg_publish: ^4.8.0" to clipboard
gg_publish: ^4.8.0 copied to clipboard

Various tools and checks for publishing dart packages, e.g. versioning, checks etc.

Changelog #

4.8.0 - 2026-09-28 #

Changed #

  • Count the next version on from the highest version tag on origin and refuse to merge over a tag of the prepared version

4.7.1 - 2026-09-22 #

Changed #

  • "Quiet
  • "Tighten

4.7.0 - 2026-09-11 #

Changed #

  • MainBranch returns the declared default branch of the repository when it has one

4.6.0 - 2026-09-09 #

Changed #

  • Keep the build number of pubspec.yaml on publish and count it up: 1.2.4+155 becomes 1.2.5+156

4.5.0 - 2026-09-02 #

Changed #

  • Install the dna_ggsuite DNA

4.4.1 - 2026-09-01 #

Changed #

  • Use ggwsm in pipelines

Fixed #

  • Fix Windows-specific test failures that blocked the review

4.4.0 - 2026-08-14 #

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.3 - 2026-08-12 #

4.3.2 - 2026-08-11 #

Changed #

  • Provide gg via npm
  • Fix shell changes

4.3.1 - 2026-08-10 #

Fixed #

  • Various log and color fixes across the gg command output

4.3.0 - 2026-08-09 #

Changed #

  • Improve commit behavior
  • Move gg commit conventions from gg_git to gg_one_core

4.2.0 - 2026-08-09 #

4.1.0 - 2026-08-09 #

Added #

  • SyncHybridVersions — writes the higher of pubspec.yaml and package.json into 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. fromDirectory stays, but only as a label for messages (pub.dev+npm for 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.
  • Publish takes targets and an onPublished callback. 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 / registryVersionsFor answer per registry; IsInRegistry.missingTargets names 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: none takes the Dart side out without touching the npm side, and private: true does the reverse. pub.dev is uploaded first because dart pub publish --dry-run is 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.get returns the highest version across all registries of a package, and allVersions/registryVersions their union. The bump has to clear every registry the package is on.
  • IsInRegistry reports 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 raising UnimplementedError. Only none takes 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.0 - 2026-08-08 #

Changed #

  • Allow to pass custom options to exec of dir commands.

3.10.2 - 2026-08-04 #

3.10.1 - 2026-08-04 #

Changed #

  • Merge origin/main and tighten dependency constraints (dart pub upgrade --tighten)

3.10.0 - 2026-08-04 #

Changed #

  • Rename .master in .ocean

3.9.5 - 2026-08-04 #

Changed #

  • Finetune command line output

3.9.4 - 2026-08-03 #

Changed #

  • Prevent pubspec.lock interrupting publishing

Fixed #

  • Fix issues with pubspec.lock

3.9.3 - 2026-08-03 #

Changed #

  • refactor: shorten all CLI help texts to 60 chars
  • Improve cli log

Fixed #

  • Fix unit test errors

3.9.2 - 2026-08-01 #

Changed #

  • Take base version from git tags when publish_to is none

3.9.1 - 2026-08-01 #

Changed #

  • Fix: Skipping unchanged repos from publishing does not work

3.9.0 - 2026-08-01 #

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.6 - 2026-08-01 #

Fixed #

  • Fix: Publishing fails

3.8.5 - 2026-08-01 #

Changed #

  • Stop publishing when warnings happen
  • #gg: changed references to pub.dev

3.8.4 - 2026-07-30 #

3.8.3 - 2026-07-30 #

Removed #

  • Don't delete branches twice. Remove pubspec_override.yaml before publishing

3.8.2 - 2026-07-30 #

Added #

  • Add package version number code to each package

3.8.1 - 2026-07-29 #

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.0 - 2026-07-29 #

Changed #

  • Support projects without manifest: ProjectType.none, checks skipped, version tracked as git tag only
  • gg_multi: changed references to git

3.7.3 - 2026-07-29 #

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.2 - 2026-07-28 #

Changed #

  • Name the actual manifest in the version-not-prepared message

3.7.1 - 2026-07-22 #

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.0 - 2026-07-20 #

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.0 - 2026-07-01 #

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_INTERACTIVE when 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

3.5.1 - 2026-06-26 #

Changed #

  • gg_multi: changed references to git

3.5.0 - 2026-06-19 #

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.0 - 2026-06-08 #

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.1 - 2026-04-20 #

3.3.0 - 2026-04-07 #

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.1 - 2026-03-30 #

3.2.0 - 2026-03-19 #

Added #

  • Add is-main-branch command to check for main branch in Git

3.1.0 - 2026-03-18 #

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.18 - 2025-08-11 #

Changed #

  • Update to gg_git 3.0.0

3.0.17 - 2025-06-09 #

Changed #

  • Improve version mismatch error message

3.0.16 - 2024-04-13 #

Removed #

  • dependency pana

3.0.15 - 2024-04-12 #

Added #

  • use dart pub outdated json response

Removed #

  • dependency to gg_install_gg, remove ./check script

3.0.14 - 2024-04-11 #

Changed #

  • upgrade dependencies

3.0.13 - 2024-04-11 #

Changed #

  • Fix mocks

3.0.12 - 2024-04-11 #

Added #

  • PrepareNextVersion: Specify published version from outside

3.0.11 - 2024-04-11 #

Changed #

  • MockIsUpgraded reuses code from MockDirCommand
  • derive all mocks from MockDirCommand
  • Fintue mocks

3.0.10 - 2024-04-11 #

Added #

  • Extend mock for IsUpgraded

3.0.9 - 2024-04-09 #

Removed #

  • 'Pipline: Disable cache'

3.0.8 - 2024-04-09 #

Fixed #

  • Fixed an error on IsVersionPrepared

3.0.7 - 2024-04-09 #

Changed #

  • Update dependency gg_version to 4.0.0

3.0.6 - 2024-04-09 #

Added #

  • Publish: add askBeforePublishing to supress asking for confirmation

3.0.5 - 2024-04-09 #

Fixed #

  • PublishedVersion did not handle publish_to: none

3.0.4 - 2024-04-09 #

Fixed #

  • IsPublished will no also handle packages that are not published to pub.dev

3.0.3 - 2024-04-09 #

Fixed #

  • IsVersionPrepared did not work with local uncommitted changes

3.0.2 - 2024-04-08 #

Added #

  • Take over IsVersionPrepared, PrepareNextVersion and PublishedVersion from gg_version
  • IsVersionPrepared: Does also work for packages not published to git

3.0.1 - 2024-04-08 #

Added #

  • publish-to command to get the publish target

3.0.0 - 2024-04-06 #

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-published renamed into is-latest state-published
  • Added a new is-published which returns true when the package is published at all

2.0.2 - 2024-01-01 #

  • Update gg_version to 2.0.0

2.0.1 - 2024-01-01 #

  • Breaking change: Move IsVersionPrepared and PublishedVersion to gg_version

1.2.0 - 2024-01-01 #

  • Add Publish command

1.1.3 - 2024-01-01 #

  • Next Update

1.1.2 - 2024-01-01 #

  • Add IsVersionPrepared

1.0.7 - 2024-01-01 #

  • Update dependencies

1.0.6 - 2024-01-01 #

  • Update GgConsoleColors

1.0.5 - 2024-01-01 #

  • Add GgLog

1.0.4 - 2024-01-01 #

  • Add mocktail mocks

1.0.3 - 2024-01-01 #

  • Adapt directory structure

1.0.2 - 2024-01-01 #

  • Make commands public

1.0.1 - 2024-01-01 #

  • Add is-upgraded command

1.0.0 - 2024-01-01 #

  • Initial version.
1
likes
160
points
5.76k
downloads

Documentation

API reference

Publisher

verified publisherinlavigo.com

Weekly Downloads

Various tools and checks for publishing dart packages, e.g. versioning, checks etc.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

args, gg_args, gg_console_colors, gg_git, gg_is_flutter, gg_lang, gg_log, gg_process, gg_status_printer, gg_version, http, matcher, mocktail, path, pub_semver

More

Packages that depend on gg_publish