๐Ÿ“ Fork & Branch

  • Fork the official geoserver/geoserver repository
  • Create a feature branch from main or relevant release branch
  • Name format: feature/xyz, bugfix/xyz, or docs/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-tests locally first

๐Ÿ“– Documentation

  • Update API docs, user manuals, or changelog as needed
  • Add inline comments for complex spatial algorithms
  • Link relevant issues using Closes #123 syntax

๐Ÿ›ก๏ธ 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.

1

Propose & Discuss

Open an issue first for major features or architectural changes. Get maintainer sign-off before writing code.

2

Develop & Commit

Follow commit conventions: feat: , fix: , docs: . Keep commits atomic and descriptive.

3

Submit PR

Fill the template thoroughly. Add labels, assign reviewers, and link related issues.

4

Review & Iterate

Maintainers will review code, style, tests, and performance. Respond to comments promptly and push follow-up commits.

5

CI/CD Validation

GitHub Actions runs static analysis, unit tests, integration tests, and build verification. All must pass green.

6

Merge & Release

Squash & merge upon approval. Changelog is auto-generated. Contributors are credited in release notes.

Showing recent activity โ€ข Updated in real-time
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.

// Good: Clear, typed, documented public FeatureCollection queryBBox(Envelope env) { return dao.findWithin(env); }

๐Ÿ 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.

# Good: Type hints, docstrings def process_geojson(data: dict) -> GeoDataFrame: """Convert raw geojson to geodataframe.""" return gpd.GeoDataFrame.from_features(data['features'])

๐Ÿ”„ Git Commit Conventions

Use Conventional Commits. Format: <type>(<scope>): <description>

  • feat: New capability or spatial function
  • fix: Bug resolution in rendering/query
  • perf: Caching, indexing, or I/O optimization
  • docs: 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.