Skip to content

build: add a reproducible hashed Python 3.11 CI lock #329

Description

@WalksWithASwagger

Summary

Add a reproducible, hashed Python 3.11 Linux dependency lock for CI while preserving flexible source requirements for users.

Context

Implementation Notes

  • Keep direct ranged requirements as the human-edited source contract.
  • Use one existing/lightweight compilation tool and record the exact deterministic refresh command.
  • Scope the lock explicitly to Python 3.11 on Linux; do not imply it is a universal user lock.
  • Install the lock with hash verification in CI.

Acceptance Criteria

  • A fully pinned transitive CI lock contains hashes for every artifact.
  • CI installs the lock with --require-hashes on Python 3.11 Linux.
  • Direct dependency ranges remain readable source requirements.
  • Documentation distinguishes CI reproduction from supported cross-platform user installation.
  • One deterministic lock refresh/check command is documented.
  • A clean virtual environment passes Ruff and the full Python test suite.

Tests/Evals

  • Verify the lock from an empty Python 3.11 virtual environment.
  • Do not install globally or run provider-capable commands.

Verification

  • Install the CI lock in a disposable Python 3.11 virtual environment with --require-hashes.
  • python3 -m ruff check .
  • npm test
  • npm run docs:check
  • Confirm regenerating the lock produces no diff.

Agent Instructions

Human Checkpoints

  • Stop if the selected resolver cannot produce stable hashes for the supported CI platform.

Out of Scope

  • Poetry, uv, or a project-wide packaging migration.
  • Locking every operating system and Python version.
  • Application dependency upgrades unrelated to resolution.
  • Global package installation.

Linear

Not applicable. Rafiki delivery is GitHub-only; do not create or update a Linear issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedWork cannot proceed until a blocker is resolved.dev-experienceDeveloper experience and toolingphase-1Phase 1 — Polish & StabilitypipelineCore pipeline toolingtech-debtTechnical debttype:taskImplementation task

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions