| <!-- |
| - Licensed to the Apache Software Foundation (ASF) under one |
| - or more contributor license agreements. See the NOTICE file |
| - distributed with this work for additional information |
| - regarding copyright ownership. The ASF licenses this file |
| - to you under the Apache License, Version 2.0 (the |
| - "License"); you may not use this file except in compliance |
| - with the License. You may obtain a copy of the License at |
| - |
| - http://www.apache.org/licenses/LICENSE-2.0 |
| - |
| - Unless required by applicable law or agreed to in writing, |
| - software distributed under the License is distributed on an |
| - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| - KIND, either express or implied. See the License for the |
| - specific language governing permissions and limitations |
| - under the License. |
| --> |
| |
| # Verifying a release |
| |
| Each Apache PyIceberg release is validated by the community by holding a vote. A community release manager will prepare a release candidate and call a vote on the Iceberg dev list. To validate the release candidate, community members will test it out in their downstream projects and environments. |
| |
| In addition to testing in downstream projects, community members also check the release’s signatures, checksums, and license documentation. |
| |
| ## Validating a release candidate |
| |
| Release announcements include links to the following: |
| |
| - A source tarball |
| - A signature (.asc) |
| - A checksum (.sha512) |
| - KEYS file |
| - GitHub change comparison |
| |
| After downloading the source tarball, signature, checksum, and KEYS file, here are instructions on how to verify signatures, checksums, and documentation. |
| |
| ## Verifying signatures |
| |
| First, import the keys. |
| |
| ```sh |
| curl https://dist.apache.org/repos/dist/dev/iceberg/KEYS -o KEYS |
| gpg --import KEYS |
| ``` |
| |
| Next, verify the `.asc` file. |
| |
| ```sh |
| gpg --verify pyiceberg-0.2.0rc0-py3-none-any.whl.asc pyiceberg-0.2.0rc0-py3-none-any.whl |
| ``` |
| |
| ## Verifying checksums |
| |
| ```sh |
| shasum -a 512 pyiceberg-0.2.0rc0.tar.gz |
| ``` |
| |
| ## Verifying License Documentation |
| |
| ```sh |
| tar xzf pyiceberg-0.2.0rc0.tar.gztar |
| cd pyiceberg-0.2.0 |
| ``` |
| |
| Run RAT checks to validate license header: |
| |
| ``` |
| ./dev/check-license |
| ``` |
| |
| ## Testing |
| |
| This section explains how to run the tests of the source distribution. |
| |
| !!! note "Clean environment" |
| To make sure that your environment is fresh is to run the tests in a new Docker container: |
| `docker run -t -i -v $(pwd):/pyiceberg/ python:3.9 bash`. And change directory: `cd /pyiceberg/`. |
| |
| First step is to install the package: |
| |
| ```sh |
| make install |
| ``` |
| |
| And then run the tests: |
| |
| ```sh |
| make test |
| ``` |
| |
| To run the full integration tests: |
| |
| ```sh |
| make test-s3 |
| ``` |
| |
| This will include a Minio S3 container being spun up. |
| |
| # Cast the vote |
| |
| Votes are cast by replying to the release candidate announcement email on the dev mailing list with either `+1`, `0`, or `-1`. |
| |
| > \[ \] +1 Release this as Apache Iceberg 1.1.0 \[ \] +0 \[ \] -1 Do not release this because… |
| |
| In addition to your vote, it’s customary to specify if your vote is binding or non-binding. Only members of the Project Management Committee have formally binding votes. If you’re unsure, you can specify that your vote is non-binding. To read more about voting in the Apache framework, checkout the [Voting](https://www.apache.org/foundation/voting.html) information page on the Apache foundation’s website. |