Developing echoSMs
These notes are a work in progress.
This page contains notes and instructions on developing and adding new models to echoSMs.
Obtaining the source code
The echoSMs source code is kept on github under an ICES account. Clone the repository with this URL:
https://github.com/ices-tools-dev/echoSMs.git
Generating packages for PyPI
EchoSMs is a pure Python package. The build configuration is done via a pyproject.toml file and hatchling
is used to produce packages.
A github action in the echoSMS repository will generate a Python wheel and source package and upload these to PyPI. This action is triggered whenever a tagged commit occurs to the repository. The tag is used as the new version number. EchoSMs version numbers follow the semantic versioning convention.
Every commit to the echoSMs repository will generate a development package being uploaded to TestPyPI. This is used to always check that a commit does not prevent production of a package and is where a package containing the latest commit can be obtained.
Documentation
The echoSMs documentation is produced using mkdocs
and mkdocstrings
. The documentation pages are hosted by github and are regenerated after every commit to the repository using a github action.
Documentation edits can be tested locally by running:
mkdocs serve
in the top level of the echoSMs repository. The documentation is then available at http://127.0.0.1:8000.
Tests
EchoSMs uses the pytest testing framework. After installing pytest, run the tests using
pytest -v
in the top level of the echoSMs repository.
Adding a new scattering model
TBD.