<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/Mailman/Gui, branch plugin</title>
<subtitle>The GNU Mailing List manager.
</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom?h=plugin</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom?h=plugin'/>
<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>Move the pending database into the SQLAlchemy/Elixir layer.  The old</title>
<updated>2007-08-01T20:11:08Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-08-01T20:11:08Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=f8a6c46455a409125dcc0fcace7d7116898b0319'/>
<id>urn:sha1:f8a6c46455a409125dcc0fcace7d7116898b0319</id>
<content type='text'>
Pending.py module is removed.  Added an interface to this functionality such
that any IPendable (essentially a key/value mapping) can be associated with a
token, and that token can be confirmed and has a lifetime.  Any keys and
values can be stored, as long as both are unicodes.

Added a doctest.

Modified initialization of the database layer to support pluggability via
setuptools.  No longer is this layer initialized from a module, but now it's
instantiated from a class that implements IDatabase.  The StockDatabase class
implements the SQLAchemy/Elixir layer, but this can be overridden in a
setup.py.  Bye bye MANAGERS_INIT_FUNCTION, we hardly knew ye.

Added a package Mailman.app which will contain certain application specific
functionality.  Right now, the only there there is an IRegistar
implementation, which didn't seem to fit anywhere else.

Speaking of which, the IRegistrar interface implements all the logic related
to registration and verification of email addresses.  Think the equivalent of
MailList.AddMember() except generalized out of a mailing list context.  This
latter will eventually go away.  The IRegistrar sends the confirmation email.

Added an IDomain interface, though the only implementation of this so far
lives in the registration.txt doctest.  This defines the context necessary for
domain-level things, like address confirmation.

A bunch of other cleanups in modules that are necessary due to the refactoring
of Pending, but don't affect anything that's actually tested yet, so I won't
vouch for them (except that they don't throw errors on import!).

Clean up Defaults.py; also turn the functions seconds(), minutes(), hours()
and days() into their datetime.timedelta equivalents.

Consolidated the bogus email address exceptions.

In some places where appropriate, use email 4.0 module names instead of the
older brand.

Switch from Mailman.Utils.unique_message_id() to email.utils.make_msgid()
everywhere.  This is because we need to allow sending not in the context of a
mailing list (i.e. domain-wide address confirmation message).  So we can't use
a Message-ID generator that requires a mailing list.  OTOH, this breaks
Message-ID collision detection in the mail-&gt;news gateway.  I'll fix that
eventually.

Remove the 'verified' row on the Address table.  Now verification is checked
by Address.verified_on not being None.
</content>
</entry>
<entry>
<title>More work on completing the transition to setuptools.</title>
<updated>2007-07-18T15:46:44Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-07-18T15:46:44Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=50d84950d1060129da8eb3c3c490a7395b0837e5'/>
<id>urn:sha1:50d84950d1060129da8eb3c3c490a7395b0837e5</id>
<content type='text'>
* Mailman/testing -&gt; Mailman/test
* Removed Mailman/testing/base.py
* Fix mailmanctl by using a different way of calculating where the qrunner
  script is.  The configuration file no longer knows what BIN_DIR is, but the
  mailmanctl script knows where it lives via sys.argv[0].  Also, PREFIX_DIR -&gt;
  VAR_DIR.

Also,

* Since the overwhelmingly predominant use of ILanguageManager is to get the
  description, and since .get_language_data(code)[0] is not very readable,
  split the interface into .get_description() and .get_charset().
* In the setup, automatically add all Mailman.bin modules as command line
  scripts.
</content>
</entry>
<entry>
<title>Major surgery to get the setuptools based installation passing all the</title>
<updated>2007-07-17T03:55:49Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-07-17T03:55:49Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=b8e8aa0386c2ee0fc7e90bf22fbe8fe3f222964a'/>
<id>urn:sha1:b8e8aa0386c2ee0fc7e90bf22fbe8fe3f222964a</id>
<content type='text'>
existing unit tests.  Here's a summary of the changes.

- Removed all dependent third party packages, since the setup.py file now
  claims all package dependencies such that they can be automatically
  installed from the cheeseshop.

- Moved the misc directory into the Mailman package as Mailman/data.  Moved
  templates and messages to Mailman subpackages.

- Added an ILanguageManager interface, plus an implementation, so that
  we don't use Defaults.LC_DESCRIPTIONS directly anymore.  Added a doctest
  for this interface and implementation.  Defaults.LANGUAGES is moved into
  mailman.cfg.  Defaults.LANGUAGE_DICT is moved to _DEFAULT_LANGUAGE_DATA, and
  LC_DESCRIPTIONS is removed.  The calculation of the available and enabled
  languages is moved to the Configuration class, but this will probably still
  need work.  Utils.GetLanguageDescr() and Utils.IsLanguage() are removed.
  I'd like to remove GetCharSet() eventually too, but there are too many uses
  of this currently, so I'm deferring it.

- Utils.findtext(): Hacks added so that templates can be retrieved from the
  language catalog.  The hack is that the template contents are used to find
  the translation, but in the one test case where this is actually flexed, the
  trailing newline in the file contents has to be trimmed.  This is probably
  not right.

- No more Defaults.py.in or mm_cfg.py!  Defaults.py.in is moved to Defaults.py
  and is no longer created from a template file.  The script called
  make_instance is added which creates an etc/mailman.cfg file from
  mailman.cfg.in (previously, mailman.cfg.sample) and /that/ file now has the
  small number of calculated values.  In general, make_instance will not touch
  mailman.cfg if it exists, unless the --force option is given.  CGIEXT is
  made the empty string by default (i.e. not generated).  make_instance grows
  a --var-dir option.  Fleshed out the --languages opton.

- Defaults.py grows a DEFAULT_VAR_DIRECTORY variable, which is the default
  location of the 'var' directory.  The Configuration class uses this as one
  of the directories it searches for its landmark, i.e. etc/mailman.cfg.
  RUNTIME_DIR is gone, as is VAR_PREFIX.

- testall needs to write MAILMAN_USER, MAILMAN_UID, MAILMAN_GROUP,
  MAILMAN_GID, and LANGUAGES run time variables.

- bin/withlist no longer needs to add config.BIN_DIR to sys.path, because in
  fact that variable doesn't exist any more.

- Tweak the French catalog to make a test work.  This is needed because of the
  conversion from %-strings to $-strings.

- The setup.py now generates the .mo files before it does its thing.  This
  will have to be fixed, but for now we must generate these files on setup
  build time instead of installation time.

- Removed an unused interface.
</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>Remove leftover reference to removed Mailman.database.tables.languages</title>
<updated>2007-05-30T17:14:09Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2007-05-30T17:14:09Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=8c1fa18658dc730b53ddbb4766549a4fe595e453'/>
<id>urn:sha1:8c1fa18658dc730b53ddbb4766549a4fe595e453</id>
<content type='text'>
module.  Add in a temporary reference (with XXX comment) to
Mailman.database.model.Language where necessary, although I will need to
remove this eventually.

Added clean up code to the mlist-rosters.txt doctest, otherwise it leaks the
test mailing list.
</content>
</entry>
<entry>
<title>Merge exp-elixir-branch to trunk.  There is enough working to make me feel</title>
<updated>2007-05-28T20:21:41Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2007-05-28T20:21:41Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=b18f632faa6de17badabb3c6c7ba61752ac84c37'/>
<id>urn:sha1:b18f632faa6de17badabb3c6c7ba61752ac84c37</id>
<content type='text'>
confident the Elixir branch is ready to become mainline.  Also, fewer branches
makes for an easier migration to a dvcs.

Don't expect much of the old test suite to work, or even for much of the old
functionality to work.  The changes here are disruptive enough to break higher
level parts of Mailman.  But that's okay because I am slowly building up a new
and improved test suite, which will lead to a functional system again.

For now, only the doctests in Mailman/docs (and their related test harnesses)
will pass, but they all do pass.  Note that Mailman/docs serve as system
documentation first and unit tests second.  You should be able to read the
doctest files to understand the underlying data model.

Other changes included in this merge:

- Added the Mailman.ext extension package.
- zope.interfaces uses to describe major components
- SQLAlchemy/Elixir used as the database model
- Top level doinstall target renamed to justinstall
- 3rd-party packages are now installed in pythonlib/lib/python to be more
  compliant with distutils standards.  This allows us to use just --home
  instead of all the --install-* options.
- No longer need to include the email package or pysqlite, as Python 2.5 is
  required (and comes with both packages).
- munepy package is included, for Python enums
- IRosterSets are added as a way to manage a collection of IRosters.  Roster
  sets are named so that we can maintain the indirection between mailing lists
  and rosters, where the two are maintained in different storages.
- IMailingListRosters: remove_*_roster() -&gt; delete_*_roster()
- Remove IMember interface.
- Utils.list_names() -&gt; config.list_manager.names
- fqdn_listname() takes an optional hostname argument.
- Added a bunch of new exceptions used throughout the new interfaces.
- Make LockFile a context manager for use with the 'with' statement.
</content>
</entry>
<entry>
<title>Restoreing i18n in 2.2</title>
<updated>2007-03-01T02:49:20Z</updated>
<author>
<name>tkikuchi</name>
</author>
<published>2007-03-01T02:49:20Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=c08b190d0b31d09ef25a0e213b719ff337ac533c'/>
<id>urn:sha1:c08b190d0b31d09ef25a0e213b719ff337ac533c</id>
<content type='text'>
- As the default type of string in mailman-2.2 was set to 'unicode', 
  i18n codes became need to be fixed.
- Fixed: admin web interface.  Other web interfaces needs more verification.
- Fixed: non-digest delivery.  Stil to go: digest and archive.

</content>
</entry>
</feed>
