dart_grid_assets 0.2.1-dev.3
dart_grid_assets: ^0.2.1-dev.3 copied to clipboard
The DART domain grid assets — the typed grid.dart envelope + pub dev-time linkage + the exported DartCommand.
0.2.1-dev.3 #
- FIX(release): name an unresolvable published baseline as its own classify verdict (pow-pozp) (#375).
Changelog #
0.2.1-dev.2 #
- Breaking:
kLadderOutputCapBytesis deleted andReleaseLadderReport.boundedno longer accepts acapBytesargument. The ladder report is windowed through the one shared output bound,boundedOutput, which now ships from this package;ReleaseLadderReport.toPlain()renders the exact text the bound was measured against, so a verb's stdout can no longer drift from the window that fit (#325). - Migration: drop
capBytes:from everyReleaseLadderReport.bounded(...)call and stop namingkLadderOutputCapBytes; a caller that rendered the ladder line by line callsreport.toPlain()instead. The only call site in this org is this package's ownReleaseLadderCommand.run(lib/src/dart/release_command.dart), which is migrated here; no published consumer names either symbol. - Added:
boundedOutput(src/io/bounded_output.dart), exported fromdart_grid_assets.dart— the shared cap-and-window helper the ladder report and future bounded verbs render through.
0.2.1-dev.1 #
- fix(release): honor declared git package paths in release overrides (#308)
- feat(release): report each package's ladder rung and staleness (#299)
- test(release): pin first-release rung consistency (#300)
- feat(release): auto-demote stale release candidates to beta (#297)
- feat(dart): add asymmetric verification commands (#293)
0.2.0 #
- PROMOTED from 0.2.0-dev.1. This is the stable release of the 0.2.0 line; the code is the candidate's, unchanged. Every family dependency constraint is rewritten from its prerelease form to the stable one, because pub refuses a stable package that depends on a prerelease.
- Consumers on a
^0.2.0-rc.Nconstraint resolve this automatically: a caret range admits the release above its own prereleases, so no downstream pubspec edit is required to pick it up.
0.2.0-dev.1 #
- Changed (BREAKING):
ReleaseChangecarries the SEMVER MOVE alone —docs,additive,fix,breaking. Itsrcvalue and itsisPreReleasegetter are gone, andisBreakingis now true forbreakingalone. The prerelease rung was never a semver move: bindingrctobreakingmade a 0.x package doing breaking work reach for the candidate rung by construction, every single time (the measured drift:grid_sdk22 prereleases and still stable at 0.2.0,grid_assets25 and still 0.4.0, againstgenesis_tree's ten releases and zero prereleases). - Added:
ReleaseRung— the PRERELEASE RUNG axis, carried per PACKAGE:stable,dev,beta,rc, withparse(fail-closed, null for null/unknown),defaultPrerelease(dev),identifier,isPrerelease,requiresPromotionIntentand acompareTo/orderfixed asdev < beta < rc < stable.devis where any prerelease starts;betameans the API is frozen for this target version;rcmeans a human has DECLARED intent to promote, and is the only rung a human must set. - Changed (BREAKING):
ReleaseService.planVersiontakes a requiredrungpluspromotionIntent, andReleaseVersionPlancarries both (also intoJson). A prerelease off a stable version applies the move and appends<rung>.1(0.1.4+ breaking + beta ->0.2.0-beta.1); off a prerelease the target core is fixed, so the counter increments only when the identifier is unchanged and restarts at 1 on every rung change in either direction (0.2.0-dev.3+ beta ->0.2.0-beta.1; a demoted0.2.0-rc.9+ beta ->0.2.0-beta.1). Anrcplan with no declaredpromotionIntentis a loud refusal, as is a prerelease current on no supported rung. - Changed (BREAKING):
ReleaseService.publishWorkspacetakes an optionalrungand apromotionIntent;ReleaseWavePackagecarries a requiredrungandReleaseWavePlanapromotionIntent(both serialized). OmittingrungINFERS each changed member's rung from its authored version, so a mixeddev/betawave is ordinary; supplying one requires every changed member to already sit there. A breaking member authored as a STABLE version is refused at the plan stage and directed to--change breaking --rung dev; breakingdevandbetamembers publish with no human in the loop; anrcmember is refused before any tag, push or poll without declared intent. The direct consumer gate now follows the PLANNED wave (does it carry a stable member?) instead of the declared change class, and its failure remedy names--change breaking --rung dev. - Changed:
dart release plananddart release publishgrow--rung <stable|dev|beta|rc>and--promotion-intent.plandefaults tostable;publishinfers per package when--rungis omitted, and its--consumersrequirement moved into the service's stable-member gate (an inferred all-prerelease or mixed-rung wave is no longer rejected from--changealone).--change rcsurvives as the COMPATIBILITY SPELLING of--change breaking --rung rc— it emitschange: breakingwithrung: rc, agrees with an explicit--rung rc, refuses a conflicting explicit rung as usage, and still requires--promotion-intent. - Changed: breaking classification names the DEV-FIRST target.
ReleaseService.classifyRelease's understated verdict now readsdeclared 0.3.2 is a patch, a breaking change requires 0.4.0-dev.1; the required version still comes from the existingplanVersionand thedart-apitoolprocess seam is untouched. - Added:
ReleaseService.discoverWorkspaceanddart release discover --workspace <dir> --diff <ref>— the read-only workspace preflight, answered by melos instead of by hand. It runsmelos list --no-publishedandmelos list --diff=<ref>through the existingProcessRunnerseam and returns{workspaceRoot, diff, candidates, changed}, retiring the per-package pub.dev curl and the per-packagegit log <ref>..HEAD -- packages/<pkg>sweep. It is a preflight, not a gate:publishWorkspacestill resolves every published predecessor against pub.dev immediately before it tags. - Added:
ReleaseDiscovery— the structured discovery result (workspaceRoot,diff, sortedcandidates, sortedchanged). - Added:
ReleaseService.publishOrderFromMelosWorkspaceanddart release order --workspace <dir>— publish order read off melos's own adjacency graph (melos list --json --graph), so the graph that decides publish order is no longer transcribed into a hand-written manifest. Melos emitsdev_dependenciesanddependency_overridesedges too, and publish order is a statement about the published RUNTIME contract only, so every emitted edge is filtered against the source package's top-leveldependenciesbefore ordering: lenny'sleonard_agent/leonard_flutter/leonard_flutter_testdev cycle is not a publish cycle, and the raw graph would refuse a releasable workspace. A runtime cycle still hitspublishOrder's existing loud refusal. - Changed:
dart release ordernow requires EXACTLY ONE of--workspaceand--manifest(neither is mandatory alone), refusing both-or-neither with exit 64 before any file or process work.--manifestkeeps its decoder and its output byte-for-byte. - Added:
ReleaseService.classifyRelease— the SEMVER verdict nothing in the chain carried. It diffs the package's public API at HEAD against the API of its LAST PUBLISHED version (the greatest version pub.dev lists, prereleases included — never a checked-in golden, which moves with the diff) and pairs that delta with the version bump the pubspec declares, so a breaking change mis-declared as a patch stops passing every gate. The API extraction is not owned here: the delta comes from the externaldart-apitoolCLI, shelled out through the sameProcessRunnerseamdart pub publishrides, sodart_apitoolis not a dependency of this package. When the tool cannot be launched the op REFUSES with the activation command in its message — it never returns a passing verdict it did not analyze. - Added:
ReleaseClassification,ReleaseRequiredChange,ReleaseDeclaredChangeandReleaseClassificationVerdict— the structured verdict (package,baseline,head,removed,changed,added,requiredChange,declaredChange,verdict,message). The message names the SYMBOL and the CONSEQUENCE, e.g.exported captureScreenshot lost parameter binding, so existing calls that supply binding no longer compile; declared 0.3.2 is a patch, a breaking change requires 0.4.0-dev.1; the required version is computed by the existingplanVersion, so classification never invents version math. - Added:
dart release classify— the thin Command over the classification (--dir,--package,--json), exiting 0 forok, 1 forunderstated, and 1 with no verdict on stdout when the baseline or the analyzer is unavailable. - Added:
ReleaseService.publishWorkspace— the one-command workspace release wave. It computes the changed-package set against pub.dev (reusingpoll, and resolving each package's published predecessor through the existingplanVersion), runs the existing scrub, publish-order and dry-run gates, validates every consumer against the origin-reachable release commit for a wave carrying a stable package, then cuts and pushes one<package>-v<version>tag per package in dependency order, polling pub.dev between them. The tag push is the publish, so the wave never runsdart pub publishfor real; a breaking STABLE member is refused before any work, and promotion stays the separatevalidate-consumersthenpromotepath. - Added:
ReleaseWavePlan,ReleaseWavePackage,ReleaseWaveStageandReleaseWaveFailure— the structured plan and the "which stage, which package" stop the release skill parses; plus theReleaseWaitseam, so a wave's propagation waits are injectable. - Added:
dart release publish— the thin Command over the wave (--workspace,--change,--rung,--promotion-intent,--consumers,--dry-run,--json), andbin/dart_grid_assets.dart, so a workspace root can reach the vendeddartCommand asdart run dart_grid_assets:dart_grid_assets. - Changed:
PollResultnow carries the pub.devstatusCodeand the completeversionslist (both additive intoJson), so a caller can tell "not published yet" from "the API did not answer" without a second parser.
0.1.3 #
- Added:
ReleaseService.validateDeclaredFloors— the release scrub gate now also resolves the candidate in a throwaway copy with every workspace sibling pinned to the EXACT floor the candidate declares (pubspecOverridesForExactVersions) and runsdart analyzethere, so a member used above its declared floor cannot ship green the waygrid_engine 0.3.0-rc.15did (the_grid tg-klfj);release scrub --jsongainsdeclaredFloors(pow-dqet, #219). - Changed:
release scrubnow exits 1 when the content scan finds hits (it exited 0 and only printed before); the JSONcleanfield is unchanged. The declared-floors leg resolves against pub.dev, so the scrub gate is online by design; the pub.dev integration test is taggedintegrationand excluded fromdart test -x integration.
0.1.2 #
- Added:
DartFormatService— the deterministicdart format --output=none --set-exit-if-changedprobe the code-review circuit'sformat-cleangate composes; names the unformatted files (pow-jicn, #209).
0.1.1 #
release polldetects published prerelease versions (#95).release scrubscopes internal-ref detection to working documents and narrows one scrub term that produced false positives (#86, #78).- The overlay publisher reads assets from visible source directories (#82).
- Repo-wide
dart formatsweep (#73).
0.1.0 #
- Initial release: the Dart domain grid assets — the typed grid.dart envelope, pub dev-time linkage, and the exported DartCommand.