# Contributing to TSU-WAVE We welcome contributions from tsunami researchers, coastal engineers, hydrodynamic physicists, and software developers. This guide explains how to contribute to the project. ## Ways to Contribute ### 1. Report Issues or Suggest Improvements - Open a new Issue on [GitLab](https://gitlab.com/gitdeeper4/tsu-wave/-/issues) or [GitHub](https://github.com/gitdeeper4/tsu-wave/issues) - Describe the problem or suggestion in detail - Include relevant data or references if applicable - Add appropriate labels (bug, enhancement, question, physics) ### 2. Code Contributions 1. Fork the repository on your preferred platform 2. Create a new branch (`git checkout -b feature/your-feature`) 3. Implement your changes following our guidelines 4. Test your changes thoroughly 5. Submit a Pull Request/Merge Request ### 3. Documentation Contributions - Improve README.md or documentation files - Add examples and tutorials - Translate documentation to other languages - Write scientific explanations of parameters ### 4. Scientific Contributions - Propose new physical parameters or indicators - Review methodology and derivations - Suggest improved measurement techniques - Share validation data from tsunami events - Contribute case studies of historical tsunamis ### 5. Data Contributions - Share DART buoy records (with appropriate attribution) - Contribute tide gauge data from tsunami events - Provide bathymetric survey data - Share run-up survey measurements ## Code Requirements - **Python**: Follow PEP 8 standards - **Fortran**: Follow consistent formatting for NSWE solver - **Tests**: Write tests for new code (pytest) - **Documentation**: Document functions and classes with docstrings - **Type Hints**: Use type hints in Python code - **Performance**: Optimize numerical computations ## Development Process 1. **Discuss**: Open an Issue to discuss major changes first 2. **Plan**: Define requirements and design 3. **Develop**: Write code with comprehensive tests 4. **Review**: Submit for review by maintainers 5. **Merge**: Approved changes merged into main branch ## Acceptance Criteria - ✅ Code compiles/runs without errors - ✅ All tests pass (run `pytest tests/ -v`) - ✅ New code has test coverage ≥ 90% - ✅ Documentation is updated - ✅ No conflicts with main branch - ✅ Follows project coding standards - ✅ Physical derivations are mathematically sound ## Testing ```bash # Install development dependencies pip install -r requirements-dev.txt # Run all tests pytest tests/ -v # Run specific test module pytest tests/test_wcc.py # Run with coverage pytest --cov=src/ tests/ ``` Pull Request Process 1. Update the README.md or documentation with details of changes 2. Update CHANGELOG.md with your contribution 3. Ensure all tests pass in CI/CD pipeline 4. Request review from at least one maintainer 5. Address review comments 6. Squash commits if requested Scientific Review Process For contributions involving new physics or parameters: 1. Provide complete mathematical derivation 2. Include references to peer-reviewed literature 3. Validate against at least 3 tsunami events 4. Submit with validation data and results 5. Undergo review by scientific advisory board Communication Channels Platform Purpose Link GitLab Issues Bug reports, feature requests gitlab.com/gitdeeper4/tsu-wave/-/issues GitHub Issues Mirror github.com/gitdeeper4/tsu-wave/issues Email Direct contact gitdeeper@gmail.com ORCID Researcher ID 0009-0003-8903-0029 Code of Conduct · Be respectful and inclusive · Provide constructive feedback · Focus on scientific accuracy and technical excellence · Acknowledge contributions appropriately · Follow open science principles License By contributing, you agree that your contributions will be licensed under the MIT License. --- Thank you for contributing to TSU-WAVE! 🌊 Together, we can improve tsunami early warning and save lives. Last Updated: February 17, 2026