Skip to content

Releasing Echidna

Gustavo Grieco edited this page Apr 15, 2020 · 3 revisions

To release Echidna

  1. Merge a PR bumping the version number in package.yaml, updating the README to point to the latest release and update the CHANGELOG.md with the version being released. Conventional commit message is "Echidna x.y.z.w".

  2. Based on external contribution activity in this last release, send Amelia external contributors, emails, and links to their PRs/contributions, indicating their size (small, medium, large).

  3. Check you are tagging master branch

    • git checkout master
    • git pull origin master
    • stack build #build from this copy
    • stack exec echidna-test -- --version should show expected version
  4. Tag that commit with the version number, and push tags.

    • git tag -a v1.x.y.z -m "Echidna 1.x.y.z"
    • git push origin v1.x.y.z or git push origin --tags
  5. Make a draft release in Github releases page https://github.com/crytic/echidna/releases. Select the right tag. The txt must be heavily based on the latest part of the Changelog at this point: https://raw.githubusercontent.com/crytic/echidna/master/CHANGELOG.md

  6. Make the distribution file.

    • Make a fresh clone of the repository git clone git@github.com:crytic/echidna.git
    • Delete or manage the previous distributions so you do not accidentally upload anything else
    • stack sdist # this creates the distribution tarball

Tips

Readmes and changelogs are content best edited in a collaborative editing environment like Google Docs (vs GH Pull Request).

Use the Github diff links to see all the commits between the last release and now, e.g. https://github.com/echidna/echidna/compare/1.0.0.0...HEAD

Start with the categories of changes from changelog

Types of changes

Added for new features.
Changed for changes in existing functionality.
Deprecated for soon-to-be removed features.
Removed for now removed features.
Fixed for any bug fixes.
Security in case of vulnerabilities.

and start categorizing features/commits from the diff into those

Resources

https://github.com/trailofbits/manticore/wiki/Releasing-Manticore