Skip to content

Latest commit

 

History

History
79 lines (49 loc) · 2.18 KB

File metadata and controls

79 lines (49 loc) · 2.18 KB

Commands needed for setting up a development environment and running tests

Development environment

Create the development environment, only needed once

python3 -m venv venv

Activate the development environment

source ./venv/bin/activate

Install the module locally using the source in-place

python3 -m pip install --editable '.[dev,numpy]'

Testing

The package must be installed to be tested because the C library must be compiled and this is done during packaging.

python3 -m pip install pytest

Run tests (without coverage analysis - default)

pytest

Run tests on code blocks in README.md (not included by default)

pytest README.md

Run tests with coverage analysis (when needed)

pytest --cov=pymseed --cov-report=term-missing --cov-report=html --cov-report=xml

Run tests with coverage and open HTML report

pytest --cov=pymseed --cov-report=html && open htmlcov/index.html

Update release version

The single-source package version is specified in: src/pymseed/version.py

The versioning follows the semantic versioning definition.

Release dependencies

For maintainers publishing releases, install the release dependencies: pip install pymseed[release]

This provides build and twine for package building and PyPI publishing.

Building distribution packages

Distributions are built automatically by a GitHub Action when a release is created.

The Action has a workflow_dispatch trigger that allows manually triggering of the build process from here: https://github.com/EarthScope/pymseed/actions/workflows/release.yml

This is convenient for testing the build process prior to creating a new release. These wheels will not be published to PyPI, that only happens for releases created on github.com

Triggering GitHub Actions using GH CLI

gh workflow run BuildRelease --ref

Building distribution packages manually for testing

Ensure required build modules are installed

python3 -m pip install build twine

Build sdist and wheel

python3 -m build

Test and upload to PyPI

Official releases should be built by the GitHub Action, this is only needed in special cases, or more likely nevermore.

python3 -m twine check --strict dist/* python3 -m twine upload dist/*