Part 6: Making an initial release

See our YouTube tutorial for a video demonstration of this section.

While using git does satisfy the requirement that our MDAKit code be versioned, it is a good idea to make numbered releases with (human-understandable) version numbers to easily track your code as changes and improvements are made.

The MDAKit cookiecutter uses versioningit for version management. In brief, software versions are set through git tags.

Process for creating a release by making a tag
  1. Since the Kit is initiated without tags, the current version is set to 0.0.0.

    >>> import rmsfkit
    >>> rmsfkit.__version__
    '0.0.0+3.g0b64a6c'
    

    Note: As commits are added, the version is updated with the commit hash. The exact output here differs between the YouTube tutorial and video embedded above, and from what you will see.

    Bump this to a 0.1.0 in preparation for an initial release on GitHub using a git tag:

    $ git tag 0.1.0
    

    This should now be reflected in the interpreter (though may require a package reinstall):

    >>> import rmsfkit
    >>> rmsfkit.__version__
    '0.1.0'
    
  2. Tags are not pushed to remote repositories by default. To push the 0.1.0 tag, use:

    $ git push --tags
    
  3. Viewing the repository tags page on GitHub, you should now see a 0.1.0 tag. Expanding its menu gives us the option to create a release based on the tagged code. Enter a release name, such as v0.1.0 and publish!

Going forward, you could publish this release to a package distribution platforms such as PyPi or Conda-Forge, though this is not covered in this example.

Having met all the requirements, it’s now time to register our MDAKit!

Progress: MDAKit requirements

  1. ✓ Uses MDAnalysis

  2. ✓ Open source + OSI license

  3. ✓ Versioned + on a version-controlled repository

  4. ✓ Designated authors and maintainers

  5. ✓ (At least) minimal documentation

  6. ✓ (At least) minimal regression tests

  7. ✓ Installable as a standard package

  8. ✓ (Recommended) community information available

  9. (Recommended) on a package distribution platform