Contributing¶
Thank you for your interest in contributing to Tileverse! We welcome contributions from the community to help build the best Java ecosystem for cloud-native geospatial data.
Code Contribution Process¶
- Fork & Clone: Fork the repo and clone it locally.
- Branch: Create a feature branch (
feat/my-featureorfix/my-bug). - Code: Implement your changes.
- Test: Add unit tests for new logic and ensure existing tests pass.
- Format: Run
make formatto ensure code style compliance. - PR: Submit a Pull Request to the
mainbranch.
Coding Standards¶
- Java Version: Target Java 17 compatibility, but build with Java 21+.
- Style: We use the Palantir Java Style.
- Javadoc: Public APIs must be documented.
- Null Safety: Use
Optional<T>for return types that might be missing. Avoid returningnull.
Testing Requirements¶
- Unit Tests: Required for all new logic.
- Integration Tests: Required for cloud provider interactions (S3, Azure, GCS).
- Performance Tests: Required if modifying critical I/O paths.
Commit Messages¶
We follow the Conventional Commits specification:
feat: add GCS supportfix: handle EOF correctly in range readerdocs: update usage exampleschore: bump dependencies
Release Process¶
Releases are automated via GitHub Actions.
- Snapshots: Published on every merge to
main. - Releases: Published when a new tag (e.g.,
v1.0.0) is pushed.