Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 22 additions & 12 deletions site/docs/how-to-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,7 @@ title: "How To Release"

## Introduction

This page walks you through the release process of the Iceberg project. [Here](https://www.apache.org/legal/release-policy.html) you can read about the release process in general for an Apache project.

Decisions about releases are made by three groups:

* Release Manager: Does the work of creating the release, signing it, counting [votes](#voting), announcing the release and so on. Requires the assistance of a committer for some steps.
* The community: Performs the discussion of whether it is the right time to create a release and what that release should contain. The community can also cast non-binding votes on the release.
* PMC: Gives binding votes on the release.
This page walks you through the release process of the Iceberg project. The Apache Iceberg release follows the [general Apache Software Foundation release policy](https://www.apache.org/legal/release-policy.html).

This page describes the procedures that the release manager and voting PMC members take during the release process.

Expand Down Expand Up @@ -76,17 +70,33 @@ For more information, see the Gradle [signing documentation](https://docs.gradle
The release should be executed against `https://github.com/apache/iceberg.git` instead of any fork.
Set it as remote with name `apache` for release if it is not already set up.

## Creating a release candidate
## Initiating a new release

### Initiate a discussion about the release with the community

This step can be useful to gather ongoing patches that the community thinks should be in the upcoming release.
A new release can be started by raising a thread on the [dev-list](https://lists.apache.org/[email protected]):

```txt
------------------------------------------------------------
To: [email protected]
Subject: [DISCUSS] Apache Iceberg Release x.y.z?

Hello everyone,

I would like to discuss a new release of Iceberg because of:
```

For what goes into which release, please refer to [semantic versioning](contribute.md#semantic-versioning) section on the contributing page.

Decisions about releases are made by three groups:

The communication can be started via a [DISCUSS] mail on the dev@ channel and the desired tickets can be added to the github milestone of the next release.
* **Release Manager**: Does the work of creating the release, signing it, counting [votes](#voting), announcing the release and so on. Requires the assistance of a committer for some steps.
* **The community**: Performs the discussion of whether it is the right time to create a release and what that release should contain. Everyone is encouraged to test, validate, and vote on the release to help prevent regressions or issues.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Fokko I thought you mentioned java releases were following a cadence or did I misunderstand this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@emkornfield That's correct, but not part of this PR. #9666 suggests to have a PR every three months.

* **Project Management Committee**: Gives [binding votes](https://www.apache.org/foundation/voting.html#ReleaseVotes) on the release.

Note, creating a milestone in github requires a committer. However, a non-committer can assign tasks to a milestone if added to the list of collaborators in [.asf.yaml](https://github.com/apache/iceberg/blob/main/.asf.yaml)
Once there is consensus around a new release, create a new [milestone on GitHub](https://github.com/apache/iceberg/milestones) to track the release. A non-committer can assign tasks to a milestone if added to the list of collaborators in [.asf.yaml](https://github.com/apache/iceberg/blob/main/.asf.yaml) to track the issues that are targeted for the release.

The release status is discussed during each community sync meeting. Release manager should join the meeting to report status and discuss any release blocker.
The release status is discussed during each community sync meeting. The Release Manager should join the meeting to report status and discuss any release blocker.

### Build the source release

Expand Down