Skip to content

docs: Add formal deprecation policy#122

Open
jonathanMLDev wants to merge 1 commit into
cppalliance:mainfrom
jonathanMLDev:docs/formal-deprecation-policy
Open

docs: Add formal deprecation policy#122
jonathanMLDev wants to merge 1 commit into
cppalliance:mainfrom
jonathanMLDev:docs/formal-deprecation-policy

Conversation

@jonathanMLDev
Copy link
Copy Markdown
Collaborator

@jonathanMLDev jonathanMLDev commented Jun 1, 2026

Summary

Adds a written release and deprecation policy so consumers and maintainers have explicit rules before larger breaking work (e.g. ServerContext in issue_01). This is documentation only — no src/, test, or workflow changes.

Closes the process gap called out in the eval: while CI is strong and SERVER_VERSION already tracks package.json at runtime (since 0.2.0), there was no documented deprecation window, CHANGELOG conventions for breaking releases, or GitHub Release template for breaking versions.

Changes

File Change
docs/deprecation-policy.md New — scope, semver 0.y.z, 2-minor deprecation window, maintainer checklist, migration commitment, breaking-without-deprecation rules, CHANGELOG format, ServerContext forward reference, paper_number grandfathering
docs/templates/breaking-change-release-notes.md New — copy-paste GitHub Release body for breaking versions
README.md Release policy section + Documentation table link
docs/README.md Index entries for policy and template
docs/MIGRATION.md Link to deprecation policy at top
docs/RELEASING.md Point breaking releases at template + policy
docs/CONTRIBUTING.md PR expectations for deprecations and breaking CHANGELOG bullets
CHANGELOG.md [Unreleased] entry for this documentation

Acceptance criteria

  • docs/deprecation-policy.md specifying deprecation window (minimum two minor releases)
  • Migration support commitment documented
  • CHANGELOG format requirements for breaking changes (policy + CONTRIBUTING)
  • README section linking to the policy
  • Release notes template for breaking changes

Policy highlights

  • While 0.y.z, minors may break per semver §4; consumers should pin exact versions.
  • Deprecated APIs remain for ≥2 minor releases before removal (e.g. deprecated 0.2.x → earliest removal 0.4.0).
  • Each deprecation: CHANGELOG ### Deprecated, MIGRATION section, optional @deprecated / one-per-process WARN.
  • Breaking releases (with or without prior deprecation): labeled Breaking (MCP|types|…) bullets, MIGRATION steps, GitHub Release from template.
  • paper_number: grandfathered — removal no earlier than first major after 1.0.0, per existing 0.2.0 commitment.

Downstream

  • issue_01 (ServerContext): migration guide should link to docs/deprecation-policy.md and list legacy getters under ### Deprecated with removal targets.
  • No conflict with issue_02 / issue_04 (different paths).

Test plan

  • npm run docs:link-check — all new relative links resolve
  • npm run ci — typecheck, lint, format, build pass (docs-only; no code diff)
  • Reviewer: skim docs/deprecation-policy.md for clarity and alignment with existing 0.2.0 CHANGELOG style
  • After merge: issue_01 PR can reference policy without follow-up doc PR

Checklist

  • Documentation-only; no production code changes
  • [Unreleased] CHANGELOG updated
  • Docs index and README updated
  • No secrets or local-only files included

Related Issue

Summary by CodeRabbit

  • Documentation
    • Established formal deprecation policy defining semantic versioning, breaking change timelines, and multi-phase removal windows
    • Introduced comprehensive release policy documentation for breaking changes and deprecation cycles with maintainer checklists
    • Added standardized GitHub Release template for announcing breaking changes with migration guidance
    • Created contributor guidelines for properly documenting deprecations, breaking changes, and migration paths

@jonathanMLDev jonathanMLDev self-assigned this Jun 1, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 1, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

This PR establishes a formal deprecation policy for the package covering semantic versioning, breaking-change timelines, and maintainer obligations. It adds a core policy document, a release notes template, updates contributor and release guidance, and cross-references the new documentation across README files.

Changes

Deprecation Policy & Release Process

Layer / File(s) Summary
Deprecation policy and release notes template
docs/deprecation-policy.md, docs/templates/breaking-change-release-notes.md
The complete deprecation policy defines versioning rules for 0.y.z, phases for deprecation/removal, maintainer checklists, and a standardized CHANGELOG format for breaking changes. A GitHub Release template scaffold provides structure for breaking-version release notes.
Contributor and release process updates
docs/CONTRIBUTING.md, docs/RELEASING.md
CONTRIBUTING.md adds guidance on deprecation and breaking-change documentation requirements, including CHANGELOG sections, MIGRATION updates, and TypeScript @deprecated annotations. RELEASING.md adds a prerequisite to merge changelog-aligned changes to main before creating a GitHub Release.
Documentation cross-references and changelog entry
README.md, docs/README.md, docs/MIGRATION.md, CHANGELOG.md
README and docs/README.md are updated with a Release policy section and links to the deprecation policy; MIGRATION.md and CHANGELOG.md include cross-references to the new documentation.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

Suggested reviewers

  • wpak-ai
  • AuraMindNest

Poem

🐰 A policy takes shape with care and thought,
Deprecation windows, timelines, all that's sought,
Changelogs and checklists, templates align,
Breaking changes now have their design,
Release with rhythm, the future is bright! ✨

🚥 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 'docs: Add formal deprecation policy' directly and concisely summarizes the main change—adding a deprecation policy to documentation.
Linked Issues check ✅ Passed The PR fully addresses all acceptance criteria from #119: deprecation-policy.md file created, migration commitment documented, CHANGELOG format specified, README link added, and release notes template provided.
Out of Scope Changes check ✅ Passed All changes are directly aligned with the linked issue #119 objectives—no out-of-scope modifications to source code, tests, or workflows were introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@6a07fd8). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #122   +/-   ##
=======================================
  Coverage        ?   81.21%           
=======================================
  Files           ?       38           
  Lines           ?     1299           
  Branches        ?      430           
=======================================
  Hits            ?     1055           
  Misses          ?      242           
  Partials        ?        2           

☔ View full report in Codecov by Sentry.
📢 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.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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 `@docs/templates/breaking-change-release-notes.md`:
- Line 36: The markdown link "[CHANGELOG —
vX.Y.Z](https://github.com/cppalliance/pinecone-read-only-mcp-typescript/releases/tag/vX.Y.Z)"
is mislabeled: update the link target to point to the actual CHANGELOG file
(e.g., "CHANGELOG.md" or the repo-relative path to it) so the label "CHANGELOG —
vX.Y.Z" matches the destination, or alternatively relabel the link text to
"Release — vX.Y.Z" if you intend to keep the releases page; edit the single
markdown link accordingly.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: c658e08a-c5bc-4a5a-9473-3bb6f718b2e7

📥 Commits

Reviewing files that changed from the base of the PR and between 6a07fd8 and fe49610.

📒 Files selected for processing (8)
  • CHANGELOG.md
  • README.md
  • docs/CONTRIBUTING.md
  • docs/MIGRATION.md
  • docs/README.md
  • docs/RELEASING.md
  • docs/deprecation-policy.md
  • docs/templates/breaking-change-release-notes.md

Comment thread docs/templates/breaking-change-release-notes.md
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.

Formal deprecation policy

1 participant