mono_repo 6.6.3
mono_repo: ^6.6.3 copied to clipboard
CLI tools to make it easier to manage a single source repository containing multiple Dart packages.
6.6.3 #
- Update to latest action versions.
6.6.2 #
- Require Dart
sdk: ^3.4.0. - Populate
tokenforcodecovaction. (Requires the user to provideCODECOV_TOKENin their secrets.) - Update to latest action versions.
6.6.1 #
- Update to latest action versions.
- Remove usage of removed
flutter formatcommand in the generatedtool/ci.shfile.
6.6.0 #
- Added the
dartcommand to run arbitrary dart commands across all packages. - Require the 3.0.0 Dart SDK.
6.5.7 #
- Updated
mono_repoto use the existing action versions from the generated workflow file when dependabot is configured for the repo.
6.5.6 #
- Restore the previous ordering behavior for jobs by using a secondary sort based on the insertion order (this matches the listed configuration order).
6.5.5 #
- Add the pub package topics
toolandrepository-management.
6.5.4 #
- Updated
actions/checkoutto the latest version.
6.5.3 #
- Updated
actions/cacheandsubosito/flutter-actionto the latest versions.
6.5.2 #
- Updated
actions/cache,actions/checkout, anddart-lang/setup-dartto the latest versions.
6.5.1 #
- Updated
actions/cacheto latest version.
6.5.0 #
- Support for generating dependabot configurations.
- Updated
actions/cache,actions/checkout, anddart-lang/setup-dartto the latest versions.
6.4.3 #
- Updated
actions/cacheandactions/checkoutto latest versions. - Require at least Dart >= 2.18.0
6.4.2 #
- Updated
actions/cache,subosito/flutter-action, andactions/checkoutto latest versions.
6.4.1 #
- Updated
actions/cache,subosito/flutter-action, andcoverallsapp/github-actionto latest versions.
6.4.0 #
- Added support for
test_with_coverage. Usespackage:coverageand supports Coveralls (the default) and Codecov to track test code coverage. - Added support for
pubspecas an CI target for Dart packages. When used, the lower-bound of the support SDK range is used. - Added
--verboseflag. Helps when debugging failures. - Updated
actions/checkout,actions/cache, andsubosito/flutter-actionto latest versions.
6.3.0 #
- Update to
subosito/flutter-action@v2.4.0. - Require at least Dart >= 2.17.0
- Add the
listandreadmecommands. - Update GitHub actions to use hashes instead of version numbers
- Add read-only permissions to actions by default
- Soften detection of a Flutter package. Remove check for
flutterkey inpubspec.yaml.
6.2.2 #
- Update to
actions/checkout@v3.
6.2.1 #
- Use
flutter analyzeinstead ofdart analyzefor flutter package analyze actions. This fixes an issue where analyze jobs could get merged across dart and flutter packages, which caused the flutter jobs to fail.
6.2.0 #
- Update to
actions/cache@v3.
6.1.0 #
- Drop restriction on stages named "test" – only applied to Travis-CI which is no longer supported.
- Fix the
pubcommand on Windows. - Update to
subosito/flutter-action@v2.3.0. - Update to
actions/checkout@v3.0.0.
6.0.0 #
- BREAKING Replaced the
dartconfiguration key withinmono_pkg.yamlwithsdk. It now covers the Dart or Flutter version to be used for a given package - depending on if the package is determined to be a Flutter package by the contents ofpubspec.yaml. - Added support for Flutter using
Flutter action. The
sdkvalue frommono_pkg.yamlconfigures thechannelsetting. Supported values are currently "master", "beta", and "stable". (Support for explicit versions may be added later.)
5.0.5 #
- Use latest
actions/cache@v2.1.7. - Use latest
actions/checkout@v2.4.0.
5.0.4 #
- Use latest
actions/checkout@v2.3.5. - Require Dart SDK >=2.14.0.
5.0.3 #
- Trim GitHub CI cache keys to 512 characters.
- Use latest dart-lang/setup-dart v1.3.
5.0.2 #
- Use latest dart-lang/setup-dart v1.2.
5.0.1 #
- Use latest dart-lang/setup-dart v1.1.
5.0.0 #
- BREAKING Drop support for Travis-CI.
- Change calls from
pubtodart pubwithin generated scripts. - Support and encourage up-to-date task names:
analyzeinstead ofdartanalyzerformatinstead ofdartfmt.
4.1.0 #
- Improve the stability of ordering in Github workflow definitions.
- Use latest
actions/cache@v2.1.6. - Migrate to new command pattern supported in Dart 2.10
pubcommand- Now allows any
pubcommand and argument combination to be provided. - Dropped
--no-precompilesince it is now the default. - Now prints a summary of execution progress. Useful for repositories with many packages.
- Now allows any
4.0.0 #
- Use
FLUTTER_HOME, if it exists, when using thepubcommand. - Use
flutter[.bat]instead ofpub[.bat]in generatedtool/ci.sh. - Migrate code to null safety.
- Require Dart 2.12.
- Use latest
actions/cache@v2.1.5. - Use latest
actions/checkout@v2.3.4.
3.4.7 #
- Use the latest
dart-lang/setup-dart@v1.0. - Normalize Dart SDK configurations. Throw on duplicate SDKs. Sort SDKs to maintain stable output.
3.4.6 #
- Fix a bug in
3.4.5with incorrectly configuring the Dart SDK when a semantic version is provided.
GitHub Actions #
3.4.5 #
GitHub Actions #
- Move to use dart-lang/setup-dart to
setup the Dart SDK.
- Remove explicit
dart --versioncall. This is handled in the new action.
- Remove explicit
3.4.4 #
GitHub Actions #
- Always run
pub upgrade|getsteps if checkout succeeds. This ensures that tests runs for all packages, even if one package test fails in the same job.
3.4.3 #
GitHub Actions #
- Adds
always() &&toifcondition for steps. This makes them run even if other steps failed instead of being skipped.
3.4.2 #
GitHub Actions #
- Fix
needsconfig to depend on all previous jobs from all stages instead of just the previous stage. This fixes issues with skipped stages causing subsequent stages to not properly respect certainifconditions.
3.4.0 #
- Configuring the target Dart SDK:
- Allow specifying specific
devreleases. - Allow specifying just
beta.
- Allow specifying specific
- Shorten the generated names for a job if a given component of the name is identical for all tasks. Makes it easier to read the names in the GitHub Action UI.
GitHub Actions #
- Stop using
tool/ci.sh. It won't be created when using only GitHub Actions. - Detect running on Windows on GitHub without setting an extra environment variable.
- Separate job commands into a step for each. This makes it easier to see exactly what commands were ran on what packages, as well as their individual status and output.
3.3.0 #
- Implemented proper support for
stagesin github actions. Jobs will now be dependent on previous stages jobs. Conditional stages are also supported in the same manner as travis was, see the README.md for more details.
3.2.0 #
- Added support for
on_completionjobs in github configuration, see theREADME.mdfor details. This allows you to configure things like webhooks after failed builds, or publishing after successful builds.
3.1.0 #
- Added support for GitHub Actions. See
README.mdfor details. - Added the
generatecommand, since we know support more than one CI provider.- Deprecated the
traviscommand.
- Deprecated the
- Small improvement to how some strings are emitted in Yaml.
3.0.0 #
mono_repo.yaml:- NEW! Added support for
pub_actionvalue. Can be one ofgetorupgrade(default) to change the package request behavior in each action. - NEW! Added support for
pretty_ansivalue. The default istrue. Set tofalseto have the generated shell script skip any ANSI formatting. - UPDATED
self_validatecan now be eithertrueor a String value that maps to the desired stage where validation should run.
- NEW! Added support for
traviscommand:- Many improvements to the generated
tool/travis.shfile- Clearly denote when terminating a job due to incorrect usage or configuration.
- Clearly mark the end of each task and if it succeeded or failed.
- Print a summary at the end of the tasks for each package to make it easier to find and fix failures.
- BREAKING Removed
--use-getcommand-line flag. Usepub_actionsetting inmono_repo.yamlinstead. - BREAKING Removed
--pretty-ansicommand-line flag. Usepretty_ansisetting inmono_repo.yamlinstead. - Simplified generated configuration for
self_validate. 'tool/mono_repo_self_validate.sh' is no longer created or used. When upgrading fromv2.5.0, you can delete this file.
- Many improvements to the generated
2.5.0 #
- Provide a better error when parsing a poorly formatted Yaml file.
mono_repo.yaml:- NEW! Added support for
self_validateboolean value. Iftrue, creates a shell script and associated task to install the same version ofmono_repoduring CI and runmono_repo travis --validateto ensure all files are up-to-date. - Respect the ordering of
stages, if configured. - Allow
stagesvalues to be just a string – allows defining an explicit ordering of stages.
- NEW! Added support for
mono_pkg.yaml:- Task
commandentry: correctly handle aListcontaining strings.
- Task
2.4.0 #
-
Adds a
--validateoption to thetraviscommand.-
You can configure this to run from any of your
mono_pkg.yamlfiles using a command job like this:command: "cd ../ && pub global run mono_repo travis --validate". -
We may make this easier to configure in the future.
-
-
Require Dart SDK
>=2.7.0 <3.0.0.
2.3.0 #
- Add support for
osconfiguration.- This generally works in the same way as the
dartsdk option, except that it is not required. - The default is to only run on
linux. - Supports a top-level
oslist inmono_pkg.yamlfiles. - Supports overriding the
osper task.
- This generally works in the same way as the
2.2.0 #
- Fix issue where
pubcommand failing for one package stops test run for other packages grouped into the same Travis task. - Use
flutter packagesforpubcommand on packages that depend on Flutter. - Any arguments given to
dartfmtTravis tasks are used instead of the default-n --set-exit-if-changed ..- To maintain previous behavior,
dartfmt: sdkis a special case and still triggers the default arguments.
- To maintain previous behavior,
- Add
--use-getoptional flag for thetraviscommand to usepub getinstead ofpub upgradein the generated script.
2.1.0 #
- Require Dart SDK
>=2.2.0 <3.0.0.
mono_repo travis
- Job entries in
.travis.ymlare now ordered. This may cause churn, but will create a predictable output going forward. - While running, print the package when starting each task. Makes it easy to scan results when a job has multiple packages.
- Warns if a job specifies a target Dart SDK that is not supported in the
corresponding
pubspec.yaml.
mono_repo pub
- Added support for all
pubflags.
2.0.0 #
- BREAKING All commands are recursive by default. To go back to the shallow
mode, use
--no-recursive. - Improve style of the generated
tool/travis.shscript, including fast-failing if thePKGvariable does not map to an existing directory. - Require at least Dart 2.1.0.
- The
dartkey is no longer required inmono_pkg.yamlif all stages specify their own values. A warning is printed if values are provided but not used. - All output during execution will be sent to STDOUT (instead of STDERR).
1.2.2 #
- Updated dependencies.
1.2.1 #
- Fix issue running with Dart 2.0.
1.2.0 #
- Add
--versionto executable. - Include the version of the package in generated files.
- Support customizing Travis-CI
branchesinmono_repo.yaml.
1.1.0 #
- Improve presubmit command output to list the full command for each task instead of the name of the task type only.
1.0.0 #
- Add support for configuring top-level Travis options via
mono_repo.yaml.
BREAKING CHANGES
-
The root
mono_config.yamlfile is no longer used to configure which packages are configured. Instead,mono_pkg.yamlis required to be in each target package directory. A package is considered published if it has a value forversioninpubspec.yaml. -
The package configuration file is now
mono_pkg.yaml. If a legacy config file –.mono_repo.yml– is found, the command is canceled and a warning is printed telling the user to rename the file. -
Removed the
initcommand.
0.3.3 #
- Support adding custom cache directories in each project.
- Add custom names for travis jobs based on the actual tasks being ran, as well
as the sdk and subdirectory. The job description portion is configurable with
the new
descriptionkey for jobs within a stage, for example:
stages:
- unit_test:
- description: "chrome"
test: -p chrome
0.3.2+1 #
- Support Dart 2 stable.
0.3.2 #
- Support dependencies that specify an SDK – common with Flutter.
- Require at least Dart 2.0.0-dev.54.
pubcommand now runs with inherited standard IO. You now see colors!- Improved error output with bad configuration.
0.3.1 #
New Features #
-
Added support for the
grouptask, which accepts a list of tasks using the normal format. This can be used to group multiple tasks in a single travis job. All tasks will be ran, but if any of them fail then the whole job will fail.Example usage combining the analyzer/dartfmt tasks:
stages:
- analyze_and_format:
- group:
- analyze
- format
0.3.0 #
Breaking Changes #
- Sub-package
.travis.ymlfiles should be replaced with.mono_repo.ymlfiles, which are a simplified format that supports travis build stages. A basic example file might look like this:
# List of the sdk versions you support
dart:
- dev
- stable
# Ordered list of all stages you want to run.
stages:
# A single stage, called `analyze_and_format` which runs the analyzer and
# the formatter only.
- analyze_and_format:
- dartanalyzer: --hints-as-warnings .
- dartfmt: sdk
dart:
- dev # Overrides the top level sdk default
# Assuming everything analyzed correctly, runs a build.
- build:
- command: "pub run build_runner build"
# And finally run tests, these are custom build_runner tests but the regular
# `test` task is also supported.
- unit_test:
- command: "pub run build_runner test"
- command: "pub run build_runner test -- -p chrome"
0.2.2 #
-
traviscommand-
Make numbering more consistent and clean when there is more than one task with a given name.
-
Print out the full command that executed as part of a task.
-
Support a
Listvalue forbefore_script.
-
0.2.1 #
-
traviscommand-
Write ANSI escape sequences in
tool/travis.shas pre-escaped ASCII literals. -
Added
--[no-]pretty-ansiflag to allow ANSI sequences to be optionally omitted.
-
0.2.0 #
-
Add
before_scriptsupport to thetraviscommand. When that value is set in atravis.ymlfile, we will call the script before running any of the tasks for that package. -
Add
recursiveglobal flag. When set, we will walk all sub-directories looking forpubspec.yamlfiles. -
Support git dependencies in packages.
-
Use
mono_repo.yamlas the configuration file name, instead ofpackages.yaml.
0.1.0 #
- Initial release.