6 Mar 2023 |
ma27 | see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners | 12:06:28 |
15 Mar 2023 |
hexa | the matrix-synapse dependency management is bit over all over the place regarding optional dependencies | 09:39:48 |
hexa | some get dumped into to propagatedBuildInputs, as if they were required | 09:40:20 |
hexa | some become optional using enableSomething flags | 09:40:32 |
hexa | some get entirely ignored | 09:40:36 |
hexa | also not a fan of the undiscoverable enableFlag design | 09:46:29 |
hexa | also toggling these flags forces a rebuild of the package, when providing a proper PYTHONPATH would be sufficient | 10:02:25 |
hexa | ma27: config inspection to derive required extras? yay/nay? | 11:36:43 |
ma27 | so your suggestion would be to handle optional dependencies (such as systemd/redis and probably more, e.g. prometheus_client which is IIRC only needed when actually exposing metrics) the same way as we do it with plugins (i.e. adding them to PYTHONPATH in the service)? Havent' thought too much about it, but after a first glance I'd say it sounds pretty reasonable, hence Yay from me %) | 11:57:36 |
hexa | yep 🙂 | 12:00:36 |
hexa | make the default closure small | 12:00:44 |
hexa | make sure extras and plugins don't cause a rebuild, so everyone can rely on the cached package | 12:01:01 |
hexa | Redacted or Malformed Event | 12:01:54 |
hexa | Redacted or Malformed Event | 12:02:03 |
hexa | prometheus_client is actually not an optional dependency | 12:06:47 |
hexa | the idea is to make it more feasible to expose these extras listed here https://github.com/matrix-org/synapse/blob/develop/pyproject.toml#L249-L273 | 12:07:17 |
hexa | which are all the packages marked as optional in the dependencies section | 12:07:27 |
hexa | but grouping them like this makes their use much clearer | 12:07:37 |
hexa | and allows us to select them intelligently | 12:07:44 |
ma27 | In reply to @hexa:lossy.network prometheus_client is actually not an optional dependency heh, that was a wild guess and served just as an example :) | 12:10:14 |
hexa | yeah, I feel the same about prometheus, why isn't it optional? | 12:10:34 |
ma27 | but yeah it sounds reasonable, so I'd say if you have the time for it then go for it, I'm happy to test the changes on my server if needed then :) | 12:10:55 |
hexa | fine, lets get the bump in first, I'll rebase 😛 | 12:38:11 |
hexa | https://github.com/NixOS/nixpkgs/pull/221318 | 12:52:20 |
hexa | Dandellion: by the way: worker support when? 😄 | 12:59:27 |
Dandellion | 😬 probably after I've reworked how I do stream writers | 13:02:17 |
hexa | stream writers? | 13:21:04 |
Dandellion | https://github.com/matrix-org/synapse/blob/develop/docs/workers.md#stream-writers
they're just a little more involved to set up so aren't as compatible with some of the abstracted worker-type machinery | 13:25:57 |
hexa | hrm | 13:27:23 |
hexa | I would be up for a smaller start and incrementally adding complexity | 13:27:37 |