Contributing to geOrchestra Gateway¶
Thank you for your interest in contributing to the geOrchestra Gateway project! This guide will help you get started.
About geOrchestra¶
geOrchestra is a free, modular, and interoperable Spatial Data Infrastructure (SDI) solution that started in 2009 to meet the requirements of the INSPIRE European directive. It is a community-driven project governed by a Project Steering Committee (PSC) consisting of 9 members who ensure the project complies with its founding principles.
The geOrchestra community motto is "made by people for people" and welcomes contributions from individuals and organizations at all levels of expertise.
Code of Conduct¶
This project adheres to the geOrchestra Code of Conduct. By participating, you are expected to uphold this code.
Ways to Contribute¶
There are many ways to contribute to geOrchestra Gateway:
- Reporting bugs: File issues for bugs you encounter
- Suggesting enhancements: Propose new features or improvements
- Documentation: Improve or correct documentation
- Code contributions: Submit pull requests with bug fixes or features
- Testing: Test new releases and report issues
- Translations: Help translate the UI into different languages
Getting Started¶
Prerequisites¶
To contribute to the Gateway, you'll need:
- Java 21 or later
- Maven 3.8+
- Git
- A GitHub account
Development Environment Setup¶
- Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/georchestra-gateway.git cd georchestra-gateway
-
Add the upstream repository as a remote:
git remote add upstream https://github.com/georchestra/georchestra-gateway.git
-
Create a branch for your changes:
git checkout -b my-feature-branch
-
Build the project:
./mvnw clean install
Development Workflow¶
Working on Issues¶
- Find an issue to work on in the issue tracker
- Comment on the issue to let others know you're working on it
- Create a branch with a descriptive name (e.g.,
fix-login-page
oradd-oauth-provider
) - Make your changes, following the code style guidelines
- Write tests for your changes
- Update documentation as needed
Commit Guidelines¶
- Use clear, descriptive commit messages
- Reference issue numbers in commit messages
- Keep commits focused on a single task
- Follow the conventional commits specification
Example:
fix: Prevent login form submission when inputs are invalid
Added form validation to prevent submission when username or password
is empty. This improves user experience by providing immediate feedback.
Fixes #123
Pull Request Process¶
-
Update your branch with the latest changes from upstream:
git fetch upstream git rebase upstream/main
-
Push your branch to your fork:
git push origin my-feature-branch
-
Create a pull request from your branch to the upstream main branch
- In your PR description:
- Describe what the PR does
- Link to relevant issues
- Note any breaking changes
-
Include screenshots for UI changes
-
A maintainer will review your PR and may request changes
- Once approved, a maintainer will merge your PR
Testing¶
Running Tests¶
Run all tests with:
./mvnw test
Run a specific test with:
./mvnw test -Dtest=TestClassName
Testing Your Changes¶
Before submitting a PR, ensure:
- All tests pass
- Your code has adequate test coverage
- The application runs correctly with your changes
- You've tested all relevant authentication methods
Documentation¶
When making changes, please update the relevant documentation:
- Update Javadoc comments for API changes
- Update or create user guide pages for user-facing changes
- Update developer guide for infrastructure or architecture changes
Release Process¶
Releases are managed by the project maintainers. The process generally involves:
- Creating a release branch
- Updating version numbers
- Running final tests
- Building release artifacts
- Publishing to Maven Central
- Creating GitHub release notes
Community¶
Join the geOrchestra community:
- GitHub: github.com/georchestra
- Main mailing list: georchestra@googlegroups.com
- Developer mailing list: georchestra-dev@googlegroups.com
- Matrix chat: #georchestra on osgeo.org server
- Twitter: @georchestra
- Annual community meetings: The geOrchestra community organizes annual meetings (geOcom) where contributors and users gather to share experiences and plan future developments
Project Governance¶
The geOrchestra project is governed by a 9-member Project Steering Committee (PSC) that can be contacted at psc@georchestra.org. The PSC ensures the project complies with its founding principles and uses a "geOrchestra Improvement Proposal" (GIP) process for community-driven changes.
For more information about the geOrchestra project, visit georchestra.org.
License¶
By contributing to geOrchestra Gateway, you agree that your contributions will be licensed under the project's license.