- Don't exit with non-zero when no test directories are found
- Flutter tests respect the
--bail
flag duringsip test
command- If a test fails, the command will stop running tests and exit with a non-zero exit code
- Issue where formatting test output could result in an exception thrown
- Improve the output when running flutter tests
- Improve the output when running dart tests
- Override
dart
andflutter
executable by using(executables)
within the `scripts.yaml file
(executables):
dart: fvm dart
flutter: fvm flutter
- Ignore build and dart tool directories when running pub commands
- Check for empty tests when no dart/flutter tests are found when targeting dart/flutter tests only
- Bug where env reference commands may not be resolved
- Bug that did not remove concurrency symbols from env file commands
- Check for dependencies when running
sip pub upgrade <packages>
- If the package is not found in the
pubspec.yaml
file, thatpubspec.yaml
file will be skipped
- If the package is not found in the
- Pin versions of packages by providing the
--pin
flag to theconstrain
command- e.g.
sip pub constrain --pin
will pin all packages to their current versions
- e.g.
- Constrain certain packages by providing their package names to the
constrain
command- e.g.
sip pub constrain analyzer test
will constrain only theanalyzer
andtest
packages
- e.g.
- Support querying scripts from
sip list
- Usage:
sip list [query] [arguments]
- Searches for
- Script keys that contain the query string
- Aliases that match the query string
- Descriptions that contain the query string
- Usage:
sip update
should now update to the latest version properly
- Pass packages to
sip pub upgrade
when provided- e.g.
sip pub upgrade analyzer test
will run<dart|flutter> pub upgrade analyzer test
- e.g.
- Create new
sip pub constrain
command- Constrains all dependency versions in the
pubspec.yaml
file
- Constrains all dependency versions in the
- Create new
sip pub deps
command- Lists all dependencies in the
pubspec.yaml
file by running<dart|flutter> pub deps
- Lists all dependencies in the
- Add
--unlock-transitive
flag tosip pub upgrade
command- This will unlock all transitive dependencies when upgrading packages
- Create new
sip pub downgrade
command- Downgrades all dependencies in the
pubspec.yaml
file by running<dart|flutter> pub downgrade
- Downgrades all dependencies in the
- Always include a space after the label when running scripts concurrently to format the output better
- Run all Env commands at the start of all scripts
- Skips this when there are no env commands to run
- Update check that the file to the env exists before running the command
- Exits with 1 if the file does not exist
- Skip test directories that have no files to test when optimizing tests
- Remove test optimization for Flutter tests
- Search for barrel file to include in optimized test files
- This is to better support coverage reports
- By including this import statement, files without tests will be included in the coverage report
- The barrel file must be named after the project directory or package name and reside in the
lib
directory- eg.
domain/lib/domain.dart
orlib/my_package.dart
- eg.
- Deprecate script_runner package, in favor of dart's processes for more control over running commands
- This will allow for better control over running commands and better error handling
- Print the output when a script fails during concurrency
- Change directory to project root before sourcing env files
-
Support multiple env files
my-script: (command): echo $MY_ENV_VAR (env): - .env - .env.local
-
Support env files for scripts
my-script: (command): echo $MY_ENV_VAR (env): .env
- Add new alias to clean command
pubspecs
- Existing: 'lock', 'locks', 'pubspec-locks'
- Exit clean command when no directories are found to clean
- Revert change to run dart and flutter commands separately
- To continue running dart and flutter commands separately, use the
--separated
flag
- To continue running dart and flutter commands separately, use the
- Issue where exception was thrown if
bail
flag was not defined inArgParser
-
Support running specific tests by providing a test file or directory
sip test ./test/my_test.dart
sip test ./test
-
Create new
clean
command- Removes all
.dart_tool
andbuild
directories in dart & flutter packages - Run
flutter clean
in flutter packages
- Removes all
-
Increase retry time frame from 2s to 4s for
flutter pub get
command
- An issue where some flutter test arguments were being duplicated
- Add
--no-pub
when testing Flutter packages
- Update copy when testing packages to
- Display Flutter test type
- Display args
- Update colors for better readability
- Speed up getting dependencies via an internal auto-retry mechanism
- For whatever reason, dart/flutter will hang after dependencies are retrieved for a lengthy amount of time. SIP_CLI will now auto-retry if the
pub get
command has been running for too long
- For whatever reason, dart/flutter will hang after dependencies are retrieved for a lengthy amount of time. SIP_CLI will now auto-retry if the
- Downgrade args dependency to <2.5.0
- Support different flutter test types to avoid clashing during tests
TestWidgetsFlutterBinding
,AutomatedTestWidgetsFlutterBinding
,LiveTestWidgetsFlutterBinding
can be used to specify the types of tests to run and CANNOT be used together- SIP_CLI will create a new test file for each type of test to avoid clashing
- Fix issue where tests were not run without passing an argument to the
sip test
command
- Remove
--ignore-lockfile-exit
flag fromsip pub get
command
- Create alternative flags for the
--coverage
flags as they exist in both flutter and dart but accept different arguments--coverage
for dart is changed to--dart-coverage
--coverage
for flutter is changed to--flutter-coverage
- Support running pub commands for dart or flutter packages only
- If the
--coverage
flag is provided in thesip test
command, default values will be provided to dart and flutter- Dart: Coverage is enabled and sets the coverage directory to
coverage
- Flutter: coverage is enabled
- Dart: Coverage is enabled and sets the coverage directory to
- Add
--ignore-lockfile-exit
flag tosip pub get
command- When using
--enforce-lockfile
, if the lockfile is not up to date, the command will exit with a non-zero exit code. When using--ignore-lockfile-exit
, the command ignore the non-zero exit. Even if the lockfile is not up to date, the dependencies will still be retrieved.
- When using
- Update copy for the
--version-check
flag
- Don't check for update after running
sip update
- Rename
.optimized_test.dart
to.test_optimizer.dart
- Helps avoid unintentionally running optimized tests
- Rename
--run
to--scope
for thesip test watch
command - Rename
package
toactive
for improved comprehension regarding the test scope for thesip test watch
command
- Create a new command to clean up optimized test files
sip test clean
- Wait for a max of 1 second to check for the latest version for
sip_cli
- Test Watch Mode
sip test watch
- Listens for changes in the project and re-runs tests when changes are detected
- Clean up test usage output
- Update logging for test directory
- Better handle test directories that do not contain tests
- Speed up recursive search for test directories using
glob
- Fix issue where
--no-optimize
ran each test file individually - Fix stopwatch stamp formatting
- Support
--no-optimize
flag insip test
command - Add
--quiet
flag to silence output fromsip
commands- This will even silence the output from the commands being run
- Add
sip update
command- This will update the
sip_cli
package to the latest version
- This will update the
- Print first line of command before executing when running scripts non-concurrently
- Remove
--disable-concurrency
in the sip run command- in favor of
--no-concurrent
flag - This is in efforts to keep the flag names consistent
- in favor of
- Dropping use of
sip_console
in favor ofmason_logger
- Update logging to be more consistent
- Add stopwatch to print statements
- Handle non-null non-string values in script definitions
- ints & bools for example
- Maps are not supported however
- Use stream controller instead of
Future.wait
to run concurrent commands- Better control over commands
- The ability to bail faster on failure
- Drop use of get_it for dependency injection
- This was overkill 😅
- Ensure that script exists before running with
--never-exit
flag
- Add
--never-exit
flag tosip run
command- This will prevent the command from ever exiting, even if a command fails
- This is useful for running a command that will be restarted by another process
- For example, build_runner will stop running whenever the project's dependencies change
- Please use with Caution! There is a second delay between each command run to prevent a runaway process
- The process can be stopped by pressing
ctrl+c
- Add very_good_analysis for linting
- Fix lint warnings
- Restructure Readme
- Remove
run-many
command- Use
run
with the--concurrent
flag instead
- Use
- Add
--concurrent
flag torun
command- This will run all scripts in parallel, regardless of the concurrent symbol defined within the script
- Add
--disable-concurrency
flag torun
command- This will run all scripts in serial, regardless of the concurrent symbol defined within the script
- Add
sip test
command- Runs projects tests
- Can recursively search for
test
directories - Can run concurrent tests
- Passes most dart & flutter args to the
test
command
- Can recursively search for
- Runs projects tests
- Speed up recursive search for sub-packages using
glob
- Update README
- To include new
test
command - To remove
run-many
command - Spelling and grammar updates
- To include new
- Better handle dependency injection
- Fix issue where
--help
was not printing for therun
command
- Handle removing multiple concurrent symbols
- This could happen if a script was defined with the concurrent symbol, and then was referenced in another script also using a concurrent symbol
- Update readme
- chore: Update internal version file
- Add parsing support for chained short flags (
sip run my-script -abc
)
- Fix issue
--list
onsip run
was not working
- Fix issue where - and _ chars were being ignored in variables
- Allow any args to be provided in any order without the requirement of
--
before any "extra" args.- Before:
sip run-many my-script -- --arg1 --arg2
- After :
sip run-many my-script --arg1 --arg2
- Before:
- Fix issue where flags where not being passed to referenced scripts
- Handle when a script reference is not found
- Support referencing variables within
(variables)
- Add extra line before printing the list of commands
- Update README
- Declare when a script with fail with the
(bail):
key inscripts.yaml
- Fix issue where all commands were printing after running a group of concurrent commands
- Fix issue where bail was not being respected and failing commands were not stopping the script
- Fix issue when parsing debug option
- Support individual concurrent commands with
(+)
- Support defining variables in
scripts.yaml
to use in commands - Support defining private scripts in
scripts.yaml
to use as references - Add alias for
run-many
command (r-m
,run-m
)
- Tighten key pattern matching
- Improve color output when listing scripts, lighten color for scripts without a command definition
- Handle
null
scripts
- Add version constraints to dependencies to support adding
sip_cli
to flutter projects
- Initial Release