๐ Fork & Branch
- Fork the official
geoserver/geoserverrepository - Create a feature branch from
mainor relevant release branch - Name format:
feature/xyz,bugfix/xyz, ordocs/xyz
๐งช Testing & Validation
- All PRs must pass CI/CD checks (Maven, SonarQube, OWASP)
- Include unit/integration tests for new logic
- Run
mvn clean verify -Pintegration-testslocally first
๐ Documentation
- Update API docs, user manuals, or changelog as needed
- Add inline comments for complex spatial algorithms
- Link relevant issues using
Closes #123syntax
๐ก๏ธ Security & Licensing
All contributions are assumed to be licensed under Apache 2.0. By submitting a PR, you certify that you have the right to submit the code. Ensure no proprietary or restricted dependencies are introduced. Run mvn license:check before committing.
Propose & Discuss
Open an issue first for major features or architectural changes. Get maintainer sign-off before writing code.
Develop & Commit
Follow commit conventions: feat: , fix: , docs: . Keep commits atomic and descriptive.
Submit PR
Fill the template thoroughly. Add labels, assign reviewers, and link related issues.
Review & Iterate
Maintainers will review code, style, tests, and performance. Respond to comments promptly and push follow-up commits.
CI/CD Validation
GitHub Actions runs static analysis, unit tests, integration tests, and build verification. All must pass green.
Merge & Release
Squash & merge upon approval. Changelog is auto-generated. Contributors are credited in release notes.
| PR | Title | Status | Author | Reviewer | Updated |
|---|---|---|---|---|---|
| #4892 | Fix WFS 3.0 GeoJSON encoding for multi-polygons | โ Open | sarah_rivera | geo-maint-1 | 2h ago |
| #4885 | Optimize tile caching for large raster datasets | โ In Review | dev_kim | tile-team | 5h ago |
| #4870 | Add S3-compatible backend for data stores | โ Merged | cloud_ops | maintainers | 1d ago |
| #4863 | Update OGC API - Features compliance documentation | โ Open | doc_bot | pending | 2d ago |
| #4851 | Fix CRS transformation precision loss in EPSG:4326 | โ In Review | spatial_math | crs-core | 3d ago |
| #4840 | Deprecate legacy WMS 1.1.1 fallback handlers | โ Closed | legacy_cleanup | arch-team | 5d ago |
โ Java Coding Style
Follow Google Java Style Guide. Use 4-space indentation. Max line length: 120 chars. Prefer composition over inheritance. Null safety is mandatory.
๐ Python/Scripting (Extensions)
Use PEP 8 for all Python-based tooling and CLI extensions. Type hints required. Virtual environments must be isolated via pyenv or venv.
๐ Git Commit Conventions
Use Conventional Commits. Format: <type>(<scope>): <description>
feat: New capability or spatial functionfix: Bug resolution in rendering/queryperf: Caching, indexing, or I/O optimizationdocs: Manuals, API refs, or examples
๐งช Testing Requirements
Minimum 85% branch coverage. Use JUnit 5 + Mockito for Java. Integration tests must spin up embedded GeoServer instances. No hardcoded credentials in tests.