puby

Last updated:

0 purchases

puby Image
puby Images
Add to Cart

Description:

puby

Run commands in all projects in the current directory. Handle monorepos with ease.
Features #

No configuration necessary. Run puby anywhere. It won't complain.
Execute pub get in seconds rather than minutes with puby link
Reclaim disk space with puby clean
Supports all project-level pub commands
Execute any command in all projects with puby exec
Determines the project engine (dart, flutter, fvm) automatically
Convenience shortcuts for common dart/flutter commands
Combined exit code for use in CI
Per-project command exclusions




Command
Equivalent




puby [args]
[engine] pub [args]


puby link
Warm the pub cache and run [engine] pub get --offline (see below)


puby gen
[engine] pub run build_runner build --delete-conflicting-outputs


puby test
[engine] test


puby clean
flutter clean


puby mup
[engine] pub upgrade --major-versions


puby reset
puby clean && puby get


puby relink
puby clean && puby link


puby exec [command]
command



For projects configured with FVM, fvm flutter is used. FVM support can be disabled with the --no-fvm option.
Use as an executable #
Installation #
$ dart pub global activate puby
copied to clipboard
Usage #
$ puby get
$ puby upgrade --major-versions
...
copied to clipboard
Notes on puby link #
This command is based on flutter update-packages. All of the dependencies required by all of the projects in the current directory are cataloged and cached if necessary, then pub get --offline can safely run in all the projects in parallel.
This command no longer requires existing pubspec.lock files to function and instead uses the same version resolution strategy from the pub command to catalog dependencies.
The puby link command can run many times faster than puby get, so it is very useful for large mono-repos.
Benchmarks in the flutter/packages repo:



Command
Duration




puby get
9:01.97


melos bootstrap
47.810


puby link
25.881



Benchmark setup:

M3 MacBook Pro
Gigabit internet connection
Run puby clean && dart pub cache clean before each run
melos bootstrap is run with a custom branch of flutter/packages with the required setup

Notes on puby exec #
Paths relative to the directory you are running puby in will not work. For example:

puby exec ./foo.sh will not work
puby exec $PWD/foo.sh will work

Configuration #
Create a puby.yaml file in the root of the project you want to configure
Exclusions #
Add command exclusions to prevent them from running in a project
exclude:
- test
- pub run build_runner
copied to clipboard
Exclusions match from the start of a command, and the entire exclusion string must be present. Here are some examples:



Exclusion
Example command excluded




test
[engine] test --coverage


pub run build_runner
[engine] pub run build_runner build

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.