Skip to content

Back-merge v2.1.0 into develop - #839

Merged
andyne13 merged 3 commits into
developfrom
backmerge/v2.1.0-into-develop
Jul 31, 2026
Merged

Back-merge v2.1.0 into develop#839
andyne13 merged 3 commits into
developfrom
backmerge/v2.1.0-into-develop

Conversation

@andyne13

@andyne13 andyne13 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Returns the v2.1.0 release commits from main to develop, closing the release cycle.

Brings back three commits:

  • 4cb7e7ff — version bump to 2.1.0 (pyproject, uv.lock, Chart.yaml, values.yaml, docker-compose.yaml)
  • 184153ad — adds .github/RELEASING.md
  • bc30c6a0 — the release merge commit

develop had no commits missing from main at the time this was cut, so there is nothing to reconcile.

Release status

v2.1.0 is published and verified: all three images are live on ghcr (plus api and admin-ui on Docker Hub), latest matches the release digest on all five coordinates, ghcr and Docker Hub carry the same build, and the image reports version = "2.1.0".

Summary by CodeRabbit

  • Release

    • Updated the project to version 2.1.0.
    • Updated packaged deployment images to use the 2.1.0 release.
    • Updated the Helm chart version to 0.6.1 and its application version to 2.1.0.
  • Documentation

    • Added a release verification checklist covering image validation, workflow completion, version checks, registry tags, deployment references, and final release criteria.

andyne13 and others added 3 commits July 30, 2026 22:05
…lished

The v2.0.1 release produced a green build.yml run that built nothing: the
build jobs were guarded on github.event.base_ref, which is empty for a tag
pushed to a branch-protected main, so all three reported skipped while the
run stayed green. The guard is fixed, but nothing in our process would have
caught it, and the same class of failure can recur silently.

This records the checks that prove a release shipped: assert per-job
conclusions rather than the run's, resolve the manifest digest for all five
registry coordinates, confirm latest matches the release and that ghcr and
Docker Hub carry the same build, and read the version baked into the image
so a tag placed on a pre-bump commit is caught.

Includes the reconstructed v2.0.1 sequence and the rules it produced, plus
the open risk that main's hardened build.yml has never yet run on a GA tag.
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The project version advances to 2.1.0. Helm and Compose image references use the new release tags. The chart version advances to 0.6.1. A release checklist documents image, registry, workflow, tag, and deployment verification.

Changes

Version 2.1.0 release

Layer / File(s) Summary
Release metadata and deployment references
pyproject.toml, infra/charts/openrag-stack/Chart.yaml, infra/charts/openrag-stack/values.yaml, infra/compose/docker-compose.yaml
Project metadata changes to 2.1.0. The Helm chart changes to 0.6.1. Helm and Compose image tags change from v2.0.1 to v2.1.0.
Release verification checklist
.github/RELEASING.md
Adds procedures for workflow jobs, registry tags, image digests, image contents, release versions, tag ancestry, and deployment references.
Release completion rules
.github/RELEASING.md
Documents the v2.0.1 incident, skipped-job handling, hardened workflow guard validation, checklist dry runs, and completion criteria.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • linagora/openrag#767: The checklist documents the skipped-job incident and hardened publish guard associated with this release.
  • linagora/openrag#765: Both changes update release metadata and image tags across the chart, Compose configuration, and pyproject.toml.
  • linagora/openrag#771: Both changes update the same release-version fields and image tags.

Suggested labels: chore

Suggested reviewers: enjoybacon7, hedhoud, ahmath-gadji

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the primary change: back-merging the v2.1.0 release into the develop branch.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch backmerge/v2.1.0-into-develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot added the chore No production code impact, typically improve tooling, code quality, etc label Jul 31, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/RELEASING.md:
- Around line 169-176: Update the release validation commands in the documented
checks to compare each extracted value exactly against $VER, rather than merely
matching version-like strings. Validate chart appVersion and version, Ray, admin
UI, and OpenRAG image tags in values.yaml, plus every relevant Compose image
reference, and ensure any mismatch causes the checks to fail.
- Around line 124-128: Update the release verification instructions around the
docker image inspect command and the “PASS” check to extract the sha256 digest
suffix from the returned repository digest, then compare that extracted value
with the registry digest from step 2. Keep the existing image pull and digest
verification flow unchanged.
- Around line 61-66: Update the job-conclusion check in the release instructions
to capture the count returned by gh run view and explicitly exit non-zero when
that count is not zero. Preserve the existing filter for non-successful jobs so
both failed and skipped jobs block the release.
- Line 16: Update the dg helper to propagate failure from docker buildx
imagetools inspect, preventing sha256sum from hashing empty output and ensuring
no digest is emitted when lookup fails. Update every documented caller in the
release steps to check dg’s non-zero status and stop with an appropriate failure
instead of continuing comparisons or accepting missing images.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b20629c1-bc15-400a-8ff9-7a417ed7faaa

📥 Commits

Reviewing files that changed from the base of the PR and between 187a359 and bc30c6a.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (5)
  • .github/RELEASING.md
  • infra/charts/openrag-stack/Chart.yaml
  • infra/charts/openrag-stack/values.yaml
  • infra/compose/docker-compose.yaml
  • pyproject.toml

Comment thread .github/RELEASING.md
Comment thread .github/RELEASING.md
Comment thread .github/RELEASING.md
Comment thread .github/RELEASING.md
@andyne13
andyne13 merged commit 88da8b4 into develop Jul 31, 2026
18 checks passed
@andyne13
andyne13 deleted the backmerge/v2.1.0-into-develop branch July 31, 2026 10:07
ewan102 pushed a commit to ewan102/openrag that referenced this pull request Aug 31, 2026
Four checks in .github/RELEASING.md looked like gates but could not fail,
which is the exact defect the document was written to prevent. Found in
review of linagora#839.

- dg() piped a failed registry lookup into sha256sum, which hashes empty
  input and returns sha256:e3b0c442... — a real-looking digest. Step 2 then
  reported a missing image as present, and two missing tags compared equal
  so steps 3 and 4 printed OK. It now captures the manifest first and
  returns non-zero on an empty or failed lookup. Step 4 gained -n guards:
  with the helper fixed, two missing tags are both empty and would still
  have compared equal.
- The job-conclusion check only printed the count of non-success jobs and
  exited 0 regardless, so a release could continue past a skipped build.
  It now exits non-zero.
- Step 5 compared RepoDigests (repo@sha256:...) against a bare sha256:...,
  which can never match literally. It now strips the repository prefix.
- Step 8 matched any version-shaped tag rather than comparing to $VER, so a
  pin left at the previous release satisfied it. It now checks each OpenRag
  repository's tag by name. Counting version-shaped tags instead would have
  been wrong: values.yaml also pins vllm, milvus and infinity, whose
  versions are unrelated to the release.

Every snippet was executed rather than reasoned about: the job gate was run
against the v2.0.1 run that built nothing (correctly fails) and against the
v2.1.0 run (passes), and the rest against the live v2.1.0 registries.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore No production code impact, typically improve tooling, code quality, etc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants