We enthusiastically welcome contributions to this template!
Before getting started, please contact the lead developers at info@biosimulators.org to coordinate your planned contributions with other ongoing efforts. Please also use GitHub issues to announce your plans to the community so that other developers can provide input into your plans and coordinate their own work. As the development community grows, we will institute additional infrastructure as needed such as a leadership committee and regular online meetings.
The repository follows standard Python conventions:
README.md
: Overview of the repositoryREADME.template.md
: Template overview of the command-line interface and Dockerfilemy_simulator/
: Template Python code for a command-line interfacedocs/
: Template documentation for the command-line interfacetests/
: Template unit tests for the command-line interfacesetup.py
: Template installation script for the command-line interfacesetup.cfg
: Template configuration for the installation of the command-line interfacerequirements.txt
: Template dependencies for the command-line interfacerequirements.optional.txt
: Template for optional dependencies for the command-line interfaceMANIFEST.in
: Template for a list of files to include in the package for the command-line interfaceLICENSE
: License for this templateLICENSE.template
: Template license for the command-line interface and DockerfileCONTRIBUTING.md
: Guide to contributing to this template (this document)CODE_OF_CONDUCT.md
: Code of conduct for developers for this template
The template command-line interface follows standard Python style conventions:
- Class names:
UpperCamelCase
- Function names:
lower_snake_case
- Variable names:
lower_snake_case
We encourage developers to have complete test coverage of their command-line interfaces.
Templates for tests are located in the tests
directory. Once implemented, the tests can be executed by running the following command:
pip install pytest
python -m pytest tests
The coverage of the tests can be evaluated by running the following commands and then opening /path/to/<my_simulator>/htmlcov/index.html
with your browser.
pip install pytest pytest-cov coverage
python -m pytest tests --cov <my_simulator>
coverage html
The template command-line program is documented using reStructuredText and the napoleon Sphinx plugin. The documentation can be compiled with Sphinx by running the following commands:
python -m pip install -r docs-src/requirements.txt
sphinx-apidoc . setup.py --output-dir docs-src/source --force --module-first --no-toc
sphinx-build docs-src docs
Please use GitHub pull requests to submit changes. Each request should include a brief description of the new and/or modified features.
To release changes, contact the lead developers to request their release.
Below are instructions for releasing a new version:
- Make the required changes to the repository.
- To update the version of the underyling simulator, update its version numbers in the following files:
requirements.txt
Dockerfile
biosimulators.json
- Commit the changes to this repository.
- Increment the
__version__
variable inbiosimulators_my_simulator/_version.py
. - Commit this change to
biosimulators_my_simulator/_version.py
. - Add a tag for the new version by running
git tag { version }
.version
should be equal to the value of the__version__
variable inbiosimulators_my_simulator/_version.py
. - Push these commits and the new tag to GitHub by running
git push && git push --tags
. - This push will trigger a GitHub action which will execute the following tasks:
- Create a GitHub release for the version.
- Push the release to PyPI.
- Compile the documentation and push the compiled documentation to the repository so that the new documentation is viewable at github.io.
Please use GitHub issues to report any issues to the development community.
Please use GitHub issues to post questions or contact the lead developers at info@biosimulators.org.