Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[jaeger-v2] Release process #5889

Open
12 of 15 tasks
yurishkuro opened this issue Aug 26, 2024 · 0 comments
Open
12 of 15 tasks

[jaeger-v2] Release process #5889

yurishkuro opened this issue Aug 26, 2024 · 0 comments
Labels

Comments

@yurishkuro
Copy link
Member

yurishkuro commented Aug 26, 2024

We plan to continue supporting v1 components even after we release Jaeger v2, at least for a year. During that period we need to enhance our release process such that both v1 and v2 artifacts are published, as well as make the corresponding changes to the documentation.

Proposed release process:

  • We will continue releasing v1 and v2 components from a single main branch of jaeger repository
  • Each release will have two tags, a continuation of the existing 1.x version tags, and a new series of 2.x versions.
  • The 2.x versions will initially have the form 2.0.0-rcN and we will keep incrementing N.
  • There will be just a single combined release on GitHub, with both versions in the title, e.g. 2.0.0-rc1/1.61.0
  • The binary artifacts for v2 will be uploaded as a separate set of archives, each will include only the jaeger binary
    • That means the schema / rollover scripts are still going to be 1.x - we could reconsider that and bundle them into 2.x too
    • Going forward we want to get rid of schema / rollover scripts and incorporate them directly into the binary (e.g. Create database scheme in Cassandra automatically #5797)

Tasks:

  • change build info determination to allow for dual versions
  • implement ability to do a dry run of the release workflow
    • skip binary signing in scripts/package-deploy.sh or define temporary key
  • decide: should scripts receive versions as arguments or lookup the git tags directly?
  • consider changing release workflow to manual trigger. It can ask for two versions, validate their syntax and that they do not exist (if they do exist, it would require an additional override flag)
  • enable versioned release of jaeger v2 binary (we only release latest now)
    • compute-tags.sh does not understand semver-rcN syntax
  • package jaeger v2 binary as a separate release artifact (currently not included in scripts/package-deploy.sh)
  • revisit the use of BRANCH variable
  • revising build-binaries-*** Makefile targets, they sometimes include os-arch, sometimes just os, simetimes just arch - it's a mess -- Normalize build-binaries targets #5924
  • figure out how publish release workflow will work with dual versions. Should it still run on release/published event or rather on tags?
    • New process documented in RELEASE.md. Because we need two tags in the repo, they have to be applied manually, not via GH Release, which can only create one tag.
    • The GH Release can still trigger the release workflow, right now it has to be triggered manually after the release is published (because it will try to upload artifacts to a release).
  • figure out how release notes script will work with dual versions
  • do we need dual version for the UI? -- continue using 1.x for now, once 2.x officially released switch UI version to 2.x, but still use a single version
  • documentation versioning mechanism
yurishkuro added a commit that referenced this issue Aug 27, 2024
## Which problem is this PR solving?
- Part of #5889 

## Description of the changes
- Move semver-from-tag determination from Makefile into
`scripts/compute-version.sh`
- Move Go build info and Windows build info to dedicated Makefiles
- Fixed execute permissions on all scripts

## How was this change tested?
- ran windows build and jaeger / query builds to ensure expected
behavior

---------

Signed-off-by: Yuri Shkuro <github@ysh.us>
yurishkuro added a commit that referenced this issue Aug 27, 2024
## Which problem is this PR solving?
- Part of #5889

## Description of the changes
- Replace `make echo-version` with two separate v1/v2 targets, using new
vars introduced in #5890
- Refactor `scripts/package-deploy.sh` to publish 2.x bundle

## How was this change tested?
- `$ TARCMD=gtar bash scripts/package-deploy.sh -d`

---------

Signed-off-by: Mend Renovate <bot@renovateapp.com>
Signed-off-by: Yuri Shkuro <github@ysh.us>
Co-authored-by: Yuri Shkuro <github@ysh.us>
JaredTan95 pushed a commit to JaredTan95/jaeger that referenced this issue Aug 28, 2024
## Which problem is this PR solving?
- Part of jaegertracing#5889

## Description of the changes
- Move semver-from-tag determination from Makefile into
`scripts/compute-version.sh`
- Move Go build info and Windows build info to dedicated Makefiles
- Fixed execute permissions on all scripts

## How was this change tested?
- ran windows build and jaeger / query builds to ensure expected
behavior

---------

Signed-off-by: Yuri Shkuro <github@ysh.us>
Signed-off-by: Jared Tan <jian.tan@daocloud.io>
JaredTan95 pushed a commit to JaredTan95/jaeger that referenced this issue Aug 28, 2024
## Which problem is this PR solving?
- Part of jaegertracing#5889

## Description of the changes
- Replace `make echo-version` with two separate v1/v2 targets, using new
vars introduced in jaegertracing#5890
- Refactor `scripts/package-deploy.sh` to publish 2.x bundle

## How was this change tested?
- `$ TARCMD=gtar bash scripts/package-deploy.sh -d`

---------

Signed-off-by: Mend Renovate <bot@renovateapp.com>
Signed-off-by: Yuri Shkuro <github@ysh.us>
Co-authored-by: Yuri Shkuro <github@ysh.us>
Signed-off-by: Jared Tan <jian.tan@daocloud.io>
mahadzaryab1 pushed a commit to mahadzaryab1/jaeger that referenced this issue Aug 31, 2024
## Which problem is this PR solving?
- Part of jaegertracing#5889

## Description of the changes
- Move semver-from-tag determination from Makefile into
`scripts/compute-version.sh`
- Move Go build info and Windows build info to dedicated Makefiles
- Fixed execute permissions on all scripts

## How was this change tested?
- ran windows build and jaeger / query builds to ensure expected
behavior

---------

Signed-off-by: Yuri Shkuro <github@ysh.us>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
mahadzaryab1 pushed a commit to mahadzaryab1/jaeger that referenced this issue Aug 31, 2024
## Which problem is this PR solving?
- Part of jaegertracing#5889

## Description of the changes
- Replace `make echo-version` with two separate v1/v2 targets, using new
vars introduced in jaegertracing#5890
- Refactor `scripts/package-deploy.sh` to publish 2.x bundle

## How was this change tested?
- `$ TARCMD=gtar bash scripts/package-deploy.sh -d`

---------

Signed-off-by: Mend Renovate <bot@renovateapp.com>
Signed-off-by: Yuri Shkuro <github@ysh.us>
Co-authored-by: Yuri Shkuro <github@ysh.us>
Signed-off-by: Mahad Zaryab <mahadzaryab1@gmail.com>
yurishkuro added a commit that referenced this issue Sep 3, 2024
## Which problem is this PR solving?
- Part of #5889
- `build-binaries-***` Makefile targets sometimes include os-arch,
sometimes just os, sometimes just arch - it's a mess

## Description of the changes
- normalize all targets to be `build-binaries-$os-$arch`
- change `ci-build-binaries.yml` workflow to use `make echo-platforms`
for the jobs matrix

## How was this change tested?
- ci

---------

Signed-off-by: Yuri Shkuro <github@ysh.us>
yurishkuro added a commit that referenced this issue Sep 14, 2024
## Which problem is this PR solving?
- Part of #5889

## Description of the changes
- simplify all-in-one publishing by minimizing number of parameters
passed from workflow (v1/v2 only instead of binary name and healthcheck
flag - those are now set inside the script)
- implement overwrite `-o` flag in docker scripts to avoid accidental
overriding of numbered releases
- simplify flags management in docker scripts via FLAGS array instead of
individual variables
- fix base image building to respect selected platforms (by default it
was building all)
- allow `scripts/compute-version.sh` to accept semver with `-rcN` suffix

## How was this change tested?
- CI
- ran publish-release workflow manually
https://github.com/jaegertracing/jaeger/actions/runs/10865002272/job/30150937690

---------

Signed-off-by: Yuri Shkuro <github@ysh.us>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Todo
Development

No branches or pull requests

5 participants
@yurishkuro and others