Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sage_bootstrap: Add command "sage -package list --output={install-requires,requirements,pipfile,debian,....}" #29041

Open
mkoeppe opened this issue Jan 18, 2020 · 48 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Jan 18, 2020

We extend the sage_bootstrap package to add the commands:

They generate text output in the format of setup.cfg [options] install_requires=, requirements.txt, and Pipfile; or a list of system packages

bootstrap can use these commands to generate these files for build/pkgs/sagelib/src/ or src. They are deleted by make bootstrap-clean.


References:

CC: @seblabbe @dimpase @embray @vbraun @kiwifb @tobihan @tobiasdiez

Component: build

Keywords: sd111

Issue created by migration from https://trac.sagemath.org/ticket/29041

@mkoeppe mkoeppe added this to the sage-9.1 milestone Jan 18, 2020
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 19, 2020

comment:2

This is what it could look like - just for a small handful of packages for now


New commits:

cfcc9fdbootstrap: generate src/requirements.txt, src/constraints.txt, src/setup.cfg [install_requires] from build/pkgs

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 19, 2020

Commit: cfcc9fd

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 19, 2020

comment:3

The apt-get line in the install manual could be generated in the same way.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 19, 2020

Author: Matthias Koeppe

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 20, 2020

comment:5

Replying to @mkoeppe:

The apt-get line in the install manual could be generated in the same way.

This is #29053.

@dimpase
Copy link
Member

dimpase commented Jan 21, 2020

comment:6

I see that only few packages, e.g. pillow, are mentioned in the branch. Are they there as an example?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 21, 2020

comment:7

Yes, it's an initial example. More can be added on this ticket and/or on follow up tickets.

It may be the most efficient to first put this infrastructure (and the one for Debian) in place and then do invidual packages one by one to determine useful version bounds.

@dimpase
Copy link
Member

dimpase commented Jan 21, 2020

comment:8

how is it going to play out with version constraints in spkg-configure.m4 files?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 21, 2020

comment:9

So far there are no spkg-configure.m4 files for any Python packages, and I would hope there will be no need for them.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 21, 2020

comment:10

Basically sagelib-install-requires.txt will play the same role for Python packages as spkg-configure.m4 does for non-Python packages,
and likewise sagelib-requirements.txt : package-version.txt.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 31, 2020

comment:11

@embray If you have time - this ticket is waiting for review.

@embray
Copy link
Contributor

embray commented Feb 5, 2020

comment:12

Similar to what I wrote on #26964, I don't think this should be done in the bootstrap script. I don't want this script growing too far beyond its core purpose, which is simply to bootstrap the configure script.

This could be done by configure instead, using say a requirements.txt.in.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 5, 2020

comment:13

See my comments on #26964.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 22, 2020

Dependencies: #29233

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 22, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

0dc97dbClean src/doc/en/installation/*.txt in bootstrap-clean, not misc-clean
bae1a82Merge branch 't/29233/bootstrap____make_distclean_broken' into t/29041/at___bootstrap_time__generate_src_requirements_txt__src_constraints_txt__src_setup_cfg__install_requires__from_build_pkgs
4fb30a6bootstrap: Add src/constraints.txt etc. to configure tarball

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 22, 2020

Changed commit from cfcc9fd to 4fb30a6

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 22, 2020

Changed commit from 4fb30a6 to f147962

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Feb 22, 2020

Branch pushed to git repo; I updated commit sha1. New commits:

f147962src/bootstrap: Make executable

@mkoeppe

This comment has been minimized.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Mar 2, 2020

Changed commit from f147962 to 13088e3

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 4, 2020

Changed dependencies from #29950 to #30719

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 19, 2020

Changed commit from 13088e3 to none

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 19, 2020

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 19, 2020

Changed author from Matthias Koeppe to none

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 19, 2020

Changed dependencies from #30719 to #30719, #30865

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 19, 2020

Changed work issues from redo on top of #29950 to none

@mkoeppe mkoeppe changed the title at ./bootstrap time, generate requirements.txt, constraints.txt, setup.cfg [install_requires], Pipfile from build/pkgs sage_bootstrap: Add command "sage -package get-system-packages", supporting systems "install-requires", "requirements", "pipfile" Nov 19, 2020
@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 6, 2020

Changed keywords from none to sd111

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 6, 2020

comment:37

Hoping we can make progress on this ticket this week - https://wiki.sagemath.org/days111

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe changed the title sage_bootstrap: Add command "sage -package get-system-packages", supporting systems "install-requires", "requirements", "pipfile" sage_bootstrap: Add command "sage -package list --output={install-requires,requirements,pipfile,debian,....}" Dec 12, 2020
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 12, 2020

comment:39

Rewriting tools used in the bootstrap phase in Python would also be useful for developing on Windows

@dimpase
Copy link
Member

dimpase commented Dec 12, 2020

comment:40

hmm, what is so problematic about Windows here? Even if one talks about native, non-cygwin, it is still perfectly possible to run bash etc.

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 13, 2021

comment:42

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jun 25, 2021

Changed dependencies from #30719, #30865 to none

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jul 19, 2021

comment:44

Setting a new milestone for this ticket based on a cursory review.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 14, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Mar 5, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Aug 31, 2022
@mkoeppe mkoeppe removed this from the sage-9.8 milestone Jan 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants