Skip to content

Latest commit

 

History

History
110 lines (67 loc) · 3.1 KB

File metadata and controls

110 lines (67 loc) · 3.1 KB

Releasing Raygun4Flutter

Raygun for Flutter is published on pub.dev as raygun4flutter.

Semantic versioning

Flutter and Dart packages published on pub.dev follow semantic versioning,

Given a version number MAJOR.MINOR.PATCH (x.y.z), increment the:

  • MAJOR version when you make incompatible changes
  • MINOR version when you add functionality in a backward compatible manner
  • PATCH version when you make backward compatible bug fixes

To learn more about semantic versioning check: https://semver.org/

Preparing for release

Release branch

Create a new branch named release/x.y.z where x.y.z is the Major, Minor and Patch release numbers.

Update version

Update the version in the pubspec.yaml file. As well, update the kVersion in lib/src/services/settings.dart.

Update lockfile

Run flutter pub get to update the version in pubspec.lock, then keep the updated lockfile in the release PR. CI installs dependencies with flutter pub get --enforce-lockfile, so the release PR must include any lockfile changes caused by the version update.

Update CHANGELOG.md

Add a new entry in the CHANGELOG.md file.

Obtain a list of changes using the following git command:

git log --pretty=format:"- %s (%as)"

Run publish dry-run

Run a publish dry-run from a clean git state to validate the package contents before review and before publishing:

flutter pub publish --dry-run

Commit and open a PR

Commit all the changes into a commit with the message chore: Release x.y.z where x.y.z is the Major, Minor and Patch release numbers.

Then push the branch and open a new PR, ask the team to review it.

Publishing

PR approval

Once the PR has been approved, you can publish the provider.

Publish to pub.dev

Run the publish command without dry-run. You will need pub.dev credentials to publish, as well as being part of the Raygun organization.

flutter pub publish

Now the package is available for customers.

Merge PR to develop

With the PR approved and the package published, squash and merge the PR into develop.

Tag and create Github Release

Go to https://github.com/MindscapeHQ/raygun4flutter/releases and create a new Release.

GitHub will create a tag for you, you don't need to create the tag manually.

You can also generate the release notes automatically.

master branch promotion

The normal release process ends after publishing the package, merging the release PR into develop, and creating the GitHub Release.

Do not routinely merge develop into master as part of a release. Only open a develop to master PR when the team explicitly decides that master should be updated for a specific reason.

If a master promotion is explicitly requested, create a PR manually where develop merges into master or by following this link: https://github.com/MindscapeHQ/raygun4flutter/compare/develop...master

You can name the PR chore: merge to master.

Then ask for approval by the Raygun team.

Do not squash this PR. Use a merge commit.