Before starting work on an issue:
- Check for existing PRs. Search the open pull requests to make sure nobody is already working on it.
- Claim the issue. Leave a comment on the issue (e.g., "I'd like to work on this") and wait for a maintainer to acknowledge before writing code.
- One at a time for new contributors. If you haven't had a PR merged into iceberg-go yet, please work on one issue at a time. Get it reviewed, address feedback, get it merged — then pick up the next one. This helps us give your work the attention it deserves and avoids wasted effort from overlapping contributions.
If two PRs land for the same issue, we will generally keep the one from the contributor who claimed it first.
- Reference the issue number in your PR description (e.g., "Fixes #123").
- Keep PRs focused — one issue per PR.
- Run
go test ./...,gofmt, andgolangci-lint runbefore pushing. CI runs all of these too, but catching issues locally saves a round-trip. - All commits must have a
Signed-off-byline (DCO).
- Maintainers may request changes. This is normal — it doesn't mean the PR is bad, it means we want to get it right.
- Respond to review comments by pushing new commits (don't force-push over reviewed code).
- If your PR has been waiting for review for more than a few days, ping on Slack.
git clone https://github.com/apache/iceberg-go.git
cd iceberg-go
go build ./...
go test ./...Integration tests require Docker and are gated behind a build tag:
docker compose -f internal/recipe/docker-compose.yml up -d rest minio mc --wait
go test -tags integration ./...