mono_repo 3.2.0
mono_repo: ^3.2.0 copied to clipboard
CLI tools to make it easier to manage a single source repository containing multiple Dart packages.
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:
- dartanalyzer
- dartfmt
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.