...
Tag the pinot docs for the given version
Warning | ||
---|---|---|
| ||
This step is deprecated. Instead, you can raise a PR for pinot-docs and get it merged, after the "Finalize the release" steps are done. No need to request access for or use Gitbook UI. |
Please ask permission for gitbook Apache Pinot organization access in #pinot-committers slack channel.
...
Check out the codebase (the release branch created while preparing for the release). Add the following dependencies to pinot-distribution/pom.xml (otherwise there will be missing lib dependencies) but don't check it in. (NOTE: Please double check if the following includes all packages in pinot-connectors and pinot-plugins. If not, please update the following code block.)
...
Code Block | ||
---|---|---|
| ||
mvn -Ddependency.locations.enabled=false project-info-reports:dependencies -Ppresto-driver -pl :pinot-distribution # This will create a file in pinot-distribution/target/site/dependencies.html |
Warning | ||
---|---|---|
| ||
Lookout for warnings such as:
These warnings come when you end up with duplicate entries for an artifact in your pom after making the temporary changes mentioned above. To fix this, remove the duplicate entries until all such warnings are resolved. If you don't fix this, dependencies from these artifacts won't be accounted for in the next steps. | ||
| ||
If you get errors due to inability to get some confluent packages, you can add the confluent repository to your ~/.m2/settings.xml file.
| ||
Warning | ||
| ||
If you get errors due to inability to get some confluent packages, you can add the confluent repository to your ~/.m2/settings.xml file.
|
...
There are several things to clean up:
- Delete git repo release draft: https://github.com/apache/pinot/releasesrelease draft: https://github.com/apache/pinot/releases
- Delete the maven artifacts. Log in to Nexus, select the staging repository (orgapachepinot-<number>) and click Drop button.
Clean up tarballs from dev dist
Code Block language bash $ svn rm https://dist.apache.org/repos/dist/dev/pinot/apache-pinot-$VERSION-rc$RC -m "Delete release-$VERSION-rc$RC" # NOTE: You will need your apache login and password for this step.
Finalize a Release
Move staging tarballs to the svn directory for official release. You need to be a PMC member to be able to do this step. If you are a committer, ask a PMC member to do this step for you.
Code Block language bash $ svn mv https://dist.apache.org/repos/dist/dev/pinot/apache-pinot-$VERSION-rc$RC https://dist.apache.org/repos/dist/release/pinot/apache-pinot-$VERSION # NOTE: You will need your apache login and password for this step.
Check https://downloads.apache.org/pinot
After several hours later, checkhttps://archive.apache.org/dist/pinot/apache-pinot-<version>/
to see if it shows up.
(e.g. https://archive.apache.org/dist/pinot/apache-pinot-0.8.0/)Delete previous release tarballs. Similar to step 1, you need to be PMC member to be able to perform this step.
We only need to keep the most recent release, so feel free to delete any previous released distributions.
Code Block language bash $ svn rm https://dist.apache.org/repos/dist/release/pinot/apache-pinot-0.8.0 # NOTE: You will need your apache login and password for this step.
Delete release branch from github repo if any
Code Block language bash $ git push origin --delete release-$VERSION-rc
Update git tag for official release
Code Block language bash $ git checkout tags/release-$VERSION-rc$RC $ git tag release-$VERSION -m "Apache Pinot $VERSION" $ git push origin release-$VERSION
Update Release note for the official release on Github https://github.com/apache/pinot/releases
No need to draft a new release, just EDIT the previously drafted release
Replace tag name to release-<version> tag
Uncheck the pre-release checkbox, then publish
- Delete all other rc drafts if there is any.
Delete all RC tags from github repo
Code Block language bash # Clean up the rc tag to not to show on the Github release page $ git tag -d release-$VERSION-rc$RC $ git push origin :refs/tags/release-$VERSION-rc$RC
- Publish Delete the maven artifacts. Log in to Nexus, select the staging repository (orgapachepinot-<number>) and click Drop button.
Clean up tarballs from dev dist
Code Block $ svn rm Release button. Several hours later, the new version should show up at https://distrepo.apache.org/repos/dist/dev/pinot/apache-pinot-$VERSION-rc$RC -m "Delete release-$VERSION-rc$RC" # NOTE: You will need your apache login and password for this step.language bash
Finalize a Release
...
Move staging tarballs to the svn directory for official release. You need to be a PMC member to be able to do this step. If you are a committer, ask a PMC member to do this step for you.
Code Block | ||
---|---|---|
| ||
$ svn mv https://dist.apache.org/repos/dist/dev/pinot/apache-pinot-$VERSION-rc$RC https://dist.apache.org/repos/dist/release/pinot/apache-pinot-$VERSION
# NOTE: You will need your apache login and password for this step. |
Check https://downloads.apache.org/pinot
After several hours later, check https://archive.apache.org/dist/pinot/apache-pinot-<version>/
to see if it shows up.
(e.g. https://archive.apache.org/dist/pinot/apache-pinot-0.8.0/)
Delete previous release tarballs. Similar to step 1, you need to be PMC member to be able to perform this step.
We only need to keep the most recent release, so feel free to delete any previous released distributions.
Code Block | ||
---|---|---|
| ||
$ svn rm https://dist.apache.org/repos/dist/release/pinot/apache-pinot-0.8.0
# NOTE: You will need your apache login and password for this step. |
Delete release branch from github repo if any
Code Block | ||
---|---|---|
| ||
$ git push origin --delete release-$VERSION-rc |
Update git tag for official release
Code Block | ||
---|---|---|
| ||
$ git checkout tags/release-$VERSION-rc$RC
$ git tag release-$VERSION -m "Apache Pinot $VERSION"
$ git push origin release-$VERSION |
- maven.apache.org/maven2/org/apache/pinot
Build docker image for the release:
- Please ask Xiang Fu to grant you permission to run the jobs on this repo: https://github.com/apachepinot/pinot-fork/actions.
- There are total 5 jobs related to different JDKs(Amazon Corretto 11/17, Microsoft OpenJDK 11/17 and OpenJDK 21) to run:
- https://github.com/apachepinot/pinot-fork/actions/workflows/build-multi-arch-amazoncorretto-11-pinot-docker-image.yml
- https://github.com/apachepinot/pinot-fork/actions/workflows/build-multi-arch-amazoncorretto-17-pinot-docker-image.yml
- https://github.com/apachepinot/pinot-fork/actions/workflows/build-multi-arch-ms-openjdk-11-pinot-docker-image.yml
- https://github.com/apachepinot/pinot-fork/actions/workflows/build-multi-arch-ms-openjdk-17-pinot-docker-image.yml
- https://github.com/apachepinot/pinot-fork/actions/workflows/build-multi-arch-java21-pinot-docker-image.yml
Build images with release tag, and tag it with both tags:
release-<version>
and<version>
, e.g.release-1.2.0
and 1.2.0
. See below graph for the input reference.- After all the tasks are done, you should find all the docker images here: https://hub.docker.com/r/apachepinot/pinot/tags?page=&page_size=&ordering=&name=release-1.2.0
- Tag official release and push, making sure you asked Xiang Fu for the dockerhub push permission for ApachePinot org.
Code Block | ||||
---|---|---|---|---|
| ||||
docker manifest create apachepinot/pinot:1.2.0 --amend apachepinot/pinot:release-1.2.0-17-amazoncorretto-linux-arm64 --amend apachepinot/pinot:release-1.2.0-17-amazoncorretto-linux-amd64
docker manifest create apachepinot/pinot:release-1.2.0 --amend apachepinot/pinot:release-1.2.0-17-amazoncorretto-linux-arm64 --amend apachepinot/pinot:release-1.2.0-17-amazoncorretto-linux-amd64
docker manifest push apachepinot/pinot:1.2.0
docker manifest push apachepinot/pinot:release-1.2.0 |
...
Update Release note for the official release on Github https://github.com/apache/pinot/releases
No need to draft a new release, just EDIT the previously drafted release
Replace tag name to release-<version> tag
Uncheck the pre-release checkbox, then publish
- Delete all other rc drafts if there is any.
Delete all RC tags from github repo
Code Block | ||
---|---|---|
| ||
# Clean up the rc tag to not to show on the Github release page
$ git tag -d release-$VERSION-rc$RC
$ git push origin :refs/tags/release-$VERSION-rc$RC |
...
Build images with release tag, and tag it with both tags: release-<version>
and <version>
, e.g. release-0.13.0
and 0.13.0
. See below graph for the input reference.
...
Announce to the world
Once you finalized the release, you now need to announce this to the world.
- Update https://pinot.apache.org/download page. Example pr: https://github.com/apache/pinot-site/pull/66131
- Apache takes time to archive all the distributions in SVN release repo, so we don't need to keep all the distributions in SVN release repo. For download URL, we use https://downloads.apache.org for the most recent dist and https://archive.apache.org/dist for old dists.
- SVN release repo distribution can be downloaded from: https://downloads.apache.org e.g. https://downloads.apache.org/pinot/apache-pinot-0.9.1/apache-pinot-0.9.1-bin.tar.gz
- Old distributions are available through the archive urls, please make sure you update download links for old dist from https://downloads.apache.org to https://archive.apache.org/dist. E.g. https://archive.apache.org/dist/pinot/apache-pinot-0.9.0/apache-pinot-0.9.0-bin.tar.gz Sample PR: https://github.com/apache/pinot-site/pull/61
- Update Pinot github repo DOAP file to reflect the latest release on https://projects.apache.org/project.html?pinot, sample PR: https://github.com/apache/pinot/pull/11827
- Update Pinot docs: https://docs.pinot.apache.org/basics/releases
- Guidance on updating the page: https://docs.pinot.apache.org/developers/developers-and-contributors/update-document.Publish versioned docs:
- Go to gitbook, select the space previously created, on the right upper corner, click
Publish
button and selectIn Collection.
Check the docs are available at https://docs.pinot.apache.org/. You should be able to find it in the right upper side bar:
- Raise a PR similar to (you can raise a single PR): pinot-docs/commit/d1849be pinot-docs/commit/0f035df against the pinot-docs repo. Use the release notes you had used and prepared before.
dev@pinot https://lists.apache.org/thread/qw3chy5rvclymzwk0ros98nlk7mxwhos
...