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 2026Releases
latest 20-
0.6.115 Aug 2026 -
0.6.013 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.
-
0.5.111 Aug 2026 -
0.5.009 Aug 2026Release notes
Open source →Added
PublishTarget,publishTargetsOfand thePublishTargetsXextension — a package can now have a set of registries instead of one. Both manifests of a hybrid are read independently, sopublish_to: nonetakes the Dart side out without touching the npm side andprivate: truedoes the reverse. This is what lets a hybrid publish to pub.dev and npm;checkProjectType, which resolves a hybrid to a singleProjectType, cannot express that.hybridVersions/hybridVersionsDiffer— read both manifest versions of a hybrid, for reconciling them and for deciding whether pana can run.NpmRegistryResolverand the purenpmStatusUrlTemplate— resolve the registry a package actually publishes to from the merged.npmrc(publishConfig.registry→@scope:registry→registry) and derive the human-facing status page from it. The npm registry and Azure Artifacts (cloud, organization-scoped, legacy*.pkgs.visualstudio.comand self-hosted) are mapped to their web pages; anything else falls back to the packument url. Before, the publish flow always printed annpmjs.comlink, which is wrong for every scoped package on a private feed. Only theregistrykeys are ever read — never the_authToken/_authcredentials next to them.TypeScriptPackageManager.updateCommand({required bool latest})— the argv to upgrade dependencies, sogg do upgrade depscan reach the node side.
Changed
- Allow to publish hybrid packages
-
0.4.108 Aug 2026Release notes
Open source →Added
isHybridProject— the predicate under its new name.isBridgeProjectkeeps 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.yamland apackage.json— is recognized as such without atsconfig.json, andcheckProjectTyperesolves it toProjectType.typescript. Before, the detection additionally required atsconfig.json, so a Dart package that publishes its payload as an npm tarball fell through toProjectType.dart: gg ran only the Dart pipeline on it, never the npm scripts, never wrote itspackage.jsonversion, and never published it to npm. - Allow to publish pnpm packages without typescript.
-
0.4.004 Aug 2026 -
0.3.303 Aug 2026 -
0.3.231 Jul 2026Release notes
Open source →Changed
- Print »waiting until ... appears on pub.dev only one time
- Merge main
-
0.3.130 Jul 2026Release notes
Open source →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.
-
0.3.029 Jul 2026Release notes
Open source →Changed
- Support projects without manifest: ProjectType.none, checks skipped, version tracked as git tag only
-
0.2.729 Jul 2026Release notes
Open source →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
-
0.2.629 Jul 2026Release notes
Open source →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.
-
0.2.528 Jul 2026Release notes
Open source →Changed
- Do not trust the npm latest dist-tag when reading the published version
-
0.2.422 Jul 2026Release notes
Open source →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
-
0.2.320 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
-
0.2.215 Jul 2026Release notes
Open source →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
-
0.2.126 Jun 2026Release notes
Open source →Changed
- Preserve dependency constraint operator (^^/~/exact) through publish
-
0.2.019 Jun 2026Release notes
Open source →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
-
0.1.008 Jun 2026Release notes
Open source →Added
Manifest— format-driven accessor that reads and writes package name, version and publish-target marker for bothpubspec.yaml(yaml, viayaml_editso formatting/comments survive) andpackage.json(json), driven byManifestSpec. IncludesisPrivate()and aManifest.detectfactory.Registryabstraction withPubDevRegistry(pub.dev HTTP API) andNpmRegistry(npm view <name> version), plus aRegistryFactorythat picks the implementation from the newRegistrySpecin the catalog.RegistrySpecandLanguageSpec.registry;languages.jsonnow 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
-
0.0.101 Jun 2026Release notes
Open source →Added
- Initial release:
ProjectType/detectProjectType,TypeScriptPackageManager, and theLanguageCatalogwith a bundledlanguages.jsonasset — the shared catalog of language-specific commands (install / analyze / format / test / publish / registryVersion) and package metadata for Dart, Flutter and TypeScript. Extracted fromgg_oneso it can be shared bygg_one,gg_testandgg_publishwithout circular dependencies.
- Initial release: