------------------------------------------------------------
revno: 6578
committer: Barry Warsaw <[EMAIL PROTECTED]>
branch nick: 3.0
timestamp: Sun 2007-11-18 16:38:59 -0500
message:
  Convert to the Storm Python ORM <storm.canonical.com>.  There were several
  reasons for this, but most importantly, the changes from SQLAlchemy/Elixir 0.3
  to 0.4 were substantial and caused a lot of work.  This work unfortunately did
  not result in a working branch due to very strange and inconsistent behavior
  with Unicode columns.  Sometimes such columns would return Unicode, sometimes
  8-bit strings, with no rhyme or reason.  I gave up debugging this after many
  hours of head scratching.
  
  Oh yeah, no more flush!
  
  Storm enforces Unicode columns, which is very nice, though requires us to add
  lots of 'u's in places we didn't have them before.  Ultimately, this is a good
  thing so that the core of Mailman will be Unicode consistent.
  
  One thing I still want to clean up after this, is the function-scoped imports
  in the model code.  Part of the reason for the separate model classes was to
  avoid this, but for now, we'll live with it.  Storm's architecture requires us
  to maintain a database-table-class registry for simple clearing after tests
  in Database._reset().  This is made fairly simple by Storm allowing us to use
  our own metaclass for model classes.
  
  Storm does require that we write our own SQL files, which is a downside, but I
  think our schema will be easy enough that this won't be a huge burden.  Plus
  we have a head-start <wink>.
  
  Another cool thing about Storm is the explicit use of stores for objects.
  This should eventually allow me to flesh out my idea of storage pillars for 1)
  lists, 2) users, 3) messages.
  
  Some other changes:
  
  - pylint and pyflakes cleanups
  - SQLALCHEMY_ENGINE_URL -> DEFAULT_DATABASE_URL
  - Don't import-* from Version in Defaults.py
  - Add interface method to Mailman.Message.Message so that __getitem__() and
    get_all() always return Unicode headers, even when the underlying objects
    are strings.  This should generally be safe as headers are required by RFC
    to be within the ASCII range.
  - Fix bin/arch.py to use proper initialization.
added:
  Mailman/database/model/mailman.sql
modified:
  Mailman/Defaults.py
  Mailman/Handlers/Hold.py
  Mailman/Handlers/Scrubber.py
  Mailman/MTA/Postfix.py
  Mailman/Message.py
  Mailman/app/membership.py
  Mailman/app/styles.py
  Mailman/bin/arch.py
  Mailman/bin/gate_news.py
  Mailman/bin/mailmanctl.py
  Mailman/bin/testall.py
  Mailman/configuration.py
  Mailman/database/__init__.py
  Mailman/database/listmanager.py
  Mailman/database/messagestore.py
  Mailman/database/model/__init__.py
  Mailman/database/model/address.py
  Mailman/database/model/language.py
  Mailman/database/model/mailinglist.py
  Mailman/database/model/member.py
  Mailman/database/model/message.py
  Mailman/database/model/pending.py
  Mailman/database/model/preferences.py
  Mailman/database/model/requests.py
  Mailman/database/model/roster.py
  Mailman/database/model/user.py
  Mailman/database/model/version.py
  Mailman/database/types.py
  Mailman/database/usermanager.py
  Mailman/docs/ack-headers.txt
  Mailman/docs/acknowledge.txt
  Mailman/docs/addresses.txt
  Mailman/docs/after-delivery.txt
  Mailman/docs/antispam.txt
  Mailman/docs/approve.txt
  Mailman/docs/archives.txt
  Mailman/docs/avoid-duplicates.txt
  Mailman/docs/bounces.txt
  Mailman/docs/calc-recips.txt
  Mailman/docs/cleanse.txt
  Mailman/docs/cook-headers.txt
  Mailman/docs/decorate.txt
  Mailman/docs/digests.txt
  Mailman/docs/file-recips.txt
  Mailman/docs/filtering.txt
  Mailman/docs/hold.txt
  Mailman/docs/lifecycle.txt
  Mailman/docs/listmanager.txt
  Mailman/docs/membership.txt
  Mailman/docs/message.txt
  Mailman/docs/messagestore.txt
  Mailman/docs/mlist-addresses.txt
  Mailman/docs/news-runner.txt
  Mailman/docs/nntp.txt
  Mailman/docs/outgoing.txt
  Mailman/docs/pending.txt
  Mailman/docs/registration.txt
  Mailman/docs/reply-to.txt
  Mailman/docs/replybot.txt
  Mailman/docs/requests.txt
  Mailman/docs/runner.txt
  Mailman/docs/scrubber.txt
  Mailman/docs/styles.txt
  Mailman/docs/subject-munging.txt
  Mailman/docs/switchboard.txt
  Mailman/docs/tagger.txt
  Mailman/docs/usermanager.txt
  Mailman/docs/users.txt
  Mailman/initialize.py
  Mailman/interfaces/database.py
  Mailman/queue/__init__.py
  Mailman/tests/test_documentation.py
  setup.py
    ------------------------------------------------------------
    revno: 6572.1.12
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Sat 2007-11-17 17:38:50 -0500
    message:
      Merge cleanup branch
    modified:
      Mailman/Defaults.py
      Mailman/Handlers/Hold.py
      Mailman/Handlers/Scrubber.py
      Mailman/MTA/Postfix.py
      Mailman/app/membership.py
      Mailman/bin/arch.py
      Mailman/bin/gate_news.py
      Mailman/bin/mailmanctl.py
      Mailman/bin/testall.py
      Mailman/configuration.py
      Mailman/initialize.py
        ------------------------------------------------------------
        revno: 6572.1.11.1.1
        committer: Barry Warsaw <[EMAIL PROTECTED]>
        branch nick: 30storm
        timestamp: Sat 2007-11-17 17:33:14 -0500
        message:
          Initial pylint/pyflakes cleanup
        modified:
          Mailman/Defaults.py
          Mailman/Handlers/Hold.py
          Mailman/Handlers/Scrubber.py
          Mailman/MTA/Postfix.py
          Mailman/app/membership.py
          Mailman/bin/arch.py
          Mailman/bin/gate_news.py
          Mailman/bin/mailmanctl.py
          Mailman/bin/testall.py
          Mailman/configuration.py
          Mailman/initialize.py
    ------------------------------------------------------------
    revno: 6572.1.11
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Sat 2007-11-17 00:05:23 -0500
    message:
      Complete the port to Storm, at least as far as the current Mailman test 
suite
      is concerned.  This still requires a minor patch to Storm to handle 
timedelta
      types in SQLite.
    modified:
      Mailman/Handlers/Hold.py
      Mailman/app/membership.py
      Mailman/database/model/pending.py
      Mailman/database/model/requests.py
      Mailman/docs/hold.txt
      Mailman/docs/pending.txt
      Mailman/docs/registration.txt
      Mailman/docs/requests.txt
    ------------------------------------------------------------
    revno: 6572.1.10
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Sat 2007-11-10 13:14:51 -0500
    message:
      All the simple test fixes are now in, and while there are still some 
failing
      tests, we're making very good progress.  Just the tough ones are left.  
This
      change did modify the the schema a bit, for better naming and typing.
      E.g. 'type' -> 'request_type' and using a RawStr for a hash type.
    modified:
      Mailman/database/listmanager.py
      Mailman/database/messagestore.py
      Mailman/database/model/mailman.sql
      Mailman/database/model/message.py
      Mailman/database/model/pending.py
      Mailman/database/model/requests.py
      Mailman/docs/hold.txt
      Mailman/docs/lifecycle.txt
      Mailman/docs/listmanager.txt
      Mailman/docs/message.txt
      Mailman/docs/messagestore.txt
      Mailman/docs/nntp.txt
      Mailman/docs/outgoing.txt
      Mailman/docs/requests.txt
      Mailman/docs/runner.txt
      Mailman/docs/switchboard.txt
    ------------------------------------------------------------
    revno: 6572.1.9
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Thu 2007-11-08 18:42:56 -0500
    message:
      More Unicodification; fixed several more doctests.
    modified:
      Mailman/database/listmanager.py
      Mailman/database/model/member.py
      Mailman/database/model/pending.py
      Mailman/database/model/roster.py
      Mailman/docs/decorate.txt
      Mailman/docs/digests.txt
      Mailman/docs/file-recips.txt
      Mailman/docs/filtering.txt
      Mailman/docs/lifecycle.txt
      Mailman/docs/membership.txt
      Mailman/docs/registration.txt
      Mailman/docs/reply-to.txt
    ------------------------------------------------------------
    revno: 6572.1.8
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Thu 2007-11-08 11:54:25 -0500
    message:
      More Unicodification; fixed two more doctests.
    modified:
      Mailman/Defaults.py
      Mailman/app/styles.py
      Mailman/database/listmanager.py
      Mailman/database/model/mailinglist.py
      Mailman/database/model/requests.py
      Mailman/docs/digests.txt
      Mailman/docs/news-runner.txt
      Mailman/docs/replybot.txt
      Mailman/docs/requests.txt
      Mailman/docs/runner.txt
      Mailman/docs/scrubber.txt
      Mailman/docs/styles.txt
      Mailman/docs/subject-munging.txt
      Mailman/docs/tagger.txt
      Mailman/queue/__init__.py
    ------------------------------------------------------------
    revno: 6572.1.7
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Thu 2007-11-08 06:55:24 -0500
    message:
      Two more passing tests.
    modified:
      Mailman/database/model/user.py
      Mailman/database/usermanager.py
      Mailman/docs/usermanager.txt
      Mailman/docs/users.txt
    ------------------------------------------------------------
    revno: 6572.1.6
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Thu 2007-11-08 00:34:49 -0500
    message:
      More doctest fixes.
    modified:
      Mailman/Message.py
      Mailman/docs/calc-recips.txt
      Mailman/docs/cleanse.txt
      Mailman/docs/cook-headers.txt
    ------------------------------------------------------------
    revno: 6572.1.5
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Wed 2007-11-07 20:56:43 -0500
    message:
      Fix two more doctests
    modified:
      Mailman/Message.py
      Mailman/docs/approve.txt
      Mailman/docs/archives.txt
      Mailman/docs/avoid-duplicates.txt
      Mailman/docs/bounces.txt
      Mailman/docs/calc-recips.txt
      Mailman/docs/cleanse.txt
      Mailman/docs/cook-headers.txt
      Mailman/docs/decorate.txt
      Mailman/docs/digests.txt
      Mailman/docs/file-recips.txt
      Mailman/docs/filtering.txt
      Mailman/docs/hold.txt
      Mailman/docs/lifecycle.txt
      Mailman/docs/listmanager.txt
      Mailman/docs/membership.txt
      Mailman/docs/message.txt
      Mailman/docs/messagestore.txt
      Mailman/docs/news-runner.txt
      Mailman/docs/nntp.txt
      Mailman/docs/outgoing.txt
      Mailman/docs/pending.txt
      Mailman/docs/registration.txt
      Mailman/docs/reply-to.txt
    ------------------------------------------------------------
    revno: 6572.1.4
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Wed 2007-11-07 06:58:53 -0500
    message:
      Fix two more doctests
    modified:
      Mailman/docs/after-delivery.txt
      Mailman/docs/antispam.txt
    ------------------------------------------------------------
    revno: 6572.1.3
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Wed 2007-11-07 06:55:13 -0500
    message:
      Fix two doctests: addresses.txt and mlist-addresses.txt
      
      Remove flush() altogether.  Yee-haw!  Rework queries to be Stormy.  Fix
      doctests to be Unicode-ish.
    modified:
      Mailman/database/__init__.py
      Mailman/database/model/roster.py
      Mailman/database/model/user.py
      Mailman/database/usermanager.py
      Mailman/docs/addresses.txt
      Mailman/docs/mlist-addresses.txt
      Mailman/interfaces/database.py
      Mailman/tests/test_documentation.py
    ------------------------------------------------------------
    revno: 6572.1.2
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Tue 2007-11-06 18:16:22 -0500
    message:
      Fix two doctests: ack-headers and acknowledgment.
      
      This hacks around an apparent bug in the email package where if you parse 
a
      unicode message string, you still end up getting 8-bit strings out of the
      headers, and probably payloads.
      
      The hack is to override Mailman.Message.Message.__getitem__() to force the
      header value returned to a Unicode.  It must be ASCII but this is required
      anyway by RFC 2822.  It's not perfect, but it lets us get farther without
      forcing a detour into fixing the email package.
      
      Other changes:
      
      - Fix the Address table's references, and also update the subscribe() 
query.
      - Fix the Member table's references and add a __init__().
      - Fix Roster's get_member() query.
      - Fix the Enum class's variable_class attribute.
      - UserManager.create_user() has to use Unicodes for real_name.
    modified:
      Mailman/Message.py
      Mailman/database/model/address.py
      Mailman/database/model/member.py
      Mailman/database/model/preferences.py
      Mailman/database/model/roster.py
      Mailman/database/model/user.py
      Mailman/database/types.py
      Mailman/database/usermanager.py
      Mailman/docs/acknowledge.txt
      Mailman/tests/test_documentation.py
    ------------------------------------------------------------
    revno: 6572.1.1
    committer: Barry Warsaw <[EMAIL PROTECTED]>
    branch nick: 30storm
    timestamp: Sun 2007-11-04 18:10:21 -0500
    message:
      Target Mailman onto the Storm <http://storm.canonical.com> Python ORM.  
This
      enables a few interesting things:
      
      1. It makes it easier to do our "pillars of storage" idea, where list 
data and
         messages could live in one database, but user information live in a
         separate database.
      
      2. It reduces the number of moving parts.  SQLAlchemy and Elixir can both 
go
         away in favor of just one database layer.
      
      3. No more Unicode/string mush hell.  Somewhere along the way the upgrade 
to
         SQLAlchemy 0.4 and Elixir 0.4 made the strings coming out the database
         sometimes Unicode and sometimes 8-bit.  This was totally unpredictable.
         Storm asserts that if a property is declared Unicode, it comes in and 
goes
         out as Unicode.
      
      4. 'flush' is gone.
      
      One cost of this is that Storm does not yet currently support schema
      generation.  So I cheat by dumping the trunk's SQLite schema and using 
that as
      a starting place for the Storm-based schema.  I hope that Storm will
      eventually address this.
      
      Other related changes include:
      
      - SQLALCHEMY_ENGINE_URL is renamed to DEFAULT_DATABASE_URL.  This may 
still
        get changed.
      
      Things I still want to fix:
      
      - Ickyness with clearing the databases.
      - Really implement multiple stores with better management of the Store
        instances.
      - Fix all the circular import nasties.
    added:
      Mailman/database/model/mailman.sql
    modified:
      Mailman/Defaults.py
      Mailman/database/__init__.py
      Mailman/database/listmanager.py
      Mailman/database/messagestore.py
      Mailman/database/model/__init__.py
      Mailman/database/model/address.py
      Mailman/database/model/language.py
      Mailman/database/model/mailinglist.py
      Mailman/database/model/member.py
      Mailman/database/model/message.py
      Mailman/database/model/pending.py
      Mailman/database/model/preferences.py
      Mailman/database/model/requests.py
      Mailman/database/model/roster.py
      Mailman/database/model/user.py
      Mailman/database/model/version.py
      Mailman/database/types.py
      Mailman/database/usermanager.py
      Mailman/docs/ack-headers.txt
      Mailman/tests/test_documentation.py
      setup.py

The size of the diff (7307 lines) is larger than your specified limit of 5000 
lines

--

https://code.launchpad.net/~mailman-coders/mailman/3.0

You are receiving this branch notification because you are subscribed to it.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/3.0/+subscription/mailman-checkins.
_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to