szehon-ho commented on code in PR #210:
URL: https://github.com/apache/iceberg-docs/pull/210#discussion_r1275336964


##########
landing-page/content/common/how-to-release.md:
##########
@@ -235,92 +240,130 @@ svn add apache-iceberg-<VERSION>
 svn ci -m 'Iceberg: Add release <VERSION>'
 ```
 
+### GitHub release
+
 Next, add a release tag to the git repository based on the passing candidate 
tag:
 
 ```bash
 git tag -am 'Release Apache Iceberg <VERSION>' apache-iceberg-<VERSION> 
apache-iceberg-<VERSION>-rcN
+git push apache apache-iceberg-<VERSION>
 ```
 
-Then release the candidate repository in 
[Nexus](https://repository.apache.org/#stagingRepositories).
+Then create a new GitHub release in https://github.com/apache/iceberg/releases 
from the release version tag.

Review Comment:
   Looks like we can be a bit more consistent with release name, how about 
specify to call it [Apache Iceberg <VERSION>]



##########
landing-page/content/common/how-to-release.md:
##########
@@ -235,92 +240,130 @@ svn add apache-iceberg-<VERSION>
 svn ci -m 'Iceberg: Add release <VERSION>'
 ```
 
+### GitHub release
+
 Next, add a release tag to the git repository based on the passing candidate 
tag:
 
 ```bash
 git tag -am 'Release Apache Iceberg <VERSION>' apache-iceberg-<VERSION> 
apache-iceberg-<VERSION>-rcN
+git push apache apache-iceberg-<VERSION>
 ```
 
-Then release the candidate repository in 
[Nexus](https://repository.apache.org/#stagingRepositories).
+Then create a new GitHub release in https://github.com/apache/iceberg/releases 
from the release version tag.
 
-To announce the release, wait until Maven central has mirrored the Apache 
binaries, then update the Iceberg site and send an announcement email:
+Next, clean up each RC tag with:
 
-```text
-[ANNOUNCE] Apache Iceberg release <VERSION>
+```bash
+git push --delete apache apache-iceberg-<VERSION>-rcN
 ```
-```text
-I'm pleased to announce the release of Apache Iceberg <VERSION>!
 
-Apache Iceberg is an open table format for huge analytic datasets. Iceberg
-delivers high query performance for tables with tens of petabytes of data,
-along with atomic commits, concurrent writes, and SQL-compatible table
-evolution.
+For each major or minor version release, 
+publish the release branch with a `.x` in the end.
+For example, for 1.2.0 release we do:
 
-This release can be downloaded from: 
https://www.apache.org/dyn/closer.cgi/iceberg/<TARBALL NAME WITHOUT 
.tar.gz>/<TARBALL NAME>
+```bash
+git checkout -b 1.2.x apache-iceberg-1.2.0
+git push --set-upstream apache 1.2.x
+```
 
-Java artifacts are available from Maven Central.
+### Maven release
 
-Thanks to everyone for contributing!
-```
+1. Go to [Nexus](https://repository.apache.org/) and log in
+2. In the menu on the left, choose "Staging Repositories"
+3. Select the Iceberg repository that was previously closed and passed vote
+4. At the top, select "Release" and follow the instructions
+5. Wait until Maven central has mirrored the Apache binaries and the new 
version shows up in [Maven 
Central](https://mvnrepository.com/artifact/org.apache.iceberg). This typically 
takes 1-2 days, and you can work on documentation updates during this time.
 
-### Documentation Release
+## Documentation release
 
 Documentation needs to be updated as a part of an Iceberg release after a 
release candidate is passed.
-The commands described below assume you are in a directory containing a local 
clone of the `iceberg-docs`
-repository and `iceberg` repository. Adjust the commands accordingly if it is 
not the case. Note that all
-changes in `iceberg` need to happen against the `master` branch and changes in 
`iceberg-docs` need to happen
-against the `main` branch. 
+This can be done while you are waiting for Maven Central to be updated.
+
+### Prerequisites
+
+Similar to the `iceberg` repository, you also need to set up 
`https://github.com/apache/iceberg-docs.git` as a remote with name `apache`.
+
+The commands described below assume you have a directory structure of:
+
+```text
+/some/path
+├── iceberg
+└── iceberg-docs
+```
 
-#### iceberg repository preparations
+And you are:
+1. in the `iceberg-docs` repository.
+2. have `iceberg` repository on the specific version branch
 
-A PR needs to be published in the `iceberg` repository with the following 
changes:
+Adjust the commands below accordingly if it is not the case.
 
-1. Create a new folder called `docs/releases/<VERSION NUMBER>` with an 
`_index.md` file. See the existing folders under `docs/releases` for more 
details.
+### Update specs
 
-#### Common documentation update
+Copy the latest format specifications to `landing-page/content/common`:
 
-1. To start the release process, run the following steps in the `iceberg-docs` 
repository to copy docs over:
 ```shell
 cp -r ../iceberg/format/* ../iceberg-docs/landing-page/content/common/
 ```
-2. Change into the `iceberg-docs` repository and create a branch.
-```shell
-cd ../iceberg-docs
-git checkout -b <BRANCH NAME>
-```
-3. Commit, push, and open a PR against the `iceberg-docs` repo (`<BRANCH 
NAME>` -> `main`)
 
-#### Versioned documentation update
+Raise a PR with the specific changes against `main` branch and merge.

Review Comment:
   Does this differ for patch release vs non-patch release?  



##########
landing-page/content/common/how-to-release.md:
##########
@@ -329,16 +372,37 @@ git rebase main
 git push apache latest
 ```
 
-#### Set latest version in iceberg-docs repo
+## Finalize release
+
+### Send announcement email
+
+After every step is completed, send an announcement email:
+
+```text
+[ANNOUNCE] Apache Iceberg release <VERSION>
+```
+```text
+I'm pleased to announce the release of Apache Iceberg <VERSION>!
+
+Apache Iceberg is an open table format for huge analytic datasets. Iceberg
+delivers high query performance for tables with tens of petabytes of data,
+along with atomic commits, concurrent writes, and SQL-compatible table
+evolution.
+
+This release can be downloaded from: 
https://www.apache.org/dyn/closer.cgi/iceberg/<TARBALL NAME WITHOUT 
.tar.gz>/<TARBALL NAME>
+
+Java artifacts are available from Maven Central.
+
+Thanks to everyone for contributing!
+```
 
-The last step is to update the `main` branch in `iceberg-docs` to set the 
latest version.
-A PR needs to be published in the `iceberg-docs` repository with the following 
changes:
-1. Update variable `latestVersions.iceberg` to the new release version in 
`landing-page/config.toml`
-2. Update variable `latestVersions.iceberg` to the new release version and 
-`versions.nessie` to the version of `org.projectnessie.nessie:*` from 
[versions.props](https://github.com/apache/iceberg/blob/master/versions.props) 
in `docs/config.toml`
-3. Mark the current latest release notes to past releases under 
`landing-page/content/common/release-notes.md`
-4. Add release notes for the new release version in 
`landing-page/content/common/release-notes.md`
+### Update Iceberg codebase
 
+After the release artifacts are available in Maven, 
+there are a few places in the codebase that reference the latest Iceberg 
release version number and need to be updated:
+1. Update `options` list for `Apache Iceberg version` in 
https://github.com/apache/iceberg/blob/master/.github/ISSUE_TEMPLATE/iceberg_bug_report.yml
+2. Update `ICEBERG_VERSION` in 
https://github.com/apache/iceberg/blob/master/python/dev/Dockerfile
+3. Update `oldVersion` in `revapi` in 
https://github.com/apache/iceberg/blob/master/build.gradle

Review Comment:
   Looks like we should make a note to not do this for patch release:  
https://github.com/apache/iceberg/pull/8150#discussion_r1274694642



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to