1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-11-23 22:24:39 +02:00
Files
chroma/cmd
renovate[bot] c07ef4b230 chore(deps): update all non-major dependencies (#1160)
This PR contains the following updates:

| Package | Type | Update | Change | Age | Confidence |
|---|---|---|---|---|---|
| [biome](https://redirect.github.com/biomejs/biome) | | patch | `2.3.0`
-> `2.3.6` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/biome/2.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/biome/2.3.0/2.3.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [esbuild](https://redirect.github.com/evanw/esbuild) | | minor |
`0.25.11` -> `0.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/esbuild/0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/esbuild/0.25.11/0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[github.com/alecthomas/kong](https://redirect.github.com/alecthomas/kong)
| require | minor | `v1.12.1` -> `v1.13.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2falecthomas%2fkong/v1.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2falecthomas%2fkong/v1.12.1/v1.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [go](https://redirect.github.com/golang/go) | | patch | `1.25.3` ->
`1.25.4` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/go/1.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/go/1.25.3/1.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | patch |
`1.25.3` -> `1.25.4` |
[![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.25.3/1.25.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [hyperfine](https://redirect.github.com/sharkdp/hyperfine) | | minor |
`1.19.0` -> `1.20.0` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/hyperfine/1.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/hyperfine/1.19.0/1.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [svu](https://redirect.github.com/caarlos0/svu) | | minor | `3.2.4` ->
`3.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/svu/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/svu/3.2.4/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.9.5` ->
`0.9.10` |
[![age](https://developer.mend.io/api/mc/badges/age/hermit/uv/0.9.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/uv/0.9.5/0.9.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (biome)</summary>

###
[`v2.3.6`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.3.6):
Biome CLI v2.3.6

#### 2.3.6

##### Patch Changes

- [#&#8203;8100](https://redirect.github.com/biomejs/biome/pull/8100)
[`82b9a8e`](82b9a8eb3d)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the
nursery rule [`useFind`](https://biomejs.dev/linter/rules/use-find/).
Enforce the use of Array.prototype.find() over Array.prototype.filter()
followed by \[0] when looking for a single result.

  **Invalid:**

  ```js
  [1, 2, 3].filter((x) => x > 1)[0];

  [1, 2, 3].filter((x) => x > 1).at(0);
  ```

- [#&#8203;8118](https://redirect.github.com/biomejs/biome/pull/8118)
[`dbc7021`](dbc7021016)
Thanks
[@&#8203;hirokiokada77](https://redirect.github.com/hirokiokada77)! -
Fixed
[#&#8203;8117](https://redirect.github.com/biomejs/biome/issues/8117):
[`useValidLang`](https://biomejs.dev/linter/rules/use-valid-lang/) now
accepts valid [BCP 47 language
tags](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag)
with script subtags.

  **Valid:**

  ```html
  <html lang="zh-Hans-CN"></html>
  ```

- [#&#8203;7672](https://redirect.github.com/biomejs/biome/pull/7672)
[`f1d5725`](f1d5725d06)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the
nursery rule
[`useConsistentGraphqlDescriptions`](https://biomejs.dev/linter/rules/use-consistent-graphql-descriptions/),
requiring all descriptions to follow the same style (either block or
inline) inside GraphQL files.

  **Invalid:**

  ```graphql
  enum EnumValue {
    "this is a description"
    DEFAULT
  }
  ```

  **Valid:**

  ```graphql
  enum EnumValue {
    """
    this is a description
    """
    DEFAULT
  }
  ```

- [#&#8203;8026](https://redirect.github.com/biomejs/biome/pull/8026)
[`f102661`](f10266193d)
Thanks [@&#8203;matanshavit](https://redirect.github.com/matanshavit)! -
Fixed
[#&#8203;8004](https://redirect.github.com/biomejs/biome/issues/8004):
[`noParametersOnlyUsedInRecursion`](https://biomejs.dev/linter/rules/no-parameters-only-used-in-recursion/)
now correctly detects recursion by comparing function bindings instead
of just names.

Previously, the rule incorrectly flagged parameters when a method had
the same name as an outer function but called the outer function (not
itself):

  ```js
  function notRecursive(arg) {
    return arg;
  }

  const obj = {
    notRecursive(arg) {
return notRecursive(arg); // This calls the outer function, not the
method itself
    },
  };
  ```

Biome now properly distinguishes between these cases and will not report
false positives.

- [#&#8203;8097](https://redirect.github.com/biomejs/biome/pull/8097)
[`5fc5416`](5fc5416ae1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`noVueVIfWithVFor`](https://biomejs.dev/linter/rules/no-vue-v-if-with-v-for/).
This rule disallows `v-for` and `v-if` on the same element.

  ```vue
  <!-- Invalid -->
  <div v-for="item in items" v-if="item.isActive">
    {{ item.name }}
  </div>
  ```

- [#&#8203;8085](https://redirect.github.com/biomejs/biome/pull/8085)
[`7983940`](798394072b)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the
nursery rule [`noForIn`](https://biomejs.dev/linter/rules/no-for-in/).
Disallow iterating using a for-in loop.

  **Invalid:**

  ```js
  for (const i in array) {
    console.log(i, array[i]);
  }
  ```

- [#&#8203;8086](https://redirect.github.com/biomejs/biome/pull/8086)
[`2b41e82`](2b41e82de4)
Thanks [@&#8203;matanshavit](https://redirect.github.com/matanshavit)! -
Fixed
[#&#8203;8045](https://redirect.github.com/biomejs/biome/issues/8045):
The
[`noNestedTernary`](https://biomejs.dev/linter/rules/no-nested-ternary/)
rule now correctly detects nested ternary expressions even when they are
wrapped in parentheses (e.g. `foo ? (bar ? 1 : 2) : 3`).

Previously, the rule would not flag nested ternaries like `foo ? (bar ?
1 : 2) : 3` because the parentheses prevented detection. The rule now
looks through parentheses to identify nested conditionals.

  **Previously not detected (now flagged):**

  ```js
  const result = foo ? (bar ? 1 : 2) : 3;
  ```

  **Still valid (non-nested with parentheses):**

  ```js
  const result = foo ? bar : baz;
  ```

- [#&#8203;8075](https://redirect.github.com/biomejs/biome/pull/8075)
[`e403868`](e403868e22)
Thanks [@&#8203;YTomm](https://redirect.github.com/YTomm)! - Fixed
[#&#8203;7948](https://redirect.github.com/biomejs/biome/issues/7948):
The `useReadonlyClassProperties` code fix when `checkAllProperties` is
enabled will no longer insert a newline after `readonly` and the class
property.

- [#&#8203;8102](https://redirect.github.com/biomejs/biome/pull/8102)
[`47d940e`](47d940e30c)
Thanks [@&#8203;lucasweng](https://redirect.github.com/lucasweng)! -
Fixed
[#&#8203;8027](https://redirect.github.com/biomejs/biome/issues/8027).
[`useReactFunctionComponents`](https://biomejs.dev/linter/rules/use-react-function-components/)
no longer reports class components that implement `componentDidCatch`
using class expressions.

The rule now correctly recognizes error boundaries defined as class
expressions:

  ```jsx
  const ErrorBoundary = class extends Component {
    componentDidCatch(error, info) {}

    render() {
      return this.props.children;
    }
  };
  ```

- [#&#8203;8097](https://redirect.github.com/biomejs/biome/pull/8097)
[`5fc5416`](5fc5416ae1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`useVueHyphenatedAttributes`](https://biomejs.dev/linter/rules/use-vue-hyphenated-attributes/),
which encourages using kebab case for attribute names, per the Vue style
guide's recommendations.

  ```vue
  <!-- Invalid -->
  <MyComponent myProp="value" />

  <!-- Valid -->
  <MyComponent my-prop="value" />
  ```

- [#&#8203;8108](https://redirect.github.com/biomejs/biome/pull/8108)
[`0f0a658`](0f0a65884b)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the
nursery rule
[`noSyncScripts`](https://biomejs.dev/linter/rules/no-sync-scripts/).
Prevent the usage of synchronous scripts.

  **Invalid:**

  ```jsx
  <script src="https://third-party-script.js" />
  ```

  **Valid:**

  ```jsx
  <script src="https://third-party-script.js" async />
  <script src="https://third-party-script.js" defer />
  ```

- [#&#8203;8098](https://redirect.github.com/biomejs/biome/pull/8098)
[`1fdcaf0`](1fdcaf0336)
Thanks [@&#8203;Jayllyz](https://redirect.github.com/Jayllyz)! - Added
documentation URLs to rule descriptions in the JSON schema.

- [#&#8203;8097](https://redirect.github.com/biomejs/biome/pull/8097)
[`5fc5416`](5fc5416ae1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed an
issue with the HTML parser where it would treat Vue directives with
dynamic arguments as static arguments instead.

- [#&#8203;7684](https://redirect.github.com/biomejs/biome/pull/7684)
[`f4433b3`](f4433b34e3)
Thanks
[@&#8203;vladimir-ivanov](https://redirect.github.com/vladimir-ivanov)!
- Changed
[`noUnusedPrivateClassMembers`](https://biomejs.dev/linter/rules/no-unused-private-class-members/)
to align more fully with meaningful reads.

This rule now distinguishes more carefully between writes and reads of
private class members.

  - A *meaningful read* is any access that affects program behavior.
- For example, `this.#x += 1` both reads and writes `#x`, so it counts
as usage.
- Pure writes without a read (e.g. `this.#x = 1` with no getter) are no
longer treated as usage.

This change ensures that private members are only considered “used” when
they are actually read in a way that influences execution.

  ***Invalid examples (previously valid)***

  ```ts
  class UsedMember {
    set #x(value) {
      doSomething(value);
    }

    foo() {
// This assignment does not actually read #x, because there is no
getter.
// Previously, this was considered a usage, but now it’s correctly
flagged.
      this.#x = 1;
    }
  }
  ```

  ***Valid example (Previously invalid)***

  ```js
  class Foo {
    #usedOnlyInWriteStatement = 5;

    method() {
// This counts as a meaningful read because we both read and write the
value.
      this.#usedOnlyInWriteStatement += 42;
    }
  }
  ```

- [#&#8203;7684](https://redirect.github.com/biomejs/biome/pull/7684)
[`f4433b3`](f4433b34e3)
Thanks
[@&#8203;vladimir-ivanov](https://redirect.github.com/vladimir-ivanov)!
- **Improved detection of used private class members**

The analysis for private class members has been improved: now the tool
only considers a private member “used” if it is actually referenced in
the code.

- Previously, some private members might have been reported as used even
if they weren’t actually accessed.
- With this change, only members that are truly read or called in the
code are counted as used.
- Members that are never accessed will now be correctly reported as
unused.

This makes reports about unused private members more accurate and helps
you clean up truly unused code.

  ***Example (previously valid)***

  ```ts
  type YesNo = "yes" | "no";

  export class SampleYesNo {
    private yes: () => void;
    private no: () => void;
    private dontKnow: () => void; // <- will now report as unused

    on(action: YesNo): void {
      this[action]();
    }
  }
  ```

- [#&#8203;7681](https://redirect.github.com/biomejs/biome/pull/7681)
[`b406db6`](b406db667f)
Thanks [@&#8203;kedevked](https://redirect.github.com/kedevked)! - Added
the new lint rule,
[`useSpread`](https://biomejs.dev/linter/rules/use-spread/), ported from
the ESLint rule
[`prefer-spread`](https://eslint.org/docs/latest/rules/prefer-spread).

This rule enforces the use of the **spread syntax** (`...`) over
`Function.prototype.apply()` when calling variadic functions, as spread
syntax is generally more concise and idiomatic in modern JavaScript
(ES2015+).

  The rule provides a safe fix.

##### Invalid

```js
Math.max.apply(Math, args);
foo.apply(undefined, args);
obj.method.apply(obj, args);
```

##### Valid

```js
Math.max(...args);
foo(...args);
obj.method(...args);

// Allowed: cases where the `this` binding is intentionally changed
foo.apply(otherObj, args);
```

- [#&#8203;7287](https://redirect.github.com/biomejs/biome/pull/7287)
[`aa55c8d`](aa55c8d572)
Thanks [@&#8203;ToBinio](https://redirect.github.com/ToBinio)! - Fixed
[#&#8203;7205](https://redirect.github.com/biomejs/biome/issues/7205):
The
[`noDuplicateTestHooks`](https://biomejs.dev/linter/rules/no-duplicate-test-hooks/)
rule now treats chained describe variants (e.g., describe.each/for/todo)
as proper describe scopes, eliminating false positives.

  The following code will no longer be a false positive:

  ```js
  describe("foo", () => {
    describe.for([])("baz", () => {
      beforeEach(() => {});
    });

    describe.todo("qux", () => {
      beforeEach(() => {});
    });

    describe.todo.each([])("baz", () => {
      beforeEach(() => {});
    });
  });
  ```

- [#&#8203;8013](https://redirect.github.com/biomejs/biome/pull/8013)
[`0c0edd4`](0c0edd4311)
Thanks [@&#8203;Jayllyz](https://redirect.github.com/Jayllyz)! - Added
the GraphQL nursery rule
[`useUniqueGraphqlOperationName`](https://biomejs.dev/linter/rules/use-unique-graphql-operation-name).
This rule ensures that all GraphQL operations within a document have
unique names.

  **Invalid:**

  ```graphql
  query user {
    user {
      id
    }
  }

  query user {
    user {
      id
      email
    }
  }
  ```

  **Valid:**

  ```graphql
  query user {
    user {
      id
    }
  }

  query userWithEmail {
    user {
      id
      email
    }
  }
  ```

- [#&#8203;8084](https://redirect.github.com/biomejs/biome/pull/8084)
[`c2983f9`](c2983f9776)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed
[#&#8203;8080](https://redirect.github.com/biomejs/biome/issues/8080):
The HTML parser, when parsing Vue, can now properly handle Vue
directives with no argument, modifiers, or initializer (e.g. `v-else`).
It will no longer treat subsequent valid attributes as bogus.

  ```vue
  <p v-else class="flex">World</p>
  <!-- Fixed: class now gets parsed as it's own attribute -->
  ```

- [#&#8203;8104](https://redirect.github.com/biomejs/biome/pull/8104)
[`041196b`](041196bc2a)
Thanks [@&#8203;Conaclos](https://redirect.github.com/Conaclos)! - Fixed
[`noInvalidUseBeforeDeclaration`](https://biomejs.dev/linter/rules/no-invalid-use-before-declaration/).
The rule no longer reports a use of an ambient variable before its
declarations.
  The rule also completely ignores TypeScript declaration files.
  The following code is no longer reported as invalid:

  ```ts
  CONSTANT;
  declare const CONSTANT: number;
  ```

- [#&#8203;8060](https://redirect.github.com/biomejs/biome/pull/8060)
[`ba7b076`](ba7b076589)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`useVueValidVBind`](https://biomejs.dev/linter/rules/use-vue-valid-v-bind/),
which enforces the validity of `v-bind` directives in Vue files.

  Invalid `v-bind` usages include:

  ```vue
  <Foo v-bind />
  <!-- Missing argument -->
  <Foo v-bind:foo />
  <!-- Missing value -->
  <Foo v-bind:foo.bar="baz" />
  <!-- Invalid modifier -->
  ```

- [#&#8203;8113](https://redirect.github.com/biomejs/biome/pull/8113)
[`fb8e3e7`](fb8e3e7677)
Thanks [@&#8203;Conaclos](https://redirect.github.com/Conaclos)! - Fixed
[`noInvalidUseBeforeDeclaration`](https://biomejs.dev/linter/rules/no-invalid-use-before-declaration/).
The rule now reports invalid use of classes, enums, and TypeScript's
import-equals before their declarations.

  The following code is now reported as invalid:

  ```js
  new C();
  class C {}
  ```

- [#&#8203;8077](https://redirect.github.com/biomejs/biome/pull/8077)
[`0170dcb`](0170dcb1f1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
rule
[`useVueValidVElseIf`](https://biomejs.dev/linter/rules/use-vue-valid-v-else-if/)
to enforce valid `v-else-if` directives in Vue templates. This rule
reports invalid `v-else-if` directives with missing conditional
expressions or when not preceded by a `v-if` or `v-else-if` directive.

- [#&#8203;8077](https://redirect.github.com/biomejs/biome/pull/8077)
[`0170dcb`](0170dcb1f1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
rule
[`useVueValidVElse`](https://biomejs.dev/linter/rules/use-vue-valid-v-else/)
to enforce valid `v-else` directives in Vue templates. This rule reports
`v-else` directives that are not preceded by a `v-if` or `v-else-if`
directive.

- [#&#8203;8077](https://redirect.github.com/biomejs/biome/pull/8077)
[`0170dcb`](0170dcb1f1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
rule
[`useVueValidVHtml`](https://biomejs.dev/linter/rules/use-vue-valid-v-html/)
to enforce valid usage of the `v-html` directive in Vue templates. This
rule reports `v-html` directives with missing expressions, unexpected
arguments, or unexpected modifiers.

- [#&#8203;8077](https://redirect.github.com/biomejs/biome/pull/8077)
[`0170dcb`](0170dcb1f1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
rule
[`useVueValidVIf`](https://biomejs.dev/linter/rules/use-vue-valid-v-if/)
to enforce valid `v-if` directives in Vue templates. It disallows
arguments and modifiers, and ensures a value is provided.

- [#&#8203;8077](https://redirect.github.com/biomejs/biome/pull/8077)
[`0170dcb`](0170dcb1f1)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
rule
[`useVueValidVOn`](https://biomejs.dev/linter/rules/use-vue-valid-v-on/)
to enforce valid `v-on` directives in Vue templates. This rule reports
invalid `v-on` / shorthand `@` directives with missing event names,
invalid modifiers, or missing handler expressions.

#### What's Changed

- refactor(cli/logging): removed duplication in
setup\_cli\_subscriber(...) by
[@&#8203;JadKHaddad](https://redirect.github.com/JadKHaddad) in
[#&#8203;7531](https://redirect.github.com/biomejs/biome/pull/7531)
- perf(parse/tailwind): use compact trie for lexing base names instead
of linear search by [@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;7977](https://redirect.github.com/biomejs/biome/pull/7977)
- feat(biome\_graphql\_analyze): implement
`useConsistentGraphqlDescriptions` by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;7672](https://redirect.github.com/biomejs/biome/pull/7672)
- fix: remove unexpected new line when adding a readonly class property
by [@&#8203;YTomm](https://redirect.github.com/YTomm) in
[#&#8203;8075](https://redirect.github.com/biomejs/biome/pull/8075)
- feat(html/analyze): add useVueValidVBind by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;8060](https://redirect.github.com/biomejs/biome/pull/8060)
- fix(noDuplicateTestHook): detect more test function defintions by
[@&#8203;ToBinio](https://redirect.github.com/ToBinio) in
[#&#8203;7287](https://redirect.github.com/biomejs/biome/pull/7287)
- fix(noParametersOnlyUsedInRecursion): compare bindings for recursion
detection by
[@&#8203;matanshavit](https://redirect.github.com/matanshavit) in
[#&#8203;8026](https://redirect.github.com/biomejs/biome/pull/8026)
- feat(html/analyze): add `useVueValidVIf`, `useVueValidVElseIf`,
`useVueValidVElse`, `useVueValidVOn` and `useVueValidVHtml` by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;8077](https://redirect.github.com/biomejs/biome/pull/8077)
- refactor(lint): refactor NoParametersOnlyUsedInRecursion by
[@&#8203;matanshavit](https://redirect.github.com/matanshavit) in
[#&#8203;7970](https://redirect.github.com/biomejs/biome/pull/7970)
- fix(parse/html/vue): fix modifier list parser aggressively parsing
tokens it shouldn't by [@&#8203;dyc3](https://redirect.github.com/dyc3)
in [#&#8203;8084](https://redirect.github.com/biomejs/biome/pull/8084)
- feat(js\_analyze): implement noForIn by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;8085](https://redirect.github.com/biomejs/biome/pull/8085)
- fix(noNestedTernary): detect nested ternaries wrapped in parentheses
by [@&#8203;matanshavit](https://redirect.github.com/matanshavit) in
[#&#8203;8086](https://redirect.github.com/biomejs/biome/pull/8086)
- refactor: migrate to schemars v1 by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8087](https://redirect.github.com/biomejs/biome/pull/8087)
- feat(graphql\_analyze): add `useUniqueGraphqlOperationName` by
[@&#8203;Jayllyz](https://redirect.github.com/Jayllyz) in
[#&#8203;8013](https://redirect.github.com/biomejs/biome/pull/8013)
- chore: regression schemars v1 by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8092](https://redirect.github.com/biomejs/biome/pull/8092)
- refactor(core): actions and pull diagnostics by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8082](https://redirect.github.com/biomejs/biome/pull/8082)
- chore: enable oidc publishing by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8074](https://redirect.github.com/biomejs/biome/pull/8074)
- chore: expose schema generation function by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8093](https://redirect.github.com/biomejs/biome/pull/8093)
- feat: add useSpread rule by
[@&#8203;kedevked](https://redirect.github.com/kedevked) in
[#&#8203;7681](https://redirect.github.com/biomejs/biome/pull/7681)
- chore(core): add CSS variant information to the source file by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8095](https://redirect.github.com/biomejs/biome/pull/8095)
- feat(schema): add docs URLs to rule description by
[@&#8203;Jayllyz](https://redirect.github.com/Jayllyz) in
[#&#8203;8098](https://redirect.github.com/biomejs/biome/pull/8098)
- feat(js\_analyze): implement useFind by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;8100](https://redirect.github.com/biomejs/biome/pull/8100)
- feat(biome\_js\_analyze): align
no\_unused\_private\_class\_members\_with\_semantic\_class and dynamic
prop access by
[@&#8203;vladimir-ivanov](https://redirect.github.com/vladimir-ivanov)
in [#&#8203;7684](https://redirect.github.com/biomejs/biome/pull/7684)
- feat(analyze): implement `noSyncScripts` by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;8108](https://redirect.github.com/biomejs/biome/pull/8108)
- fix(noInvalidUseBeforeDeclaration): don't report use before ambient
var declaration by
[@&#8203;Conaclos](https://redirect.github.com/Conaclos) in
[#&#8203;8104](https://redirect.github.com/biomejs/biome/pull/8104)
- fix(noInvalidUseBeforeDeclaration): handle class, enum, import-equals
by [@&#8203;Conaclos](https://redirect.github.com/Conaclos) in
[#&#8203;8113](https://redirect.github.com/biomejs/biome/pull/8113)
- fix(useReactFunctionComponents): handle class expressions with
componentDidCatch by
[@&#8203;lucasweng](https://redirect.github.com/lucasweng) in
[#&#8203;8102](https://redirect.github.com/biomejs/biome/pull/8102)
- feat(lint/vue): add `noVueVIfWithVFor`, `useVueHyphenatedAttributes`
by [@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;8097](https://redirect.github.com/biomejs/biome/pull/8097)
- chore(deps): update github-actions by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8121](https://redirect.github.com/biomejs/biome/pull/8121)
- chore(deps): update dependency
[@&#8203;types/node](https://redirect.github.com/types/node) to v22.19.1
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8122](https://redirect.github.com/biomejs/biome/pull/8122)
- chore(deps): update dependency rust to v1.91.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8123](https://redirect.github.com/biomejs/biome/pull/8123)
- chore(deps): update taiki-e/install-action action to v2.62.52 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8126](https://redirect.github.com/biomejs/biome/pull/8126)
- chore(deps): update typescript-eslint monorepo to v8.46.4 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8127](https://redirect.github.com/biomejs/biome/pull/8127)
- fix(biome\_js\_analyze): fix useValidLang rejecting BCP 47 language
tags with script subtags by
[@&#8203;hirokiokada77](https://redirect.github.com/hirokiokada77) in
[#&#8203;8118](https://redirect.github.com/biomejs/biome/pull/8118)
- fix(deps): update
[@&#8203;biomejs](https://redirect.github.com/biomejs) packages by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8129](https://redirect.github.com/biomejs/biome/pull/8129)
- fix(deps): update rust crates by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8130](https://redirect.github.com/biomejs/biome/pull/8130)
- chore(deps): update rust crate schemars to 1.1.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8124](https://redirect.github.com/biomejs/biome/pull/8124)
- chore(deps): update rust crate windows to 0.62.2 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8053](https://redirect.github.com/biomejs/biome/pull/8053)
- chore(deps): update
[@&#8203;biomejs](https://redirect.github.com/biomejs) packages (major)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8131](https://redirect.github.com/biomejs/biome/pull/8131)
- chore(deps): update dependency
[@&#8203;types/node](https://redirect.github.com/types/node) to v24 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;8132](https://redirect.github.com/biomejs/biome/pull/8132)
- chore: schema regression rule domains by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8133](https://redirect.github.com/biomejs/biome/pull/8133)
- chore: disable docstrings in coderabbit by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8134](https://redirect.github.com/biomejs/biome/pull/8134)
- ci: release by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;8076](https://redirect.github.com/biomejs/biome/pull/8076)

#### New Contributors

- [@&#8203;JadKHaddad](https://redirect.github.com/JadKHaddad) made
their first contribution in
[#&#8203;7531](https://redirect.github.com/biomejs/biome/pull/7531)
- [@&#8203;YTomm](https://redirect.github.com/YTomm) made their first
contribution in
[#&#8203;8075](https://redirect.github.com/biomejs/biome/pull/8075)
- [@&#8203;ToBinio](https://redirect.github.com/ToBinio) made their
first contribution in
[#&#8203;7287](https://redirect.github.com/biomejs/biome/pull/7287)
- [@&#8203;hirokiokada77](https://redirect.github.com/hirokiokada77)
made their first contribution in
[#&#8203;8118](https://redirect.github.com/biomejs/biome/pull/8118)

**Full Changelog**:
<https://github.com/biomejs/biome/compare/@biomejs/biome@2.3.5...@&#8203;biomejs/biome@2.3.6>

###
[`v2.3.5`](e8b67537fb...0a2f6173be)

###
[`v2.3.4`](fd282fc5f4...e8b67537fb)

###
[`v2.3.3`](6d95a67d7a...fd282fc5f4)

###
[`v2.3.2`](be79a6b41b...6d95a67d7a)

###
[`v2.3.1`](53ffa8bf30...be79a6b41b)

</details>

<details>
<summary>evanw/esbuild (esbuild)</summary>

###
[`v0.27.0`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0270)

**This release deliberately contains backwards-incompatible changes.**
To avoid automatically picking up releases like this, you should either
be pinning the exact version of `esbuild` in your `package.json` file
(recommended) or be using a version range syntax that only accepts patch
upgrades such as `^0.26.0` or `~0.26.0`. See npm's documentation about
[semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more
information.

- Use `Uint8Array.fromBase64` if available
([#&#8203;4286](https://redirect.github.com/evanw/esbuild/issues/4286))

With this release, esbuild's `binary` loader will now use the new
[`Uint8Array.fromBase64`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/fromBase64)
function unless it's unavailable in the configured target environment.
If it's unavailable, esbuild's previous code for this will be used as a
fallback. Note that this means you may now need to specify `target` when
using this feature with Node (for example `--target=node22`) unless
you're using Node v25+.

- Update the Go compiler from v1.23.12 to v1.25.4
([#&#8203;4208](https://redirect.github.com/evanw/esbuild/issues/4208),
[#&#8203;4311](https://redirect.github.com/evanw/esbuild/pull/4311))

  This raises the operating system requirements for running esbuild:

  - Linux: now requires a kernel version of 3.2 or later
  - macOS: now requires macOS 12 (Monterey) or later

###
[`v0.25.12`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#02512)

[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.11...v0.25.12)

- Fix a minification regression with CSS media queries
([#&#8203;4315](https://redirect.github.com/evanw/esbuild/issues/4315))

The previous release introduced support for parsing media queries which
unintentionally introduced a regression with the removal of duplicate
media rules during minification. Specifically the grammar for `@media
<media-type> and <media-condition-without-or> { ... }` was missing an
equality check for the `<media-condition-without-or>` part, so rules
with different suffix clauses in this position would incorrectly compare
equal and be deduplicated. This release fixes the regression.

- Update the list of known JavaScript globals
([#&#8203;4310](https://redirect.github.com/evanw/esbuild/issues/4310))

This release updates esbuild's internal list of known JavaScript
globals. These are globals that are known to not have side-effects when
the property is accessed. For example, accessing the global `Array`
property is considered to be side-effect free but accessing the global
`scrollY` property can trigger a layout, which is a side-effect. This is
used by esbuild's tree-shaking to safely remove unused code that is
known to be side-effect free. This update adds the following global
properties:

  From [ES2017](https://tc39.es/ecma262/2017/):

  - `Atomics`
  - `SharedArrayBuffer`

  From [ES2020](https://tc39.es/ecma262/2020/):

  - `BigInt64Array`
  - `BigUint64Array`

  From [ES2021](https://tc39.es/ecma262/2021/):

  - `FinalizationRegistry`
  - `WeakRef`

  From [ES2025](https://tc39.es/ecma262/2025/):

  - `Float16Array`
  - `Iterator`

Note that this does not indicate that constructing any of these objects
is side-effect free, just that accessing the identifier is side-effect
free. For example, this now allows esbuild to tree-shake classes that
extend from `Iterator`:

  ```js
  // This can now be tree-shaken by esbuild:
  class ExampleIterator extends Iterator {}
  ```

- Add support for the new `@view-transition` CSS rule
([#&#8203;4313](https://redirect.github.com/evanw/esbuild/pull/4313))

With this release, esbuild now has improved support for pretty-printing
and minifying the new `@view-transition` rule (which esbuild was
previously unaware of):

  ```css
  /* Original code */
  @&#8203;view-transition {
    navigation: auto;
    types: check;
  }

  /* Old output */
  @&#8203;view-transition { navigation: auto; types: check; }

  /* New output */
  @&#8203;view-transition {
    navigation: auto;
    types: check;
  }
  ```

The new view transition feature provides a mechanism for creating
animated transitions between documents in a multi-page app. You can read
more about view transition rules
[here](https://developer.mozilla.org/en-US/docs/Web/CSS/@&#8203;view-transition).

This change was contributed by
[@&#8203;yisibl](https://redirect.github.com/yisibl).

- Trim CSS rules that will never match

The CSS minifier will now remove rules whose selectors contain `:is()`
and `:where()` as those selectors will never match. These selectors can
currently be automatically generated by esbuild when you give esbuild
nonsensical input such as the following:

  ```css
  /* Original code */
  div:before {
    color: green;
    &.foo {
      color: red;
    }
  }

  /* Old output (with --supported:nesting=false --minify) */
  div:before{color:green}:is().foo{color:red}

  /* New output (with --supported:nesting=false --minify) */
  div:before{color:green}
  ```

This input is nonsensical because CSS nesting is (unfortunately) not
supported inside of pseudo-elements such as `:before`. Currently esbuild
generates a rule containing `:is()` in this case when you tell esbuild
to transform nested CSS into non-nested CSS. I think it's reasonable to
do that as it sort of helps explain what's going on (or at least
indicates that something is wrong in the output). It shouldn't be
present in minified code, however, so this release now strips it out.

</details>

<details>
<summary>alecthomas/kong (github.com/alecthomas/kong)</summary>

###
[`v1.13.0`](https://redirect.github.com/alecthomas/kong/compare/v1.12.1...v1.13.0)

[Compare
Source](https://redirect.github.com/alecthomas/kong/compare/v1.12.1...v1.13.0)

</details>

<details>
<summary>golang/go (go)</summary>

###
[`v1.25.4`](https://redirect.github.com/golang/go/compare/go1.25.3...go1.25.4)

</details>

<details>
<summary>sharkdp/hyperfine (hyperfine)</summary>

###
[`v1.20.0`](https://redirect.github.com/sharkdp/hyperfine/blob/HEAD/CHANGELOG.md#v1200)

#### Features

- Add `--reference-name` option to give a meaningful name to the
reference command, see
[#&#8203;808](https://redirect.github.com/sharkdp/hyperfine/issues/808)
([@&#8203;niklasdewally](https://redirect.github.com/niklasdewally))
- The `--ignore-failure` option now supports a comma-separated list of
exit codes to ignore (e.g., `--ignore-failure=1,2`), see
[#&#8203;836](https://redirect.github.com/sharkdp/hyperfine/issues/836)
([@&#8203;sharkdp](https://redirect.github.com/sharkdp))
- Python scripts: Add `--time-unit` option to `advanced_statistics.py`
([@&#8203;sharkdp](https://redirect.github.com/sharkdp))
- Python scripts: Add new `plot_benchmarks.py` script for plotting
collections of benchmarks, see
[#&#8203;806](https://redirect.github.com/sharkdp/hyperfine/issues/806)
([@&#8203;marxin](https://redirect.github.com/marxin))

#### Bugfixes

- Fix bug where naming individual commands with parameter scan was not
working correctly, see
[#&#8203;794](https://redirect.github.com/sharkdp/hyperfine/issues/794)
([@&#8203;teofr](https://redirect.github.com/teofr))

#### Other

- Restrict `cat` tests to Unix environments, see
[#&#8203;776](https://redirect.github.com/sharkdp/hyperfine/issues/776)
and
[#&#8203;777](https://redirect.github.com/sharkdp/hyperfine/issues/777)
([@&#8203;ritvikos](https://redirect.github.com/ritvikos))

</details>

<details>
<summary>caarlos0/svu (svu)</summary>

###
[`v3.3.0`](https://redirect.github.com/caarlos0/svu/releases/tag/v3.3.0)

#### Changelog

##### New Features

-
[`0d2aa97`](0d2aa97062):
feat: add `--json` flag
([#&#8203;261](https://redirect.github.com/caarlos0/svu/issues/261))
([@&#8203;Nadim147c](https://redirect.github.com/Nadim147c))
-
[`b359291`](b359291f58):
feat: beautiful --help with fang
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))

##### Bug fixes

-
[`28f88fc`](28f88fca94):
fix: gitignore
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))
-
[`3bf9b66`](3bf9b66033):
fix: lint issues
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))

##### Other work

-
[`c669d8f`](c669d8f20c):
build: go 1.25
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))
-
[`0dfc805`](0dfc805fa0):
ci(deps): bump anchore/scan-action in the actions group
([#&#8203;266](https://redirect.github.com/caarlos0/svu/issues/266))
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])
-
[`752527b`](752527b8ce):
ci: add golangici-lint config
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))
-
[`7a5f75e`](7a5f75ee0b):
ci: consolidated security jobs
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))
-
[`7ae0db3`](7ae0db3fc6):
ci: dependabot update
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))
-
[`d9cfe53`](d9cfe533c6):
ci: update goreleaser
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))
-
[`97e3dcf`](97e3dcfd23):
ci: update goreleaser
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))
-
[`04a8379`](04a83790cc):
ci: update goreleaser config
([@&#8203;caarlos0](https://redirect.github.com/caarlos0))

**Full Changelog**:
<https://github.com/caarlos0/svu/compare/v3.2.4...v3.3.0>

***

*Released with [GoReleaser Pro](https://goreleaser.com/pro)!*

</details>

<details>
<summary>astral-sh/uv (uv)</summary>

###
[`v0.9.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0910)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.9...0.9.10)

Released on 2025-11-17.

##### Enhancements

- Add support for `SSL_CERT_DIR`
([#&#8203;16473](https://redirect.github.com/astral-sh/uv/pull/16473))
- Enforce UTF‑8-encoded license files during `uv build`
([#&#8203;16699](https://redirect.github.com/astral-sh/uv/pull/16699))
- Error when a `project.license-files` glob matches nothing
([#&#8203;16697](https://redirect.github.com/astral-sh/uv/pull/16697))
- `pip install --target` (and `sync`) install Python if necessary
([#&#8203;16694](https://redirect.github.com/astral-sh/uv/pull/16694))
- Account for `python_downloads_json_url` in pre-release Python version
warnings
([#&#8203;16737](https://redirect.github.com/astral-sh/uv/pull/16737))
- Support HTTP/HTTPS URLs in `uv python --python-downloads-json-url`
([#&#8203;16542](https://redirect.github.com/astral-sh/uv/pull/16542))

##### Preview features

- Add support for `--upgrade` in `uv python install`
([#&#8203;16676](https://redirect.github.com/astral-sh/uv/pull/16676))
- Fix handling of `python install --default` for pre-release Python
versions
([#&#8203;16706](https://redirect.github.com/astral-sh/uv/pull/16706))
- Add `uv workspace list` to list workspace members
([#&#8203;16691](https://redirect.github.com/astral-sh/uv/pull/16691))

##### Bug fixes

- Don't check file URLs for ambiguously parsed credentials
([#&#8203;16759](https://redirect.github.com/astral-sh/uv/pull/16759))

##### Documentation

- Add a "storage" reference document
([#&#8203;15954](https://redirect.github.com/astral-sh/uv/pull/15954))

###
[`v0.9.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#099)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.8...0.9.9)

Released on 2025-11-12.

##### Deprecations

- Deprecate use of `--project` in `uv init`
([#&#8203;16674](https://redirect.github.com/astral-sh/uv/pull/16674))

##### Enhancements

- Add iOS support to Python interpreter discovery
([#&#8203;16686](https://redirect.github.com/astral-sh/uv/pull/16686))
- Reject ambiguously parsed URLs
([#&#8203;16622](https://redirect.github.com/astral-sh/uv/pull/16622))
- Allow explicit values in `uv version --bump`
([#&#8203;16555](https://redirect.github.com/astral-sh/uv/pull/16555))
- Warn on use of managed pre-release Python versions when a stable
version is available
([#&#8203;16619](https://redirect.github.com/astral-sh/uv/pull/16619))
- Allow signing trampolines on Windows by using `.rcdata` to store
metadata
([#&#8203;15068](https://redirect.github.com/astral-sh/uv/pull/15068))
- Add `--only-emit-workspace` and similar variants to `uv export`
([#&#8203;16681](https://redirect.github.com/astral-sh/uv/pull/16681))

##### Preview features

- Add `uv workspace dir` command
([#&#8203;16678](https://redirect.github.com/astral-sh/uv/pull/16678))
- Add `uv workspace metadata` command
([#&#8203;16516](https://redirect.github.com/astral-sh/uv/pull/16516))

##### Configuration

- Add `UV_NO_DEFAULT_GROUPS` environment variable
([#&#8203;16645](https://redirect.github.com/astral-sh/uv/pull/16645))

##### Bug fixes

- Remove `torch-model-archiver` and `torch-tb-profiler` from PyTorch
backend
([#&#8203;16655](https://redirect.github.com/astral-sh/uv/pull/16655))
- Fix Pixi environment detection
([#&#8203;16585](https://redirect.github.com/astral-sh/uv/pull/16585))

##### Documentation

- Fix `CMD` path in FastAPI Dockerfile
([#&#8203;16701](https://redirect.github.com/astral-sh/uv/pull/16701))

###
[`v0.9.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#098)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.7...0.9.8)

Released on 2025-11-07.

##### Enhancements

- Accept multiple packages in `uv export`
([#&#8203;16603](https://redirect.github.com/astral-sh/uv/pull/16603))
- Accept multiple packages in `uv sync`
([#&#8203;16543](https://redirect.github.com/astral-sh/uv/pull/16543))
- Add a `uv cache size` command
([#&#8203;16032](https://redirect.github.com/astral-sh/uv/pull/16032))
- Add prerelease guidance for build-system resolution failures
([#&#8203;16550](https://redirect.github.com/astral-sh/uv/pull/16550))
- Allow Python requests to include `+gil` to require a GIL-enabled
interpreter
([#&#8203;16537](https://redirect.github.com/astral-sh/uv/pull/16537))
- Avoid pluralizing 'retry' for single value
([#&#8203;16535](https://redirect.github.com/astral-sh/uv/pull/16535))
- Enable first-class dependency exclusions
([#&#8203;16528](https://redirect.github.com/astral-sh/uv/pull/16528))
- Fix inclusive constraints on available package versions in resolver
errors
([#&#8203;16629](https://redirect.github.com/astral-sh/uv/pull/16629))
- Improve `uv init` error for invalid directory names
([#&#8203;16554](https://redirect.github.com/astral-sh/uv/pull/16554))
- Show help on `uv build -h`
([#&#8203;16632](https://redirect.github.com/astral-sh/uv/pull/16632))
- Include the Python variant suffix in "Using Python ..." messages
([#&#8203;16536](https://redirect.github.com/astral-sh/uv/pull/16536))
- Log most recently modified file for cache-keys
([#&#8203;16338](https://redirect.github.com/astral-sh/uv/pull/16338))
- Update Docker builds to use nightly Rust toolchain with musl v1.2.5
([#&#8203;16584](https://redirect.github.com/astral-sh/uv/pull/16584))

##### Configuration

- Expose `UV_NO_GROUP` as an environment variable
([#&#8203;16529](https://redirect.github.com/astral-sh/uv/pull/16529))
- Add `UV_NO_SOURCES` as an environment variable
([#&#8203;15883](https://redirect.github.com/astral-sh/uv/pull/15883))

##### Bug fixes

- Allow `--check` and `--locked` to be used together in `uv lock`
([#&#8203;16538](https://redirect.github.com/astral-sh/uv/pull/16538))
- Allow for unnormalized names in the METADATA file
([#&#8203;16547](https://redirect.github.com/astral-sh/uv/issues/16547))
([#&#8203;16548](https://redirect.github.com/astral-sh/uv/pull/16548))
- Fix missing value\_type for `default-groups` in schema
([#&#8203;16575](https://redirect.github.com/astral-sh/uv/pull/16575))
- Respect multi-GPU outputs in `nvidia-smi`
([#&#8203;15460](https://redirect.github.com/astral-sh/uv/pull/15460))
- Fix DNS lookup errors in Docker containers
([#&#8203;8450](https://redirect.github.com/astral-sh/uv/issues/8450))

##### Documentation

- Fix typo in uv tool list doc
([#&#8203;16625](https://redirect.github.com/astral-sh/uv/pull/16625))
- Note `uv pip list` name normalization in docs
([#&#8203;13210](https://redirect.github.com/astral-sh/uv/pull/13210))

##### Other changes

- Update Rust toolchain to 1.91 and MSRV to 1.89
([#&#8203;16531](https://redirect.github.com/astral-sh/uv/pull/16531))

###
[`v0.9.7`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#097)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.6...0.9.7)

Released on 2025-10-30.

##### Enhancements

- Add Windows x86-32 emulation support to interpreter architecture
checks
([#&#8203;13475](https://redirect.github.com/astral-sh/uv/pull/13475))
- Improve readability of progress bars
([#&#8203;16509](https://redirect.github.com/astral-sh/uv/pull/16509))
- Add GitHub attestations for uv release artifacts
([#&#8203;11357](https://redirect.github.com/astral-sh/uv/pull/11357))

##### Bug fixes

- Drop terminal coloring from `uv auth token` output
([#&#8203;16504](https://redirect.github.com/astral-sh/uv/pull/16504))
- Don't use UV\_LOCKED to enable `--check` flag
([#&#8203;16521](https://redirect.github.com/astral-sh/uv/pull/16521))

###
[`v0.9.6`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#096)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.5...0.9.6)

Released on 2025-10-29.

This release contains an upgrade to Astral's fork of `async_zip`, which
addresses potential sources of ZIP parsing differentials between uv and
other Python packaging tooling. See
[GHSA-pqhf-p39g-3x64](https://redirect.github.com/astral-sh/uv/security/advisories/GHSA-pqhf-p39g-3x64)
for additional details.

##### Security

- Address ZIP parsing differentials
([GHSA-pqhf-p39g-3x64](https://redirect.github.com/astral-sh/uv/security/advisories/GHSA-pqhf-p39g-3x64))

##### Python

- Upgrade GraalPy to 25.0.1
([#&#8203;16401](https://redirect.github.com/astral-sh/uv/pull/16401))

##### Enhancements

- Add `--clear` to `uv build` to remove old build artifacts
([#&#8203;16371](https://redirect.github.com/astral-sh/uv/pull/16371))
- Add `--no-create-gitignore` to `uv build`
([#&#8203;16369](https://redirect.github.com/astral-sh/uv/pull/16369))
- Do not error when a virtual environment directory cannot be removed
due to a busy error
([#&#8203;16394](https://redirect.github.com/astral-sh/uv/pull/16394))
- Improve hint on `pip install --system` when externally managed
([#&#8203;16392](https://redirect.github.com/astral-sh/uv/pull/16392))
- Running `uv lock --check` with outdated lockfile will print that
`--check` was passed, instead of `--locked`
([#&#8203;16322](https://redirect.github.com/astral-sh/uv/pull/16322))
- Update `uv init` template for Maturin
([#&#8203;16449](https://redirect.github.com/astral-sh/uv/pull/16449))
- Improve ordering of Python sources in logs
([#&#8203;16463](https://redirect.github.com/astral-sh/uv/pull/16463))
- Restore DockerHub release images and annotations
([#&#8203;16441](https://redirect.github.com/astral-sh/uv/pull/16441))

##### Bug fixes

- Check for matching Python implementation during `uv python upgrade`
([#&#8203;16420](https://redirect.github.com/astral-sh/uv/pull/16420))
- Deterministically order `--find-links` distributions
([#&#8203;16446](https://redirect.github.com/astral-sh/uv/pull/16446))
- Don't panic in `uv export --frozen` when the lockfile is outdated
([#&#8203;16407](https://redirect.github.com/astral-sh/uv/pull/16407))
- Fix root of `uv tree` when `--package` is used with circular
dependencies
([#&#8203;15908](https://redirect.github.com/astral-sh/uv/pull/15908))
- Show package list with `pip freeze --quiet`
([#&#8203;16491](https://redirect.github.com/astral-sh/uv/pull/16491))
- Limit `uv auth login pyx.dev` retries to 60s
([#&#8203;16498](https://redirect.github.com/astral-sh/uv/pull/16498))
- Add an empty group with `uv add --group ... -r ...`
([#&#8203;16490](https://redirect.github.com/astral-sh/uv/pull/16490))

##### Documentation

- Update docs for maturin build backend init template
([#&#8203;16469](https://redirect.github.com/astral-sh/uv/pull/16469))
- Update docs to reflect previous changes to signal forwarding semantics
([#&#8203;16430](https://redirect.github.com/astral-sh/uv/pull/16430))
- Add instructions for installing via MacPorts
([#&#8203;16039](https://redirect.github.com/astral-sh/uv/pull/16039))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/alecthomas/chroma).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQyLjE2LjEiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-20 06:46:07 +11:00
..
2025-07-01 09:59:45 +10:00