Mailman Core merge requestshttps://staging.gitlab.com/mailman/mailman/-/merge_requests2016-02-06T23:16:45Zhttps://staging.gitlab.com/mailman/mailman/-/merge_requests/94Fix a membership query with preferred addresses.2016-02-06T23:16:45Zusername-removed-56772Fix a membership query with preferred addresses.Fix membership query when multiple users are subscribed to a mailing list. Reported by Darrell Kresge.
Closes: #190
Fix membership query when multiple users are subscribed to a mailing list. Reported by Darrell Kresge.
Closes: #190
3.0.2username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/95Fix membership query for preferred addresses.2016-02-06T23:56:32Zusername-removed-56772Fix membership query for preferred addresses.When multiple users are subscribed to a mailing list via their preferred
address, too many results are returned from a membership query,
resulting in an assertion error. Reported by Darrell Kresge.
(Closes: #190)When multiple users are subscribed to a mailing list via their preferred
address, too many results are returned from a membership query,
resulting in an assertion error. Reported by Darrell Kresge.
(Closes: #190)3.0.2username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/96Prevent moderation of messages held for a different list.2016-02-08T03:45:14Zusername-removed-56772Prevent moderation of messages held for a different list.Closes: #161Closes: #1613.0.2username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/97Prevent moderation of messages held for a different list.2016-02-08T14:20:11Zusername-removed-56772Prevent moderation of messages held for a different list.Closes: #161Closes: #1613.0.2username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/152Restore a test from !151 which only fails on PostgreSQL.2016-04-29T14:16:00Zusername-removed-56772Restore a test from !151 which only fails on PostgreSQL.For now, *deliberately* cause the test to fail. I want to prove this
correctly addresses the issue on the GL CI. Once I've done that, I'll
restore the patch and approve the new MR.For now, *deliberately* cause the test to fail. I want to prove this
correctly addresses the issue on the GL CI. Once I've done that, I'll
restore the patch and approve the new MR.3.1username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/162MySQL support for Mailman2016-07-16T20:50:30Zusername-removed-262MySQL support for MailmanThis merge request adds MySQL database support to Mailman.
I have added a two new Column types for Unicode to handle the constraint in MySQL to specify the length of VARCHAR columns.
```python
@public
class SAUnicode(TypeDecora...This merge request adds MySQL database support to Mailman.
I have added a two new Column types for Unicode to handle the constraint in MySQL to specify the length of VARCHAR columns.
```python
@public
class SAUnicode(TypeDecorator):
"""Unicode datatype to support fixed length VARCHAR in mysql
This type compiles to VARCHAR(255) in case of mysql and in case of other
dailects defaults to the Unicode type. This was just created so that I
don't alter the output of the default Unicode data type and it can still be
used if needed in the codebase.
"""
impl = Unicode
```
The above type compiles to `VARCHAR(255)` when using Mysql and the default value in other database dailects due to the following two compile directives:
```python
@compiles(SAUnicode)
def default_sa_unicode(element, compiler, **kw):
return compiler.visit_Unicode(element, **kw)
@compiles(SAUnicode, 'mysql')
def compile_sa_unicode(element, compiler, **kw):
return "VARCHAR(255)"
```
By default, I changed all the Unicode fields to this column. If any of the fields require length longer than this, I have specified another column type similar to the above which can be used if needed.
```python
@public
class SAUnicodeLarge(TypeDecorator):
"""Similar to SAUnicode type, but compiles to VARCHAR(510), double size of
SAUnicode defined above.
"""
impl = Unicode
```
Which compiles to `VARCHAR(510)` (double length of the SAUnicode column).
Also, there is still a test that I am skipping for MySQL which deals for case-sensitivity of the arguments. The [case-sensityvity support for MySQL is inconsistent][2] and I am not sure how to guarantee that the test passes everytime. See `test_create_list_case_folding` in `mailman/model/tests/test_listmanager.py` below.
Another thing to note is the default `collate` on the MySQL databases required for the tests. I usually always set the collate to `utf8_general_ci` as `latin1`(default on most servers) causes some tests to fail with mixed collation error. I don't know very much about collations though. You can change the default collate on a database with:
```bash
mysql> ALTER DATABASE mailman DEFAULT COLLATE utf8_unicode_ci;
```
I have mentioned this in the docs and also the test infrastructure is adjusted to support this default collate on the databases created for the CI. I am using a _slightly_ modified version of the mysql image, you can see it [on Dockerhub][1]. Just a slight modification in the configuration.
This request outdates !51 .
[1]: https://hub.docker.com/r/maxking/mysql/~/dockerfile/
[2]: http://docs.sqlalchemy.org/en/latest/dialects/mysql.html#case-sensitivity-and-table-reflection
3.1username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/176MySQL support2016-07-29T23:30:26Zusername-removed-56772MySQL supportMost of this branch is @maxking 's work from mailman/mailman!162 which it supersedes.
This branch resolves conflicts created when the trunk has evolved, most specifically by landing the templates branch. This also cleans up a few thi...Most of this branch is @maxking 's work from mailman/mailman!162 which it supersedes.
This branch resolves conflicts created when the trunk has evolved, most specifically by landing the templates branch. This also cleans up a few things here and there, and ports the templates/cache tables to MySQL.3.1username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/192Added rest call to get all emails of a user subscribed to a list2017-06-16T12:45:38Zusername-removed-671608Added rest call to get all emails of a user subscribed to a listFixes: https://gitlab.com/mailman/mailman/issues/232Fixes: https://gitlab.com/mailman/mailman/issues/2323.2https://staging.gitlab.com/mailman/mailman/-/merge_requests/202Implement alias_domain attribute for domain object.2017-10-08T07:11:10Zusername-removed-107958Implement alias_domain attribute for domain object.This branch implements and tests an alias_domain attribute for Domain objects. See the section `Unusual Postfix configuration` at src/mailman/docs/MTA.rst for more about the purpose of this attribute.
I think this branch is almost compl...This branch implements and tests an alias_domain attribute for Domain objects. See the section `Unusual Postfix configuration` at src/mailman/docs/MTA.rst for more about the purpose of this attribute.
I think this branch is almost complete as far as the core is concerned with the sole exception that it adds a column for `alias_domain` to the `domain` database table, and I'm sure this requires some migration, but I haven't done that as I don't really know how.
Also, `mailman_client` and `postorius` will also need updates to be able to display and set the alias_domain. I haven't looked at that at all yet.3.2https://staging.gitlab.com/mailman/mailman/-/merge_requests/210Sort the ban list by email2016-10-27T00:19:27Zusername-removed-35210Sort the ban list by emailSee https://gitlab.com/mailman/mailman/merge_requests/195#note_17474568See https://gitlab.com/mailman/mailman/merge_requests/195#note_174745683.1https://staging.gitlab.com/mailman/mailman/-/merge_requests/211Remove mime_is_default_digest legacy attribute.2017-06-16T12:45:38Zusername-removed-671608Remove mime_is_default_digest legacy attribute.Fixes: https://gitlab.com/mailman/mailman/issues/235Fixes: https://gitlab.com/mailman/mailman/issues/2353.2https://staging.gitlab.com/mailman/mailman/-/merge_requests/225Increase pendedkeyvalue table value column width.2017-08-10T20:28:28Zusername-removed-107958Increase pendedkeyvalue table value column width.Fixes #301Fixes #3013.1https://staging.gitlab.com/mailman/mailman/-/merge_requests/232Delete subscription requests when a mailing list is deleted.2017-01-09T05:37:16Zusername-removed-56772Delete subscription requests when a mailing list is deleted.Closes #214Closes #2143.1username-removed-56772username-removed-56772https://staging.gitlab.com/mailman/mailman/-/merge_requests/254Implement SQLAlchemy pre-ping to detect dropped connections.2017-03-27T22:19:57Zusername-removed-107958Implement SQLAlchemy pre-ping to detect dropped connections.Fixes #313
This patch implements the SQLAlchemy pre-ping approach to detecting dropped connections to the database server.
It is not clear that it is even possible to create unit tests that test this functionality, but the patched cod...Fixes #313
This patch implements the SQLAlchemy pre-ping approach to detecting dropped connections to the database server.
It is not clear that it is even possible to create unit tests that test this functionality, but the patched code works and causes no regressions in existing tests. Further, manual testing as outlined in #313 indicates it is effective in addressing the issue.
When SQLAlchemy 1.2 is released and becomes a requirement, this patch can be dropped in favor of just adding a `pool_pre_ping=True` argument to the `create_engine()` call, but if not done, this patch will continue to be effective with SA 1.2.3.1