PackageTrack
Sign in Get early access

gg_lang

Shared language catalog and project-type detection for the gg toolchain.

0.6.1 2.7K downloads/mo #4792 most downloaded on pub.dev ggsuite/gg_lang

What this package is like to depend on

Last release 9 days ago

15 Aug 2026

Ships fairly regularly

a new release about every 2 weeks

Nearly every release is documented

notes for 20 of 20 stable releases

Nothing withdrawn

no release was ever pulled

2 months old

20 releases · first in 2026

20 releases in the last 12 months

see the full history below

Release timeline

20 releases · Jun 2026 to Aug 2026
Release Pre-release

Releases

latest 20
  1. 0.6.1 15 Aug 2026
    Release notes

    Changed

    • Detect Flutter packages by their SDK dependency
    Open source →
  2. 0.6.0 13 Aug 2026
    Release notes

    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.
    Open source →
  3. 0.5.1 11 Aug 2026
    Release notes

    Changed

    • Provide gg via npm
    • Fix shell changes
    Open source →
  4. 0.5.0 09 Aug 2026
    Release notes

    Added

    • PublishTarget, publishTargetsOf and the PublishTargetsX extension — a package can now have a set of registries instead of one. Both manifests of a hybrid are read independently, so publish_to: none takes the Dart side out without touching the npm side and private: true does the reverse. This is what lets a hybrid publish to pub.dev and npm; checkProjectType, which resolves a hybrid to a single ProjectType, cannot express that.
    • hybridVersions / hybridVersionsDiffer — read both manifest versions of a hybrid, for reconciling them and for deciding whether pana can run.
    • NpmRegistryResolver and the pure npmStatusUrlTemplate — resolve the registry a package actually publishes to from the merged .npmrc (publishConfig.registry@scope:registryregistry) and derive the human-facing status page from it. The npm registry and Azure Artifacts (cloud, organization-scoped, legacy *.pkgs.visualstudio.com and self-hosted) are mapped to their web pages; anything else falls back to the packument url. Before, the publish flow always printed an npmjs.com link, which is wrong for every scoped package on a private feed. Only the registry keys are ever read — never the _authToken/_auth credentials next to them.
    • TypeScriptPackageManager.updateCommand({required bool latest}) — the argv to upgrade dependencies, so gg do upgrade deps can reach the node side.

    Changed

    • Allow to publish hybrid packages
    Open source →
  5. 0.4.1 08 Aug 2026
    Release notes

    Added

    • isHybridProject — the predicate under its new name. isBridgeProject keeps working as an alias but now carries the widened meaning; "bridge" suggested a repo bridging two languages, while the rule is really about a repo carrying two manifests.

    Changed

    • A hybrid repository — one carrying both a pubspec.yaml and a package.json — is recognized as such without a tsconfig.json, and checkProjectType resolves it to ProjectType.typescript. Before, the detection additionally required a tsconfig.json, so a Dart package that publishes its payload as an npm tarball fell through to ProjectType.dart: gg ran only the Dart pipeline on it, never the npm scripts, never wrote its package.json version, and never published it to npm.
    • Allow to publish pnpm packages without typescript.
    Open source →
  6. 0.4.0 04 Aug 2026
    Release notes

    Changed

    • Rename .master to .ocean with automatic migration at next start
    Open source →
  7. 0.3.3 03 Aug 2026
    Release notes

    Changed

    • Finetune command line output
    Open source →
  8. 0.3.2 31 Jul 2026
    Release notes

    Changed

    • Print »waiting until ... appears on pub.dev only one time
    • Merge main
    Open source →
  9. 0.3.1 30 Jul 2026
    Release notes

    Added

    • RegistryWaiter.resetAnnouncements: clears the process-wide announcement state so tests can assert the start message per test

    Changed

    • Waiting until appears multiple times

    Fixed

    • RegistryWaiter.waitUntilVersionAvailable announces a wait at most once per version and process. The publish flow waits for the same version from more than one place — the repo publishing it, then later repos depending on it — and each place builds its own waiter, so the »Waiting until … appears on pub.dev« message was printed more than once.
    • A version that is already visible returns without logging anything: there is no wait to report.
    • A repeated wait no longer repeats the announcement — a stale registry response or a transient lookup error can make a published version look unpublished again. Progress, success and timeout messages are unaffected.
    Open source →
  10. 0.3.0 29 Jul 2026
    Release notes

    Changed

    • Support projects without manifest: ProjectType.none, checks skipped, version tracked as git tag only
    Open source →
  11. 0.2.7 29 Jul 2026
    Release notes

    Changed

    • RegistryWaiter prints its wait and progress messages in dark gray, the status url in blue and the success message in green
    • Print registry wait messages dark gray, status url blue, success green
    Open source →
  12. 0.2.6 29 Jul 2026
    Release notes

    Added

    • RegistrySpec.statusUrl + statusUrlFor: human-facing status page url (pub.dev versions page, npmjs.com package page) resolved from the language catalog
    • RegistryWaiter: optional log callback and statusUrl — announces the wait incl. the status page url, reports periodic progress and includes the url in the timeout error
    • Add registry request timeouts, RegistryWaiter logging and status urls

    Fixed

    • PubDevRegistry and NpmRegistry now bound every single lookup with a request timeout (RegistryException instead of hanging forever on a stalled HTTP connection or an npm process waiting for interactive input)
    • NpmRegistry.latestVersion no longer reads the "latest" dist-tag. Private feeds (e.g. Azure Artifacts) can leave the tag pointing at an older release, which made an already published version look unpublished and rejected the correct next version. The published version list is now authoritative, preferring the highest stable release and falling back to prereleases only when nothing stable exists.
    Open source →
  13. 0.2.5 28 Jul 2026
    Release notes

    Changed

    • Do not trust the npm latest dist-tag when reading the published version
    Open source →
  14. 0.2.4 22 Jul 2026
    Release notes

    Changed

    • Run npm registry lookups in the package directory so the project-level .npmrc with private feeds is honored

    Fixed

    • Fix .gitignore so .gg/.gg.json is trackable and expose allLockFileNames for lock-file classification
    Open source →
  15. 0.2.3 20 Jul 2026
    Release notes

    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
    Open source →
  16. 0.2.2 15 Jul 2026
    Release notes

    Changed

    • Make LanguageCatalog.load AOT-safe: embed languages.json as Dart constant instead of Isolate.resolvePackageUri asset lookup
    • Gg Multi: changed references to pub.dev
    Open source →
  17. 0.2.1 26 Jun 2026
    Release notes

    Changed

    • Preserve dependency constraint operator (^^/~/exact) through publish
    Open source →
  18. 0.2.0 19 Jun 2026
    Release notes

    Changed

    • Treat dart-typescript bridge repos as TypeScript for can/do commit, running package.json scripts (test/lint/format:check)
    • Treat dart-typescript bridge repos as TypeScript for can/do review (npm install, skip dart pub get); export isBridgeProject from gg_one
    • Introduce checkProjectType() as single source of truth for bridge->TypeScript check rule; add .example() real-instance factories & P:\programs\flutter/bin/internal/exit_with_errorlevel.bat
    • 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
    Open source →
  19. 0.1.0 08 Jun 2026
    Release notes

    Added

    • Manifest — format-driven accessor that reads and writes package name, version and publish-target marker for both pubspec.yaml (yaml, via yaml_edit so formatting/comments survive) and package.json (json), driven by ManifestSpec. Includes isPrivate() and a Manifest.detect factory.
    • Registry abstraction with PubDevRegistry (pub.dev HTTP API) and NpmRegistry (npm view <name> version), plus a RegistryFactory that picks the implementation from the new RegistrySpec in the catalog.
    • RegistrySpec and LanguageSpec.registry; languages.json now describes the registry for dart/flutter (http) and typescript (cli).

    Changed

    • chore: prepare gg_lang 0.0.1 for publishing (remove publish_to:none, changelog)
    • feat(do add): auto-clone transitive deps into master before graph build & P:\programs\flutter/bin/internal/exit_with_errorlevel.bat
    • feat(gg_lang): add example/ for pana compliance
    Open source →
  20. 0.0.1 01 Jun 2026
    Release notes

    Added

    • Initial release: ProjectType / detectProjectType, TypeScriptPackageManager, and the LanguageCatalog with a bundled languages.json asset — the shared catalog of language-specific commands (install / analyze / format / test / publish / registryVersion) and package metadata for Dart, Flutter and TypeScript. Extracted from gg_one so it can be shared by gg_one, gg_test and gg_publish without circular dependencies.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive