Development setup#

Local installation#

Install the package aber cloning it locally.

pip install --editable '.[dev]'

Using a virtual environment is highly recommended.

Unit tests#

To run the tests run the command:

pytest test/

You can also indicate specific tests to run:

pytest test/test_parse_params_alphapept.py

Testing the web interface locally#

Start the web server locally with:

cd ./webinterface/
streamlit run Home.py

This will launch the Proteobench application in your web browser.

Changes to the code in ./webinterface will trigger a reload of the web server. However, changes in ./proteobench require a full restart of the webserver to be included.

Documentation#

To work on the documentation and get a live preview, install the requirements and run sphinx-autobuild:

pip install -e '.[docs]'
sphinx-autobuild  --watch ./proteobench ./docs/ ./docs/_build/html/

Then browse to http://localhost:8000 to watch the live preview.

How to contribute#

  • Fork ProteoBench on GitHub to make your changes.

  • Commit and push your changes to your fork.

  • Ensure that the tests and documentation (both Python docstrings and files in /docs/source/) have been updated according to your changes. Python docstrings are formatted in the numpydoc style.

  • Open a pull request with these changes. You pull request message ideally should include:

    • A description of why the changes should be made.

    • A description of the implementation of the changes.

    • A description of how to test the changes.

  • The pull request should pass all the continuous integration tests which are automatically run by GitHub Actions.

Release workflow#

  • When a new version is ready to be published:

    1. Change the __version__ in proteobench/__init__.py following semantic versioning.

    2. Update the changelog (if not already done) in CHANGELOG.md according to Keep a Changelog.

    3. Merge all final changes with the main branch.

    4. Create a new release on GitHub.

  • When a new GitHub release is made, the Publish GitHub Action is automatically triggered to build the Python package and publish it to PyPI. Upon a new PyPI release, the Bioconda automations will automatically update the Bioconda package. However, if dependencies are changed, the conda recipe will have to be updated accordingly.