Skip to content

Releasing Manticore

feliam edited this page Oct 31, 2018 · 52 revisions

To release manticore

  1. Merge a PR bumping the version number in setup.py, bumping the version number in __main__.py (--version), and updating the changelog with the version being released. Conventional commit message is "Manticore x.y.z". In the changelog don't forget to update the number in the "unreleased" line and check the date is correct.
  2. Based on external contribution activity in this last release, send Suzanne 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
    • python -m manticore --version should show expected version
  4. Tag that commit with the version number, and push tags.
    • git tag -a 0.1.xx -m "Manticore 0.1.xx"
    • git push origin 0.1.xx or git push origin --tags
  5. Make a draft release in github releases page https://github.com/trailofbits/manticore/releases. Select the right tag. The txt must be heavily based on the lastest part of the Changelog at this point: https://raw.githubusercontent.com/trailofbits/manticore/master/CHANGELOG.md
  6. Make the distribution file.
    • Make a fresh clone of the repository git clone git@github.com:trailofbits/manticore.git (If you use you normal copy the distribution file may include unexpected files in tests/)
    • Delete or manage what is in the dist/ folder so you do not accidentally upload anything else
    • python setup.py sdist # this creates the distribution file in dist/ folder

** Uploading to pypi is not reversible please try it out on test.pypi.org first **

7a. Push to test pypi and test it - twine upload --repository-url https://test.pypi.org/legacy/ dist/* - Check you see the correct version at https://test.pypi.org/project/manticore - Install it from test pypi (ideally on a fresh box): - pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple manticore 7b. Optional. If no access to test pypi. Do a fresh install in a virtualenv. - virtualenv --python=python3.7 temp - source temp/bin/activate - Untar the distro file you are about to upload - python setup.py install - Check everything looks good

  • Uploading to pypi is not reversible please try it out on test.pypi.org first **
  1. Push to pypi
    • twine upload dist/*
  2. Update the github releases page https://github.com/trailofbits/manticore/releases
  3. Confirm that readthedocs documentation was generated correctly https://manticore.readthedocs.io/en/latest/
  4. Determine date for next release

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/trailofbits/manticore/compare/0.1.3...HEAD

Start with the categories of changes from keepachangelog

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