tsunami / CONTRIBUTING.md
Gitdeeper4's picture
رفع جميع ملفات TSU-WAVE مع YAML
12834b7

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 or GitHub
  • 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

# 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