Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,27 @@ 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
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.

<!-- Every Flatbuffers version is technically a breaking change, so our use of semver for this project may make
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
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:
```
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. -->
23 changes: 23 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 1 addition & 1 deletion java/barrage-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<parent>
<groupId>io.deephaven.barrage</groupId>
<artifactId>barrage-java-root</artifactId>
<version>0.7.3-SNAPSHOT</version>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion java/format/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<artifactId>barrage-java-root</artifactId>
<groupId>io.deephaven.barrage</groupId>
<version>0.7.3-SNAPSHOT</version>
<version>1.0.0-SNAPSHOT</version>
</parent>

<artifactId>barrage-format</artifactId>
Expand Down
124 changes: 64 additions & 60 deletions java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,9 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>34</version>
</parent>

<groupId>io.deephaven.barrage</groupId>
<artifactId>barrage-java-root</artifactId>
<version>0.7.3-SNAPSHOT</version>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Deephaven Data Labs' Barrage Java Root POM</name>
Expand Down Expand Up @@ -234,48 +228,6 @@
</execution>
</executions>
</plugin>

<!-- Release tags should be v<VERSION>. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>

<!-- Release to OSS Sonatype / Maven Central. -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.7.0</version>
<extensions>true</extensions>
<configuration>
<serverId>oss.sonatype.org</serverId>
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>

<!--
Sign artifacts with GPG. This is a requirement of releasing to OSS
Sonatype and Maven Central.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>

<pluginManagement>
Expand Down Expand Up @@ -304,17 +256,6 @@
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M6</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<pushChanges>false</pushChanges>
<goals>deploy</goals>
<arguments>-Papache-release ${arguments}</arguments>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Expand Down Expand Up @@ -369,4 +310,67 @@
<module>format</module>
<module>barrage-core</module>
</modules>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<!-- Release to Sonatype staging / Maven Central. -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
</configuration>
</plugin>

<!--
Sign artifacts with GPG. This is a requirement of releasing to Maven Central
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.4.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
<executions>
<execution>
<id>attach-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>