Skip to content

Contributing

MESA is open source under permissive licenses (Apache 2.0 / MIT). Anyone can contribute — bug reports, documentation fixes, and pull requests are all welcome.

Where to contribute

What you want to do Repo
Fix a typo on this site cyverse/mesa (this repo, docs/)
File a bug in the hosted service cyverse/mesa-mcp
Improve the AVU-history catalog cyverse/mesa-ducklake
Add or fix an iRODS tool cyverse/irods-mcp-server
Add a Discovery Environment capability cyverse-de/formation-mcp
Extend Terrain API coverage cyverse/terrain-mcp

Development setup

See Local Development for the per-repo setup steps.

Pull-request conventions

  • Branch off main; name branches <topic>/<short-description>.
  • One logical change per PR. Big refactors should be split.
  • Commit messages follow the Conventional Commits format (feat:, fix:, docs:, …).
  • Include tests for new behavior; don't loosen the existing test suite.
  • Run linters (ruff, gofmt, golangci-lint, eslint) before pushing.

Review process

  • All PRs require at least one approving review from a project maintainer.
  • The Lead RSE (S. Roberts) is the default reviewer for Goal 3 / MCP changes; Co-PI Cao for Lakehouse changes; Co-PI Russell for Data Mesh changes.
  • CI must be green. The doc site (this repo) deploys to GitHub Pages automatically on merge — preview by running zensical serve locally.

Code of Conduct

The MESA project follows the Contributor Covenant v2.1. Report violations to the PI at tswetnam@arizona.edu.

Licensing

By submitting a contribution you certify that you have the right to license your contribution under the project's license (Apache 2.0 unless the repo states otherwise). Contributions are accepted under the Developer Certificate of Origin (DCO).