- Verify that the regression tests pass (verified by GitHub Actions).
- Verify that the regression tests pass for 2 usb->serial ports connected via a NULL modem on Linux and Windows.
- Verify that the regression tests pass for 2 usb->serial ports connected via a NULL modem on Mac. Serial drivers on the Mac are flakey when being pounded on by the regression tests, so running tests individually to see that they pass is ok. FTDI drivers work better than Prolific ones.
- Update CHANGELOG.md with a bulletpoint list of new features and bug fixes
- Run
mix docsand verify that the docs generate correctly. - Remove the
-devfrom the version numbers inCHANGELOG.mdandmix.exs. If doing anrcrelease, mark them appropriately. - For non-rc releases, update the version numbers in
README.md. They'll be incorrect until the release is on hex.pm, but "that's ok". - Run a practice
mix hex.publish, but don't publish yet. Check for warnings and missing files. - Tag
- Push last commit(s) and tag to GitHub
- Wait for the CI builds to complete successfully. They should work assuming that no code changes were made between the last build and the tag, but wait to be safe.
- [SKIP FOR NOW] Copy the circuits_uart.exe artifact created by the CI build to
prebuilt/circuits_uart.exe - Run
mix hex.publish - Update the deps on a sample project that uses circuits_uart to make sure that it downloads and builds the new circuits_uart.
- Copy the latest CHANGELOG.md entry to the GitHub releases description. Publish the release on GitHub.
- Start the next dev cycle. Start a new section in
CHANGELOG.mdand update the version inmix.exsto a-devversion. - Push changes up to GitHub