This is an automated email from the ASF dual-hosted git repository.
adutra pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new 82823a1ed3 Docs: Redesign Releases & Documentation sections (#3935)
82823a1ed3 is described below
commit 82823a1ed31ed4a7e58b51d38aed26c2268b7cc7
Author: Alexandre Dutra <[email protected]>
AuthorDate: Tue Mar 10 18:29:30 2026 +0100
Docs: Redesign Releases & Documentation sections (#3935)
This PR redesigns the website's Releases and Documentation sections to
improve navigation and maintainability.
Benefits:
- **Better UX**: Easier navigation with dropdown menus and dedicated pages
per release
- **Maintainability**: Adding new releases requires fewer manual updates
- **Consistency**: Automated listing ensures all releases are displayed
uniformly
## Key Changes
### 1. Split Releases into Individual Pages
- Converted the single-page `/downloads/_index.md` into individual release
pages under `/downloads/{version}/index.md`
- Each release now has its own dedicated page with downloads, release
notes, and metadata
- Added pages for all releases: 0.9.0, 1.0.0, 1.0.1, 1.1.0, 1.2.0, and 1.3.0
### 2. New Releases Dropdown Menu
- Added a dropdown menu in the navbar for the Releases section
- Active releases appear in the dropdown; EOL releases are excluded from
the menu but remain accessible
### 3. Latest Release Permalink
- Introduced a new permalink for the latest release:
`https://polaris.apache.org/downloads/latest/`
- This provides a stable URL that always points to the most recent release
### 4. Automated Landing Pages
- Redesigned both Documentation (`/docs/_index.md`) and Releases
(`/downloads/_index.md`) landing pages
- These pages now automatically display available versions using new
shortcodes
- No manual updates needed when adding new releases
### 5. Simplified Configuration
- Removed manual menu entries for individual releases from `hugo.yaml`
- Releases now register themselves via front matter `menus` configuration
- Only `active_releases` list needs updating in `hugo.yaml`
### 6. Updated Release Guides
- Updated both manual and semi-automated release guides with new
instructions
---
site/README.md | 7 +-
.../release-guides/manual-release-guide.md | 27 +--
.../release-guides/semi-automated-release-guide.md | 27 +--
site/content/docs/_index.md | 31 +---
site/content/downloads/0.9.0/index.md | 46 +++++
site/content/downloads/1.0.0/index.md | 76 ++++++++
site/content/downloads/1.0.1/index.md | 52 ++++++
site/content/downloads/1.1.0/index.md | 84 +++++++++
site/content/downloads/1.2.0/index.md | 79 ++++++++
site/content/downloads/1.3.0/index.md | 74 ++++++++
site/content/downloads/README.md | 93 ++++++++++
site/content/downloads/_index.md | 205 ++++-----------------
.../release_index.md => downloads/latest/index.md} | 29 +--
site/content/in-dev/release_index.md | 37 ++--
site/content/in-dev/unreleased/_index.md | 7 +-
site/hugo.yaml | 46 +----
site/layouts/downloads/baseof.html | 53 ++++++
.../docs-link.html => downloads/list.html} | 33 ++--
.../docs-link.html => downloads/single.html} | 5 +-
site/layouts/partials/docs-link.html | 2 +-
site/layouts/partials/downloadPages.html | 46 +++++
site/layouts/partials/navbar.html | 23 ++-
site/layouts/partials/releasePages.html | 4 +-
site/layouts/partials/sidebar-docs-tree.html | 59 ++----
site/layouts/partials/sidebar-downloads-tree.html | 84 +++++++++
site/layouts/partials/sidebar-downloads.html | 41 +++++
site/layouts/shortcodes/docs-link.html | 2 +-
.../shortcodes/{docs-link.html => docs-list.html} | 15 +-
site/layouts/shortcodes/downloads-list.html | 49 +++++
29 files changed, 970 insertions(+), 366 deletions(-)
diff --git a/site/README.md b/site/README.md
index cde1ed446b..c7cec743e0 100644
--- a/site/README.md
+++ b/site/README.md
@@ -142,10 +142,9 @@ in the main source tree:
7. Update the "latest" redirect to point to the new release:
1. Edit `/releases/latest/index.md` in the `versioned-docs` branch (i.e.,
`site/content/releases/latest/index.md` if using the Git worktree)
2. Update the `redirect_to` parameter in the front matter to point to the
new release (e.g., change `redirect_to: '/releases/1.3.0/'` to `redirect_to:
'/releases/1.4.0/'`)
-8. Update `/docs/_index.md` to link to the new release's documentation.
-9. Changes to the site added and committed to Git
-10. Changes pushed to GitHub - both the `main` and the `versioned-docs` folder
-11. The last step triggers the job to publish the web site
+8. Changes to the site added and committed to Git
+9. Changes pushed to GitHub - both the `main` and the `versioned-docs` folder
+10. The last step triggers the job to publish the web site
## Website Publishing (Production)
diff --git a/site/content/community/release-guides/manual-release-guide.md
b/site/content/community/release-guides/manual-release-guide.md
index 87f370cc41..ac076d5e53 100644
--- a/site/content/community/release-guides/manual-release-guide.md
+++ b/site/content/community/release-guides/manual-release-guide.md
@@ -431,8 +431,15 @@ Copy the documentation from the release tag:
cp -r ../../content/in-dev/unreleased/* [major].[minor].[patch]/
```
-Edit the file `[major].[minor].[patch]/_index.md` and perform the following
modifications:
-* Change the title from `In Development` to `[major].[minor].[patch]`.
+Edit the file `[major].[minor].[patch]/_index.md`. Compare with template
+`site/content/in-dev/release_index.md` and perform the following modifications:
+
+* Change the `title` from `Apache Polaris Documentation (Unreleased)` to
`Apache Polaris [major].[minor].[patch] Documentation`.
+* Change the `linkTitle` from `In Development` to `[major].[minor].[patch]`.
+* Change the `weight` accordingly, e.g. for a version 1.2.3 use weight -10203.
+* Set the `release_version` parameter everywhere: `release_version:
'[major].[minor].[patch]'`
+* Adjust the `menus` section to register this release in the Documentation
dropdown menu (see existing releases for examples).
+* Adjust the `cascade` section accordingly.
* Remove the `alert warning` block that warns that the documentation is for
the main branch.
Commit and push to your fork:
@@ -459,22 +466,18 @@ The final step is to update the "Download" page on
Polaris website with links to
git checkout -b main-site-download-links-[major].[minor].[patch] main
```
-Edit the file `site/content/downloads/_index.md` and add a new section for the
release. The section should contain the following information:
+Create a new directory and file for the release under
`site/content/downloads/[major].[minor].[patch]/index.md`. The file should
contain the following information:
+* Front matter with appropriate metadata (title, weight, etc.)
* A table with links to each of the artifacts, its PGP signature and
associated checksum. All links in this section MUST point to
`https://dlcdn.apache.org/` or `https://downloads.apache.org/`.
* The release date.
* A paragraph with the release notes.
-Then update the section of the previous release so that it references
`https://archive.apache.org` instead of `https://dlcdn.apache.org/` and
`https://downloads.apache.org/`.
+Refer to the `README.md` file under `site/content/downloads/README.md` for a
full description of the
+downloads page structure and requirements when adding a new release.
-Finally, edit the file `site/hugo.yaml`. Add a new bullet point under
`active_releases` for the new release. Also add a menu item under `menu.main`,
**after** the `In Development` menu item, with have the following format:
-
-```
- - name: "[major].[minor].[patch]"
- url: "/releases/[major].[minor].[patch]/"
- parent: "doc"
- weight: [previous release weight - 1]
-```
+Finally, edit the file `site/hugo.yaml`. Add a new bullet point under
`active_releases` for the new
+release; remove the oldest release from this list.
Then open a PR against the `main` branch with your changes.
diff --git
a/site/content/community/release-guides/semi-automated-release-guide.md
b/site/content/community/release-guides/semi-automated-release-guide.md
index 9e9b9827bc..f39fd6591b 100644
--- a/site/content/community/release-guides/semi-automated-release-guide.md
+++ b/site/content/community/release-guides/semi-automated-release-guide.md
@@ -202,8 +202,15 @@ Copy the documentation from the release tag:
cp -r ../../content/in-dev/unreleased/* [major].[minor].[patch]/
```
-Edit the file `[major].[minor].[patch]/_index.md` and perform the following
modifications:
-* Change the title from `In Development` to `[major].[minor].[patch]`.
+Edit the file `[major].[minor].[patch]/_index.md`. Compare with template
+`site/content/in-dev/release_index.md` and perform the following modifications:
+
+* Change the `title` from `Apache Polaris Documentation (Unreleased)` to
`Apache Polaris [major].[minor].[patch] Documentation`.
+* Change the `linkTitle` from `In Development` to `[major].[minor].[patch]`.
+* Change the `weight` accordingly, e.g. for a version 1.2.3 use weight -10203.
+* Set the `release_version` parameter everywhere: `release_version:
'[major].[minor].[patch]'`
+* Adjust the `menus` section to register this release in the Documentation
dropdown menu (see existing releases for examples).
+* Adjust the `cascade` section accordingly.
* Remove the `alert warning` block that warns that the documentation is for
the main branch.
Commit and push to your fork:
@@ -230,21 +237,17 @@ The final step is to update the "Download" page on
Polaris website with links to
git checkout -b main-site-download-links-[major].[minor].[patch] main
```
-Edit the file `site/content/downloads/_index.md` and add a new section for the
release. The section should contain the following information:
+Create a new directory and file for the release under
`site/content/downloads/[major].[minor].[patch]/index.md`. The file should
contain the following information:
+* Front matter with appropriate metadata (title, weight, etc.)
* A table with links to each of the artifacts, its PGP signature and
associated checksum. All links in this section MUST point to
`https://dlcdn.apache.org/` or `https://downloads.apache.org/`.
* The release date.
* A paragraph with the release notes.
-Then update the section of the previous release so that it references
`https://archive.apache.org` instead of `https://dlcdn.apache.org/` and
`https://downloads.apache.org/`.
+Refer to the `README.md` file under `site/content/downloads/README.md` for a
full description of the
+downloads page structure and requirements when adding a new release.
-Finally, edit the file `site/hugo.yaml`. Add a new bullet point under
`active_releases` for the new release. Also add a menu item under `menu.main`,
**after** the `In Development` menu item, with have the following format:
-
-```
- - name: "[major].[minor].[patch]"
- url: "/releases/[major].[minor].[patch]/"
- parent: "doc"
- weight: [previous release weight - 1]
-```
+Finally, edit the file `site/hugo.yaml`. Add a new bullet point under
`active_releases` for the new
+release; remove the oldest release from this list.
Then open a PR against the `main` branch with your changes.
diff --git a/site/content/docs/_index.md b/site/content/docs/_index.md
index a1f18413b3..89b5947086 100644
--- a/site/content/docs/_index.md
+++ b/site/content/docs/_index.md
@@ -23,31 +23,14 @@ type: docs
# Mark this as the documentation root - used by breadcrumb.html partial
params:
docs_root: true
+menus:
+ main:
+ parent: doc
+ weight: -999999 # 1st item in the menu
+ identifier: doc-overview
+ name: Overview
---
Welcome to the Apache Polaris documentation. Select a version below to get
started.
-## In Development
-
-The latest unreleased documentation from the main branch:
-
-- {{< docs-link version="unreleased" >}} (Latest development version)
-
-## Released Versions
-
-### Active Releases
-
-These versions are currently supported:
-
-- {{< docs-link version="1.3.0" >}}
-- {{< docs-link version="1.2.0" >}}
-- {{< docs-link version="1.1.0" >}}
-
-### End-of-Life Releases
-
-These versions are no longer supported:
-
-- {{< docs-link version="1.0.1" >}}
-- {{< docs-link version="1.0.0" >}}
-- {{< docs-link version="0.9.0" >}}
-
+{{< docs-list >}}
diff --git a/site/content/downloads/0.9.0/index.md
b/site/content/downloads/0.9.0/index.md
new file mode 100644
index 0000000000..1842a14ed0
--- /dev/null
+++ b/site/content/downloads/0.9.0/index.md
@@ -0,0 +1,46 @@
+---
+#
+# 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.
+#
+title: "Apache Polaris 0.9.0-incubating"
+linkTitle: "0.9.0"
+release_version: "0.9.0"
+release_date: 2025-03-11
+weight: -900
+hide_summary: true
+exclude_search: true
+type: downloads
+menus:
+ main:
+ parent: releases
+ weight: -900
+ identifier: releases-0.9.0
+---
+
+Released on March 11, 2025.
+
+### Downloads
+
+| Artifact
| PGP Sig | SHA-512
|
+|------------------------------------------------------------------------------------------------------------------------------------------|---|---|
+| [0.9.0-incubating source
tar.gz](https://archive.apache.org/dist/incubator/polaris/0.9.0-incubating/apache-polaris-0.9.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/0.9.0-incubating/apache-polaris-0.9.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/0.9.0-incubating/apache-polaris-0.9.0-incubating.tar.gz.sha512)
|
+
+### Release Notes
+
+Apache Polaris 0.9.0 was the first Polaris release. Only the source
distribution is available for this release.
+
diff --git a/site/content/downloads/1.0.0/index.md
b/site/content/downloads/1.0.0/index.md
new file mode 100644
index 0000000000..569a9ad025
--- /dev/null
+++ b/site/content/downloads/1.0.0/index.md
@@ -0,0 +1,76 @@
+---
+#
+# 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.
+#
+title: "Apache Polaris 1.0.0-incubating"
+linkTitle: "1.0.0"
+release_version: "1.0.0"
+release_date: 2025-07-09
+weight: -10000
+hide_summary: true
+exclude_search: true
+type: downloads
+menus:
+ main:
+ parent: releases
+ weight: -10000
+ identifier: releases-1.0.0
+---
+
+Released on July 9th, 2025.
+
+### Downloads
+
+| Artifact
| PGP Sig
| SHA-512 |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---|
+| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.sha512)
|
+| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.sha512)
|
+| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.zip)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.sha512)
|
+| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.0-incubating/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.0-incubating/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.0-incubating/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar.s
[...]
+| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.0-incubating/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.0-incubating/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.0-incubating/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar.s
[...]
+
+### Release Notes
+
+#### Highlights
+- First release ready for real-world workloads after the public beta 0.9.0
+- **Binary distribution** -- first release with single downloadable .tgz or
.zip artifact.
+- **Helm Chart** – debut of an official Helm chart for seamless Kubernetes
deployment
+
+#### New features & enhancements
+- **Policy Store** — persistence with schema evolution, built‑in TMS policies
(Data compaction, Snapshot expiry, etc) and REST CRUD endpoints
+- **Postgres JDBC persistence** — native JDBC backend with robust support for
concurrent changes.
+- **Rollback Compaction on Conflicts** - makes Polaris smarter, to revert the
compaction commits in case of crunch to let the writers who are actually adding
or removing the data to the table succeed. In a sense treating compaction as
always a lower priority process.
+- **Enhanced runtime** — new runtime powered by Quarkus delivers
out‑of‑the‑box Kubernetes readiness, quick startup, OIDC integration, and many
other benefits. Polaris server and admin tool are now using Quarkus as a
runtime framework.
+- **HTTP caching via ETag** — the loadTable endpoint supports ETag, reducing
bandwidth and improving perceived latency
+- **Support for external identity providers (IdP)** — Polaris can now be its
own IdP, delegate to an external IdP, or both
+- **Snapshot filtering** – clients can choose to load only referenced snapshots
+- **Catalog Federation (experimental)** – federate requests to an external
Iceberg REST or Hadoop Catalog
+- **Generic Tables (experimental)** — serve multiple table formats besides
Iceberg tables; initial Spark 3.5 plugin supports Delta Lake
+- **Event Listener framework (experimental)** — subscribe to catalog events
(AfterTableCommitedEvent, BeforeViewCommitedEvent, etc)
+
+#### Notable bug fixes
+- **CLI and Python Client improvements** – Support for new features, CLI
repair, changes to the update subcommand, and various fixes
+- **Safe configurations** – Catalog-level Polaris configurations follow a
strict naming convention to avoid name clashes with user-provided configuration
entries. Legacy Polaris configuration names are still supported in 1.0 to allow
existing deployments to migrate without rush.
+- **TableOperations optimizations** – Changes to BasePolarisTableOperations
result in less traffic to object storage during commits
+- **Bounded entity cache** – The entity cache is now more memory-aware and
less likely to lead to OOMs
+- **Bootstrapping fixes** – Users can more easily bootstrap a new realm. Root
credentials can be provided by the user or generated by Polaris (and returned
to the user).
+
+#### Breaking changes
+- **Server Configuration** – The format used to configure the Polaris service
in 0.9 has changed with the migration to Quarkus and changes to configurations
+- **Bootstrap Flow** – The bootstrap flow used in 0.9 has changed with the
migration to Quarkus and the new admin tool
+
diff --git a/site/content/downloads/1.0.1/index.md
b/site/content/downloads/1.0.1/index.md
new file mode 100644
index 0000000000..c2e312cfc3
--- /dev/null
+++ b/site/content/downloads/1.0.1/index.md
@@ -0,0 +1,52 @@
+---
+#
+# 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.
+#
+title: "Apache Polaris 1.0.1-incubating"
+linkTitle: "1.0.1"
+release_version: "1.0.1"
+release_date: 2025-08-16
+weight: -10001
+hide_summary: true
+exclude_search: true
+type: downloads
+menus:
+ main:
+ parent: releases
+ weight: -10001
+ identifier: releases-1.0.1
+---
+
+Released on August 16th, 2025.
+
+### Downloads
+
+| Artifact
| PGP Sig
| SHA-512 |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---|
+| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/apache-polaris-1.0.1-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/apache-polaris-1.0.1-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/apache-polaris-1.0.1-incubating.tar.gz.sha512)
|
+| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.tgz.sha512)
|
+| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.zip)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.zip.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.zip.sha512)
|
+| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.1-incubating/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.1-incubating/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.1-incubating/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar.s
[...]
+| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.1-incubating/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.1-incubating/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.1-incubating/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar.s
[...]
+
+### Release Notes
+
+This is a maintenance release on the 1.0.0 release fixing a couple of issues
on the Helm Chart:
+- remove db-kind in Helm Chart
+- add relational-jdbc to helm
+
diff --git a/site/content/downloads/1.1.0/index.md
b/site/content/downloads/1.1.0/index.md
new file mode 100644
index 0000000000..a316ac094d
--- /dev/null
+++ b/site/content/downloads/1.1.0/index.md
@@ -0,0 +1,84 @@
+---
+#
+# 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.
+#
+title: "Apache Polaris 1.1.0-incubating"
+linkTitle: "1.1.0"
+release_version: "1.1.0"
+release_date: 2025-09-19
+weight: -10100
+hide_summary: true
+exclude_search: true
+type: downloads
+menus:
+ main:
+ parent: releases
+ weight: -10100
+ identifier: releases-1.1.0
+---
+
+Released on September 19th, 2025.
+
+### Downloads
+
+| Artifact
| PGP Sig
| SHA-512 |
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---|
+| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/apache-polaris-1.1.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/apache-polaris-1.1.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/apache-polaris-1.1.0-incubating.tar.gz.sha512)
|
+| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.tgz.sha512)
|
+| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.zip)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.zip.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.zip.sha512)
|
+| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.1.0-incubating/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.1.0-incubating/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.1.0-incubating/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar.s
[...]
+| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.1.0-incubating/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.1.0-incubating/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.1.0-incubating/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar.s
[...]
+
+### Release Notes
+
+#### New features & enhancements
+- HMS support
+- IMPLICIT authentication type
+- Support for non-AWS S3 compatible storage with STS: MinIO, s3a scheme support
+- Use of Realm instead of RealmId
+- Modularized Federation Architecture
+- Federated Catalog Support in Polaris CLI
+- Expanded External Identity Provider support
+- Python package (official)
+- Documentation improvements (release process, multi-realms configuration)
+
+#### Bug fixes
+- Fix drop view with default server configuration
+- Fix MinIO support
+- Remove ThreadLocal
+
+#### Breaking changes
+- Helm chart: the default value of the
`authentication.tokenBroker.secret.symmetricKey.secretKey` property has changed
+ from `symmetric.pem` to `symmetric.key`.
+- For migrations from 1.0.x to 1.1.x, users using JDBC persistence and wanting
to continue using v1 schema, must ensure
+ that they, run following SQL statement under `POLARIS_SCHEMA` to make sure
version table exists:
+ ```sql
+ CREATE TABLE IF NOT EXISTS version (
+ version_key TEXT PRIMARY KEY,
+ version_value INTEGER NOT NULL
+ );
+ INSERT INTO version (version_key, version_value)
+ VALUES ('version', 1)
+ ON CONFLICT (version_key) DO UPDATE
+ SET version_value = EXCLUDED.version_value;
+ COMMENT ON TABLE version IS 'the version of the JDBC schema in use';
+
+ ALTER TABLE polaris_schema.entities ADD COLUMN IF NOT EXISTS
location_without_scheme TEXT;
+ ```
+ - Please don't enable
[OPTIMIZED_SIBLING_CHECK](https://github.com/apache/polaris/blob/740993963cb41c2c1b4638be5e04dd00f1263c98/polaris-core/src/main/java/org/apache/polaris/core/config/FeatureConfiguration.java#L346)
feature configuration, once the above SQL statements are run. As it may lead
to incorrect behavior, due to missing data for location_without_scheme column.
+
diff --git a/site/content/downloads/1.2.0/index.md
b/site/content/downloads/1.2.0/index.md
new file mode 100644
index 0000000000..1ff7c7fb43
--- /dev/null
+++ b/site/content/downloads/1.2.0/index.md
@@ -0,0 +1,79 @@
+---
+#
+# 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.
+#
+title: "Apache Polaris 1.2.0-incubating"
+linkTitle: "1.2.0"
+release_version: "1.2.0"
+release_date: 2025-10-23
+weight: -10200
+hide_summary: true
+exclude_search: true
+type: downloads
+menus:
+ main:
+ parent: releases
+ weight: -10200
+ identifier: releases-1.2.0
+---
+
+Released on October 23rd, 2025.
+
+### Downloads
+
+| Artifact
| PGP Sig
| SHA-512
[...]
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
+| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/apache-polaris-1.2.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/apache-polaris-1.2.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/apache-polaris-1.2.0-incubating.tar.gz.sha512)
[...]
+| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.tgz.sha512)
[...]
+| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.zip)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.zip.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.zip.sha512)
[...]
+| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.2.0-incubating/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.2.0-incubating/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.2.0-incubating/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar.s
[...]
+| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.2.0-incubating/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.2.0-incubating/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.2.0-incubating/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar.s
[...]
+
+### Release Notes
+
+#### Upgrade Notes
+- Amazon RDS plugin enabled, this allows polaris to connect to AWS Aurora
PostgreSQL using IAM authentication.
+
+#### Breaking changes
+- Creating or altering a namespace with a custom location outside its parent
location is now prohibited by default. To restore the old behavior, set the
`ALLOW_NAMESPACE_CUSTOM_LOCATION` flag to true.
+
+#### New Features
+- Added a finer grained authorization model for UpdateTable requests. Existing
privileges continue to work for granting UpdateTable, such as
`TABLE_WRITE_PROPERTIES`.
+However, you can now instead grant privileges just for specific operations,
such as `TABLE_ADD_SNAPSHOT`
+- Added a Management API endpoint to reset principal credentials, controlled
by the `ENABLE_CREDENTIAL_RESET` (default: true) feature flag.
+- The `ENABLE_SUB_CATALOG_RBAC_FOR_FEDERATED_CATALOGS` was added to support
sub-catalog (initially namespace and table) RBAC for federated catalogs.
+ The setting can be configured on a per-catalog basis by setting the catalog
property: `polaris.config.enable-sub-catalog-rbac-for-federated-catalogs`.
+ The realm-level feature flag
`ALLOW_SETTING_SUB_CATALOG_RBAC_FOR_FEDERATED_CATALOGS` (default: true)
controls whether this functionality can be enabled or modified at the catalog
level.
+- Added support for S3-compatible storage that does not have STS (use
`stsUnavailable: true` in catalog storage configuration)
+- Added a Management API endpoint to reset principal credentials, controlled
by the `ENABLE_CREDENTIAL_RESET` (default: true) feature flag.
+- **Events Persistence (Preview)**: Introduced new event types and added
support for persisting events to both Relational JDBC Persistence and AWS
CloudWatch.
+
+ **Note**: This is a preview feature. The persistence schema is subject to
change in future releases, and previously stored event data MAY become
unreadable (i.e., dropped) after an upgrade.
+
+#### Changes
+- The following APIs will now return the newly-created objects as part of the
successful 201 response: createCatalog, createPrincipalRole, createCatalogRole.
+
+#### Deprecations
+
+- The property `polaris.active-roles-provider.type` is deprecated and has no
effect anymore.
+- The EclipseLink Persistence implementation has been deprecated since 1.0.0
and will be completely removed
+in 1.3.0 or in 2.0.0 (whichever happens earlier).
+- The legacy management endpoints at `/metrics` and `/healthcheck` have been
deprecated in 1.2.0 and will be
+completely removed in 1.3.0 or in 2.0.0 (whichever happens earlier). Please
use the standard management
+endpoints at `/q/metrics` and `/q/health` instead.
+
diff --git a/site/content/downloads/1.3.0/index.md
b/site/content/downloads/1.3.0/index.md
new file mode 100644
index 0000000000..1eb8ba4105
--- /dev/null
+++ b/site/content/downloads/1.3.0/index.md
@@ -0,0 +1,74 @@
+---
+#
+# 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.
+#
+title: "Apache Polaris 1.3.0-incubating"
+linkTitle: "1.3.0"
+release_version: "1.3.0"
+release_date: "2026-01-16"
+weight: -10300
+hide_summary: true
+exclude_search: true
+type: downloads
+menus:
+ main:
+ parent: releases
+ weight: -10300
+ identifier: releases-1.3.0
+---
+
+Released on January 16th, 2026.
+
+### Downloads
+
+| Artifact
| PGP Sig
| SHA-512
[...]
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
+| [source
tar.gz](https://dlcdn.apache.org/incubator/polaris/1.3.0-incubating/apache-polaris-1.3.0-incubating.tar.gz)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/apache-polaris-1.3.0-incubating.tar.gz.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/apache-polaris-1.3.0-incubating.tar.gz.sha512)
[...]
+| [binary
tgz](https://dlcdn.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.tgz)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.tgz.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.tgz.sha512)
[...]
+| [binary
zip](https://dlcdn.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.zip)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.zip.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.zip.sha512)
[...]
+| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.3.0-incubating/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.3.0-incubating/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.3.0-incubating/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar.s
[...]
+| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.3.0-incubating/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.3.0-incubating/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.3.0-incubating/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar.s
[...]
+
+### Release Notes
+
+#### Highlights
+- Support for [Iceberg Metrics Reporting] has been introduced in Polaris. Out
of the box, metrics can be printed to the logs by setting the
`org.apache.polaris.service.reporting` logger level to `INFO` (it's set to
`OFF` by default). Custom reporters can be implemented and configured to send
metrics to external systems for further analysis and monitoring.
+- Support for [Open Policy Agent (OPA)] integration has been added to Polaris.
This enables delegating authorization decisions to external policy decision
points, allowing organizations to centralize policy management and implement
complex authorization rules. OPA integration can be enabled by setting
`polaris.authorization.type=opa` in the Polaris configuration.
+
+#### Upgrade Notes
+- The legacy management endpoints at `/metrics` and `/healthcheck` have been
removed. Please use the standard management endpoints at `/q/metrics` and
`/q/health` instead.
+
+#### Breaking changes
+- The EclipseLink Persistence implementation has been completely removed.
+- The default request ID header name has changed from `Polaris-Request-Id` to
`X-Request-ID`.
+
+#### New Features
+- Added `--no-sts` flag to CLI to support S3-compatible storage systems that
do not have Security Token Service available.
+- Support credential vending for federated catalogs.
`ALLOW_FEDERATED_CATALOGS_CREDENTIAL_VENDING` (default: true) was added to
toggle this feature.
+- Enhanced catalog federation with SigV4 authentication support, additional
authentication types for credential vending, and location-based access
restrictions to block credential vending for remote tables outside allowed
location lists.
+
+#### Changes
+- `client.region` is no longer considered a "credential" property (related to
Iceberg REST Catalog API).
+- Relaxed the requirements for S3 storage's ARN to allow Polaris to connect to
more non-AWS S3 storage appliances.
+- Added checksum to helm deployment so that it will restart when the configmap
has changed.
+- Generic Table is no longer in beta and is generally-available.
+- Added Windows support for Python client
+
+[Iceberg Metrics Reporting]:
https://iceberg.apache.org/docs/latest/metrics-reporting/
+[Open Policy Agent (OPA)]: https://www.openpolicyagent.org/
+
diff --git a/site/content/downloads/README.md b/site/content/downloads/README.md
new file mode 100644
index 0000000000..7733f0fdc1
--- /dev/null
+++ b/site/content/downloads/README.md
@@ -0,0 +1,93 @@
+<!--
+ 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.
+-->
+
+# Releases Page Structure
+
+This directory contains the releases page for Apache Polaris releases.
+
+## Structure
+
+```
+downloads/
+├── _index.md # Landing page with links to all versions
+├── 1.3.0/
+│ └── index.md # Version 1.3.0 details
+├── 1.2.0/
+│ └── index.md # Version 1.2.0 details
+└── ...
+```
+
+## Adding a New Release
+
+When adding a new release, follow these steps:
+
+1. Create a new version directory: Create `[major].[minor].[patch]/index.md`
+ - Use an existing version page as a template (e.g., `1.3.0/index.md`)
+ - Update the `title`, `linkTitle`, `release_version`, and release date
+ - Update `weight`: use a negative weight derived from the version, e.g.
1.2.3 -> -10203
+ - Add the downloads table with links to artifacts
+ - Include release notes
+
+2. Update the landing page (`_index.md`):
+ - Add the new version to "Active Releases"
+
+3. Update the "latest" page (`latest/index.md`):
+ - Update the `redirect_to` parameter to point to the new version
+
+4. Update `site/hugo.yaml`:
+ - Add the new version to the `active_releases` list
+
+5. Update the previous release's page:
+ - Current release: use `https://dlcdn.apache.org/` for source/binary
artifacts and `https://downloads.apache.org/` for signatures/checksums
+ - Previous releases: use `https://archive.apache.org/dist/` for all
artifacts
+ - Maven artifacts: always use `https://repo1.maven.org/maven2/`
+
+The resulting version page should have a front matter matching the one below:
+
+```yaml
+---
+title: "Apache Polaris [version]" # Full title shown on the page
+linkTitle: "[version]" # Short version shown in the sidebar
+release_version: "[version]" # Used for active/EOL categorization
+release_date: [YYYY-MM-DD]. # Date of release in YYYY-MM-DD format
+weight: [number] # Negative weight derived from the version, e.g. 1.2.3 ->
-10203
+hide_summary: true
+exclude_search: true
+type: downloads
+menus:
+ main:
+ parent: releases
+ weight: [number] # Same as page weight for consistency
+ identifier: releases-[version] # Unique identifier, e.g.: releases-1.3.0,
releases-1.2.0, etc.
+---
+```
+
+No manual configuration in `site/hugo.yaml` is needed.
+
+## Sidebar Categorization
+
+The releases sidebar automatically categorizes releases into "Active Releases"
and "EOL Releases"
+based on the `active_releases` list in `site/hugo.yaml`. The `release_version`
front matter param is
+used to match against this list.
+
+## See Also
+
+- [Manual Release Guide](../community/release-guides/manual-release-guide.md)
+- [Semi-Automated Release
Guide](../community/release-guides/semi-automated-release-guide.md)
+
diff --git a/site/content/downloads/_index.md b/site/content/downloads/_index.md
index 87b83bd457..a4b7e44c44 100644
--- a/site/content/downloads/_index.md
+++ b/site/content/downloads/_index.md
@@ -17,193 +17,50 @@
# specific language governing permissions and limitations
# under the License.
#
+title: Apache Polaris Releases
+linkTitle: Releases
weight: 200
-toc_hide: true
-hide_summary: true
-exclude_search: true
cascade:
- type: docs
-params:
- show_page_toc: true
+ type: downloads
+menus:
+ main:
+ parent: releases
+ weight: -999999 # 1st item in the menu
+ identifier: releases-overview
+ name: Overview
---
-## Helm Chart
-Repo: https://downloads.apache.org/polaris/helm-chart
+This section provides access to Apache Polaris source and binary artifacts and
their release notes.
-## 1.3.0
-| Artifact
| PGP Sig
| SHA-512
[...]
-|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
-| [source
tar.gz](https://dlcdn.apache.org/incubator/polaris/1.3.0-incubating/apache-polaris-1.3.0-incubating.tar.gz)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/apache-polaris-1.3.0-incubating.tar.gz.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/apache-polaris-1.3.0-incubating.tar.gz.sha512)
[...]
-| [binary
tgz](https://dlcdn.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.tgz)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.tgz.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.tgz.sha512)
[...]
-| [binary
zip](https://dlcdn.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.zip)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.zip.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.3.0-incubating/polaris-bin-1.3.0-incubating.zip.sha512)
[...]
-| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.3.0-incubating/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.3.0-incubating/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.3.0-incubating/polaris-spark-3.5_2.12-1.3.0-incubating-bundle.jar.s
[...]
-| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.3.0-incubating/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.3.0-incubating/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.3.0-incubating/polaris-spark-3.5_2.13-1.3.0-incubating-bundle.jar.s
[...]
+{{< alert tip >}}
+The Apache Polaris Docker images are available on [Docker
Hub](https://hub.docker.com/r/apache/polaris). The Apache Polaris Helm Chart
can be found in the [Helm Chart
Repository](https://downloads.apache.org/polaris/helm-chart) or in [Artifact
Hub](https://artifacthub.io/packages/helm/apache-polaris/polaris).
+{{< /alert >}}
-Apache Polaris 1.3.0-incubating was released on January 16th, 2026.
-- **Highlights**
- - Support for [Iceberg Metrics Reporting] has been introduced in Polaris.
Out of the box, metrics can be printed to the logs by setting the
`org.apache.polaris.service.reporting` logger level to `INFO` (it's set to
`OFF` by default). Custom reporters can be implemented and configured to send
metrics to external systems for further analysis and monitoring.
- - Support for [Open Policy Agent (OPA)] integration has been added to
Polaris. This enables delegating authorization decisions to external policy
decision points, allowing organizations to centralize policy management and
implement complex authorization rules. OPA integration can be enabled by
setting `polaris.authorization.type=opa` in the Polaris configuration.
+Select a version below to get started:
-- **Upgrade Notes**
- - The legacy management endpoints at `/metrics` and `/healthcheck` have been
removed. Please use the standard management endpoints at `/q/metrics` and
`/q/health` instead.
+{{< downloads-list >}}
-- **Breaking changes**
- - The EclipseLink Persistence implementation has been completely removed.
- - The default request ID header name has changed from `Polaris-Request-Id`
to `X-Request-ID`.
+## Verifying Downloads
-- **New Features**
- - Added `--no-sts` flag to CLI to support S3-compatible storage systems that
do not have Security Token Service available.
- - Support credential vending for federated catalogs.
`ALLOW_FEDERATED_CATALOGS_CREDENTIAL_VENDING` (default: true) was added to
toggle this feature.
- - Enhanced catalog federation with SigV4 authentication support, additional
authentication types for credential vending, and location-based access
restrictions to block credential vending for remote tables outside allowed
location lists.
+All downloads can be verified using the Apache Polaris
[KEYS](https://downloads.apache.org/polaris/KEYS) file.
-- **Changes**
- - `client.region` is no longer considered a "credential" property (related
to Iceberg REST Catalog API).
- - Relaxed the requirements for S3 storage's ARN to allow Polaris to connect
to more non-AWS S3 storage appliances.
- - Added checksum to helm deployment so that it will restart when the
configmap has changed.
- - Generic Table is no longer in beta and is generally-available.
- - Added Windows support for Python client
+### Verifying Signatures
-[Iceberg Metrics Reporting]:
https://iceberg.apache.org/docs/latest/metrics-reporting/
-[Open Policy Agent (OPA)]: https://www.openpolicyagent.org/
+First, import the keys:
-## 1.2.0
-| Artifact
| PGP Sig
| SHA-512
[...]
-|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
-| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/apache-polaris-1.2.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/apache-polaris-1.2.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/apache-polaris-1.2.0-incubating.tar.gz.sha512)
[...]
-| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.tgz.sha512)
[...]
-| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.zip)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.zip.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.2.0-incubating/polaris-bin-1.2.0-incubating.zip.sha512)
[...]
-| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.2.0-incubating/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.2.0-incubating/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.2.0-incubating/polaris-spark-3.5_2.12-1.2.0-incubating-bundle.jar.s
[...]
-| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.2.0-incubating/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.2.0-incubating/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.2.0-incubating/polaris-spark-3.5_2.13-1.2.0-incubating-bundle.jar.s
[...]
+```bash
+curl https://downloads.apache.org/polaris/KEYS -o KEYS
+gpg --import KEYS
+```
-Apache Polaris 1.2.0-incubating was released on October 23rd, 2025.
-- **Upgrade Notes**
- - Amazon RDS plugin enabled, this allows polaris to connect to AWS Aurora
PostgreSQL using IAM authentication.
+Then verify the `.asc` signature files:
-- **Breaking changes**
- - Creating or altering a namespace with a custom location outside its parent
location is now prohibited by default. To restore the old behavior, set the
`ALLOW_NAMESPACE_CUSTOM_LOCATION` flag to true.
+```bash
+gpg --verify apache-polaris-[version].tar.gz.asc
+```
-- **New Features**
- - Added a finer grained authorization model for UpdateTable requests.
Existing privileges continue to work for granting UpdateTable, such as
`TABLE_WRITE_PROPERTIES`.
- However, you can now instead grant privileges just for specific operations,
such as `TABLE_ADD_SNAPSHOT`
- - Added a Management API endpoint to reset principal credentials, controlled
by the `ENABLE_CREDENTIAL_RESET` (default: true) feature flag.
- - The `ENABLE_SUB_CATALOG_RBAC_FOR_FEDERATED_CATALOGS` was added to support
sub-catalog (initially namespace and table) RBAC for federated catalogs.
- The setting can be configured on a per-catalog basis by setting the
catalog property:
`polaris.config.enable-sub-catalog-rbac-for-federated-catalogs`.
- The realm-level feature flag
`ALLOW_SETTING_SUB_CATALOG_RBAC_FOR_FEDERATED_CATALOGS` (default: true)
controls whether this functionality can be enabled or modified at the catalog
level.
- - Added support for S3-compatible storage that does not have STS (use
`stsUnavailable: true` in catalog storage configuration)
- - Added a Management API endpoint to reset principal credentials, controlled
by the `ENABLE_CREDENTIAL_RESET` (default: true) feature flag.
- - **Events Persistence (Preview)**: Introduced new event types and added
support for persisting events to both Relational JDBC Persistence and AWS
CloudWatch.
-
- **Note**: This is a preview feature. The persistence schema is subject to
change in future releases, and previously stored event data MAY become
unreadable (i.e., dropped) after an upgrade.
+### Verifying Checksums
-- **Changes**
- - The following APIs will now return the newly-created objects as part of
the successful 201 response: createCatalog, createPrincipalRole,
createCatalogRole.
-
-- **Deprecations**
-
- - The property `polaris.active-roles-provider.type` is deprecated and has no
effect anymore.
- - The EclipseLink Persistence implementation has been deprecated since 1.0.0
and will be completely removed
- in 1.3.0 or in 2.0.0 (whichever happens earlier).
- - The legacy management endpoints at `/metrics` and `/healthcheck` have been
deprecated in 1.2.0 and will be
- completely removed in 1.3.0 or in 2.0.0 (whichever happens earlier). Please
use the standard management
- endpoints at `/q/metrics` and `/q/health` instead.
-
-
-## 1.1.0
-| Artifact
| PGP Sig
| SHA-512 |
-|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---|
-| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/apache-polaris-1.1.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/apache-polaris-1.1.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/apache-polaris-1.1.0-incubating.tar.gz.sha512)
|
-| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.tgz.sha512)
|
-| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.zip)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.zip.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.1.0-incubating/polaris-bin-1.1.0-incubating.zip.sha512)
|
-| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.1.0-incubating/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.1.0-incubating/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.1.0-incubating/polaris-spark-3.5_2.12-1.1.0-incubating-bundle.jar.s
[...]
-| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.1.0-incubating/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.1.0-incubating/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.1.0-incubating/polaris-spark-3.5_2.13-1.1.0-incubating-bundle.jar.s
[...]
-
-Apache Polaris 1.1.0-incubating was released on September 19th, 2025.
-- **New features & enhancements**
- - HMS support
- - IMPLICIT authentication type
- - Support for non-AWS S3 compatible storage with STS: MinIO, s3a scheme
support
- - Use of Realm instead of RealmId
- - Modularized Federation Architecture
- - Federated Catalog Support in Polaris CLI
- - Expanded External Identity Provider support
- - Python package (official)
- - Documentation improvements (release process, multi-realms configuration)
-- **Bug fixes**
- - Fix drop view with default server configuration
- - Fix MinIO support
- - Remove ThreadLocal
-- **Breaking changes**
- - Helm chart: the default value of the
`authentication.tokenBroker.secret.symmetricKey.secretKey` property has changed
- from `symmetric.pem` to `symmetric.key`.
- - For migrations from 1.0.x to 1.1.x, users using JDBC persistence and
wanting to continue using v1 schema, must ensure
- that they, run following SQL statement under `POLARIS_SCHEMA` to make sure
version table exists:
- ```sql
- CREATE TABLE IF NOT EXISTS version (
- version_key TEXT PRIMARY KEY,
- version_value INTEGER NOT NULL
- );
- INSERT INTO version (version_key, version_value)
- VALUES ('version', 1)
- ON CONFLICT (version_key) DO UPDATE
- SET version_value = EXCLUDED.version_value;
- COMMENT ON TABLE version IS 'the version of the JDBC schema in use';
-
- ALTER TABLE polaris_schema.entities ADD COLUMN IF NOT EXISTS
location_without_scheme TEXT;
- ```
- - Please don't enable
[OPTIMIZED_SIBLING_CHECK](https://github.com/apache/polaris/blob/740993963cb41c2c1b4638be5e04dd00f1263c98/polaris-core/src/main/java/org/apache/polaris/core/config/FeatureConfiguration.java#L346)
feature configuration, once the above SQL statements are run. As it may lead
to incorrect behavior, due to missing data for location_without_scheme column.
-
-## 1.0.1
-| Artifact
| PGP Sig
| SHA-512 |
-|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---|
-| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/apache-polaris-1.0.1-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/apache-polaris-1.0.1-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/apache-polaris-1.0.1-incubating.tar.gz.sha512)
|
-| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.tgz.sha512)
|
-| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.zip)
|
[.asc](https://downloads.apache.org/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.zip.asc)
|
[.sha512](https://downloads.apache.org/incubator/polaris/1.0.1-incubating/polaris-bin-1.0.1-incubating.zip.sha512)
|
-| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.1-incubating/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.1-incubating/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.1-incubating/polaris-spark-3.5_2.12-1.0.1-incubating-bundle.jar.s
[...]
-| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.1-incubating/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.1-incubating/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.1-incubating/polaris-spark-3.5_2.13-1.0.1-incubating-bundle.jar.s
[...]
-
-Apache Polaris 1.0.1-incubating was released on August 16th, 2025. It's a
maintenance release on the 1.0.0 release fixing a couple of issues on the Helm
Chart:
-- remove db-kind in Helm Chart
-- add relational-jdbc to helm
-
-## 1.0.0
-| Artifact
| PGP Sig
| SHA-512 |
-|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---|
-| [source
tar.gz](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/apache-polaris-1.0.0-incubating.tar.gz.sha512)
|
-| [binary
tgz](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.tgz.sha512)
|
-| [binary
zip](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.zip)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/1.0.0-incubating/polaris-bin-1.0.0-incubating.zip.sha512)
|
-| [Spark 3.5 with Scala 2.12 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.0-incubating/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.0-incubating/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.12/1.0.0-incubating/polaris-spark-3.5_2.12-1.0.0-incubating-bundle.jar.s
[...]
-| [Spark 3.5 with Scala 2.13 Client
Jar](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.0-incubating/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar)
|
[.asc](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.0-incubating/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar.asc)
|
[.sha512](https://repo1.maven.org/maven2/org/apache/polaris/polaris-spark-3.5_2.13/1.0.0-incubating/polaris-spark-3.5_2.13-1.0.0-incubating-bundle.jar.s
[...]
-
-Apache Polaris 1.0.0-incubating was released on July 9th, 2025.
-- **Highlights**
- - First release ready for real-world workloads after the public beta 0.9.0
- - **Binary distribution** -- first release with single downloadable .tgz
or .zip artifact.
- - **Helm Chart** – debut of an official Helm chart for seamless Kubernetes
deployment
-- **New features & enhancements**
- - **Policy Store** — persistence with schema evolution, built‑in TMS
policies (Data compaction, Snapshot expiry, etc) and REST CRUD endpoints
- - **Postgres JDBC persistence** — native JDBC backend with robust support
for concurrent changes.
- - **Rollback Compaction on Conflicts** - makes Polaris smarter, to revert
the compaction commits in case of crunch to let the writers who are actually
adding or removing the data to the table succeed. In a sense treating
compaction as always a lower priority process.
- - **Enhanced runtime** — new runtime powered by Quarkus delivers
out‑of‑the‑box Kubernetes readiness, quick startup, OIDC integration, and many
other benefits. Polaris server and admin tool are now using Quarkus as a
runtime framework.
- - **HTTP caching via ETag** — the loadTable endpoint supports ETag,
reducing bandwidth and improving perceived latency
- - **Support for external identity providers (IdP)** — Polaris can now be
its own IdP, delegate to an external IdP, or both
- - **Snapshot filtering** – clients can choose to load only referenced
snapshots
- - **Catalog Federation (experimental)** – federate requests to an external
Iceberg REST or Hadoop Catalog
- - **Generic Tables (experimental)** — serve multiple table formats besides
Iceberg tables; initial Spark 3.5 plugin supports Delta Lake
- - **Event Listener framework (experimental)** — subscribe to catalog
events (AfterTableCommitedEvent, BeforeViewCommitedEvent, etc)
-- **Notable bug fixes**
- - **CLI and Python Client improvements** – Support for new features, CLI
repair, changes to the update subcommand, and various fixes
- - **Safe configurations** – Catalog-level Polaris configurations follow a
strict naming convention to avoid name clashes with user-provided configuration
entries. Legacy Polaris configuration names are still supported in 1.0 to allow
existing deployments to migrate without rush.
- - **TableOperations optimizations** – Changes to
BasePolarisTableOperations result in less traffic to object storage during
commits
- - **Bounded entity cache** – The entity cache is now more memory-aware and
less likely to lead to OOMs
- - **Bootstrapping fixes** – Users can more easily bootstrap a new realm.
Root credentials can be provided by the user or generated by Polaris (and
returned to the user).
-- **Breaking changes**
- - **Server Configuration** – The format used to configure the Polaris
service in 0.9 has changed with the migration to Quarkus and changes to
configurations
- - **Bootstrap Flow** – The bootstrap flow used in 0.9 has changed with the
migration to Quarkus and the new admin tool
-
-## 0.9.0
-
-| Artifact
| PGP Sig | SHA-512
|
-|------------------------------------------------------------------------------------------------------------------------------------------|---|---|
-| [0.9.0-incubating source
tar.gz](https://archive.apache.org/dist/incubator/polaris/0.9.0-incubating/apache-polaris-0.9.0-incubating.tar.gz)
|
[.asc](https://archive.apache.org/dist/incubator/polaris/0.9.0-incubating/apache-polaris-0.9.0-incubating.tar.gz.asc)
|
[.sha512](https://archive.apache.org/dist/incubator/polaris/0.9.0-incubating/apache-polaris-0.9.0-incubating.tar.gz.sha512)
|
-
-Apache Polaris 0.9.0 was released on March 11, 2025 as the first Polaris
release. Only the source distribution is available for this release.
+```bash
+shasum -a 512 --check apache-polaris-[version].tar.gz.sha512
+```
diff --git a/site/content/in-dev/release_index.md
b/site/content/downloads/latest/index.md
similarity index 65%
copy from site/content/in-dev/release_index.md
copy to site/content/downloads/latest/index.md
index e8f38dbfaa..6a38b1d4e1 100644
--- a/site/content/in-dev/release_index.md
+++ b/site/content/downloads/latest/index.md
@@ -17,19 +17,20 @@
# specific language governing permissions and limitations
# under the License.
#
-title: 'POLARIS VERSION INDEX MD TEMPLATE'
-toc_hide: true
-hide_summary: true
+# This file creates the /downloads/latest/ redirect to the current latest
stable download.
+# Update the 'redirect_to' parameter below when publishing a new release.
+title: 'Latest Download'
+linkTitle: 'Latest'
+type: 'redirect'
+layout: 'redirect'
params:
- show_page_toc: false
-cascade:
- # The latest release specifies 'false', all others must be 'true'
- exclude_search: false
- params:
- show_page_toc: true
-# This file will be copied as `_index.md` into a new release's versioned docs
folder.
+ redirect_to: '/downloads/1.3.0/' # Replace after a Polaris release
+hide_summary: true
+exclude_search: true
+toc_hide: true
+menus:
+ main:
+ parent: releases
+ weight: -999998 # 2nd item in the menu
+ identifier: releases-latest
---
-
-== Apache Polaris version {{< releaseVersion >}}
-
-Download from ...
diff --git a/site/content/in-dev/release_index.md
b/site/content/in-dev/release_index.md
index e8f38dbfaa..bf6b4faa7f 100644
--- a/site/content/in-dev/release_index.md
+++ b/site/content/in-dev/release_index.md
@@ -17,19 +17,32 @@
# specific language governing permissions and limitations
# under the License.
#
-title: 'POLARIS VERSION INDEX MD TEMPLATE'
-toc_hide: true
-hide_summary: true
+# This file is a template. It should be copied as `_index.md` into a new
release's versioned docs folder.
+# Replace X.Y.Z with the release version.
+title: 'Apache Polaris X.Y.Z Documentation'
+linkTitle: 'X.Y.Z'
+type: docs
+weight: -10203 # Use a negative weight derived from the version, e.g. 1.2.3 =
-10203
params:
+ top_hidden: true
show_page_toc: false
-cascade:
- # The latest release specifies 'false', all others must be 'true'
- exclude_search: false
- params:
- show_page_toc: true
-# This file will be copied as `_index.md` into a new release's versioned docs
folder.
+ release_version: 'X.Y.Z'
+# Uncomment and update the sections below:
+#menus:
+# main:
+# parent: doc
+# weight: -10203 # Use same weight as above
+# identifier: doc-X.Y.Z
+#cascade:
+# params:
+# show_page_toc: true
+# release_version: 'X.Y.Z'
+# All releases except the latest should have the following params:
+robots: noindex
+exclude_search: true
+# The front matter items below should not be copied (they are just here to
hide this template):
+toc_hide: true
+hide_summary: true
---
-== Apache Polaris version {{< releaseVersion >}}
-
-Download from ...
+Apache Polaris is a catalog implementation for Apache Iceberg™...
diff --git a/site/content/in-dev/unreleased/_index.md
b/site/content/in-dev/unreleased/_index.md
index 5b42ca89d8..ed0cfaa662 100644
--- a/site/content/in-dev/unreleased/_index.md
+++ b/site/content/in-dev/unreleased/_index.md
@@ -17,13 +17,18 @@
# specific language governing permissions and limitations
# under the License.
#
+title: 'Apache Polaris Documentation (Unreleased)'
linkTitle: 'In Development'
-title: 'Overview'
type: docs
weight: 200
params:
top_hidden: true
show_page_toc: false
+menus:
+ main:
+ parent: doc
+ weight: -999998 # 2nd item in the menu
+ identifier: doc-in-dev
cascade:
type: docs
params:
diff --git a/site/hugo.yaml b/site/hugo.yaml
index 8dcfa7a04f..647f6c0223 100644
--- a/site/hugo.yaml
+++ b/site/hugo.yaml
@@ -64,12 +64,14 @@ params:
# "EOL" releases and only show the "active" ones in the top navbar - and
have the `Releases` menu not appear
# at the very right in the navbar.
active_releases:
- # Mention all active releases here, in semver descending order
- # EOL releases (0.9.0, 1.0.0, 1.0.1) should NOT be listed here!
- # When changing this list, also modify /docs/_index.md.
+ # Mention all active releases here, in semver descending order.
+ # Remove any version that should be moved to the "EOL" category.
- "1.3.0"
- "1.2.0"
- "1.1.0"
+ - "1.0.1"
+ - "1.0.0"
+ - "0.9.0"
ui:
ul_show: 1
@@ -104,44 +106,6 @@ menu:
- name: "Documentation"
identifier: "doc"
weight: 100
- params:
- orderby: weight.desc
- - name: "Overview"
- url: "/docs/"
- parent: "doc"
- weight: -100
- - name: "In Development"
- url: "/in-dev/unreleased/"
- parent: "doc"
- weight: 1
- - name: "Latest"
- url: "/releases/latest/"
- parent: "doc"
- weight: 2
- - name: "1.3.0"
- url: "/releases/1.3.0/"
- parent: "doc"
- weight: 995
- - name: "1.2.0"
- url: "/releases/1.2.0/"
- parent: "doc"
- weight: 996
- - name: "1.1.0"
- url: "/releases/1.1.0/"
- parent: "doc"
- weight: 997
- - name: "1.0.1"
- url: "/releases/1.0.1/"
- parent: "doc"
- weight: 998
- - name: "1.0.0"
- url: "/releases/1.0.0/"
- parent: "doc"
- weight: 999
- - name: "0.9.0"
- url: "/releases/0.9.0/"
- parent: "doc"
- weight: 1000
- name: "Guides"
identifier: "Guides"
diff --git a/site/layouts/downloads/baseof.html
b/site/layouts/downloads/baseof.html
new file mode 100644
index 0000000000..33b9f23118
--- /dev/null
+++ b/site/layouts/downloads/baseof.html
@@ -0,0 +1,53 @@
+<!doctype html>
+<!--
+ 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.
+--><html itemscope itemtype="http://schema.org/WebPage"
+ {{- with .Site.Language.LanguageDirection }} dir="{{ . }}" {{- end -}}
+ {{ with .Site.Language.Lang }} lang="{{ . }}" {{- end }} {{/**/ -}}
+ class="no-js">
+ <head>
+ {{ partial "head.html" . }}
+ </head>
+ <body class="td-{{ .Kind }}{{ with .Page.Params.body_class }} {{ . }}{{ end
}}">
+ <header>
+ {{ partial "navbar.html" . }}
+ </header>
+ <div class="container-fluid td-outer">
+ <div class="td-main">
+ <div class="row flex-xl-nowrap">
+ <aside class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
+ {{ partial "sidebar-downloads.html" . }}
+ </aside>
+ <!-- Polaris custom flag to include the _right_ side page TOC -->
+ {{ if .Params.show_page_toc -}}
+ <aside class="d-none d-xl-block col-xl-2 td-sidebar-toc
d-print-none">
+ {{ partial "toc.html" . }}
+ </aside>
+ {{ end -}}
+ <main class="col-12 col-md-9 col-xl-8 ps-md-5" role="main">
+ {{ partial "version-banner.html" . }}
+ {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial
"breadcrumb.html" . }}{{ end }}
+ {{ block "main" . }}{{ end }}
+ </main>
+ </div>
+ </div>
+ {{ partial "footer.html" . }}
+ </div>
+ {{ partial "scripts.html" . }}
+ </body>
+</html>
\ No newline at end of file
diff --git a/site/layouts/partials/docs-link.html
b/site/layouts/downloads/list.html
similarity index 52%
copy from site/layouts/partials/docs-link.html
copy to site/layouts/downloads/list.html
index 7136948a16..6e2217c85e 100644
--- a/site/layouts/partials/docs-link.html
+++ b/site/layouts/downloads/list.html
@@ -16,15 +16,24 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/}}
-{{- $version := .Get "version" -}}
-{{- $path := "" -}}
-{{- $link := "" -}}
-{{- if eq $version "unreleased" -}}
- {{- $path = "/in-dev/unreleased/" -}}
- {{- $link = "Unreleased" -}}
-{{- else -}}
- {{- $path = printf "/releases/%s/" $version -}}
- {{- $link = $version -}}
-{{- end -}}
-<a href="{{ $path }}">{{ $link }}</a>
-
+{{ define "main" }}
+<div class="td-content">
+ <h1>{{ .Title }}</h1>
+ {{ with .Params.description }}<div class="lead">{{ . | markdownify
}}</div>{{ end }}
+ <header class="article-meta">
+ {{ partial "taxonomy_terms_article_wrapper.html" . -}}
+ {{ if (and (not .Params.hide_readingtime)
(.Site.Params.ui.readingtime.enable)) -}}
+ {{ partial "reading-time.html" . -}}
+ {{ end -}}
+ </header>
+ {{ .Render "_td-content-after-header" -}}
+ {{ .Content }}
+ {{ partial "section-index.html" . -}}
+ {{ partial "feedback.html" . -}}
+ {{ if (.Site.Config.Services.Disqus.Shortname) -}}
+ <br />
+ {{- partial "disqus-comment.html" . -}}
+ {{ end -}}
+ {{ partial "page-meta-lastmod.html" . -}}
+</div>
+{{ end -}}
\ No newline at end of file
diff --git a/site/layouts/shortcodes/docs-link.html
b/site/layouts/downloads/single.html
similarity index 92%
copy from site/layouts/shortcodes/docs-link.html
copy to site/layouts/downloads/single.html
index 2551cf5583..1a665a2bae 100644
--- a/site/layouts/shortcodes/docs-link.html
+++ b/site/layouts/downloads/single.html
@@ -16,5 +16,6 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/}}
-{{- partial "docs-link.html" . -}}
-
+{{ define "main" }}
+{{ .Render "_td-content" }}
+{{ end }}
diff --git a/site/layouts/partials/docs-link.html
b/site/layouts/partials/docs-link.html
index 7136948a16..425411f341 100644
--- a/site/layouts/partials/docs-link.html
+++ b/site/layouts/partials/docs-link.html
@@ -16,7 +16,7 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/}}
-{{- $version := .Get "version" -}}
+{{- $version := .version -}}
{{- $path := "" -}}
{{- $link := "" -}}
{{- if eq $version "unreleased" -}}
diff --git a/site/layouts/partials/downloadPages.html
b/site/layouts/partials/downloadPages.html
new file mode 100644
index 0000000000..7447116255
--- /dev/null
+++ b/site/layouts/partials/downloadPages.html
@@ -0,0 +1,46 @@
+{{/*
+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.
+*/}}
+{{ $s := .site -}}
+
+{{ $downloadsRoot := $s.GetPage "/downloads" -}}
+{{ $activeDownloadPages := slice -}}
+{{ $eolDownloadPages := slice -}}
+
+{{ with $downloadsRoot -}}
+ {{ $activeReleases := $s.Params.active_releases }}
+
+ {{/* Iterate over download pages sorted by weight ascending (lower weight =
more recent) */}}
+ {{ range .Pages.ByWeight -}}
+ {{ $downloadPage := . -}}
+ {{/* Skip special pages like "latest" redirect and hidden pages */}}
+ {{ if and (ne $downloadPage.Params.type "redirect") (not
$downloadPage.Params.toc_hide) -}}
+ {{ $version := $downloadPage.Params.release_version -}}
+ {{ if $version -}}
+ {{ if in $activeReleases $version -}}
+ {{ $activeDownloadPages = $activeDownloadPages | append
$downloadPage }}
+ {{ else -}}
+ {{ $eolDownloadPages = $eolDownloadPages | append $downloadPage }}
+ {{ end -}}
+ {{ end -}}
+ {{ end -}}
+ {{ end -}}
+{{ end -}}
+
+{{ return (dict "active" $activeDownloadPages "eol" $eolDownloadPages) }}
+
diff --git a/site/layouts/partials/navbar.html
b/site/layouts/partials/navbar.html
index fef303bad9..eb7b5d617a 100644
--- a/site/layouts/partials/navbar.html
+++ b/site/layouts/partials/navbar.html
@@ -32,18 +32,27 @@
</button>
<ul class="dropdown-menu">
{{ $children := .Children.ByWeight -}}
+ {{ $bannedItems := slice -}}
+
+ {{ if eq .Identifier "doc" -}}
+ {{ $releasePages := partial
"releasePages.html" (dict "site" $s) -}}
+ {{ range $releasePages.eol -}}
+ {{ $bannedItems = $bannedItems | append
.LinkTitle -}}
+ {{ end -}}
+ {{ end -}}
+
{{ if eq .Identifier "releases" -}}
- {{ with (partial
"releasePages.html" (dict "site" $s)).active -}}
- {{ range . -}}
- <a
class="dropdown-item" href="{{ .RelPermalink }}">{{ .Params.LinkTitle | default
.Params.Title }}</a>
- {{- end -}}
- {{ else -}}
- {{ $children = where
.Children.ByWeight "Identifier" "ne" "all-releases-page" -}}
- {{ end -}}
+ {{ $downloadPages := partial
"downloadPages.html" (dict "site" $s) -}}
+ {{ range $downloadPages.eol -}}
+ {{ $bannedItems = $bannedItems | append
.LinkTitle -}}
{{ end -}}
+ {{ end -}}
+
{{ range $children -}}
+ {{ if not (in $bannedItems .Name) -}}
<li><a class="dropdown-item" href="{{
.URL }}">{{ .Name }}</a></li>
{{- end -}}
+ {{- end -}}
</ul>
{{ else -}}
<!-- Menu items without children -->
diff --git a/site/layouts/partials/releasePages.html
b/site/layouts/partials/releasePages.html
index fd81468a72..f40e2b319a 100644
--- a/site/layouts/partials/releasePages.html
+++ b/site/layouts/partials/releasePages.html
@@ -34,8 +34,8 @@ under the License.
{{ if eq $releasesRootPage.Params.all_releases_root true }}
{{ $activeReleases := $s.Params.active_releases }}
- {{/* Iterate over release pages sorted by weight descending (higher weight
= more recent) */}}
- {{ range $releasesRootPage.Pages.ByWeight.Reverse -}}
+ {{/* Iterate over release pages sorted by weight ascending (lower weight =
more recent) */}}
+ {{ range $releasesRootPage.Pages.ByWeight -}}
{{ $versionPage := . -}}
{{ $version := $versionPage.Params.release_version -}}
{{ if $version -}}
diff --git a/site/layouts/partials/sidebar-docs-tree.html
b/site/layouts/partials/sidebar-docs-tree.html
index bbbbf083a4..3a4041924c 100644
--- a/site/layouts/partials/sidebar-docs-tree.html
+++ b/site/layouts/partials/sidebar-docs-tree.html
@@ -59,19 +59,25 @@ under the License.
<a href="{{ $docsPage.RelPermalink }}" class="align-left ps-0
td-sidebar-link td-sidebar-link__section tree-root" id="m-docs"><span
class="">{{ $docsPage.LinkTitle }}</span></a>
<ul class="ul-1">
{{ with partial "releasePages.html" (dict "site" .Site) -}}
- {{/* Render "Unreleased" as a direct expandable item */}}
+ {{/* Render "Unreleased" first */}}
{{ with .unreleased -}}
{{ $versionPage := . -}}
{{ $pages := where $versionPage.Pages.ByWeight
".Params.toc_hide" "!=" true -}}
{{ template "releases-section-x-nav-section" (dict "page" $page
"section" $versionPage "shouldDelayActive" $shouldDelayActive
"sidebarMenuTruncate" $sidebarMenuTruncate "ulNr" 1 "ulShow" $ulShow
"pages_input" $pages "sectionLinkTitle" "Unreleased") }}
{{ end -}}
- {{/* Render Active Releases - as an expandable category */}}
- {{ with .active -}}
- {{ template "releases-section-category-nav" (dict "page" $page
"shouldDelayActive" $shouldDelayActive "sidebarMenuTruncate"
$sidebarMenuTruncate "ulNr" 1 "ulShow" $ulShow "categoryTitle" "Active
Releases" "versionPages" . ) }}
+ {{/* Render Active Releases */}}
+ {{ range .active -}}
+ {{ $versionPage := . -}}
+ {{ $pages := where $versionPage.Pages.ByWeight
".Params.toc_hide" "!=" true -}}
+ {{ $versionLinkTitle := $versionPage.Params.release_version |
default $versionPage.LinkTitle -}}
+ {{ template "releases-section-x-nav-section" (dict "page" $page
"section" $versionPage "shouldDelayActive" $shouldDelayActive
"sidebarMenuTruncate" $sidebarMenuTruncate "ulNr" 1 "ulShow" $ulShow
"pages_input" $pages "sectionLinkTitle" $versionLinkTitle) }}
{{ end -}}
- {{/* Render EOL Releases - as an expandable category */}}
- {{ with .eol -}}
- {{ template "releases-section-category-nav" (dict "page" $page
"shouldDelayActive" $shouldDelayActive "sidebarMenuTruncate"
$sidebarMenuTruncate "ulNr" 1 "ulShow" $ulShow "categoryTitle" "EOL Releases"
"versionPages" . ) }}
+ {{/* Render EOL Releases with (EOL) suffix */}}
+ {{ range .eol -}}
+ {{ $versionPage := . -}}
+ {{ $pages := where $versionPage.Pages.ByWeight
".Params.toc_hide" "!=" true -}}
+ {{ $versionLinkTitle := printf "%s (EOL)"
($versionPage.Params.release_version | default $versionPage.LinkTitle) -}}
+ {{ template "releases-section-x-nav-section" (dict "page" $page
"section" $versionPage "shouldDelayActive" $shouldDelayActive
"sidebarMenuTruncate" $sidebarMenuTruncate "ulNr" 1 "ulShow" $ulShow
"pages_input" $pages "sectionLinkTitle" $versionLinkTitle) }}
{{ end -}}
{{ end -}}
</ul>
@@ -79,45 +85,6 @@ under the License.
</ul>
</nav>
</div>
-{{/* Template for rendering a category like "Active Releases" or "EOL
Releases" */}}
-{{/* This renders a category header (no link) with version pages as children
*/}}
-{{/* Optional: childLinkTitle - if provided and there's only one versionPage,
use this as the link title */}}
-{{ define "releases-section-category-nav" -}}
-{{ $p := .page -}}
-{{ $shouldDelayActive := .shouldDelayActive -}}
-{{ $sidebarMenuTruncate := .sidebarMenuTruncate -}}
-{{ $ulNr := .ulNr -}}
-{{ $ulShow := .ulShow -}}
-{{ $categoryTitle := .categoryTitle -}}
-{{ $versionPages := .versionPages -}}
-{{ $childLinkTitle := .childLinkTitle -}}
-{{ $mid := printf "m-category-%s" ($categoryTitle | anchorize) -}}
-{{/* Check if current page is a descendant of any version in this category */}}
-{{ $activePath := false -}}
-{{ range $versionPages -}}
- {{ if or (eq $p .) ($p.IsDescendant .) -}}
- {{ $activePath = true -}}
- {{ end -}}
-{{ end -}}
-<li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child{{
if $activePath }} active-path{{ end }}" id="{{ $mid }}-li">
- {{ if $p.Site.Params.ui.sidebar_menu_foldable -}}
- <input type="checkbox" id="{{ $mid }}-check"{{ if $activePath}} checked{{
end }}/>
- <label for="{{ $mid }}-check"><span class="align-left ps-0 td-sidebar-link
td-sidebar-link__section">{{ $categoryTitle }}</span></label>
- {{ else -}}
- <span class="align-left ps-0 td-sidebar-link td-sidebar-link__section">{{
$categoryTitle }}</span>
- {{ end -}}
- <ul class="ul-{{ add $ulNr 1 }} foldable">
- {{ range $versionPages -}}
- {{ $versionPage := . -}}
- {{ $pages := where $versionPage.Pages.ByWeight ".Params.toc_hide" "!="
true -}}
- {{/* Use childLinkTitle if provided, otherwise use the version's
release_version or LinkTitle */}}
- {{ $versionLinkTitle := $childLinkTitle | default
($versionPage.Params.release_version | default $versionPage.LinkTitle) -}}
- {{ template "releases-section-x-nav-section" (dict "page" $p "section"
$versionPage "shouldDelayActive" $shouldDelayActive "sidebarMenuTruncate"
$sidebarMenuTruncate "ulNr" (add $ulNr 1) "ulShow" $ulShow "pages_input" $pages
"sectionLinkTitle" $versionLinkTitle) }}
- {{ end -}}
- </ul>
-</li>
-{{- end -}}
-
{{ define "releases-section-x-nav-section" -}}
{{ $s := .section -}}
{{ $p := .page -}}
diff --git a/site/layouts/partials/sidebar-downloads-tree.html
b/site/layouts/partials/sidebar-downloads-tree.html
new file mode 100644
index 0000000000..eee25becf8
--- /dev/null
+++ b/site/layouts/partials/sidebar-downloads-tree.html
@@ -0,0 +1,84 @@
+{{/*
+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.
+*/}}
+{{/* We cache this partial for bigger sites and set the active class client
side. */ -}}
+{{ $sidebarCacheLimit := .Site.Params.ui.sidebar_cache_limit | default 2000 -}}
+{{ $shouldDelayActive := ge (len .Site.Pages) $sidebarCacheLimit -}}
+
+<div id="td-sidebar-menu" class="td-sidebar__inner{{ if $shouldDelayActive }}
d-none{{ end }}">
+ {{ if not .Site.Params.ui.sidebar_search_disable -}}
+ <form class="td-sidebar__search d-flex align-items-center">
+ {{ partial "search-input.html" . }}
+ <button class="btn btn-link td-sidebar__toggle d-md-none p-0 ms-3 fas
fa-bars" type="button" data-bs-toggle="collapse"
data-bs-target="#td-section-nav" aria-controls="td-section-nav"
aria-expanded="false" aria-label="Toggle section navigation">
+ </button>
+ </form>
+ {{ else -}}
+ <div id="content-mobile">
+ <form class="td-sidebar__search d-flex align-items-center">
+ {{ partial "search-input.html" . }}
+ <button class="btn btn-link td-sidebar__toggle d-md-none p-0 ms-3 fas
fa-bars" type="button" data-bs-toggle="collapse"
data-bs-target="#td-section-nav" aria-controls="td-section-nav"
aria-expanded="false" aria-label="Toggle section navigation">
+ </button>
+ </form>
+ </div>
+ <div id="content-desktop"></div>
+ {{ end -}}
+ <nav class="td-sidebar-nav collapse
+ {{- if .Site.Params.ui.sidebar_search_disable }}
td-sidebar-nav--search-disabled{{ end -}}
+ {{- if .Site.Params.ui.sidebar_menu_foldable }} foldable-nav{{ end -}}
+ " id="td-section-nav">
+ {{ if (gt (len .Site.Home.Translations) 0) -}}
+ <div class="td-sidebar-nav__section nav-item dropdown d-block d-lg-none">
+ {{ partial "navbar-lang-selector.html" . }}
+ </div>
+ {{ end -}}
+ {{ $ulNr := 0 -}}
+ {{ $ulShow := .Site.Params.ui.ul_show | default 1 -}}
+ {{ $downloadsPage := .Site.GetPage "/downloads" -}}
+ {{ $page := . }}
+ {{ $activePath := hasPrefix $page.RelPermalink "/downloads/" -}}
+ <ul class="td-sidebar-nav__section pe-md-3 ul-{{ $ulNr }}">
+ {{/* Downloads root item - clickable title linking to /downloads/ */}}
+ <li class="td-sidebar-nav__section-title td-sidebar-nav__section
with-child{{ if $activePath }} active-path{{ end }}" id="m-downloads-li">
+ <a href="{{ $downloadsPage.RelPermalink }}" class="align-left ps-0
td-sidebar-link td-sidebar-link__section tree-root" id="m-downloads"><span
class="">{{ $downloadsPage.LinkTitle }}</span></a>
+ <ul class="ul-1">
+ {{ with partial "downloadPages.html" (dict "site" .Site) -}}
+ {{/* Render Active Releases first */}}
+ {{ range .active -}}
+ {{ $downloadPage := . -}}
+ {{ $active := and (not $shouldDelayActive) (eq $downloadPage
$page) -}}
+ {{ $dmid := printf "m-%s" ($downloadPage.RelPermalink |
anchorize) -}}
+ <li class="td-sidebar-nav__section-title td-sidebar-nav__section
without-child{{ if $active }} active-path{{ end }}" id="{{ $dmid }}-li">
+ <a href="{{ $downloadPage.RelPermalink }}" class="align-left
ps-0{{ if $active}} active{{ end }} td-sidebar-link td-sidebar-link__page"
id="{{ $dmid }}"><span class="{{ if $active }}td-sidebar-nav-active-item{{ end
}}">{{ $downloadPage.LinkTitle }}</span></a>
+ </li>
+ {{ end -}}
+ {{/* Render EOL Releases with (EOL) suffix */}}
+ {{ range .eol -}}
+ {{ $downloadPage := . -}}
+ {{ $active := and (not $shouldDelayActive) (eq $downloadPage
$page) -}}
+ {{ $dmid := printf "m-%s" ($downloadPage.RelPermalink |
anchorize) -}}
+ <li class="td-sidebar-nav__section-title td-sidebar-nav__section
without-child{{ if $active }} active-path{{ end }}" id="{{ $dmid }}-li">
+ <a href="{{ $downloadPage.RelPermalink }}" class="align-left
ps-0{{ if $active}} active{{ end }} td-sidebar-link td-sidebar-link__page"
id="{{ $dmid }}"><span class="{{ if $active }}td-sidebar-nav-active-item{{ end
}}">{{ $downloadPage.LinkTitle }} (EOL)</span></a>
+ </li>
+ {{ end -}}
+ {{ end -}}
+ </ul>
+ </li>
+ </ul>
+ </nav>
+</div>
+
diff --git a/site/layouts/partials/sidebar-downloads.html
b/site/layouts/partials/sidebar-downloads.html
new file mode 100644
index 0000000000..2e3b10e85a
--- /dev/null
+++ b/site/layouts/partials/sidebar-downloads.html
@@ -0,0 +1,41 @@
+{{/*
+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.
+*/}}
+{{/* The "active" toggle here may delay rendering, so we only cache this side
bar menu for bigger sites. */ -}}
+{{ $sidebarCacheLimit := .Site.Params.ui.sidebar_cache_limit | default 2000 -}}
+{{ $shouldCache := ge (len .Site.Pages) $sidebarCacheLimit -}}
+{{ $sidebarCacheTypeRoot := .Site.Params.ui.sidebar_cache_type_root | default
false -}}
+{{ if $shouldCache -}}
+ {{ $mid := printf "m-%s" (.RelPermalink | anchorize) }}
+ <script>
+ $(function() {
+ $("#td-section-nav a").removeClass("active");
+ $("#td-section-nav #{{ $mid }}").addClass("active");
+ $("#td-section-nav #{{ $mid }}-li
span").addClass("td-sidebar-nav-active-item");
+ $("#td-section-nav #{{ $mid }}").parents("li").addClass("active-path");
+ $("#td-section-nav li.active-path").addClass("show");
+ $("#td-section-nav li.active-path").children("input").prop('checked',
true);
+ $("#td-section-nav #{{ $mid }}-li").siblings("li").addClass("show");
+ $("#td-section-nav #{{ $mid
}}-li").children("ul").children("li").addClass("show");
+ $("#td-sidebar-menu").toggleClass("d-none");
+ });
+ </script>
+ {{ partialCached "sidebar-downloads-tree.html" . .FirstSection.RelPermalink
}}
+{{ else -}}
+ {{ partial "sidebar-downloads-tree.html" . }}
+{{- end }}
\ No newline at end of file
diff --git a/site/layouts/shortcodes/docs-link.html
b/site/layouts/shortcodes/docs-link.html
index 2551cf5583..eecf93df64 100644
--- a/site/layouts/shortcodes/docs-link.html
+++ b/site/layouts/shortcodes/docs-link.html
@@ -16,5 +16,5 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/}}
-{{- partial "docs-link.html" . -}}
+{{- partial "docs-link.html" (dict "version" (.Get "version")) -}}
diff --git a/site/layouts/shortcodes/docs-link.html
b/site/layouts/shortcodes/docs-list.html
similarity index 64%
copy from site/layouts/shortcodes/docs-link.html
copy to site/layouts/shortcodes/docs-list.html
index 2551cf5583..a8de2b72db 100644
--- a/site/layouts/shortcodes/docs-link.html
+++ b/site/layouts/shortcodes/docs-list.html
@@ -16,5 +16,18 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/}}
-{{- partial "docs-link.html" . -}}
+{{ $releasePages := partial "releasePages.html" (dict "site" .Page.Site) -}}
+<ul>
+
+<li>{{ partial "docs-link.html" (dict "version" "unreleased") }}</li>
+
+{{ range $releasePages.active -}}
+<li>{{ partial "docs-link.html" (dict "version" .Params.release_version)
}}</li>
+{{ end -}}
+
+{{ range $releasePages.eol -}}
+<li>{{ partial "docs-link.html" (dict "version" .Params.release_version) }}
(EOL)</li>
+{{ end -}}
+
+</ul>
diff --git a/site/layouts/shortcodes/downloads-list.html
b/site/layouts/shortcodes/downloads-list.html
new file mode 100644
index 0000000000..5a9d37d75c
--- /dev/null
+++ b/site/layouts/shortcodes/downloads-list.html
@@ -0,0 +1,49 @@
+{{/*
+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.
+*/}}
+{{ $downloadPages := partial "downloadPages.html" (dict "site" .Page.Site) -}}
+{{ $releasePages := partial "releasePages.html" (dict "site" .Page.Site) -}}
+
+{{/* Build a map of release_version -> release page for quick lookup */ -}}
+{{ $releasePageMap := dict -}}
+{{ range $releasePages.active -}}
+ {{ $releasePageMap = merge $releasePageMap (dict .Params.release_version .)
-}}
+{{ end -}}
+{{ range $releasePages.eol -}}
+ {{ $releasePageMap = merge $releasePageMap (dict .Params.release_version .)
-}}
+{{ end -}}
+
+<ul>
+
+{{ range $downloadPages.active -}}
+{{ $releaseDate := .Params.release_date -}}
+{{ $formattedDate := time.Format "January 2, 2006" $releaseDate -}}
+{{ $version := .Params.release_version -}}
+{{ $releasePage := index $releasePageMap $version -}}
+<li><a href="{{ .RelPermalink }}">{{ $version }}</a> - Released {{
$formattedDate }}{{ with $releasePage }} (<a href="{{ .RelPermalink
}}">docs</a>){{ end }}</li>
+{{ end -}}
+
+{{ range $downloadPages.eol -}}
+{{ $releaseDate := .Params.release_date -}}
+{{ $formattedDate := time.Format "January 2, 2006" $releaseDate -}}
+{{ $version := .Params.release_version -}}
+{{ $releasePage := index $releasePageMap $version -}}
+<li><a href="{{ .RelPermalink }}">{{ $version }}</a> - Released {{
$formattedDate }} (EOL){{ with $releasePage }} (<a href="{{ .RelPermalink
}}">docs</a>){{ end }}</li>
+{{ end -}}
+
+</ul>