This guide makes use of some "environment variables":
- $RELEASE = the new version of Filament we are releasing today. (e.g., 1.9.3)
- $NEXT_RELEASE = the version we plan to release next week (e.g., 1.9.4)
Before starting, ensure that each of these branches is up-to-date with origin:
- release
- rc/$RELEASE
- main
It should have the version corresponding to its name, $RELEASE.
Checkout the rc/$RELEASE branch. In RELEASE_NOTES.md, locate the header corresponding to $RELEASE and write release notes. To see which commits make up the release, run:
build/common/release.sh -c rc/$RELEASE
Commit the changes to rc/$RELEASE with the title:
Update RELEASE_NOTES for $RELEASE
Checkout main and run the following command to bump Filament's version to $RELEASE:
build/common/bump-version.sh $RELEASE
Commit changes to main with the title:
Release Filament $RELEASE
Do not push to origin yet.
git cherry-pick rc/$RELEASE
Update the headers. The "main branch" header becomes a header for $NEXT_RELEASE, and a new "main branch" header is added.
For example, this:
## main branch
- foo
- bar
## v1.9.3
- baz
- bat
becomes:
## main branch
## v1.9.4
- foo
- bar
## v1.9.3
- baz
- bat
Ammend these changes to the cherry-picked change.
git add -u
git commit --amend --no-edit
build/common/release.sh rc/$RELEASE rc/$NEXT_RELEASE
This script will merge rc/$RELEASE into release, delete the rc branch, and create a new rc branch called rc/$NEXT_RELEASE. Verify that everything looks okay locally.
git push origin release
Use the GitHub UI to create a GitHub release corresponding to $RELEASE version. Make sure the target is set to the release branch.
This step is optional. The old rc branch may be left alive for a few weeks for posterity.
git push origin --delete rc/$RELEASE
git checkout rc/$NEXT_RELEASE
build/common/bump-version.sh $NEXT_RELEASE
Commit the changes to rc/$NEXT_RELEASE with the title:
Bump version to $NEXT_RELEASE
git push origin main
git push origin -u rc/$NEXT_RELEASE
Sometimes the GitHub release job will fail. In this case, you can manually re-run the release job.
For example, if rebuilding the Mac release, ensure that the filament-<version>-mac.tgz
artifact
is removed from the release assets.
If you need to add one or more new commits to the release, perform the following:
First, push the new commit(s) to the release
branch.
Then, with the release branch checked out with the new commit(s), run
git tag -f -a <release tagname>
git push origin -f <release tagname>
This will update and force push the tag.
Navigate to Filament's release workflow. Hit the Run workflow dropdown. Modify Platform to build and Release tag to build, then hit Run workflow. This will initiate a new release run.