@@ -96,6 +96,9 @@ git checkout -b pyiceberg-0.8.x pyiceberg-0.8.0
9696
9797# Cherry-pick commits for the upcoming patch release
9898git cherry-pick < commit>
99+
100+ # Push the new branch
101+ git push git@github.com:apache/iceberg-python.git pyiceberg-0.8.x
99102```
100103
101104### Create Tag
@@ -134,14 +137,20 @@ This action will generate two final artifacts:
134137If ` gh ` is available, watch the GitHub Action progress using:
135138
136139``` bash
140+ : " ${GIT_TAG:? ERROR: GIT_TAG is not set or is empty} "
141+
137142RUN_ID=$( gh run list --repo apache/iceberg-python --workflow " Python Build Release Candidate" --branch " ${GIT_TAG} " --event push --json databaseId -q ' .[0].databaseId' )
143+ : " ${RUN_ID:? ERROR: RUN_ID could not be determined} "
144+
138145echo " Waiting for workflow to complete, this will take several minutes..."
139146gh run watch $RUN_ID --repo apache/iceberg-python
140147```
141148
142149and download the artifacts using:
143150
144151``` bash
152+ : " ${RUN_ID:? ERROR: RUN_ID is not set or is empty} "
153+
145154gh run download $RUN_ID --repo apache/iceberg-python
146155```
147156
@@ -159,6 +168,9 @@ Navigate to the artifact directory. Generate signature and checksum files:
159168* ` .sha512 ` files: SHA-512 checksums for verifying file integrity.
160169
161170``` bash
171+ : " ${VERSION:? ERROR: VERSION is not set or is empty} "
172+ : " ${RC:? ERROR: RC is not set or is empty} "
173+
162174(
163175 cd svn-release-candidate-${VERSION} rc${RC}
164176
@@ -177,14 +189,11 @@ The parentheses `()` create a subshell. Any changes to the directory (`cd`) are
177189Now, upload the files from the same directory:
178190
179191``` bash
180- export SVN_TMP_DIR=/tmp/iceberg-${VERSION} /
181- svn checkout https://dist.apache.org/repos/dist/dev/iceberg $SVN_TMP_DIR
182-
183- export SVN_TMP_DIR_VERSIONED=${SVN_TMP_DIR} pyiceberg-$VERSION_WITH_RC /
184- mkdir -p $SVN_TMP_DIR_VERSIONED
185- cp svn-release-candidate-${VERSION} rc${RC} /* $SVN_TMP_DIR_VERSIONED
186- svn add $SVN_TMP_DIR_VERSIONED
187- svn ci -m " PyIceberg ${VERSION_WITH_RC} " ${SVN_TMP_DIR_VERSIONED}
192+ : " ${VERSION:? ERROR: VERSION is not set or is empty} "
193+ : " ${VERSION_WITH_RC:? ERROR: VERSION_WITH_RC is not set or is empty} "
194+ : " ${RC:? ERROR: RC is not set or is empty} "
195+
196+ svn import " svn-release-candidate-${VERSION} rc${RC} " " https://dist.apache.org/repos/dist/dev/iceberg/pyiceberg-${VERSION_WITH_RC} " -m " PyIceberg ${VERSION_WITH_RC} "
188197```
189198
190199Verify the artifact is uploaded to [ https://dist.apache.org/repos/dist/dev/iceberg ] ( https://dist.apache.org/repos/dist/dev/iceberg/ ) .
@@ -215,6 +224,9 @@ Update the artifact directory to PyPi using `twine`. This **won't** bump the ver
215224<!-- prettier-ignore-end -->
216225
217226``` bash
227+ : " ${VERSION:? ERROR: VERSION is not set or is empty} "
228+ : " ${RC:? ERROR: RC is not set or is empty} "
229+
218230twine upload pypi-release-candidate-${VERSION} rc${RC} /*
219231```
220232
@@ -227,6 +239,10 @@ Verify the artifact is uploaded to [PyPi](https://pypi.org/project/pyiceberg/#hi
227239Final step is to generate the email to the dev mail list:
228240
229241``` bash
242+ : " ${GIT_TAG:? ERROR: GIT_TAG is not set or is empty} "
243+ : " ${VERSION:? ERROR: VERSION is not set or is empty} "
244+ : " ${VERSION_WITH_RC:? ERROR: VERSION_WITH_RC is not set or is empty} "
245+
230246export GIT_TAG_REF=$( git show-ref ${GIT_TAG} )
231247export GIT_TAG_HASH=${GIT_TAG_REF: 0: 40}
232248export LAST_COMMIT_ID=$( git rev-list ${GIT_TAG} 2> /dev/null | head -n 1)
@@ -340,6 +356,8 @@ The latest version can be pushed to PyPi. Check out the Apache SVN and make sure
340356<!-- prettier-ignore-end -->
341357
342358``` bash
359+ : " ${VERSION:? ERROR: VERSION is not set or is empty} "
360+
343361svn checkout https://dist.apache.org/repos/dist/release/iceberg/pyiceberg-${VERSION} /tmp/iceberg-dist-release/pyiceberg-${VERSION}
344362
345363cd /tmp/iceberg-dist-release/pyiceberg-${VERSION}
0 commit comments