Skip to content

Establish a frozen wheel installation foundation and dependency lock #360

Description

@cbeaulieu-gt

Summary

Establish the frozen Python-package foundation for immutable Harness deployments: a committed dependency lock, a non-editable wheel installation, and runtime-owned resources that work without a Harness Git checkout.

This issue is the first implementation unit under #361. It intentionally does not absorb the later helper-command migrations or deployment-bundle publication.

Current state

pyproject.toml declares lower-bounded dependencies, bin/setup-env.sh and CI install ".[dev]" editably, and runtime defaults locate config/WORKFLOW.md and ruleset JSON files by walking to the source-repository root.

Acceptance criteria

  • Commit a uv lockfile covering runtime and development dependencies across the supported Python range, including Python 3.13.
  • CI fails when pyproject.toml and the lockfile disagree.
  • Runtime-owned defaults (WORKFLOW.md and ruleset comparison/configuration JSON) are shipped as package resources and load without a Harness source checkout or .git.
  • Document and test a lock-enforced production installation that installs no development extras and installs Harness non-editably.
  • Build and install a wheel from clean source, then verify all five existing console entry points from outside the repository working tree.
  • Exercise package installation on Python 3.13 and the declared Python floor.
  • Demonstrate that a missing lock, stale lock, missing packaged resource, or dependency drift fails closed.
  • Keep bin/setup-env.sh as the editable development bootstrap and clearly distinguish it from production installation in README/setup documentation.

Deployment consumer

External infrastructure will verify and stage the resulting artifacts into a root-owned immutable release. Harness owns its Python package and runtime resources; external infrastructure owns host provisioning and service lifecycle.

Out of scope

Parent: #361

🤖 Generated by Codex on behalf of @cbeaulieu-gt

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions