conda-forge / pypy3.6-feedstock

A conda-smithy repository for pypy3.6.
BSD 3-Clause "New" or "Revised" License
4 stars 13 forks source link

update to v7.3.11 #99

Closed mattip closed 1 year ago

mattip commented 1 year ago

Checklist

Part 1 of #98. Note that in the mean time CPython released security fixes for python3.8.16, python3.9.16, it may be worthwhile adding patches for those.

conda-forge-linter commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

mattip commented 1 year ago

@conda-forge-admin, please rerender

mattip commented 1 year ago

CI is passing. Anyone care to review?

h-vetinari commented 1 year ago

Ah, and I was wondering about osx-arm support - it's mentioned in the announcement, but I guess it makes sense to tackle this in a separate PR. Or is cross-compilation still a ways away?

mattip commented 1 year ago

it makes sense to tackle this in a separate PR

I think so. I don't know if cross-compilation is an option since it will be very slow. I already build aarch64 and ppc64le outside CI, I could do the same for arm64. However I would want buy-in from the conda-forge team, since it would mean starting a migration for binary packages.

mattip commented 1 year ago
it makes sense to tackle this in a separate PR

xref #88

h-vetinari commented 1 year ago

I don't know if cross-compilation is an option since it will be very slow

Why should it be slow? For aarch/ppc the compilation essentially runs with native (=host) speed. What's slow is emulating one arch through another (e.g. pretend you're aarch64 while running on actual x64 hardware).

But yeah, it would need a new migration (like for pypy-windows at the time), and likely a bunch of effort to get the bootstrap and the first couple of key packages off the ground.

mattip commented 1 year ago

I think I was confused. cross-compilation (using a different compiler chain and tricking python platform, sys, os, sysconfig and other modules) is not tested and probably will not work out-of-the-box with the PyPy builds. Using qemu on x86 to emulate arm64 will be slow, which is why we build the aarch64 and ppc64le outside of CI.

mattip commented 1 year ago

This should be patched for issue 3865 so the macos-x86_64 will run on older macos<11. The patch is this commit

h-vetinari commented 1 year ago

@mattip Could you upgrade to 7.3.11 here?

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

mattip commented 1 year ago

Could you upgrade to 7.3.11 here?

Done

mattip commented 1 year ago

This should be patched for issue 3865

Also done, this was the main reason for v7.3.11

mattip commented 1 year ago

CPython released security fixes for python3.8.16, python3.9.16, it may be worthwhile adding patches for those.

Also done :)

mattip commented 1 year ago

CI is passing.

Once this is merged I will build the ppc64le and aarch64 artifacts outside of CI according to this gist

h-vetinari commented 1 year ago

I think this is ready, no?

mattip commented 1 year ago

It has been a week. If no other reviewer does so before, I will merge soon and then create the other artifacts.

mattip commented 1 year ago

When trying to follow the procedure to build for aarnch64 and ppc64le I am hitting an error when rerendering.

pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '3.8.* *_cpython'
complete traceback ``` $ conda-smithy rerender INFO:conda_smithy.configure_feedstock:Downloading conda-forge-pinning-2023.01.20.05.27.27 INFO:conda_smithy.configure_feedstock:Extracting conda-forge-pinning to /tmp/tmpvr_7j9ho INFO:conda_smithy.configure_feedstock:openssl3.yaml from feedstock is ignored and upstream version is used Setting build platform. This is only useful when pretending to be on another platform, such as for rendering necessary dependencies on a non-native platform. I tru st that you know what you're doing. WARNING:conda_build.config:Setting build platform. This is only useful when pretending to be on another platform, such as for rendering necessary dependencies on a non-native platform. I trust that you know what you're doing. Setting build arch. This is only useful when pretending to be on another arch, such as for rendering necessary dependencies on a non-native arch. I trust that you know what you're doing. WARNING:conda_build.config:Setting build arch. This is only useful when pretending to be on another arch, such as for rendering necessary dependencies on a non-nat ive arch. I trust that you know what you're doing. No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.16 WARNING:conda_build.metadata:No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.16 Adding in variants from internal_defaults INFO:conda_build.variants:Adding in variants from internal_defaults Adding in variants from /tmp/tmpvr_7j9ho/conda_build_config.yaml INFO:conda_build.variants:Adding in variants from /tmp/tmpvr_7j9ho/conda_build_config.yaml Adding in variants from /home/matti/pypy3.6-feedstock/recipe/conda_build_config.yaml INFO:conda_build.variants:Adding in variants from /home/matti/pypy3.6-feedstock/recipe/conda_build_config.yaml INFO:conda_smithy.configure_feedstock:Applying migrations: /tmp/tmpvr_7j9ho/share/conda-forge/migrations/openssl3.yaml Adding in variants from argument_variants INFO:conda_build.variants:Adding in variants from argument_variants INFO:conda_smithy.configure_feedstock:Applying migrations: /tmp/tmpvr_7j9ho/share/conda-forge/migrations/openssl3.yaml INFO:conda_smithy.configure_feedstock:Applying migrations: /tmp/tmpvr_7j9ho/share/conda-forge/migrations/openssl3.yaml Traceback (most recent call last): File "/home/matti/miniconda3/envs/builder/bin/conda-smithy", line 10, in sys.exit(main()) File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_smithy/cli.py", line 670, in main args.subcommand_func(args) File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_smithy/cli.py", line 486, in __call__ self._call(args, tmpdir) File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_smithy/cli.py", line 491, in _call configure_feedstock.main( File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_smithy/configure_feedstock.py", line 2277, in main render_azure(env, config, forge_dir, return_metadata=True) File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_smithy/configure_feedstock.py", line 1389, in render_azure return _render_ci_provider( File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_smithy/configure_feedstock.py", line 690, in _render_ci_provider metas = conda_build.api.render( File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/api.py", line 38, in render metadata_tuples = render_recipe(recipe_path, bypass_env_check=bypass_env_check, File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/render.py", line 849, in render_recipe rendered_metadata = distribute_variants(m, variants, File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/render.py", line 711, in distribute_variants used_variables = metadata.get_used_loop_vars(force_global=False) File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/metadata.py", line 2558, in get_used_loop_vars for var in self.get_used_vars( File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/metadata.py", line 2661, in get_used_vars meta_yaml_reqs = self._get_used_vars_meta_yaml( File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/metadata.py", line 2746, in _get_used_vars_meta_yaml reqs_text, recipe_text = self._get_used_vars_meta_yaml_helper( File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/metadata.py", line 2714, in _get_used_vars_meta_yaml_helper recipe_text = self.get_recipe_text( File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/metadata.py", line 2013, in get_recipe_text ns_cfg(self.config), File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/metadata.py", line 102, in ns_cfg defaults = variants.get_default_variant(config) File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/variants.py", line 109, in get_default_variant base.update(_get_default_compilers(config.platform, python)) File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/conda_build/variants.py", line 90, in _get_default_compilers if parse_version(py_ver) >= parse_version('3.5'): File "/home/matti/miniconda3/envs/builder/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py", line 266, in __init__ raise InvalidVersion(f"Invalid version: '{version}'") pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '3.8.* *_cpython' ``
mattip commented 1 year ago

The error above is on aarch64. On ppc64le that error is a warning.

mattip commented 1 year ago

Starting over from an updated base environment seems to have allowed the build process to complete.

mattip commented 1 year ago

@isuruf the conda-forge-p8-1 machine is out of disk space. Is there a way to clean up something there or to get a larger disk?

mattip commented 1 year ago

@beckermr do you known anything about the ppc64le conda-forge-p8-1 machine? It does not have enough disk space to allow me to build the ppc64le packages for this feedstock, as I have been able to do in the past following this gist. The builds are too slow to use a cross-compilation workflow.

isuruf commented 1 year ago

Cleaned up the VM. Have a look now.

mattip commented 1 year ago

I uploaded ppc64le and aarch64 tarballs to https://anaconda.org/mattip/pypy3.8/files and https://anaconda.org/mattip/pypy3.9/files and marked them with the "copy" label. There should be 4 files in each location.

Here are the build logs

ppc64le-logs.txt aarch64-logs.txt

xref @isuruf could you copy the files to https://anaconda.org/conda-forge/pypy3.8 and https://anaconda.org/conda-forge/pypy3.9 ?

isuruf commented 1 year ago

Done

mattip commented 1 year ago

Thanks!