From 79fccfdc61aa019d00084c97856f1d5cc98409e5 Mon Sep 17 00:00:00 2001 From: Sung Yun <107272191+syun64@users.noreply.github.com> Date: Tue, 30 Jul 2024 22:18:16 +0000 Subject: [PATCH 1/6] add more release notes --- mkdocs/docs/how-to-release.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/mkdocs/docs/how-to-release.md b/mkdocs/docs/how-to-release.md index 07e60895c4..20cd1e1a5c 100644 --- a/mkdocs/docs/how-to-release.md +++ b/mkdocs/docs/how-to-release.md @@ -208,6 +208,15 @@ svn add /tmp/iceberg-dist-release/ svn ci -m "PyIceberg " /tmp/iceberg-dist-release/ ``` + + +!!! note + Only a PMC member has the permission to upload an artifact to the release dist. + + + +### Upload the accepted release to PyPi + The latest version can be pushed to PyPi. Check out the Apache SVN and make sure to publish the right version with `twine`: ```bash @@ -243,3 +252,13 @@ Make sure to create a PR to update the [GitHub issues template](https://github.c ## Update the integration tests Ensure to update the `PYICEBERG_VERSION` in the [Dockerfile](https://github.com/apache/iceberg-python/blob/main/dev/Dockerfile). + +## Create a Github Release Note + +First, follow the directions for Setting the tag again to create a tag for the approved release version (e.g. `0.7.0`). + +Then, create a new [Release Note](https://github.com/apache/iceberg-python/releases) on the iceberg-python Github repository by clicking on **Draft a New Release**. + +Choose the approved release version as the tag and **Generate release notes**. + +**Set as the latest release** and **Publish**. \ No newline at end of file From 6c73b3d08d842b4b6c3dadfab26c2421a78fa43d Mon Sep 17 00:00:00 2001 From: Sung Yun <107272191+syun64@users.noreply.github.com> Date: Tue, 30 Jul 2024 23:35:44 +0000 Subject: [PATCH 2/6] lint --- mkdocs/docs/how-to-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/docs/how-to-release.md b/mkdocs/docs/how-to-release.md index 20cd1e1a5c..3a0c56c0a5 100644 --- a/mkdocs/docs/how-to-release.md +++ b/mkdocs/docs/how-to-release.md @@ -261,4 +261,4 @@ Then, create a new [Release Note](https://github.com/apache/iceberg-python/relea Choose the approved release version as the tag and **Generate release notes**. -**Set as the latest release** and **Publish**. \ No newline at end of file +**Set as the latest release** and **Publish**. From 795d9f7244d81c3f0bd20f303a9d4d7a9ead29cb Mon Sep 17 00:00:00 2001 From: Sung Yun <107272191+syun64@users.noreply.github.com> Date: Wed, 31 Jul 2024 02:00:26 +0000 Subject: [PATCH 3/6] adopt feedback --- mkdocs/docs/assets/images/gen-release-notes.jpg | Bin 0 -> 73250 bytes mkdocs/docs/how-to-release.md | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 mkdocs/docs/assets/images/gen-release-notes.jpg diff --git a/mkdocs/docs/assets/images/gen-release-notes.jpg b/mkdocs/docs/assets/images/gen-release-notes.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a5842e4bf090f0aff1e9014633999f950947f9fe GIT binary patch literal 73250 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 D%}%RJ literal 0 HcmV?d00001 diff --git a/mkdocs/docs/how-to-release.md b/mkdocs/docs/how-to-release.md index 3a0c56c0a5..c3fc8f43bc 100644 --- a/mkdocs/docs/how-to-release.md +++ b/mkdocs/docs/how-to-release.md @@ -255,9 +255,13 @@ Ensure to update the `PYICEBERG_VERSION` in the [Dockerfile](https://github.com/ ## Create a Github Release Note -First, follow the directions for Setting the tag again to create a tag for the approved release version (e.g. `0.7.0`). +Input the tag as the newly approved release version (e.g. `0.7.0`) and set it to create the tag on publish. Pick the target commit version as the commit ID the release was approved on. -Then, create a new [Release Note](https://github.com/apache/iceberg-python/releases) on the iceberg-python Github repository by clicking on **Draft a New Release**. +![Generate Release Notes](assets/images/gen-release-notes.jpg) + +Then, select the previous release version as the **Previous tag** to use the diff between the two versions in generating the release notes. + +Create a new [Release Note](https://github.com/apache/iceberg-python/releases/new) on the iceberg-python Github repository by clicking on **Draft a New Release**. Choose the approved release version as the tag and **Generate release notes**. From 88195953bc21377513576a638051626728fb8c3d Mon Sep 17 00:00:00 2001 From: Sung Yun <107272191+sungwy@users.noreply.github.com> Date: Wed, 31 Jul 2024 07:58:32 -0400 Subject: [PATCH 4/6] Thanks Fokko! Co-authored-by: Fokko Driesprong --- mkdocs/docs/how-to-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/docs/how-to-release.md b/mkdocs/docs/how-to-release.md index c3fc8f43bc..254e96f255 100644 --- a/mkdocs/docs/how-to-release.md +++ b/mkdocs/docs/how-to-release.md @@ -211,7 +211,7 @@ svn ci -m "PyIceberg " /tmp/iceberg-dist-release/ !!! note - Only a PMC member has the permission to upload an artifact to the release dist. + Only a PMC member has the permission to upload an artifact to the SVN release dist. From 58a6beabbeea39be619c6b8ff8520a82e3516840 Mon Sep 17 00:00:00 2001 From: Sung Yun <107272191+syun64@users.noreply.github.com> Date: Wed, 31 Jul 2024 12:03:35 +0000 Subject: [PATCH 5/6] update instrutions for copying artifacts to release dist --- mkdocs/docs/how-to-release.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mkdocs/docs/how-to-release.md b/mkdocs/docs/how-to-release.md index c3fc8f43bc..ec4a5009d5 100644 --- a/mkdocs/docs/how-to-release.md +++ b/mkdocs/docs/how-to-release.md @@ -198,14 +198,14 @@ Kind regards, ### Copy the artifacts to the release dist ``` -svn checkout https://dist.apache.org/repos/dist/dev/iceberg /tmp/iceberg-dist-dev -svn checkout https://dist.apache.org/repos/dist/release/iceberg/ /tmp/iceberg-dist-release +export RC=rc2 +export VERSION=0.7.0${RC} +export VERSION_WITHOUT_RC=${VERSION/rc?/} -mkdir -p /tmp/iceberg-dist-release/pyiceberg- -cp -r /tmp/iceberg-dist-dev/pyiceberg-rcN/* /tmp/iceberg-dist-release/pyiceberg- +export SVN_DEV_DIR_VERSIONED="https://dist.apache.org/repos/dist/dev/iceberg/pyiceberg-${VERSION}" +export SVN_RELEASE_DIR_VERSIONED="https://dist.apache.org/repos/dist/release/iceberg/pyiceberg-${VERSION_WITHOUT_RC}" -svn add /tmp/iceberg-dist-release/ -svn ci -m "PyIceberg " /tmp/iceberg-dist-release/ +svn mv ${SVN_DEV_DIR_VERSIONED} ${SVN_RELEASE_DIR_VERSIONED} -m "PyIceberg: Add release ${VERSION_WITHOUT_RC}" ``` From 54a1f4adf182816bd8fadefe667c3bf41d80b1e1 Mon Sep 17 00:00:00 2001 From: Sung Yun <107272191+syun64@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:01:58 +0000 Subject: [PATCH 6/6] nits --- mkdocs/docs/how-to-release.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mkdocs/docs/how-to-release.md b/mkdocs/docs/how-to-release.md index e53be29e75..ce38cbfc9c 100644 --- a/mkdocs/docs/how-to-release.md +++ b/mkdocs/docs/how-to-release.md @@ -255,14 +255,14 @@ Ensure to update the `PYICEBERG_VERSION` in the [Dockerfile](https://github.com/ ## Create a Github Release Note -Input the tag as the newly approved release version (e.g. `0.7.0`) and set it to create the tag on publish. Pick the target commit version as the commit ID the release was approved on. +Create a [new Release Note](https://github.com/apache/iceberg-python/releases/new) on the iceberg-python Github repository. +Input the tag in **Choose a tag** with the newly approved released version (e.g. `0.7.0`) and set it to **Create new tag** on publish. Pick the target commit version as the commit ID the release was approved on. +For example: ![Generate Release Notes](assets/images/gen-release-notes.jpg) Then, select the previous release version as the **Previous tag** to use the diff between the two versions in generating the release notes. -Create a new [Release Note](https://github.com/apache/iceberg-python/releases/new) on the iceberg-python Github repository by clicking on **Draft a New Release**. - -Choose the approved release version as the tag and **Generate release notes**. +**Generate release notes**. **Set as the latest release** and **Publish**.