Skip to content

chore: add LLVM version support policy#87

Draft
shenxianpeng wants to merge 2 commits into
mainfrom
chore/add-version-support-policy
Draft

chore: add LLVM version support policy#87
shenxianpeng wants to merge 2 commits into
mainfrom
chore/add-version-support-policy

Conversation

@shenxianpeng

@shenxianpeng shenxianpeng commented Jun 14, 2026

Copy link
Copy Markdown
Member

Summary

This PR introduces VERSION_SUPPORT_POLICY.md — a formal, three-tier policy for which LLVM/Clang versions cpp-linter supports across all projects.

Three-Tier System

Tier Description Binaries CI Bug Fixes
Tier 1 — Full Latest 3 major versions (22, 21, 20) ✅ All platforms ✅ Full matrix Prioritized
Tier 2 — Standard Support floor (11) ~ Tier 1 ✅ All platforms ⚠️ Spot-check Best-effort
Tier 3 — Legacy Below floor (10-) Community-only

What the Document Covers

  1. Background on LLVM's upstream release cycle
  2. Detailed tier definitions with current version mappings
  3. Support lifecycle table with release dates
  4. How the support floor advances when new LLVM versions release
  5. Special support channels (community discussions, sponsored support, paid build services)
  6. Build-from-source instructions for legacy versions
  7. FAQ covering common questions

Design Decisions

  • Support floor at LLVM 11: Covers ~6 years of releases (current 12 majors) — significantly longer than upstream but matches our existing build matrix.
  • Tier 1 = 3 versions: Gives users a stable default (20) with headroom on both sides.
  • 6-month grace period: When the floor advances, the dropped version stays in Tier 2 for 6 months before moving to Tier 3.
  • No automatic floor advancement: Evaluated case-by-case based on build complexity, community usage, and maintenance burden.

Closes #N/A (new policy, no linked issue)

Summary by CodeRabbit

Release Notes

Documentation

  • Added a comprehensive version support policy documenting LLVM/Clang support tiers and lifecycle information.
  • Included support pathways for community, sponsored, and paid build services outside the standard support window.
  • Added instructions for building static binaries and Docker images from source.

Define a three-tier version support policy covering:
- Tier 1 (Full): latest 3 major versions with full CI & binary support
- Tier 2 (Standard): versions from the support floor (LLVM 11) to Tier 1
- Tier 3 (Legacy): versions below the floor, no default support

Includes special support channels (community/sponsored/paid) and
build-from-source instructions for legacy versions.
@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

A new VERSION_SUPPORT_POLICY.md file is added, defining cpp-linter's three-tier LLVM/Clang version support strategy. It covers tier definitions, a June 2026 lifecycle table, support floor advancement rules, out-of-window support options, build-from-source instructions, an FAQ, and an initial changelog entry.

Changes

LLVM Version Support Policy

Layer / File(s) Summary
Tier definitions and lifecycle table
VERSION_SUPPORT_POLICY.md
Establishes scope and LLVM upstream context, defines Tier 1/2/3 criteria and entitlements, presents the June 2026 lifecycle table (support floor: LLVM 11; Tier 1: 22, 21, 20), and states the rationale for the extended support window.
Out-of-window support options and build instructions
VERSION_SUPPORT_POLICY.md
Describes community/free, sponsored, and paid support pathways for versions outside the default window, and provides example commands for building static binaries and Docker images from source with a contributing-back section.
FAQ and changelog
VERSION_SUPPORT_POLICY.md
Answers questions on default action versions, Tier 3 behavior, local binary usage, support floor requests, and policy scope; records initial policy publication with the current support floor and Tier 1 set.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

🚥 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 'chore: add LLVM version support policy' accurately describes the main change—addition of a formal version support policy document—and is clear, concise, and directly related to the changeset.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/add-version-support-policy

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 and usage tips.

@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: 1

🧹 Nitpick comments (1)
VERSION_SUPPORT_POLICY.md (1)

57-59: 💤 Low value

Repetitive sentence openings in Tier 3 bullet list.

The three bullet points for Tier 3 support (Lines 57–59) all begin with "No," which reads as repetitive. As a minor style improvement, consider rewording one or more to vary the structure while retaining clarity:

- **No pre-built binaries are published.**
- Docker images are not maintained.
- No CI testing.

Or:

- **No pre-built binaries are published.**
- **No Docker images are maintained.**
- **No CI testing is performed.**
🤖 Prompt for 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.

In `@VERSION_SUPPORT_POLICY.md` around lines 57 - 59, The Tier 3 support bullet
list contains repetitive sentence openings with all three points beginning with
"No". Reword at least one or more of the bullet points to vary the sentence
structure while maintaining clarity. You may use the suggested alternatives
provided in the comment (such as changing "No Docker images are maintained" to
"Docker images are not maintained," or ensuring consistent formatting and
complete sentences across all three bullets) or apply your own variation that
reduces the repetition while keeping the meaning clear.

Source: Linters/SAST tools

🤖 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 `@VERSION_SUPPORT_POLICY.md`:
- Line 38: The VERSION_SUPPORT_POLICY.md file contains an inconsistency across
multiple locations regarding the default version. Line 38 and Line 189 claim the
default version "tracks the middle Tier-1 version," while Line 76 sets LLVM 20
as the default. However, if Tier 1 is defined as versions 22, 21, 20 (newest to
oldest), then 21 is the numerically middle version, not 20. You must resolve
this by either: (1) changing the language at Lines 38 and 189 to accurately
describe 20 (such as "oldest Tier-1 version" or "minimum Tier-1 version for
maximum stability") to clarify the actual intent, or (2) if the default should
instead be 21, update Line 76 to mark LLVM 21 as the default and correct the
version references in Lines 38 and 189 from 20 to 21. Ensure all three locations
use consistent terminology and version numbers.

---

Nitpick comments:
In `@VERSION_SUPPORT_POLICY.md`:
- Around line 57-59: The Tier 3 support bullet list contains repetitive sentence
openings with all three points beginning with "No". Reword at least one or more
of the bullet points to vary the sentence structure while maintaining clarity.
You may use the suggested alternatives provided in the comment (such as changing
"No Docker images are maintained" to "Docker images are not maintained," or
ensuring consistent formatting and complete sentences across all three bullets)
or apply your own variation that reduces the repetition while keeping the
meaning clear.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b1695e52-6bf6-490a-a05e-93b3d6371a3b

📥 Commits

Reviewing files that changed from the base of the PR and between 7627d3c and 50f4926.

📒 Files selected for processing (1)
  • VERSION_SUPPORT_POLICY.md

Comment thread VERSION_SUPPORT_POLICY.md Outdated
@shenxianpeng shenxianpeng marked this pull request as draft June 14, 2026 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant