You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Ensure you are up-to-date with `upstream/main`, or at the commit that you want to start a new release from.
96
96
If you are unsure what commit to start from, please ask.
97
97
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.
99
99
We also separate out the release branch from `upstream/main` with an empty commit (this isn't a technical requirement).
$ 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"
107
107
```
108
108
109
-
#### Procedure for patch releases
109
+
#### Procedure for minor releases
110
110
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
113
113
below).
114
114
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`:
116
116
117
117
```shell
118
118
$ 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
121
121
$ git cherry-pick <...>
122
122
#
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.
124
124
#
125
125
# Look in the last section "Version bump in preparation of next release" for a list of
126
126
# files to update to the right version you are producing.
127
127
#
128
128
# See https://github.com/deephaven/deephaven-core/issues/3466 for future improvements to this process.
# Compare output to expected PR list for missing or extraneous PRs
134
134
```
@@ -141,16 +141,16 @@ It's also best practice to ensure that the cherry-picks compile, as there can so
141
141
Triple-check things look correct, the release is a "GO", and then start the release process by pushing the release branch to upstream:
142
142
143
143
```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
146
146
```
147
147
148
148
Note: release branches are _not_ typically merged back into `main`.
149
149
150
150
### 4. Monitor release
151
151
152
152
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).
154
154
155
155
The "Publish" step creates the artifacts and publishes the jars to a [Maven Central Portal staging repository](https://central.sonatype.com/).
156
156
@@ -189,14 +189,14 @@ If you are unable to use these tools, it is possible for somebody else to do thi
189
189
The following tools are used: [syft](https://github.com/anchore/syft), [cyclonedx](https://github.com/CycloneDX/cyclonedx-cli).
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.
219
219
220
220
### 8. Tag upstream
221
221
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.
223
223
It does not kick off any additional jobs.
224
224
The release should only be tagged _after_ the Maven Central staging repository has been "Released".
225
225
226
226
```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
230
230
```
231
231
232
232
### 9. GitHub release
233
233
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.
235
235
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.
237
237
238
238
Do not use Github's "Generate release notes" button. Use Cocogitto to generate the release notes and copy the result into the text box.
239
239
240
240
```shell
241
-
cog changelog vX.Y.0..vX.Y.1
241
+
cog changelog vX.0..vX.1
242
242
```
243
243
244
244
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.
251
251
The go client release consists of simply tagging and pushing to upstream:
252
252
253
253
```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
257
257
```
258
258
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
+
259
261
### 11. Deephaven.io release
260
262
261
263
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.)_
Copy file name to clipboardExpand all lines: gradle.properties
+8-7Lines changed: 8 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,16 @@
1
1
# 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}".
4
4
#
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".
6
6
#
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".
8
8
#
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".
10
10
#
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".
0 commit comments