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

cibuildwheel workflow for sagemath-objects, sagemath-categories #33800

Closed
mkoeppe opened this issue May 4, 2022 · 44 comments
Closed

cibuildwheel workflow for sagemath-objects, sagemath-categories #33800

mkoeppe opened this issue May 4, 2022 · 44 comments

Comments

@mkoeppe
Copy link
Member

mkoeppe commented May 4, 2022

We rename the GH Actions workflow sdist.yml to dist.yml and add wheel-building for the distributions sagemath-objects and sagemath-categories for macOS (Intel) and Linux (x86_64, i686) using cibuildwheel.

The necessary libraries are built using the Sage distribution.

Example run: https://github.com/mkoeppe/sage/actions/runs/2522295930

Follow-ups:

Depends on #29549
Depends on #33983
Depends on #34017

CC: @dimpase @kliem @tobiasdiez @saraedum

Component: distribution

Author: Matthias Koeppe

Branch/Commit: 93d5d11

Reviewer: Dima Pasechnik

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

@mkoeppe mkoeppe added this to the sage-9.7 milestone May 4, 2022
@mkoeppe
Copy link
Member Author

mkoeppe commented May 5, 2022

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 5, 2022

Commit: 64b46a1

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 5, 2022

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

3133c8e.github/workflows/sdist.yml: Only build wheels for sagemath-objects, -categories
3d5850asage.env.cython_aliases: Handle ecl via default_required_modules
e77efb3pkgs/sagemath-objects/MANIFEST.in: Add missing sage.misc.package_dir
434d539pkgs/sagemath-objects/MANIFEST.in: Add sage.misc.sagedoc
64b46a1.github/workflows/dist.yml: Rename from sdist.yml

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 5, 2022

Changed commit from 64b46a1 to 025200b

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 5, 2022

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

474104b.github/workflows/dist.yml: Install gmp before building the wheel
025200b.github/workflows/dist.yml: Install gmp, mpfr, mpc before building the wheel

@mkoeppe
Copy link
Member Author

mkoeppe commented May 5, 2022

comment:4

The method of installing the required system packages (gmp, mpfr, mpc) with whatever is provided by the target distribution does not work because the manylinux distributions are deliberately ancient.
Getting error: #error "GMPY2 requires MPC 1.0.3 or later." (https://github.com/mkoeppe/sage/runs/6300752059).

Also the macOS arm64 cross-build does not work: fatal error: 'gmp.h' file not found (https://github.com/mkoeppe/sage/runs/6300752117)

@mkoeppe
Copy link
Member Author

mkoeppe commented May 5, 2022

Dependencies: #33803

@mkoeppe
Copy link
Member Author

mkoeppe commented May 5, 2022

Work Issues: Rebase on #33803

@mkoeppe
Copy link
Member Author

mkoeppe commented May 5, 2022

comment:7

We could add a section [tool.cibuildwheel] to pkg/*/pyproject.toml.m4 and add conda installation + conda package installation there as before-all.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 4, 2022

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

4d54d21.github/workflows/sdist.yml: Build wheels too
431492d.github/workflows/sdist.yml: Set CIBW_PROJECT_REQUIRES_PYTHON
1e14375.github/workflows/sdist.yml: Only build wheels for sagemath-objects, -categories
152aca2.github/workflows/dist.yml: Rename from sdist.yml
f0bd1cf.github/workflows/dist.yml: Install gmp before building the wheel
6f91ddc.github/workflows/dist.yml: Install gmp, mpfr, mpc before building the wheel
79549d9.github/workflows/dist.yml: Build prereqs of wheels using Sage distro

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 4, 2022

Changed commit from 025200b to 79549d9

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 4, 2022

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

08acac4build/pkgs/sage_setup/dependencies: Add jinja2
42e991a.github/workflows/dist.yml: One package at a time, build out of pkgs/

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 4, 2022

Changed commit from 79549d9 to 42e991a

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 4, 2022

Changed dependencies from #33803 to none

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 4, 2022

Changed work issues from Rebase on #33803 to none

@dimpase
Copy link
Member

dimpase commented Jun 5, 2022

comment:11

check out gmpy2 wheel builder

https://github.com/aleaxit/gmpy/tree/master/.github%2Fworkflows

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 5, 2022

comment:12

They are using straightforward cibuildwheel

@dimpase
Copy link
Member

dimpase commented Jun 5, 2022

comment:13

but they need to have gmp installed first.

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 5, 2022

comment:14

Sure, they install the libraries from source with a custom script.
In Sage, we can just use our spkg scripts for the same purpose.

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 18, 2022

Dependencies: #29549

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 18, 2022

Changed dependencies from #29549 to #29549, #33983

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 18, 2022

Changed commit from 42e991a to c741878

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 18, 2022

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

3fd1cb5.github/workflows/dist.yml: Use pkgconfig, not pkg-config on centos
f9407af.github/workflows/dist.yml: Set ACLOCAL_PATH
fcbf814.github/workflows/dist.yml: Use cibuildwheel==2.7.0
77affa8tox.ini: Add manylinux_2_28
dc352d9.github/workflows/dist.yml: Use --enable-build-as-root
ac0e301do not use prefix
7999353update PATH
07a018bUse CIBW_BUILD_FRONTEND=build
e653ff1Build wheels from sdists
c741878Unpack sdist for cibuildwheel

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 18, 2022

Changed commit from c741878 to ae12df2

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 18, 2022

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

ae12df2.github/workflows/dist.yml: Disable musllinux for now

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 18, 2022

Author: Matthias Koeppe

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe changed the title cibuildwheel workflow for sagemath-objects, sagemath-categories etc. cibuildwheel workflow for sagemath-objects, sagemath-categories Jun 18, 2022
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 18, 2022

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

65bc0f1.github/workflows/dist.yml: Add comment

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 18, 2022

Changed commit from ae12df2 to 65bc0f1

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 19, 2022

Changed commit from 65bc0f1 to 036cf70

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 19, 2022

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

036cf70.github/workflows/dist.yml: Build Linux x86_64 and i686 in separate jobs

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 19, 2022

Changed dependencies from #29549, #33983 to #29549, #33983, #34017

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 19, 2022

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

58d62f4build/bin/write-dockerfile.sh: ADD src/VERSION.txt
926bfcdMerge #34017

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 19, 2022

Changed commit from 036cf70 to 926bfcd

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 28, 2022

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

e52fd00build/bin/write-dockerfile.sh: Copy config.rpath to container
93d5d11Merge #29549

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jun 28, 2022

Changed commit from 926bfcd to 93d5d11

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 28, 2022

comment:27

Merged latest #29549, ready for review

@dimpase
Copy link
Member

dimpase commented Jun 29, 2022

comment:28

is this being tested on GH Actions?

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 29, 2022

comment:29

Yes, see link in the ticket description

@dimpase
Copy link
Member

dimpase commented Jun 29, 2022

comment:30

lgtm

@dimpase
Copy link
Member

dimpase commented Jun 29, 2022

Reviewer: Dima Pasechnik

@mkoeppe
Copy link
Member Author

mkoeppe commented Jun 29, 2022

comment:31

Thanks!

@vbraun
Copy link
Member

vbraun commented Jul 9, 2022

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

3 participants