This is an automated email from the ASF dual-hosted git repository. adutra pushed a commit to branch feature/iceberg-1.11 in repository https://gitbox.apache.org/repos/asf/polaris.git
commit 443748b33b9053b55e1c98d06b3c3ce17dfb42d6 Merge: b324ad6278 e790d68808 Author: Alexandre Dutra <[email protected]> AuthorDate: Sat Feb 21 16:21:09 2026 +0100 Merge remote-tracking branch 'origin/main' into feature/iceberg-1.11 .asf.yaml | 6 +- .github/SECRETS.md | 67 + .github/renovate.json5 | 14 +- .github/workflows/ci.yml | 34 +- .../workflows/release-1-create-release-branch.yml | 4 +- .../release-2-update-release-candidate.yml | 2 +- .../release-3-build-and-publish-artifacts.yml | 103 +- .github/workflows/release-4-publish-release.yml | 93 +- .../release-X-cancel-release-candidate.yml | 8 +- .github/workflows/stale.yml | 2 +- CHANGELOG.md | 6 + CHAT_BYLAWS.md | 14 +- DISCLAIMER | 10 - Makefile | 240 ++-- NOTICE | 4 +- README.md | 8 +- api/polaris-catalog-service/build.gradle.kts | 3 + .../polaris/service/types/PolicyIdentifier.java | 122 +- .../src/main/kotlin/polaris-java.gradle.kts | 2 +- .../src/main/kotlin/publishing/rootProject.kt | 9 +- client/python/docker-compose.yml | 2 +- client/python/pyproject.toml | 2 +- client/python/uv.lock | 14 +- .../extension/auth/opa/OpaHttpClientFactory.java | 8 +- .../auth/opa/OpaPolarisAuthorizerFactory.java | 10 +- .../auth/opa/token/FileBearerTokenProvider.java | 18 +- .../auth/opa/token/StaticBearerTokenProvider.java | 10 +- .../extension/auth/opa/test/Dockerfile-opa-version | 2 +- .../assets/postgres/docker-compose-postgres.yml | 2 +- getting-started/ceph/README.md | 3 +- getting-started/ceph/docker-compose.yml | 2 +- getting-started/jdbc/docker-compose.yml | 2 +- getting-started/keycloak/docker-compose.yml | 2 +- getting-started/minio/README.md | 2 +- getting-started/ozone/README.md | 2 +- getting-started/quickstart/docker-compose.yml | 4 +- getting-started/rustfs/README.md | 2 +- getting-started/rustfs/docker-compose.yml | 2 +- getting-started/spark/notebooks/SparkPolaris.ipynb | 2 +- getting-started/telemetry/docker-compose.yml | 2 +- gradle/baselibs.versions.toml | 4 +- gradle/jar-licenses/NOTICE | 4 +- gradle/libs.versions.toml | 22 +- helm/polaris/.helmignore | 4 + helm/polaris/Chart.yaml | 29 +- helm/polaris/DISCLAIMER | 10 - helm/polaris/NOTICE | 4 +- helm/polaris/README.md | 494 +------ .../polaris/artifacthub-repo.yml | 8 +- helm/polaris/ci/extra-service-values.yaml | 4 +- helm/polaris/ci/fixtures/mongodb.yaml | 64 + .../polaris/ci/fixtures/nosql-persistence.yaml | 9 +- .../nosql-persistence-values.yaml} | 46 +- helm/polaris/{README.md.gotmpl => helm.md.gotmpl} | 74 +- helm/polaris/templates/_helpers.tpl | 72 +- helm/polaris/templates/configmap.yaml | 12 +- helm/polaris/templates/deployment.yaml | 3 +- helm/polaris/templates/ingress.yaml | 6 +- helm/polaris/templates/service-extra.yaml | 6 +- helm/polaris/templates/service.yaml | 2 +- helm/polaris/tests/configmap_test.yaml | 38 +- helm/polaris/tests/deployment_test.yaml | 236 +++- helm/polaris/tests/ingress_test.yaml | 31 +- helm/polaris/tests/service_extra_test.yaml | 14 +- helm/polaris/tests/service_mgmt_test.yaml | 21 +- helm/polaris/tests/service_test.yaml | 23 +- helm/polaris/tools/prepare_helm_readme.py | 77 -- helm/polaris/values.schema.json | 1416 ++++++++++++++++++++ helm/polaris/values.yaml | 322 +++-- .../apache/polaris/service/it/env/PolicyApi.java | 24 +- .../service/it/ext/SparkSessionBuilder.java | 26 +- .../test/PolarisPolicyServiceIntegrationTest.java | 33 +- .../it/test/PolarisRestCatalogIntegrationBase.java | 3 + persistence/nosql/async/api/build.gradle.kts | 3 +- persistence/nosql/authz/impl/build.gradle.kts | 3 +- .../nosql/authz/store-nosql/build.gradle.kts | 3 +- .../nosql/nodes/store-nosql/build.gradle.kts | 3 +- .../nosql/persistence/cdi/weld/build.gradle.kts | 3 +- .../nosql/mongodb/Dockerfile-mongodb-version | 2 +- .../docker/mongodb-3-nodes/docker-compose.yml | 6 +- .../persistence/maintenance/impl/build.gradle.kts | 3 +- .../metastore-maintenance/build.gradle.kts | 3 +- .../maintenance/TestCatalogMaintenance.java | 8 +- .../nosql/persistence/metastore/build.gradle.kts | 3 +- .../nosql/metastore/ContentIdentifier.java | 2 +- .../nosql/metastore/NoSqlMetaStore.java | 5 +- .../nosql/metastore/TestNoSqlMetaStoreManager.java | 6 +- .../nosql/metastore/TestNoSqlResolver.java | 6 +- .../persistence/nosql/metastore/CdiProducers.java | 6 +- .../nosql/realms/store-nosql/build.gradle.kts | 3 +- persistence/relational-jdbc/build.gradle.kts | 3 + .../persistence/relational/jdbc/DatabaseType.java | 20 + .../relational/jdbc/DatasourceOperations.java | 8 +- .../relational/jdbc/JdbcBasePersistenceImpl.java | 19 + .../relational/jdbc/JdbcBootstrapUtils.java | 14 + .../jdbc/JdbcMetaStoreManagerFactory.java | 7 + .../relational/jdbc/QueryGenerator.java | 128 +- .../jdbc/idempotency/PostgresIdempotencyStore.java | 255 ---- .../RelationalJdbcIdempotencyStore.java | 250 ++++ .../jdbc/models/ModelIdempotencyRecord.java | 199 +++ .../src/main/resources/h2/schema-metrics-v1.sql | 166 +++ .../main/resources/postgres/schema-metrics-v1.sql | 177 +++ .../relational/jdbc/JdbcBootstrapUtilsTest.java | 31 + .../MetricsPersistenceBootstrapValidationTest.java | 159 +++ .../relational/jdbc/QueryGeneratorTest.java | 137 ++ ... RelationalJdbcIdempotencyStorePostgresIT.java} | 57 +- plugins/spark/v3.5/regtests/README.md | 45 + plugins/spark/v3.5/regtests/docker-compose.yml | 2 +- plugins/spark/v3.5/regtests/run.sh | 149 +- plugins/spark/v3.5/regtests/setup.sh | 54 +- .../{spark_sql.ref => suites/spark_sql_delta.ref} | 0 .../{spark_sql.sh => suites/spark_sql_delta.sh} | 0 .../spark/v3.5/regtests/suites/spark_sql_hudi.ref | 45 + .../{spark_sql.sh => suites/spark_sql_hudi.sh} | 62 +- plugins/spark/v3.5/spark/BUNDLE-NOTICE | 8 +- plugins/spark/v3.5/spark/build.gradle.kts | 3 + .../apache/polaris/spark/PolarisSparkCatalog.java | 2 +- .../org/apache/polaris/spark/SparkCatalog.java | 11 + .../apache/polaris/spark/rest/GenericTable.java | 170 +-- .../apache/polaris/spark/utils/PaimonHelper.java | 93 ++ .../polaris/spark/utils/PolarisCatalogUtils.java | 17 +- .../org/apache/polaris/spark/NoopDeltaCatalog.java | 3 + ...oopDeltaCatalog.java => NoopPaimonCatalog.java} | 7 +- .../polaris/spark/PolarisInMemoryCatalog.java | 8 +- .../polaris/spark/PolarisRESTCatalogTest.java | 22 +- .../org/apache/polaris/spark/SparkCatalogTest.java | 9 +- .../polaris/spark/rest/DeserializationTest.java | 24 +- .../polaris/spark/utils/PaimonHelperTest.java | 116 ++ .../apache/polaris/core/PolarisCallContext.java | 27 +- .../core/auth/PolarisAuthorizableOperation.java | 3 +- .../core/catalog/PolarisCatalogHelpers.java | 4 +- .../polaris/core/config/FeatureConfiguration.java | 24 +- .../polaris/core/config/PolarisConfiguration.java | 119 +- .../core/config/PolarisConfigurationStore.java | 65 +- .../apache/polaris/core/config/RealmConfig.java | 4 +- .../polaris/core/config/RealmConfigImpl.java | 30 +- .../core/config/RealmConfigurationSource.java | 45 + .../core/connection/ConnectionConfigInfoDpo.java | 4 - .../polaris/core/entity/IdempotencyRecord.java | 165 +++ .../core/entity/PolarisChangeTrackingVersions.java | 50 +- .../apache/polaris/core/entity/PolarisEntity.java | 42 +- .../polaris/core/entity/PolarisEntityId.java | 53 +- .../polaris/core/entity/PolarisPrivilege.java | 13 +- .../metrics/iceberg/MetricsRecordConverter.java | 272 ++++ .../AtomicOperationMetaStoreManager.java | 12 +- .../IdempotencyPersistenceException.java | 26 +- .../polaris/core/persistence/IdempotencyStore.java | 35 +- .../core/persistence/bootstrap/SchemaOptions.java | 7 + .../persistence/cache/EntityCacheLookupResult.java | 32 +- .../persistence/cache/InMemoryEntityCache.java | 9 +- .../persistence/dao/entity/EntityWithPath.java | 34 +- .../persistence/metrics/CommitMetricsRecord.java | 126 ++ .../persistence/metrics/MetricsPersistence.java | 152 +++ .../persistence/metrics/MetricsQueryCriteria.java | 165 +++ .../persistence/metrics/MetricsRecordIdentity.java | 95 ++ .../metrics/NoOpMetricsPersistence.java | 60 + .../core/persistence/metrics/ReportIdToken.java | 136 ++ .../persistence/metrics/ScanMetricsRecord.java | 125 ++ .../core/persistence/pagination/PageTokenUtil.java | 4 +- .../resolver/PolarisResolutionManifest.java | 10 +- .../core/persistence/resolver/Resolver.java | 44 +- .../persistence/resolver/ResolverEntityName.java | 53 +- .../core/persistence/resolver/ResolverPath.java | 72 +- .../TransactionalMetaStoreManagerImpl.java | 8 +- .../transactional/TreeMapMetaStore.java | 22 +- .../TreeMapTransactionalPersistenceImpl.java | 4 +- .../polaris/core/secrets/SecretReference.java | 68 +- .../core/secrets/UnsafeInMemorySecretsManager.java | 12 +- .../polaris/core/storage/LocationRestrictions.java | 4 +- .../core/storage/PolarisStorageIntegration.java | 35 +- .../core/storage/cache/StorageCredentialCache.java | 2 +- .../storage/cache/StorageCredentialCacheEntry.java | 23 +- .../polaris/idempotency/IdempotencyRecord.java | 171 --- ...ris.core.persistence.pagination.Token$TokenType | 1 + .../core/config/PolarisConfigurationTest.java | 140 ++ .../polaris/core/config/RealmConfigImplTest.java | 68 + .../persistence/cache/InMemoryEntityCacheTest.java | 88 +- .../core/storage/BaseStorageIntegrationTest.java | 4 +- .../storage/InMemoryStorageIntegrationTest.java | 119 +- .../storage/cache/StorageCredentialCacheTest.java | 24 +- .../storage/PolarisConfigurationStoreTest.java | 34 +- .../aws/AwsCredentialsStorageIntegrationTest.java | 128 +- .../polaris/core/persistence/BaseResolverTest.java | 10 +- .../persistence/PolarisTestMetaStoreManager.java | 4 +- regtests/docker-compose.yml | 2 +- regtests/notebook_requirements.txt | 2 +- regtests/setup.sh | 2 +- regtests/t_pyspark/src/iceberg_spark.py | 4 +- releasey/bin/build-helm-index.sh | 151 +++ releasey/libs/_constants.sh | 4 +- releasey/libs/_version.sh | 22 +- releasey/release-process-flowchart.mmd | 2 +- runtime/admin/build.gradle.kts | 8 + runtime/admin/distribution/DISCLAIMER | 10 - runtime/admin/distribution/NOTICE | 4 +- runtime/admin/src/main/docker/Dockerfile.jvm | 5 +- .../apache/polaris/admintool/BootstrapCommand.java | 9 + .../admintool/config/AdminToolProducers.java | 12 +- .../src/main/resources/application.properties | 2 +- .../jdbc/RelationalJdbcBootstrapCommandTest.java | 23 + .../polaris/admintool/Dockerfile-postgres-version | 2 +- .../src/main/resources/application-test.properties | 2 +- .../src/main/resources/application.properties | 6 +- runtime/distribution/DISCLAIMER | 10 - runtime/distribution/NOTICE | 4 +- runtime/distribution/build.gradle.kts | 1 - runtime/server/distribution/DISCLAIMER | 10 - runtime/server/distribution/NOTICE | 4 +- runtime/server/src/main/docker/Dockerfile.jvm | 5 +- .../polaris/service/admin/PolarisAdminService.java | 10 +- .../service/catalog/common/CatalogAdapter.java | 8 - .../service/catalog/common/CatalogHandler.java | 6 +- .../service/catalog/common/CatalogUtils.java | 9 + .../generic/GenericTableCatalogAdapter.java | 4 +- .../generic/PolarisGenericTableCatalog.java | 18 +- .../catalog/iceberg/CatalogHandlerUtils.java | 64 - .../service/catalog/iceberg/IcebergCatalog.java | 64 +- .../catalog/iceberg/IcebergCatalogAdapter.java | 27 +- .../catalog/iceberg/IcebergCatalogHandler.java | 20 + .../iceberg/IcebergCatalogHandlerFactory.java | 6 + .../IcebergRestCatalogEventServiceDelegator.java | 2 + .../polaris/service/catalog/io/FileIOUtil.java | 3 - .../service/catalog/policy/PolicyCatalog.java | 48 +- .../catalog/policy/PolicyCatalogAdapter.java | 4 +- .../catalog/policy/PolicyCatalogHandler.java | 15 +- .../service/catalog/policy/PolicyCatalogUtils.java | 4 +- .../service/config/DefaultConfigurationStore.java | 21 +- .../polaris/service/config/ReservedProperties.java | 21 +- .../config/ResolvedFeaturesConfiguration.java | 4 +- .../polaris/service/config/ServiceProducers.java | 10 +- .../DefaultPolarisCredentialManager.java | 5 - .../admin/PolarisAdminServiceAuthzTest.java | 883 ++++++------ .../service/admin/PolarisAuthzTestBase.java | 379 ++++-- .../service/auth/DefaultAuthenticatorTest.java | 93 +- ...PolarisGenericTableCatalogHandlerAuthzTest.java | 168 +-- .../AbstractIcebergCatalogHandlerAuthzTest.java | 1064 ++++++++------- .../iceberg/AbstractIcebergCatalogTest.java | 186 ++- ...ebergCatalogHandlerFineGrainedDisabledTest.java | 54 +- .../iceberg/IcebergCatalogNoSqlInMemTest.java | 12 - ...Test.java => IcebergCatalogRelationalTest.java} | 17 +- ...cebergCatalogRelationalWithEntityCacheTest.java | 41 - .../catalog/policy/AbstractPolicyCatalogTest.java | 2 +- .../policy/PolicyCatalogHandlerAuthzTest.java | 531 ++++---- .../config/DefaultConfigurationStoreTest.java | 34 +- .../polaris/service/entity/CatalogEntityTest.java | 4 +- .../DefaultServiceIdentityProviderTest.java | 6 +- .../test/PolarisIntegrationTestFixture.java | 2 +- .../service/test/PolarisIntegrationTestHelper.java | 4 +- .../polaris/service/test/TestEnvironment.java | 44 +- .../org/apache/polaris/service/TestServices.java | 38 +- .../catalog/PolarisPassthroughResolutionView.java | 4 +- .../test/commons/Dockerfile-postgres-version | 2 +- .../commons/keycloak/Dockerfile-keycloak-version | 2 +- settings.gradle.kts | 10 +- site/content/_index.adoc | 8 +- site/content/blog/2025/12/24/aws-kms.md | 3 +- site/content/blog/2026/02/19/graduation-tlp.md | 85 ++ site/content/community/_index.adoc | 36 +- .../release-guides/manual-release-guide.md | 168 ++- .../release-guides/release-verification-guide.md | 22 +- .../release-guides/semi-automated-release-guide.md | 177 +-- site/content/community/security-report.md | 2 +- site/content/downloads/_index.md | 2 +- site/content/in-dev/unreleased/_index.md | 12 +- site/content/in-dev/unreleased/admin-tool.md | 104 +- site/content/in-dev/unreleased/configuration.md | 18 +- site/content/in-dev/unreleased/entities.md | 2 +- .../federation/iceberg-rest-federation.md | 12 +- .../getting-started/binary-distribution.md | 2 +- .../deploying-polaris/local-deploy.md | 2 +- .../getting-started/install-dependencies.md | 2 +- site/content/in-dev/unreleased/helm.md | 172 ++- .../unreleased/managing-security/access-control.md | 2 +- .../managing-security/external-pdp/_index.md | 2 +- .../managing-security/external-pdp/opa.md | 2 +- .../content/in-dev/unreleased/metastores/_index.md | 47 + .../in-dev/unreleased/metastores/nosql-mongodb.md | 120 ++ .../relational-jdbc.md} | 58 +- site/content/in-dev/unreleased/telemetry.md | 2 +- tools/verify-release/verify-release.sh | 22 +- .../apache/polaris/version/TestPolarisVersion.java | 2 +- .../jarTest/resources/META-INF/FAKE_MANIFEST.MF | 2 +- version.txt | 2 +- 283 files changed, 9648 insertions(+), 5320 deletions(-) diff --cc gradle/libs.versions.toml index 8f687fd7c0,de0c71c9a3..2edb8fd44f --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@@ -20,7 -20,7 +20,7 @@@ [versions] checkstyle = "13.2.0" hadoop = "3.4.2" - iceberg = "1.11.0-SNAPSHOT" # Ensure to update the iceberg version in regtests to keep regtests up-to-date -iceberg = "1.10.1" # Ensure to update the iceberg version in regtests and getting-started to keep them up-to-date ++iceberg = "1.11.0-SNAPSHOT" # Ensure to update the iceberg version in regtests and getting-started to keep them up-to-date immutables = "2.12.1" jmh = "1.37" picocli = "4.7.7" diff --cc runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java index 69735c357b,930fac1845..13f13add3c --- a/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java +++ b/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalogAdapter.java @@@ -28,10 -29,8 +29,9 @@@ import jakarta.inject.Inject import jakarta.ws.rs.core.HttpHeaders; import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.SecurityContext; - import java.time.Clock; import java.util.EnumSet; import java.util.Optional; +import java.util.UUID; import java.util.function.Function; import org.apache.iceberg.MetadataUpdate; import org.apache.iceberg.catalog.Namespace; diff --cc settings.gradle.kts index e386ac2c64,b40a7fbc72..19b2eab534 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@@ -127,11 -127,17 +127,17 @@@ dependencyResolutionManagement } val useApacheSnapshots = providers.gradleProperty("useApacheSnapshots").orNull?.toBoolean() == true - if (useApacheSnapshots) { + if (useApacheSnapshots || true) { + // This is a hack to let Renovate _not_ query the Apache snapshot repository for all + // dependencies. + // See https://github.com/renovatebot/renovate/discussions/41291 + fun configureIndirectForRenovate(asfSnap: MavenArtifactRepository) { + asfSnap.url = uri("https://repository.apache.org/content/repositories/snapshots/") + asfSnap.mavenContent { snapshotsOnly() } + } maven { name = "ApacheSnapshots" - url = uri("https://repository.apache.org/content/repositories/snapshots/") - mavenContent { snapshotsOnly() } + configureIndirectForRenovate(this) } } gradlePluginPortal()
