Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Do not install setuptools 50.0 on Python 3.5 #8212

Merged
merged 6 commits into from
Sep 1, 2020
Merged

Conversation

clokep
Copy link
Member

@clokep clokep commented Aug 31, 2020

It seems that setuptools 50.0 breaks on Python 3.5, this avoids using that configuration. See pypa/setuptools#2352

@clokep
Copy link
Member Author

clokep commented Aug 31, 2020

setuptools gets pulled in from a bunch of dependencies:

$ pipdeptree --reverse --packages setuptools
Warning!!! Possibly conflicting dependencies found:
* mypy-zope==0.2.7
 - mypy [required: ==0.780, installed: 0.782]
------------------------------------------------------------------------
setuptools==41.2.0
  - acme==0.40.1 [requires: setuptools]
    - txacme==0.9.3 [requires: acme>=0.21.0,<1.0.0]
  - josepy==1.3.0 [requires: setuptools>=1.0]
    - acme==0.40.1 [requires: josepy>=1.1.0]
      - txacme==0.9.3 [requires: acme>=0.21.0,<1.0.0]
    - txacme==0.9.3 [requires: josepy]
  - jsonschema==3.2.0 [requires: setuptools]
    - matrix-synapse==1.18.0 [requires: jsonschema>=2.5.1]
  - twine==3.2.0 [requires: setuptools>=0.7.0]
  - zope.event==4.4 [requires: setuptools]
    - zope.schema==6.0.0 [requires: zope.event]
      - mypy-zope==0.2.7 [requires: zope.schema]
  - zope.interface==5.1.0 [requires: setuptools]
    - eliot==1.12.0 [requires: zope.interface]
      - txacme==0.9.3 [requires: eliot>=0.8.0]
    - mypy-zope==0.2.7 [requires: zope.interface]
    - Twisted==20.3.0 [requires: zope.interface>=4.4.2]
      - matrix-synapse==1.18.0 [requires: Twisted>=18.9.0]
      - matrix-synapse-ldap3==0.1.4 [requires: Twisted>=15.1.0]
      - treq==20.4.1 [requires: Twisted>=18.7.0]
        - matrix-synapse==1.18.0 [requires: treq>=15.1]
        - txacme==0.9.3 [requires: treq>=15.1.0]
      - txacme==0.9.3 [requires: twisted>=16.2.0]
      - txredisapi==1.4.7 [requires: twisted]
      - TxSNI==0.2.0 [requires: Twisted>=14.0]
        - txacme==0.9.3 [requires: txsni]
    - zope.schema==6.0.0 [requires: zope.interface>=5.0.0]
      - mypy-zope==0.2.7 [requires: zope.schema]
  - zope.schema==6.0.0 [requires: setuptools]
    - mypy-zope==0.2.7 [requires: zope.schema]

Copy link
Member

@anoadragon453 anoadragon453 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Someone on the linked thread mentioned that this also breaks with Python 3.6.1, however 3.6.12 (which we're using) appears to work just fine.

Hopefully >=v50.1 works fine :)

@clokep
Copy link
Member Author

clokep commented Sep 1, 2020

We could completely blacklist 50.0 if we wanted?

@anoadragon453
Copy link
Member

One moment, just trying it.

@anoadragon453
Copy link
Member

anoadragon453 commented Sep 1, 2020

Hrm, our Dockerfile is giving me hard times here.

One other thing to mention is our INSTALL instructions currently specifically tell people to update to the latest setuptools version, which atm would be 50.0. They would then receive an error starting Synapse.

Should we update those instructions at the same time to remove the explicit install (or perhaps specify the version)?

@clokep
Copy link
Member Author

clokep commented Sep 1, 2020

Hmm...I'm not a big fan of specifying the version, it'll immediately get out of date. 😢 We could add "!=50.0" to that command, but that also seems not awesome.

@anoadragon453
Copy link
Member

Hmm...I'm not a big fan of specifying the version, it'll immediately get out of date. cry We could add "!=50.0" to that command, but that also seems not awesome.

Well, it would be temporary until a new setuptools version comes out, so not the end of the world to add !=50.0 on it just now?

@anoadragon453
Copy link
Member

After a conversation in #synapse-dev, we've decided to just blacklist setuptools 50.0 in both Synapse's deps and INSTALL.md.

INSTALL.md Outdated Show resolved Hide resolved
synapse/python_dependencies.py Outdated Show resolved Hide resolved
clokep and others added 2 commits September 1, 2020 07:46
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Copy link
Member

@anoadragon453 anoadragon453 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm otherwise!

changelog.d/8212.bugfix Outdated Show resolved Hide resolved
clokep and others added 2 commits September 1, 2020 07:55
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
@clokep clokep merged commit 318245e into develop Sep 1, 2020
@clokep clokep deleted the clokep/fix-old-deps branch September 1, 2020 12:17
anoadragon453 added a commit that referenced this pull request Sep 2, 2020
…sword_reset_confirmation

* 'develop' of github.com:matrix-org/synapse: (39 commits)
  Fix errors when updating the user directory with invalid data (#8223)
  Explain better what GDPR-erased means (#8189)
  Convert additional databases to async/await part 3 (#8201)
  Convert appservice code to async/await. (#8207)
  Rename `_get_e2e_device_keys_txn` (#8222)
  Convert additional databases to async/await (#8199)
  Convert the well known resolver to async (#8214)
  Convert additional databases to async/await part 2 (#8200)
  Make MultiWriterIDGenerator work for streams that use negative stream IDs (#8203)
  Do not install setuptools 50.0. (#8212)
  Move and rename `get_devices_with_keys_by_user` (#8204)
  Rename `get_e2e_device_keys` to better reflect its purpose (#8205)
  Add a comment about _LimitedHostnameResolver
  Convert ReadWriteLock to async/await. (#8202)
  Fix incorrect return signature
  Fix `wait_for_stream_position` for multiple waiters. (#8196)
  Convert `event_push_actions`, `registration`, and `roommember` datastores to async (#8197)
  Only return devices with keys from `/federation/v1/user/devices/` (#8198)
  Convert state and stream stores and related code to async (#8194)
  Ensure that the OpenID Connect remote ID is a string. (#8190)
  ...
clokep added a commit that referenced this pull request Sep 3, 2020
babolivier pushed a commit that referenced this pull request Sep 1, 2021
* commit '5bf8e5f55':
  Convert the well known resolver to async (#8214)
  Convert additional databases to async/await part 2 (#8200)
  Make MultiWriterIDGenerator work for streams that use negative stream IDs (#8203)
  Do not install setuptools 50.0. (#8212)
  Move and rename `get_devices_with_keys_by_user` (#8204)
  Rename `get_e2e_device_keys` to better reflect its purpose (#8205)
  Add a comment about _LimitedHostnameResolver
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants