pytest-dev / iniconfig

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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))?

Hi @RonnyPfannschmidt,

Due to a pip bug where it doesn't carry-on a certificate in case a local pypi repository is used , and since the whl of iniconfig is missing, when pip tries to install build dependencies (as in pyproject.toml) it fails.

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

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)

@hugovk with #19 merged i believe all thats missing is the deploy you propose