<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/Mailman/templates, branch master</title>
<subtitle>The GNU Mailing List manager.</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom/Mailman/templates?h=master</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom/Mailman/templates?h=master'/>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/'/>
<updated>2015-04-28T22:57:43Z</updated>
<entry>
<title>Convert from bzr to git.</title>
<updated>2015-04-28T22:57:43Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2015-04-28T22:57:43Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=d52a7f13baccecadd5d298d5f12190fae474024f'/>
<id>urn:sha1:d52a7f13baccecadd5d298d5f12190fae474024f</id>
<content type='text'>
</content>
</entry>
<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>Use a more efficient way of deleting rows from a table, which coincidentally</title>
<updated>2008-01-15T04:22:15Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2008-01-15T04:22:15Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=0bf7659000d2736839919c1ac2adc99b9bcb1b46'/>
<id>urn:sha1:0bf7659000d2736839919c1ac2adc99b9bcb1b46</id>
<content type='text'>
&lt;wink&gt; works around the storm cache bug #178546.
</content>
</entry>
<entry>
<title>No executable</title>
<updated>2007-12-29T16:39:18Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-12-29T16:39:18Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=9124e1a17f439314b17206f2ad80f17d7b7971e8'/>
<id>urn:sha1:9124e1a17f439314b17206f2ad80f17d7b7971e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Finish up the request hold conversion.  ListAdmin can go away though</title>
<updated>2007-09-16T16:08:24Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-09-16T16:08:24Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=0d623d7684e2ad8309219da934fc956a498e3a71'/>
<id>urn:sha1:0d623d7684e2ad8309219da934fc956a498e3a71</id>
<content type='text'>
it hasn't yet.  SendSubscribeAck(), SendUnsubscribeAck(), and
ApprovedDeleteMember() are all removed, though the latter is not yet
completely eradicated.
</content>
</entry>
<entry>
<title>Work out subscription holding and handling.  ApprovedAddMember() is</title>
<updated>2007-09-16T11:15:53Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-09-16T11:15:53Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=0a3e802568a0bfaf9ceade4614a52db9a90b905c'/>
<id>urn:sha1:0a3e802568a0bfaf9ceade4614a52db9a90b905c</id>
<content type='text'>
gone.  Fix up OwnerNotification class.  Rewrite subauth.txt and
subscribeack.txt for new implementation, especially removing the
password notification from the latter.  Add lots of tests.
</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>Merge the setuptools branch.  Fix a couple of test modules that are</title>
<updated>2007-07-21T20:19:54Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-07-21T20:19:54Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=276009e248e64cf0c60989c93b2f3d6b9713c199'/>
<id>urn:sha1:276009e248e64cf0c60989c93b2f3d6b9713c199</id>
<content type='text'>
disabled anyway.
</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>
</feed>
