Development#
Information for developers contributing to GeoServer CLI.
Getting Started#
- Building - Build instructions and cross-compilation
- Contributing - Guidelines for contributions
- Code Style Guide - Coding patterns and conventions
Development Setup#
Quick setup for development:
| |
Project Structure#
| |
Code Standards#
All contributions must meet these standards:
- Formatted:
gofmt -w . - Vetted:
go vet ./...passes - Linted:
golangci-lint runpasses - Tested:
go test ./...passes - Documented: Exported functions have doc comments
Pre-commit hooks enforce these automatically.
Development Workflow#
- Fork and clone
- Create feature branch:
git checkout -b feature/my-feature - Make changes with tests
- Run checks: Pre-commit hook runs automatically
- Push and create MR
Testing#
Run tests:
| |
Documentation#
The documentation uses Hugo and is located in docs/:
| |
See Documentation README for details.
Tools#
Install development tools:
| |
This installs:
golangci-lint- Comprehensive linter- Other tools as needed
CI/CD#
GitLab CI runs on every push:
- Lint stage:
gofmt,go vet,golangci-lint - Test stage: Unit tests
- Deploy stage: Documentation (main branch only)
See .gitlab-ci.yml for configuration.
Release Process#
- Update version in code
- Tag release:
git tag v1.0.0 - Push tag:
git push origin v1.0.0 - GitLab creates release automatically
Need Help?#
- Contributing Guide - Detailed contribution guidelines
- GitLab Issues - Report bugs or request features
- Merge Requests - Submit code changes