# Description
Sets up the same release automation as in
[flame](https://github.com/flame-engine/flame/tree/main/.github/workflows):
- `release-prepare.yml`: manually triggered (with an optional prerelease
flag), runs `melos version` and a `melos publish` dry run, then opens a
`chore(release): Publish packages` PR.
- `release-tag.yml`: runs when a release commit lands on `main`, creates
the package tags and triggers the publish workflow for each unpublished
package.
- `release-publish.yml`: publishes the package to pub.dev using OIDC and
creates a GitHub release with the notes from the changelog.
Also adds the melos `version` config from flame (`branch: main`,
`releaseUrl`, `includeCommitId`, `linkToCommits`) and updates the
release section in `CONTRIBUTING.md`.
Additionally bumps all GitHub actions to their latest major versions:
`actions/checkout` to v7 (was v2/v3/v4), `subosito/flutter-action` to v2
(was v1 in the dartdoc job) and `amannn/action-semantic-pull-request` to
v6 (was v4).
## Notes
- Publishing via OIDC requires automated publishing from GitHub Actions
to be enabled for the `tiled` package on pub.dev, with
`flame-engine/tiled.dart` and the tag pattern `tiled-v{{version}}`
configured.
- For the release PR created by `release-prepare.yml` to get CI runs, a
PAT or GitHub App token can be passed to the `token` input of
`melos-action`, same as in flame the default `GITHUB_TOKEN` is used
here.
## Checklist
- [x] I have followed the [Contributor Guide] when preparing my PR.
- [ ] I have updated/added tests for ALL new/updated/fixed
functionality.
- [x] I have updated/added relevant documentation in `docs` and added
dartdoc comments with `///`.
- [ ] I have updated/added relevant examples in `examples` or `docs`.
## Breaking Change?
- [ ] Yes, this PR is a breaking change.
- [x] No, this PR is not a breaking change.
[Contributor Guide]:
https://github.com/flame-engine/tiled.dart/blob/main/CONTRIBUTING.md
https://claude.ai/code/session_016h5CfXvZUtr33Nmc4XN8BC