This documentation must be used as a guide for maintainers and developers for building and releasing this project.
- Checkout
master
branchgit checkout master
- Add a new entry at the top of the RELEASE_NOTES.md with a version and a date.
- If possible link to the relevant issues and PRs and credit the author of the PRs
- Update the AssemblyVersion attribute at src/Giraffe.fsproj, using the same version defined at the RELEASE_NOTES.md.
- Notice that this can be automated in the future with ionide/KeepAChangelog.
- Create a new commit
git add RELEASE_NOTES.md
git 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 releasev6.4.1-alpha-9
andv6.4.1-alpha-10
, thealpha-9
version 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
git tag v6.0.0-beta001
- Push changes
git push --atomic origin master v6.0.0-beta001
- 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 🎉