conan-io / conan

Conan - The open-source C and C++ package manager
https://conan.io
MIT License
8.26k stars 981 forks source link

Is pyasn really necessary on macOS? #3793

Closed datalogics-kam closed 6 years ago

datalogics-kam commented 6 years ago

To help us debug your issue please explain:

I'm going around and around with Pipenv, because it won't install Conan without --pre or the allow_prereleases setting. This is due to Conan depending on pyasn, which has never had a stable release, all betas.

If I do use allow_prereleases, then I start grabbing up development versions of Conan itself, as well as Conan's dependencies, which is not ideal.

For instance:

$ pipenv install 'conan~=1.8.3'
...
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  First try clearing your dependency cache with $ pipenv lock --clear, then try the original command again.
 Alternatively, you can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches pyasn<1.6.0,>=1.5.0b7
Skipped pre-versions: 1.5.0b4, 1.5.0b6, 1.5.0b7, 1.6.0b1
There are incompatible versions in the resolved dependencies.

If I allow prereleases, I get a prerelease Conan, which I don't want.

$ pipenv install 'conan~=1.8.3' --pre
...
$ pipenv graph
conan==1.8.4.dev1
  - astroid [required: >=1.6.5, installed: 2.1.0.dev0]
    - lazy-object-proxy [required: Any, installed: 1.3.1]
    - six [required: Any, installed: 1.11.0]
    - typed-ast [required: Any, installed: 1.1.0]
    - wrapt [required: Any, installed: 1.10.11]
  - bottle [required: >=0.12.8,<0.13, installed: 0.12.13]
  - colorama [required: >=0.3.3,<0.4.0, installed: 0.3.9]
  - cryptography [required: >=1.3.4,<2.4.0, installed: 2.3.1]
    - asn1crypto [required: >=0.21.0, installed: 0.24.0]
    - cffi [required: >=1.7,!=1.11.3, installed: 1.11.5]
      - pycparser [required: Any, installed: 2.19]
    - idna [required: >=2.1, installed: 2.6]
    - six [required: >=1.4.1, installed: 1.11.0]
  - deprecation [required: >=2.0,<2.1, installed: 2.0.6]
    - packaging [required: Any, installed: 18.0]
      - pyparsing [required: >=2.0.2, installed: 2.2.2]
      - six [required: Any, installed: 1.11.0]
  - distro [required: >=1.0.2,<1.2.0, installed: 1.1.0]
  - fasteners [required: >=0.14.1, installed: 0.14.1]
    - monotonic [required: >=0.1, installed: 1.5]
    - six [required: Any, installed: 1.11.0]
  - future [required: ==0.16.0, installed: 0.16.0]
  - idna [required: ==2.6, installed: 2.6]
  - ndg-httpsclient [required: >=0.4.1,<0.5.0, installed: 0.4.4]
    - pyasn1 [required: >=0.1.1, installed: 0.4.4]
    - PyOpenSSL [required: Any, installed: 17.5.0]
      - cryptography [required: >=2.1.4, installed: 2.3.1]
        - asn1crypto [required: >=0.21.0, installed: 0.24.0]
        - cffi [required: >=1.7,!=1.11.3, installed: 1.11.5]
          - pycparser [required: Any, installed: 2.19]
        - idna [required: >=2.1, installed: 2.6]
        - six [required: >=1.4.1, installed: 1.11.0]
      - six [required: >=1.5.2, installed: 1.11.0]
  - node-semver [required: ==0.2.0, installed: 0.2.0]
  - patch [required: ==1.16, installed: 1.16]
  - pluginbase [required: >=0.5,<1.0, installed: 0.7]
  - pyasn [required: >=1.5.0b7,<1.6.0, installed: 1.5.0b7]
  - pygments [required: >=2.0,<3.0, installed: 2.2.0]
  - PyJWT [required: >=1.4.0,<2.0.0, installed: 1.6.4]
  - pylint [required: >=1.9.3, installed: 2.1.1]
    - astroid [required: >=2.0.0, installed: 2.1.0.dev0]
      - lazy-object-proxy [required: Any, installed: 1.3.1]
      - six [required: Any, installed: 1.11.0]
      - typed-ast [required: Any, installed: 1.1.0]
      - wrapt [required: Any, installed: 1.10.11]
    - isort [required: >=4.2.5, installed: 4.3.4]
    - mccabe [required: Any, installed: 0.6.1]
  - pyOpenSSL [required: >=16.0.0,<18.0.0, installed: 17.5.0]
    - cryptography [required: >=2.1.4, installed: 2.3.1]
      - asn1crypto [required: >=0.21.0, installed: 0.24.0]
      - cffi [required: >=1.7,!=1.11.3, installed: 1.11.5]
        - pycparser [required: Any, installed: 2.19]
      - idna [required: >=2.1, installed: 2.6]
      - six [required: >=1.4.1, installed: 1.11.0]
    - six [required: >=1.5.2, installed: 1.11.0]
  - PyYAML [required: >=3.11,<3.14.0, installed: 3.13]
  - requests [required: >=2.7.0,<3.0.0, installed: 2.20.0]
    - certifi [required: >=2017.4.17, installed: 2018.10.15]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.8, installed: 2.6]
    - urllib3 [required: >=1.21.1,<1.25, installed: 1.24]
  - six [required: >=1.10.0, installed: 1.11.0]
  - tqdm [required: >=4.27.0,<5.0, installed: 4.27.0]
$ pipenv install -e ~/src/conan
...
$ pipenv graph
conan==1.8.1
  - astroid [required: >=1.6.5, installed: 2.0.4]
    - lazy-object-proxy [required: Any, installed: 1.3.1]
    - six [required: Any, installed: 1.11.0]

It makes me wonder if it really belongs at all. Is it necessary? Can it be taken out? It'd make working with Pipenv a whole lot easier.

memsharded commented 6 years ago

This is a very good point, and a perfect report, many thanks for it. Sounds like it could be removed, lets try it.

memsharded commented 6 years ago

@datalogics-kam fixed in release 1.8.4, please upgrade and report.

datalogics-kam commented 6 years ago

@datalogics-kam fixed in release 1.8.4, please upgrade and report.

Yes! Thank you very much, and for the rapid response, too. It works great!