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

Make the dependencies more like a standard Python project and hook up the optional dependencies to setuptools #4298

Merged
merged 9 commits into from
Dec 21, 2018

Conversation

hawkowl
Copy link
Contributor

@hawkowl hawkowl commented Dec 14, 2018

Fix for #2425

@codecov-io
Copy link

codecov-io commented Dec 14, 2018

Codecov Report

Merging #4298 into develop will increase coverage by 0.05%.
The diff coverage is 47.22%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #4298      +/-   ##
===========================================
+ Coverage    73.49%   73.54%   +0.05%     
===========================================
  Files          302      302              
  Lines        29895    29894       -1     
  Branches      4893     4891       -2     
===========================================
+ Hits         21970    21986      +16     
+ Misses        6486     6468      -18     
- Partials      1439     1440       +1
Impacted Files Coverage Δ
synapse/app/homeserver.py 57% <ø> (-0.15%) ⬇️
synapse/python_dependencies.py 47.61% <47.22%> (+6.7%) ⬆️
synapse/_scripts/register_new_matrix_user.py 38.23% <0%> (-1.57%) ⬇️
synapse/storage/monthly_active_users.py 95.69% <0%> (-0.9%) ⬇️
synapse/handlers/search.py 80.24% <0%> (ø) ⬆️
synapse/handlers/sync.py 92.05% <0%> (ø) ⬆️
synapse/api/constants.py 100% <0%> (ø) ⬆️
synapse/handlers/federation.py 61.72% <0%> (ø) ⬆️
synapse/api/auth.py 90.74% <0%> (+0.02%) ⬆️
synapse/handlers/register.py 74.32% <0%> (+0.11%) ⬆️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e93a0eb...abd5074. Read the comment docs.

@hawkowl hawkowl requested a review from a team December 14, 2018 16:56
@richvdh
Copy link
Member

richvdh commented Dec 18, 2018

Hum. There's certainly no debate that it's a mess as it currently stands, but I have reservations about removing the run-time checks. There is no question that it has saved us from spurious support requests in the past. I think this is probably something we should discuss and get agreement on as a team.

@hawkowl
Copy link
Contributor Author

hawkowl commented Dec 18, 2018

Hum. There's certainly no debate that it's a mess as it currently stands, but I have reservations about removing the run-time checks. There is no question that it has saved us from spurious support requests in the past. I think this is probably something we should discuss and get agreement on as a team.

Sure, raised it in #synapse-dev with a potential better way if we do want to keep the functionality: https://matrix.to/#/!yZHTGeDKZUeKaqeTeU:matrix.org/$15451618683735153aBKeW:matrix.org?via=matrix.org&via=sw1v.org&via=meshspace.de&via=half-shot.uk

@hawkowl
Copy link
Contributor Author

hawkowl commented Dec 20, 2018

@richvdh this now implements the run-time checking, but in a simpler and more robust way.

Copy link
Member

@richvdh richvdh left a comment

Choose a reason for hiding this comment

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

ok this looks great now, except the thing about optional deps

@@ -322,9 +322,6 @@ def setup(config_options):

synapse.config.logger.setup_logging(config, use_worker_options=False)

# check any extra requirements we have now we have a config
check_requirements(config)
Copy link
Member

Choose a reason for hiding this comment

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

can we not keep this? looks like it should be easy enough, and it will avoid confusion when people don't install the optional deps and then enable url previews or something?

Copy link
Member

Choose a reason for hiding this comment

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

[per discussion online: it never worked anyway]

# python module, optionally followed by a version assertion which can be either
# ">=<ver>" or "==<ver>".
#
# [1] https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers.
Copy link
Member

Choose a reason for hiding this comment

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

suggestion: it'd be nice to keep this link so I don't have to go and look it up.

Copy link
Member

@richvdh richvdh left a comment

Choose a reason for hiding this comment

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

lgtm

@hawkowl hawkowl merged commit c26f49a into develop Dec 21, 2018
@hawkowl hawkowl deleted the hawkowl/setup-dependencies branch December 21, 2018 14:37
richvdh added a commit that referenced this pull request Dec 22, 2018
since #4298, the optional dependencies are no longer installed with a simple
`pip install .`, which meant that they were not being included in the debian
package.

The easy fix to that is dh_virtualenv --extras, but that needs dh_virtualenv
1.1...
richvdh added a commit that referenced this pull request Jan 2, 2019
since #4298, the optional dependencies are no longer installed with a simple
`pip install .`, which meant that they were not being included in the debian
package.

The easy fix to that is dh_virtualenv --extras, but that needs dh_virtualenv
1.1...
richvdh added a commit that referenced this pull request Jan 8, 2019
Synapse 0.34.1rc1 (2019-01-08)
==============================

Features
--------

- Special-case a support user for use in verifying behaviour of a given server. The support user does not appear in user directory or monthly active user counts. ([\#4141](#4141), [\#4344](#4344))
- Support for serving .well-known files ([\#4262](#4262))
- Rework SAML2 authentication ([\#4265](#4265), [\#4267](#4267))
- SAML2 authentication: Initialise user display name from SAML2 data ([\#4272](#4272))
- Synapse can now have its conditional/extra dependencies installed by pip. This functionality can be used by using `pip install matrix-synapse[feature]`, where feature is a comma separated list with the possible values `email.enable_notifs`, `matrix-synapse-ldap3`, `postgres`, `resources.consent`, `saml2`, `url_preview`, and `test`. If you want to install all optional dependencies, you can use "all" instead. ([\#4298](#4298), [\#4325](#4325), [\#4327](#4327))
- Add routes for reading account data. ([\#4303](#4303))
- Add opt-in support for v2 rooms ([\#4307](#4307))
- Add a script to generate a clean config file ([\#4315](#4315))
- Return server data in /login response ([\#4319](#4319))

Bugfixes
--------

- Fix contains_url check to be consistent with other instances in code-base and check that value is an instance of string. ([\#3405](#3405))
- Fix CAS login when username is not valid in an MXID ([\#4264](#4264))
- Send CORS headers for /media/config ([\#4279](#4279))
- Add 'sandbox' to CSP for media reprository ([\#4284](#4284))
- Make the new landing page prettier. ([\#4294](#4294))
- Fix deleting E2E room keys when using old SQLite versions. ([\#4295](#4295))
- The metric synapse_admin_mau:current previously did not update when config.mau_stats_only was set to True ([\#4305](#4305))
- Fixed per-room account data filters ([\#4309](#4309))
- Fix indentation in default config ([\#4313](#4313))
- Fix synapse:latest docker upload ([\#4316](#4316))
- Fix test_metric.py compatibility with prometheus_client 0.5. Contributed by Maarten de Vries <maarten@de-vri.es>. ([\#4317](#4317))
- Avoid packaging _trial_temp directory in -py3 debian packages ([\#4326](#4326))
- Check jinja version for consent resource ([\#4327](#4327))
- fix NPE in /messages by checking if all events were filtered out ([\#4330](#4330))
- Fix `python -m synapse.config` on Python 3. ([\#4356](#4356))

Deprecations and Removals
-------------------------

- Remove the deprecated v1/register API on Python 2. It was never ported to Python 3. ([\#4334](#4334))

Internal Changes
----------------

- Getting URL previews of IP addresses no longer fails on Python 3. ([\#4215](#4215))
- drop undocumented dependency on dateutil ([\#4266](#4266))
- Update the example systemd config to use a virtualenv ([\#4273](#4273))
- Update link to kernel DCO guide ([\#4274](#4274))
- Make isort tox check print diff when it fails ([\#4283](#4283))
- Log room_id in Unknown room errors ([\#4297](#4297))
- Documentation improvements for coturn setup. Contributed by Krithin Sitaram. ([\#4333](#4333))
- Update pull request template to use absolute links ([\#4341](#4341))
- Update README to not lie about required restart when updating TLS certificates ([\#4343](#4343))
- Update debian packaging for compatibility with transitional package ([\#4349](#4349))
- Fix command hint to generate a config file when trying to start without a config file ([\#4353](#4353))
- Add better logging for unexpected errors while sending transactions ([\#4358](#4358))
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.

None yet

3 participants