opensafely-core / opensafely-core/opensafely-cli
Distribute binary version that doesn't require a system python
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2
- Forks
- 5
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 4
Description
We currently distribute opensafely-cli via pip. This is not great:
- it requires a user to have a system python installed
- it means we need to support a wider range of pythons (which means job-runner needs to also support the same range)
- it requires us to vendor all our dependencies to simplify the the UX, which increases maintenance costs, and prevent any C-level dependencies.
Ideally, we would distribute opensafely-cli as a binary, which:
a) includes the specific version of python we want to use
b) includes all the dependencies at build time
c) is platform specific so we can use C dependencies
One promising avenue for this is pyoxidizer. This is a rust tool chain that builds a platform specific binary with your code, deps, and a python interpreter (with only the parts of stdlib that your code uses).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by evaluating PyOxidizer for opensafely-cli and determine the required platform-specific build outputs. Check how the current pip distribution handles Python and dependencies. Done means users can run binaries that include the selected Python version and dependencies without a system Python installation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- build-system, cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100