All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add option to use Oxfmt for formatting changelog (#198)
- The CLI now accepts an optional
--formatteroption which can be set to either "oxfmt" or "prettier" (default).
- The CLI now accepts an optional
- When a new major version of a package is being released but some of its direct dependents are missing, strongly suggest that they be included in the release as well (#193)
- Update UI to improve how existing per-package error messages are shown so they are less prominent visually and provide clearer rationales/examples (#192)
- When creating a new release and populating the Unreleased section, use the same repo URLs in PR links as
auto-changelog updatewould use (#165)- This prevents the updated changelog that
create-release-branchproduces from being invalid in the case where a non-standard URL was used to clone the repo originally.
- This prevents the updated changelog that
- Improved error handling when opening browser fails due to System Events permissions or non-standard browser configurations (#178)
- Now provides clear manual URL instructions instead of failing with osascript errors
- Handles both cases: when terminal lacks System Events permissions and when using alternative browsers like Brave
- Ask users to include peer dependents of a major-bumped package in the release, even they've had no changes (#173)
- UI: Include all peer dependents of a major-bumped package as available packages to release, even if they've had no changes (#173)
- Add interactive web UI for selecting package versions to release (#166)
- Added
--interactive(-i) flag to launch a web-based UI for easier version selection - Added
--portoption to configure the web server port (default: 3000)
- Added
- Refine breaking change dependent detection to only consider peer dependencies (#170)
- This change supports our policy of requiring packages with breaking changes to be released alongside their dependents
- Regular dependencies are no longer included in this check
- Allow
npm:name@versiondependency redirections in manifest (#158)
- BREAKING: Bump minimum Node.js version to
^18.18(#156) - BREAKING: Bump
@metamask/auto-changelogto^4.0.0(#156)- This requires
prettier@>=3.0.0.
- This requires
- Bump
@metamask/utilsto^9.0.0(#150)
- Correct Yarn constraint violations and update Yarn lockfile at the end of the release process (#145)
- This was previously a required step after running
create-release-branch.
- This was previously a required step after running
- Enable MetaMask security code scanner (#133)
- BREAKING: Format changelogs using Prettier (#100)
- This is a breaking change since it changes the default formatting of the changelog in new release PRs. If you have a package script that runs
auto-changelog validate, or you're callingauto-changelog validatein CI, you'll now need to pass the--prettierflag (see example).
- This is a breaking change since it changes the default formatting of the changelog in new release PRs. If you have a package script that runs
- Restore support for monorepos that use
workspace:^references for interdependencies (#125)
- Move
@metamask/auto-changelogfromdevDependenciestodependenciesand pin to ~3.3.0 (#122)
- BREAKING Bump minimum Node version to 16 (#114)
- Reorder workflow to update changelogs first (#109)
- When you run this tool you can use the changelogs to decide which versions to include in your release.
- Allow for partial releases (#98)
- It is no longer necessary to release every package that has changed. Instead, you may release a subset of packages (as long as it is okay to do so; see next items).
- Soft-enforce major-bumped packages to be released along with their dependents (#101)
- If a new major version of a package A is being included in the release, and there are is a package B which depends on A but which is not also being released at the same time, then the tool will produce an error. This is to ensure that if a consumer is upgrading package A in a project and they also need to upgrade package B for compatibility reasons, they can.
- Soft-enforce dependents to be released along with their dependencies (#102)
- If package B depends on package A, and A has changed since its last release, and B is being included in the release but not A, then the tool will produce an error. This is to ensure that if B has been changed to rely on a new feature that was added to A, it doesn't break when it is used in a project (since that feature is present in development but has not been published).
- Add support for nested workspaces (#84)
- Add
.ymlextension toRELEASE_SPECfile (#83)
- Update changelogs correctly for monorepo packages (#50)
- The changelog update step was encountering an error when used for a monorepo package release that had already been released at least once. Related to this, the changelog was being updated with the wrong tag links. Both problems should now be resolved.
- Initial release
- In this first release, this tool only supports monorepos with an independent versioning scheme. We will add support for other kinds of projects in future releases.
- You can learn more on how to use this tool by reading the documentation.