Repository navigation
chore: list experimental features' changes under an Experimental changelog heading - #150
Merged
Merged
Conversation
…gelog heading feat, fix and perf commits scoped `skills` (Agent Skills) or `evaluations` (Evaluations from Code) go under "Experimental" in each package's changelog, as TESTING.md §0.1 promises for experimental features. The rest of the list reproduces release-please's Python defaults, so other commits render exactly as before. AGENTS.md documents the scope convention. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
andrewklatzke
approved these changes
Oct 8, 2026
andrewklatzke
approved these changes
Oct 8, 2026
jeffdupont
approved these changes
Oct 8, 2026
andrewklatzke
pushed a commit
to launchdarkly/js-ai-sdk
that referenced
this pull request
Oct 8, 2026
…ing (#123) ## Summary Lists Agent Skills changes under an **Experimental** heading in each package's changelog, as TESTING.md §0.1 promises for an experimental feature. Spec: launchdarkly/ai-sdks-monorepo#50. Python twin: launchdarkly/python-ai-sdk#150. ## How `release-please-config.json` gains `changelog-sections`. Rows matching `feat`, `fix` and `perf` with scope `skills` map to "Experimental". The rest of the list reproduces the defaults release-please 17.6.0 uses for the Node strategy (the `conventionalcommits` preset's list), so every other commit renders exactly as before. Matching on scope works because release-please hands `changelog-sections` to `conventional-changelog-conventionalcommits` 6.1.0 unchanged (`manifest.ts:1397`), and the preset's `findTypeEntry` checks an entry's `scope` (`writer-opts.js:60-71`). The first match wins, so the scoped rows come first, and "Experimental" is therefore the first heading. `scope` isn't in release-please's documented config schema. Rerun the checks below when upgrading release-please. `AGENTS.md` gains a "PR Titles and the Changelog" section with the convention: - an experimental change uses its feature's scope, and only that one scope; - a PR that mixes core and experimental changes is split, or uses `BEGIN_COMMIT_OVERRIDE`; - a breaking experimental change uses `!` while the package is 0.x, and drops it after 1.0. The block sits at the end of the file so it doesn't conflict with #119, which adds `plugins` after `bootstrap-sha` (`git merge-tree` is clean). ## Verification - **Rendering:** I ran release-please 17.6.0's own commit parser and `DefaultChangelogNotes` against this config, with synthetic commits. - Non-experimental commits render byte-for-byte the same as with the defaults. - `feat(skills)`, `fix(skills)`, `perf(skills)` and `feat(skills)!` land under Experimental. A breaking one also appears in "⚠ BREAKING CHANGES". - `docs(skills)` stays hidden, `feat(skills,client)` lands under Features, and `feat(client)` stays under Features. - **Dry run:** `release-please release-pr --dry-run` against this branch proposes the same packages, versions and notes as release PR #85, apart from the date. Nothing on `main` uses the `skills` scope yet. - **Agent Skills:** #71 is retitled `feat(skills): Agent Skills`, so its squash commit lands under Experimental. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Overview** > Configures **release-please** so Agent Skills work (`feat`/`fix`/`perf` with scope `skills`) appears under an **Experimental** changelog heading, while the rest of the section list mirrors the default Node/conventional-commits preset so other commits render unchanged. > > Adds **PR Titles and the Changelog** to `AGENTS.md`, documenting squash-merge titles, the single `skills` scope, mixed core/experimental PRs (`BEGIN_COMMIT_OVERRIDE`), breaking experimental commits while packages are 0.x, and removing experimental rows when a feature graduates. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 5c1e697. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
XieX
added a commit
that referenced
this pull request
Oct 9, 2026
Brings in #145 (helper usage), #150 (Experimental changelog heading) and #133 (strip tools from LangChain model constructor kwargs). lifecycle.py merged without a conflict and keeps both sides: the usage flush sits beside each flush_ai_sdk_info call, so on the BYOC path it runs only after telemetry setup succeeds and the client is adopted, and on the options path only after a successful setup. shutdown() runs _clear_experimental_state() before client teardown, then resets usage with sdk-info. Root surface: add main's report_usage to ROOT_SURFACE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Lists changes to the two experimental features under an Experimental heading in each package's changelog, as TESTING.md §0.1 promises. The features are Agent Skills (scope
skills) and Evaluations from Code (scopeevaluations). Spec: https://github.com/launchdarkly/ai-sdks-monorepo/pull/50. JS twin: launchdarkly/js-ai-sdk#123.How
release-please-config.jsongainschangelog-sections. Rows matchingfeat,fixandperfwith scopeskillsorevaluationsmap to "Experimental". The rest of the list reproduces release-please 17.6.0's Python-strategy defaults (strategies/python.ts:31-44), which keepdepsand a visible "Documentation" section, so every other commit renders exactly as before.Matching on scope works because release-please hands
changelog-sectionstoconventional-changelog-conventionalcommits6.1.0 unchanged (manifest.ts:1397), and the preset'sfindTypeEntrychecks an entry'sscope(writer-opts.js:60-71). The first match wins, so the scoped rows come first, and "Experimental" is therefore the first heading.scopeisn't in release-please's documented config schema. Rerun the checks below when upgrading release-please.AGENTS.mdgains a "PR Titles and the Changelog" section with the convention:BEGIN_COMMIT_OVERRIDE;!while the package is 0.x, and drops it after 1.0.Effect on the pending release
release-please release-pr --dry-runagainst this branch proposes the same five packages and versions as release PR #142. The one difference is the point of this PR: theevaluationscommits move out of "Features" and "Bug Fixes" into "Experimental" forlaunchdarkly-ai-server0.3.0 andlaunchdarkly-ai-python0.2.0. They also still appear in "⚠ BREAKING CHANGES".docs(evaluations)stays under "Documentation". If this merges before #142, the 0.3.0 changelog will show that split.Verification
DefaultChangelogNotesagainst this config, with synthetic commits. Non-experimental commits render byte-for-byte the same as with the Python defaults, and the scoped commits land under Experimental.feat(skills): Agent Skills, so its squash commit lands under Experimental.🤖 Generated with Claude Code
Note
Overview
Adds
changelog-sectionstorelease-please-config.jsonso squash-mergedfeat/fix/perfcommits with scopeskillsorevaluationsappear under an Experimental heading in package changelogs; other commit types keep the usual Python release-please sections (Features, Bug Fixes, etc.), with scoped rules listed first so they win matching.Documents the same conventions in
AGENTS.mdunder PR Titles and the Changelog: single-scope experimental PR titles, splitting orBEGIN_COMMIT_OVERRIDEwhen mixing core and experimental work, and how!applies to breaking experimental changes before/after 1.0.Reviewed by Cursor Bugbot for commit 0df5fb1. Bugbot is set up for automated code reviews on this repo. Configure here.