As far as I can tell, the released version of django-mailman3 is not
affected by any of the issues that have required further fixes for
newer allauth, since they're all for the Fedora provider, which in
this version doesn't use allauth at all.
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:
nix-build ci -A fmt.check
This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).
This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).
Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).
If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
error: fetchFromGitHub requires one of either `rev` or `tag` to be provided (not both).
Fixes: 0cd04d3036 ("treewide: migrate fetchgit `rev = "refs/tags/..."` to `tag`")
Otherwise references to the Python interpreter inside the set are wrong, as demonstrated by:
``` nix
with import <nixpkgs> { };
let
python' = python3.override {
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the _non_ overriden requests.
And the same with `self`:
```
with import <nixpkgs> { };
let
python' = python3.override {
self = python';
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the overriden requests.
This can manifest itself as file collisions when constructing environments or as subtly incorrect dependency graphs.
Fixes the issue reported at
https://gitlab.com/mailman/mailman/-/issues/1137. The readme-renderer
package needs cmarkgfm for markdown support. Mailman's postorious needs
this to render the info field of mailing lists.
Doesn't seem to be out on PyPI yet, but they have a release tarball.
Hyperkitty has migrated to pyproject.toml, and no longer requires an
outdated version of mistune. Yay!
Hyperkitty's tests fail with 8.x, because it tries and fails to import
elastic_transport. There are 7.17.10 and 7.17.11 releases, but for
unknown reasons they're not available on PyPI.
Link: https://github.com/elastic/elasticsearch-py/issues/2336
This hack was necessary for django 2.x[1] which was the default `django`
version (i.e. current LTS) when this fix was needed. However, 2.x is now
EOL and not packaged anymore and mailman is running with django3, so
this can be dropped.
[1] https://github.com/psycopg/psycopg2/issues/1293
When having a patch for a python module that should only be used for
mailman, but for nothing else, it's now possible to apply it like this:
self: super: {
mailmanPackages = super.mailmanPackages.extend (mailmanSelf: mailmanSuper: {
python3 = mailmanSuper.python3.override {
overlay = pythonSelf: pythonSuper: {
psycopg2 = /* ... */;
};
};
});
}
The underlying issue is that the `packageOverrides`-mechanism of
`pkgs.python3` doesn't compose, so an optional overlay is manually
applied to the `python3` used for mailman.
* Removed unused `.package`-option.
* Added explicit postgresql support.
* Create a new meta-package for mailman to make sure each component has
the **same** python and packages can be downgraded if needed (e.g.
psycopg2 or sqlalchemy) without interfering with `pythonPackages` in any way.
* Document why certain python overrides are needed.
Closes#170035Closes#158424