Development setup#
Local installation#
Install the package and dependencies with Flit:
pip install flit
flit install -s
Alternatively, use pip directly:
pip install --editable .
Using a virtual environment is highly recommended.
Unit tests#
To run the tests run the command:
python -m unittest test/test_module_dda_quant.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:
flit install -s
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:
Change the
__version__inproteobench/__init__.pyfollowing semantic versioning.Update the changelog (if not already done) in
CHANGELOG.mdaccording to Keep a Changelog.Merge all final changes with the
mainbranch.Create a new release on GitHub.
When a new GitHub release is made, the
PublishGitHub 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.