Skip to content

Commit ed50439

Browse files
authored
chore: Bump to vX.Y versioning scheme (#7534)
This is to support our next release which will be `41.0` (as opposed to `0.41.0`). Note: npm and go versions will use version `X.Y.0`, as they require semantic versions.
1 parent 5ee4bcd commit ed50439

File tree

9 files changed

+57
-49
lines changed

9 files changed

+57
-49
lines changed

.lycheeignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ http://localhost:
22
https://localhost:
33
https://docs.deephaven.io/
44
https://10.0.1.50:8123/iris/connection.json
5-
https://deephaven.io/core/release/vX.Y.Z/javadoc
5+
https://deephaven.io/core/release/vX.Y/javadoc
66
https://github.com/deephaven/deephaven.io
77
https://developer.mozilla.org/en-US/docs/Web/API/Transferable

R/rdeephaven/DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package: rdeephaven
22
Type: Package
33
Title: R Client for Deephaven Core
4-
Version: 0.41.0
4+
Version: 41.0
55
Date: 2023-05-12
66
Author: Deephaven Data Labs
77
Maintainer: Alex Peters <alexpeters@deephaven.io>

RELEASE.md

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -95,40 +95,40 @@ git@github.com:deephaven/deephaven-core.git
9595
Ensure you are up-to-date with `upstream/main`, or at the commit that you want to start a new release from.
9696
If you are unsure what commit to start from, please ask.
9797
Please double-check you are on the version you expect to be releasing.
98-
The releases have so far proceeded with `release/vX.Y.Z`, where `X.Y.Z` is the version number (this isn't a technical requirement), please replace `X.Y.Z` with the appropriate version.
98+
The releases have so far proceeded with `release/vX.Y`, where `X.Y` is the version number (this isn't a technical requirement), please replace `X.Y` with the appropriate version.
9999
We also separate out the release branch from `upstream/main` with an empty commit (this isn't a technical requirement).
100100

101101
```shell
102102
$ git fetch upstream
103103
$ git checkout upstream/main
104104
$ ./gradlew printVersion -PdeephavenBaseQualifier= -q
105-
$ git checkout -b release/vX.Y.Z
106-
$ git commit --allow-empty -m "chore: Cut for X.Y.Z"
105+
$ git checkout -b release/vX.Y
106+
$ git commit --allow-empty -m "chore: Cut for X.Y"
107107
```
108108

109-
#### Procedure for patch releases
109+
#### Procedure for minor releases
110110

111-
For patch releases, typically the branch will be based off of the previous release tag, and not `upstream/main`, and the necessary patch fixes can be cherry-picked from the `upstream/main` branch.
112-
The patch release manager is also responsible for bumping the patch version numbers as appropriate (note comment block on the list of commands
111+
For minor releases, typically the branch will be based off of the previous release tag, and not `upstream/main`, and the necessary minor fixes can be cherry-picked from the `upstream/main` branch.
112+
The minor release manager is also responsible for bumping the minor version numbers as appropriate (note comment block on the list of commands
113113
below).
114114

115-
Here is an example going from `X.Y.0` to `X.Y.1`:
115+
Here is an example going from `X.0` to `X.1`:
116116

117117
```shell
118118
$ git fetch upstream
119-
$ git checkout vX.Y.0
120-
$ git checkout -b release/vX.Y.1
119+
$ git checkout vX.0
120+
$ git checkout -b release/vX.1
121121
$ git cherry-pick <...>
122122
#
123-
# Edit files, updating from X.Y.0 to X.Y.1, and git add them.
123+
# Edit files, updating from X.0 to X.1, and git add them.
124124
#
125125
# Look in the last section "Version bump in preparation of next release" for a list of
126126
# files to update to the right version you are producing.
127127
#
128128
# See https://github.com/deephaven/deephaven-core/issues/3466 for future improvements to this process.
129129
$ ...
130-
$ git commit -m "chore: Bump to X.Y.1"
131-
$ git --no-pager log --oneline vX.Y.0..release/vX.Y.1
130+
$ git commit -m "chore: Bump to X.1"
131+
$ git --no-pager log --oneline vX.0..release/vX.1
132132
#
133133
# Compare output to expected PR list for missing or extraneous PRs
134134
```
@@ -141,16 +141,16 @@ It's also best practice to ensure that the cherry-picks compile, as there can so
141141
Triple-check things look correct, the release is a "GO", and then start the release process by pushing the release branch to upstream:
142142

143143
```shell
144-
$ git show release/vX.Y.Z
145-
$ git push -u upstream release/vX.Y.Z
144+
$ git show release/vX.Y
145+
$ git push -u upstream release/vX.Y
146146
```
147147

148148
Note: release branches are _not_ typically merged back into `main`.
149149

150150
### 4. Monitor release
151151

152152
The release will proceed with [GitHub Actions](https://github.com/deephaven/deephaven-core/actions/workflows/publish-ci.yml).
153-
The specific action can be found based off of the name of the release branch: [?query=branch%3Arelease%2FvX.Y.Z](https://github.com/deephaven/deephaven-core/actions/workflows/publish-ci.yml?query=branch%3Arelease%2FvX.Y.Z).
153+
The specific action can be found based off of the name of the release branch: [?query=branch%3Arelease%2FvX.Y](https://github.com/deephaven/deephaven-core/actions/workflows/publish-ci.yml?query=branch%3Arelease%2FvX.Y).
154154

155155
The "Publish" step creates the artifacts and publishes the jars to a [Maven Central Portal staging repository](https://central.sonatype.com/).
156156

@@ -189,14 +189,14 @@ If you are unable to use these tools, it is possible for somebody else to do thi
189189
The following tools are used: [syft](https://github.com/anchore/syft), [cyclonedx](https://github.com/CycloneDX/cyclonedx-cli).
190190

191191
```shell
192-
syft server-jetty-X.Y.Z.tar -o json > server-jetty-X.Y.Z.tar.syft.json
192+
syft server-jetty-X.Y.tar -o json > server-jetty-X.Y.tar.syft.json
193193
```
194194

195195
Compare differences:
196196
```shell
197-
syft convert server-jetty-A.B.C.tar.syft.json -o cyclonedx-json=/tmp/A.B.C.cyclonedx.json
198-
syft convert server-jetty-X.Y.Z.tar.syft.json -o cyclonedx-json=/tmp/X.Y.Z.cyclonedx.json
199-
cyclonedx diff /tmp/A.B.C.cyclonedx.json /tmp/X.Y.Z.cyclonedx.json --component-versions
197+
syft convert server-jetty-A.B.tar.syft.json -o cyclonedx-json=/tmp/A.B.cyclonedx.json
198+
syft convert server-jetty-X.Y.tar.syft.json -o cyclonedx-json=/tmp/X.Y.cyclonedx.json
199+
cyclonedx diff /tmp/A.B.cyclonedx.json /tmp/X.Y.cyclonedx.json --component-versions
200200
```
201201

202202
Please post the difference to the Deephaven team to ensure there are no unexpected new dependencies, removed dependencies, or updated dependencies.
@@ -219,26 +219,26 @@ Sometimes it takes a little bit of time for the jars to appear.
219219

220220
### 8. Tag upstream
221221

222-
The `vX.Y.Z` tag is primarily meant for an immutable reference point in the future.
222+
The `vX.Y` tag is primarily meant for an immutable reference point in the future.
223223
It does not kick off any additional jobs.
224224
The release should only be tagged _after_ the Maven Central staging repository has been "Released".
225225

226226
```shell
227-
$ git tag -a -m "[Release] X.Y.Z" vX.Y.Z release/vX.Y.Z
228-
$ git show vX.Y.Z
229-
$ git push upstream vX.Y.Z
227+
$ git tag -a -m "[Release] X.Y" vX.Y release/vX.Y
228+
$ git show vX.Y
229+
$ git push upstream vX.Y
230230
```
231231

232232
### 9. GitHub release
233233

234-
Create a new [GitHub release](https://github.com/deephaven/deephaven-core/releases/new) and use the `vX.Y.Z` tag as reference.
234+
Create a new [GitHub release](https://github.com/deephaven/deephaven-core/releases/new) and use the `vX.Y` tag as reference.
235235

236-
The convention is to have the Release title of the form `vX.Y.Z` and to autogenerate the release notes in comparison to the previous release tag. Question: should we always generate release notes based off of the previous minor release, instead of patch? Our git release workflow suggests we may want to do it always minor to minor.
236+
The convention is to have the Release title of the form `vX.Y` and to autogenerate the release notes in comparison to the previous release tag.
237237

238238
Do not use Github's "Generate release notes" button. Use Cocogitto to generate the release notes and copy the result into the text box.
239239

240240
```shell
241-
cog changelog vX.Y.0..vX.Y.1
241+
cog changelog vX.0..vX.1
242242
```
243243

244244
Upload the Deephaven server application, deephaven-core wheel, pydeephaven wheel, pydeephaven-ticking wheels, @deephaven/jsapi-types tarball, and SBOM artifacts. Also, upload the C++, Java, Python, R and TypeScript docs artifacts.
@@ -251,16 +251,18 @@ Hit the GitHub "Publish release" button.
251251
The go client release consists of simply tagging and pushing to upstream:
252252

253253
```shell
254-
$ git tag -a -m "[Release] Deephaven Go Client X.Y.Z" go/vX.Y.Z release/vX.Y.Z
255-
$ git show go/vX.Y.Z
256-
$ git push upstream go/vX.Y.Z
254+
$ git tag -a -m "[Release] Deephaven Go Client X.Y.0" go/vX.Y.0 release/vX.Y
255+
$ git show go/vX.Y.0
256+
$ git push upstream go/vX.Y.0
257257
```
258258

259+
Note that [go requires](https://go.dev/blog/publishing-go-modules#semantic-versions-and-modules) the version part of the tag to adhere to semantic versioning.
260+
259261
### 11. Deephaven.io release
260262

261263
Verify that [Reference API Docs](https://deephaven.io/core/docs/#reference-guides) point to the latest version and that
262-
version X.Y.Z is present. _(In the case of a patch on an old release, this may not be the version just built.)_
263-
- ex. https://deephaven.io/core/release/vX.Y.Z/javadoc
264+
version X.Y is present. _(In the case of a patch on an old release, this may not be the version just built.)_
265+
- ex. https://deephaven.io/core/release/vX.Y/javadoc
264266
- ex. https://deephaven.io/core/javadoc
265267

266268
The (non-public) [deephaven.io](https://github.com/deephaven/deephaven.io) `next` branch needs to be merged into `main`. Ping Margaret.
@@ -280,7 +282,7 @@ Sometime after a release, old release branches can be safely deleted.
280282

281283
### 15. Version bump in preparation of the next release.
282284

283-
Say we just did release `0.31.0`. The next expected release is `0.32.0` We update the repository with a bump to all files that
285+
Say we just did release `31.0`. The next expected release is `32.0` We update the repository with a bump to all files that
284286
mention the version explicitly. These files are listed below:
285287

286288
```
@@ -295,7 +297,7 @@ cpp-client/deephaven/CMakeLists.txt
295297
This leaves the files "ready" for the next regular release, and also ensures any build done from
296298
a developer for testing of latest is not confused with the code just released.
297299

298-
In the case of a patch release these would need to be updated to a different version, like from `0.31.0` to `0.31.1`.
300+
In the case of a minor release these would need to be updated to a different version, like from `31.0` to `31.1`.
299301

300302
## External dependencies
301303

buildSrc/src/main/groovy/io.deephaven.common-conventions.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ plugins {
66

77
group = 'io.deephaven'
88

9-
def deephavenBaseVersion = project.property('deephavenBaseVersion').toString().trim()
9+
def deephavenMajorVersion = project.property('deephavenMajorVersion').toString().trim()
10+
def deephavenMinorVersion = project.property('deephavenMinorVersion').toString().trim()
1011
def deephavenBaseQualifier = project.property('deephavenBaseQualifier').toString().trim()
1112
def versionSeparator = deephavenBaseQualifier.isEmpty() ? "" : "-"
12-
version = "${deephavenBaseVersion}${versionSeparator}${deephavenBaseQualifier}"
13+
version = "${deephavenMajorVersion}.${deephavenMinorVersion}${versionSeparator}${deephavenBaseQualifier}"
1314

1415
if (!name.startsWith('deephaven-')) {
1516
base.archivesName.set "deephaven-${name}"

cpp-client/deephaven/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ endif()
88

99
project(deephaven)
1010

11-
set(deephaven_VERSION 0.41.0)
11+
set(deephaven_VERSION 41.0)
1212
set(CMAKE_CXX_STANDARD 17)
1313

1414
# for CMAKE_INSTALL_{dir}

gradle.properties

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
# This structure gives DHC and re-builders control over the version. When deephavenBaseQualifier is non-empty, the
2-
# project version will be "${deephavenBaseVersion}-${deephavenBaseQualifier}". When deephavenBaseQualifier is empty, the
3-
# project version will be deephavenBaseVersion.
2+
# project version will be "${deephavenMajorVersion}.{$deephavenMinorVersion}-${deephavenBaseQualifier}". When
3+
# deephavenBaseQualifier is empty, the project version will be "${deephavenMajorVersion}.{$deephavenMinorVersion}".
44
#
5-
# The default values will represent the in-development version for the next release: "X.Y.Z-SNAPSHOT".
5+
# The default values will represent the in-development version for the next release: "X.Y-SNAPSHOT".
66
#
7-
# During the normal DHC release process, the publishing code will set -PdeephavenBaseQualifier="": "X.Y.Z".
7+
# During the normal DHC release process, the publishing code will set -PdeephavenBaseQualifier="": "X.Y".
88
#
9-
# Re-builders who want to inherit the base version, but have their own qualifier can set -PdeephavenBaseQualifier="customQualifier": "X.Y.Z-customQualifier".
9+
# Re-builders who want to inherit the base version, but have their own qualifier can set -PdeephavenBaseQualifier="customQualifier": "X.Y-customQualifier".
1010
#
11-
# Re-builders who want a fully custom version can set -PdeephavenBaseVersion="customVersion" -PdeephavenBaseQualifier="": "customVersion".
12-
deephavenBaseVersion=0.41.0
11+
# Re-builders who want a fully custom version can set -PdeephavenMajorVersion="X" -PdeephavenMinorVersion="Y" -PdeephavenBaseQualifier="": "customVersion".
12+
deephavenMajorVersion=41
13+
deephavenMinorVersion=0
1314
deephavenBaseQualifier=SNAPSHOT
1415

1516
#org.gradle.debug

py/client-ticking/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Then install the package.
9696
Note: the actual name of the `.whl` file may be different depending on system details.
9797

9898
```sh
99-
pip3 install --force --no-deps dist/pydeephaven_ticking-<x.y.z>-cp310-cp310-linux_x86_64.whl
99+
pip3 install --force --no-deps dist/pydeephaven_ticking-<x.y>-cp310-cp310-linux_x86_64.whl
100100
```
101101

102102
The `--force` flag is required to overwrite any previously-built version of the package that might

py/client/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ $ python3 -m examples.demo_asof_join
6666
Note the actual name of the `.whl` file may be different depending on system details.
6767

6868
``` shell
69-
$ pip3 install dist/pydeephaven-<x.y.z>-py3-none-any.whl
69+
$ pip3 install dist/pydeephaven-<x.y>-py3-none-any.whl
7070
```
7171
## Quick start
7272

web/client-api/types/build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,12 @@ dependencies {
1212
dts project(path: ':web-client-api', configuration: 'dts')
1313
}
1414

15-
// Apply our temporary convention until dhc hits 1.0.0
16-
def npmVersion = '1.0.0-dev' + project.property('deephavenBaseVersion').toString().trim()
15+
// https://docs.npmjs.com/cli/v11/configuring-npm/package-json#version
16+
// npm requires the version string be parseable as a semver, so we'll unconditionally change the deephaven version 'X.Y'
17+
// to 'X.Y.0'
18+
def deephavenMajorVersion = project.property('deephavenMajorVersion').toString().trim()
19+
def deephavenMinorVersion = project.property('deephavenMinorVersion').toString().trim()
20+
def npmVersion = "${deephavenMajorVersion}.${deephavenMinorVersion}.0".toString()
1721
def preId = project.findProperty('npmPreid')// i.e. 'nightly'
1822
if (preId) {
1923
npmVersion += preId + new Date().format("yyyyMMdd")

0 commit comments

Comments
 (0)