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

py310-py311: Update to latest wheel and rework numpy management #5531

Merged
merged 12 commits into from
Dec 23, 2022

Conversation

th0ma7
Copy link
Contributor

@th0ma7 th0ma7 commented Dec 20, 2022

Description

Update to latest wheels and fully test all of them for both py3.10-3.11

Fixes #

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Bug fix
  • New Package
  • Package update
  • Includes small framework changes
  • This change requires a documentation update (e.g. Wiki)

@th0ma7 th0ma7 self-assigned this Dec 21, 2022
@th0ma7 th0ma7 changed the title py310: Update to latest wheel and rework numpy management py310-py311: Update to latest wheel and rework numpy management Dec 23, 2022
@hgy59
Copy link
Contributor

hgy59 commented Dec 23, 2022

@th0ma7 I am currently updating #5399 with actual python310 and get this warning while cross compiling wheels:

DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453

This is just a hint, as I didn't analyze what you are working on here.

EDIT:
and an additional warning when building Pillow==9.3.0:

WARNING: Implying --no-binary=:all: due to the presence of --build-option / --global-option / --install-option. Consider using --config-settings for more flexibility.
DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453

@th0ma7
Copy link
Contributor Author

th0ma7 commented Dec 23, 2022

This is just a hint, as I didn't analyze what you are working on here.

WARNING: Implying --no-binary=:all: due to the presence of --build-option / --global-option / --install-option. Consider using --config-settings for more flexibility.
DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453

@hgy59 thnx for the hint. I've took a few cycles to analyse the issue and really there isn't yet any. What is really frustrating is the complete lack of documentation of both --config-settings and --use-feature=no-binary-enable-wheel-cache

As such, these two non-issues will be handled at some other time, perhaps at a subsequent pip update where we won't have the choice to adapt.... or if I find time to ask developpers how to use them as replacement.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Dec 23, 2022

@Safihre would you mind testing out py311 package resulting from the last commit? (currently building)

EDIT: BTW, this solves the /usr/local/bin/python3.11 symlink which wasn't set properly with earlier version of the package.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Dec 23, 2022

Both py310-py311 where successfully tested on DSM6 and DSM7. Merging.

@th0ma7 th0ma7 merged commit 7a07261 into SynoCommunity:master Dec 23, 2022
Comment on lines 9 to 10
# - CFLAGS=-sdt=c99 < gcc-4.9
# - CFLAGS=-sdt=c11 >= gcc-4.9
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: std (not sdt)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch... Gladly its ok in the makefile :)

@hgy59
Copy link
Contributor

hgy59 commented Dec 23, 2022

@th0ma7 shouldn't the wheels installed into crossenv be of the same version as in requirements-pure.txt files?
i.e. versions in
cross/python310/Makefile vs spk/python310/src/requirements-pure.txt
cross/python311/Makefile vs spk/python311/src/requirements-pure.txt

and setuptools should match the version in native/python310/Makefile and native/python311/Makefile

so far only setuptools differ

  • setuptools (setuptools==65.6.3 vs setuptools==63.4.3)
  • ...

When building crossenv wheels I faced uninstall setuptools logs for every wheel...

@th0ma7 th0ma7 deleted the py310-311-testing branch December 23, 2022 20:46
@th0ma7
Copy link
Contributor Author

th0ma7 commented Dec 23, 2022

@hgy59 sharp eyes... indeed normally all versions are identical, from native to cross used to generate the work-<arch>-version>/crossenv. Although requirements-* (e.g. resulting wheels being built) is less of an issue but still I do my best at keeping them identical.

Issue relates to numpy building from the crossenv (which in turns is recommended to have an identical version for native) for versions below <= 1.22.x, which affects only armv5 and armv7l:
pypa/setuptools#3549

With the newer py311 we can no longer support version 1.21.x for armv5. Question then becomes, should we bump setuptools only for py311 and abandon numpy on older compilers (e.g. gcc <= 4.8 thus also affecting armv7l).

Lastly, I haven't tested with latest and greates seutptools along with latest updates available for older numpy branches. Perhaps things have evolved slightly in terms of compatibility?

@Safihre
Copy link
Contributor

Safihre commented Dec 24, 2022

@th0ma7 It seems to work fine for #5527

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