Tip: You can copy raw markdown checklist below to the release Pull Request and follow it step by step marking completed items.
A typical release goes like this:
The following steps must be proposed as a pull request.
-
Compare the last tag with the branch upon which you want to release (
next
for the alpha / beta releases andmaster
for the current stable version). To do so, useyarn release:changelog
The options are the following:yarn release:changelog --githubToken YOUR_GITHUB_TOKEN (needs "public_repo" permission) --lastRelease The release to compare against (default: the last one) --release The branch to release (default: master)
You can also provide the github token by setting
process.env.GITHUB_TOKEN
variable.In case of a problem, another method to generate the changelog is available at the end of this page.
-
Clean the generated changelog, to match the format of https://github.com/mui/mui-x/releases.
-
Update the root
package.json
's version -
Update the versions of the other
package.json
files and of the dependencies withyarn release:version
. -
Fix manually the package version in
x-date-pickers/package.json
andx-date-pickers-pro/package.json
. -
Open PR with changes and wait for review and green CI.
-
Merge PR once CI is green, and it has been approved.
- Checkout the last version of the working branch
- Make sure you have the latest dependencies installed:
yarn
. - Build the packages:
yarn release:build
. - Release the versions on npm:
yarn release:publish
(you need your 2FA device). - Push the newly created tag:
yarn release:tag
.
The documentation must be updated on the docs-vX
branch (docs-v4
for v4.X
releases, docs-v5
for v5.X
releases, ...)
- Push the working branch on the documentation release branch to deploy the documentation with the latest changes.
git push upstream master:docs-v5 -f
You can follow the deployment process on the Netlify Dashboard
Once deployed, it will be accessible at https://material-ui-x.netlify.app/ for the docs-v5
deployment.
- After documentation is deployed, publish a new release on GitHub releases page
- Follow the instructions in https://mui-org.notion.site/Releases-7490ef9581b4447ebdbf86b13164272d.
Compare the last tag with the branch upon which you want to release (next
for the alpha / beta releases and master
for the current stable version).
For instance: https://github.com/mui/mui-x/compare/v4.0.0-alpha.9...master (if you want to release master
and the last tag is v4.0.0-alpha.9
)
You can use the following script in your browser console on any GitHub page to automatically navigate to the page comparing master
with the last tag.
(async () => {
const releaseBranch = 'master';
const tagResponse = await fetch('https://api.github.com/repos/mui/mui-x/tags?per_page=1');
const tagData = await tagResponse.json();
const lastTag = tagData[0].name;
const diffPage = `https://github.com/mui/mui-x/compare/${lastTag}...${releaseBranch}`;
window.location.href = diffPage;
})();
If the yarn release:tag
fails you can create and push the tag using the following command: git tag -a v4.0.0-alpha.30 -m "Version 4.0.0-alpha.30" && git push upstream --tag
.