--- 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 `==`, 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 .. --oneline --merges # Or use the GitHub compare API to get a full list of commits gh api repos/langchain-ai/langchain-azure/compare/... \ --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..+label%3A ``` 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 - ****: - 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) - ****: ... ``` 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.