5.11. How to release new version of Open Interfaces

  • [ ] Bump version in the following files:

    • CMakeLists.txt

    • pyproject.toml

    • version.py

    • conf.py

  • [ ] Run pre-commit

  • [ ] Make a pull request and make sure it passes all the checks

  • [ ] Merge the pull request to main

  • [ ] Go to the GitHub page of the repository and press “Releases”

  • [ ] Press “Draft a new release”

  • [ ] Create a new tag “vX.Y.Z” (e.g. “v0.1.0”) for the main branch

  • [ ] Press publish release

  • [ ] In local working copy of the repository, switch to main:

    git checkout main
    
  • [ ] Fetch changes from the remote repository (from your fork):

    git fetch origin
    
  • [ ] Fetch tags from the upstream repository:

    git fetch --tags upstream
    
  • [ ] Make sure that main is on the tagged commit: git log must report that HEAD, main, origin/main, and upstream/main are all the same; besides, it must have the tag from the above

  • [ ] Build the Python package

    make build-python-package
    
  • [ ] Check that the package is build correctly by uploading to TestPyPI:

    make upload-package-python-test
    
  • [ ] Install in a separate virtual environment:

    python -m pip install \
           --index-url https://test.pypi.org/simple/ \
           --extra-index-url https://pypi.org/simple/ \
           openinterfaces
    
  • [ ] Check that the package is installed correctly and functional in IPython:

    from openinterfaces.examples import call_ivp_from_python
    call_ivp_from_python.main()
    
  • [ ] Upload the package to PyPI:

    make upload-package-python
    
  • [ ] Drink a coffee/tee/a glass of water/a glass of wine 🍻.