Developer Guide
Welcome to the rompy developer documentation. This section provides detailed technical information about contributing to the Rompy project and understanding the internal architecture.
Getting Started with Development
To get started developing for Rompy:
- Fork and clone the repository
- Set up your development environment - See the Installation Guide for setup instructions
- Run the tests - Make sure you can run the test suite before making changes
- Read the contribution guidelines - See the Contribution Guidelines for important information
Key Architecture Concepts
For detailed information about Rompy's architecture, see:
- Architecture Overview - High-level system architecture
- Plugin Architecture - Extension mechanisms and plugin system
- Backend Reference - Technical details for backend development
Development Process
Testing
Rompy uses pytest for testing. Before submitting changes:
Code Style
- Follow PEP 8 guidelines
- Use type hints for all public functions
- Write docstrings using Google style
Commit Messages
- Use present tense ("Add feature" not "Added feature")
- Limit first line to 72 characters
- Reference issues when applicable
Common Development Tasks
Adding New Configuration Types
When adding new configuration types, extend the appropriate base classes and consider using Pydantic discriminated unions for type safety.
Adding New Backends
To add new execution backends, implement the appropriate interface and register via entry points.
Extending Model Support
To add support for new ocean models, follow the plugin architecture patterns described in the Plugin Architecture documentation.
Need Help?
- Check the FAQ for common developer questions
- Join the discussion on GitHub issues
- For complex architectural questions, review the Architecture Overview