Want to do more?#
Welcome to the CrocoDash developer documentation! This section contains everything you need to understand, develop, and contribute to CrocoDash.
Getting Started#
If you’re new to CrocoDash development, start here:
Development Information - Read how to get started
Project Architecture - Understand how CrocoDash is organized
Development Guides#
Detailed Topics#
Implementation and Extension#
Adding Data Sources - How to add new data products to the data access module
Adding Forcing Configurations - How to add new forcing configurations to configure_forcings
Writing Documentation - How to write and build documentation
Key Concepts#
Validation#
Configure Forcings is where all validation of forcings should be done. For example:
Chlorophyll cannot be provided if BGC is not in the compset
River nutrients cannot be implemented if runoff or BGC is not in the compset
See case.configure_forcings() for implementation patterns.
Modular Forcing Extraction#
The extract_forcings module is designed to divorce computationally heavy processes from the main Case workflow because the process is complex and computationally intensive.
Common Workflows#
Adding a New Feature#
Create a feature branch:
git checkout -b feature/my-featureSet up development environment
Make your code changes with proper docstrings and type hints
Write tests for your changes
Build and test documentation:
cd docs && make htmlSubmit a pull request with description
Respond to code review feedback
Adding a New Data Source#
Follow the guide in Adding Data Sources
Create a class inheriting from
ForcingProductUpdate registries in
raw_data_access/registry.pyWrite comprehensive tests
Update data access documentation if relevant
Fixing a Bug#
Open or find the relevant issue
Create a fix branch:
git checkout -b fix/issue-descriptionWrite a test that reproduces the bug
Fix the bug (now your test should pass)
Submit a pull request referencing the issue
Project Links#
Questions?#
Check existing GitHub Discussions
Open a new discussion for questions