This documentation must be used as a guide for maintainers and developers for building and releasing this project.
- Checkout
masterbranch:- Example:
git checkout master
- Example:
- Add a new entry at the top of the RELEASE_NOTES.md and CHANGELOG.md with a version and a date.
- If possible link to the relevant issues and PRs and credit the author of the PRs.
- For the CHANGELOG, use the KeepAChangelog format.
- Create a new commit:
git add RELEASE_NOTES.mdgit add CHANGELOG.mdgit commit -m "Release 6.0.0-beta001"- Notice that the pre-release versioning scheme is semantic versioning (SemVer), so each section of the pre-release part is compared separately, and purely-numeric sections are compared as integers. For example, if you eventually release
v6.4.1-alpha-9andv6.4.1-alpha-10, thealpha-9version will be ranked higher on Nuget. Keep this in mind and prefer the alphaXXX/betaXXX structure, where XXX are integers starting from 001 to 999. First mentioned at this PR comment: link.
- Make a new tag:
- Example:
git tag v6.0.0-beta001
- Example:
- Push changes:
- Example:
git push --atomic origin master v6.0.0-beta001
- Example:
- Create a new pre-release on GitHub.
- Choose the tag you just pushed.
- Title the pre-release the same as the version.
- Copy the pre-release notes from RELEASE_NOTES.md.
- This will trigger a github action to build and publish the nuget package.
- Do any additional testing or tell certain people to try it out.
- Once satisfied repeat the process but without any alpha/beta/rc suffixes.
- Run through steps 2-7, creating a release instead of a pre-release.
- Tell the internet about it.
- Tweet about it.
- Post in F# Slack.
- Post in F# Discord.
- Celebrate 🎉.