Uploaded image for project: 'Couchbase Python Client Library'
  1. Couchbase Python Client Library
  2. PYCBC-688

Python client build is broken for python 3.4+

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Not a Bug
    • 2.5.9
    • 2.5.11
    • None
    • None
    • 1

    Description

      Couchbase new release is broken on python 3.5+ as it included `enum34` as a required dependancy for all versions, which means python3.5+ installs enum34 and breaks whole project as it's incompatible with new python versions.

      See related discussions on `poetry` build system's issue tracker: https://github.com/couchbase/couchbase-python-client

      Attachments

        For Gerrit Dashboard: PYCBC-688
        # Subject Branch Project Status CR V

        Activity

          Ellis.Breen Ellis Breen added a comment - - edited

          That's weird, it is and has always been a conditional dependency:

          https://github.com/couchbase/couchbase-python-client/blob/2.5.9/setup.py#L194

          https://github.com/couchbase/couchbase-python-client/commit/bbdd7d4e63da06c5447ec77e960536299ec44f5c

          Will read through the 'poetry' issue here in detail soon.

          For my own and others' reference, the maintainer mentions it here: https://github.com/sdispater/poetry/issues/1122#issuecomment-551755349

          Not sure why the dependency isn't listed conditionally in the JSON file that PyPi produces.

          Ellis.Breen Ellis Breen added a comment - - edited That's weird, it is and has always been a conditional dependency: https://github.com/couchbase/couchbase-python-client/blob/2.5.9/setup.py#L194 https://github.com/couchbase/couchbase-python-client/commit/bbdd7d4e63da06c5447ec77e960536299ec44f5c Will read through the 'poetry' issue here in detail soon. For my own and others' reference, the maintainer mentions it here:  https://github.com/sdispater/poetry/issues/1122#issuecomment-551755349 Not sure why the dependency isn't listed conditionally in the JSON file that PyPi produces.
          david.kelly David Kelly added a comment - - edited

          https://github.com/python-poetry/poetry/issues/1122 is probably the issue mentioned above.

          Also, from requirements.txt:

          # Backward compatibility
          enum34; python_version < '3.5'
          

          That line has been there since 2017

          All the requirements.txt are popped in the call to setup(), for both the setup_requires and install_requires keys. So all I can see that could be an issue is each of these have a newline at the end, and there are comments as well (though, they are supposed to be handled without problems by pip). We can easily strip them out, and see. But I see the correct stuff coming back from pip (commented in that ticket on poetry).

          david.kelly David Kelly added a comment - - edited https://github.com/python-poetry/poetry/issues/1122 is probably the issue mentioned above. Also, from requirements.txt: # Backward compatibility enum34; python_version < '3.5' That line has been there since 2017 All the requirements.txt are popped in the call to setup(), for both the setup_requires and install_requires keys. So all I can see that could be an issue is each of these have a newline at the end, and there are comments as well (though, they are supposed to be handled without problems by pip). We can easily strip them out, and see. But I see the correct stuff coming back from pip (commented in that ticket on poetry).
          Ellis.Breen Ellis Breen added a comment - - edited

          This appears to be a problem with PyPi not recognising our interpretation of PEP508 with respect to single/double quotes. The change we made to 2.5.9 appears to have at least meant that PyPI recognises it correctly. Have asked whether this has fixed the issue for users here:

          https://github.com/python-poetry/poetry/issues/1122#issuecomment-584617117

          wraptile - has this resolved the issue for you?

          Thanks,

          Ellis

          Ellis.Breen Ellis Breen added a comment - - edited This appears to be a problem with PyPi not recognising our interpretation of PEP508 with respect to single/double quotes. The change we made to 2.5.9 appears to have at least meant that PyPI recognises it correctly. Have asked whether this has fixed the issue for users here: https://github.com/python-poetry/poetry/issues/1122#issuecomment-584617117 wraptile - has this resolved the issue for you? Thanks, Ellis
          Ellis.Breen Ellis Breen added a comment -

          I think it's probably safe to assume this is fixed given this comment:

          https://github.com/python-poetry/poetry/issues/1122#issuecomment-579187474

          The version specifier was only just added in the latest release (December): https://pypi.org/pypi/couchbase/2.5.9/json
          

          Ellis.Breen Ellis Breen added a comment - I think it's probably safe to assume this is fixed given this comment: https://github.com/python-poetry/poetry/issues/1122#issuecomment-579187474 The version specifier was only just added in the latest release (December): https://pypi.org/pypi/couchbase/2.5.9/json
          Ellis.Breen Ellis Breen added a comment -

          Our version marker is correct but not interpreted correctly by PyPi. However in 2.5.9 of PYCBC this is changed to work for all implementations of version markers.

          Ellis.Breen Ellis Breen added a comment - Our version marker is correct but not interpreted correctly by PyPi. However in 2.5.9 of PYCBC this is changed to work for all implementations of version markers.

          People

            Ellis.Breen Ellis Breen
            wraptile wraptile
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty