opensafely-core / opensafely-core/opensafely-cli

Not all required dependencies specified under Windows in `requirements.dev.txt`

Open
#204 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
2
Forks
5
Avg merge
2d 1h
Merged PRs (30d)
4

Description

I just tried updating all development packages, with hashes, generated in a Linux Python 3.8 install, and found that I couldn't get the Windows build on GitHub to pass.

This is because colorama is required as a dependency for build==0.9.0 (itself a pip-tools dependency) and greater in Windows, but not for Linux.

For now, without package hashes, requirements.dev.txt still installs perfectly well in the GitHub Actions CI, because pip will quite happily install other packages it needs without hashes.

Unfortunately, pip-tools doesn't have much support for generating requirements cross-platform: jazzband/pip-tools#826. Another option is just to add colorama into the requirements, but that's not great either and also would result, I think, in this issue: pypa/build#493.

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 with requirements.dev.txt and the Windows GitHub Actions build, comparing the hashed requirements generated on Linux Python 3.8 with the dependencies needed by build==0.9.0 and pip-tools. Review pip-tools#826 and pypa/build#493 before choosing an approach; done means the Windows CI build passes while development dependencies remain correctly specified with hashes.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
build-system, ci-cd
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.