Contributing to GeoServer
Thank you for your interest in contributing to GeoServer! This guide will help you understand how to submit improvements, report issues, and become an active member of our geospatial development community.
Code of Conduct
GeoServer is committed to providing a welcoming and inclusive environment for all contributors, regardless of experience level, gender, gender identity, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
Reporting Issues
Before opening a new issue, please search existing open and closed issues to avoid duplicates. If you find a bug or have a feature request, use our Issue Tracker.
Bug Reports Should Include:
- Clear, descriptive title
- Steps to reproduce the issue
- Expected vs. actual behavior
- GeoServer version & deployment environment (Docker, WAR, native)
- Relevant logs from `geoserver.log` or browser console
- Sample data or WMS/WFS request URLs if applicable
security@geoserver.dev with a detailed description. We follow responsible disclosure practices.
Pull Request Process
- Fork the repository and create a feature branch from
develop - Make your changes following our coding standards
- Write or update tests covering your changes
- Run
npm run lintandnpm testlocally - Commit using Conventional Commits format:
feat(wms): add support for custom SLD styling parameters fix(wfs): resolve null geometry serialization bug docs: update API reference for vector tiles chore(deps): update leaflet dependency to v1.9.4
- Open a Pull Request against the
developbranch - Fill out the PR template, linking related issues
- Wait for CI to pass and core maintainers to review
- Address feedback promptly. Squash commits before merge approval.
develop to avoid merge conflicts.
Documentation Contributions
Documentation lives in the /docs directory and is built using Markdown and MkDocs. Improvements to guides, API references, and tutorials are highly valued.
- Use clear, concise language and avoid jargon where possible
- Include code examples for every new feature or configuration option
- Update version compatibility notes when adding new capabilities
- Run
mkdocs servelocally to preview changes before submitting
License & Attribution
By contributing to GeoServer, you agree that your contributions will be licensed under the Apache License 2.0. Please ensure you have the rights to submit any code, data, or assets you include in your PR.
We use Developer Certificate of Origin (DCO). Sign-off your commits with -s or --signoff to confirm you authored the work or have permission to contribute it.
git commit -s -m "feat(layers): add vector tile caching support"
Thank you for helping us build better geospatial infrastructure for the world! 🌍