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
Copy file name to clipboardExpand all lines: VERSIONING_AND_RELEASING.md
+64-57Lines changed: 64 additions & 57 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,8 +58,7 @@ We use only two clearly defined forms of `PRERELEASE` label:
58
58
59
59
A nightly build is similar to a snapshot, except it is automatically built from the latest source code and released once daily. To help distinguish between one day's nightly build and the next's, a 5-component Semantic Versioning version number is used for nightly builds' filenames: "`MAJOR`**.**`MINOR`**.**`PATCH`**-**`PRERELEASE`**+**`BUILD`. We follow Semantic Versioning's definitions for the `BUILD` label scheme:
60
60
61
-
*`BUILD` is a series of dot separated identifiers, each identifier must use only ASCII alphanumerics and hyphen [0-9A-Za-z-]
62
-
and must be empty. Build metadata SHOULD be ignored when determining version precedence.
61
+
*`BUILD` is a series of dot separated identifiers, each identifier must use only ASCII alphanumerics and hyphen [0-9A-Za-z-] and must be empty. Build metadata SHOULD be ignored when determining version precedence.
63
62
64
63
* The presence of `BUILD` indicates that the version is pre-release and not yet considered stable. Product releases do not have `BUILD`.
65
64
@@ -78,7 +77,7 @@ It is trivial for a developer to relate a timestamp back to a Git hash (by using
78
77
### Where the version number is stored
79
78
80
79
The version number is stored in the `exist-parent/pom.xml` file, in a single property, `<version>`. The Semantic Versioning number `8.0.0-SNAPSHOT` would be stored as follows:
81
-
```
80
+
```xml
82
81
<version>8.0.0-SNAPSHOT</version>
83
82
```
84
83
@@ -95,91 +94,95 @@ You will require a system with:
95
94
* macOS
96
95
* JDK 8
97
96
* Maven 3.6.0+
97
+
* Python 3 with Pip
98
98
* Docker
99
99
* GnuPG
100
100
* A GPG key (for signing release artifacts)
101
101
* A Java KeyStore with key (for signing IzPack Installer)
102
102
* A valid Apple Developer Certificate (for signing Mac DMG)
103
-
* A GitHub account and username / password or GitHub Personal access tokens (https://github.com/settings/tokens) with permission to publish GitHub releases to the Elemental repository.
103
+
* A GitHub account and Personal Access Token (https://github.com/settings/tokens) with permission to publish GitHub releases to the Elemental repository.
104
104
105
105
1. You will need login credentials for the Elemental organisation on:
106
-
1. Sonatype OSS staging for Maven Central - https://oss.sonatype.org/
106
+
1. Sonatype Portal for Maven Central - https://central.sonatype.com/publishing/deployments
2. You will need your GPG Key, Java KeyStore, and Apple Notarization API credentials for signing the release artifacts in the `<activeProfiles`> section on your machine in your local `~/.m2/settings.xml` file, e.g.:
[INFO] Verifying that there are no local modifications...
@@ -192,13 +195,17 @@ You will require a system with:
192
195
What is the new development version for "Elemental"? (xyz.elemental:elemental) 6.6.0-SNAPSHOT: :
193
196
```
194
197
195
-
6. Once the prepare process completes you can perform the release. This will upload Maven Artifacts to Maven
196
-
Central (staging), Docker images to Docker Hub, and Elemental distributions and installer to GitHub releases:
197
-
```
198
+
6. Once the prepare process completes you can perform the release. This will upload Maven Artifacts to Maven Central (staging), Docker images to Docker Hub, and Elemental distributions and installer to GitHub releases:
7. Update the stable branch (`gold`) of Elemental to reflect the latest release:
203
+
7. You now need to request the artifacts to be moved from the Portal OSSRH Staging API to the Maven Central staging area:
204
+
```bash
205
+
$ curl -vv -X POST -H "Authorization: Bearer your-bearer-token-for-maven-central" https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/xyz.elemental
206
+
```
207
+
208
+
8. Update the stable branch (`gold`) of Elemental to reflect the latest release:
202
209
```bash
203
210
$ git push origin elemental-6.5.0:gold
204
211
```
@@ -208,7 +215,7 @@ Central (staging), Docker images to Docker Hub, and Elemental distributions and
208
215
209
216
2. Check that the new versions are visible on [DockerHub](https://hub.docker.com/r/evolvedbinary/elemental).
210
217
211
-
3. Login to https://oss.sonatype.org and release the Maven artifacts to Maven central as described [here](https://central.sonatype.org/pages/releasing-the-deployment.html).
218
+
3. Login to https://central.sonatype.com/publishing/deployments and release the Maven artifacts to Maven central as described [here](https://central.sonatype.org/publish/publish-portal-guide/).
212
219
213
220
4. Update the Mac HomeBrew for Elemental, see: [Releasing to Homebrew](https://github.com/evolvedbinary/elemental/blob/main/VERSIONING_AND_RELEASING.md#releasing-to-homebrew).
214
221
@@ -224,18 +231,18 @@ Central (staging), Docker images to Docker Hub, and Elemental distributions and
224
231
225
232
10. Update the Wikipedia page with the new version details - [https://en.wikipedia.org/wiki/Elemental](https://en.wikipedia.org/wiki/Elemental).
226
233
227
-
1Go to GitHub and move all issues and PRs which are still open for the release milestone to the next release milestone. Close the release milestone.
234
+
11. Go to GitHub and move all issues and PRs which are still open for the release milestone to the next release milestone. Close the release milestone.
228
235
229
236
230
237
### Releasing to Homebrew
231
238
[Homebrew](http://brew.sh) is a popular command-line package manager for macOS. Once Homebrew is installed, applications like Elemental can be installed via a simple command. Elemental's presence on Homebrew is found in the Caskroom project, as a "cask", at [https://github.com/caskroom/homebrew-cask/blob/master/Casks/elemental.rb](https://github.com/caskroom/homebrew-cask/blob/master/Casks/elemental.rb).
232
239
233
240
**Terminology:** "Homebrew Cask" is the segment of Homebrew where pre-built binaries and GUI applications go, whereas the original "Homebrew" project is reserved for command-line utilities that can be built from source. Because the macOS version of Elemental is released as an app bundle with GUI components, it is handled as a Homebrew Cask.
234
241
235
-
When there is a new release, registering the new release with Homebrew can be easily accomplished using Homebrew's `brew bump-cask-pr` command. Full directions for this utility as well as procedures for more complex PRs can be found on [the Homebrew Cask CONTRIBUTING page](https://github.com/Homebrew/homebrew-cask/blob/master/CONTRIBUTING.md), but, a simple version bump is a one-line command. For example, to update Homebrew's version of Elemental to 6.4.0, use this command:
242
+
When there is a new release, registering the new release with Homebrew can be easily accomplished using Homebrew's `brew bump-cask-pr` command. Full directions for this utility as well as procedures for more complex PRs can be found on [the Homebrew Cask CONTRIBUTING page](https://github.com/Homebrew/homebrew-cask/blob/master/CONTRIBUTING.md), but, a simple version bump is a one-line command. For example, to update Homebrew's version of Elemental to 6.5.0, use this command:
236
243
237
-
```
238
-
brew bump-cask-pr --version 6.4.0 elemental
244
+
```bash
245
+
brew bump-cask-pr --version 6.5.0 elemental
239
246
```
240
247
241
-
This command will cause your local Homebrew installation to download the new version of Elemental, calculate the installer's new SHA-256 fingerprint value, and construct a pull request under your GitHub account, like [this one](https://github.com/Homebrew/homebrew-cask/pull/107778). Once the pull request is submitted, continuous integration tests will run, and a member of the Homebrew community will review the PR. At times there is a backlog on the CI servers, but once tests pass, the community review is typically completed in a matter of hours.
248
+
This command will cause your local Homebrew installation to download the new version of Elemental, calculate the installer's new SHA-256 fingerprint value, and construct a pull request under your GitHub account, like [this one](https://github.com/Homebrew/homebrew-cask/pull/210264). Once the pull request is submitted, continuous integration tests will run, and a member of the Homebrew community will review the PR. At times there is a backlog on the CI servers, but once tests pass, the community review is typically completed in a matter of hours.
0 commit comments