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

WIP: Building on Neutrino155 master: debug petsc -3.10 build #78

Open
wants to merge 39 commits into
base: master
Choose a base branch
from

Conversation

Chiffafox
Copy link
Collaborator

Just trying to isolate the problem to 3.10 -- eliminate all other versions, remove serial tests.

Neutrino155 and others added 27 commits May 4, 2023 13:26
Test seemed to fail for v3.10 but might pass for others. Want to see if petsc and petsc4py successful compile now that pip is pinned to 23.0.1.
Suggestion from warning message: 

```DEPRECATION: petsc4py is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559```
Lets see if this one still fails to build petsc!
@matthewcarbone
Copy link
Owner

@Chiffafox any ideas here? 😁

@Chiffafox
Copy link
Collaborator Author

Chiffafox commented May 12, 2023

Basically the problem is two-fold

  • PETSc is (still) not set up to be built using wheels. The way it is supposed to work right now is it tries to build a wheel, fails, then defaults to legacy install mode via setup.py and succeeds.
  • At some point, folks behind pip decided to retire the meaning of --no-binary as "default to legacy install mode via setup.py". So that's my guess as to why, in later versions of python, we start to see a problem as pip is no longer dropping to legacy install mode.

I see two possible solutions

  • Find a way to force modern versions of pip to default to legacy install mode (working on this now).
  • Build PETSc "the right way", i.e. through ./configure and all that. (Much more painful for the user, not excited about this approach.)

I'll see what I can do to make (1) work, hopefully that solves the problem.

@Chiffafox
Copy link
Collaborator Author

Okay, I have localized it to a version change in pip: with pip version 23.0.1, petsc install works no problem. However the version used with python=3.10 appears to be pip version 23.1.2, which does not drop down to legacy install mode: I confirm this locally as well. I imagine the problem is the same for later Python versions.

Tl;DR is we need to version-lock pip to 23.0.1 or lower.

@matthewcarbone
Copy link
Owner

matthewcarbone commented May 13, 2023

It's really spooky that some random change somewhere can totally break our installation. That's not supposed to be the way versioning works. Not that I know how to fix it but honestly it should not be this difficult.

@Chiffafox wild idea: any way we can install PETSc from source or something? Would that be easier?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants