+1 (BINDING) - SHA512 and GPG on dist repository is checked and good - "mvn clean test" runs as expected
Thanks On Sat, Nov 29, 2025 at 9:38 PM Will Lauer <[email protected]> wrote: > +1 (BINDING) > > - LICENSE looks good > - NOTICE looks good > - checked sha1 and gpg signature on all artifacts > - "mvn clean test" runs as expected > - "mvn clean install" runs as expected and produced the expected artifacts > > Will Lauer > [email protected] > > On Fri, Nov 21, 2025 at 8:42 PM Lee Rhodes <[email protected]> wrote: > >> Hello Apache DataSketches PMC and Community, >> >> This is a call for vote to release Apache DataSketches-java candidate >> version: 9.0.0-RC1 >> >> - This is the core Java component of the DataSketches library that >> includes all the sketch algorithms in production-ready packages. These >> sketches can be called directly from this component or used in conjunction >> with the adaptor components such as Hadoop Pig, Hadoop Hive, or the >> aggregator adaptors built into Apache Druid. >> >> Major changes with this release: >> >> This release is a major release where we took the opportunity to do some >> significant refactoring that will constitute incompatible changes from >> previous releases. Any incompatibility with prior releases is always an >> inconvenience to users who wish to just upgrade to the latest release and >> run. However, some of the code in this library was written in 2013 and >> meanwhile the Java language has evolved enormously since then. We chose to >> use this major release as the opportunity to modernize some of the code to >> achieve the following goals: >> >> *Remove the dependency on the DataSketches-Memory component and use FFM >> instead.* >> >> - The DataSketches-Memory component was originally developed in 2014 >> to address the need for fast access to off-heap memory data structures and >> used Unsafe and other JVM internals as there were no satisfactory Java >> language features to do this at the time. >> - The FFM capabilities introduced into the language in Java 22, are >> now part of the Java 25 LTS release, which we support. Since the >> capabilities of FFM are a superset of the original DataSketches-Memory >> component, it made sense to rewrite the code to eliminate the dependency >> on >> DataSketches-Memory and use FFM instead. This impacted code across the >> entire library. >> - This provided several advantages to the code base. By removing this >> dependency on DataSketches-Memory, there are now no runtime dependencies! >> This should make integrating this library into other Java systems much >> simpler. Since FFM is tightly integrated into the Java language, it has >> improved performance, especially with bulk operations. >> - As an added note: There are numerous other improvements to the Java >> language that we could perhaps take advantage of in a rewrite, e.g., >> Records, text blocks, switch expressions, sealed, var, modules, patterns, >> etc. However, faced with the risk of accidentally creating bugs due to >> too >> many changes at one time, we focused on FFM, which actually improved >> performance as opposed to just creating syntactic sugar. >> >> *Align public sketch class names so that the sketch family name is part >> of the class name. * >> >> - For example, the Theta sketch family was the first family written >> for the library and its base class was called *Sketch*. The Tuple >> sketch family evolved soon after and its base class was also called >> *Sketch*. If a user wanted to use both the Theta and Tuple families >> in the same class one of them had to be fully qualified every time it was >> referenced. >> - Unfortunately, this style propagated so some of the other early >> sketch families where we ended up with two different sketch families with >> a *ItemsSketch, >> etc*. For the more recent additions to the library we started >> including the sketch family name in all the relevant sketch-like public >> classes of a sketch family. >> - In this release we have refactored these older sketches with new >> names that now include the sketch family name. This is an incompatible >> change for user code moving from earlier releases, but this can be readily >> fixed with search-and-replace tools. This release is not perfect, but >> hopefully more consistent across all the different sketch families. >> >> Known Issues: >> >> *SpotBugs* >> >> - Make sure you configure SpotBugs with the >> /tools/FindBugsExcludeFilter.xml file. Otherwise, you may get a lot of >> false positive or low risk issues that we have examined and eliminated >> with >> this exclusion file. >> >> *Checkstyle* >> >> - At the time of this writing, Checkstyle had not been upgraded to >> handle Java 25 features. >> >> References for this release: >> >> *Source repository: * >> https://github.com/apache/datasketches-java >> >> *Git Tag for this release: * >> https://github.com/apache/datasketches-java/releases/tag/9.0.0-RC1 on >> branch 9.0.X >> >> *Git HashId for this release starts with: * >> f3b334b on branch 9.0.X >> >> *The Release Candidate / Zip Repository: * >> https://dist.apache.org/repos/dist/dev/datasketches/java/9.0.0-RC1 >> >> *The public signing key can be found in the KEYS file: * >> https://dist.apache.org/repos/dist/dev/datasketches/KEYS >> >> *The artifacts have been signed with --keyid-format SHORT:* >> 8CD4A902 >> >> *Repository: Maven Central [Nexus](http://repository.apache.org >> <http://repository.apache.org>) (Jar Artifacts):* >> >> https://repository.apache.org/content/groups/staging/org/apache/datasketches/datasketches-java/9.0.0/ >> >> *Build & Test Guide:* >> https://github.com/apache/datasketches-java/blob/9.0.0-RC1/README.md >> >> The vote will be performed as follows: >> This letter will be published on dev@ and remain open for at least 72 >> hours (excluding weekends and holidays), AND until at least 3 (+1) PMC >> votes or a majority of (+1) PMC votes are acquired. Anyone in the community >> can vote. This vote will close no earlier than Monday Dec 1, 2025, 6:00 PM >> PST. >> >> Please vote accordingly: >> >> [ ] +1 approve >> [ ] +0 no opinion >> [ ] -1 disapprove with the reason >> >> Thanks, >> Lee Rhodes >> [email protected] >> >
