Code Monkey home page Code Monkey logo

tracmailman's Introduction

TracMailman

About

TracMailman is a plugin for Trac that integrates with Mailman, allowing users to browse mailing list archives and search the mailing list, all from a tab within Trac.

Created by Spencer Fang <[email protected]> and Theron Ji <[email protected]>. Additional development by Benjamin Weaver <[email protected]>.

Contents

README.rst
setup.py
swish-e.config
swish-e.sh
trac-mailman.ini
tracmailman/
tracmailman/__init__.py
tracmailman/paths.py
tracmailman/web_ui.py
tracmailman/templates/
tracmailman/templates/tracmailman.html
tracmailman/templates/tracmailmanbrowser.html
tracmailman/templates/tracmailmanoptions.html
tracmailman/templates/tracmailmansearch.html

Requirements

Functionality

This plugin adds a 'Mailing Lists' tab inside of trac. Users logged in will be able to click on this tab and be taken to a search page, where they can choose to search a particular mailing list (or 'All'), or browse through the mailing lists, all within Trac.

This plugin handles privacy concerns by looking at a manually specified list of mailing lists inside the trac.ini configuration file, and preventing searches or browsing on those lists. NOTE: this functionality is disabled for all users, including those who may have the proper permissions. It is conceivable that this feature is changed in later versions of the plugin.

Installation

  1. Verify requirements have been met!
  2. In the plugin directory, run python setup.py bdist_egg to produce a .egg file under the dist/ directory.
  3. Copy the .egg into the plugins/ directory under the Trac project
  4. Edit the trac-mailman.ini file appropriately (see Configuring trac.ini below)
  5. Add the contents of trac-mailman.ini to the trac.ini file inside your Trac project (default location under yourproject/conf/)
  6. Set the appropriate variables in swish-e.sh. (see 'Configuring Swish-e' below). Run it to create the index files [*].
  7. Restart the Trac daemon - the plugin should now be functional.
  8. Set up a cron job or some script to periodically run swish-e.sh to re-index the archives to keep the search up-to-date.
[*]The private mailman archive (/var/lib/mailman/archives/private) has read permission restricted to root or the mailman group, by default. In order for Trac to be able to read these files, and the Swish-e script to be able index these files, they must be run with appropriate permissions.

Configuring trac.ini

In the trac.ini configuration file, 3 items need to be specified under the [tracmailman] section:

private_lists
As mentioned above, this will be a comma separated list of mailing lists that should not be made publicly searchable or browsable. Obsolete lists that still remain archived but are no longer of any use may also be put here. This is not related to the private directory created by default under /var/lib/mailman/archives/private. Defaults to nothing.
mail_archive_path
This should be set to the full path to the top- level directory of where the mailman archives are stored. Default location is at /var/lib/mailman/archives.
search_index_path
This should be set to the full path of where the search indices created by Swish-e are located. This must be the same as the $INDEX_LOCATION variable in the swish-e.sh script.

Configuring Swish-e

To use the search feature of the plugin, you must have Swish-e installed and an index file to search in. The config file for Swish-e is included, (swish-e.config), as well as a shell script (swish-e.sh). The swish-e.config file should not be changed, but modifications should be made to the swish-e.sh script to tell it 1) where the config file is, and 2) where to store the indices created by the search engine.

tracmailman's People

Contributors

weaverba137 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mej weaverba137

tracmailman's Issues

Any interest in joining the trac-hacks organization?

Hi,

I'm an administrator for trac-hacks.org. We've created an organization on GitHub and are inviting authors of trac-hacks plugins to join the organization. Your repository could be transferred into the organization as described in the GitHub docs. You'd retain full control over the repository, but the hope is that it will be easier for users on GitHub to find trac-hacks plugins, such as yours, by viewing the trac-hacks organization.

In the future, if you choose to no longer maintain the plugin, the organization would be able to provide commit access to new developers. This would only be done with your permission, as has been the policy for plugins hosted on trac-hacks.org. If you've already decided to no longer maintain the plugin, we would particularly appreciate you transferring the plugin to the trac-hacks organization so that we can help find new maintainers for it.

Finally, creating the trac-hacks organization is a work in progress. I appreciate if you have any suggestions on how to best support the community of trac plugin developers on GitHub. More information can be found in the blog post.

Kind regards,
Ryan

(Apologies if I open a ticket against two of your plugins. I'm doing a manual search of GitHub to find Trac plugins and invite plugin authors; it's sometimes difficult to keep everything straight).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.