Files
Niels Pardon c3c70b8cdb feat(managers/pep621): update pixi.lock if present (#44004)
* feat(managers/pep621): update pixi.lock if present

* test(managers/pep621): cover pixi requires-pixi from workspace table

* refactor(manager/pixi): extract shared pixi.lock update helper

* test(manager/pep621): use arrange-act-assert spacing in pixi tests

* refactor(manager/pixi): revert shared pixi.lock helper extraction

Move the extraction of the shared pixi.lock update helper into a
follow-up PR, as requested in review. The pep621 pixi processor and the
pixi manager again carry their own lock-update logic.

This reverts commit 743db204f2.

* feat(manager/pep621): gate pixi.lock updates behind allowedUnsafeExecutions

`pixi lock` can execute arbitrary code from conda package hooks, so the
pep621 manager now only updates `pixi.lock` when `pixi` is included in the
global `allowedUnsafeExecutions` option, following the same pattern as the
`mise` manager. When `pixi` is not allowed, PEP 621 dependencies in
`pyproject.toml` are still updated but `pixi.lock` is left unchanged.

https://pixi.prefix.dev/latest/security/#4-treat-package-hooks-as-code-execution

* feat(manager/pixi)!: gate pixi.lock updates behind allowedUnsafeExecutions

The pixi manager runs `pixi lock`, which can execute arbitrary code from
conda package hooks. Like the pep621 manager, it now only updates
`pixi.lock` when `pixi` is included in the global `allowedUnsafeExecutions`
option. When it is not allowed, the package file is still updated but
`pixi.lock` is left unchanged.

https://pixi.prefix.dev/latest/security/#4-treat-package-hooks-as-code-execution

BREAKING CHANGE: The `pixi` manager no longer updates `pixi.lock`
automatically. To keep `pixi.lock` updated, add `pixi` to the global
`allowedUnsafeExecutions` option.
2026-07-29 10:31:15 +00:00

13 lines
366 B
TypeScript

import { HatchProcessor } from './hatch.ts';
import { PdmProcessor } from './pdm.ts';
import { PixiProcessor } from './pixi.ts';
import type { PyProjectProcessor } from './types.ts';
import { UvProcessor } from './uv.ts';
export const processors: PyProjectProcessor[] = [
new HatchProcessor(),
new PdmProcessor(),
new UvProcessor(),
new PixiProcessor(),
];