ofek / ofek/pyapp

reproducible build with wheel + dependency file

Open
#170 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2k
Forks
65
PR merge metrics
No merged PRs in 30d

Description

I've tried two modes for building the binary: using the dependency file and using a wheel file with the PYAPP_PROJECT_PATH setting.

When I use the embedding option, the dependencies sometimes don’t match exactly with my local lock/requirements file, which makes sense since the wheel file's dependency markers don’t use exact versions (==). With the dependency file option, it seems I would need my app to be available on PyPI or something similar. Is there a way to use both the wheel file and a requirements file so that the environment created by the binary matches exactly what I have locally? I tried setting both PYAPP_PROJECT_PATH and PYAPP_PROJECT_DEPENDENCY_FILE, but it seems the requirements file is ignored in this case.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how PYAPP_PROJECT_PATH and PYAPP_PROJECT_DEPENDENCY_FILE are handled in the embedding and dependency-file build modes. Reproduce the issue with both settings enabled and compare the generated environment with the local requirements or lock file. Done means the binary can use the wheel and dependency file together while preserving exact dependency versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
build-system, cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.