mirror of
https://github.com/alecthomas/chroma.git
synced 2025-11-23 22:24:39 +02:00
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` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [esbuild](https://redirect.github.com/evanw/esbuild) | | minor | `0.25.11` -> `0.27.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [github.com/alecthomas/kong](https://redirect.github.com/alecthomas/kong) | require | minor | `v1.12.1` -> `v1.13.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [go](https://redirect.github.com/golang/go) | | patch | `1.25.3` -> `1.25.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](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` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [hyperfine](https://redirect.github.com/sharkdp/hyperfine) | | minor | `1.19.0` -> `1.20.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [svu](https://redirect.github.com/caarlos0/svu) | | minor | `3.2.4` -> `3.3.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.9.5` -> `0.9.10` | [](https://docs.renovatebot.com/merge-confidence/) | [](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 - [#​8100](https://redirect.github.com/biomejs/biome/pull/8100) [`82b9a8e`](82b9a8eb3d) Thanks [@​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); ``` - [#​8118](https://redirect.github.com/biomejs/biome/pull/8118) [`dbc7021`](dbc7021016) Thanks [@​hirokiokada77](https://redirect.github.com/hirokiokada77)! - Fixed [#​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> ``` - [#​7672](https://redirect.github.com/biomejs/biome/pull/7672) [`f1d5725`](f1d5725d06) Thanks [@​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 } ``` - [#​8026](https://redirect.github.com/biomejs/biome/pull/8026) [`f102661`](f10266193d) Thanks [@​matanshavit](https://redirect.github.com/matanshavit)! - Fixed [#​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. - [#​8097](https://redirect.github.com/biomejs/biome/pull/8097) [`5fc5416`](5fc5416ae1) Thanks [@​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> ``` - [#​8085](https://redirect.github.com/biomejs/biome/pull/8085) [`7983940`](798394072b) Thanks [@​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]); } ``` - [#​8086](https://redirect.github.com/biomejs/biome/pull/8086) [`2b41e82`](2b41e82de4) Thanks [@​matanshavit](https://redirect.github.com/matanshavit)! - Fixed [#​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; ``` - [#​8075](https://redirect.github.com/biomejs/biome/pull/8075) [`e403868`](e403868e22) Thanks [@​YTomm](https://redirect.github.com/YTomm)! - Fixed [#​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. - [#​8102](https://redirect.github.com/biomejs/biome/pull/8102) [`47d940e`](47d940e30c) Thanks [@​lucasweng](https://redirect.github.com/lucasweng)! - Fixed [#​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; } }; ``` - [#​8097](https://redirect.github.com/biomejs/biome/pull/8097) [`5fc5416`](5fc5416ae1) Thanks [@​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" /> ``` - [#​8108](https://redirect.github.com/biomejs/biome/pull/8108) [`0f0a658`](0f0a65884b) Thanks [@​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 /> ``` - [#​8098](https://redirect.github.com/biomejs/biome/pull/8098) [`1fdcaf0`](1fdcaf0336) Thanks [@​Jayllyz](https://redirect.github.com/Jayllyz)! - Added documentation URLs to rule descriptions in the JSON schema. - [#​8097](https://redirect.github.com/biomejs/biome/pull/8097) [`5fc5416`](5fc5416ae1) Thanks [@​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. - [#​7684](https://redirect.github.com/biomejs/biome/pull/7684) [`f4433b3`](f4433b34e3) Thanks [@​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; } } ``` - [#​7684](https://redirect.github.com/biomejs/biome/pull/7684) [`f4433b3`](f4433b34e3) Thanks [@​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](); } } ``` - [#​7681](https://redirect.github.com/biomejs/biome/pull/7681) [`b406db6`](b406db667f) Thanks [@​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); ``` - [#​7287](https://redirect.github.com/biomejs/biome/pull/7287) [`aa55c8d`](aa55c8d572) Thanks [@​ToBinio](https://redirect.github.com/ToBinio)! - Fixed [#​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(() => {}); }); }); ``` - [#​8013](https://redirect.github.com/biomejs/biome/pull/8013) [`0c0edd4`](0c0edd4311) Thanks [@​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 } } ``` - [#​8084](https://redirect.github.com/biomejs/biome/pull/8084) [`c2983f9`](c2983f9776) Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed [#​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 --> ``` - [#​8104](https://redirect.github.com/biomejs/biome/pull/8104) [`041196b`](041196bc2a) Thanks [@​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; ``` - [#​8060](https://redirect.github.com/biomejs/biome/pull/8060) [`ba7b076`](ba7b076589) Thanks [@​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 --> ``` - [#​8113](https://redirect.github.com/biomejs/biome/pull/8113) [`fb8e3e7`](fb8e3e7677) Thanks [@​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 {} ``` - [#​8077](https://redirect.github.com/biomejs/biome/pull/8077) [`0170dcb`](0170dcb1f1) Thanks [@​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. - [#​8077](https://redirect.github.com/biomejs/biome/pull/8077) [`0170dcb`](0170dcb1f1) Thanks [@​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. - [#​8077](https://redirect.github.com/biomejs/biome/pull/8077) [`0170dcb`](0170dcb1f1) Thanks [@​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. - [#​8077](https://redirect.github.com/biomejs/biome/pull/8077) [`0170dcb`](0170dcb1f1) Thanks [@​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. - [#​8077](https://redirect.github.com/biomejs/biome/pull/8077) [`0170dcb`](0170dcb1f1) Thanks [@​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 [@​JadKHaddad](https://redirect.github.com/JadKHaddad) in [#​7531](https://redirect.github.com/biomejs/biome/pull/7531) - perf(parse/tailwind): use compact trie for lexing base names instead of linear search by [@​dyc3](https://redirect.github.com/dyc3) in [#​7977](https://redirect.github.com/biomejs/biome/pull/7977) - feat(biome\_graphql\_analyze): implement `useConsistentGraphqlDescriptions` by [@​Netail](https://redirect.github.com/Netail) in [#​7672](https://redirect.github.com/biomejs/biome/pull/7672) - fix: remove unexpected new line when adding a readonly class property by [@​YTomm](https://redirect.github.com/YTomm) in [#​8075](https://redirect.github.com/biomejs/biome/pull/8075) - feat(html/analyze): add useVueValidVBind by [@​dyc3](https://redirect.github.com/dyc3) in [#​8060](https://redirect.github.com/biomejs/biome/pull/8060) - fix(noDuplicateTestHook): detect more test function defintions by [@​ToBinio](https://redirect.github.com/ToBinio) in [#​7287](https://redirect.github.com/biomejs/biome/pull/7287) - fix(noParametersOnlyUsedInRecursion): compare bindings for recursion detection by [@​matanshavit](https://redirect.github.com/matanshavit) in [#​8026](https://redirect.github.com/biomejs/biome/pull/8026) - feat(html/analyze): add `useVueValidVIf`, `useVueValidVElseIf`, `useVueValidVElse`, `useVueValidVOn` and `useVueValidVHtml` by [@​dyc3](https://redirect.github.com/dyc3) in [#​8077](https://redirect.github.com/biomejs/biome/pull/8077) - refactor(lint): refactor NoParametersOnlyUsedInRecursion by [@​matanshavit](https://redirect.github.com/matanshavit) in [#​7970](https://redirect.github.com/biomejs/biome/pull/7970) - fix(parse/html/vue): fix modifier list parser aggressively parsing tokens it shouldn't by [@​dyc3](https://redirect.github.com/dyc3) in [#​8084](https://redirect.github.com/biomejs/biome/pull/8084) - feat(js\_analyze): implement noForIn by [@​Netail](https://redirect.github.com/Netail) in [#​8085](https://redirect.github.com/biomejs/biome/pull/8085) - fix(noNestedTernary): detect nested ternaries wrapped in parentheses by [@​matanshavit](https://redirect.github.com/matanshavit) in [#​8086](https://redirect.github.com/biomejs/biome/pull/8086) - refactor: migrate to schemars v1 by [@​ematipico](https://redirect.github.com/ematipico) in [#​8087](https://redirect.github.com/biomejs/biome/pull/8087) - feat(graphql\_analyze): add `useUniqueGraphqlOperationName` by [@​Jayllyz](https://redirect.github.com/Jayllyz) in [#​8013](https://redirect.github.com/biomejs/biome/pull/8013) - chore: regression schemars v1 by [@​ematipico](https://redirect.github.com/ematipico) in [#​8092](https://redirect.github.com/biomejs/biome/pull/8092) - refactor(core): actions and pull diagnostics by [@​ematipico](https://redirect.github.com/ematipico) in [#​8082](https://redirect.github.com/biomejs/biome/pull/8082) - chore: enable oidc publishing by [@​ematipico](https://redirect.github.com/ematipico) in [#​8074](https://redirect.github.com/biomejs/biome/pull/8074) - chore: expose schema generation function by [@​ematipico](https://redirect.github.com/ematipico) in [#​8093](https://redirect.github.com/biomejs/biome/pull/8093) - feat: add useSpread rule by [@​kedevked](https://redirect.github.com/kedevked) in [#​7681](https://redirect.github.com/biomejs/biome/pull/7681) - chore(core): add CSS variant information to the source file by [@​ematipico](https://redirect.github.com/ematipico) in [#​8095](https://redirect.github.com/biomejs/biome/pull/8095) - feat(schema): add docs URLs to rule description by [@​Jayllyz](https://redirect.github.com/Jayllyz) in [#​8098](https://redirect.github.com/biomejs/biome/pull/8098) - feat(js\_analyze): implement useFind by [@​Netail](https://redirect.github.com/Netail) in [#​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 [@​vladimir-ivanov](https://redirect.github.com/vladimir-ivanov) in [#​7684](https://redirect.github.com/biomejs/biome/pull/7684) - feat(analyze): implement `noSyncScripts` by [@​Netail](https://redirect.github.com/Netail) in [#​8108](https://redirect.github.com/biomejs/biome/pull/8108) - fix(noInvalidUseBeforeDeclaration): don't report use before ambient var declaration by [@​Conaclos](https://redirect.github.com/Conaclos) in [#​8104](https://redirect.github.com/biomejs/biome/pull/8104) - fix(noInvalidUseBeforeDeclaration): handle class, enum, import-equals by [@​Conaclos](https://redirect.github.com/Conaclos) in [#​8113](https://redirect.github.com/biomejs/biome/pull/8113) - fix(useReactFunctionComponents): handle class expressions with componentDidCatch by [@​lucasweng](https://redirect.github.com/lucasweng) in [#​8102](https://redirect.github.com/biomejs/biome/pull/8102) - feat(lint/vue): add `noVueVIfWithVFor`, `useVueHyphenatedAttributes` by [@​dyc3](https://redirect.github.com/dyc3) in [#​8097](https://redirect.github.com/biomejs/biome/pull/8097) - chore(deps): update github-actions by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8121](https://redirect.github.com/biomejs/biome/pull/8121) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v22.19.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8122](https://redirect.github.com/biomejs/biome/pull/8122) - chore(deps): update dependency rust to v1.91.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8123](https://redirect.github.com/biomejs/biome/pull/8123) - chore(deps): update taiki-e/install-action action to v2.62.52 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8126](https://redirect.github.com/biomejs/biome/pull/8126) - chore(deps): update typescript-eslint monorepo to v8.46.4 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8127](https://redirect.github.com/biomejs/biome/pull/8127) - fix(biome\_js\_analyze): fix useValidLang rejecting BCP 47 language tags with script subtags by [@​hirokiokada77](https://redirect.github.com/hirokiokada77) in [#​8118](https://redirect.github.com/biomejs/biome/pull/8118) - fix(deps): update [@​biomejs](https://redirect.github.com/biomejs) packages by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8129](https://redirect.github.com/biomejs/biome/pull/8129) - fix(deps): update rust crates by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8130](https://redirect.github.com/biomejs/biome/pull/8130) - chore(deps): update rust crate schemars to 1.1.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8124](https://redirect.github.com/biomejs/biome/pull/8124) - chore(deps): update rust crate windows to 0.62.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8053](https://redirect.github.com/biomejs/biome/pull/8053) - chore(deps): update [@​biomejs](https://redirect.github.com/biomejs) packages (major) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8131](https://redirect.github.com/biomejs/biome/pull/8131) - chore(deps): update dependency [@​types/node](https://redirect.github.com/types/node) to v24 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​8132](https://redirect.github.com/biomejs/biome/pull/8132) - chore: schema regression rule domains by [@​ematipico](https://redirect.github.com/ematipico) in [#​8133](https://redirect.github.com/biomejs/biome/pull/8133) - chore: disable docstrings in coderabbit by [@​ematipico](https://redirect.github.com/ematipico) in [#​8134](https://redirect.github.com/biomejs/biome/pull/8134) - ci: release by [@​github-actions](https://redirect.github.com/github-actions)\[bot] in [#​8076](https://redirect.github.com/biomejs/biome/pull/8076) #### New Contributors - [@​JadKHaddad](https://redirect.github.com/JadKHaddad) made their first contribution in [#​7531](https://redirect.github.com/biomejs/biome/pull/7531) - [@​YTomm](https://redirect.github.com/YTomm) made their first contribution in [#​8075](https://redirect.github.com/biomejs/biome/pull/8075) - [@​ToBinio](https://redirect.github.com/ToBinio) made their first contribution in [#​7287](https://redirect.github.com/biomejs/biome/pull/7287) - [@​hirokiokada77](https://redirect.github.com/hirokiokada77) made their first contribution in [#​8118](https://redirect.github.com/biomejs/biome/pull/8118) **Full Changelog**: <https://github.com/biomejs/biome/compare/@biomejs/biome@2.3.5...@​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 ([#​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 ([#​4208](https://redirect.github.com/evanw/esbuild/issues/4208), [#​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 ([#​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 ([#​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 ([#​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 */ @​view-transition { navigation: auto; types: check; } /* Old output */ @​view-transition { navigation: auto; types: check; } /* New output */ @​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/@​view-transition). This change was contributed by [@​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 [#​808](https://redirect.github.com/sharkdp/hyperfine/issues/808) ([@​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 [#​836](https://redirect.github.com/sharkdp/hyperfine/issues/836) ([@​sharkdp](https://redirect.github.com/sharkdp)) - Python scripts: Add `--time-unit` option to `advanced_statistics.py` ([@​sharkdp](https://redirect.github.com/sharkdp)) - Python scripts: Add new `plot_benchmarks.py` script for plotting collections of benchmarks, see [#​806](https://redirect.github.com/sharkdp/hyperfine/issues/806) ([@​marxin](https://redirect.github.com/marxin)) #### Bugfixes - Fix bug where naming individual commands with parameter scan was not working correctly, see [#​794](https://redirect.github.com/sharkdp/hyperfine/issues/794) ([@​teofr](https://redirect.github.com/teofr)) #### Other - Restrict `cat` tests to Unix environments, see [#​776](https://redirect.github.com/sharkdp/hyperfine/issues/776) and [#​777](https://redirect.github.com/sharkdp/hyperfine/issues/777) ([@​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 ([#​261](https://redirect.github.com/caarlos0/svu/issues/261)) ([@​Nadim147c](https://redirect.github.com/Nadim147c)) - [`b359291`](b359291f58): feat: beautiful --help with fang ([@​caarlos0](https://redirect.github.com/caarlos0)) ##### Bug fixes - [`28f88fc`](28f88fca94): fix: gitignore ([@​caarlos0](https://redirect.github.com/caarlos0)) - [`3bf9b66`](3bf9b66033): fix: lint issues ([@​caarlos0](https://redirect.github.com/caarlos0)) ##### Other work - [`c669d8f`](c669d8f20c): build: go 1.25 ([@​caarlos0](https://redirect.github.com/caarlos0)) - [`0dfc805`](0dfc805fa0): ci(deps): bump anchore/scan-action in the actions group ([#​266](https://redirect.github.com/caarlos0/svu/issues/266)) ([@​dependabot](https://redirect.github.com/dependabot)\[bot]) - [`752527b`](752527b8ce): ci: add golangici-lint config ([@​caarlos0](https://redirect.github.com/caarlos0)) - [`7a5f75e`](7a5f75ee0b): ci: consolidated security jobs ([@​caarlos0](https://redirect.github.com/caarlos0)) - [`7ae0db3`](7ae0db3fc6): ci: dependabot update ([@​caarlos0](https://redirect.github.com/caarlos0)) - [`d9cfe53`](d9cfe533c6): ci: update goreleaser ([@​caarlos0](https://redirect.github.com/caarlos0)) - [`97e3dcf`](97e3dcfd23): ci: update goreleaser ([@​caarlos0](https://redirect.github.com/caarlos0)) - [`04a8379`](04a83790cc): ci: update goreleaser config ([@​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` ([#​16473](https://redirect.github.com/astral-sh/uv/pull/16473)) - Enforce UTF‑8-encoded license files during `uv build` ([#​16699](https://redirect.github.com/astral-sh/uv/pull/16699)) - Error when a `project.license-files` glob matches nothing ([#​16697](https://redirect.github.com/astral-sh/uv/pull/16697)) - `pip install --target` (and `sync`) install Python if necessary ([#​16694](https://redirect.github.com/astral-sh/uv/pull/16694)) - Account for `python_downloads_json_url` in pre-release Python version warnings ([#​16737](https://redirect.github.com/astral-sh/uv/pull/16737)) - Support HTTP/HTTPS URLs in `uv python --python-downloads-json-url` ([#​16542](https://redirect.github.com/astral-sh/uv/pull/16542)) ##### Preview features - Add support for `--upgrade` in `uv python install` ([#​16676](https://redirect.github.com/astral-sh/uv/pull/16676)) - Fix handling of `python install --default` for pre-release Python versions ([#​16706](https://redirect.github.com/astral-sh/uv/pull/16706)) - Add `uv workspace list` to list workspace members ([#​16691](https://redirect.github.com/astral-sh/uv/pull/16691)) ##### Bug fixes - Don't check file URLs for ambiguously parsed credentials ([#​16759](https://redirect.github.com/astral-sh/uv/pull/16759)) ##### Documentation - Add a "storage" reference document ([#​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` ([#​16674](https://redirect.github.com/astral-sh/uv/pull/16674)) ##### Enhancements - Add iOS support to Python interpreter discovery ([#​16686](https://redirect.github.com/astral-sh/uv/pull/16686)) - Reject ambiguously parsed URLs ([#​16622](https://redirect.github.com/astral-sh/uv/pull/16622)) - Allow explicit values in `uv version --bump` ([#​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 ([#​16619](https://redirect.github.com/astral-sh/uv/pull/16619)) - Allow signing trampolines on Windows by using `.rcdata` to store metadata ([#​15068](https://redirect.github.com/astral-sh/uv/pull/15068)) - Add `--only-emit-workspace` and similar variants to `uv export` ([#​16681](https://redirect.github.com/astral-sh/uv/pull/16681)) ##### Preview features - Add `uv workspace dir` command ([#​16678](https://redirect.github.com/astral-sh/uv/pull/16678)) - Add `uv workspace metadata` command ([#​16516](https://redirect.github.com/astral-sh/uv/pull/16516)) ##### Configuration - Add `UV_NO_DEFAULT_GROUPS` environment variable ([#​16645](https://redirect.github.com/astral-sh/uv/pull/16645)) ##### Bug fixes - Remove `torch-model-archiver` and `torch-tb-profiler` from PyTorch backend ([#​16655](https://redirect.github.com/astral-sh/uv/pull/16655)) - Fix Pixi environment detection ([#​16585](https://redirect.github.com/astral-sh/uv/pull/16585)) ##### Documentation - Fix `CMD` path in FastAPI Dockerfile ([#​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` ([#​16603](https://redirect.github.com/astral-sh/uv/pull/16603)) - Accept multiple packages in `uv sync` ([#​16543](https://redirect.github.com/astral-sh/uv/pull/16543)) - Add a `uv cache size` command ([#​16032](https://redirect.github.com/astral-sh/uv/pull/16032)) - Add prerelease guidance for build-system resolution failures ([#​16550](https://redirect.github.com/astral-sh/uv/pull/16550)) - Allow Python requests to include `+gil` to require a GIL-enabled interpreter ([#​16537](https://redirect.github.com/astral-sh/uv/pull/16537)) - Avoid pluralizing 'retry' for single value ([#​16535](https://redirect.github.com/astral-sh/uv/pull/16535)) - Enable first-class dependency exclusions ([#​16528](https://redirect.github.com/astral-sh/uv/pull/16528)) - Fix inclusive constraints on available package versions in resolver errors ([#​16629](https://redirect.github.com/astral-sh/uv/pull/16629)) - Improve `uv init` error for invalid directory names ([#​16554](https://redirect.github.com/astral-sh/uv/pull/16554)) - Show help on `uv build -h` ([#​16632](https://redirect.github.com/astral-sh/uv/pull/16632)) - Include the Python variant suffix in "Using Python ..." messages ([#​16536](https://redirect.github.com/astral-sh/uv/pull/16536)) - Log most recently modified file for cache-keys ([#​16338](https://redirect.github.com/astral-sh/uv/pull/16338)) - Update Docker builds to use nightly Rust toolchain with musl v1.2.5 ([#​16584](https://redirect.github.com/astral-sh/uv/pull/16584)) ##### Configuration - Expose `UV_NO_GROUP` as an environment variable ([#​16529](https://redirect.github.com/astral-sh/uv/pull/16529)) - Add `UV_NO_SOURCES` as an environment variable ([#​15883](https://redirect.github.com/astral-sh/uv/pull/15883)) ##### Bug fixes - Allow `--check` and `--locked` to be used together in `uv lock` ([#​16538](https://redirect.github.com/astral-sh/uv/pull/16538)) - Allow for unnormalized names in the METADATA file ([#​16547](https://redirect.github.com/astral-sh/uv/issues/16547)) ([#​16548](https://redirect.github.com/astral-sh/uv/pull/16548)) - Fix missing value\_type for `default-groups` in schema ([#​16575](https://redirect.github.com/astral-sh/uv/pull/16575)) - Respect multi-GPU outputs in `nvidia-smi` ([#​15460](https://redirect.github.com/astral-sh/uv/pull/15460)) - Fix DNS lookup errors in Docker containers ([#​8450](https://redirect.github.com/astral-sh/uv/issues/8450)) ##### Documentation - Fix typo in uv tool list doc ([#​16625](https://redirect.github.com/astral-sh/uv/pull/16625)) - Note `uv pip list` name normalization in docs ([#​13210](https://redirect.github.com/astral-sh/uv/pull/13210)) ##### Other changes - Update Rust toolchain to 1.91 and MSRV to 1.89 ([#​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 ([#​13475](https://redirect.github.com/astral-sh/uv/pull/13475)) - Improve readability of progress bars ([#​16509](https://redirect.github.com/astral-sh/uv/pull/16509)) - Add GitHub attestations for uv release artifacts ([#​11357](https://redirect.github.com/astral-sh/uv/pull/11357)) ##### Bug fixes - Drop terminal coloring from `uv auth token` output ([#​16504](https://redirect.github.com/astral-sh/uv/pull/16504)) - Don't use UV\_LOCKED to enable `--check` flag ([#​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 ([#​16401](https://redirect.github.com/astral-sh/uv/pull/16401)) ##### Enhancements - Add `--clear` to `uv build` to remove old build artifacts ([#​16371](https://redirect.github.com/astral-sh/uv/pull/16371)) - Add `--no-create-gitignore` to `uv build` ([#​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 ([#​16394](https://redirect.github.com/astral-sh/uv/pull/16394)) - Improve hint on `pip install --system` when externally managed ([#​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` ([#​16322](https://redirect.github.com/astral-sh/uv/pull/16322)) - Update `uv init` template for Maturin ([#​16449](https://redirect.github.com/astral-sh/uv/pull/16449)) - Improve ordering of Python sources in logs ([#​16463](https://redirect.github.com/astral-sh/uv/pull/16463)) - Restore DockerHub release images and annotations ([#​16441](https://redirect.github.com/astral-sh/uv/pull/16441)) ##### Bug fixes - Check for matching Python implementation during `uv python upgrade` ([#​16420](https://redirect.github.com/astral-sh/uv/pull/16420)) - Deterministically order `--find-links` distributions ([#​16446](https://redirect.github.com/astral-sh/uv/pull/16446)) - Don't panic in `uv export --frozen` when the lockfile is outdated ([#​16407](https://redirect.github.com/astral-sh/uv/pull/16407)) - Fix root of `uv tree` when `--package` is used with circular dependencies ([#​15908](https://redirect.github.com/astral-sh/uv/pull/15908)) - Show package list with `pip freeze --quiet` ([#​16491](https://redirect.github.com/astral-sh/uv/pull/16491)) - Limit `uv auth login pyx.dev` retries to 60s ([#​16498](https://redirect.github.com/astral-sh/uv/pull/16498)) - Add an empty group with `uv add --group ... -r ...` ([#​16490](https://redirect.github.com/astral-sh/uv/pull/16490)) ##### Documentation - Update docs for maturin build backend init template ([#​16469](https://redirect.github.com/astral-sh/uv/pull/16469)) - Update docs to reflect previous changes to signal forwarding semantics ([#​16430](https://redirect.github.com/astral-sh/uv/pull/16430)) - Add instructions for installing via MacPorts ([#​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>