From e3da10ea2cf0c43c706d0478239966f1dc158986 Mon Sep 17 00:00:00 2001 From: Nathan Leniz Date: Wed, 13 Nov 2024 08:25:26 -0800 Subject: [PATCH 1/7] SQL-2463: update release instructions --- RELEASE.md | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index efd8d5e5..700a137a 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,23 +1,25 @@ # Versioning + Version number policy could be referred from here: https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN8855 Among all the version standards Maven supports, we will use MajorVersion, IncrementalVersion and Qualifier inside this project. -The current version number is specified inside `gradle.properties` file. +The current version number is specified inside `gradle.properties` file. -# Release Process +## Release Process -## Snapshot Versions +### Snapshot Versions Every successful untagged build in evergreen will release the artifacts to the Sonatype SNAPSHOT repo in https://oss.sonatype.org/#view-repositories;snapshots~browsestorage -## Release Versions +### Release Versions Follow these instructions for creating a Release Version. ### Pre-Release Tasks #### Determine the correct version to be released + Go to the [SQL releases page](https://jira.mongodb.org/projects/SQL?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased), and check the content of the tickets that are included in the current release. The fix version by default is a patch version. If there is a backwards incompatible API change in the tickets that are set to be released, we should instead update the major version; if there are new features added in the tickets set to be released, we should instead update the minor version. To do so, update the version on the [SQL releases page](https://jira.mongodb.org/projects/SQL?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased) under "Actions". This will update the fix version on all of the tickets as well. #### Start Release Ticket @@ -40,11 +42,17 @@ Close the release on JIRA, adding the current date (you may need to ask the SQL Ensure you have the `master` branch checked out, and that you have pulled the latest commit from `mongodb/mongo-jdbc-driver`. #### Create the tag and push + +To determine which version of [`libmongosqltranslate`](https://github.com/10gen/mongosql-rs) to build with the release, the version +tag must be annotated with `libv`. + Create an annotated tag and push it: -``` -git tag -a -m X.Y.Z vX.Y.Z + +```sh +git tag -a -m X.Y.Z-alpha-1-libvX.Y.Z-alpha vX.Y.Z-alpha-1-libvX.Y.Z-alpha git push --tags ``` + This should trigger an Evergreen version that can be viewed on the [mongo-jdbc-driver waterfall](https://evergreen.mongodb.com/waterfall/mongo-jdbc-driver). If it does not, you may have to ask the project manager to give you the right permissions to do so. Make sure to run the 'release' task, if it is not run automatically. @@ -60,12 +68,12 @@ priority. #### Wait for evergreen Wait for the evergreen version to finish, and ensure that the release task completes successfully. -#### Verify release artifacts -Check that the version just released is available in the [Sonatype Nexus Repo Manager](https://oss.sonatype.org/#nexus-search;quick~mongodb-jdbc). +#### Verify release artifacts (ignore for EAP) +Check that the version just released is available in the [Sonatype Nexus Repo Manager](https://oss.sonatype.org/#nexus-search;quick~mongodb-jdbc). The release artifacts should appear on [Maven Central](https://search.maven.org/search?q=g:org.mongodb%20AND%20a:mongodb-jdbc) after a while. -#### Notify the Web team about the new release -Create a ticket through the [service desk](https://jira.mongodb.org/plugins/servlet/desk/portal/61/create/926) and request the link for the `Download from Maven` button on the Download Center page `https://www.mongodb.com/try/download/jdbc-driver` to be updated. +#### Notify the Web team about the new release (ignore for EAP) +Create a ticket through the [service desk](https://jira.mongodb.org/plugins/servlet/desk/portal/61/create/926) and request the link for the `Download from Maven` button on the Download Center page `https://www.mongodb.com/try/download/jdbc-driver` to be updated. You can find the new link in the [json feed](https://translators-connectors-releases.s3.amazonaws.com/mongo-jdbc-driver/mongo-jdbc-downloads.json) under `versions[0].download_link`. Include this link in your ticket. #### Close Release Ticket From f16772e8bdb12f021a79c24cb6668ef6c2c98eb2 Mon Sep 17 00:00:00 2001 From: Nathan Leniz Date: Wed, 13 Nov 2024 08:38:14 -0800 Subject: [PATCH 2/7] change pr base From 3703e74507ac1ccea5eaa9492477d09530622dec Mon Sep 17 00:00:00 2001 From: Nathan Leniz Date: Wed, 13 Nov 2024 09:47:16 -0800 Subject: [PATCH 3/7] remove files --- .evg.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.evg.yml b/.evg.yml index 08939c62..c53e26ac 100644 --- a/.evg.yml +++ b/.evg.yml @@ -1,6 +1,9 @@ stepback: true command_type: system +ignore: + - *.md + variables: - &assume_role_cmd command: ec2.assume_role From 4f92b04d178449ad49357fd332071d8c586d00a9 Mon Sep 17 00:00:00 2001 From: Nathan Leniz Date: Wed, 13 Nov 2024 09:52:26 -0800 Subject: [PATCH 4/7] add quotes --- .evg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.evg.yml b/.evg.yml index c53e26ac..f3cd4db1 100644 --- a/.evg.yml +++ b/.evg.yml @@ -2,7 +2,7 @@ stepback: true command_type: system ignore: - - *.md + - "*.md" variables: - &assume_role_cmd From 606657621a4d72d61d63da05c12e8fcc818f29db Mon Sep 17 00:00:00 2001 From: Nathan Leniz Date: Wed, 13 Nov 2024 10:47:57 -0800 Subject: [PATCH 5/7] wording change --- RELEASE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 700a137a..c301cadf 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -43,8 +43,8 @@ Ensure you have the `master` branch checked out, and that you have pulled the la #### Create the tag and push -To determine which version of [`libmongosqltranslate`](https://github.com/10gen/mongosql-rs) to build with the release, the version -tag must be annotated with `libv`. +To specify which version of [`libmongosqltranslate`](https://github.com/10gen/mongosql-rs) should be built with the release, the version +of `libmongosqltranslate` must be annotated in the git tag with `libv`. Create an annotated tag and push it: From 367b6c3c5cdd61168c0b02eabe897ac62cb2b4db Mon Sep 17 00:00:00 2001 From: Nathan Leniz Date: Thu, 14 Nov 2024 10:56:43 -0800 Subject: [PATCH 6/7] clarify tags --- RELEASE.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index c301cadf..ee498dc2 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -22,6 +22,9 @@ Follow these instructions for creating a Release Version. Go to the [SQL releases page](https://jira.mongodb.org/projects/SQL?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased), and check the content of the tickets that are included in the current release. The fix version by default is a patch version. If there is a backwards incompatible API change in the tickets that are set to be released, we should instead update the major version; if there are new features added in the tickets set to be released, we should instead update the minor version. To do so, update the version on the [SQL releases page](https://jira.mongodb.org/projects/SQL?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased) under "Actions". This will update the fix version on all of the tickets as well. +To determine which version of `libmongosqltranslate` to bundle, go to the [releases](https://jira.mongodb.org/projects/SQL?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page&status=released&contains=libv) page +and choose the latest **released** version. Add this fix version to the release ticket in JIRA. + #### Start Release Ticket Move the JIRA ticket for the release to the "In Progress" state. Ensure that its fixVersion matches the version being released, and update it if it changed in the previous step. @@ -43,13 +46,18 @@ Ensure you have the `master` branch checked out, and that you have pulled the la #### Create the tag and push +The tag is formatted as follows: + +`..[-]-libv..[-]` + To specify which version of [`libmongosqltranslate`](https://github.com/10gen/mongosql-rs) should be built with the release, the version -of `libmongosqltranslate` must be annotated in the git tag with `libv`. +of `libmongosqltranslate` must be annotated in the git tag with `libv`. This version was obtained previously when updating the release ticket. -Create an annotated tag and push it: +Create an annotated tag and push it (using the correct versions): ```sh -git tag -a -m X.Y.Z-alpha-1-libvX.Y.Z-alpha vX.Y.Z-alpha-1-libvX.Y.Z-alpha +# git tag -a -m X.Y.Z-alpha-1-libvX.Y.Z-alpha vX.Y.Z-alpha-1-libvX.Y.Z-alpha +git tag -am 3.0.0-alpha-2-libv1.0.0-alpha-3 git push --tags ``` From 2d7fbe1e37be3ad6306a903b214f35c66116b382 Mon Sep 17 00:00:00 2001 From: Nathan Leniz Date: Fri, 15 Nov 2024 10:58:36 -0800 Subject: [PATCH 7/7] clarify versioning --- RELEASE.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/RELEASE.md b/RELEASE.md index ee498dc2..77ed3455 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,5 +1,20 @@ # Versioning +## Versioning + +Versions will follow the [semantic versioning](https://semver.org/) system. + +The following guidelines will be used to determine when each version component will be updated: +- **major**: backwards-breaking changes +- **minor**: functionality added in a backwards compatible manner +- **patch**: backwards compatible bug fixes. +- **pre-release**: The pre-release version, used for preview builds and when updating a preview version of `libmongosqltranslate` +- **libv**: to specify which version of `libmongosqltranslate` gets bundled with the driver during a release + - Our build system will fetch *exactly* the version of `libmongosqltranslate` specified after `libv` and bundle it with the driver. If you are unsure + what version to use, check the [releases](https://jira.mongodb.org/projects/SQL?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page&status=released&contains=libv) page and use the latest **released** tag. + +### The following applies to non-eap releases + Version number policy could be referred from here: https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN8855 Among all the version standards Maven supports, we will use MajorVersion, IncrementalVersion and Qualifier inside this project.