Contributing to ectop¶
Thank you for your interest in improving ectop!
Development Environment¶
We recommend using Conda or Mamba to manage the development environment, as it simplifies the installation of the ecflow dependency.
# Clone the repository
git clone https://github.com/bbakernoaa/ectop.git
cd ectop
# Create the environment
conda env create -f environment.yml
conda activate ectop
# Install the package in editable mode with dev dependencies
pip install -e .[dev]
Coding Standards¶
- Python Version: Required 3.11+.
- Type Hints: All function signatures must include type hints.
- Documentation: We use NumPy-style docstrings.
- Formatting: We use
rufffor linting and formatting.
Pre-commit Hooks¶
We use pre-commit to ensure code quality. Install the hooks with:
Running Tests¶
ectop uses pytest and pytest-asyncio for testing.
Note: Some tests mock the ecflow client to avoid requiring a running server.
Building Documentation¶
Documentation is built with mkdocs and the mkdocs-material theme.
Pull Request Process¶
- Create a new branch for your feature or bugfix.
- Ensure all tests pass and linting is clean.
- Include unit tests for any new functionality.
- Update the documentation if you change the API or usage.
- Submit a Pull Request to the
mainbranch.