Thank you for your interest in contributing to Madagascar!
This project is developed and maintained by a global community of researchers and developers who share the goal of advancing open-source reproducible computational experiments in geophysics and beyond.
We welcome contributions of all kinds: new code, bug fixes, documentation improvements, testing, and community support.
- Use the GitHub Issues page to report bugs, request features, or suggest improvements.
- Before filing a new issue, please check if it already exists.
- When reporting a bug, include:
- A clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- System/environment details (OS, compiler, Python version, etc.)
- Fork the repository and create your branch from
master:git checkout -b my-feature
- Follow coding style and conventions (see below).
- Add tests if you’re fixing a bug or adding functionality.
- Update documentation if your change affects usage or workflows.
- Commit messages should be concise and descriptive.
- Open a Pull Request (PR) to the
masterbranch.
- Languages: Madagascar is primarily written in C, C++, Fortran, Python, and SCons build scripts.
- Style:
- Use clear, consistent variable and function names.
- Write modular, maintainable code with inline comments where needed.
- Keep code formatting consistent with the existing files.
- Testing:
- Run existing test suites before submitting changes.
- Ensure your code builds and runs on Linux/macOS.
- Contributions to tutorials, examples, and wiki pages are highly valued
- Document new functions, parameters, and workflows.
- Use clear explanations and examples.
- For reproducible research scripts, include references and data details where appropriate.
- Jupyter notebook examples are also acceptable (see examples at https://github.com/ahay/src/blob/master/book/tccs/lowrank/lowrank.ipynb)
- Fork and clone the repo.
- Create a feature branch.
- Make changes, keeping them focused and atomic.
- Test your changes thoroughly.
- Push to your fork and open a PR.
- Be respectful and inclusive.
- Help new contributors learn.
- Discussions should remain constructive and research-focused.
- We follow the principles of open, reproducible science.
- Visit the Madagascar website and Development blog for documentation, tutorials, and community resources.
- Use the mailing list for discussions and support.
- Open an issue if you encounter a bug.
By contributing, you agree that your contributions will be licensed under the same open-source license as Madagascar.