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

Meta-ticket: Create upstream repositories, pip-installable packages for database packages #30914

Open
2 of 11 tasks
tobiasdiez opened this issue Nov 14, 2020 · 35 comments
Open
2 of 11 tasks

Comments

@tobiasdiez
Copy link
Contributor

tobiasdiez commented Nov 14, 2020

The Sage distribution contains a number of "database packages", many of which do not seem to have a "real upstream" (or installation procedures other than our scripts in build/pkgs).

We transform them into pip-installable packages and publish them to PyPI so that they can be installed using standard Python tools (and become Python dependencies of sagelib) and then discovered by libraries using standard Python facilities.

Role model: https://pypi.org/project/database-knotinfo/

For those that do not have a real upstream, we create separate git repositories in github.com/sagemath/ to serve as new upstream.

List of packages/tickets:

Architecture independent:

Prepared files:

New data sources:

Related (other stuff written by the Sage distribution into $SAGE_SHARE):

Techniques:

CC: @mkoeppe @jhpalmieri @kiwifb @isuruf @antonio-rojas @dimpase @slel @tobihan @jamesjer @soehms @videlec @williamstein @roed314

Component: build

Keywords: sd111

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

@tobiasdiez tobiasdiez added this to the sage-9.3 milestone Nov 14, 2020
@mkoeppe
Copy link
Contributor

mkoeppe commented Nov 14, 2020

comment:1

Which files, specifically?

@mkoeppe
Copy link
Contributor

mkoeppe commented Nov 14, 2020

comment:2

If you are talking about database packages such as build/pkgs/conway_polynomials, in particular those that do not seem to have a "real upstream" (or installation procedures other than our scripts in build/pkgs), then yes, I agree that a possible direction would be to create pip-installable packages for them and to publish them to PyPI. They should be maintained outside of the source tree, each in a separate git repository.

@mkoeppe
Copy link
Contributor

mkoeppe commented Nov 14, 2020

comment:3

If this is what you had in mind, let's transform this ticket into a meta-ticket and get the downstream packagers of Sage on board -- they may have insights on the upstream status of some of these packages, which we may have forgotten about.

@kiwifb
Copy link
Member

kiwifb commented Nov 14, 2020

comment:4

Yes, a confirmation of which bits would be nice. If @mkoeppe is right you are talking about

  • combinatorial_designs
  • conway_polynomials
  • elliptic_curves
  • graphs
  • polytopes_db
  • plus some other optional packages
    They are indeed static but come in two flavors.

Architecture independent:

  • combinatorial_designs
  • graphs
  • polytopes_db
    which are really file copying.

Prepared files

  • conway_polynomials
  • elliptic_curves
    where the files are processed before install with some python code that may be depending on python or some other software.

conway_polynomials uses pickle.dump which could pose problems across python versions?

elliptic_curves is put into a SQL database with sqlite, this should be a stable format. Don't know if that's portable between, say, x86_64 and ppc64le?

@mkoeppe
Copy link
Contributor

mkoeppe commented Nov 14, 2020

comment:5

OK, I've taken the liberty to rewrite the ticket description

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe changed the title Generate sage/share files in sage/setup.py? Meta-ticket: Create upstream repositories, pip-installable packages for database packages Nov 14, 2020
@mkoeppe
Copy link
Contributor

mkoeppe commented Nov 14, 2020

comment:6

Replying to @kiwifb:

Prepared files

  • conway_polynomials
  • elliptic_curves
    where the files are processed before install with some python code that may be depending on python or some other software.

conway_polynomials uses pickle.dump which could pose problems across python versions?

elliptic_curves is put into a SQL database with sqlite, this should be a stable format. Don't know if that's portable between, say, x86_64 and ppc64le?

For these ones, we should make the actual source distribution architecture-independent.
The architecture-dependent products could be built during setup.py - and published as wheels.

@mkoeppe
Copy link
Contributor

mkoeppe commented Nov 14, 2020

comment:7

For example database_stein_watkins_mini's SPKG.rst lists http://modular.math.washington.edu/papers/stein-watkins/ as upstream or source, which is defunct

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor

mkoeppe commented Nov 14, 2020

comment:8

One thing that may need discussion is that for huge databases, one may want to avoid installing multiple copies

@mkoeppe

This comment has been minimized.

@slel
Copy link
Member

slel commented Nov 14, 2020

comment:10

Replying to @mkoeppe:

For example database_stein_watkins_mini's SPKG.rst lists http://modular.math.washington.edu/papers/stein-watkins/ as upstream or source, which is defunct

It's at https://wstein.org/papers/stein-watkins/

@tobiasdiez
Copy link
Contributor Author

comment:11

Replying to @kiwifb:

Yes, a confirmation of which bits would be nice. If @mkoeppe is right you are talking about ...

Yes, that's exactly what I meant! Thanks everybody for their input, that's already way better than what I've imagined originally.

@mkoeppe
Copy link
Contributor

mkoeppe commented Dec 6, 2020

Changed keywords from none to sd111

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor

mkoeppe commented Mar 24, 2021

comment:21

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Mar 24, 2021
@mkoeppe mkoeppe removed this from the sage-9.4 milestone Jul 19, 2021
@mkoeppe mkoeppe added this to the sage-9.5 milestone Jul 19, 2021
@mkoeppe
Copy link
Contributor

mkoeppe commented Oct 6, 2021

comment:24

For #32432 (sagemath-polyhedra), pip-installable polytopes_db, polytopes_db_4d would be good

@mkoeppe

This comment has been minimized.

@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

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor

mkoeppe commented May 21, 2022

comment:35

Replying to @slel:

Replying to @mkoeppe:

For example database_stein_watkins_mini's SPKG.rst lists http://modular.math.washington.edu/papers/stein-watkins/ as upstream or source, which is defunct

It's at https://wstein.org/papers/stein-watkins/

The link "Click here for the database" (https://wstein.org/ecdb) and "Our database" (https://wstein.org/papers/stein-watkins/ecdb) are both broken

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Aug 31, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.8, sage-9.9 Jan 7, 2023
@mkoeppe mkoeppe removed this from the sage-10.0 milestone Mar 16, 2023
@orlitzky
Copy link
Contributor

orlitzky commented Jan 2, 2024

Can I have a new sagemath/ repo for https://github.com/orlitzky/mols-handbook-data please? This is the old combinatorial_designs data.

@orlitzky
Copy link
Contributor

orlitzky commented Jan 2, 2024

For #32432 (sagemath-polyhedra), pip-installable polytopes_db, polytopes_db_4d would be good

This one is going to be annoying because the interface to it relies on the nonstandard PALP executable names. PALP now has an upstream repository at https://gitlab.com/stringstuwien/PALP, but I've been waiting for my first easy PR to get merged before I proceed with the makefile changes needed to build all of the extra executables.

@orlitzky
Copy link
Contributor

PALP upstream now supports the names used in the polytope databases. One less blocker.

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

5 participants