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.