# set tw: 72

Release checklist

  1. Ensure that the commit message of any commit that changes the database starts with “Migrate:”. Rebase if necessary.

  2. If we have a commit with migrate, migrate the change to the devfixtures database and create new devfixtures with

    $ manage.py dumpdata auth.Group easydmp_auth dmpt eestore \
    --format json --indent 1 --natural-foreign --natural-primary \
    > devfixtures.json
    

    then commit the devfixtures, preferrably in a separate commit.

  3. Rebase branches that are to be included on master, and merge them with --no-ff. Strive to avoid octopus merges.

  4. Ensure we’re on the master branch.

  5. Update the version number in src/easydmp/__init__.py and CHANGELOG.rst. Everywhere else needing the version number should try fetching it from src/easydmp/__init__.py.

  6. Write something sensible in CHANGELOG.rst. The summary for the changelog can be copied and adjusted from

    $ git log --format="* %B" v1.3.1..HEAD
    

    Full details can be had via git log, so strive for readability and highlights in the changelog.

  7. Commit the changelog and src/easydmp/__init__.py. The commit message should be “Bump version to {version}”.

  8. Tag that commit with “v{version}” and add a brief summary of the changes as the tag message. (Thus making an annotated tag.)

  9. Push the code and tag to the official repo