- Go 1.25.0 or later
- Access to a Kubernetes cluster with Maestro installed
- Docker (for building container images)
If you need to make changes to both maestro-cli and the maestro service simultaneously, use a Go workspace:
-
Create a
go.workfile in your workspace root:go work init go work use ./maestro-cli go work use ./maestro
-
The
go.workfile should look like:go 1.25.0 use ( ./maestro ./maestro-cli )
-
This allows you to make changes to both repositories and test them together without modifying
go.modfiles.
# Build the binary
make build
# Build container image
make image
# Run tests
make test- Follow standard Go conventions
- Use
gofmtandgoimportsfor formatting - Run
make lintbefore committing
# Run unit tests
make test
# Run with coverage
make test-coverage
# Run all checks (lint + test)
make verify- Create a feature branch from
main - Make your changes
- Run tests and linting
- Update documentation if needed
- Submit a pull request
Use conventional commit format:
feat:for new featuresfix:for bug fixesdocs:for documentation changesrefactor:for code refactoringtest:for test changes