From 0dbd40536bdf9e83194e2053825641199e363833 Mon Sep 17 00:00:00 2001 From: Colin Alworth Date: Fri, 19 Dec 2025 08:09:21 -0600 Subject: [PATCH 1/4] Bump to 1.0.0-SNAPSHOT, update the pom, add a versioning note --- README.md | 19 ++++++ java/barrage-core/pom.xml | 2 +- java/format/pom.xml | 2 +- java/pom.xml | 124 ++++++++++++++++++++------------------ 4 files changed, 85 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 805dd6c..ae38197 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,22 @@ In this project contains a few methods to augment to Apache Arrow Flight to supp out-of-band client-streams for javascript clients. See documentation here: https://deephaven.io/barrage/docs/ + +### Versioning +Every Flatbuffers version is technically a breaking change, so our use of semver for this project may make +it seem as though this project seems more changes than it actually does. In reality, changes to the barrage +wire format are quite infrequent, and always done in an attempt to be backwards compatible. As a result, +SemVer applies specifically for using this as a library, but two endpoints can still communicate with version, +though new features used by one endpoint may not be understood by an older endpoint. + +As such, our versioning scheme is as follows: +``` +A.B.C +A - Major version, incremented for breaking changes to the wire format + B - Minor version, incremented for backwards-compatible changes to schema + C - Patch version, incremented for backwards-compatible bug fixes +``` + +The minor version will not be reset to zero when the major version is incremented, to indicate relative compatibility +between two major releases for schema features. That is to say that the minor version is effectively a wire format +version. diff --git a/java/barrage-core/pom.xml b/java/barrage-core/pom.xml index 1ced905..064dc3b 100644 --- a/java/barrage-core/pom.xml +++ b/java/barrage-core/pom.xml @@ -19,7 +19,7 @@ io.deephaven.barrage barrage-java-root - 0.7.3-SNAPSHOT + 1.0.0-SNAPSHOT ../pom.xml diff --git a/java/format/pom.xml b/java/format/pom.xml index 46fbd7b..feec64c 100644 --- a/java/format/pom.xml +++ b/java/format/pom.xml @@ -20,7 +20,7 @@ barrage-java-root io.deephaven.barrage - 0.7.3-SNAPSHOT + 1.0.0-SNAPSHOT barrage-format diff --git a/java/pom.xml b/java/pom.xml index 5768aef..93b673e 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -17,15 +17,9 @@ 4.0.0 - - org.apache - apache - 34 - - io.deephaven.barrage barrage-java-root - 0.7.3-SNAPSHOT + 1.0.0-SNAPSHOT pom Deephaven Data Labs' Barrage Java Root POM @@ -234,48 +228,6 @@ - - - - org.apache.maven.plugins - maven-release-plugin - 2.5.3 - - v@{project.version} - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.7.0 - true - - oss.sonatype.org - https://s01.oss.sonatype.org/ - true - - - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.6 - - - sign-artifacts - verify - - sign - - - - @@ -304,17 +256,6 @@ maven-enforcer-plugin 3.1.0 - - org.apache.maven.plugins - maven-release-plugin - 3.0.0-M6 - - false - false - deploy - -Papache-release ${arguments} - - @@ -369,4 +310,67 @@ format barrage-core + + + release + + + + + org.sonatype.central + central-publishing-maven-plugin + 0.9.0 + true + + central + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.4.0 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.12.0 + + + attach-javadoc + + jar + + + + + + + + From f7b71ea0bb4060f44d80416e99886211120dfdde Mon Sep 17 00:00:00 2001 From: Colin Alworth Date: Fri, 19 Dec 2025 12:00:15 -0600 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: Charles P. Wright --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ae38197..56c47f4 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ See documentation here: https://deephaven.io/barrage/docs/ ### Versioning Every Flatbuffers version is technically a breaking change, so our use of semver for this project may make -it seem as though this project seems more changes than it actually does. In reality, changes to the barrage +it seem as though this project sees more changes than it actually does. In reality, changes to the barrage wire format are quite infrequent, and always done in an attempt to be backwards compatible. As a result, -SemVer applies specifically for using this as a library, but two endpoints can still communicate with version, +SemVer applies specifically for using this as a library, but two endpoints can still communicate with different versions, though new features used by one endpoint may not be understood by an older endpoint. As such, our versioning scheme is as follows: From 919d155c4652a32d40cea43c84deca87f05e4a43 Mon Sep 17 00:00:00 2001 From: Colin Alworth Date: Fri, 19 Dec 2025 14:21:12 -0600 Subject: [PATCH 3/4] Simplify version semantics wording --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 56c47f4..4a5dbab 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,16 @@ out-of-band client-streams for javascript clients. See documentation here: https://deephaven.io/barrage/docs/ ### Versioning -Every Flatbuffers version is technically a breaking change, so our use of semver for this project may make +This library is at its 1.0.0 release, and versioning semantics are still being worked out. FlatBuffer enables +forward and backward compatibility for the wire format itself. As FlatBuffers does not follow SemVer, and +every release introduces breaking compile-time and runtime changes, each time the Flatbuffers library is update, +it will amount to a new major release. + + From 8b3562bbd64977db10a4e59e82721a5437f288bc Mon Sep 17 00:00:00 2001 From: Colin Alworth Date: Fri, 19 Dec 2025 15:13:13 -0600 Subject: [PATCH 4/4] Add steps for release --- RELEASE.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..5910fcc --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,23 @@ +# Java Release + +The Java release to Maven Central uses the Sonatype's publishing service. See https://central.sonatype.org/publish/publish-portal-maven/ +for more information. + +A developer must have a GPG keypair created and uploaded to a public keyserver, as well as a Sonatype account with permissions to publish +to the `io.deephaven` namespace. + +To update versions for a release, edit the pom files, or run +```sh +mvn versions:set -DnewVersion=x.y.z +``` +to automatically update versions across all poms. + +To perform a release, run: + +```sh +./mvnw clean deploy -Prelease +``` + +This will activate the `release` profile, which will generate javadoc and source jars and sign the artifacts before deploying to Sonatype. + +Snapshots can be deployed using the same steps.