Skip to content

Build: Bump roaringbitmap from 1.3.0 to 1.6.0#14991

Merged
kevinjqliu merged 1 commit intoapache:mainfrom
manuzhang:upgrade-roaringbitmap
Jan 20, 2026
Merged

Build: Bump roaringbitmap from 1.3.0 to 1.6.0#14991
kevinjqliu merged 1 commit intoapache:mainfrom
manuzhang:upgrade-roaringbitmap

Conversation

@manuzhang
Copy link
Member

@manuzhang manuzhang commented Jan 8, 2026

roaringbitmap was no longer published to https://mvnrepository.com/artifact/org.roaringbitmap/RoaringBitmap after 1.3.0, but to https://jitpack.io as com.github.RoaringBitmap.RoaringBitmap:roaringbitmap

@github-actions github-actions bot added the build label Jan 8, 2026
@manuzhang manuzhang force-pushed the upgrade-roaringbitmap branch from a0f2b0f to 9b38f3d Compare January 8, 2026 04:27
@github-actions github-actions bot added the spark label Jan 8, 2026
@manuzhang manuzhang force-pushed the upgrade-roaringbitmap branch from 9b38f3d to 37dee6b Compare January 8, 2026 06:38
@manuzhang manuzhang changed the title Build: Bump roaringbitmap from 1.3.0 to 1.5.3 Build: Bump roaringbitmap from 1.3.0 to 1.6.0 Jan 8, 2026
@manuzhang manuzhang force-pushed the upgrade-roaringbitmap branch from 37dee6b to cd3e65b Compare January 8, 2026 09:05
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the RoaringBitmap dependency from version 1.3.0 to 1.6.0, migrating from Maven Central (org.roaringbitmap:RoaringBitmap) to JitPack (com.github.RoaringBitmap.RoaringBitmap:roaringbitmap) as the publishing location changed after version 1.3.0.

Key Changes:

  • Updated RoaringBitmap version from 1.3.0 to 1.6.0 in the version catalog
  • Changed the Maven coordinates from org.roaringbitmap:RoaringBitmap to com.github.RoaringBitmap.RoaringBitmap:roaringbitmap
  • Updated relocation paths in all Spark runtime build files to reflect the new package structure

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
gradle/libs.versions.toml Updated RoaringBitmap version to 1.6.0 and changed Maven coordinates to JitPack format
spark/v4.1/build.gradle Added exclusion for old org.roaringbitmap group and updated relocation path for new package structure
spark/v4.0/build.gradle Updated relocation path to match new RoaringBitmap package structure
spark/v3.5/build.gradle Updated relocation path to match new RoaringBitmap package structure
spark/v3.4/build.gradle Updated relocation path to match new RoaringBitmap package structure

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@kevinjqliu kevinjqliu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM the gradle usage is documented at https://github.com/RoaringBitmap/RoaringBitmap?tab=readme-ov-file#usage-within-a-gradle-project

Not sure if there's additional considerations when adding a new custom Maven repository, we should double check that

Copy link
Contributor

@amogh-jahagirdar amogh-jahagirdar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we'll need to double check any LICENSE contents that needs to be updated as well, looks like KC and the open API modules would need to be updated

@manuzhang
Copy link
Member Author

@amogh-jahagirdar Updated LICENSE files. BTW, do you know why the LICENSE file in Filnk doesn't have version with it?

@manuzhang manuzhang force-pushed the upgrade-roaringbitmap branch from 39d7b65 to f6d39d5 Compare January 14, 2026 10:53
Comment on lines 280 to 282
integrationImplementation ("org.apache.spark:spark-hive_${scalaVersion}:${libs.versions.spark41.get()}") {
exclude group: 'org.roaringbitmap'
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this exclusion strictly required? Or are we just trying to slim down the spark-hive test dependencies?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise, there will be two versions of Roaringbitmap on the test classpath.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense, though is this not an issue also for the other spark versions? Did something get changed specifically within 4.1?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch! I forgot to update for other Spark versions as well.

Copy link
Contributor

@amogh-jahagirdar amogh-jahagirdar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just had a question on why the exclusion is required, but other than that looks OK to me.

No, tbh I don't know why Flink doesn't track the explicit version. I don't think it's strictly required, at least as per https://infra.apache.org/licensing-howto.html#alv2-dep but yeah it is inconsistent with the other modules.

@manuzhang manuzhang force-pushed the upgrade-roaringbitmap branch from f6d39d5 to ca29f72 Compare January 14, 2026 16:44
@manuzhang manuzhang force-pushed the upgrade-roaringbitmap branch from ca29f72 to ad01e6b Compare January 14, 2026 16:46
Copy link
Contributor

@amogh-jahagirdar amogh-jahagirdar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @manuzhang! since it's a fairly critical dependency I'll give it another day for other people to chime in before merging.

Copy link
Contributor

@kevinjqliu kevinjqliu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks manu

@manuzhang
Copy link
Member Author

@amogh-jahagirdar @kevinjqliu any more comments?

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@kevinjqliu kevinjqliu merged commit 8967729 into apache:main Jan 20, 2026
40 checks passed
@kevinjqliu
Copy link
Contributor

Thanks @manuzhang and thanks @amogh-jahagirdar for the review

snazy added a commit to snazy/nessie that referenced this pull request Jan 22, 2026
Due to apache/iceberg#14991 and https://github.com/RoaringBitmap/RoaringBitmap not publishing to Maven Central, we need to declare in the jitpack.io repository.
snazy added a commit to snazy/polaris that referenced this pull request Jan 22, 2026
The Iceberg PR apache/iceberg#14991 bumps the https://github.com/RoaringBitmap/RoaringBitmap version, which is not published to Maven Central. We need to declare in the jitpack.io repository to prepare for the next Iceberg release.
@ajantha-bhat
Copy link
Member

This PR affects the Iceberg downstream projects too.
Example: apache/polaris#3504

I see that other projects that uses roaringbitmap (like Apache Spark) done the same thing
apache/spark#52892
But Spark community has observed that jitpack has some occasional downtime and their CI is flaky because of that sometimes. (Discussed in the the above PR linked).

I see two issues:
a) Forcing downstream users to add jitpack dependency (maybe some organizations have restrictions)
b) jitpack made Spark CI flaky a bit.

But If Iceberg has to support Spark 4.2 release, I understand that we need to add jitpack dependencies too.

@manuzhang
Copy link
Member Author

@ajantha-bhat Agreed. If we are going to use roaringbitmap in the long run, I don't see another way around it now.

snazy added a commit to projectnessie/nessie that referenced this pull request Jan 22, 2026
Due to apache/iceberg#14991 and https://github.com/RoaringBitmap/RoaringBitmap not publishing to Maven Central, we need to declare in the jitpack.io repository.
snazy added a commit to apache/polaris that referenced this pull request Jan 26, 2026
The Iceberg PR apache/iceberg#14991 bumps the https://github.com/RoaringBitmap/RoaringBitmap version, which is not published to Maven Central. We need to declare in the jitpack.io repository to prepare for the next Iceberg release.
evindj pushed a commit to evindj/polaris that referenced this pull request Jan 26, 2026
The Iceberg PR apache/iceberg#14991 bumps the https://github.com/RoaringBitmap/RoaringBitmap version, which is not published to Maven Central. We need to declare in the jitpack.io repository to prepare for the next Iceberg release.
@steveloughran
Copy link
Contributor

This is going to break anyone who pulls in unshaded iceberg artifacts until they add that new repo.

[ERROR] dependency: com.github.RoaringBitmap.RoaringBitmap:roaringbitmap:jar:1.6.0 (test)
[ERROR]         com.github.RoaringBitmap.RoaringBitmap:roaringbitmap:jar:1.6.0 was not found in https://repository.jboss.org/nexus/content/groups/public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of repository.jboss.org has elapsed or updates are forced                                                              
[ERROR]         com.github.RoaringBitmap.RoaringBitmap:roaringbitmap:jar:1.6.0 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced                                                                                                
[ERROR]

What worries me is not less the change than the risk that jitpack isn't really a formal release process, more "jitpack finds and builds the right artifact when asked"

Are these the official roaring bitmap artifacts, just served up to java build tools?

@manuzhang
Copy link
Member Author

manuzhang commented Feb 11, 2026

Are these the official roaring bitmap artifacts, just served up to java build tools?

I suppose. I followed the changes in Spark, and it looks jitpack repo has been used in a bunch of Apache projects besides Iceberg and Polaris.

snazy added a commit to snazy/polaris that referenced this pull request Feb 11, 2026
* Update actions/setup-java digest to be666c2 (apache#3527)

* Update actions/setup-python digest to a309ff8 (apache#3528)

* Update actions/stale digest to d6f8a33 (apache#3529)

* Update dependency jupyterlab to v4.5.3 (apache#3530)

* Update keycloak/keycloak Docker tag to v26.5.2 (apache#3536)

* Update dependency com.fasterxml.jackson:jackson-bom to v2.21.0 (apache#3535)

* Update quay.io/keycloak/keycloak Docker tag to v26.5.2 (apache#3533)

* Update dependency org.assertj:assertj-core to v3.27.7 (apache#3531)

* Update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.2.0 (apache#3534)

* fix(deps): update quarkus platform and group (apache#3532)

* chore(deps): update postgres docker tag to v18 (apache#3541)

* chore(deps): update localstack/localstack docker tag to v4 (apache#3540)

* fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.26 (apache#3542)

* fix(deps): update dependency software.amazon.awssdk:bom to v2.41.14 (apache#3546)

* Add jitpack.io repository (apache#3504)

The Iceberg PR apache/iceberg#14991 bumps the https://github.com/RoaringBitmap/RoaringBitmap version, which is not published to Maven Central. We need to declare in the jitpack.io repository to prepare for the next Iceberg release.

* fix(deps): update dependency gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext to v1.4 (apache#3549)

* Last merged commit 148bb74

---------

Co-authored-by: Mend Renovate <bot@renovateapp.com>
@steveloughran
Copy link
Contributor

@manuzhang thanks. I will make sure the checksums are the same. I do note jitpack say "list us last", which means they'd prefer artifacts to come via other repos, where the authors can and should sign their artifacts, before going to jitpack.

@steveloughran
Copy link
Contributor

I went to see what binaries were in the roaring bitmap release, but they've only done source releases.

https://github.com/RoaringBitmap/RoaringBitmap/releases/tag/1.6.0

commit is fec1dd5f05c
jitpack says they used the same for their build, and giving a build log it looks no more unsafe than anything else
https://jitpack.io/com/github/RoaringBitmap/RoaringBitmap/1.6.0/build.log

I think it does need a mention in the release notes though: anyone pulling iceberg core through maven/gradle/sbt will get an error unless they work out where the artifact came from.

@amogh-jahagirdar
Copy link
Contributor

Hey @steveloughran I agree, in fact I mean to start a dev list thread on this to make sure it doesn't fly under the radar. I think the upgrade is unavoidable but downstream consumers should be aware of the implications for sure.

@steveloughran
Copy link
Contributor

I'm actually less worried about this than anything else coming from jitpack when there are formal releases. For anyone with a corporate repo proxy/security scanner setup it also means involvement with them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants