Opened 16 months ago

Last modified 12 months ago

#30024 needs_work enhancement

Add build/pkgs/SPKG/requirements.txt for all Python SPKG

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-wishlist
Component: build Keywords:
Cc: slelievre, jhpalmieri, mjo Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: #30719 Stopgaps:

Status badges

Description (last modified by mkoeppe)

These files were added in #29287 (SPKG type: Make "normal/script/pip" orthogonal to "base/standard/optional/experimental") for all pip packages.

We record "abstract" version requirements in files build/pkgs/SPKG/install-requires.txt - this is #30719.

In this ticket, we additionally record "concrete" versions for all Python packages in build/pkgs/SPKG/requirements.txt.

(cf. https://packaging.python.org/discussions/install-requires-vs-requirements/)

Some scripts need updating to make sure that checksums.ini wins over requirements.txt - to keep normal packages normal.

Change History (8)

comment:1 Changed 15 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:2 Changed 14 months ago by gh-tobiasdiez

I would strongly suggest to have a look at pipenv, which manages python dependencies via pipfile and pipfile.lock (replacing requirements.txt and checksums.ini (?)).

comment:3 Changed 14 months ago by mkoeppe

  • Description modified (diff)

Not sure if we can use pipenv as a drop in solution.

For various Python packages, we currently have to use patches or special build steps. I have sketched a way forward in #29500 -- use our custom build scripts to build wheels (and store them in a wheelhouse / private package index), which can then be installed by all standard tools (and also by users into separate venvs). We can certainly generate a Pipfile that makes this easier for users

comment:4 Changed 14 months ago by mkoeppe

Let's discuss two separate concerns on two separate tickets:

  • sagelib's concern to declare the requirements regarding Python packages - #29041
  • sage-the-distribution's concern to provide working versions of Python packages as wheels - #29500

comment:5 Changed 14 months ago by mkoeppe

  • Description modified (diff)

comment:6 Changed 14 months ago by mkoeppe

  • Description modified (diff)
  • Milestone changed from sage-9.3 to sage-wishlist

comment:7 Changed 13 months ago by mkoeppe

  • Dependencies set to #30719
  • Status changed from new to needs_info

comment:8 Changed 12 months ago by mkoeppe

  • Description modified (diff)
  • Status changed from needs_info to needs_work
Note: See TracTickets for help on using tickets.