diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6e30a7c2c08..8fa563e9661 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,7 +8,7 @@ Changes by Version
next release template
-next release (yyyy-mm-dd)
+next release v1.x.x / v2.x.x-rcx (yyyy-mm-dd)
-------------------
### Backend Changes
@@ -17,11 +17,72 @@ run `make changelog` to generate content
### 📊 UI Changes
-...
+copy from UI changelog
-1.60.0 (2024-08-06)
+1.61.0 / 2.0.0-rc1 (2024-09-14)
+-------------------
+
+### Backend Changes
+
+This release contains an official pre-release candidate of Jaeger v2, as binary and Docker image `jaeger`.
+
+#### ⛔ Breaking Changes
+
+* Remove support for cassandra 3.x and add cassandra 5.x ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#5962](https://github.com/jaegertracing/jaeger/pull/5962))
+
+#### 🐞 Bug fixes, Minor Improvements
+
+* Fix: the 'tagtype' in es jaeger-span mapping tags.properties should be 'type' ([@chinaran](https://github.com/chinaran) in [#5980](https://github.com/jaegertracing/jaeger/pull/5980))
+* Add readme for adaptive sampling ([@yurishkuro](https://github.com/yurishkuro) in [#5955](https://github.com/jaegertracing/jaeger/pull/5955))
+* [adaptive sampling] clean-up after previous refactoring ([@yurishkuro](https://github.com/yurishkuro) in [#5954](https://github.com/jaegertracing/jaeger/pull/5954))
+* [adaptive processor] remove redundant function ([@yurishkuro](https://github.com/yurishkuro) in [#5953](https://github.com/jaegertracing/jaeger/pull/5953))
+* [jaeger-v2] consolidate options and namespaceconfig for badger storage ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#5937](https://github.com/jaegertracing/jaeger/pull/5937))
+* Remove unused "namespace" field from badger config ([@yurishkuro](https://github.com/yurishkuro) in [#5929](https://github.com/jaegertracing/jaeger/pull/5929))
+* Simplify bundling of ui assets ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#5917](https://github.com/jaegertracing/jaeger/pull/5917))
+* Clean up grpc storage config ([@yurishkuro](https://github.com/yurishkuro) in [#5877](https://github.com/jaegertracing/jaeger/pull/5877))
+* Add script to replace apache headers with spdx ([@thecaffeinedev](https://github.com/thecaffeinedev) in [#5808](https://github.com/jaegertracing/jaeger/pull/5808))
+* Add copyright/license headers to script files ([@Zen-cronic](https://github.com/Zen-cronic) in [#5829](https://github.com/jaegertracing/jaeger/pull/5829))
+* Clearer output from lint scripts ([@yurishkuro](https://github.com/yurishkuro) in [#5820](https://github.com/jaegertracing/jaeger/pull/5820))
+
+#### 🚧 Experimental Features
+
+* [jaeger-v2] add validation and comments to badger storage config ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#5927](https://github.com/jaegertracing/jaeger/pull/5927))
+* [jaeger-v2] add validation and comments to memory storage config ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#5925](https://github.com/jaegertracing/jaeger/pull/5925))
+* Support tail based sampling processor from otel collector extension ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#5878](https://github.com/jaegertracing/jaeger/pull/5878))
+* [v2] configure health check extension for all configs ([@Wise-Wizard](https://github.com/Wise-Wizard) in [#5861](https://github.com/jaegertracing/jaeger/pull/5861))
+* [v2] add legacy formats into e2e kafka integration tests ([@joeyyy09](https://github.com/joeyyy09) in [#5824](https://github.com/jaegertracing/jaeger/pull/5824))
+* [v2] configure healthcheck extension ([@Wise-Wizard](https://github.com/Wise-Wizard) in [#5831](https://github.com/jaegertracing/jaeger/pull/5831))
+* Added _total suffix to otel counter metrics. ([@Wise-Wizard](https://github.com/Wise-Wizard) in [#5810](https://github.com/jaegertracing/jaeger/pull/5810))
+
+#### 👷 CI Improvements
+
+* Release v2 cleanup 3 ([@yurishkuro](https://github.com/yurishkuro) in [#5984](https://github.com/jaegertracing/jaeger/pull/5984))
+* Replace loopvar linter ([@anishbista60](https://github.com/anishbista60) in [#5976](https://github.com/jaegertracing/jaeger/pull/5976))
+* Stop using v1 and v1.x tags for docker images ([@yurishkuro](https://github.com/yurishkuro) in [#5956](https://github.com/jaegertracing/jaeger/pull/5956))
+* V2 repease prep ([@yurishkuro](https://github.com/yurishkuro) in [#5932](https://github.com/jaegertracing/jaeger/pull/5932))
+* Normalize build-binaries targets ([@yurishkuro](https://github.com/yurishkuro) in [#5924](https://github.com/jaegertracing/jaeger/pull/5924))
+* Fix integration test log dumping for storage backends ([@mahadzaryab1](https://github.com/mahadzaryab1) in [#5915](https://github.com/jaegertracing/jaeger/pull/5915))
+* Add jaeger-v2 binary as new release artifact ([@renovate-bot](https://github.com/renovate-bot) in [#5893](https://github.com/jaegertracing/jaeger/pull/5893))
+* [ci] add support for v2 tags during build ([@yurishkuro](https://github.com/yurishkuro) in [#5890](https://github.com/jaegertracing/jaeger/pull/5890))
+* Add hardcoded db password and username to cassandra integration test ([@Ali-Alnosairi](https://github.com/Ali-Alnosairi) in [#5805](https://github.com/jaegertracing/jaeger/pull/5805))
+* Define contents permissions on "dependabot validate" workflow ([@mmorel-35](https://github.com/mmorel-35) in [#5874](https://github.com/jaegertracing/jaeger/pull/5874))
+* [fix] print kafka logs on test failure ([@joeyyy09](https://github.com/joeyyy09) in [#5873](https://github.com/jaegertracing/jaeger/pull/5873))
+* Pin github actions dependencies ([@harshitasao](https://github.com/harshitasao) in [#5860](https://github.com/jaegertracing/jaeger/pull/5860))
+* Add go.mod for docker debug image ([@hellspawn679](https://github.com/hellspawn679) in [#5852](https://github.com/jaegertracing/jaeger/pull/5852))
+* Enable lint rule: redefines-builtin-id ([@ZXYxc](https://github.com/ZXYxc) in [#5791](https://github.com/jaegertracing/jaeger/pull/5791))
+* Require manual go version updates for patch versions ([@wasup-yash](https://github.com/wasup-yash) in [#5848](https://github.com/jaegertracing/jaeger/pull/5848))
+* Clean up obselete 'version' tag from docker-compose files ([@vvs-personalstash](https://github.com/vvs-personalstash) in [#5826](https://github.com/jaegertracing/jaeger/pull/5826))
+* Update expected codecov flags count to 19 ([@yurishkuro](https://github.com/yurishkuro) in [#5811](https://github.com/jaegertracing/jaeger/pull/5811))
+
+
+### 📊 UI Changes
+
+Dependencies upgrades only.
+
+
+1.60.0 / 2.0.0-rc0 (2024-08-06)
-------------------
### Backend Changes
diff --git a/RELEASE.md b/RELEASE.md
index 620784fa7a6..ac6670f6c2f 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -1,11 +1,21 @@
+# Jaeger Overall Release Process
+
+1. Determine new version numbers for v1.x.x and v2.x.x-rcN
+ * v2 version is currently in the form v2.0.0-rcN where N is the next number since the last release.
+2. Perform UI release according to https://github.com/jaegertracing/jaeger-ui/blob/main/RELEASE.md
+3. Perform Backend release (see below)
+4. [Publish documentation](https://github.com/jaegertracing/documentation/blob/main/RELEASE.md) for the new version on `jaegertracing.io`.
+ 1. Check that [jaegertracing.io](https://www.jaegertracing.io/docs/latest) redirects to the new documentation release version URL.
+ 2. For monitoring and troubleshooting, refer to the [jaegertracing/documentation Github Actions tab](https://github.com/jaegertracing/documentation/actions).
+5. Announce the release on the [mailing list](https://groups.google.com/g/jaeger-tracing), [slack](https://cloud-native.slack.com/archives/CGG7NFUJ3), and [twitter](https://twitter.com/JaegerTracing?lang=en).
+
# Jaeger Backend Release Process
-1. Create a PR "Prepare release X.Y.Z" against main or maintenance branch ([example](https://github.com/jaegertracing/jaeger/pull/543/files)) by updating CHANGELOG.md to include:
- * A new section with the header ` (YYYY-MM-DD)` (copy the template at the top)
+1. Create a PR "Prepare release 1.x.x / 2.x.x-rcN" against main or maintenance branch ([example](https://github.com/jaegertracing/jaeger/pull/543/files)) by updating CHANGELOG.md to include:
+ * A new section with the header `1.x.x / 2.x.x-rcN (YYYY-MM-DD)` (copy the template at the top)
* A curated list of notable changes and links to PRs. Do not simply dump git log, select the changes that affect the users.
To obtain the list of all changes run `make changelog`.
* The section can be split into sub-section if necessary, e.g. UI Changes, Backend Changes, Bug Fixes, etc.
- * If the jaeger-ui submodule has changes cut a new release
* Then upgrade the submodule versions and finally commit. For example:
```
git submodule init
@@ -13,36 +23,44 @@
cd jaeger-ui
git checkout main
git pull
- git checkout {new_version} //e.g. v1.5.0
+ git checkout {new_ui_version} //e.g. v1.5.0
```
+ * If there are only dependency bumps, indicate this with "Dependencies upgrades only" ([example](https://github.com/jaegertracing/jaeger-ui/pull/2431/files)).
* If there are no changes, indicate this with "No changes" ([example](https://github.com/jaegertracing/jaeger/pull/4131/files)).
* Rotate the below release managers table placing yourself at the bottom. The date should be the first Wednesday of the month.
-2. After the PR is merged, create a release on Github:
+ * Add label `changelog:skip` to the pull request.
+2. After the PR is merged, create new release tags:
+ ```
+ git checkout main
+ git pull
+ git tag v1... -s # use the new version
+ git tag v2... -s # use the new version
+ git push upstream v1... v2...
+ ```
+3. Create a release on Github:
* Automated:
* `make draft-release`
* Manual:
- * Title "Release X.Y.Z"
- * Tag `vX.Y.Z` (note the `v` prefix) and choose appropriate branch
+ * Title "Release 1.x.x / 2.x.x-rcN"
+ * Tag `v1.x.x` (note the `v` prefix) and choose appropriate branch (usually `main`)
* Copy the new CHANGELOG.md section into the release notes
* Extra: GitHub has a button "generate release notes". Those are not formatted as we want,
but it has a nice feature of explicitly listing first-time contributors.
Before doing the previous step, you can click that button and then remove everything
except the New Contributors section. Change the header to `### 👏 New Contributors`,
then copy the main changelog above it. [Example](https://github.com/jaegertracing/jaeger/releases/tag/v1.55.0).
-3. The release tag will trigger a build of the docker images. Since forks don't have jaegertracingbot dockerhub token, they can never publish images to jaegertracing organisation.
- 1. Check the images are available on [Docker Hub](https://hub.docker.com/r/jaegertracing/).
- 2. For monitoring and troubleshooting, refer to the [jaegertracing/jaeger GithubActions tab](https://github.com/jaegertracing/jaeger/actions).
-4. [Publish documentation](https://github.com/jaegertracing/documentation/blob/main/RELEASE.md) for the new version in [jaegertracing.io](https://www.jaegertracing.io/docs/latest).
- 1. Check [jaegertracing.io](https://www.jaegertracing.io/docs/latest) redirects to the new documentation release version URL.
- 2. For monitoring and troubleshooting, refer to the [jaegertracing/documentation GithubActions tab](https://github.com/jaegertracing/documentation/actions).
-5. Announce the release on the [mailing list](https://groups.google.com/g/jaeger-tracing), [slack](https://cloud-native.slack.com/archives/CGG7NFUJ3), and [twitter](https://twitter.com/JaegerTracing?lang=en).
-
-Maintenance branches should follow naming convention: `release-major.minor` (e.g.`release-1.8`).
+4. Go to [Publish Release](https://github.com/jaegertracing/jaeger/actions/workflows/ci-release.yml) workflow on GitHub
+ and run it manually using Run Workflow button on the right.
+ 1. For monitoring and troubleshooting, open the logs of the workflow run from above URL.
+ 2. Check the images are available on [Docker Hub](https://hub.docker.com/r/jaegertracing/)
+ and binaries are uploaded [to the release]()https://github.com/jaegertracing/jaeger/releases.
## Patch Release
Sometimes we need to do a patch release, e.g. to fix a newly introduced bug. If the main branch already contains newer changes, it is recommended that a patch release is done from a version branch.
+Maintenance branches should follow naming convention: `release-major.minor` (e.g.`release-1.8`).
+
1. Find the commit in `main` for the release you want to patch (e.g., `a49094c2` for v1.34.0).
2. `git checkout ${commit}; git checkout -b ${branch-name}`. The branch name should be in the form `release-major.minor`, e.g., `release-1.34`. Push the branch to the upstream repository.
3. Apply fixes to the branch. The recommended way is to merge the fixes into `main` first and then cherry-pick them into the version branch (e.g., `git cherry-pick c733708c` for the fix going into `v1.34.1`).
@@ -61,8 +79,8 @@ Here are the release managers for future versions with the tentative release dat
| Version | Release Manager | Tentative release date |
|---------|-----------------|------------------------|
-| 1.61.0 | @yurishkuro | 3 September 2024 |
| 1.62.0 | @albertteoh | 2 October 2024 |
| 1.63.0 | @pavolloffay | 5 November 2024 |
| 1.64.0 | @joe-elliott | 4 December 2024 |
| 1.65.0 | @jkowall | 8 January 2025 |
+| 1.66.0 | @yurishkuro | 3 February 2024 |
diff --git a/scripts/draft-release.py b/scripts/draft-release.py
index 2d33647158c..2faa478bdff 100755
--- a/scripts/draft-release.py
+++ b/scripts/draft-release.py
@@ -8,19 +8,29 @@
import subprocess
-release_header_pattern = re.compile(r".*(\d+\.\d+\.\d) \(\d{4}-\d{2}-\d{2}\)", flags=0)
+release_header_pattern = re.compile(
+ r".*(1\.\d+\.\d+) */ *(2\.\d+\.\d+-rc\d+) \(\d{4}-\d{2}-\d{2}\)", flags=0
+)
underline_pattern = re.compile(r"^[-]+$", flags=0)
def main(title, repo):
- changelog_text, version = get_changelog()
+ changelog_text, version_v1, version_v2 = get_changelog()
print(changelog_text)
output_string = subprocess.check_output(
- ["gh", "release", "create", f"v{version}",
- "--draft",
- "--title", f"{title} v{version}",
- "--repo", f"jaegertracing/{repo}",
- "-F", "-"],
+ [
+ "gh",
+ "release",
+ "create",
+ f"v{version_v1}",
+ "--draft",
+ "--title",
+ f"{title} v{version_v1} / v{version_v2}",
+ "--repo",
+ f"jaegertracing/{repo}",
+ "-F",
+ "-",
+ ],
input=changelog_text,
text=True,
)
@@ -40,7 +50,8 @@ def get_changelog():
# Found the first release.
if not in_changelog_text:
in_changelog_text = True
- version = release_header_match.group(1)
+ version_v1 = release_header_match.group(1)
+ version_v2 = release_header_match.group(2)
else:
# Found the next release.
break
@@ -51,16 +62,26 @@ def get_changelog():
elif in_changelog_text:
changelog_text += line
- return changelog_text, version
+ return changelog_text, version_v1, version_v2
if __name__ == "__main__":
- parser = argparse.ArgumentParser(description='List changes based on git log for release notes.')
+ parser = argparse.ArgumentParser(
+ description="List changes based on git log for release notes."
+ )
- parser.add_argument('--title', type=str, default='Release',
- help='The title of the release. (default: Release)')
- parser.add_argument('--repo', type=str, default='jaeger',
- help='The repository name where the draft release will be created. (default: jaeger)')
+ parser.add_argument(
+ "--title",
+ type=str,
+ default="Release",
+ help="The title of the release. (default: Release)",
+ )
+ parser.add_argument(
+ "--repo",
+ type=str,
+ default="jaeger",
+ help="The repository name where the draft release will be created. (default: jaeger)",
+ )
args = parser.parse_args()