From e17bd18ac2114eebe18241c4dfe65e0b0a99c41a Mon Sep 17 00:00:00 2001 From: Alexey Date: Fri, 9 Dec 2022 17:18:24 -0800 Subject: [PATCH] Add a command to promote to release (addresses #32) (#33) --- .github/workflows/dart.yml | 8 ++---- CHANGELOG.md | 5 ++++ README.md | 37 +++++++++++++------------ cider.png | Bin 32060 -> 37320 bytes lib/src/service/changelog_service.dart | 4 +++ lib/src/service/pubspec_service.dart | 36 ++++++++++++------------ pubspec.yaml | 14 +++++----- test/functional_test.dart | 4 ++- 8 files changed, 60 insertions(+), 48 deletions(-) diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index b6341fd..a5cf61e 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -4,16 +4,12 @@ on: push: branches: [ master ] pull_request: - branches: [ master ] jobs: build: - runs-on: ubuntu-latest - container: - image: google/dart:latest - + image: dart:stable steps: - uses: actions/checkout@v2 - name: Install dependencies @@ -25,4 +21,4 @@ jobs: - name: Tests run: dart test --coverage=.coverage - name: Coverage - run: dart run coverage:format_coverage -l -c -i .coverage --report-on=lib --packages=.packages | dart run check_coverage:check_coverage 94 + run: dart run coverage:format_coverage -l -c -i .coverage --report-on=lib --packages=.dart_tool/package_config.json | dart run check_coverage:check_coverage 94 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4438dd2..960ac81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.2] - 2022-12-07 +### Added +- Release promotion command + ## [0.1.1] - 2021-12-28 ### Changed - Updated dependencies @@ -62,6 +66,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Initial version +[0.1.2]: https://github.com/f3ath/cider/compare/0.1.1...0.1.2 [0.1.1]: https://github.com/f3ath/cider/compare/0.1.0...0.1.1 [0.1.0]: https://github.com/f3ath/cider/compare/0.0.5...0.1.0 [0.0.5]: https://github.com/f3ath/cider/compare/0.0.4...0.0.5 diff --git a/README.md b/README.md index 8ad9a8a..20ba4ce 100644 --- a/README.md +++ b/README.md @@ -106,10 +106,10 @@ cider version Examples: -Version before | Command | Version after ---- | --- | --- -1.2.3+1 | `cider version 3.2.1` | 3.2.1 -0.2.1-dev | `cider version 0.0.1-alpha+42` | 0.0.1-alpha+42 + Version before | Command | Version after +----------------|--------------------------------|---------------- + 1.2.3+1 | `cider version 3.2.1` | 3.2.1 + 0.2.1-dev | `cider version 0.0.1-alpha+42` | 0.0.1-alpha+42 ### Bumping the project version @@ -126,6 +126,7 @@ cider bump [options] - `patch` - `build` - `pre` (pre-release) + - `release` (promotes the version to a release, removing the pre-release part) Options: @@ -142,19 +143,21 @@ corresponding part. Remember that according to [semver] v2, `build` is considered metadata and is ignored when determining version precedence. -Version before | Command | Version after ---- | --- | --- -1.2.1-alpha+42 | `cider bump breaking` | 2.0.0 -0.2.1-alpha+42 | `cider bump breaking` | 0.3.0 -0.2.1-alpha+42 | `cider bump major` | 1.0.0 -0.2.1-alpha+42 | `cider bump minor` | 0.3.0 -0.2.1-alpha+42 | `cider bump patch` | 0.2.1 -0.2.1 | `cider bump patch` | 0.2.2 -0.2.1-alpha+42 | `cider bump pre` | 0.2.1-alpha.1 -1.2.1-alpha+42 | `cider bump breaking --keep-build` | 2.0.0+42 -0.2.1-alpha+42 | `cider bump breaking --bump-build` | 0.3.0+43 -0.2.1-alpha+42 | `cider bump major --build=2020-02-02` | 1.0.0+2020-02-02 -0.2.1-alpha+42 | `cider bump minor --pre=aplha --bump-build` | 0.3.0-alpha+43 + Version before | Command | Version after +----------------|---------------------------------------------|------------------ + 1.2.1-alpha+42 | `cider bump breaking` | 2.0.0 + 0.2.1-alpha+42 | `cider bump breaking` | 0.3.0 + 0.2.1-alpha+42 | `cider bump major` | 1.0.0 + 0.2.1-alpha+42 | `cider bump minor` | 0.3.0 + 0.2.1-alpha+42 | `cider bump patch` | 0.2.1 + 0.2.1 | `cider bump patch` | 0.2.2 + 0.2.1-alpha+42 | `cider bump pre` | 0.2.1-alpha.1 + 1.2.1-alpha+42 | `cider bump breaking --keep-build` | 2.0.0+42 + 0.2.1-alpha+42 | `cider bump breaking --bump-build` | 0.3.0+43 + 0.2.1-alpha+42 | `cider bump major --build=2020-02-02` | 1.0.0+2020-02-02 + 0.2.1-alpha+42 | `cider bump minor --pre=aplha --bump-build` | 0.3.0-alpha+43 + 0.2.1-alpha+42 | `cider bump release` | 0.2.1 + 0.2.1-alpha+42 | `cider bump release --keep-build` | 0.2.1+43 [logo]: https://raw.githubusercontent.com/f3ath/cider/master/cider.png diff --git a/cider.png b/cider.png index e40fe0e227fcb4c78304a6707d1cf11459a6138d..f495538afb2b1f7499c8e47c53089d2e8961be4d 100644 GIT binary patch literal 37320 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.addUnreleased(args.rest.first, args.rest[1]); + return null; }); cider.addCommand(_DescribeCommand(), (args, get) { final version = args.rest.isEmpty ? null : args.rest.first; final section = get().describe(version); get().writeln(section); + return null; }); cider.addCommand(_ReleaseCommand(), (args, get) { @@ -33,6 +35,7 @@ class ChangelogService { date == 'today' ? DateTime.now() : DateTime.parse(date); final release = get().release(parsedDate); get().writeln(release); + return null; }); } @@ -79,6 +82,7 @@ class ChangelogService { /// Reads the project changelog Changelog? read() { if (_file.existsSync()) return parseChangelog(_file.readAsStringSync()); + return null; } /// Returns a markdown description of the given [version] or the `Unreleased` diff --git a/lib/src/service/pubspec_service.dart b/lib/src/service/pubspec_service.dart index 0ca1752..23803f4 100644 --- a/lib/src/service/pubspec_service.dart +++ b/lib/src/service/pubspec_service.dart @@ -13,6 +13,16 @@ class PubspecService { PubspecService(Directory root) : _file = File(join(root.path, 'pubspec.yaml')); + static final _bumpCommands = { + 'breaking': BumpBreaking(), + 'build': BumpBuild(), + 'major': BumpMajor(), + 'minor': BumpMinor(), + 'patch': BumpPatch(), + 'pre': BumpPreRelease(), + 'release': Release(), + }; + /// Publishes the [PubspecService] and installs commands (`version`, `bump`) static void install(Cider cider) { cider.provide((get) => PubspecService(get('root'))); @@ -23,9 +33,10 @@ class PubspecService { get().writeVersion(version); } get().writeln(get().readVersion()); + return null; }); - cider.addCommand(_BumpCommand(), (args, get) { + cider.addCommand(_BumpCommand(_bumpCommands.keys), (args, get) { final pubspec = get(); final part = args.command?.name; if (part == null) throw 'Version part must be specified'; @@ -36,6 +47,7 @@ class PubspecService { build: args['build'], pre: args['pre']); get().writeln(result); + return null; }); } @@ -59,15 +71,7 @@ class PubspecService { bool bumpBuild = false, String build = '', String pre = ''}) { - final map = { - 'breaking': BumpBreaking(), - 'major': BumpMajor(), - 'minor': BumpMinor(), - 'patch': BumpPatch(), - 'pre': BumpPreRelease(), - 'build': BumpBuild(), - }; - var mutation = map[part.toLowerCase()] ?? + var mutation = _bumpCommands[part.toLowerCase()] ?? (throw ArgumentError('Invalid version part')); if (keepBuild) { mutation = KeepBuild(mutation); @@ -114,14 +118,12 @@ class _VersionCommand extends CiderCommand { } class _BumpCommand extends CiderCommand { - _BumpCommand() : super('bump', 'Bump project version') { + _BumpCommand(Iterable commands) + : super('bump', 'Bump project version') { + for (final command in commands) { + argParser.addCommand(command); + } argParser - ..addCommand('breaking') - ..addCommand('major') - ..addCommand('minor') - ..addCommand('patch') - ..addCommand('pre') - ..addCommand('build') ..addFlag('keep-build', help: 'Keep the existing build') ..addFlag('bump-build', help: 'Also bump the build') ..addOption('build', diff --git a/pubspec.yaml b/pubspec.yaml index 2512c9e..4f6e833 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,27 +1,27 @@ name: cider -version: 0.1.1 +version: 0.1.2 description: Tools for Dart package maintainers. Automates changelog and pubspec.yaml updates. homepage: https://github.com/f3ath/cider repository: https://github.com/f3ath/cider issue_tracker: https://github.com/f3ath/cider/issues environment: - sdk: ">=2.15.1 <3.0.0" + sdk: ">=2.17.0 <3.0.0" dependencies: args: ^2.0.0 - change: ^0.3.1 + change: ^0.5.0 klizma: ^0.2.0 intl: ^0.17.0 - markdown: ^4.0.0 - marker: ^0.2.2 + markdown: ^6.0.0 + marker: ^0.4.0 path: ^1.6.0 pub_semver: ^2.0.0 - version_manipulation: ^0.1.0 + version_manipulation: ^0.1.1 yaml: ^3.1.0 rfc_6901: ^0.1.0 pubspec_parse: ^1.0.0 dev_dependencies: - lints: ^1.0.1 + lints: ^2.0.1 test: ^1.15.3 coverage: ^1.0.2 check_coverage: ^0.0.2 diff --git a/test/functional_test.dart b/test/functional_test.dart index 37d7f3f..1abc0e9 100644 --- a/test/functional_test.dart +++ b/test/functional_test.dart @@ -126,8 +126,10 @@ void main() { ['bump', 'pre', '--bump-build']: '0.0.5-alpha.1+43', ['bump', 'pre', '--build=foo']: '0.0.5-alpha.1+foo', ['bump', 'pre', '--pre=beta']: '0.0.5-beta', + ['bump', 'release']: '0.0.5', + ['bump', 'release', '--keep-build']: '0.0.5+42', }.forEach((args, expected) { - test(args.join(' ') + ' => $expected', () async { + test('${args.join(' ')} => $expected', () async { final code = await cider.run(args); expect(code, 0); out.buffer.clear();