Get started developing!#
Installation#
Development Workflow#
Making Code Changes#
Create a feature branch:
git checkout -b feature/my-feature-name
Make your changes to the relevant files in the
CrocoDash/directoryRun tests locally to ensure nothing broke:
pytest tests/Or run specific test files:
pytest tests/test_specific.py
Testing During Development#
CrocoDash uses pytest for testing. Key testing practices:
Run full test suite:
pytest tests/Run with verbose output:
pytest -v tests/Run specific test:
pytest tests/test_file.py::test_function_nameRun and stop on first failure:
pytest -x tests/Show print statements:
pytest -s tests/
Always run tests after making changes to ensure you haven’t introduced regressions.
Working with Extract Forcings#
The extract_forcings module is computationally intensive and may involve large data transfers. When developing this module:
Use small test cases with limited date ranges
Test with small spatial domains
Consider using the
preview: trueoption in configuration files to test without full computationUse the
--test-configflag if available to validate configuration before running
Working with Raw Data Access#
When adding or modifying data access functions:
Ensure your function follows the
ForcingProductbase class interfaceTest with real data if possible, or mock data if that’s not feasible
Add proper error handling for network/file access failures
Update the registries in
raw_data_access/registry.py
Recognition and Appreciation#
All contributors are valued! We appreciate:
Code contributions
Bug reports and testing
Documentation and tutorials
Help with issues and discussions
Feature ideas and feedback
Thank you for making CrocoDash better!