3-manifolds / SnapPy

SnapPy is a package for studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures. It is based on the SnapPea kernel written by Jeff Weeks.
https://snappy.computop.org/
87 stars 41 forks source link

Support Python 3.12 #112

Closed NathanDunfield closed 1 year ago

NathanDunfield commented 1 year ago

The first release candidate for Python 3.12 is now available and the final version is scheduled to be released on October 1, 2023. We need to make SnapPy compatible, including the following binary components:

Depending on the module, this would also be a natural time to make sure everything works with Cython 3.0. Note that cibuildwheel has started including Python 3.12 in the CI runs as of early August.

NathanDunfield commented 1 year ago

FYI: @culler, @unhyperbolic, @fchapoton

culler commented 1 year ago

With CyPari I encountered this error: cypari/_pari.c:215168:26: error: no member named 'ob_digit' in 'struct _longobject'

That would appear to be a change in the python api.

On Sun, Aug 13, 2023 at 1:49 PM Nathan Dunfield @.***> wrote:

The first release candidate for Python 3.12 is now available and the final version is scheduled to be released on October 1, 2023. We need to make SnapPy compatible, including the following binary components:

  • FXrays
  • knot_floer_homology
  • cypari
  • Spherogram
  • SnapPy itself

Depending on the module, this would also be a natural time to make sure everything works with Cython 3.0.

— Reply to this email directly, view it on GitHub https://github.com/3-manifolds/SnapPy/issues/112, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ6CP6LCOS3R7SNWM2BCNTXVEOT5ANCNFSM6AAAAAA3O2DRPA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

culler commented 1 year ago

There was no issue with knot_floer_homology.

On Sun, Aug 13, 2023 at 5:31 PM Marc Culler @.***> wrote:

With CyPari I encountered this error: cypari/_pari.c:215168:26: error: no member named 'ob_digit' in 'struct _longobject'

That would appear to be a change in the python api.

  • Marc

On Sun, Aug 13, 2023 at 1:49 PM Nathan Dunfield @.***> wrote:

The first release candidate for Python 3.12 is now available and the final version is scheduled to be released on October 1, 2023. We need to make SnapPy compatible, including the following binary components:

  • FXrays
  • knot_floer_homology
  • cypari
  • Spherogram
  • SnapPy itself

Depending on the module, this would also be a natural time to make sure everything works with Cython 3.0.

— Reply to this email directly, view it on GitHub https://github.com/3-manifolds/SnapPy/issues/112, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ6CP6LCOS3R7SNWM2BCNTXVEOT5ANCNFSM6AAAAAA3O2DRPA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

culler commented 1 year ago

Ditto with Spherogram -- no build issues.

On Sun, Aug 13, 2023 at 5:32 PM Marc Culler @.***> wrote:

There was no issue with knot_floer_homology.

  • Marc

On Sun, Aug 13, 2023 at 5:31 PM Marc Culler @.***> wrote:

With CyPari I encountered this error: cypari/_pari.c:215168:26: error: no member named 'ob_digit' in 'struct _longobject'

That would appear to be a change in the python api.

  • Marc

On Sun, Aug 13, 2023 at 1:49 PM Nathan Dunfield @.***> wrote:

The first release candidate for Python 3.12 is now available and the final version is scheduled to be released on October 1, 2023. We need to make SnapPy compatible, including the following binary components:

  • FXrays
  • knot_floer_homology
  • cypari
  • Spherogram
  • SnapPy itself

Depending on the module, this would also be a natural time to make sure everything works with Cython 3.0.

— Reply to this email directly, view it on GitHub https://github.com/3-manifolds/SnapPy/issues/112, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ6CP6LCOS3R7SNWM2BCNTXVEOT5ANCNFSM6AAAAAA3O2DRPA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

culler commented 1 year ago

No issues with low_index or the manifold data.

On Sun, Aug 13, 2023 at 5:33 PM Marc Culler @.***> wrote:

Ditto with Spherogram -- no build issues.

  • Marc

On Sun, Aug 13, 2023 at 5:32 PM Marc Culler @.***> wrote:

There was no issue with knot_floer_homology.

  • Marc

On Sun, Aug 13, 2023 at 5:31 PM Marc Culler @.***> wrote:

With CyPari I encountered this error: cypari/_pari.c:215168:26: error: no member named 'ob_digit' in 'struct _longobject'

That would appear to be a change in the python api.

  • Marc

On Sun, Aug 13, 2023 at 1:49 PM Nathan Dunfield < @.***> wrote:

The first release candidate for Python 3.12 is now available and the final version is scheduled to be released on October 1, 2023. We need to make SnapPy compatible, including the following binary components:

  • FXrays
  • knot_floer_homology
  • cypari
  • Spherogram
  • SnapPy itself

Depending on the module, this would also be a natural time to make sure everything works with Cython 3.0.

— Reply to this email directly, view it on GitHub https://github.com/3-manifolds/SnapPy/issues/112, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ6CP6LCOS3R7SNWM2BCNTXVEOT5ANCNFSM6AAAAAA3O2DRPA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

NathanDunfield commented 1 year ago

@culler Marc, thanks for getting started on this. I kicked the CI for FXrays and knot_floer_homology and uploaded the resulting wheels to pypi. I also pinned the version of cibuildwheel on those so it won't start springing new versions of Python on us in the future as in https://github.com/3-manifolds/Spherogram/pull/53.

NathanDunfield commented 1 year ago

The CI had trouble with spherogram and Python 3.12 even though it also worked fine for me locally; I fixed this and have now posted wheels for both low_index and spherogram.

For now, I've removed Python 3.12 from the CI of snappy proper.

NathanDunfield commented 1 year ago

Python 3.12 wheels for snappy 3.1.1 and all its parts are now posted on PyPi.