Thank you for your interest in improving our golden path! This template serves all Java service teams, so your contributions have wide impact.
Found something broken? Please fix it!
Have a pattern that's proven in production? Share it!
Clearer docs help everyone onboard faster.
Keeping dependencies current helps security and compatibility.
- Fork the repository
- Create a branch:
git checkout -b fix/description - Make your changes
- Test locally (see below)
- Submit a PR
- Open an issue first - Discuss with the platform team
- Get alignment on approach
- Create an ADR for significant decisions
- Implement with tests
- Submit a PR
# Clone the repo
git clone https://github.com/your-org/java-service-template
cd java-service-template
# Test template generation
# Use Backstage CLI or manual Jinja2 rendering
# Test generated service
cd skeleton
./mvnw clean verify- Template generates without errors
- Generated service builds:
./mvnw clean package - Tests pass:
./mvnw test - Quality checks pass:
./mvnw checkstyle:check spotbugs:check - Docker builds:
docker build -t test . - Health checks work:
curl localhost:8081/health
- Follow existing patterns in the codebase
- Java: Google Java Style (enforced by Checkstyle)
- YAML: 2-space indentation
- Markdown: One sentence per line (easier diffs)
Use conventional commits:
feat: add distributed tracing support
fix: correct health check endpoint path
docs: update getting started guide
chore: update Spring Boot to 3.4.2
Every feature needs:
- Code comments for complex logic
- Usage example in relevant guide
- ADR for significant decisions
- Don't break existing services
- Deprecate before removing
- Provide migration path for breaking changes
Ask yourself:
- Is it proven? Has this worked in production?
- Is it common? Will multiple teams use this?
- Is it simple? Can you explain it in a sentence?
- Is it optional? Can teams opt-out if needed?
- Is it documented? Can someone use it without asking you?
- Tests added/updated
- Documentation updated
- ADR added (if significant change)
- No breaking changes (or migration path provided)
- Changelog updated
- PR description explains the "why"
- Automated checks - CI must pass
- Platform team review - At least one approval
- Documentation review - For significant changes
- Merge - Squash and merge to main
- Slack: #platform-help
- Office Hours: Thursdays 2-3pm
- Issue discussions: Comment on the issue
Contributors are recognized in:
- Release notes
- Template changelog
- Team announcements
Thank you for making our golden path better for everyone!