lp:~barry/mailman/setup

Created by Barry Warsaw and last modified
Get this branch:
bzr branch lp:~barry/mailman/setup
Only Barry Warsaw can upload to this branch. If you are Barry Warsaw please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Barry Warsaw
Project:
GNU Mailman
Status:
Merged

Recent revisions

6540. By Barry Warsaw

Remove some obsolete command line scripts:

- bin/check_dbs because there are no more pickles
- bin/convert because in MM3 everything will use $-strings and we'll do the
  conversion on import of the old list data
- bin/mmshell because setuptools provides its own equivalent
- bin/qrunner and bin/mailmanctl because the files were empty

There are a bunch of scripts still left in bin/ which will eventually get
removed. I'm leaving them for now because they're either helpers generally
tangential to Mailman (msgfmt, po2template, pygettext, templ2pot, transcheck),
or are using old interfaces that will go away soon (clone_member, convert,
discard, fix_url, list_admins, remove_members, reset_pw, sync_members).

Also moved bin/cleanarch into Mailman/bin/cleanarch.py and updated it to use
optparse.

Also added a small patch to genalias to standardize its help printing.

6539. By Barry Warsaw

Clean up the setup.py script by removing a commented out section we
don't need any more and by requiring setuptoolsbzr package at setup
time to find bzr controlled files.

6538. By Barry Warsaw

Added a plugin so setuptools groks the Bazaar revision control system.

Added a MANIFEST.in so the generated .mo files are included.

6537. By Barry Warsaw

The Mailman/bin package's __all__ now contains the list of all command line
scripts, and setup will use this to create the console_scripts list.

Put the scripts in their own bin directory so that the installation directory
isn't all cluttered up. While the reduced clutter is great, the downside is
that PYTHONPATH has to be specified, and 'bin' should really be configurable.

6536. By Barry Warsaw

More work on completing the transition to setuptools.

* Mailman/testing -> 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 ->
  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.

6535. By Barry Warsaw

Rebuild the .mo file if the .po file is newer.

6534. By Barry Warsaw

A few more i18n digest fixes

6533. By Barry Warsaw

Major surgery to get the setuptools based installation passing all the
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.

6532. By Barry Warsaw

Other than contrib files, convert all imports of mm_cfg to imports of config.

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.

6531. By Barry Warsaw

The start of a setuptools conversion. All the Makefile.in and autoconf
artifacts are removed, as is the C files which we will no longer need.

This branch contains Public information 
Everyone can see this information.

Subscribers

No subscribers.