| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| | |\
| |/
|/| |
|
| | | |
|
| |/ |
|
| |
|
|
|
|
| |
We don't need the raw SQL schema stuff any more.
We don't need the Version table any more.
|
| |
|
|
|
|
|
|
| |
* Remove an unused import.
* Add skips for all migration unit tests.
* Fix model class attribute typo.
* .values() returns tuples, so adjust for that.
* Add a test.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
* Rename StormBaseDatabase._create() -> .initialize()
* Refactor database initialization.
* make_listid() helper.
* Add a pivot() helper for schema migrations.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
mailinglist.unsubscribe_policy, mailinglist.subscribe_auto_approval.
|
| | |
|
| |
|
|
| |
removed.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
IMailingList.style_name attribute. The problem is, there's nothing to
guarantee that only one style will get run, and there's no sense in keeping
track of the last style applied.
Also:
* Remove ListManager.create()'s setting of .personalize and .display_name.
These should be left to the styles. (There's no reason why only these two
would be set here.)
* Fix some typos.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Rework list style management. No more style priorities or matching.. Now,
you name a style explicitly to apply and that's it.
* create_list() now takes a `style` argument.
* config file now names both a default style to use, and a set of paths to
scan for IStyle instances. (This could be a model for other plugins.)
* added IMailingList.style_name to record the last style applied, but this is
going to be removed in subsequent revisions.
Also:
* Move find_components() and scan_module() from app/finder.py to
utilities/modules.py
* Cleaned up lifecycle.rst for better documentation. Some tests moved to
test_lifecycle.py.
* Remove some unnecessary test tearDown() code.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
--------
* The `ban` table now uses list-ids to cross-reference the mailing list,
since these cannot change even if the mailing list is moved or renamed.
Interfaces
----------
* The `IBanManager` is no longer a global utility. Instead, you adapt an
`IMailingList` to an `IBanManager` to manage the bans for a specific
mailing list. To manage the global bans, adapt ``None``.
|
| | |
|
| |
|
|
| |
- member.mailing_list -> list_id
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now via the RFC 2369 `list_id` instead of the fqdn listname (i.e. posting
address). This is because while the posting address can change if the
mailing list is moved to a new server, the list id is fixed.
(LP: #1024509)
+ IListManager.get_by_list_id() added.
+ IListManager.list_ids added.
+ IMailingList.list_id added.
+ Several internal APIs that accepted fqdn list names now require list ids,
e.g. ISubscriptionService.join() and .find_members().
+ IMember.list_id attribute added; .mailing_list is now an alias that
retrieves and returns the IMailingList.
- list_id added (LP: #1024509)
|
| |
|
|
| |
(LP: #975696)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ArchivePolicy. This describes the three states of never archive, archive
privately, and archive_publicly. (LP: #967238)
Database
--------
* Schema migrations (LP: #971013)
- include_list_post_header -> allow_list_posts
- news_prefix_subject_too -> nntp_prefix_subject_too
- news_moderation -> newsgroup_moderation
- archive and archive_private have been collapsed into archive_policy.
- nntp_host has been removed.
* The PostgreSQL port of the schema accidentally added a moderation_callback
column to the mailinglist table. Since this is unused in Mailman, it was
simply commented out of the base schema for PostgreSQL.
|
| |
|
|
|
|
| |
include_list_post_header -> allow_list_posts
Also add a bunch more migration tests.
|
| |
|
|
|
|
|
|
|
| |
individual database classes themselves. This does mean that the temporary
factory must know something special about the sqlite and postgresql databases,
but I think that's an acceptable trade-off.
This should make the test code cleaner, and allow me to write better support
for temporary PostgreSQL databases.
|
| |
|
|
|
| |
- store.rollback() is better than store.execute('ABORT;')
- We need to do a commit after the migrations are loaded.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
- Improve migration logging
- Disable pre_reset() and post_reset() on migrations, which might need to be
re-enabled for SQLite support.
- Be sure to record the migration version in PostgreSQL.
- Parameterize the Error that will occur.
- Better sample data for PostgreSQL and SQLite, which have different formats.
|
| |
|
|
|
|
|
|
|
| |
- Refactor load_schema() into a separate load_sql() method.
- Add API for test suite to make a temporary database.
- Add code to migrate the PostgreSQL database.
- Comment out `moderation_callback` from the PostgreSQL SQL; this must have
snuck in accidentally via the contributed port.
- Refactor test_migrations.py
|
| | |
|
| |
|
|
|
|
|
| |
- migrations.rst needs to handle new standard migration
- Add ResetHelper() to refactor out common migration test cooperation.
- Handle temporary database.
- Fix some attribute names.
|
| |
|
|
|
|
|
|
| |
columns got renamed don't in fact check the data in those tables. Better
separation of concerns.
Rename mailman.database.transaction.txn to ...transactional and use it in a
couple of additional spots.
|
| | |
|
| |
|
|
| |
- news_moderation -> newsgroup_moderation
|
|
|
can be tested separately.
- Add an `until` argument to load_migrations() so that we can load only up to
a given timestamp.
- In load_migrations(), ignore files in which the `version` part of the file
name is empty.
- In migrations.rst, use the new, better way of ensuring post-test cleanup.
- Add tests for partial upgrades.
- LP: #971013 - schema migrations for beta 2.
- LP: #967238 - IMailingList.archive + IMailingList.archive_private ->
IMailingList.archive_policy, and add ArchivePolicy enum.
- Move the `chdir` context manager to helpers.py and add `temporary_db`
context manager.
|