- name
- release-notes
- description
- Skill for compiling and writing release notes for langchain-azure packages. Use when a new version of a package is being released and the README.md changelog section needs to be updated with a summary of merged PRs.
- user-invocable
- true
# Compiling Release Notes for langchain-azure Packages
Each package maintains a `## Changelog` section in its `README.md`. When a new version is released, update that section with a concise, user-friendly summary of what changed.
## Required policy
- ALWAYS append release notes as a new version entry at the top of the changelog.
- NEVER modify the content of previously published version entries.
## How to compile release notes
1. **Identify the two release tags** you are comparing. Tags follow the pattern `<package>==<version>`, for example `langchain-azure-ai==1.2.1`. List available tags with:
```bash
gh release list --repo langchain-ai/langchain-azure
# or
git tag --list | grep langchain-azure-ai
```
2. **List the PRs merged between the two tags** using the GitHub CLI:
```bash
# Get the commits between the two tags and look for merge commits
git log <old-tag>..<new-tag> --oneline --merges
# Or use the GitHub compare API to get a full list of commits
gh api repos/langchain-ai/langchain-azure/compare/<old-tag>...<new-tag> \
--jq '.commits[].commit.message'
```
You can also browse the merged PRs on GitHub directly by filtering by merge date range:
```
https://github.com/langchain-ai/langchain-azure/pulls?q=is%3Apr+is%3Amerged+merged%3A<start-date>..<end-date>+label%3A<package-label>
```
3. **Write the release notes**. For each meaningful PR (skip internal/CI-only changes), add a bullet using friendly, user-facing language. Follow these conventions:
- Start sentences with "We" to keep a consistent, team-friendly voice (e.g., "We fixed a problem when loading class X").
- Use past tense ("We introduced", "We fixed", "We improved").
- Mark breaking changes with `**[Breaking change]:**`. See
[what counts as a breaking change](#what-counts-as-a-breaking-change)
before applying this marker.
- Mark new features with `**[NEW]**` when the addition is significant.
- Reference the PR number with a link, e.g., `[#123](https://github.com/langchain-ai/langchain-azure/pull/123)`.
4. **Update the package `README.md`**. Add the new version entry at the top of the `## Changelog` section:
```markdown
## Changelog
- **<new-version>**:
- We fixed an issue with X. [#123](https://github.com/langchain-ai/langchain-azure/pull/123)
- We introduced support for Y. [#124](https://github.com/langchain-ai/langchain-azure/pull/124)
- **<previous-version>**:
...
```
Do not edit existing entries for previously released versions; only append a new section for the release being prepared.
Each package's `README.md` is the source of truth for its changelog. The files to update are:
| Package | README location |
|---------|----------------|
| `langchain-azure-ai` | `libs/azure-ai/README.md` |
| `langchain-azure-compute` | `libs/azure-compute/README.md` |
| `langchain-azure-dynamic-sessions` | `libs/azure-dynamic-sessions/README.md` |
| `langchain-sqlserver` | `libs/sqlserver/README.md` |
| `langchain-azure-storage` | `libs/azure-storage/README.md` |
| `langchain-azure-postgresql` | `libs/azure-postgresql/README.md` |
| `langchain-azure-cosmosdb` | `libs/azure-cosmosdb/README.md` |
## What counts as a breaking change
Apply `**[Breaking change]:**` only when a user's working code, on a runtime
that remains supported, stops working or changes behavior:
- Removing or renaming public API, or changing a signature, default, or return
type.
- Changing runtime behavior so existing supported code produces a different
result.
- Adding a newly required dependency or configuration that installed users must
now supply.
Do **not** apply the marker to these:
- **Raising the minimum supported Python version.** This follows the
repository's Python support policy and changes no API or behavior on any
supported interpreter. The `requires-python` metadata makes older runtimes
resolve to the previous release rather than install an incompatible one, so
nothing breaks silently. State the impact in plain language instead, for
example: "Users running Python 3.10 must upgrade their runtime to install
this release."
- Dropping a Python version that upstream has already end-of-lifed.
- Internal refactors, CI-only changes, or typing-only changes with no runtime
effect.
A release whose only user-visible change is a support-policy update is a patch
release. Labeling a patch bump as breaking contradicts the version being
shipped, so match the marker to the version you are actually publishing.
Ver en GitHub