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
Make sure the rc/$RELEASE branch has the correct Filament version. It should have the version corresponding to its name, $RELEASE.
Make sure MATERIAL_VERSION
has been bumped to a new version if this is a MAJOR or MINOR release
(first two version numbers).
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.
Create a new header in RELEASE_NOTES.md for $NEXT_RELEASE. Copy the release notes in NEW_RELEASE_NOTES.md to RELEASE_NOTES.md under the new header. Clear NEW_RELEASE_NOTES.md.
Amend these changes to the "Release Filament $RELEASE" commit.
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.
Navigate to Filament's npm deploy workflow. Hit the Run workflow dropdown. Modify Release tag to deploy to the tag corresponding to this release (for example, v1.42.2).
Navigate to Filament's CocoaPods deploy workflow. Hit the Run workflow dropdown. Modify Release tag to deploy to the tag corresponding to this release (for example, v1.42.2).