Skip to content

Added a 'filter-by-range' input to release-drafter to skip CalVer and Drupal-era tags. - #3097

Merged
AlexSkrypnyk merged 5 commits into
mainfrom
feature/release-filter
Sep 7, 2026
Merged

Added a 'filter-by-range' input to release-drafter to skip CalVer and Drupal-era tags.#3097
AlexSkrypnyk merged 5 commits into
mainfrom
feature/release-filter

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented Sep 7, 2026

Copy link
Copy Markdown
Member

Summary

The Draft release notes step in .github/workflows/draft-release-notes.yml now passes a filter-by-range input of >=1.0.0 <7.0.0 to release-drafter, restricting which published tags it considers when it resolves the previous release.

release-drafter picks the previous release as the numerically highest tag after semver.coerce(), so the CalVer tag 25.10.0 outranked the semver tag 1.41.1 and the workflow drafted 25.11.0 with a change list reaching back to November 2025.

With the range applied, 1.41.1 becomes the highest matching tag, so the next draft resolves to 1.42.0 with a change list starting at the correct previous release, and the filter-by-range input is wrapped in #;< VORTEX_DEV / #;> VORTEX_DEV fences so it never reaches a scaffolded consumer project.

Before / After

Before: no filter-by-range
┌──────────────────────────────────────────────────────────────┐
│ published tags -> semver.coerce() -> sort numerically        │
│                                                              │
│   1.18.0 .. 1.22.0    semver, up to 2024-07                  │
│   24.8.0 .. 25.10.0   CalVer, 2024-08 to 2025-11             │
│   1.34.0 .. 1.41.1    semver, 2025-12 onwards                │
│                                                              │
│   highest coerced tag: 25.10.0   CalVer outranks semver      │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
              $PREVIOUS_TAG = 25.10.0, draft = 25.11.0
              change list starts in November 2025

After: filter-by-range '>=1.0.0 <7.0.0'
┌──────────────────────────────────────────────────────────────┐
│ published tags -> range filter -> semver.coerce() -> sort    │
│                                                              │
│   7.x-1.13, 8.x-1.14, 9.x-1.15   coerce to 7/8/9.0.0         │
│   24.8.0 .. 25.10.0              coerce to 24.x.0 / 25.x.0   │
│   both groups fall outside the range and are dropped         │
│                                                              │
│   1.18.0 .. 1.22.0, 1.34.0 .. 1.41.1    kept                 │
│   highest remaining tag: 1.41.1                              │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
              $PREVIOUS_TAG = 1.41.1, draft = 1.42.0
              change list starts at the correct previous release

Changes

.github/workflows/draft-release-notes.yml gains one with: input on the existing Draft release notes step, filter-by-range: '>=1.0.0 <7.0.0', wrapped in #;< VORTEX_DEV / #;> VORTEX_DEV fences.

The range keeps the 1.x semver releases, drops the 24.x/25.x CalVer releases, and also drops the Drupal-era 7.x-1.13, 8.x-1.14 and 9.x-1.15 tags, which coerce to 7.0.0, 8.0.0 and 9.0.0 and would otherwise still outrank 1.41.1.

The installer strips fenced lines when scaffolding a new project, so a consumer project's copy of draft-release-notes.yml is generated without this input and stays byte-identical to what it produces today. This is verified by the _baseline installer fixture, which contains neither the input nor the fence markers.

The existing draft release 25.11.0 falls outside the new range, so release-drafter creates a fresh draft rather than updating it; the stale 25.11.0 draft needs deleting manually.

Release drafting resolved the previous release as the numerically highest one, so releases left behind by an earlier versioning scheme outranked the current ones. Added 'VORTEX_RELEASE_VERSION_FILTER' to constrain the candidates with a semver range, derived from 'VORTEX_RELEASE_VERSION_SCHEME' when unset.
…iable.

The scheme switch is specific to this repository, so the 'filter-by-range' input is fenced behind 'VORTEX_DEV' with a literal range and the 'VORTEX_RELEASE_VERSION_FILTER' variable, its resolution step and the consumer-facing documentation are removed.
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Team

Run ID: 925b7ea7-0bb6-4d1d-979f-2fadc756ab7e

📥 Commits

Reviewing files that changed from the base of the PR and between ffe06eb and 64e376b.

📒 Files selected for processing (1)
  • .github/workflows/draft-release-notes.yml

Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review.


Walkthrough

The draft release notes workflow now restricts Release Drafter to versions from 1.0.0 through below 7.0.0. VORTEX_DEV markers and explanatory comments identify the configuration.

Changes

Release Drafter filtering

Layer / File(s) Summary
Configure release version range
.github/workflows/draft-release-notes.yml
Release Drafter excludes versions below 1.0.0 and versions at or above 7.0.0.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to ba643

The release-notes workflow will select prior 1.x releases while excluding CalVer and Drupal-era tags, producing the intended 1.42.0 draft range. No unresolved merge risk remains.

Poem

A rabbit reads each line,
The patch grows clear beneath the moon,
Small changes hop in place,
Tests guard the garden path,
Reviews bloom before the dawn.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a filter-by-range input to exclude CalVer and Drupal-era tags.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/release-filter

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

@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.97%. Comparing base (ffe06eb) to head (ba64318).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3097      +/-   ##
==========================================
- Coverage   87.32%   86.97%   -0.36%     
==========================================
  Files         108      101       -7     
  Lines        5161     4998     -163     
  Branches       49        3      -46     
==========================================
- Hits         4507     4347     -160     
+ Misses        654      651       -3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

📖 Documentation preview for this pull request has been deployed to Netlify:

https://6a9e57dedafe2b0b5c543731--vortex-docs.netlify.app

This preview is rebuilt on every commit and is not the production documentation site.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Code coverage (threshold: 90%)

  Classes: 100.00% (1/1)
  Methods: 100.00% (2/2)
  Lines:   98.58% (209/212)
Per-class coverage
Drupal\ys_demo\Plugin\Block\CounterBlock
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

Copy link
Copy Markdown
Member Author

Code coverage (threshold: 90%)

  Classes: 100.00% (1/1)
  Methods: 100.00% (2/2)
  Lines:   98.58% (209/212)
Per-class coverage
Drupal\ys_demo\Plugin\Block\CounterBlock
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

@AlexSkrypnyk AlexSkrypnyk added the Needs review Pull request needs a review from assigned developers label Sep 7, 2026
@AlexSkrypnyk
AlexSkrypnyk merged commit 9052460 into main Sep 7, 2026
35 checks passed
@github-project-automation github-project-automation Bot moved this from BACKLOG to Release queue in Vortex 1.x Sep 7, 2026
@AlexSkrypnyk
AlexSkrypnyk deleted the feature/release-filter branch September 7, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs review Pull request needs a review from assigned developers

Projects

Status: Release queue

Development

Successfully merging this pull request may close these issues.

1 participant