New release

The ase/utils/newrelease.py script generates a new release. The instructions below were written before this script, so some of these steps are in fact automatic now.

  • Make sure all tests pass.

  • Go through the git-logs and make sure all important changes since last stable release are mentioned in the Release notes.

  • Build the web-page:

    $ cd doc
    $ make clean
    $ make
    

    and check the generated images with make inspect.

  • Update __version__ to "x.y.z" in ase/__init__.py.

  • Upload to PyPI:

    $ python3 setup.py sdist
    $ python3 setup.py bdist_wheel
    $ twine upload dist/*
    
  • Push and make a tag “x.y.z”.

  • Create pull-request for Easy-Build. The EasyBuild (.eb) files are in docs/development/easybuild.

    • Rename the old .eb files, updating the ASE version number. There are two .eb files, one for Python 2.7.12 and one for Python 3.5.2. Use git mv to rename the files.

    • Edit file file.

      • Update the version number.

      • Remove the checksum (delete the entire line in the file).

    • Check the syntax and style, and insert new checksums by running these commands:

      eb --check-style ASE-X.Y.X-Python*.eb
      eb --inject-checksums sha256 ASE-X.Y.X-Python*.eb
      
    • Submit the new files:

      eb --new-pr --pr-commit-message "ASE updated to version X.Y.Z" ASE-X.Y.X-Python*.eb
      
    • Commit the updated *.eb files, so they will be part of the next release.

    If the commands above fail, you need to integrate EasyBuild with github.

  • Export issues, MR’s, … from GitLab (https://gitlab.com/ase/ase/) and store the tar-file in a safe place.

  • Merge master into the web-page branch (which is used for creating the web-page for the stable version).

  • Update version numbers in News, Release notes and Installation pages.

  • Increase the version number and push (“x.y+1.0b1”).

  • Send announcement email to the ase-users mailing list.

    Number of commits since last release:

    $ git shortlog -s -n 3.13.0..