pubup 0.7.0
pubup: ^0.7.0 copied to clipboard
Automatically update pubspec.yaml dependency constraints to the latest resolvable versions across Dart and Flutter workspace packages.
0.7.0 #
- Stable dependencies no longer jump to pre-releases.
pub outdatedcan report a pre-release as resolvable while the latest stable release is older (e.g.sentry_flutter^9.30.0 -> ^10.0.0-rc.2while9.30.1is the latest stable). pubup now picks the newest stable version between the locked and the resolvable version. If only a pre-release is newer, the dependency is reported underSkippedasprerelease-only. Dependencies already on a pre-release keep moving along pre-releases. --prereleasesopts back in to moving stable dependencies to pre-releases.- pubup uses the project's FVM SDK. It previously ran
flutter/dartfromPATH, which in FVM projects is the global default rather than the version pinned in.fvmrc, so resolution could silently use the wrong SDK. pubup now runs pub from.fvm/versions/<version>(or the legacy.fvm/flutter_sdk) and warns when the pinned version is not linked. --sdk <path>runs pub with a specific Flutter or Dart SDK.- The header shows the SDK in use, e.g.
SDK: Flutter 3.38.5, Dart 3.10.4 (FVM .fvm/versions/3.38.5). - New
Held backsection lists dependencies whose latest version is blocked by another dependency or the SDK, so they are visible without a separatepub outdatedrun. - The
--bumpfallback no longer picks a version above the one pub reports as resolvable. - Fix: the workspace header showed
Workspace: .instead of the project folder name when run with the default--root .. - Docs:
AGENTS.mdreferred to aTotals:line that no longer exists, and its revert command missed workspace member pubspecs. - Allow
pub_updater0.6.x (>=0.5.0 <0.7.0). The range keeps Dart 3.5+ support, sincepub_updater0.6.0 requires Dart 3.12. - Fix: the progress line now reads the terminal width from stderr, where
it is drawn, instead of stdout. With stdout redirected
(
pubup > log.txt), long status messages were never truncated and could wrap into stray lines. - Internal: the CLI moved from
bin/pubup.darttolib/src/cli.dartso it can be tested, and tests now cover every line inlib/.
0.6.1 #
- Fix constraint rewriter losing track of the current section after blank
lines. A blank line inside
dependencies:ordev_dependencies:no longer resets section tracking, so hosted deps listed after path/git blocks (or other gaps) are rewritten correctly. This also lets coordinated workspace batches succeed when those deps must bump together (e.g. Firebase packages).
0.6.0 #
--bump <major|minor|patch>lets you cap how far constraints may move during an update. Use--bump minorto keep within the current major segment, or--bump patchto take only patch-level fixes — handy when refreshing dependencies without absorbing breaking changes.- When the latest resolvable version exceeds the chosen bound, pubup queries
https://pub.dev/api/packages/<name>for the full version list and picks the highest non-prerelease version that fits, instead of skipping the dependency altogether. - Dependencies with no qualifying version are surfaced under
Skippedasabove --bumpin the run summary.
0.5.1 #
- Live progress indicator. Workspace and single-package runs now show a
one-line, self-replacing status on stderr while pubup is busy
(
Scanning packages/auth (3/56),Running flutter pub get,Retrying very_good_analysis (4/9), …) with a blank padding line reserved below it for visual breathing room. This eliminates the long silent gap between theWorkspace:header and the first table row on large workspaces. The line is animated with a spinner so liveness is visible even when one step takes a while. - The indicator is automatically disabled when stderr is not a TTY (CI
logs, pipes, agent capture), when
CI=true, whenTERM=dumb, or whenPUBUP_DISABLE_PROGRESS=1. - No CLI changes; stdout output and exit codes are byte-identical to previous releases.
0.5.0 #
- Batch-first workspace updates. Workspace mode now rewrites all coordinated
constraints, then runs a single root
pub get. If resolution fails, pubup reverts and retries per dependency (same attribution as 0.4.0). - Fixes coupled-dependency failures (e.g.
firebase_core,firebase_messaging, andfirebase_analyticsmust bump together) that could not resolve when updated one at a time. - Typical workspace runs drop from N
pub getinvocations to 1 when everything resolves cleanly. No CLI changes.
0.4.0 #
- Workspace-coordinated updates. When the root
pubspec.yamldeclares aworkspace:list, pubup now updates shared dependencies atomically across all members that declare them: constraints are rewritten in every affectedpubspec.yaml, then a single root-levelpub getvalidates the workspace graph. This fixes the failure mode where per-packagepub addcalls left the workspace in a contradictory intermediate state (e.g. root onvery_good_analysis ^10while members still pin^6). - Non-workspace projects keep the existing batched
pub addstrategy. --packagein workspace mode: coordinated deps are skipped with a warning when a declaring member is outside the filter (run without--packagefor a workspace-wide bump).dependency_overrides:are never modified.
0.3.0 #
- Batch all dependency updates for a package into a single
dart pub add(orflutter pub add) invocation. Previously pubup invokedpub addonce per dependency, triggering a full pub resolution each time — on a workspace with 127 changes this took ~30 minutes. The batched call runs the pub solver once per package, typically yielding a 10×+ speedup on large workspaces. - On batched-call failure (e.g. one dep cannot be resolved), pubup
automatically falls back to per-dependency
pub addcalls so individual failures are still attributed to the exact dep that failed. - No CLI or output-format changes; per-dependency log lines, exit codes,
and the
Totals:summary all behave as before.
0.2.2 #
- No user-facing changes.
- Internal: bumped
testdev dependency to^1.31.1(dogfooded via pubup itself). - Internal:
version_test.dartnow reads the version frompubspec.yamlat test time instead of hardcoding it, so future releases only require bumpingpubspec.yamlandlib/src/version.dart.
0.2.1 #
- The once-per-day update notice is now also suppressed automatically when
stderr is not attached to a TTY (e.g. when pubup is invoked by a coding
agent, captured by a script, or piped).
CI=trueandPUBUP_DISABLE_UPDATE_CHECKcontinue to work as before. - Added
AGENTS.mdwith guidance for coding agents on when and how to invoke pubup.
0.2.0 #
- Added
--version/-Vflag. - Added
pubup updatesubcommand that reinstalls pubup from pub.dev. - pubup now checks pub.dev once per day and prints a notice on stderr
when a newer version is available. Set
PUBUP_DISABLE_UPDATE_CHECK=1or run in CI (CI=true) to skip the check.
0.1.1 #
- Tolerate non-JSON content in
flutter pub outdated --jsonoutput. Previously the root package scan could fail withFormatException: Unexpected characterwhen Flutter appended its "A new version of Flutter is available" banner after the JSON payload. The runner now extracts the JSON object from stdout and ignores any surrounding noise.
0.1.0 #
- Initial release.
- Workspace-aware dependency constraint updater for Dart and Flutter projects.
- Supports
--dry-run,--[no-]dev,--package, and--rootflags. - Automatically detects
dart pubvsflutter pubper package. - Skips path, git, sdk, and non-standard dependency sources.