publish wheels
RonnyPfannschmidt opened this issue · comments
based on #16 the build pipeline should also publish the wheels
extra context, according to the config it should publish, so something is broken that i have to debug later
Not entirely sure if this is related the issue you have logged here, but AWS tried to spin up a new instance of our prod application just now, but it failed with the following issue. Neither iniconfig, nor setuptools were specified in our requirements.txt, and we'd had no previous issues, but coinciding with the recent release of iniconfig, its presence as a dependency of pytest, which was in requirements.txt, has caused this failure.
WARNING: Missing build requirements in pyproject.toml for iniconfig from https://files.pythonhosted.org/packages/23/a2/97899f6bd0e873fed3a7e67ae8d3a08b21799430fb4da15cfedf10d6e2c2/iniconfig-1.1.1.tar.gz#sha256=bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32 (from pytest==6.0.1->-r requirements.txt (line 19)).
WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'setuptools>=40.8.0' and 'wheel'.
Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 228, in _main
status = self.run(options, args)
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
return func(self, options, args)
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 324, in run
reqs, check_supported_wheels=not options.target_dir
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve
discovered_reqs.extend(self._resolve_one(requirement_set, req))
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/resolution/legacy/resolver.py", line 340, in _get_abstract_dist_for
abstract_dist = self.preparer.prepare_linked_requirement(req)
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 483, in prepare_linked_requirement
req, self.req_tracker, self.finder, self.build_isolation,
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 91, in _get_prepared_distribution
abstract_dist.prepare_distribution_metadata(finder, build_isolation)
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/distributions/sdist.py", line 38, in prepare_distribution_metadata
self._setup_isolation(finder)
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_internal/distributions/sdist.py", line 96, in _setup_isolation
reqs = backend.get_requires_for_build_wheel()
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_vendor/pep517/wrappers.py", line 161, in get_requires_for_build_wheel
'config_settings': config_settings
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_vendor/pep517/wrappers.py", line 265, in _call_hook
raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
File "/opt/python/run/venv/local/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 86, in _build_backend
obj = import_module(mod_path)
File "/opt/python/run/venv/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'setuptools.build_meta'
I am affected, too:
$ python3.8 -m pip install --upgrade -r requirements.d/venv.txt
[...]
Collecting iniconfig (from pytest==6.1.1->-r requirements.d/venv.txt (line 11))
Downloading https://files.pythonhosted.org/packages/23/a2/97899f6bd0e873fed3a7e67ae8d3a08b21799430fb4da15cfedf10d6e2c2/iniconfig-1.1.1.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'setuptools'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-egy0plx7/iniconfig/
When I manually install setuptools and wheel beforehand, I can install iniconfig successfully:
$ python3.8 -m pip install --upgrade setuptools wheel
Collecting setuptools
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Downloading https://files.pythonhosted.org/packages/44/a6/7fb6e8b3f4a6051e72e4e2218889351f0ee484b9ee17e995f5ccff780300/setuptools-50.3.0-py3-none-any.whl (785kB)
Collecting wheel
Cache entry deserialization failed, entry ignored
Cache entry deserialization failed, entry ignored
Downloading https://files.pythonhosted.org/packages/a7/00/3df031b3ecd5444d572141321537080b40c1c25e1caa3d86cdd12e5e919c/wheel-0.35.1-py2.py3-none-any.whl
Installing collected packages: setuptools, wheel
Successfully installed setuptools-50.3.0 wheel-0.35.1
$ python3.8 -m pip install --upgrade -r requirements.d/venv.txt
[...]
Collecting iniconfig (from pytest==6.1.1->-r requirements.d/venv.txt (line 11))
Downloading https://files.pythonhosted.org/packages/23/a2/97899f6bd0e873fed3a7e67ae8d3a08b21799430fb4da15cfedf10d6e2c2/iniconfig-1.1.1.tar.gz
Collecting pyparsing>=2.0.2 (from packaging>=14->tox==3.20.1->-r requirements.d/venv.txt (line 9))
Downloading https://files.pythonhosted.org/packages/8a/bb/488841f56197b13700afd5658fc279a2025a39e22449b7cf29864669b15d/pyparsing-2.4.7-py2.py3-none-any.whl (67kB)
Building wheels for collected packages: iniconfig
Running setup.py bdist_wheel for iniconfig: started
Running setup.py bdist_wheel for iniconfig: finished with status 'done'
Stored in directory: /root/.cache/pip/wheels/57/56/2e/a7da6f8283d40e5c703df7335561cf61143b8a6988bfb363ac
Successfully built iniconfig
Installing collected packages: filelock, pip, pluggy, py, six, tokenize-rt, toml, appdirs, distlib, virtualenv, pyparsing, packaging, tox, attrs, iniconfig, pytest
Found existing installation: pip 9.0.1
Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
Successfully installed appdirs-1.4.4 attrs-20.2.0 distlib-0.3.1 filelock-3.0.12 iniconfig-0.0.0 packaging-20.4 pip-20.2.3 pluggy-0.13.1 py-1.9.0 pyparsing-2.4.7 pytest-6.1.1 six-1.15.0 tokenize-rt-4.0.0 toml-0.10.1 tox-3.20.1 virtualenv-20.0.34
My requirements file (requirements.d/venv.txt
) contains the following:
filelock==3.0.12
pip==20.2.3
pluggy==0.13.1
py==1.9.0
setuptools==50.3.0
six==1.15.0
tokenize-rt==4.0.0
toml==0.10.1
tox==3.20.1
virtualenv==20.0.34
pytest==6.1.1
So there is setuptools, but no wheel being required. Maybe I should?
I recreated the venv:
$ rm -rf venv/
$ python3.8 -m venv venv
$ venv/bin/python -m pip install --upgrade pip setuptools wheel tox
Collecting pip
Using cached pip-20.2.3-py2.py3-none-any.whl (1.5 MB)
Collecting setuptools
Using cached setuptools-50.3.0-py3-none-any.whl (785 kB)
Collecting wheel
Using cached wheel-0.35.1-py2.py3-none-any.whl (33 kB)
Collecting tox
Using cached tox-3.20.1-py2.py3-none-any.whl (83 kB)
Collecting filelock>=3.0.0
Using cached filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting virtualenv!=20.0.0,!=20.0.1,!=20.0.2,!=20.0.3,!=20.0.4,!=20.0.5,!=20.0.6,!=20.0.7,>=16.0.0
Using cached virtualenv-20.0.34-py2.py3-none-any.whl (4.9 MB)
Collecting py>=1.4.17
Using cached py-1.9.0-py2.py3-none-any.whl (99 kB)
Collecting toml>=0.9.4
Using cached toml-0.10.1-py2.py3-none-any.whl (19 kB)
Collecting packaging>=14
Using cached packaging-20.4-py2.py3-none-any.whl (37 kB)
Collecting pluggy>=0.12.0
Using cached pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting six>=1.14.0
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting distlib<1,>=0.3.1
Using cached distlib-0.3.1-py2.py3-none-any.whl (335 kB)
Collecting appdirs<2,>=1.4.3
Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting pyparsing>=2.0.2
Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Installing collected packages: pip, setuptools, wheel, filelock, six, distlib, appdirs, virtualenv, py, toml, pyparsing, packaging, pluggy, tox
Attempting uninstall: pip
Found existing installation: pip 20.2.1
Uninstalling pip-20.2.1:
Successfully uninstalled pip-20.2.1
Attempting uninstall: setuptools
Found existing installation: setuptools 49.2.1
Uninstalling setuptools-49.2.1:
Successfully uninstalled setuptools-49.2.1
Successfully installed appdirs-1.4.4 distlib-0.3.1 filelock-3.0.12 packaging-20.4 pip-20.2.3 pluggy-0.13.1 py-1.9.0 pyparsing-2.4.7 setuptools-50.3.0 six-1.15.0 toml-0.10.1 tox-3.20.1 virtualenv-20.0.34 wheel-0.35.1
$ venv/bin/python -m pip freeze --all --exclude-editable > requirements.d/venv.txt
This fixes the installation issue for me.
the incorrect pyproject.toml
triggers a build failure
I think that I am also affected by this issue. I am trying to run Python 3.6 and 3.7 tests with pytest
in CI. Posting my error message in case it helps.
Collecting toml
Downloading toml-0.10.1-py2.py3-none-any.whl (19 kB)
Collecting iniconfig
Downloading iniconfig-1.1.1.tar.gz (8.1 kB)
Installing build dependencies ... -� �error
ERROR: Command errored out with exit status 1:
command: /home/circleci/project/venv/bin/python /home/circleci/project/venv/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-65o3tyry/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=41.2.0' wheel 'setuptools_scm>3'
cwd: None
Complete output (14 lines):
Traceback (most recent call last):
File "/usr/local/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/local/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/circleci/project/venv/lib/python3.7/site-packages/pip/__main__.py", line 16, in <module>
from pip._internal.cli.main import main as _main # isort:skip # noqa
File "/home/circleci/project/venv/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 5, in <module>
import locale
File "/usr/local/lib/python3.7/locale.py", line 16, in <module>
import re
File "/usr/local/lib/python3.7/re.py", line 143, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
----------------------------------------
ERROR: Command errored out with exit status 1: /home/circleci/project/venv/bin/python /home/circleci/project/venv/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-65o3tyry/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=41.2.0' wheel 'setuptools_scm>3' Check the logs for full command output.
For AWS SAM builds using the lambci/lambda:build-python-3.6
image, and trying to install iniconfig
only:
❯ sam build --region=us-west-2 --template template.yaml --use-container --debug
...
Running workflow 'PythonPipBuilder'
Running PythonPipBuilder:ResolveDependencies
calling pip download -r /tmp/samcli/source/requirements.txt --dest /tmp/samcli/scratch
Full dependency closure: {iniconfig==0.0.0(sdist)}
initial compatible: set()
initial incompatible: {iniconfig==0.0.0(sdist)}
Downloading missing wheels: {iniconfig==0.0.0(sdist)}
calling pip download --only-binary=:all: --no-deps --platform manylinux2014_x86_64 --implementation cp --abi cp36m --dest /tmp/samcli/scratch iniconfig==0.0.0
compatible wheels after second download pass: set()
Build missing wheels from sdists (C compiling True): {iniconfig==0.0.0(sdist)}
calling pip wheel --no-deps --wheel-dir /tmp/samcli/scratch /tmp/samcli/scratch/iniconfig-1.1.1.tar.gz
compatible after building wheels (no C compiling): {iniconfig==1.1.1(wheel)}
Build missing wheels from sdists (C compiling False): {iniconfig==0.0.0(sdist)}
calling pip wheel --no-deps --wheel-dir /tmp/samcli/scratch /tmp/samcli/scratch/iniconfig-1.1.1.tar.gz
compatible after building wheels (C compiling): {iniconfig==1.1.1(wheel)}
Final compatible: {iniconfig==1.1.1(wheel)}
Final incompatible: set()
Final missing wheels: {iniconfig==0.0.0(sdist)}
PythonPipBuilder:ResolveDependencies failed
Traceback (most recent call last):
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 42, in execute
requirements_path=self.manifest_path,
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 137, in build_dependencies
self._dependency_builder.build_site_packages(requirements_path, artifacts_dir_path, scratch_dir_path)
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 207, in build_site_packages
raise MissingDependencyError(packages_without_wheels)
aws_lambda_builders.workflows.python_pip.packager.MissingDependencyError: {iniconfig==0.0.0(sdist)}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflow.py", line 269, in run
action.execute()
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 45, in execute
raise ActionFailedError(str(ex))
aws_lambda_builders.actions.ActionFailedError: {iniconfig==0.0.0(sdist)}
Builder workflow failed
Traceback (most recent call last):
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 42, in execute
requirements_path=self.manifest_path,
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 137, in build_dependencies
self._dependency_builder.build_site_packages(requirements_path, artifacts_dir_path, scratch_dir_path)
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/packager.py", line 207, in build_site_packages
raise MissingDependencyError(packages_without_wheels)
aws_lambda_builders.workflows.python_pip.packager.MissingDependencyError: {iniconfig==0.0.0(sdist)}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflow.py", line 269, in run
action.execute()
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/actions.py", line 45, in execute
raise ActionFailedError(str(ex))
aws_lambda_builders.actions.ActionFailedError: {iniconfig==0.0.0(sdist)}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/__main__.py", line 126, in main
mode=params.get("mode", None),
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/builder.py", line 125, in build
return workflow.run()
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflow.py", line 76, in wrapper
func(self, *args, **kwargs)
File "/var/lang/pipx/venvs/aws-lambda-builders/lib/python3.6/site-packages/aws_lambda_builders/workflow.py", line 276, in run
raise WorkflowFailedError(workflow_name=self.NAME, action_name=action.NAME, reason=str(ex))
aws_lambda_builders.exceptions.WorkflowFailedError: PythonPipBuilder:ResolveDependencies - {iniconfig==0.0.0(sdist)}
Build inside container returned response {"jsonrpc": "2.0", "id": 1, "error": {"code": 400, "message": "PythonPipBuilder:ResolveDependencies - {iniconfig==0.0.0(sdist)}"}}
Build Failed
Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': False, 'debugFlagProvided': True, 'region': 'us-west-2', 'commandName': 'sam build', 'duration': 18931, 'exitReason': 'BuildError', 'exitCode': 1, 'requestId': '8596b9d5-e09a-4951-b4c6-c2c9b613683a', 'installationId': 'b89e1cdf-53d9-431d-a148-0927005bd7fa', 'sessionId': '0ddb7b78-ca99-45eb-9fe1-aade3ff25b5e', 'executionEnvironment': 'CLI', 'pyversion': '3.7.7', 'samcliVersion': '0.47.0'}}]}
HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1)
Error: PythonPipBuilder:ResolveDependencies - {iniconfig==0.0.0(sdist)}
Note I am able to build the wheel if I run the pip wheel
in the image:
❯ docker run -it lambci/lambda:build-python3.6 bash
bash-4.2# pip wheel iniconfig
Collecting iniconfig
Downloading iniconfig-1.1.1.tar.gz (8.1 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: iniconfig
Building wheel for iniconfig (PEP 517) ... done
Created wheel for iniconfig: filename=iniconfig-1.1.1-py2.py3-none-any.whl size=4990 sha256=b4299e824b8d70d32b463a0f588b81820300b0f7d5e66f1f6939c6a4d9061dbc
Stored in directory: /root/.cache/pip/wheels/15/10/56/1a54efcb0993cc193bb0b1aa13815381687f662252f1f778bc
Successfully built iniconfig
I am also having errors when using initconfig>=1.1.0
:
Collecting iniconfig<=1.1.0
Downloading iniconfig-1.1.0.tar.gz (8.1 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /home/indy/.pyenv/versions/3.6.8/bin/python3.6 /home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-q_f9mtmv/overlay
--no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=41.2.0' wheel 'setuptools_scm>3'
cwd: None
Complete output (35 lines):
Traceback (most recent call last):
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/hashlib.py", line 121, in __get_openssl_constructor
f = getattr(_hashlib, 'openssl_' + name)
AttributeError: module '_hashlib' has no attribute 'openssl_sha3_224'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/__main__.py", line 23, in <module>
from pip._internal.cli.main import main as _main # isort:skip # noqa
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/_internal/cli/main.py", line 10, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
from pip._internal.cli import cmdoptions
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/_internal/cli/cmdoptions.py", line 23, in <module>
from pip._internal.cli.progress_bars import BAR_TYPES
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/_internal/cli/progress_bars.py", line 12, in <module>
from pip._internal.utils.logging import get_indentation
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/_internal/utils/logging.py", line 18, in <module>
from pip._internal.utils.misc import ensure_dir
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip/_internal/utils/misc.py", line 10, in <module>
import hashlib
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/hashlib.py", line 244, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/hashlib.py", line 128, in __get_openssl_constructor
return __get_builtin_constructor(name)
File "/home/indy/.pyenv/versions/3.6.8/lib/python3.6/hashlib.py", line 100, in __get_builtin_constructor
cache['sha3_224'] = _sha3.sha3_224
AttributeError: module '_sha3' has no attribute 'sha3_224'
----------------------------------------
ERROR: Command errored out with exit status 1: /home/indy/.pyenv/versions/3.6.8/bin/python3.6 /home/indy/.pyenv/versions/3.6.8/lib/python3.6/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-q_f9mtmv/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=41.2.0' wheel 'setuptools_scm>3' Check the logs for full command output.
Content of requirements.txt:
# Main
django>=2.2,<3
djangorestframework>=3.9.1,<3.12
djangorestframework-bulk>=0.2.1,<1
django-cors-headers>=3
django-filter>=1.1.0
# Database managment
psycopg2-binary>=2.7.3.1,<3
SQLAlchemy==1.3.13
# Web Server
gunicorn>=19.7.1,<20
whitenoise>=4.1.0,<4.2
# Documentation
# django_rest_swagger>=2.1.2,<3
drf-yasg>=1.17.0,<2
packaging>=19.0,<20
flex>=6.13.2,<7
swagger-spec-validator>=2.4.0,<3
# Testing
pytest-cov>=2.5.1,<3
django-nose>=1.4.2
# Search
drf-haystack>=1.6.1,<2
django-haystack>=2.7.dev0,<3
pysolr>=3.6.0,<4
# Generator
drf-generators>=0.3.0
# Debugging
ptvsd==4.1.1a1
# aiohttp
aiohttp~=3.4.0
aiohttp-wsgi~=0.8.1
asgiref~=3.1.2
# rest hooks and related
django-rest-hooks==1.5.0
drf-nested-routers
celery~=4.3.0
vine~=1.3.0
initconfig is in my case being pulled in by pytest-cov==2.10.1
Could the problem be that pyproject.toml is missing from MANIFEST.in (pypa/setuptools#1694 (comment))?
Could the problem be that pyproject.toml is missing from MANIFEST.in (pypa/setuptools#1694 (comment))?
I don't think so: in this case pyproject.toml
is in the sdist (https://pypi.org/project/iniconfig/1.1.1/#files) and it's included automatically by setuptools_scm, so doesn't need to be in MANIFEST.in
.
I uploaded the wheel to TestPyPI and installing the wheel from there fixes my builds:
$ python setup.py sdist bdist_wheel
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/setuptools_scm/git.py:68: UserWarning: "/private/tmp/iniconfig" is shallow and may cause errors
warnings.warn('"{}" is shallow and may cause errors'.format(wd.path))
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/setuptools_scm/git.py:68: UserWarning: "/private/tmp/iniconfig" is shallow and may cause errors
warnings.warn('"{}" is shallow and may cause errors'.format(wd.path))
running sdist
running egg_info
writing src/iniconfig.egg-info/PKG-INFO
writing dependency_links to src/iniconfig.egg-info/dependency_links.txt
writing top-level names to src/iniconfig.egg-info/top_level.txt
reading manifest template 'MANIFEST.in'
writing manifest file 'src/iniconfig.egg-info/SOURCES.txt'
running check
creating iniconfig-1.1.1
creating iniconfig-1.1.1/src
creating iniconfig-1.1.1/src/iniconfig
creating iniconfig-1.1.1/src/iniconfig.egg-info
creating iniconfig-1.1.1/testing
copying files to iniconfig-1.1.1...
copying .gitignore -> iniconfig-1.1.1
copying .hgignore -> iniconfig-1.1.1
copying .landscape.yml -> iniconfig-1.1.1
copying .travis.yml -> iniconfig-1.1.1
copying CHANGELOG -> iniconfig-1.1.1
copying LICENSE -> iniconfig-1.1.1
copying MANIFEST.in -> iniconfig-1.1.1
copying README.txt -> iniconfig-1.1.1
copying example.ini -> iniconfig-1.1.1
copying pyproject.toml -> iniconfig-1.1.1
copying setup.cfg -> iniconfig-1.1.1
copying setup.py -> iniconfig-1.1.1
copying tox.ini -> iniconfig-1.1.1
copying src/iniconfig/__init__.py -> iniconfig-1.1.1/src/iniconfig
copying src/iniconfig/__init__.pyi -> iniconfig-1.1.1/src/iniconfig
copying src/iniconfig/py.typed -> iniconfig-1.1.1/src/iniconfig
copying src/iniconfig.egg-info/PKG-INFO -> iniconfig-1.1.1/src/iniconfig.egg-info
copying src/iniconfig.egg-info/SOURCES.txt -> iniconfig-1.1.1/src/iniconfig.egg-info
copying src/iniconfig.egg-info/dependency_links.txt -> iniconfig-1.1.1/src/iniconfig.egg-info
copying src/iniconfig.egg-info/not-zip-safe -> iniconfig-1.1.1/src/iniconfig.egg-info
copying src/iniconfig.egg-info/top_level.txt -> iniconfig-1.1.1/src/iniconfig.egg-info
copying testing/conftest.py -> iniconfig-1.1.1/testing
copying testing/test_iniconfig.py -> iniconfig-1.1.1/testing
Writing iniconfig-1.1.1/setup.cfg
Creating tar archive
removing 'iniconfig-1.1.1' (and everything under it)
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/iniconfig
copying src/iniconfig/__init__.py -> build/lib/iniconfig
copying src/iniconfig/__init__.pyi -> build/lib/iniconfig
copying src/iniconfig/py.typed -> build/lib/iniconfig
installing to build/bdist.macosx-10.9-x86_64/wheel
running install
running install_lib
creating build/bdist.macosx-10.9-x86_64
creating build/bdist.macosx-10.9-x86_64/wheel
creating build/bdist.macosx-10.9-x86_64/wheel/iniconfig
copying build/lib/iniconfig/__init__.pyi -> build/bdist.macosx-10.9-x86_64/wheel/iniconfig
copying build/lib/iniconfig/__init__.py -> build/bdist.macosx-10.9-x86_64/wheel/iniconfig
copying build/lib/iniconfig/py.typed -> build/bdist.macosx-10.9-x86_64/wheel/iniconfig
running install_egg_info
Copying src/iniconfig.egg-info to build/bdist.macosx-10.9-x86_64/wheel/iniconfig-1.1.1-py3.9.egg-info
running install_scripts
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
creating build/bdist.macosx-10.9-x86_64/wheel/iniconfig-1.1.1.dist-info/WHEEL
creating 'dist/iniconfig-1.1.1-py2.py3-none-any.whl' and adding 'build/bdist.macosx-10.9-x86_64/wheel' to it
adding 'iniconfig/__init__.py'
adding 'iniconfig/__init__.pyi'
adding 'iniconfig/py.typed'
adding 'iniconfig-1.1.1.dist-info/LICENSE'
adding 'iniconfig-1.1.1.dist-info/METADATA'
adding 'iniconfig-1.1.1.dist-info/WHEEL'
adding 'iniconfig-1.1.1.dist-info/top_level.txt'
adding 'iniconfig-1.1.1.dist-info/RECORD'
removing build/bdist.macosx-10.9-x86_64/wheel
$ l dist
total 40
drwxr-xr-x 4 hugo wheel 128B 16 Oct 18:30 .
drwxr-xr-x 20 hugo wheel 640B 16 Oct 18:30 ..
-rw-r--r-- 1 hugo wheel 4.9K 16 Oct 18:30 iniconfig-1.1.1-py2.py3-none-any.whl
-rw-r--r-- 1 hugo wheel 8.7K 16 Oct 18:30 iniconfig-1.1.1.tar.gz
$ twine check dist/*
Checking dist/iniconfig-1.1.1-py2.py3-none-any.whl: PASSED, with warnings
warning: `long_description_content_type` missing. defaulting to `text/x-rst`.
Checking dist/iniconfig-1.1.1.tar.gz: PASSED, with warnings
warning: `long_description_content_type` missing. defaulting to `text/x-rst`.
$ twine upload --repository-url https://test.pypi.org/legacy/ dist/*
Uploading distributions to https://test.pypi.org/legacy/
Enter your username: hugovk
Uploading iniconfig-1.1.1-py2.py3-none-any.whl
100%|█████████████████████████████████████████████████████████████████████████████████████| 10.8k/10.8k [00:02<00:00, 4.96kB/s]
Uploading iniconfig-1.1.1.tar.gz
100%|█████████████████████████████████████████████████████████████████████████████████████| 14.7k/14.7k [00:01<00:00, 9.89kB/s]
View at:
https://test.pypi.org/project/iniconfig/1.1.1/
sdist + wheel: https://test.pypi.org/project/iniconfig/1.1.1/#files
Here's a build which failed before: https://travis-ci.org/github/hugovk/docker-images/jobs/736383820
Then I did a test installing (the wheel) from TestPyPI:
pip install --upgrade iniconfig -i https://test.pypi.org/simple/
Here's a build which passed afterwards: https://travis-ci.com/github/hugovk/docker-images/builds/190504886
I don't recommend people use TestPyPI wheel, it's just a test, especially not on production.
@RonnyPfannschmidt I've also added you (ronny
) as owner to https://test.pypi.org/project/iniconfig/
Please could you upload a wheel for 1.1.1? Something like this:
git checkout v1.1.1
pip install -U pip setuptools wheel twine keyring
rm -rf build dist
python3 setup.py bdist_wheel
twine check dist/*
twine upload -r pypi dist/*
I can then help set up a CI (GitHub Actions ok?) to auto-deploy for later releases.
@hugovk i was considering to just fix the build and upload a new release . i uploaded a wheel now to help the others, i'll di a github actions migration now
Great, thank you!
Confirmed it's now working: https://travis-ci.com/github/hugovk/docker-images/jobs/400761871
I've got an auto-deploy on my fork now, shall I make a PR with setup instructions?
please do so, im working on a pr with the normal test workflow meanwhile + setup.cfg migration and pyproject updates (im not going to debug why travis fails the wheel silently, im done with travis)
https://github.com/pytest-dev/iniconfig/releases/tag/v2.0.0 comes with wheels on pyi