<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/Mailman/Archiver, branch master</title>
<subtitle>The GNU Mailing List manager.</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom/Mailman/Archiver?h=master</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom/Mailman/Archiver?h=master'/>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/'/>
<updated>2008-02-27T06:26:18Z</updated>
<entry>
<title>Bite the bullet: rename the Mailman package to mailman.</title>
<updated>2008-02-27T06:26:18Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2008-02-27T06:26:18Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=a1c73f6c305c7f74987d99855ba59d8fa823c253'/>
<id>urn:sha1:a1c73f6c305c7f74987d99855ba59d8fa823c253</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Tweak copyright years.</title>
<updated>2008-02-08T04:01:48Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2008-02-08T04:01:48Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=0478757a09b4173937d75103fa96444b6b085300'/>
<id>urn:sha1:0478757a09b4173937d75103fa96444b6b085300</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Much progress, though not perfect, on migrating to SQLAlchemy 0.4 and Elixir</title>
<updated>2007-10-31T21:38:51Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-10-31T21:38:51Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=f321d85d91a370294e771dbaa22493008d78dfdd'/>
<id>urn:sha1:f321d85d91a370294e771dbaa22493008d78dfdd</id>
<content type='text'>
0.4.  Lots of things changes, which broke lots of our code.  There are still a
couple of failures in the test suite that I don't understand.  It seems that
for pending.txt and requests.txt, sometimes strings come back from the
database as 8-bit strings and other times as unicodes.  It's impossible to
make these tests work both separately and together.

users.txt is also failing intermittently.  Lots of different behavior between
running the full test suite all together and running individual tests.  Sigh.

Note also that actually, Elixir 0.4.0 doesn't work for us.  There's a bug in
that version that prevented zope.interfaces and Elixir working together.  Get
the latest 0.4.0 from source to fix this.

Other changes include:

- Remove Mailman/lockfile.py.  While I haven't totally eliminated locking, I
  have released the lockfile as a separate Python package called locknix,
  which Mailman 3.0 now depends on.

- Renamed Mailman/interfaces/messagestore.py and added an IMessage interface.

- bin/testall raises turns on SQLALCHEMY_ECHO when the verbosity is above 3
  (that's three -v's because the default verbosity is 1).

- add_domain() in config files now allows url_host to be optional.  If not
  given, it defaults to email_host.

- Added a non-public interface IDatabase._reset() used by the test suite to
  zap the database between doctests.  Added an implementation in the model
  which just runs through all rows in all entities, deleting them.

- [I]Pending renamed to [I]Pended

- Don't allow Pendings.add() to infloop.

- In the model's User impelementations, we don't need to append or remove the
  address when linking and unlinking.  By setting the address.user attribute,
  SQLAlchemy appears to do the right thing, though I'm not 100% sure of that
  (see the above mentioned failures).
</content>
</entry>
<entry>
<title>General cleanups some of which is even tested &lt;wink&gt;.  Mailman.LockFile module</title>
<updated>2007-10-11T03:22:03Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-10-11T03:22:03Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=1ad73a52bb9d82ef3af1e34ad9ef66ac2eda2909'/>
<id>urn:sha1:1ad73a52bb9d82ef3af1e34ad9ef66ac2eda2909</id>
<content type='text'>
is moved to Mailman.lockfile.

Remove a few more MailList methods that aren't used any more, e.g. the lock
related stuff, the Save() and CheckValues() methods, as well as
ChangeMemberName().

Add a missing import to lifecycle.py.

We no longer need withlist to unlock the mailing list.  Also, expose
config.db.flush() in the namespace of withlist directly, under 'flush'.
</content>
</entry>
<entry>
<title>Implement a context manager for Python 2.5's with statement, which is</title>
<updated>2007-09-19T11:28:58Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-09-19T11:28:58Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=4c517789fa8b29d2a23791e6f390d9f1173c3125'/>
<id>urn:sha1:4c517789fa8b29d2a23791e6f390d9f1173c3125</id>
<content type='text'>
used where we used to do a try/except to temporarily change the global
translation language.  This makes the code shorter and cleaner.  E.g.

with i18n.using_language(another_language):
    # do something
</content>
</entry>
<entry>
<title>It all started by trying to remove MailList.Create() and use the IListManager</title>
<updated>2007-08-05T04:32:09Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-08-05T04:32:09Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=959f34a62e0ec3cbe73da3d43640ccb6791cf3a0'/>
<id>urn:sha1:959f34a62e0ec3cbe73da3d43640ccb6791cf3a0</id>
<content type='text'>
interface to create and delete lists.  Mostly that's working now, but I need
unit tests for most of the new work contained in this revision.

Implemented a rudimentary 'list styles' subsystem, along with interfaces, but
no tests yet.  Moved all of MailList.InitVars() into a DefaultStyle, which is
always available at priority zero.  It's used by default if there are no
matching styles for a mailing list.

Because of the list styles, we can now get rid of (almost) all InitVars()
methods.  And because of /that/ we can get rid of the mixin clases whose sole
purpose was to provide an InitVars() method.  Yay for code removal!

Mixin modules/classes removed: Autoresponder, GatewayManager, TopicManager.

Removed the Mailman/ext crufty extension mechanism.  Extensions will now be
done using setuptools plugins.  Hopefully this will take us everywhere we need
to go, but I'll add Mailman.ext back if necessary later.

Mailiman.app.create module added to implement a common, higher-level list
creation feature.  This is used by bin/newlist now, though some of that
functionality (namely, ensuring the owners exist in the database, and
notifying the owners) should be moved here.   The MTA plugins aren't yet
integrated into this, but need to be.

Mailman.app.plugins module added to generalize setuptools plugin management.

Defaults.DEFAULT_REPLY_GOES_TO_LIST now gets initialized with a proper enum.
Also, the duplicate DeliveryMode and DeliveryStatus enums are removed from
Defaults because they're in Mailman.constants.

Added Errors.DuplicateStyleError.

Updated Utils.list_exists() to use the new IListManager.get() interface, which
has been changed to return None if the list doesn't exist (for consistency)
instead of raising an exception.  Utils.list_names() also needed to be fixed
to use config.db.list_manager.

bin/make_instance, bin/newlist, bin/rmlist changed to use parser.error()
istead of printing to sys.stderr and sys.exit(1).

bin/newlist and bin/rmlist now works with the IListManager interface, so you
can create and delete lists from the command line again.  The CLI for newlist
has been much simplified; it no longer prompts for missing positional
arguments.  It now uses a more traditional CLI.  newlist also accepts zero to
many owners, and it ensures that the owners are all in the database.  It no
longer asks for a list password, because this doesn't make sense any more.

bin/withlist has also been fixed to work with the IListManager interface.

There are lots of XXXs and FIXMEs that need to be resolved before this can
land.  Also, we need to test all this stuff before it can land.

Configuration.load() is now taught to search in sys.argv[0] for
var/etc/mailman.cfg since this is where it is for egg development layouts.
Also, VAR_DIR must be abspath'd.

Added an __all__ to Mailman.constants, and added an Action enum.

The listmanager implementation has to set the mlist.created_at time.  There's
also a bit of crufty refactoring going on to instantiate the roster objects
whenever the list is created or retrieved from the database.

Several MailingList column types are now set to our custom TimeDeltaType,
which knows how to store a datetime.timedelta.  A SQLAlchemny converter type
is added to Mailman.database.types.  I also fixed a bug in the EnumType
implementation.
</content>
</entry>
<entry>
<title>Other than contrib files, convert all imports of mm_cfg to imports of config.</title>
<updated>2007-07-15T01:23:28Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-07-15T01:23:28Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=327865eaf118f40063366acad9c7d97487e010d6'/>
<id>urn:sha1:327865eaf118f40063366acad9c7d97487e010d6</id>
<content type='text'>
Ignore mailman.egg-info

In bin/make_instance.py: Catch and ignore import errors when importing
Mailman.i18n.  Before this script has actually been run, there won't be enough
infrastructure in place of the import to succeed.  Include several other fixes
in this file.

Add install_requires to the setup script.
</content>
</entry>
<entry>
<title>The start of a setuptools conversion.  All the Makefile.in and autoconf</title>
<updated>2007-07-13T04:19:10Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-07-13T04:19:10Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=288ae405b09baa443eb1b39422c48c315fbb2e5a'/>
<id>urn:sha1:288ae405b09baa443eb1b39422c48c315fbb2e5a</id>
<content type='text'>
artifacts are removed, as is the C files which we will no longer need.
</content>
</entry>
<entry>
<title>Update copyright years.</title>
<updated>2007-01-19T04:38:06Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2007-01-19T04:38:06Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=25f7d0630bfc73b3fd5c41a584d8eb3a8554f45d'/>
<id>urn:sha1:25f7d0630bfc73b3fd5c41a584d8eb3a8554f45d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>A little more internal_name() to fqdn_listname changes.</title>
<updated>2006-12-03T08:06:45Z</updated>
<author>
<name>tkikuchi</name>
</author>
<published>2006-12-03T08:06:45Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=3bdd0dc5d86a9d64fd83edf1f66d342f69efa28d'/>
<id>urn:sha1:3bdd0dc5d86a9d64fd83edf1f66d342f69efa28d</id>
<content type='text'>
</content>
</entry>
</feed>
