Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,18 @@ them mypy-clean under `strict` is a separate piece of work.
The `UP046` rule (PEP 695 `type` statement syntax for generic classes) is **ignored** in `pyproject.toml`. Do not convert `class Foo(Generic[T]):` to PEP 695 syntax — it is a deliberate migration decision.


## PR Titles and the Changelog

PRs are squash-merged with the PR title as the commit message, and release-please builds each package's changelog from those messages.

- **A change to an experimental feature uses that feature's scope:** `skills` (Agent Skills) and `evaluations` (Evaluations from Code). `feat`, `fix` and `perf` commits with one of these scopes are listed under **Experimental** (`changelog-sections` in `release-please-config.json`), for example `feat(skills): watch skills for revocations`. Any other scope, such as `client`, lists the change as a core feature or fix.
- **Use exactly one scope.** `feat(skills,client):` matches no Experimental row, so it lands under Features.
- **A PR that changes both core and experimental behaviour** should be split. If it can't be, add a `BEGIN_COMMIT_OVERRIDE` block to its description with one conventional-commit line per change. An override also corrects a merged PR's title, as long as the release PR hasn't merged yet.
- **A breaking experimental change** uses `!` while the package is 0.x: `feat(skills)!:` bumps the minor version, which is what an experimental break is allowed. After 1.0, `!` would force a major release. Use `feat(skills):` without `!` instead, and say the change is breaking in the title.
- **When a feature is promoted to core,** remove its rows from `changelog-sections`.

The rule is specified in `TESTING.md` §0.3 in `launchdarkly/ai-sdks-monorepo`.

## Package Hierarchy

The monorepo is organized into three tiers plus a convenience barrel. Dependencies only flow **downward** — never sideways between packages in the same tier, and never upward.
Expand Down
22 changes: 21 additions & 1 deletion release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,5 +90,25 @@
],
"component": "launchdarkly-ai-langchain-messages"
}
}
},
"changelog-sections": [
{ "type": "feat", "scope": "skills", "section": "Experimental" },
{ "type": "fix", "scope": "skills", "section": "Experimental" },
{ "type": "perf", "scope": "skills", "section": "Experimental" },
{ "type": "feat", "scope": "evaluations", "section": "Experimental" },
{ "type": "fix", "scope": "evaluations", "section": "Experimental" },
{ "type": "perf", "scope": "evaluations", "section": "Experimental" },
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "perf", "section": "Performance Improvements" },
{ "type": "deps", "section": "Dependencies" },
{ "type": "revert", "section": "Reverts" },
{ "type": "docs", "section": "Documentation" },
{ "type": "style", "section": "Styles", "hidden": true },
{ "type": "chore", "section": "Miscellaneous Chores", "hidden": true },
{ "type": "refactor", "section": "Code Refactoring", "hidden": true },
{ "type": "test", "section": "Tests", "hidden": true },
{ "type": "build", "section": "Build System", "hidden": true },
{ "type": "ci", "section": "Continuous Integration", "hidden": true }
]
}
Loading