Skip to content

fix(security): refresh Pixi certificate trust stores - #175

Merged
jessegrabowski merged 4 commits into
mainfrom
codex/ca-bundle-security-2026-10-23
Oct 25, 2026
Merged

jessegrabowski merged 4 commits into
mainfrom
codex/ca-bundle-security-2026-10-23

Conversation

@twiecki

@twiecki twiecki commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

This pull request was authored and reviewed by a coding agent.

Closes #174. The maintainer welcomed this PR in #174 (comment).

Change

Refresh the tracked Pixi certifi and ca-certificates packages from 2026.7.22 to 2026.10.19 after the emSign CA removal. Update their artifact metadata and all references, including Unix and Windows CA artifacts. Keep all other package records, environments, Python versions and manifest contents unchanged.

Validation

  • Parsed the version-7 YAML lock and checked all environment artifact references remain resolvable.
  • Verified new conda-forge URLs, SHA-256/MD5, build, size, timestamp and declared dependencies against official release metadata; certifi's Python >=3.11 requirement is compatible with the locked Python versions.
  • Checked all unrelated package records and lock metadata are unchanged, and git diff --check passes.
  • An offline Pixi resolver check was attempted in an OS-enforced Docker sandbox with network disabled, an empty allowlisted environment, read-only source/toolchain, scratch-only writes and resource limits. It could not finish because repodata is not cached. Full lock resolution, docs build and project tests remain unverified; this PR stays in draft for those checks.

No installed environment or deployment was changed. An old source pin is not evidence of exploitation.

References:

Hosted CI readback, October 24

The pre-commit and mypy jobs passed. The Windows smoke job fails during setup-miniconda's conda init --all with needs sudo ... conda.exe, before environment creation or application installation. This test workflow reads the unchanged conda_envs/pytensor_ml.yml, not the changed Pixi lock. The remaining matrix jobs are still running at readback; a passing full suite is not claimed.


📚 Documentation preview 📚: https://pytensor-ml--175.org.readthedocs.build/en/175/

@twiecki
twiecki marked this pull request as ready for review October 24, 2026 10:16
@jessegrabowski

Copy link
Copy Markdown
Member

pixi.lock is now regenerated by pixi lock instead of edited by hand. A new pixi-lock-check pre-commit hook fails when the lock is out of sync with pyproject.toml. certifi and ca-certificates resolve to 2026.10.19 or later in every environment, so the next CA rotation is one pixi lock run.

The run_tests and mypy workflows now install pixi environments from pixi.lock with setup-pixi, replacing setup-miniconda and conda_envs/pytensor_ml.yml. Before this, CI installed from conda_envs/, which the original commit didn't touch. The certificate refresh only reached the docs environment. The switch also removes the Windows smoke failure in conda init --all. Each backend's dispatch job gets its own environment (test-jax, test-mlx, test-torch), and the core jobs still run with no backend installed.

conda_envs/pytensor_ml.yml and conda_envs/environment-docs.yml are now exported from the pixi dev and docs environments by pre-commit hooks. pytensor_ml-gpu_jax.yml and the new pytensor_ml-gpu_metal.yml are kept by hand. pixi workspace export conda-environment -p can't select the named platforms their backends need (prefix-dev/pixi#7353).

Pins moved along the way to jax 0.12, mlx 0.32.4, mypy 2.4, and Python 3.14 in every pixi environment. The core, jax and mlx tests and mypy pass locally on macOS in these environments. The Linux and Windows jobs are running on this head now.

@jessegrabowski
jessegrabowski merged commit 313f353 into main Oct 25, 2026
14 checks passed
@jessegrabowski
jessegrabowski deleted the codex/ca-bundle-security-2026-10-23 branch October 25, 2026 02:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refresh locked certificate stores after the emSign CA removal

2 participants