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

Fail to build API Docker image with Python 3.10 #303

Closed
yurinnick opened this issue Jul 17, 2023 · 2 comments · Fixed by #306
Closed

Fail to build API Docker image with Python 3.10 #303

yurinnick opened this issue Jul 17, 2023 · 2 comments · Fixed by #306
Assignees

Comments

@yurinnick
Copy link

When trying to build kernelci-api_api image it fails with error:

  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [62 lines of output]
      /tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/config/setupcfg.py:293: _DeprecatedConfig: Deprecated config in `setup.cfg`
      !!

              ********************************************************************************
              The license_file parameter is deprecated, use license_files instead.

              By 2023-Oct-30, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************

      !!
        parsed = self.parsers.get(option_name, lambda x: x)(value)
      running egg_info
      writing lib3/PyYAML.egg-info/PKG-INFO
      writing dependency_links to lib3/PyYAML.egg-info/dependency_links.txt
      writing top-level names to lib3/PyYAML.egg-info/top_level.txt
      Traceback (most recent call last):
        File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/usr/local/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 323, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 338, in run_setup
          exec(code, locals())
        File "<string>", line 271, in <module>
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/__init__.py", line 107, in setup
          return distutils.core.setup(**attrs)
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 1234, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 314, in run
          self.find_sources()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 322, in find_sources
          mm.run()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 551, in run
          self.add_defaults()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/command/egg_info.py", line 589, in add_defaults
          sdist.add_defaults(self)
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/command/sdist.py", line 104, in add_defaults
          super().add_defaults()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 251, in add_defaults
          self._add_defaults_ext()
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/sdist.py", line 336, in _add_defaults_ext
          self.filelist.extend(build_ext.get_source_files())
        File "<string>", line 201, in get_source_files
        File "/tmp/pip-build-env-c3t4kk1b/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
          raise AttributeError(attr)
      AttributeError: cython_sources
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
Error: building at STEP "RUN pip install --requirement ${REQUIREMENTS}": while running runtime: exit status 1

However once downgrading to base image python:3.9 it builds just fine. Maybe releated to pypa/setuptools#3214.

@JenySadadia JenySadadia self-assigned this Jul 18, 2023
@JenySadadia
Copy link
Collaborator

Thank you for reporting the issue. Looking into it.

JenySadadia referenced this issue in JenySadadia/kernelci-api Jul 18, 2023
Fix build failures of `api` container. Error logs can be found
at ```https://github.com/kernelci/kernelci-api/issues/303```.

Root cause:
`fastapi[all] 0.68.1` package installs `pyyaml 5.4.1` package
internally. That again depends on `CPython` package.
Due to the recent upgrade to `CPython 3.0.0`, `pyyaml 5.4.1` stopped
building with `python 3.10`. To fix this, upgrading `fastapi[all]`
to `0.99.1` version as that uses `pyyaml 6.0.1`. The selected
`fastapi` version is compatible with current `fastapi-pagination`
and `fastapi-versioning` packages.

Signed-off-by: Jeny Sadadia <jeny.sadadia@collabora.com>
JenySadadia referenced this issue in JenySadadia/kernelci-api Jul 18, 2023
Fix build failures of `api` container. Error logs can be found
at ```https://github.com/kernelci/kernelci-api/issues/303```.

Root cause:
`fastapi[all] 0.68.1` package installs `pyyaml 5.4.1` package
internally. That again depends on `Cython` package.
Due to the recent upgrade to `Cython 3.0.0`, `pyyaml 5.4.1` stopped
building with `python 3.10`. To fix this, upgrading `fastapi[all]`
to `0.99.1` version as that uses `pyyaml 6.0.1`. The selected
`fastapi` version is compatible with current `fastapi-pagination`
and `fastapi-versioning` packages.

Signed-off-by: Jeny Sadadia <jeny.sadadia@collabora.com>
@JenySadadia
Copy link
Collaborator

Hello @yurinnick ,
We are using fastapi 0.68.1 version for api.
fastapi 0.68.1 package uses Pyyaml 5.4 internally which relies on Cython package.
The issue occurred due to a recent upgrade of cython package that broke pyyaml. That led to api build failure. Here is the link to the reported issue: yaml/pyyaml#724
The issue has been fixed now by setting the fixed version of pyyaml for the API.

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