About the xcube-eopf project
Changelog
You can find the complete xcube-eopf changelog
here.
Reporting
If you have suggestions, ideas, feature requests, or if you have identified a malfunction or error, then please post an issue.
Contributions
The xcube-eopf project welcomes contributions of any form
as long as you respect our
code of conduct
and follow our
contribution guide.
If you'd like to submit code or documentation changes, we ask you to provide a pull request (PR) here. For code and configuration changes, your PR must be linked to a corresponding issue.
Development
To install the xcube-eopf development environment into an existing Python
environment, do
pip install .[dev,doc]
or create a new environment using conda or mamba
mamba env create
Testing and Coverage
xcube-eopf uses pytest for unit-level testing
and code coverage analysis.
pytest tests/ --cov=xarray_eopf --cov-report html
Some notes on the strategy of unit-testing
The unit test suite uses pytest-recording
to mock STAC catalogs. During development an actual HTTP request is performed
to a STAC catalog and the responses are saved in cassettes/**.yaml files.
During testing, only the cassettes/**.yaml files are used without an actual
HTTP request. During development, to save the responses to cassettes/**.yaml, run
pytest -v -s --record-mode new_episodes
--record-mode new_episodes overwrites all cassettes. If the user only
wants to write cassettes which are not saved already, --record-mode once can be used.
pytest-recording supports all records modes given by VCR.py.
After recording the cassettes, testing can be performed as usual.
Code Style
The xcube-eopf source code is formatted and quality-controlled
using ruff:
ruff format
ruff check
Documentation
The xcube-eopf documentation is built using the
mkdocs tool.
With repository root as current working directory:
pip install .[doc]
mkdocs build
mkdocs serve
mkdocs gh-deploy
License
xcube-eopf is open source made available under the terms and conditions of the
Apache 2.0 license.