From msk at cloudmark.com Tue May 1 20:00:18 2012 From: msk at cloudmark.com (Murray S. Kucherawy) Date: Tue, 1 May 2012 18:00:18 +0000 Subject: [Mailman-Developers] Password reminders Message-ID: <9452079D1A51524AA5749AD23E003928108F99@exch-mbx901.corp.cloudmark.com> Do you folks ever get complaints about password reminders sending passwords in the clear? Is there an open bug about that? Once a month I get someone nagging at me that this isn't a secure thing, possibly because it's a security-related mailing list (i.e., picky audience). My only choice in the current version is to turn off the reminders altogether. Perhaps it would be possible to add a switch that just turns off the password part? -MSK From mark at msapiro.net Tue May 1 21:48:34 2012 From: mark at msapiro.net (Mark Sapiro) Date: Tue, 1 May 2012 12:48:34 -0700 Subject: [Mailman-Developers] Password reminders In-Reply-To: <9452079D1A51524AA5749AD23E003928108F99@exch-mbx901.corp.cloudmark.com> Message-ID: Murray S. Kucherawy wrote: >Do you folks ever get complaints about password reminders sending passwords in the clear? Yes. >Is there an open bug about that? See, e.g., . >Once a month I get someone nagging at me that this isn't a secure thing, possibly because it's a security-related mailing list (i.e., picky audience). My only choice in the current version is to turn off the reminders altogether. Perhaps it would be possible to add a switch that just turns off the password part? How useful would the rest of it be without the password? You can edit the template for the reminder per . Its name is cronpass.txt. Besure to see the note in the FAQ about list and domain specific templates not working for this template. However, the actual entries with the passwords are not built from the template so you'd have to also edit the code in cron/mailpasswds. -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From sophron at latthi.com Thu May 3 01:04:34 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Thu, 3 May 2012 02:04:34 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics Message-ID: Hello, I'm sending a report of my progress for the last two weeks (containing an outline of my project). The following report is also posted in my blog [1]. -- The last two weeks i?m into learning the Django web framework in more detail. I?m also thinking to rearrange the GSoC schedule a bit. I?ll start writing code on the bonding period, so i can have more time during my university?s exams (starting on half of June). Finally, i came up with an outline of my project. Here it is: Settings The Django app should handle some configuration parameters, like: - Maximum number of the subscribers of a mailing list the user wants to be shown in the charts - A multi-state variable (None, abbreviated, full) for masking email addresses at the results (we don?t want the emails to be spammed) Apart from these, some parameters to establish a connection to the message store (such as host or port) will be added. Models In order to store statistical data, the app will use some Django models: - Author ? This model will store specific information for each subscriber such as total posts, total threads started, date of last message, subscription date, average of posts sent per day - MailingList ? General information about the mailing list will be stored here such as total posts, total threads and two foreign keys pointing the month and year models - Month ? This model will store total posts and threads for each month - Year ? Similar to month model, this one will store total posts and threads for each year Views To display the metrics some views will be used: - A generic view for the mailing list and the top subscribers - A more detailed page about the participation of a specific subscriber The graphs will be generated using the PyChart library. (Custom tags are the way that the app will embed the graphs) Interface to the MM core The app needs to interact with the Mailman core. I think the best idea is to implement a message bus that will send a notification every time a message is sent (the same way an archiver works). Based on this notification -which will carry the information about the sent message- the app will be ready to update the counts. Although, in some cases (eg the app is installed after an existing archive or there was an unexpected crash), the message bus should deliver (triggered by a button) more than one notifications (for the whole archive) to the app in order to initialize/recover the metrics. In those cases, the models will be initialized and the generation of the metrics will start over. -- Any comments are highly appreciated. [1]: http://sophron.latthi.com/gsoc-mailman/?p=12 -- George Chatzisofroniou sophron.latthi.com From dave at fiteyes.com Thu May 3 04:41:07 2012 From: dave at fiteyes.com (David) Date: Wed, 2 May 2012 22:41:07 -0400 Subject: [Mailman-Developers] Error: Couldn't install: storm 0.19 Message-ID: Anyone have any ideas on this error? It seems I'm missing Python.h. I'm running Ubuntu 12.04. Here's the output of my commands (after running a second time); root at localhost:/opt/mailman-3.0.0b1# python bootstrap.py Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg root at localhost:/opt/mailman-3.0.0b1# bin/buildout Develop: '/opt/mailman-3.0.0b1/.' warning: no files found matching '*.rc' warning: no files found matching '*' under directory '.buildout' warning: no files found matching '*' under directory 'contrib' warning: no previously-included files matching '*.egg-info' found anywhere in distribution no previously-included directories found matching 'src/attic' no previously-included directories found matching 'src/web' no previously-included directories found matching 'parts' Installing interpreter. Getting distribution for 'storm'. storm/cextensions.c:23:20: fatal error: Python.h: No such file or directory compilation terminated. error: Setup script exited with error: command 'gcc' failed with exit status 1 An error occurred when trying to install storm 0.19. Look above this message for any errors that were output by easy_install. While: Installing interpreter. Getting distribution for 'storm'. Error: Couldn't install: storm 0.19 root at localhost:/opt/mailman-3.0.0b1# which gcc /usr/bin/gcc root at localhost:/opt/mailman-3.0.0b1# which python /usr/bin/python root at localhost:/opt/mailman-3.0.0b1# /usr/bin/python --version Python 2.7.3 From dave at fiteyes.com Thu May 3 04:49:43 2012 From: dave at fiteyes.com (David) Date: Wed, 2 May 2012 22:49:43 -0400 Subject: [Mailman-Developers] Error: Couldn't install: storm 0.19 In-Reply-To: References: Message-ID: On Wed, May 2, 2012 at 10:41 PM, David wrote: > Anyone have any ideas on this error? It seems I'm missing Python.h. > > I'm running Ubuntu 12.04. > On Wed, May 2, 2012 at 10:41 PM, David wrote: > Anyone have any ideas on this error? > > I'm running Ubuntu 12.04. > Oh, I see. It's very common when you search on the right terms. Solution: sudo apt-get install python-dev It's building now. From dave at fiteyes.com Thu May 3 04:57:33 2012 From: dave at fiteyes.com (David) Date: Wed, 2 May 2012 22:57:33 -0400 Subject: [Mailman-Developers] Error: Couldn't install: storm 0.19 In-Reply-To: References: Message-ID: On Wed, May 2, 2012 at 10:49 PM, David wrote: > On Wed, May 2, 2012 at 10:41 PM, David wrote: > >> Anyone have any ideas on this error? It seems I'm missing Python.h. >> >> I'm running Ubuntu 12.04. >> > Is this the right place for a suggestion on minor documentation changes? Building Mailman 3 > ================== > > Mailman 3 is now based on the `zc.buildout`_ infrastructure, which greatly > simplifies building and testing Mailman. > > You do not need anything other than Python ... > I started with a clean install of Ubuntu 12.04 on a new Linode. I actually needed build-essential and python-dev packages in addition to the python package that came with the default Ubuntu install on Linode. # apt-get install build-essential python-dev With those packages, I was able to build and it passed all tests: Total: 383 tests, 0 failures, 0 errors in 40.273 seconds. From dave at fiteyes.com Thu May 3 05:00:22 2012 From: dave at fiteyes.com (David) Date: Wed, 2 May 2012 23:00:22 -0400 Subject: [Mailman-Developers] no documentation for Mailman 3.0 Message-ID: Build the online docs by running:: % bin/docs root at localhost:/opt/mailman-3.0.0b1# bin/docs -bash: bin/docs: No such file or directory root at localhost:/opt/mailman-3.0.0b1/bin# ls buildout mailman master onebounce py runner tags test From mark at msapiro.net Thu May 3 05:25:09 2012 From: mark at msapiro.net (Mark Sapiro) Date: Wed, 02 May 2012 20:25:09 -0700 Subject: [Mailman-Developers] no documentation for Mailman 3.0 In-Reply-To: References: Message-ID: <4FA1FA95.80905@msapiro.net> On 5/2/2012 8:00 PM, David wrote: > Build the online docs by running:: > > % bin/docs Build the docs by installing sphinx (pip instal sphinx) and then running python setup.py build-sphinx See -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From mark at msapiro.net Thu May 3 05:29:33 2012 From: mark at msapiro.net (Mark Sapiro) Date: Wed, 02 May 2012 20:29:33 -0700 Subject: [Mailman-Developers] Error: Couldn't install: storm 0.19 In-Reply-To: References: Message-ID: <4FA1FB9D.8010506@msapiro.net> David wrote: > > Is this the right place for a suggestion on minor documentation changes? Tag it 'mailman3' -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From dave at fiteyes.com Thu May 3 05:32:38 2012 From: dave at fiteyes.com (David) Date: Wed, 2 May 2012 23:32:38 -0400 Subject: [Mailman-Developers] no documentation for Mailman 3.0 In-Reply-To: <4FA1FA95.80905@msapiro.net> References: <4FA1FA95.80905@msapiro.net> Message-ID: On Wed, May 2, 2012 at 11:25 PM, Mark Sapiro wrote: > On 5/2/2012 8:00 PM, David wrote: > > Build the online docs by running:: > > > > % bin/docs > > > Build the docs by installing sphinx (pip instal sphinx) and then running > > python setup.py build-sphinx > > See > This worked for me. (It's slightly different from above, but based on info in the link.) Build the online docs by running:: # apt-get install python-pip # pip install sphinx # /usr/bin/python setup.py build_sphinx see https://bugs.launchpad.net/mailman/+bug/975670 From stephen at xemacs.org Thu May 3 05:36:25 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Thu, 3 May 2012 12:36:25 +0900 Subject: [Mailman-Developers] no documentation for Mailman 3.0 In-Reply-To: References: Message-ID: This procedure has changed since the alphas but I guess the install doc hasn't been patched yet. python setup.py build_sphinx On Thu, May 3, 2012 at 12:00 PM, David wrote: > Build the online docs by running:: > > ? ?% bin/docs From dave at fiteyes.com Thu May 3 05:37:17 2012 From: dave at fiteyes.com (David) Date: Wed, 2 May 2012 23:37:17 -0400 Subject: [Mailman-Developers] where to install Mailman? Message-ID: I know this is possibly both a stupid question and one that is subject to endless debate in the larger scope... but strictly from a Mailman point of view, where should I install Mailman 3.0? My habit has always been to install my own application in /opt. If I install from a tarball, I always use /opt. But to make Mailman configuration and setup easier, I think I will deviate from that and install Mailman 3.0 like most of the other people here would do. Can anyone give me a recommendation specifically for Mailman 3.0 on Ubuntu? Also, would you use a base directory named mailman or mailman-3.0.0b1? Thanks From stephen at xemacs.org Thu May 3 05:53:33 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Thu, 3 May 2012 12:53:33 +0900 Subject: [Mailman-Developers] Error: Couldn't install: storm 0.19 In-Reply-To: References: Message-ID: On Thu, May 3, 2012 at 11:57 AM, David wrote: > Is this the right place for a suggestion on minor documentation changes? > I actually needed build-essential and python-dev packages in addition to > the python package that came with the default Ubuntu install on Linode. Ubuntu is popular, but not that popular that this kind of change will stop here. This is really basic knowledge that IMO is reasonable for our docs to presume (anybody who is installing beta software is going to run into real issues sooner or later). So it isn't a minor change, it's a move in the direction of becoming a site for educating novice sysadmins, and we're going to end up providing similar HOWTOs for RHEL, Debian, ... (hopefully not Gentoo or ArchLinux, of course;-). I don't have an objection to doing that, if somebody wants to put it together. I think it's quite plausible that Mailman 3 will be the first experience for many source-build virgins. But my experience with Emacsen suggests that people who are running into the "Windows-wannabe distros can't build software" issue is better addressed by a separate *set* of *distro-specific* documents (it might be in one file with per-distro sections, of course). Putting this stuff into the quick-start or full install guide is just going to deter novices and annoy experienced sysadmins. Better yet would be a section of the FAQ pointing to a generic site for "So ya wanna be a beta tester" documents, but I suspect that doesn't exist. From stephen at xemacs.org Thu May 3 07:57:09 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Thu, 3 May 2012 14:57:09 +0900 Subject: [Mailman-Developers] where to install Mailman? In-Reply-To: References: Message-ID: On Thu, May 3, 2012 at 12:37 PM, David wrote: > I know this is possibly both a stupid question and one that is subject to > endless debate in the larger scope... but strictly from a Mailman point of > view, where should I install Mailman 3.0? The short answer is "Anywhere, as long as the relative positions of components are in the same place". Basically, just use "python setup.py install --prefix=$YOUR_PREFERENCE". And no, it's not a stupid question. There's an annoying trap that's worth avoiding: mimicking distro layouts (see below). > My habit has always been to install my own application in /opt. I don't see any reason to vary from that, it will just irritate you to some extent, and not help others advise you. The important issue is how things relate to each other under $prefix and in the related "var" hierarchy (where the config files and databases will be kept), and setup.py will handle that. Long experience with Mailman 2 is that if you're installing from source, there won't be conflicts with the distro anyway, and it's easier for all if everybody's layout is "standard". Don't try to mimic Ubuntu's layout for Mailman 2. Distros often have layout policies that fit their tools, but these (and the sensibilities of Mailman developers) vary, so following a distro layout will likely cause yours to vary from the developers and other beta testers (who are an equally important source of advice). > Also, would you use a base directory named mailman > or mailman-3.0.0b1? Thanks I personally will be using "mailman3" as I will be running Mailman 2 and Mailman 3 in parallel for a while. If that doesn't apply to you, IMHO it's a matter of taste whether you use "bare" "mailman" or a name tagged with the version. Keeping older versions in their own installations occasionally saves work in recovering from a configuration error or software defect, but is a continual minor annoyance. I do think it's important to be careful about the upgrade to 3.1. At that time it is likely that many new features will be added, and possibly some backward incompatible changes. If for some reason you want to revert to 3.0, up-to-date backups of the database and configuration files are very important. Whether to use conventional backup copies, VCS, or version-specific installations is a matter of taste IMO. I would use whatever you feel comfortable with. From dave at fiteyes.com Thu May 3 18:31:41 2012 From: dave at fiteyes.com (David) Date: Thu, 3 May 2012 12:31:41 -0400 Subject: [Mailman-Developers] where to install Mailman? In-Reply-To: References: Message-ID: On Thu, May 3, 2012 at 1:57 AM, Stephen J. Turnbull wrote: > On Thu, May 3, 2012 at 12:37 PM, David wrote: > > > strictly from a Mailman point of > > view, where should I install Mailman 3.0? > > The short answer is "Anywhere, as long as the relative positions of > components are in the same place". Basically, just use "python > setup.py install --prefix=$YOUR_PREFERENCE". > > > My habit has always been to install my own application in /opt. > > I don't see any reason to vary from that > Don't try to mimic Ubuntu's layout for Mailman 2. > > > Also, would you use a base directory named mailman > > or mailman-3.0.0b1? Thanks > > I personally will be using "mailman3" > > I do think it's important to be careful about the upgrade to 3.1. > The help on this mailing list (and mailman-users) is just phenomenal! Thank you so much! From stephen at xemacs.org Thu May 3 20:42:13 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Fri, 4 May 2012 03:42:13 +0900 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: Hi George, Thanks for the report! A couple of quick comments: On Thu, May 3, 2012 at 8:04 AM, George Chatzisofroniou wrote: > I?m also thinking to rearrange the GSoC schedule a bit. I?ll start > writing code on the bonding period, It's up to your coding mentors, but it's generally not a good idea to try to move up the coding stage by too much. Make sure you have a clear spec before you start coding anything, and at least a rough sketch of a design. Without those two pieces, there's no standard to evaluate progress, or whether your code is doing the right thing. > so i can have more time during my > university?s exams (starting on half of June). I'd say just take the time as needed, after negotiating with your mentors. > Settings > > The Django app should handle some configuration parameters, like: > > - Maximum number of the subscribers of a mailing list the user wants > to be shown in the charts I don't know how feasible it would be to implement, but if you're willing to use AJAX, you could simply build up bar and line charts on the fly, adding "slices" of say 5 users at a time on the right side of the chart in progress. That might be cool. It could be set in a "viewport" and scrolled if it gets too big for the viewport. > - A multi-state variable (None, abbreviated, full) for masking email > addresses at the results (we don?t want the emails to be spammed) This is pointless if the archives show addresses. So archives and list should coordinate with the chart module on this. I suppose this should be a query to the list config (and maybe per user configs). > - Month ? This model will store total posts and threads for each month > - Year ? Similar to month model, this one will store total posts and > threads for each year It's not clear to me why year views can't be generated as an aggregate of monthly data? This would allow years to start with arbitrary months without too much redundancy. > Interface to the MM core > > The app needs to interact with the Mailman core. I think the best idea > is to implement a message bus that will send a notification every time > a message is sent (the same way an archiver works). Why not just use the iArchiver interface? I think it should be possible to have this be a standalone app serving the list itself, or be hosted by a particular archive, which wouldn't need to be the list host (or even run by the same organization). From dave at fiteyes.com Thu May 3 20:49:42 2012 From: dave at fiteyes.com (David) Date: Thu, 3 May 2012 14:49:42 -0400 Subject: [Mailman-Developers] problem installing Mailman 3.0 beta1 - no var directory created during install Message-ID: On Thu, May 3, 2012 at 1:57 AM, Stephen J. Turnbull wrote: > > The short answer is "Anywhere, as long as the relative positions of > components are in the same place". Basically, just use "python > setup.py install --prefix=$YOUR_PREFERENCE". > I installed it but I didn't get a var directory at all. (On the chance that it is created only after starting Mailman the first time, I tried to start it but that didn't work either.) The last line of the installation output read: error: None # ls /opt/mailman3/ bin lib Here's what I did: export PYTHONPATH=$PYTHONPATH:/opt/mailman3/lib/python2.7/site-packages/ /usr/bin/python setup.py install --prefix=/opt/mailman3 In src/mailman/config/schema.cfg I have: # Which paths.* file system layout to use. layout: dev In src/mailman/config/mailman.cfg I have: [paths.dev] var_dir: var [paths.fhs] bin_dir: /sbin var_dir: /var/lib/mailman [snip] # bin/mailman info Traceback (most recent call last): File "bin/mailman", line 5, in from pkg_resources import load_entry_point File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in working_set.require(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: restish root at localhost:/opt/mailman3# bin/mailman start Traceback (most recent call last): File "bin/mailman", line 5, in from pkg_resources import load_entry_point File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in working_set.require(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: restish mailman-3.0.0b1-source# ls bin copybump.py dist eggs setup.cfg bootstrap.py COPYING distribute-0.6.8-py2.7.egg MANIFEST.in setup.py build cron distribute-0.6.8.tar.gz parts src buildout.cfg data distribute_setup.py PKG-INFO template.py conf.py develop-eggs distribute_setup.pyc README.rst var From richard at NFSNet.org Thu May 3 21:38:07 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Thu, 3 May 2012 14:38:07 -0500 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: Steve, I will take the blame for any misunderstanding in this area. The GSoC calendar is based on the assumption that the students will have completed their spring academic work prior to the serious coding phase. Since conditions in Greece have delayed George's academic year, his "spring" final exams will now occur during the summer. I suggested that, in order to meet his mid-term goals in a timely fashion, he might expend some extra hours now, hopefully be ready to start coding a little early, and then be able to take a planned period of reduced effort during his finals. I am not, in any manner, suggesting that he skip any steps in the process. Richard > On Thu, May 3, 2012 at 8:04 AM, George Chatzisofroniou > wrote: > >> I?m also thinking to rearrange the GSoC schedule a bit. I?ll start >> writing code on the bonding period, > > It's up to your coding mentors, but it's generally not a good idea to > try to move up the coding stage by too much. Make sure you have a > clear spec before you start coding anything, and at least a rough > sketch of a design. Without those two pieces, there's no standard to > evaluate progress, or whether your code is doing the right thing. > >> so i can have more time during my >> university?s exams (starting on half of June). > > I'd say just take the time as needed, after negotiating with your mentors. From dave at fiteyes.com Fri May 4 03:20:45 2012 From: dave at fiteyes.com (David) Date: Thu, 3 May 2012 21:20:45 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please Message-ID: After a full day of stuff like this: error: Installed distribution zope.interface 3.6.1 conflicts with requirement zope.interface>=3.8.0 ... I need a good tutorial on setting up the development environment, including whatever related tools are needed, to build and install Mailman 3.0. Google hasn't turned up anything very helpful yet. I appreciate any recommendations. I keep running across recommendations like this: It could be a Setuptools bug, or an incomplete installation of > Setuptools/Distribute. Hence, I feel the need to start with a clean slate and a really good tutorial on setting up the development environment in Ubuntu 12.04. BTW, is Python 3 recommended for Mailman 3? I'm using 2.7 atm. I plan to use just one version of Python to keep it simple. I see a bunch of stuff on virtualenv, but if it is simpler to not user virtualenv and to just have one version of Python installed, I'll go that direction. Also, in case it is of interest, a lot (but not all) of my problems seem to center around PYTHONPATH. I probably don't have it right yet. And the following step is where I'm stuck: setup.py install --prefix=$YOUR_PREFERENCE". Previously I ran `bin/buildout` and `bin/test -vv` with this result: Total: 383 tests, 0 failures, 0 errors in 40.273 seconds. From mark at msapiro.net Fri May 4 06:22:39 2012 From: mark at msapiro.net (Mark Sapiro) Date: Thu, 3 May 2012 21:22:39 -0700 Subject: [Mailman-Developers] problem installing Mailman 3.0 beta1 - no vardirectory created during install In-Reply-To: Message-ID: David wrote: > >Here's what I did: > >export PYTHONPATH=$PYTHONPATH:/opt/mailman3/lib/python2.7/site-packages/ >/usr/bin/python setup.py install --prefix=/opt/mailman3 That's not the correct incantation. See src/mailman/docs/START.rst in the distribution tree or see -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From dave at fiteyes.com Fri May 4 06:32:13 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 00:32:13 -0400 Subject: [Mailman-Developers] problem installing Mailman 3.0 beta1 - no vardirectory created during install In-Reply-To: References: Message-ID: On Fri, May 4, 2012 at 12:22 AM, Mark Sapiro wrote: > David wrote: > > > >Here's what I did: > > > >export PYTHONPATH=$PYTHONPATH:/opt/mailman3/lib/python2.7/site-packages/ > >/usr/bin/python setup.py install --prefix=/opt/mailman3 > > > That's not the correct incantation. > > See src/mailman/docs/START.rst in the distribution tree or see > > > OK, interesting. Now I get a different error: >From that link, I did all these steps: Install and test: $ cd mailman $ python bootstrap.py $ bin/buildout $ bin/test If you get no errors you can now start Mailman: No errors: Total: 383 tests, 0 failures, 0 errors in 40.273 seconds. The next step should be: bin/mailman start Here's my result: # bin/mailman start Traceback (most recent call last): File "bin/mailman", line 17, in import mailman.bin.mailman ImportError: No module named mailman.bin.mailman From dave at fiteyes.com Fri May 4 06:39:17 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 00:39:17 -0400 Subject: [Mailman-Developers] problem installing Mailman 3.0 beta1 - no vardirectory created during install In-Reply-To: References: Message-ID: On Fri, May 4, 2012 at 12:32 AM, David wrote: > > > On Fri, May 4, 2012 at 12:22 AM, Mark Sapiro wrote: > >> David wrote: >> > >> >Here's what I did: >> > >> >export PYTHONPATH=$PYTHONPATH:/opt/mailman3/lib/python2.7/site-packages/ >> >/usr/bin/python setup.py install --prefix=/opt/mailman3 >> >> >> That's not the correct incantation. >> >> See src/mailman/docs/START.rst in the distribution tree or see >> >> >> I deleted everything and started fresh. After 30 hours of nothing but errors, the statement from the link above finally held true: "you should be done within ~5 minutes" :) Next up: "At this point Mailman will not send nor receive any real emails. But that's fine as long as you only want to work on the components related to the ReST client or the web ui." I actually want to send and receive emails. ;) From mark at msapiro.net Fri May 4 06:40:07 2012 From: mark at msapiro.net (Mark Sapiro) Date: Thu, 3 May 2012 21:40:07 -0700 Subject: [Mailman-Developers] need tutorial for setting up pythondevelopment environment on Ubuntu please In-Reply-To: Message-ID: David wrote: > >BTW, is Python 3 recommended for Mailman 3? No. Mailman 3 does not yet work with Python 3. It requires Python 2.6 or Python 2.7 >I see a bunch of stuff on >virtualenv, but if it is simpler to not user virtualenv and to just have >one version of Python installed, I'll go that direction. It's really up to you. virtualenv will allow you to isolate your Mailman 3 environment from the rest of your system so that, for example, the Django you install as part of Postorius won't conflict with other Django installs, etc ... -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From dave at fiteyes.com Fri May 4 06:43:26 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 00:43:26 -0400 Subject: [Mailman-Developers] need tutorial for setting up pythondevelopment environment on Ubuntu please In-Reply-To: References: Message-ID: On Fri, May 4, 2012 at 12:40 AM, Mark Sapiro wrote: > > David wrote: > > > >I see a bunch of stuff on > >virtualenv, but if it is simpler to not user virtualenv and to just have > >one version of Python installed, I'll go that direction. > > > It's really up to you. virtualenv will allow you to isolate your > Mailman 3 environment from the rest of your system so that, for > example, the Django you install as part of Postorius won't conflict > with other Django installs, etc ... > > I'm just using a Linode dedicated to Mailman 3.0. As far as I am concerned, the Linode is my virtual environment. I think I need to keep everything else as simple as possible. From barry at list.org Fri May 4 06:54:49 2012 From: barry at list.org (Barry Warsaw) Date: Fri, 4 May 2012 00:54:49 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: References: Message-ID: <20120504005449.18408ba6@resist.wooz.org> On May 03, 2012, at 09:20 PM, David wrote: >After a full day of stuff like this: >error: Installed distribution zope.interface 3.6.1 conflicts with >requirement zope.interface>=3.8.0 >... I need a good tutorial on setting up the development environment, >including whatever related tools are needed, to build and install Mailman >3.0. Google hasn't turned up anything very helpful yet. I appreciate any >recommendations. For me, it depends on whether you want to develop mm3 or install it. If you're going to develop it (i.e. fix bugs, work on features, etc), then it's best to use the buildout infrastructure. This is mainly because the test suite is more or less tied to buildout at the moment. So the steps to build a development environment would be: $ python bootstrap.py $ bin/buildout You'll need an internet connection so buildout can download all the stuff you need from the Cheeseshop. Once you've done that, look in bin/ for other commands you can run, such as * `bin/test` to run the test suite, or parts of it * `bin/py` to give you a Python interpreter with the 'mailman' namespace accessible, but not loaded, and the system not initialized * `bin/mailman shell` to give you an interpreter prompt with the basic system initialized (i.e. database, Zope component architecture, loggers, etc.) If instead you want to run Mailman 3, I recommend using virtualenv and skipping buildout. E.g. $ virtualenv /some/path $ source /some/path/bin/activate $ python setup.py install Now you can run `mailman info` to get some basic information about how your system is configured, `mailman start` to start the system, etc. I do recommend creating an etc/mailman.cfg to customize various aspects of Mailman before you start. Take a look at src/mailman/config/schema.cfg and .../mailman.cfg for the default settings. >BTW, is Python 3 recommended for Mailman 3? I'm using 2.7 atm. Mailman 3 is not compatible with Python 3 right now. As soon as our dependency stack is available for Python 3, I plan on porting Mailman 3 to it. That is very unlikely to happen until after 3.0 is released. For now, you can use Python 2.6 or 2.7. Cheers, -Barry From stephen at xemacs.org Fri May 4 11:36:31 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Fri, 04 May 2012 18:36:31 +0900 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: <878vh81e5c.fsf@uwakimon.sk.tsukuba.ac.jp> Richard Wackerbarth writes: > I will take the blame for any misunderstanding in this area. There's no blame to be assigned, really, unless to me for being a busybody. :-) If George is making these plans while consulting his mentor, that's what this is all about (but he didn't say that, so I stuck my nose in!) And maybe I misinterpreted the word "coding" which, as I continue to explore the GSoC documentation, seems to be a catchall for "GSoC work". It's just been my experience in supervising economics and business students' research (confirmed by a lot of the academic and practical literature on managing software development) that people facing a scheduling issue tend to skimp on planning, hoping to get lucky with a first draft and as a backup, planning to revise during implementation. This doesn't usually save time in the end, and often ends with a lower quality product. How George chooses to accomplish the planning, design, and coding, I'm happy to leave up to him (and you). I just wanted to warn against hoping that producing a plan and design more quickly than he otherwise would will save time. Time taken liberally in the early stages will conversely probably save time later. From richard at NFSNet.org Fri May 4 12:41:07 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Fri, 4 May 2012 05:41:07 -0500 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <878vh81e5c.fsf@uwakimon.sk.tsukuba.ac.jp> References: <878vh81e5c.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <43E805F3-0161-423B-B6A4-C5ACF19F6910@NFSNet.org> Steve, I am in complete agreement with your points about adequate planning. However, I rarely see large projects that do enough "research" to plan things properly from the start. Usually, a few people, who think that they understand the whole problem, make early design decisions that often become obstacles in the future. It is only after the prototype has been developed that others are able to point out weaknesses in the initial design. As such, I advocate for a planned "revise during implementation" to the extent that you schedule a reimplementation for a new generation of the product rather than continually attempting to "add on" to the previous design. Richard On May 4, 2012, at 4:36 AM, Stephen J. Turnbull wrote: > Richard Wackerbarth writes: > >> I will take the blame for any misunderstanding in this area. > > There's no blame to be assigned, really, unless to me for being a > busybody. :-) If George is making these plans while consulting his > mentor, that's what this is all about (but he didn't say that, so I > stuck my nose in!) And maybe I misinterpreted the word "coding" > which, as I continue to explore the GSoC documentation, seems to be a > catchall for "GSoC work". > > It's just been my experience in supervising economics and business > students' research (confirmed by a lot of the academic and practical > literature on managing software development) that people facing a > scheduling issue tend to skimp on planning, hoping to get lucky with a > first draft and as a backup, planning to revise during implementation. > This doesn't usually save time in the end, and often ends with a lower > quality product. > > How George chooses to accomplish the planning, design, and coding, I'm > happy to leave up to him (and you). I just wanted to warn against > hoping that producing a plan and design more quickly than he otherwise > would will save time. Time taken liberally in the early stages will > conversely probably save time later. From sophron at latthi.com Fri May 4 13:34:32 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Fri, 4 May 2012 14:34:32 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: Hello Stephen, > On Thu, May 3, 2012 at 8:04 AM, George Chatzisofroniou > wrote: > >> I?m also thinking to rearrange the GSoC schedule a bit. I?ll start >> writing code on the bonding period, > > It's up to your coding mentors, but it's generally not a good idea to > try to move up the coding stage by too much. ?Make sure you have a > clear spec before you start coding anything, and at least a rough > sketch of a design. ?Without those two pieces, there's no standard to > evaluate progress, or whether your code is doing the right thing. > As wacky mentioned i'm not planning to skip any step of the process. The idea is to press myself a bit more now, so i can have some more time to study later. I should have explained myself better. >> so i can have more time during my >> university?s exams (starting on half of June). > > I'd say just take the time as needed, after negotiating with your mentors. > >> Settings >> >> The Django app should handle some configuration parameters, like: >> >> - Maximum number of the subscribers of a mailing list the user wants >> to be shown in the charts > > I don't know how feasible it would be to implement, but if you're > willing to use AJAX, you could simply build up bar and line charts on > the fly, adding "slices" of say 5 users at a time on the right side of > the chart in progress. ?That might be cool. ?It could be set in a > "viewport" and scrolled if it gets too big for the viewport. Yes, AJAX can do the job here. I will implement the AJAX bar as you described, although i think it's better to primarily have a non-Javascript output. > > >> - Month ? This model will store total posts and threads for each month >> - Year ? Similar to month model, this one will store total posts and >> threads for each year > > It's not clear to me why year views can't be generated as an aggregate > of monthly data? ?This would allow years to start with arbitrary > months without too much redundancy. Generating the year views from monthly data is some more calculations while displaying the metrics. That's why they should be stored somewhere. > >> Interface to the MM core >> >> The app needs to interact with the Mailman core. I think the best idea >> is to implement a message bus that will send a notification every time >> a message is sent (the same way an archiver works). > > Why not just use the iArchiver interface? > > I think it should be possible to have this be a standalone app serving > the list itself, or be hosted by a particular archive, which wouldn't > need to be the list host (or even run by the same organization). Yes, i agree. The iArchiver should be the origin of the interface. Thank you for your feedback, -- George Chatzisofroniou sophron.latthi.com From stephen at xemacs.org Fri May 4 14:44:24 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Fri, 04 May 2012 21:44:24 +0900 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <43E805F3-0161-423B-B6A4-C5ACF19F6910@NFSNet.org> References: <878vh81e5c.fsf@uwakimon.sk.tsukuba.ac.jp> <43E805F3-0161-423B-B6A4-C5ACF19F6910@NFSNet.org> Message-ID: <874nrw15g7.fsf@uwakimon.sk.tsukuba.ac.jp> Richard Wackerbarth writes: > Usually, a few people, who think that they understand the whole > problem, make early design decisions that often become obstacles in > the future. It is only after the prototype has been developed that > others are able to point out weaknesses in the initial design. I bow to your superior experience in the field (there are no "large projects" needed in mine! ;-) > As such, I advocate for a planned "revise during implementation" to > the extent that you schedule a reimplementation for a new > generation of the product rather than continually attempting to > "add on" to the previous design. I see. So the idea is that that's the stage that George is at anyway? He "built one to throw away", and now it's time to progress to the reimplementation? (I forgot about that aspect; indeed, the fact that he's already built a project similar to this one should speed up the planning and design stage.) From stephen at xemacs.org Fri May 4 15:06:07 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Fri, 04 May 2012 22:06:07 +0900 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: <87397g14g0.fsf@uwakimon.sk.tsukuba.ac.jp> George Chatzisofroniou writes: > > It's not clear to me why year views can't be generated as an aggregate > > of monthly data? ?This would allow years to start with arbitrary > > months without too much redundancy. > > Generating the year views from monthly data is some more calculations > while displaying the metrics. That's why they should be stored > somewhere. OK, but these are pretty cheap calculations if I understand Django's design correctly. Which design do you think is simpler, in the context of your overall plan? From sophron at latthi.com Fri May 4 15:45:47 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Fri, 4 May 2012 16:45:47 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <87397g14g0.fsf@uwakimon.sk.tsukuba.ac.jp> References: <87397g14g0.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: On Fri, May 4, 2012 at 4:06 PM, Stephen J. Turnbull wrote: > OK, but these are pretty cheap calculations if I understand Django's > design correctly. Yes, these are cheap calculations. Although, the number of calculations is based on the years of list's existence (e.g. a 10 year list would need 10 calculations). > Which design do you think is simpler, in the context of your overall > plan? I think it's simpler to just add a year model. I would like to hear more opinions on this issue. -- George Chatzisofroniou sophron.latthi.com From barry at list.org Fri May 4 16:07:14 2012 From: barry at list.org (Barry Warsaw) Date: Fri, 4 May 2012 10:07:14 -0400 Subject: [Mailman-Developers] problem installing Mailman 3.0 beta1 - no var directory created during install In-Reply-To: References: Message-ID: <20120504100714.6a4ee7f9@limelight.wooz.org> On May 03, 2012, at 02:49 PM, David wrote: >I installed it but I didn't get a var directory at all. (On the chance that >it is created only after starting Mailman the first time, I tried to start >it but that didn't work either.) The last line of the installation output Correct. The var directory (and database, etc.) don't get created until the first time Mailman "starts", but my recommendation is to run $ bin/mailman info to get that initial file system layout, including the var dir. You might want to create your mailman.cfg file first though. After you've run the info command and seen where it's putting things, adjust your mailman.cfg file accordingly. When you're happy with it, then you can run 'start' to get the runners going. Cheers, -Barry From dave at fiteyes.com Fri May 4 20:10:10 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 14:10:10 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: <20120504005449.18408ba6@resist.wooz.org> References: <20120504005449.18408ba6@resist.wooz.org> Message-ID: On Fri, May 4, 2012 at 12:54 AM, Barry Warsaw wrote: > On May 03, 2012, at 09:20 PM, David wrote: > > >... I need a good tutorial on setting up the development environment, > > For me, it depends on whether you want to develop mm3 or install it. > I want to install and run it and play with it like a user. I'm not a python developer (at least not yet, and not sure if I'll ever get that far). > If instead you want to run Mailman 3, I recommend using virtualenv and > skipping buildout. > OK. Thanks for the advice. I'll detail my steps in case it helps someone else. (I also have a few questions mixed in below.) Here's what I did: install Ubuntu 12.04 create DNS records ssh into Ubuntu server sudo apt-get install build-essential python-dev python-virtualenv cd /opt/ wget https://launchpad.net/mailman/3.0/3.0.0b1/+download/mailman-3.0.0b1.tar.gz tar -xf mailman-3.0.0b1.tar.gz mkdir mailman3 (for virtualenv - see note below about correcting my directory names; this should have been named mailman3_venv) # virtualenv /opt/mailman3/ (New python executable in /opt/mailman3/bin/python) I do recommend creating an etc/mailman.cfg to customize various aspects of > Mailman before you start. Take a look at src/mailman/config/schema.cfg and > .../mailman.cfg for the default settings. > # nano /etc/mailman.cfg done sudo apt-get install postfix openssl-blacklist ssl-cert # nano /etc/postfix/main.cf ***************** QUESTION ********************* Are the following paths correct??? transport_maps = hash:/opt/mailman3/var/data/postfix_lmtp local_recipient_maps = hash:/opt/mailman3/var/data/postfix_lmtp ******************************************************* After modifying main.cf, be sure to run '/etc/init.d/postfix reload'. root at li437-28:/etc/postfix# /etc/init.d/postfix reload * Reloading Postfix configuration... [ OK ] # source /opt/mailman3/bin/activate python setup.py install Finished processing dependencies for mailman==3.0.0b1 NOTE: After doing all this, I see that I named my directories wrong. I think I'll repeat it and name the extracted tarball directory mailman3/ and the virtualenv directory mailman3_venv/ next time. Now you can run `mailman info` to get some basic information about how your > system is configured, (mailman3)root at localhost:/opt/mailman-3.0.0b1# mailman info GNU Mailman 3.0.0b1 (The Twilight Zone) Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] config file: /etc/mailman.cfg db url: sqlite:////opt/mailman-3.0.0b1/var/data/mailman.db REST root url: http://mailman3.example.com:80/3.0/ REST credentials: yyyyyyyyyyyy:xxxxxxxxxxxxx > `mailman start` to start the system, etc. > (mailman3)root at li437-28:/opt/mailman-3.0.0b1# mailman start Starting Mailman's master runner Cheers, > -Barry > Thank you! That's a great help. I also came across this useful tutorial: Python Ecosystem - An Introduction http://mirnazim.org/writings/python-ecosystem-introduction/ Next Questions: 1. what are the first tests I should perform after starting mailman? 2. a tutorial for setting up Posterious? Thanks again. From dave at fiteyes.com Fri May 4 21:27:48 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 15:27:48 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: References: <20120504005449.18408ba6@resist.wooz.org> Message-ID: On Fri, May 4, 2012 at 2:10 PM, David wrote: > > I also came across this useful tutorial: > Python Ecosystem - An Introduction > http://mirnazim.org/writings/python-ecosystem-introduction/ > Now I found this too: http://wiki.list.org/display/DEV/mailman3+in+virtualenv - Added by Toshio Kuratomi, last edited by Toshio Kuratomion Mar 12, 2012 * Download all sources by bzr branching:: - lp:mailman - lp:mailmanweb - lp:mailman.client - lp:django_dev_setup - http://bazaar.launchpad.net/~flo-fuchs/mailmanweb/django_dev_setup/ * Create virtualenv and install django $ virtualenv mm3 $ cd mm3 $ source bin/activate $ easy_install django * Import mailman3 sources $ cp ~/path/to/source/downloaded . * Build mailman3: $ cd mailman $ python bootstrap.py $ bin/buildout $ bin/test ## Some seems to be failing * Start Mailman: $ bin/mailman start $ cd .. # Ran into this error when running with sqlite: https://bugs.launchpad.net/mailman/+bug/246867 Changed to postgres according to docs in DATABASE.rst * Install mailman client $ cd mailman.client $ python setup.py develop $ cd .. * Install the mailman web $ cd mailmanweb $ python setup.py develop $ cd .. * Start the project $ cd django_dev_setup $ python manage.py syncdb $ python manage.py runserver From dave at fiteyes.com Fri May 4 21:51:56 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 15:51:56 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: References: <20120504005449.18408ba6@resist.wooz.org> Message-ID: On Fri, May 4, 2012 at 2:10 PM, David wrote: > Next Questions: > 1. what are the first tests I should perform after starting mailman? > 2. a tutorial for setting up Posterious? > > Following this guide: http://wiki.list.org/display/DEV/A+5+minute+guide+to+get+the+Mailman+web+UI+running I did these steps: wget http://www.djangoproject.com/download/1.4/tarball/ -O Django-1.4.tar.gz tar xzvf Django-1.4.tar.gz *Question*: could I have instead used # apt-get install python-django python-django-social-auth wget https://launchpad.net/postorius/trunk/1.0.0a1/+download/postorius-1.0.0a.tar.gz tar xf postorius-1.0.0a.tar.gz source /opt/mailman3/bin/activate /opt/mailman-3.0.0b1# mailman start cd Django-1.4 sudo python setup.py install # cd postorius/ sudo python setup.py develop *Question*: How do I test that these steps have worked so far? Next, the guide ( http://wiki.list.org/display/DEV/A+5+minute+guide+to+get+the+Mailman+web+UI+running) mentions: > Start the development server > $ cd dev_setup > $ python manage.py syncdb > $ python manage.py runserver > > The last command will start the dev server on http://localhost:8000 > I don't have a dev_setup directory. Also, I want to start the Web GUI on port 80 for public access via apache. The following page is empty: How to get Postorius running on Apache and mod_wsgi http://wiki.list.org/display/DEV/How+to+get+Postorius+running+on+Apache+and+mod_wsgi From richard at NFSNet.org Fri May 4 22:01:40 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Fri, 4 May 2012 15:01:40 -0500 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: References: <20120504005449.18408ba6@resist.wooz.org> Message-ID: <6057AC92-0D4B-4B86-8BDB-39A9F1E0B81F@NFSNet.org> > I don't have a dev_setup directory. Also, I want to start the Web GUI on > port 80 for public access via apache. > > The following page is empty: > How to get Postorius running on Apache and mod_wsgi > http://wiki.list.org/display/DEV/How+to+get+Postorius+running+on+Apache+and+mod_wsgi David, Postorius is just a Django-based website that communicates with MM3. To deploy it, find, and follow, the directions which apply to any website powered by Django. However, I should warn you that Postorius is not as far along in its development as is the core parts that handle mail. In fact, at this time, there are so many things missing that you will be disappointed if you attempt to make the interface publicly visible. Perhaps it is premature for you to attempt to work with this early development release. Richard From dave at fiteyes.com Fri May 4 22:06:52 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 16:06:52 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: <6057AC92-0D4B-4B86-8BDB-39A9F1E0B81F@NFSNet.org> References: <20120504005449.18408ba6@resist.wooz.org> <6057AC92-0D4B-4B86-8BDB-39A9F1E0B81F@NFSNet.org> Message-ID: On Fri, May 4, 2012 at 4:01 PM, Richard Wackerbarth wrote: > > Perhaps it is premature for you to attempt to work with this early > development release. > Yes, it may be. :) But I have not gotten to the point of giving up just yet. From barry at list.org Fri May 4 22:22:16 2012 From: barry at list.org (Barry Warsaw) Date: Fri, 4 May 2012 16:22:16 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: References: <20120504005449.18408ba6@resist.wooz.org> Message-ID: <20120504162216.70444629@resist.wooz.org> On May 04, 2012, at 02:10 PM, David wrote: >Next Questions: >1. what are the first tests I should perform after starting mailman? Try creating a mailing list from the command line: $ mailman create -d mylist at example.com Subscribe some addresses to mylist. Edit a file with a list of email addresses and names using one of these formats, one entry per line: anne at example.com (Anne Person) Bart Person then run $ mailman members -a filename.txt mylist at example.com Now start up Mailman, your MTA and send a message to mylist at example.com. All the members you just added should get a copy. Check your MTA logs and Mailman's own logs for details or problems. Cheers, -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: not available URL: From geoff at QuiteLikely.com Fri May 4 23:17:49 2012 From: geoff at QuiteLikely.com (Geoff Shang) Date: Sat, 5 May 2012 00:17:49 +0300 (IDT) Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: On Fri, 4 May 2012, George Chatzisofroniou wrote: >> On Thu, May 3, 2012 at 8:04 AM, George Chatzisofroniou >> wrote: >> >> I don't know how feasible it would be to implement, but if you're >> willing to use AJAX, you could simply build up bar and line charts on >> the fly, adding "slices" of say 5 users at a time on the right side of >> the chart in progress. ?That might be cool. ?It could be set in a >> "viewport" and scrolled if it gets too big for the viewport. > > Yes, AJAX can do the job here. I will implement the AJAX bar as you > described, although i think it's better to primarily have a > non-Javascript output. I would just like to restate my plea for the ability to manage Mailman without needing javascript. Note that I'm not saying don't use any, I'm merely asking for it to be possible to use without it. I use lynx as my primary browser, and while general web surfing can be a bit tricky these days, it's very quick and useful for doing admin-type things, and I for one would like to be able to continue to do so. Certainly I have no problems using Mailman 2'.1's interface with lynx, and have been doing so for many years. If my memory serves me correctly, this was generally felt to be a reasonable request when I first mentioned it. I'm sure it's in the archives somewhere. Geoff. From sophron at latthi.com Fri May 4 23:37:26 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Sat, 5 May 2012 00:37:26 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: Hello Geoff, On Sat, May 5, 2012 at 12:17 AM, Geoff Shang wrote: > > I would just like to restate my plea for the ability to manage Mailman > without needing javascript. ?Note that I'm not saying don't use any, I'm > merely asking for it to be possible to use without it. > > I use lynx as my primary browser, and while general web surfing can be a bit > tricky these days, it's very quick and useful for doing admin-type things, > and I for one would like to be able to continue to do so. Certainly I have > no problems using Mailman 2'.1's interface with lynx, and have been doing so > for many years. > > If my memory serves me correctly, this was generally felt to be a reasonable > request when I first mentioned it. ?I'm sure it's in the archives somewhere. > Yes, i also agree with you. That's why i mentioned a "primarily non-Javascript output". -- George Chatzisofroniou sophron.latthi.com From dave at fiteyes.com Sat May 5 00:48:40 2012 From: dave at fiteyes.com (David) Date: Fri, 4 May 2012 18:48:40 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: <20120504162216.70444629@resist.wooz.org> References: <20120504005449.18408ba6@resist.wooz.org> <20120504162216.70444629@resist.wooz.org> Message-ID: On Fri, May 4, 2012 at 4:22 PM, Barry Warsaw wrote: > On May 04, 2012, at 02:10 PM, David wrote: > > Now start up Mailman, your MTA Good up to that point. What is the method for generating aliases for Postfix in Mailman 3? This doesn't help me: http://packages.python.org/mailman/src/mailman/commands/docs/aliases.html And I can't determine where the output of # mailman aliases goes. It doesn't go to stdout or into /etc/aliases (not that I really expected it to). From terri at zone12.com Sat May 5 00:52:26 2012 From: terri at zone12.com (Terri Oda) Date: Fri, 04 May 2012 16:52:26 -0600 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: <4FA45DAA.1020409@zone12.com> On 12-05-04 3:17 PM, Geoff Shang wrote: > I would just like to restate my plea for the ability to manage Mailman > without needing javascript. Note that I'm not saying don't use any, > I'm merely asking for it to be possible to use without it. > This is totally a reasonable request, but I'd like to point out that what George is doing is not really on the management path. If people without JavaScript can't see his graph prototypes ... oh well. Just put up a note saying JavaScript is required for metrics. Not a big deal as long as it doesn't break other functionality. So... If AJAX is the fastest way to get some initial prototypes going, that's a good place to start. If you want to do something else, go for that! But with the compressed GSoC schedule, I want to make sure that George spends most of his time working on on the 90% of the project that's faster and fun and interesting, rather than spending inordinate amounts of time in that 10% that involves the harder finicky bits like testing in IE4. It's always a good idea to discuss this stuff and to consider backwards compatibility, but as an experienced GSoC mentor I've seen a few GSoC projects fall off the rails due to starting with the 10% and never reaching the 90%. There just isn't enough time in the 12 weeks. So as one of George's mentors I'm going to encourage him to focus on making beautiful things. No fiddly bits 'till after midterms at the earliest, and it is a-ok to just leave some of that stuff for the rest of the dev team to figure out later. Terri From p at state-of-mind.de Sat May 5 07:39:27 2012 From: p at state-of-mind.de (Patrick Ben Koetter) Date: Sat, 5 May 2012 07:39:27 +0200 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: References: <20120504005449.18408ba6@resist.wooz.org> <20120504162216.70444629@resist.wooz.org> Message-ID: <20120505053926.GA718@state-of-mind.de> * David : > On Fri, May 4, 2012 at 4:22 PM, Barry Warsaw wrote: > > > On May 04, 2012, at 02:10 PM, David wrote: > > > > Now start up Mailman, your MTA > > > Good up to that point. What is the method for generating aliases for > Postfix in Mailman 3? This has changed im MM3. Postfix now delivers ML mails to MM3 via LMTP. -> http://wiki.list.org/display/DEV/LMTP+process -- state of mind () http://www.state-of-mind.de Franziskanerstra?e 15 Telefon +49 89 3090 4664 81669 M?nchen Telefax +49 89 3090 4666 Amtsgericht M?nchen Partnerschaftsregister PR 563 From stephen at xemacs.org Sat May 5 17:21:39 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Sun, 06 May 2012 00:21:39 +0900 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <4FA45DAA.1020409@zone12.com> References: <4FA45DAA.1020409@zone12.com> Message-ID: <871umy1wn0.fsf@uwakimon.sk.tsukuba.ac.jp> Terri Oda writes: > So... If AJAX is the fastest way to get some initial prototypes going, > that's a good place to start. As the author of the original suggestion about AJAXing the charts, I don't actually think it is the easiest way. I think it's easier to just generate a fixed-size chart and slam it in as an , and generally good enough for the purpose. The point of the suggestion was the coolness (IMHO) and robustness (to window resizes and the like) of charts that expand to fit the width of the window by adding data for more items (users, Months, whatever), *without* asking the user to fill in a form to say how wide, just resize the browser window. It should be possible to do this with CSS or similar, but then you'd need to generate a chart as wide as you think anyone could want and serve that to everybody. If you and George disagree with me on the coolness factor, great! I'll be looking forward to some beautiful thigns I didn't imagine! From dave at fiteyes.com Sat May 5 20:03:39 2012 From: dave at fiteyes.com (David) Date: Sat, 5 May 2012 14:03:39 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: <6057AC92-0D4B-4B86-8BDB-39A9F1E0B81F@NFSNet.org> References: <20120504005449.18408ba6@resist.wooz.org> <6057AC92-0D4B-4B86-8BDB-39A9F1E0B81F@NFSNet.org> Message-ID: On Fri, May 4, 2012 at 4:01 PM, Richard Wackerbarth wrote: > > Perhaps it is premature for you to attempt to work with this early > development release. > Now I'm finally ready to admit defeat. But thanks for all the help. I learned a lot of useful things from this. I'll give Mailman 3 another try a bit later (maybe in a few days even, but most likely after development has proceeded to the point where you are ready for real end-user testing). I'll get back to focusing on Mailman 2.1.14 now. From f at state-of-mind.de Sat May 5 20:27:52 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Sat, 05 May 2012 20:27:52 +0200 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <871umy1wn0.fsf@uwakimon.sk.tsukuba.ac.jp> References: <4FA45DAA.1020409@zone12.com> <871umy1wn0.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <4FA57128.4020703@state-of-mind.de> Am 05.05.12 17:21, schrieb Stephen J. Turnbull: > Terri Oda writes: > > > So... If AJAX is the fastest way to get some initial prototypes going, > > that's a good place to start. > > As the author of the original suggestion about AJAXing the charts, I > don't actually think it is the easiest way. I think it's easier to > just generate a fixed-size chart and slam it in as an , and > generally good enough for the purpose. Creating JS-/AJAX-ified graphs doesn't have to be hard. There are some *really* awesome libraries out there (such as flot[1], Raphael[2] or d3[3]) that make stuff like this pretty easy. (Those three are all MIT licensed so I guess there should be no collision with the GPL?). But I would consider carefully where to use or not to use actual "AJAX" (meaning: asynchronous server requests). If there is a lot of data or if the data depends on on-the-fly user inputs (like drill-down charts) asynchronous requests are very useful. But charts can be fed from many sources and AJAX is not always the best choice. For example, the JavaScript application could read the data from a JSON string that is delivered within the page content. Or it could use HTML5 "data-" attributes. Or it could DOM-traverse an HTML table and build the chart from its contents (that one could also make a nice bare-bones fallback for non-JS browsers). As for Geoff's non-JS request: I agree that it's perfectly reasonable to ask for a non-JS version. But first let's let George be creative and have some fun. If he comes up with a visualization that gives us insights we would not get from a simple img or html table I surely wouldn't want to miss that for the sake of general JS-freeness and 100% accessibility. There's a reason modern data visualizations don't look like good ol' analog[4] stats anymore... :-) That said, there are a lot of ways to create beautiful fallback versions for non-JS (and even text-based) browsers, and we should take care of that at *some* point for sure. Cheers Florian [1] http://code.google.com/p/flot/ [2] http://raphaeljs.com, also gRaphael for analytics: http://g.raphaeljs.com [3] https://github.com/mbostock/d3/wiki/Gallery [4] http://www.analog.cx From barry at list.org Sat May 5 22:04:30 2012 From: barry at list.org (Barry Warsaw) Date: Sat, 5 May 2012 16:04:30 -0400 Subject: [Mailman-Developers] need tutorial for setting up python development environment on Ubuntu please In-Reply-To: <20120505053926.GA718@state-of-mind.de> References: <20120504005449.18408ba6@resist.wooz.org> <20120504162216.70444629@resist.wooz.org> <20120505053926.GA718@state-of-mind.de> Message-ID: <20120505160430.06621f2b@limelight.wooz.org> On May 05, 2012, at 07:39 AM, Patrick Ben Koetter wrote: >* David : >> On Fri, May 4, 2012 at 4:22 PM, Barry Warsaw wrote: >> >> > On May 04, 2012, at 02:10 PM, David wrote: >> > >> > Now start up Mailman, your MTA >> >> >> Good up to that point. What is the method for generating aliases for >> Postfix in Mailman 3? > >This has changed im MM3. Postfix now delivers ML mails to MM3 via LMTP. >-> http://wiki.list.org/display/DEV/LMTP+process While true, you probably still need to set up some aliases for the MTA to accept messages destined for any of a mailing list's addresses. Look in schema.cfg for the [mta]incoming and [mta]postfix_map_cmd values. It should already be set up to use Postfix by default. I'd happily accept patches to support any other open source MTA. Cheers, -Barry From barry at list.org Sat May 5 22:26:28 2012 From: barry at list.org (Barry Warsaw) Date: Sat, 5 May 2012 16:26:28 -0400 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: Message-ID: <20120505162628.4fed030f@limelight.wooz.org> On May 03, 2012, at 02:04 AM, George Chatzisofroniou wrote: >Interface to the MM core > >The app needs to interact with the Mailman core. I think the best idea >is to implement a message bus that will send a notification every time >a message is sent (the same way an archiver works). Based on this >notification -which will carry the information about the sent message- >the app will be ready to update the counts. > >Although, in some cases (eg the app is installed after an existing >archive or there was an unexpected crash), the message bus should >deliver (triggered by a button) more than one notifications (for the >whole archive) to the app in order to initialize/recover the metrics. >In those cases, the models will be initialized and the generation of >the metrics will start over. Do you know exactly what kind of information you need? The suggestion to use the IArchiver interface is convenient, but might not tell you much other than who posted what to which list on what date. It won't tell you things like the number of recipients, how long that message took to deliver, if there were any failures, etc. The core does know this, and in fact logs it, but all you get at the IArchiver interface is the posted message. It would certainly be possible to hook in a zope.event notification with those metrics for each successfully posted message. From there, a plugin could register a subscriber that put the event data on a message bus. Or you could grep the logs. :) Anyway, I think it would be useful to improve the support for this in the core. Cheers, -Barry From sophron at latthi.com Sun May 6 17:43:54 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Sun, 6 May 2012 18:43:54 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <20120505162628.4fed030f@limelight.wooz.org> References: <20120505162628.4fed030f@limelight.wooz.org> Message-ID: On Sat, May 5, 2012 at 11:26 PM, Barry Warsaw wrote: > Do you know exactly what kind of information you need? With my current implementation plan i only need author and date of the message to export my metrics. > The suggestion to use the IArchiver interface is convenient, but might not > tell you much other than who posted what to which list on what date. ?It won't > tell you things like the number of recipients, how long that message took to > deliver, if there were any failures, etc. Some of the things you mentioned sound pretty interesting and it would great to be on the metrics. > It would certainly be possible to hook in a zope.event notification with those > metrics for each successfully posted message. ?From there, a plugin could > register a subscriber that put the event data on a message bus. ?Or you could > grep the logs. :) Hooking the zope.event notification sounds good. > Anyway, I think it would be useful to improve the support for this in the > core. I'd like that! I'll come up with another more-detailed report this week. Thanks Barry! -- George Chatzisofroniou sophron.latthi.com From sophron at latthi.com Thu May 10 01:02:35 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Thu, 10 May 2012 02:02:35 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: <20120505162628.4fed030f@limelight.wooz.org> Message-ID: Hello, I'm posting some additional details of my outline for this week. For an easier reading please read it in my blog [1]. -- Following a ?top-down design? methodology, i came up with additional detail of my design concept. What information is stored? As i have already mentioned the information is stored in Django models. Author This model represents an author of the mailing list. It mostly keeps track of the number of postings and number of threads started. It has the following fields: mail ? CharField (Mail address of the author) totalmails ? IntegerField totalthreads ? IntegerField firstmsgdate ? DateTimeField lastmsgdate ? DateTimeField MailingList This model counts the total number of postings and threads started. totalmails ? IntegerField totalthreads ? IntegerField Month This model associates the author and the mailing list with each month. author ? ForeignKey month ? CharField postscount ? IntegerField threadscount ? IntegerField mailinglist ? Boolean (if this is true it corresponds to the whole mailing list) Year This model is similar to month. It has a year field instead of a month field. What happens when a new email is posted to the list? - The IArchiver interface will grab the email and send it to the Metrics class. - The Metrics class will update the models: * If the author is sending to the mailing list for the first time, A new Author row will be created to the database. Otherwise, the Posts field will increase by one. - Also, the corresponding row of the two foreign fields (Month and Year) will also increase by one. * The Posts field of the Mailing List model (as well as the the related rows on the Month and Year models) will increase by one. What happens when a user requests the Metrics page? Django will generate a page based on the current models that outputs: - On top, general metrics about total authors, total mails and total threads, based on the MailingList model and below some charts (AJAX based) that represents this information - The authors of the mailing list ordered by the number of their total posts, after the general metrics. Each user will correspond to a more specific page with information like date of first and last message on top and a chart on his overall activity below. What will happen if the app is installed after an existing archive or something crashes on the system? How do the metrics are being recovered? For this case there should be a special ?Generate? button in the admin page. When this button is pressed, the class ?Generate? will be triggered and: - The Django models will be initialized (the metrics will go back to zero). A progress bar will inform the administrator that the operation is being held. - All the messages of the archive will be parsed by performing a direct Python call to the IArchiver. Another instance to the IArchiver will grab any mails sent while the parsing is going on and store them to a text file. - The metrics will be generated from scratch. - The mails stored to the text file will be added to the metrics - The administrator will be informed with a success message when the process is over. -- [1]: http://sophron.latthi.com/gsoc-mailman/?p=27 -- George Chatzisofroniou sophron.latthi.com From msk at cloudmark.com Fri May 11 01:38:01 2012 From: msk at cloudmark.com (Murray S. Kucherawy) Date: Thu, 10 May 2012 23:38:01 +0000 Subject: [Mailman-Developers] Presenting on anti-abuse developments In-Reply-To: <9452079D1A51524AA5749AD23E0039280C6A46@exch-mbx901.corp.cloudmark.com> References: <9452079D1A51524AA5749AD23E0039280C6A46@exch-mbx901.corp.cloudmark.com> Message-ID: <9452079D1A51524AA5749AD23E00392811DA1D@exch-mbx901.corp.cloudmark.com> > -----Original Message----- > From: mailman-developers-bounces+msk=cloudmark.com at python.org [mailto:mailman-developers-bounces+msk=cloudmark.com at python.org] On > Behalf Of Murray S. Kucherawy > Sent: Monday, April 02, 2012 2:59 PM > To: mailman-developers at python.org > Subject: [Mailman-Developers] Presenting on anti-abuse developments > > Hi all, > > One of the hats I wear these days is technical committee co-chair for > the Messaging Anti-Abuse Working Group (MAAWG). I'm looking to fill > slots for our Berlin (June) and Baltimore (October) conferences. > > If someone on the mailman development team would like to come and speak > about developments and features of Mailman (especially the new version) > that try to deal with abuse mitigation issues, please contact me off- > list. I have a request in to the executive director to find out what > support we offer to speakers in terms of expenses, etc., so I'll pass > that on once I have it to anyone that replies. I'd like to repeat this invitation. We've filled our slots for Berlin, but I have three available for Baltimore and I think any information you'd like to share on anti-abuse measures going into Mailman v3 would be of great interest. The slots are an hour long each. If you don't think you could fill that time, I can possibly pair you up with another half-session. If you'd like to make a proposal, feel free to say so here or off-list. M. S. Kucherawy MAAWG Technical Co-chair, Messaging From stf.list.mailman.dev at eisenbits.com Sun May 13 22:29:34 2012 From: stf.list.mailman.dev at eisenbits.com (=?UTF-8?B?U3RhbmlzxYJhdyBGaW5kZWlzZW4=?=) Date: Sun, 13 May 2012 22:29:34 +0200 Subject: [Mailman-Developers] administrative mail subject lines Message-ID: <4FB019AE.5000103@eisenbits.com> Hi! I am running a list. available_languages is set to English (USA) and Polish, and it looks that subject lines of list subscription request (those that I need to approve) e-mails are in those 2 languages. Perhaps this depends on the language the subscribing user has selected. The body is English every time. Moreover, those Polish subject lines are distorted. It looks that they contain some Unicode/whatever but are not encoded at all; and the mail header contains: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Looks like 2 bugs? -- http://people.eisenbits.com/~stf/ http://www.eisenbits.com/ OpenPGP: E3D9 C030 88F5 D254 434C 6683 17DD 22A0 8A3B 5CC0 From stf.list.mailman.dev at eisenbits.com Sun May 13 22:36:59 2012 From: stf.list.mailman.dev at eisenbits.com (=?UTF-8?B?U3RhbmlzxYJhdyBGaW5kZWlzZW4=?=) Date: Sun, 13 May 2012 22:36:59 +0200 Subject: [Mailman-Developers] subscription notification mail body Message-ID: <4FB01B6B.2050106@eisenbits.com> Hi Subscription notification mail body is also distorted sometimes: I just received one for a new subscriber who used a diacritic in his name. There is '?' (ASCII 0x3F) instead of the character with diacritic. -- http://people.eisenbits.com/~stf/ http://www.eisenbits.com/ OpenPGP: E3D9 C030 88F5 D254 434C 6683 17DD 22A0 8A3B 5CC0 From mark at msapiro.net Mon May 14 01:51:33 2012 From: mark at msapiro.net (Mark Sapiro) Date: Sun, 13 May 2012 16:51:33 -0700 Subject: [Mailman-Developers] administrative mail subject lines In-Reply-To: <4FB019AE.5000103@eisenbits.com> Message-ID: Stanislaw Findeisen wrote: > >I am running a list. available_languages is set to English (USA) and >Polish, and it looks that subject lines of list subscription request >(those that I need to approve) e-mails are in those 2 languages. Perhaps >this depends on the language the subscribing user has selected. The body >is English every time. The body is in the list's preferred language. I believe this is as it should be. If subscription is via the web, the subject is in the user's selected language. I think this is a bug. I think it should be in the list's preferred language. >Moreover, those Polish subject lines are distorted. It looks that they >contain some Unicode/whatever but are not encoded at all; and the mail >header contains: > >Content-Type: text/plain; charset="us-ascii" >Content-Transfer-Encoding: 7bit The Content-Type and Content-Transfer-Encoding headers refer to the message body which in this case is English and US-ASCII so they are correct. If any message header (e.g. Subject:) contains non-ascii, it must be RFC2047 encoded (or possibly in the case of parameters, RFC 2231 encoded). It seems we are not doing this, so this is also a bug. Thanks for reporting. -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From mark at msapiro.net Mon May 14 01:58:51 2012 From: mark at msapiro.net (Mark Sapiro) Date: Sun, 13 May 2012 16:58:51 -0700 Subject: [Mailman-Developers] subscription notification mail body In-Reply-To: <4FB01B6B.2050106@eisenbits.com> Message-ID: Stanislaw Findeisen wrote: > >Subscription notification mail body is also distorted sometimes: I just >received one for a new subscriber who used a diacritic in his name. >There is '?' (ASCII 0x3F) instead of the character with diacritic. I think this is because your list's preferred language is English and Mailman's character set for English is us-ascii so the message body is coerced to ascii and non-ascii characters get replaced by '?'. If this is a serious issue, you can change Mailman's character set for English to UTF-8 by putting add_language('en', 'English (USA)', 'utf-8', 'ltr') in mm_cfg.py. -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From mark at msapiro.net Mon May 14 04:21:03 2012 From: mark at msapiro.net (Mark Sapiro) Date: Sun, 13 May 2012 19:21:03 -0700 Subject: [Mailman-Developers] administrative mail subject lines In-Reply-To: Message-ID: Mark Sapiro wrote: > >The body is in the list's preferred language. I believe this is as it >should be. If subscription is via the web, the subject is in the >user's selected language. I think this is a bug. I think it should be >in the list's preferred language. See and . >If any message header (e.g. Subject:) contains non-ascii, it must be >RFC2047 encoded (or possibly in the case of parameters, RFC 2231 >encoded). It seems we are not doing this, so this is also a bug. This is actually related to the first issue. The user's language is Polish and the Subject gets erroneously translated to Polish, but the message is sent as an English language message so the Subject is assumed to be ascii and is not encoded. I think the fix at rev. 1353 takes care of both issues. -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From stf.list.mailman.dev at eisenbits.com Mon May 14 08:42:19 2012 From: stf.list.mailman.dev at eisenbits.com (=?UTF-8?B?U3RhbmlzxYJhdyBGaW5kZWlzZW4=?=) Date: Mon, 14 May 2012 08:42:19 +0200 Subject: [Mailman-Developers] subscription notification mail body In-Reply-To: References: Message-ID: <4FB0A94B.6060904@eisenbits.com> On 2012-05-14 01:58, Mark Sapiro wrote: > Stanislaw Findeisen wrote: >> >> Subscription notification mail body is also distorted sometimes: I just >> received one for a new subscriber who used a diacritic in his name. >> There is '?' (ASCII 0x3F) instead of the character with diacritic. > > > I think this is because your list's preferred language is English and > Mailman's character set for English is us-ascii so the message body is > coerced to ascii and non-ascii characters get replaced by '?'. > > If this is a serious issue, you can change Mailman's character set for > English to UTF-8 by putting > > add_language('en', 'English (USA)', 'utf-8', 'ltr') > > in mm_cfg.py. Why don't we use utf-8 for all languages in Defaults.py? -- http://people.eisenbits.com/~stf/ http://www.eisenbits.com/ OpenPGP: E3D9 C030 88F5 D254 434C 6683 17DD 22A0 8A3B 5CC0 From mark at msapiro.net Mon May 14 14:54:02 2012 From: mark at msapiro.net (Mark Sapiro) Date: Mon, 14 May 2012 05:54:02 -0700 Subject: [Mailman-Developers] subscription notification mail body In-Reply-To: <4FB0A94B.6060904@eisenbits.com> References: <4FB0A94B.6060904@eisenbits.com> Message-ID: "Stanis?aw Findeisen" wrote: > >Why don't we use utf-8 for all languages in Defaults.py? We don't do it for English because of superstitious fear that it will break something for someone. For non-english the translator determines the character set, and just changing to utf-8 only works for English because ASCII is a proper subset of utf-8. -- Mark Sapiro Sent from my Android phone with K-9 Mail. Please excuse my brevity. From barry at list.org Mon May 14 16:39:14 2012 From: barry at list.org (Barry Warsaw) Date: Mon, 14 May 2012 10:39:14 -0400 Subject: [Mailman-Developers] subscription notification mail body In-Reply-To: <4FB0A94B.6060904@eisenbits.com> References: <4FB0A94B.6060904@eisenbits.com> Message-ID: <20120514103914.5adfcc6f@limelight.wooz.org> On May 14, 2012, at 08:42 AM, Stanis?aw Findeisen wrote: >On 2012-05-14 01:58, Mark Sapiro wrote: >> Stanislaw Findeisen wrote: >>> >>> Subscription notification mail body is also distorted sometimes: I just >>> received one for a new subscriber who used a diacritic in his name. >>> There is '?' (ASCII 0x3F) instead of the character with diacritic. >> >> >> I think this is because your list's preferred language is English and >> Mailman's character set for English is us-ascii so the message body is >> coerced to ascii and non-ascii characters get replaced by '?'. >> >> If this is a serious issue, you can change Mailman's character set for >> English to UTF-8 by putting >> >> add_language('en', 'English (USA)', 'utf-8', 'ltr') >> >> in mm_cfg.py. > >Why don't we use utf-8 for all languages in Defaults.py? I think this would be a good default to change in Mailman 3, once it becomes a Python 3 application (follow up for how you can help with that :). Python 3 gives you a much more sane way of separating and handling unicode and binary data. Cheers, -Barry From mark at msapiro.net Wed May 16 07:57:54 2012 From: mark at msapiro.net (Mark Sapiro) Date: Tue, 15 May 2012 22:57:54 -0700 Subject: [Mailman-Developers] Mailman 2.1.15rc1 released Message-ID: <4FB341E2.8040808@msapiro.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I am happy to announce the first release candidate for Mailman 2.1.15. Python 2.4 is the minimum supported, but Python 2.6 is recommended. This release should work with Python 2.7, but has not been tested with that version. This release includes minor security enhancements, new features and bug fixes. See the Changelog at for more details. Mailman is free software for managing email mailing lists and e-newsletters. Mailman is used for all the python.org and SourceForge.net mailing lists, as well as at hundreds of other sites. For more information, please see: http://www.list.org http://www.gnu.org/software/mailman Mailman 2.1.15rc1 can be downloaded from https://launchpad.net/mailman/2.1/ http://ftp.gnu.org/gnu/mailman/ It is anticipated that the 2.1.15 final release will be on or about June 13. Bugs found between now and then will be fixed if possible, but I hope that most if not all changes between now and June 13 will be i18n updates. Please send any updates to the templates and/or message catalogs in the 2.1.15rc1 release directly to me no later than June 11. - -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MingW32) iD8DBQFPs0HiVVuXXpU7hpMRAhEfAKDHkpFORnL9a6ka3RRn4WP8m7EsHgCcCKFi C17WrK2wc2irrXn9Gp2ju8I= =5wvM -----END PGP SIGNATURE----- From tim at multitalents.net Wed May 16 21:51:44 2012 From: tim at multitalents.net (Tim Rice) Date: Wed, 16 May 2012 12:51:44 -0700 (PDT) Subject: [Mailman-Developers] [Mailman-Announce] Mailman 2.1.15rc1 released In-Reply-To: <4FB341E2.8040808@msapiro.net> References: <4FB341E2.8040808@msapiro.net> Message-ID: On Tue, 15 May 2012, Mark Sapiro wrote: > This release includes minor security enhancements, new features and > bug fixes. See the Changelog at > for more details. Looking at the Changelog I see ........ 2.1.15rc1 (15-May-2012) Security - Strengthened the validation of email addresses. ...... Having had many a web form tell me my keyword address was not valid, I thought I'd make sure the developers are aware of the address TMDA (http://tmda.net) can generate and use. Please make sure the validation routines allow addresses like these. someuser+keyword+mailman.793c93 at example.com someuser+sender+81c44a at example.com someuser+dated+1337369972.605ad6 at example.com Thanks. -- Tim Rice Multitalents tim at multitalents.net From mark at msapiro.net Thu May 17 02:08:16 2012 From: mark at msapiro.net (Mark Sapiro) Date: Wed, 16 May 2012 17:08:16 -0700 Subject: [Mailman-Developers] [Mailman-Announce] Mailman 2.1.15rc1released In-Reply-To: Message-ID: Tim Rice wrote: > >Looking at the Changelog I see >........ >2.1.15rc1 (15-May-2012) > > Security > > - Strengthened the validation of email addresses. >...... > >Having had many a web form tell me my keyword address was not valid, I >thought I'd make sure the developers are aware of the address TMDA >(http://tmda.net) can generate and use. > >Please make sure the validation routines allow addresses like these. >someuser+keyword+mailman.793c93 at example.com >someuser+sender+81c44a at example.com >someuser+dated+1337369972.605ad6 at example.com The above addresses will not be a problem. The only problem would be local parts containing characters other than dot (.) that RFC 5322 defines as 'specials' which, strictly speaking, may appear in quoted local parts, but which are not accepted by Mailman. -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From sophron at latthi.com Thu May 17 22:12:05 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Thu, 17 May 2012 23:12:05 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: <20120505162628.4fed030f@limelight.wooz.org> Message-ID: The following document is the lowest level of my design concept. You may also read it in my blog [1]. Of course, comments are very welcome. -- Models In order to store statistical data, the app will use some Django models: Author This model represents an author of the mailing list. It mostly keeps track of the number of postings and number of threads started. It has the following fields: - authorid ? IntegerField - authormail ? CharField - totalmails ? IntegerField - totalthreads ? IntegerField - firstmsgdate ? DateTimeField - lastmsgdate ? DateTimeField MailingList This model counts the total number of postings and threads started. - totalmails ? IntegerField - totalthreads ? IntegerField Month This model associates the author and the mailing list with each month. - author ? ForeignKey - month ? CharField - postscount ? IntegerField - threadscount ? IntegerField - mailinglist ? Boolean (if this is true it corresponds to the whole mailing list) Year This model is similar to month. It has a year field instead of a month field. Views To display the metrics the Django template system will be used. To output the charts i will create some custom tags. The three following views will be used: - General page ? On top, there will be general metrics about total authors, total mails and total threads and below three charts (AJAX based) that represent number of posts per author, number of threads per author and mailing list?s yearly usage. Even below there will be a number of charts (equal to the number of years of list?s existence) that output monthly usage. At the end, there will be tabular data representing the authors of the mailing list along with their number of posts, number of threads started and the date of their last post. The user will be able to order the tabular data (alphabetically, ascending/descending on number of posts, number of threads, date of last message) by clicking on the table?s headings (Mail, Mails Sent, Threads Started, Last Message). - Author page ? Each user will have his own page with his own metrics. On top, there will be the email of the author, number of posts, number of threads started and the dates of first and last message. Below there will be monthly usage charts for each year the user is subscribed to the mailing list. Django Admin page ? A ?Generate? button will be added to the Django admin page. Settings The Django app should handle the following configuration parameters: - Host ? Message store data host - Port ? Message store data port - Masking ? A multi-state variable (None, abbreviated, full) for masking email addresses at the results (we don?t want the emails to be spammed) Interface to the Mailman core - Metrics class ? When a new post is sent, the Metrics class will receive it through the IArchiver interface. The Posts field of the Mailing List model (as well as the the related rows on the Month and Year models) will increase by one. If the author?s email is not in the database, it will query the mailman core database with the email, grab the author?s id and a new Author row will be created. Otherwise if the author is already in the database, the Posts field and the two foreign fields (Month and Year) will increase by one - Generate class ? When the ?Generate? button on the Admin page is pressed: * The Django models will be initialized (the metrics will go back to zero). A progress bar will inform the administrator that the operation is being processed. * All the messages of the archive will be parsed by performing a direct Python call to the IArchiver. Another instance to the IArchiver will grab any mails sent while the parsing is going on. * The metrics will be generated from scratch. * The administrator will be informed with a success message when the process is over. [1]: http://sophron.latthi.com/gsoc-mailman/ -- George Chatzisofroniou sophron.latthi.com From p at state-of-mind.de Thu May 17 23:09:28 2012 From: p at state-of-mind.de (Patrick Ben Koetter) Date: Thu, 17 May 2012 23:09:28 +0200 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: <20120505162628.4fed030f@limelight.wooz.org> Message-ID: <20120517210928.GB19285@state-of-mind.de> George, let me throw in some thoughts just to annoy you ;) Like with most statistical data I mostly see the figures being used to give statements on quantity - top poster, number of threads etc. Do you think it would be possible to also make some statements on quality? Let me give an example: Mailing lists are often places where people go to ask for advice. Someone asking usually starts a thread and continually keeps replying. That easily makes a person top poster and might make the same person a thread starter, but number of posts and threads started gives no indication of that persons knowledge (concerning the mailing lists topic). OTOH someone who has been on the list for ages, who replies more often than starting threads and who ends threads often after she has replied might very well be a very knowledgeable person, because she gives the one answer that solves the problem. Do you think it would be possible to deduct such quality oriented statements? p at rick P.S. Do you also plan to deliver a tool that analyzes a mailing list archive in order to gather your statistical data? Having the statistical data might be a good reason for people to upgrade their MMx installation to MM3. * George Chatzisofroniou : > The following document is the lowest level of my design concept. You > may also read it in my blog [1]. Of course, comments are very welcome. > > -- > Models > > In order to store statistical data, the app will use some Django models: > > Author > > This model represents an author of the mailing list. It mostly keeps > track of the number of postings and number of threads started. It has > the following fields: > > - authorid ? IntegerField > - authormail ? CharField > - totalmails ? IntegerField > - totalthreads ? IntegerField > - firstmsgdate ? DateTimeField > - lastmsgdate ? DateTimeField > > MailingList > > This model counts the total number of postings and threads started. > > - totalmails ? IntegerField > - totalthreads ? IntegerField > > Month > > This model associates the author and the mailing list with each month. > > - author ? ForeignKey > - month ? CharField > - postscount ? IntegerField > - threadscount ? IntegerField > - mailinglist ? Boolean (if this is true it corresponds to the whole > mailing list) > > Year > > This model is similar to month. It has a year field instead of a month field. > > Views > > To display the metrics the Django template system will be used. To > output the charts i will create some custom tags. The three following > views will be used: > > - General page ? On top, there will be general metrics about total > authors, total mails and total threads and below three charts (AJAX > based) that represent number of posts per author, number of threads > per author and mailing list?s yearly usage. Even below there will be a > number of charts (equal to the number of years of list?s existence) > that output monthly usage. At the end, there will be tabular data > representing the authors of the mailing list along with their number > of posts, number of threads started and the date of their last post. > The user will be able to order the tabular data (alphabetically, > ascending/descending on number of posts, number of threads, date of > last message) by clicking on the table?s headings (Mail, Mails Sent, > Threads Started, Last Message). > > - Author page ? Each user will have his own page with his own metrics. > On top, there will be the email of the author, number of posts, number > of threads started and the dates of first and last message. Below > there will be monthly usage charts for each year the user is > subscribed to the mailing list. > Django Admin page ? A ?Generate? button will be added to the Django admin page. > Settings > > The Django app should handle the following configuration parameters: > > - Host ? Message store data host > - Port ? Message store data port > - Masking ? A multi-state variable (None, abbreviated, full) for > masking email addresses at the results (we don?t want the emails to be > spammed) > > Interface to the Mailman core > > - Metrics class ? When a new post is sent, the Metrics class will > receive it through the IArchiver interface. The Posts field of the > Mailing List model (as well as the the related rows on the Month and > Year models) will increase by one. If the author?s email is not in the > database, it will query the mailman core database with the email, grab > the author?s id and a new Author row will be created. Otherwise if the > author is already in the database, the Posts field and the two foreign > fields (Month and Year) will increase by one > > - Generate class ? When the ?Generate? button on the Admin page is pressed: > * The Django models will be initialized (the metrics will go back to > zero). A progress bar will inform the administrator that the operation > is being processed. > * All the messages of the archive will be parsed by performing a > direct Python call to the IArchiver. Another instance to the IArchiver > will grab any mails sent while the parsing is going on. > * The metrics will be generated from scratch. > * The administrator will be informed with a success message when the > process is over. > > [1]: http://sophron.latthi.com/gsoc-mailman/ > > -- > George Chatzisofroniou > sophron.latthi.com > _______________________________________________ > Mailman-Developers mailing list > Mailman-Developers at python.org > http://mail.python.org/mailman/listinfo/mailman-developers > Mailman FAQ: http://wiki.list.org/x/AgA3 > Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ > Unsubscribe: http://mail.python.org/mailman/options/mailman-developers/p%40state-of-mind.de > > Security Policy: http://wiki.list.org/x/QIA9 -- state of mind () http://www.state-of-mind.de Franziskanerstra?e 15 Telefon +49 89 3090 4664 81669 M?nchen Telefax +49 89 3090 4666 Amtsgericht M?nchen Partnerschaftsregister PR 563 From sophron at latthi.com Fri May 18 15:25:16 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Fri, 18 May 2012 16:25:16 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <20120517210928.GB19285@state-of-mind.de> References: <20120505162628.4fed030f@limelight.wooz.org> <20120517210928.GB19285@state-of-mind.de> Message-ID: Hello Patrick, On Fri, May 18, 2012 at 12:09 AM, Patrick Ben Koetter

wrote: > Like with most statistical data I mostly see the figures being used to give > statements on quantity - top poster, number of threads etc. Do you think it > would be possible to also make some statements on quality? The metrics will primarily extract the activity of a mailing list and its users. It is possible to emphasize on the quality of the posts but i think this is a different app (but it interacts with the Metrics one). If the users were able to rank the posts through the archiver it wouldn't be hard to indicate one user's offering to his community. This looks like the first idea on this page [1]. > P.S. > Do you also plan to deliver a tool that analyzes a mailing list archive in > order to gather your statistical data? Having the statistical data might be a > good reason for people to upgrade their MMx installation to MM3. Yes, there will be a special Generate button in case of an existing archive or in case of a system crash. [1]: http://blog.linuxgrrl.com/2012/03/13/mailman-brainstorm/ -- George Chatzisofroniou sophron.latthi.com From mark at msapiro.net Fri May 18 22:25:02 2012 From: mark at msapiro.net (Mark Sapiro) Date: Fri, 18 May 2012 13:25:02 -0700 Subject: [Mailman-Developers] Mailman 2.1.15rc1 released In-Reply-To: <4FB341E2.8040808@msapiro.net> References: <4FB341E2.8040808@msapiro.net> Message-ID: <4FB6B01E.3070306@msapiro.net> There was an issue in the tarballs I released for Mailman 2.1.15rc1. They didn't include the updated version information so they installed as version 2.1.14. This should not cause problems other than the version displaying incorrectly. If the tarball was installed as an upgrade over a 2.1.14 installation, the update script would not run to update list attributes, but the lists would be updated when they are later instantiated so this shouldn't be a problem. The release tarballs at https://launchpad.net/mailman/2.1/ http://ftp.gnu.org/gnu/mailman/ https://sourceforge.net/projects/mailman/ have all been replaced with the correct one. There is still an issue with the bzr branch on Launchpad in that the 2.1.15rc1 tag is on revision 1354 instead of 1355, but that will be fixed soon. -- Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan From stephen at xemacs.org Sat May 19 13:58:59 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Sat, 19 May 2012 20:58:59 +0900 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: <20120505162628.4fed030f@limelight.wooz.org> Message-ID: <87zk94pekc.fsf@uwakimon.sk.tsukuba.ac.jp> George Chatzisofroniou writes: > Author > > This model represents an author of the mailing list. It mostly keeps > track of the number of postings and number of threads started. It has > the following fields: > > - authorid ? IntegerField AFAIK every Django object has an internal ID. Why do authors need a separate, human-unfriendly "authorid"? > - authormail ? CharField Authors are people. They typically have names and often multiple email addresses. There may also be other information (organization, etc) that is available from the headers. > - totalmails ? IntegerField > - totalthreads ? IntegerField > - firstmsgdate ? DateTimeField > - lastmsgdate ? DateTimeField > > MailingList > > This model counts the total number of postings and threads started. > > - totalmails ? IntegerField > - totalthreads ? IntegerField longestthread? > > Month > > Year > > Views > > To display the metrics the Django template system will be used. To > output the charts i will create some custom tags. The three following > views will be used: > > - General page ? On top, there will be general metrics about total > authors, total mails and total threads and below three charts (AJAX > based) "AJAX based" doesn't belong in the spec; it's an implementation detail. > that represent number of posts per author, number of threads > per author and mailing list?s yearly usage. Even below there will be a > number of charts (equal to the number of years of list?s existence) > that output monthly usage. Why multiple charts? If you can afford a 640x480 chart area, with 4 pixel wide bars you can have 160 months > 13 years in one chart. I personally wouldn't hesitate to go to pixel width bars, which gives you > 53 years. I don't think people will be looking at charts for precision, but rather to get an overview. > At the end, there will be tabular data representing the authors > > - Author page ? Each user will have his own page with his own metrics. > > Django Admin page ? A ?Generate? button will be added to the Django admin page. > Settings > > The Django app should handle the following configuration parameters: > > - Host ? Message store data host > - Port ? Message store data port > - Masking ? A multi-state variable (None, abbreviated, full) for > masking email addresses at the results (we don?t want the emails to be > spammed) (1) If at all possible, this should be inherited from the list configuration (DRY). It's not useful if the addresses are available from the archives or by subscribing to the list. (Actually, a really sophisticated spammer might want to attack by spoofing frequent posters on the assumption they're more trusted and more read, but that seems second-order to me.) (2) It would be preferable if authors could supply nicknames, full names, or avatars for this purpose. > Interface to the Mailman core > > - Metrics class > > - Generate class From turnbull at sk.tsukuba.ac.jp Sat May 19 14:12:03 2012 From: turnbull at sk.tsukuba.ac.jp (Stephen J. Turnbull) Date: Sat, 19 May 2012 21:12:03 +0900 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: <20120505162628.4fed030f@limelight.wooz.org> <20120517210928.GB19285@state-of-mind.de> Message-ID: <87y5oopdyk.fsf@uwakimon.sk.tsukuba.ac.jp> George Chatzisofroniou writes: > Hello Patrick, > > On Fri, May 18, 2012 at 12:09 AM, Patrick Ben Koetter >

wrote: > > Like with most statistical data I mostly see the figures being > > used to give statements on quantity - top poster, number of > > threads etc. Do you think it would be possible to also make some > > statements on quality? +1 For example, I think this would be really useful for class discussion lists and the like (on the theory that the best way to learn a subject is to teach it to others). > The metrics will primarily extract the activity of a mailing list > and its users. > > It is possible to emphasize on the quality of the posts but i think > this is a different app I don't see why. I would think quality metrics would be usefully presented via the same application as quantity metrics. It would be interesting to correlate quality and quantity, for example. Do you mean to say "this is out of scope of my project?" As much as I'd like to see quality metrics provided, I'd have to agree with you that it's out of scope of your project (maybe you could do one or more quality metrics on a time-permitting basis at the end of the period). From richard at NFSNet.org Sat May 19 14:34:50 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Sat, 19 May 2012 07:34:50 -0500 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <87y5oopdyk.fsf@uwakimon.sk.tsukuba.ac.jp> References: <20120505162628.4fed030f@limelight.wooz.org> <20120517210928.GB19285@state-of-mind.de> <87y5oopdyk.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: On May 19, 2012, at 7:12 AM, Stephen J. Turnbull wrote: > George Chatzisofroniou writes: >> Hello Patrick, >> >> On Fri, May 18, 2012 at 12:09 AM, Patrick Ben Koetter >>

wrote: >>> Like with most statistical data I mostly see the figures being >>> used to give statements on quantity - top poster, number of >>> threads etc. Do you think it would be possible to also make some >>> statements on quality? > > +1 > > For example, I think this would be really useful for class discussion > lists and the like (on the theory that the best way to learn a subject > is to teach it to others). > >> The metrics will primarily extract the activity of a mailing list >> and its users. >> >> It is possible to emphasize on the quality of the posts but i think >> this is a different app > > I don't see why. I would think quality metrics would be usefully > presented via the same application as quantity metrics. It would be > interesting to correlate quality and quantity, for example. > > Do you mean to say "this is out of scope of my project?" As much as > I'd like to see quality metrics provided, I'd have to agree with you > that it's out of scope of your project (maybe you could do one or more > quality metrics on a time-permitting basis at the end of the period). I agree that he should think in terms of having additional "quality-based" metrics and presentations. This ties directly into some of the things that the "hyperkitty" guys are doing. We need to develop a single approach to the collection, storage, and display of this information. However, other than considering how the "hooks" would work, I think that this is beyond the scope of this phase of development. Implementation should be considered to be part of a different "contract". Richard From richard at NFSNet.org Sat May 19 15:18:14 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Sat, 19 May 2012 08:18:14 -0500 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <87zk94pekc.fsf@uwakimon.sk.tsukuba.ac.jp> References: <20120505162628.4fed030f@limelight.wooz.org> <87zk94pekc.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: On May 19, 2012, at 6:58 AM, Stephen J. Turnbull wrote: > George Chatzisofroniou writes: > >> Author >> >> This model represents an author of the mailing list. It mostly keeps >> track of the number of postings and number of threads started. It has >> the following fields: >> >> - authorid ? IntegerField > > AFAIK every Django object has an internal ID. Why do authors need a > separate, human-unfriendly "authorid"? Since George will not "own" the information about the author, this is his "foreign key" link into that data. >> - authormail ? CharField > > Authors are people. They typically have names and often > multiple email addresses. There may also be other information > (organization, etc) that is available from the headers. I think that we should remove ALL of the author information from the MM core and create a separate service to collect and manage it. The mail handling core can subscribe to this service for the little necessary information that it requires about the "persons". In the real world, the relationship between the organization and the people subscribed to a mailing list often is not centered on the mailing list. They are customers, employees, participants, or such. From the POV of the mailing list, other than authentication of posting/subscription status, those details are not important. There is no reason why the mailing list handler should be the authority/repository for some, but not all, of the information about these persons. >> - totalmails ? IntegerField >> - totalthreads ? IntegerField >> - firstmsgdate ? DateTimeField >> - lastmsgdate ? DateTimeField > MailingList >> >> This model counts the total number of postings and threads started. >> >> - totalmails ? IntegerField >> - totalthreads ? IntegerField > > longestthread? >> Month >> >> Year >> >> Views >> >> To display the metrics the Django template system will be used. To >> output the charts i will create some custom tags. The three following >> views will be used: >> >> - General page ? On top, there will be general metrics about total >> authors, total mails and total threads and below three charts (AJAX >> based) > > "AJAX based" doesn't belong in the spec; it's an implementation detail. Agreed. George is still working on understanding the abstraction distinction. He still wants to expose things that should remain "under the hood". He should use more black paint. >> that represent number of posts per author, number of threads >> per author and mailing list?s yearly usage. Even below there will be a >> number of charts (equal to the number of years of list?s existence) >> that output monthly usage. > > Why multiple charts? If you can afford a 640x480 chart area, with 4 > pixel wide bars you can have 160 months > 13 years in one chart. I > personally wouldn't hesitate to go to pixel width bars, which gives > you > 53 years. I don't think people will be looking at charts for > precision, but rather to get an overview. I would hope that he creates a "chart widget" (Django custom template tag) that will allow the site designer to choose the level of detail and duration covered by a particular instance. >> At the end, there will be tabular data representing the authors >> >> - Author page ? Each user will have his own page with his own metrics. >> >> Django Admin page ? A ?Generate? button will be added to the Django admin page. >> Settings >> >> The Django app should handle the following configuration parameters: >> >> - Host ? Message store data host >> - Port ? Message store data port >> - Masking ? A multi-state variable (None, abbreviated, full) for >> masking email addresses at the results (we don?t want the emails to be >> spammed) > > (1) If at all possible, this should be inherited from the list > configuration (DRY). It's not useful if the addresses are > available from the archives or by subscribing to the list. > (Actually, a really sophisticated spammer might want to attack by > spoofing frequent posters on the assumption they're more trusted > and more read, but that seems second-order to me.) > (2) It would be preferable if authors could supply nicknames, full > names, or avatars for this purpose. Agreed. This needs to be a part of the "person" data store. >> Interface to the Mailman core >> >> - Metrics class >> >> - Generate class From barry at list.org Sat May 19 18:59:44 2012 From: barry at list.org (Barry Warsaw) Date: Sat, 19 May 2012 12:59:44 -0400 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: References: <20120505162628.4fed030f@limelight.wooz.org> <87zk94pekc.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <20120519125944.696eea9e@resist.wooz.org> On May 19, 2012, at 08:18 AM, Richard Wackerbarth wrote: >I think that we should remove ALL of the author information from the MM core >and create a separate service to collect and manage it. The mail handling >core can subscribe to this service for the little necessary information that >it requires about the "persons". This should be possible with today's Mailman 3, though it might not be obvious (and certainly isn't tested ;). To do this, you'd implement the IUserManager interface with whatever external-service-consulting implementation you'd like to come up with. Then you'd associate that component implementation with the utility via the zope.configuration file. Once you've done this, Mailman will always get its users and addresses from the your separate service. Come to think of it though, you probably also need to re-implement the various IRoster implementations as well. It might take some fiddling and experimentation, but the architecture intends to make this kind of thing possible. Cheers, -Barry From richard at nfsnet.org Sun May 20 16:22:19 2012 From: richard at nfsnet.org (Richard Wackerbarth) Date: Sun, 20 May 2012 09:22:19 -0500 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <4FB81ACE.1010603@gmail.com> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> Message-ID: <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> On May 19, 2012, at 5:12 PM, Florian Fuchs wrote: > Personally, I only delete branches only if I'm really sure I won't work > on them any longer. > I'm also pretty sure that when you delete a branch > that has been merged into a project, it's still accessible from the > revision timeline and the bug report, even if it's no longer visible in > your profile's branch list. So once it has been merged into another > branch there's no way of removing it from LP. My interest in deleting a branch is to clean the external namespace so that users are not wasting their time examining branches which are not currently useful. It appears that Launchpad handles this by setting the branch status to "merged". As a result, I don't need to do anything. > I use git a little more often then Bazaar, but I can't say that I am > clearly in favor of one of them. I guess I'm just happy whenever I don't > have to use SVN any more. ;-) My experience goes back to RCS. CVS was an improvement on that. Today's version control systems are much better. My only complaint is that there are too many of them :) My preference for git stems largely from the lack of decent gui tools for bzr on Mac OSX. That, plus the fact that I run a git-based infrastructure and most of the other projects in which I participate use git, makes it an easy choice for me. > I think the workflow used in Launchpad is not necessarily the only way > to use Bazaar. However, I can't say that I have really fully groked the > launchpad way, but here's how I understood it: > > Every project has an owner (a person or group, "Mailman Coders" in our > case). Changes to the trunk can only be made by owners, which is why > nobody else's names ever appear in the revision history. What a waste of display space :) > The way launchpad credits the work of "non-owner" contributers is by stating the > merges and bug fixes in the revision history the way it just happened > with your branch. > > So there's nothing wrong with the way you did it. Just create a new > branch with the changes and then do a merge proposal. You *could* link > the branch to the bug report yourself, just to make sure I don't forget > that before merging it in. I'll try to do so for the next submission. As you note, there are many ways to use a particular tool. "Learning the culture" is part of the contribution task. > You see, those "non-owner" contributions are buried a bit deeply inside > the revision history. And I guess that's why Barry suggested to add a > more obvious "contributed by ..." message to every commit that involves > the work of a non-owner. I prefer the more explicit attribution of git because it makes it much easier to determine "blame". Not that I care about kudos, points, or such, but because I often want to know more about the rationale behind some particular change. (The documentation rarely is adequate in explaining rationale -- and we are all "guilty" in that respect) To do so, I need to know the author > But, as I said: That's just how I understood the LP workflow. I'm sure > there are still things I've missed... My workflow pattern is to create short-lived branches for each bug, Once the bug is closed and merged into trunk, the branch is effectively "dead". Launchpad seems to handle this adequately. >> I'm working on some new underlying base.html files. Fortunately, Django lets me place them directly in my website directory and the template loader then overrides your version. When they are ready for, and get merged into the trunk, I can easily revert to the vendor version. >> >> I think that we should create an otherwise empty "themes" app and place the various templates within that namespace rather than directly in the postorius namespace. What is your opinion? > > I guess it would be a bit confusing to have the default templates in a > completely different app (at least for people who use django regularly). > My feeling is that it's kind of expected for django users to have a > default theme delivered as part of the actual app package. So I would > prefer to deliver the theme as part of postorius as well. > > As far as alternative themes are concerned I have seen some cases where > additional themes were distributed as separate apps As an "installer" mechanism, this seems just fine. And I agree that a default theme should be delivered as a part of the postorius package. However, I am concerned that your implementation exposes "/postorius/" in the URLs and in the template names for the themes. IMHO, all of this design seems to reflect a philosophy based on the idea that the purpose of the website is to run mailing lists. I think that we need to look at it from a different perspective. The use case is that of a company, organization, etc. that has a presence on the 'net. For example, their website is primarily an e-commerce site. The company runs a customer contact mailing list to which individuals can subscribe. Here, the postorius interface is a small subsection of the overall website. But, properly written, the display should appear to be a seamless addition to the content. This implies that "themes" would apply to the whole site and not just the postorius section. As such, I think that we should put the theme definition in a "theme" namespace rather than within the "postorius" namespace. This does not imply that we cannot package one, or more, themes in the postorius app. I suggest that we deliver at least two themes. One would be in the style of "mailman" and the other that of "django". I suggest this because, if we cannot do both easily, it will provide some indication of the usability of our website structure. Richard From sophron at latthi.com Sun May 20 17:00:28 2012 From: sophron at latthi.com (George Chatzisofroniou) Date: Sun, 20 May 2012 18:00:28 +0300 Subject: [Mailman-Developers] [GSoC 2012] Metrics In-Reply-To: <87y5oopdyk.fsf@uwakimon.sk.tsukuba.ac.jp> References: <20120505162628.4fed030f@limelight.wooz.org> <20120517210928.GB19285@state-of-mind.de> <87y5oopdyk.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <20120520150028.GA4302@otacon> Hello Stephen, On Sat, May 19, 2012 at 09:12:03PM +0900, Stephen J. Turnbull wrote: > I don't see why. I would think quality metrics would be usefully > presented via the same application as quantity metrics. It would be > interesting to correlate quality and quantity, for example. What i was trying to say is that the quality metrics need some designing on a "posts rating system" first. Of course they will be presented by my app. > Do you mean to say "this is out of scope of my project?" As much as > I'd like to see quality metrics provided, I'd have to agree with you > that it's out of scope of your project (maybe you could do one or more > quality metrics on a time-permitting basis at the end of the period). Yes, i think it is out of my GSoC project, but i would like to implement this after finish with quantity metrics this summer. From barry at list.org Sun May 20 04:26:33 2012 From: barry at list.org (Barry Warsaw) Date: Sat, 19 May 2012 22:26:33 -0400 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> Message-ID: <20120519222633.39baecd3@resist.wooz.org> On May 20, 2012, at 09:22 AM, Richard Wackerbarth wrote: >My interest in deleting a branch is to clean the external namespace so that >users are not wasting their time examining branches which are not currently >useful. > >It appears that Launchpad handles this by setting the branch status to >"merged". As a result, I don't need to do anything. Merged is usually automatically set when the branch is merged into the series trunk (e.g. lp:mailman). You can also set the status to Abandoned to make it clear it isn't useful any more. >> I use git a little more often then Bazaar, but I can't say that I am >> clearly in favor of one of them. I guess I'm just happy whenever I don't >> have to use SVN any more. ;-) > >My experience goes back to RCS. CVS was an improvement on that. Today's >version control systems are much better. My only complaint is that there are >too many of them :) > >My preference for git stems largely from the lack of decent gui tools for bzr >on Mac OSX. That, plus the fact that I run a git-based infrastructure and >most of the other projects in which I participate use git, makes it an easy >choice for me. While I really don't want to get into yet another religious VCS discussion on yet another unrelated list , Bazaar has one killer feature IMO that neither hg nor git has. (There are many things I prefer in bzr over hg and git, but this is the big one). Bazaar has a strong concept of a 'mainline' branch. This means that merges are first class objects, and when I merge your feature branch into the trunk, it shows up on mainline as a single commit. And because tools like log and bisect treat the merge as a single commit by default, they always do the right thing, without requiring you to rebase your branch before its merged. I personally think that rebase is an abomination generally required by workflow policies that try to overcome tool deficiencies. By not *requiring* rebase (it is of course possible), it means that all your intermediate commits are preserved because sometimes they are useful. Most of the time you can ignore them which is exactly how it should be, IMHO. >> I think the workflow used in Launchpad is not necessarily the only way >> to use Bazaar. However, I can't say that I have really fully groked the >> launchpad way, but here's how I understood it: >> >> Every project has an owner (a person or group, "Mailman Coders" in our >> case). Changes to the trunk can only be made by owners, which is why >> nobody else's names ever appear in the revision history. > >What a waste of display space :) They do appear in the revision history, but they're off to the side and ignored by default. Use `bzr log -n0` for all the verbose glory. >> The way launchpad credits the work of "non-owner" contributers is by >> stating the merges and bug fixes in the revision history the way it just >> happened with your branch. >> >> So there's nothing wrong with the way you did it. Just create a new >> branch with the changes and then do a merge proposal. You *could* link >> the branch to the bug report yourself, just to make sure I don't forget >> that before merging it in. > >I'll try to do so for the next submission. As you note, there are many ways >to use a particular tool. "Learning the culture" is part of the contribution >task. Yep! All tools take some getting used to. I agree it's kind of a shame that bzr/git/hg all do things differently, as does Launchpad/github/bitbucket. But hey, FLOSS is all about freedom, right? :) >> You see, those "non-owner" contributions are buried a bit deeply inside >> the revision history. And I guess that's why Barry suggested to add a >> more obvious "contributed by ..." message to every commit that involves >> the work of a non-owner. > >I prefer the more explicit attribution of git because it makes it much easier >to determine "blame". Not that I care about kudos, points, or such, but >because I often want to know more about the rationale behind some particular >change. (The documentation rarely is adequate in explaining rationale -- and >we are all "guilty" in that respect) To do so, I need to know the author In a well-developed branch, that rationale should be included in the intermediate commit messages of the proposed branch (not to mention good comments in the code ). Rebasing that away just seems *wrong* to me. As far as the attributions go, I think the best place to be explicit is in the NEWS file. Folks getting Mailman via tarball or distro package won't have access to the VCS history anyway. >> But, as I said: That's just how I understood the LP workflow. I'm sure >> there are still things I've missed... > >My workflow pattern is to create short-lived branches for each bug, Once the >bug is closed and merged into trunk, the branch is effectively >"dead". Launchpad seems to handle this adequately. +1 Cheers, -Barry From stephen at xemacs.org Mon May 21 05:21:55 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Mon, 21 May 2012 12:21:55 +0900 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <20120519222633.39baecd3@resist.wooz.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> Message-ID: <87txzap6b0.fsf@uwakimon.sk.tsukuba.ac.jp> Barry Warsaw writes: > I personally think that rebase is an abomination generally required > by workflow policies that try to overcome tool deficiencies. By > not *requiring* rebase (it is of course possible), it means that > all your intermediate commits are preserved No VCS "requires" rebase, or removing commits from history. > because sometimes they are useful. Most of the time you can ignore > them which is exactly how it should be, IMHO. This is the nub of the argument. bzr mandates a presentation of history that bzr fans like, and some folks don't. I'm not a big fan of bzr log -n# for any value of # AFAIK ;-), but I'm willing to try different things as they seem useful. > In a well-developed branch, that rationale should be included in > the intermediate commit messages of the proposed branch (not to > mention good comments in the code ). Rebasing that away just > seems *wrong* to me. That is not the purpose of rebase, and I doubt any well-managed project permits it. > As far as the attributions go, I think the best place to be > explicit is in the NEWS file. Folks getting Mailman via tarball or > distro package won't have access to the VCS history anyway. False. It's less convenient for them, but they can browse launchpad. Anyway, the NEWS file is way too coarse for the purposes that Wacky and I have in mind. Eg, George may need some changes to the IArchiver interface, and send you a branch that makes them. But a crucial patch may have been suggested and supplied by a mentor. I trust that you'll mention George in NEWS, but will you even be aware of the contributions by third parties? From richard at NFSNet.org Mon May 21 13:32:45 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Mon, 21 May 2012 06:32:45 -0500 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <20120519222633.39baecd3@resist.wooz.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> Message-ID: On May 19, 2012, at 9:26 PM, Barry Warsaw wrote: > While I really don't want to get into yet another religious VCS discussion on > yet another unrelated list , Bazaar has one killer feature IMO that > neither hg nor git has. (There are many things I prefer in bzr over hg and > git, but this is the big one). > > Bazaar has a strong concept of a 'mainline' branch. I can argue that this is also a weakness. The tool is imposing management practices on the users. In a current sense, conventions are equally capable of designating the mainline. In a historical sense, the mainline only indicates the order of "approval". Having a main branch implies that the organization is imposing its idea of "the right way". It is somewhat like the Corp of Engineers telling a river how it should travel through its delta region. History shows that parts which once were considered "the main branch" often become byways as the momentum of the flow embraces new ideas, directions or leadership. From stephen at xemacs.org Mon May 21 17:12:04 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Tue, 22 May 2012 00:12:04 +0900 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> Message-ID: <87ipfppnzv.fsf@uwakimon.sk.tsukuba.ac.jp> Richard Wackerbarth writes: > Having a main branch implies that the organization is imposing its > idea of "the right way". In some sense true, but few organizations have either the resources or inclination to maintain and support more than one "right way" at a time. > History shows that parts which once were considered "the main > branch" often become byways as the momentum of the flow embraces > new ideas, directions or leadership. Are you implying that bzr isn't capable of recognizing that a new branch has become the mainline? That's false, you know. Any head in your workspace can become mainline, and any commit can sprout a new head. (It's true that it requires substantial effort to change the *public* mainline, but that's true of all DVCSes, including git: this is a consequence of the same underlying issue that we know as "the rebase problem".) The rule in bazaar is actually the same as in git: the sequence of leftmost ancestors of the current checked-out head appears as mainline. The difference is that by default "bzr log" will hide non-leftmost ancestors of merge commits, thus emphasizing the mainline, and this behavior is part of the specification of bzr. This is very compatible with the project workflow Barry expressed a preference for: the mainline appears as a sequence of merges of feature branches. However, bzr is perfectly compatible with much less elegant workflows, such the use of bzr to emulate CVS. ;-) In any case, Mailman is not going to change VCSes any time soon, and if you prefer to use git or hg, bzr supports the fastimport format for export and import. From barry at list.org Mon May 21 17:13:58 2012 From: barry at list.org (Barry Warsaw) Date: Mon, 21 May 2012 11:13:58 -0400 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <87txzap6b0.fsf@uwakimon.sk.tsukuba.ac.jp> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> <87txzap6b0.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <20120521111358.0e610876@resist.wooz.org> I don't want to side track too long into a vcs discussion, so I'll respond here and then you can have the last word. :) On May 21, 2012, at 12:21 PM, Stephen J. Turnbull wrote: >Barry Warsaw writes: > > > I personally think that rebase is an abomination generally required > > by workflow policies that try to overcome tool deficiencies. By > > not *requiring* rebase (it is of course possible), it means that > > all your intermediate commits are preserved > >No VCS "requires" rebase, or removing commits from history. Agreed, but just about every git fan I've ever talked to always emphasizes rebase as an important part of the merge workflow. When I dig deeper into why that is, it always seems to come down to this: when I merge your branch into mine, all your intermediate commits get slapped right onto my branch, one at a time. Which means that if your branch introduced a regression, and I want to bisect to find it, I have to bisect through all your intermediate commits. This has implications for logging too, which would show me all your intermediate commits as well. If I saw that all the time, I'd think it would suck too. Admittedly, I'm not speaking from rich first hand experience, so feel free to correct the FUD. But I really like the bzr way of seeing my merge of your branch as one clearly labeled revision on my branch. I can dig into your intermediate commits if I want (there's often valuable information there), but most of the time I don't care, and my tool allows me to not care, until I do. > > because sometimes they are useful. Most of the time you can ignore > > them which is exactly how it should be, IMHO. > >This is the nub of the argument. bzr mandates a presentation of >history that bzr fans like, and some folks don't. I'm not a big fan >of bzr log -n# for any value of # AFAIK ;-), but I'm willing to try >different things as they seem useful. There are some good graphical representations of that history, for folks who like that sort of thing. I think they can make digging into those branch sidings nicer. > > In a well-developed branch, that rationale should be included in > > the intermediate commit messages of the proposed branch (not to > > mention good comments in the code ). Rebasing that away just > > seems *wrong* to me. > >That is not the purpose of rebase, and I doubt any well-managed >project permits it. Isn't this essentially how the kernel works? When I talk to developers of git-run projects, it does always seem to come down to this. > > As far as the attributions go, I think the best place to be > > explicit is in the NEWS file. Folks getting Mailman via tarball or > > distro package won't have access to the VCS history anyway. > >False. It's less convenient for them, but they can browse launchpad. If they can find it. I still think a NEWS file or ACKNOWLEDGMENTS file (suitably maintained :/ ) is more accessible to more folks. >Anyway, the NEWS file is way too coarse for the purposes that Wacky >and I have in mind. Eg, George may need some changes to the IArchiver >interface, and send you a branch that makes them. But a crucial patch >may have been suggested and supplied by a mentor. I trust that you'll >mention George in NEWS, but will you even be aware of the >contributions by third parties? Probably the best way to handle this is for George's NEWS file entries to include that information. If George really did merge a mentor's branch for the crucial patch, and then I merged George's branch, the history of that will be reflected in the bzr revision history. It may be off in a 2-level deep siding, but it's there. The usefulness of that seems independent of the vcs being used. A plain text file in the tree is still going to be a better place to record contributions, IMHO. -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: not available URL: From barry at list.org Mon May 21 17:22:58 2012 From: barry at list.org (Barry Warsaw) Date: Mon, 21 May 2012 11:22:58 -0400 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> Message-ID: <20120521112258.775f603c@resist.wooz.org> Okay, you get the last word too. :) On May 21, 2012, at 06:32 AM, Richard Wackerbarth wrote: >On May 19, 2012, at 9:26 PM, Barry Warsaw wrote: >> While I really don't want to get into yet another religious VCS discussion >> on yet another unrelated list , Bazaar has one killer feature IMO >> that neither hg nor git has. (There are many things I prefer in bzr over >> hg and git, but this is the big one). >> >> Bazaar has a strong concept of a 'mainline' branch. > >I can argue that this is also a weakness. The tool is imposing management >practices on the users. In a current sense, conventions are equally capable >of designating the mainline. In a historical sense, the mainline only >indicates the order of "approval". Note that 'mainline' does not mean 'blessed master branch'. Conventions surely do designate the latter. Someday when y'all revolt against me, you can all agree that lp:mailman is no longer the blessed master branch. Hey, that's FLOSS. But I still think that within a single branch, it's useful to have a main line of development, and I think that jives with most people's intuition about software development. The really important concept I think is that merges are first class events on a particular branch, represented by their own single revision within the history. These merge revisions can be expanded for more detail, where all the gory details of its history are revealed, letting you choose to care or not care about it. >Having a main branch implies that the organization is imposing its idea of >"the right way". > >It is somewhat like the Corp of Engineers telling a river how it should >travel through its delta region. > >History shows that parts which once were considered "the main branch" often >become byways as the momentum of the flow embraces new ideas, directions or >leadership. Most feature and bug fix branches are quite short lived. They rarely become the heads of long lived lines of development. There are other ways to handle the conventions that lead to more sweeping changes of focus, and I don't think there's much of a difference in how the dvcs's handle that. There may be ways in which the code hosting providers do better or worse ways of managing that, but it seems independent of the lower-level dvcs. Cheers, -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: not available URL: From f at state-of-mind.de Mon May 21 17:26:38 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Mon, 21 May 2012 17:26:38 +0200 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> Message-ID: <4FBA5EAE.9090603@state-of-mind.de> Hi, Am 20.05.12 16:22, schrieb Richard Wackerbarth: > However, I am concerned that your implementation exposes "/postorius/" in the URLs and in the template names for the themes. It doesn't - it's a simple configuration issue. The URL namespace for Postorius is defined in the *project's* urls modules (in our case `dev_setup/urls.py`), *not* in Postorius'. You can easily change `postorius` to something else to define a different namespace for all Postorius-URLs. You can also define "postorius.urls" as the ROOT_URLCONF in your project to use no namespace at all (this would of course only make sense for installation scenarios where no url-collisions are expected, like a (sub)domain that serves nothing but Postorius). Remember that dev_setup is just an example django project that we put into trunk for convenience' sake during PyCon. It is not part of the Python-package that get's installed with Postorius. Although, as we discussed recently, dev_setup should be moved to a separate location. > > IMHO, all of this design seems to reflect a philosophy based on the idea that the purpose of the website is to run mailing lists. Quite the opposite. The whole idea of distributing postorius as a django *app* and not a django *project* aims at making it easily possible to integrate Postorius into existing scenarios. That's why the URL namespace isn't defined in the app-level urls module. > I think that we need to look at it from a different perspective. The use case is that of a company, organization, etc. that has a presence on the 'net. For example, their website is primarily an e-commerce site. The company runs a customer contact mailing list to which individuals can subscribe. Here, the postorius interface is a small subsection of the overall website. But, properly written, the display should appear to be a seamless addition to the content. Absolutely. Both scenarios should be (and are) possible. A stand-alone installation as well as integrated into an existing django-project. > This implies that "themes" would apply to the whole site and not just the postorius section. As such, I think that we should put the theme definition in a "theme" namespace rather than within the "postorius" namespace. The URL namespace you choose for the Postorius URLs has no effect on the theme that is used. You could change the namespace to (r'^googlegroups/', include('postorius.urls') # SCNR :-) and django would still look for a template folder with the name `postorius` (both in your app as well as your project). So overriding the app's theme (or just single templates) on the project level would work just like with every other django app. For instance, you could override Postorius' base.html on the project level to make it use your existing site's html/css layout. > > I suggest that we deliver at least two themes. One would be in the style of "mailman" and the other that of "django". I suggest this because, if we cannot do both easily, it will provide some indication of the usability of our website structure. We already have a MAILMAN_THEME setting (set to 'default') which you could easily change to something else and add another theme folder to the templates/postorius folder. We did that exactly with the idea in mind to deliver more than one theme with the application. However, I don't like the idea very much any more, because django already has a very good system to override existing themes, either through project-level overrides or through installing a "theme-only" app. Florian From richard at NFSNet.org Mon May 21 17:53:27 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Mon, 21 May 2012 10:53:27 -0500 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <20120521111358.0e610876@resist.wooz.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> <87txzap6b0.fsf@uwakimon.sk.tsukuba.ac.jp> <20120521111358.0e610876@resist.wooz.org> Message-ID: <2EDEF921-A67B-4B17-BAA0-D448114C26BD@NFSNet.org> If I am not mistaken, both git and bzr are capable of generating and displaying the same graphical structure. As for the merging of branches, git is perfectly capable of merging a branch as a single merge point in the graph (use the -no-ff option). And, I am sure that you could cause bzr to emulate the git "one at a time" incremental merge behavior, if you so wish. Good, or bad, those are not the defaults (unless you set your personal preferences to override the vendor default). Many (most?) users simply use the system default and never realize that they have other options. Again, I will comment that my preference for git is largely based on the lack of support for bzr on Mac OSX. If we had the same GUI support that is provided by, for example GitX, and we had integration with the Xcode IDE, then I am sure that I would not care which DVCS was used as the backend. But, IFAIK, that support is not available. And, it is through that support that I do almost all of the things that I need to do on a routine basis. For the few remaining cases, I do not mind reverting to the command line (with the man pages in another window since I never remember the esoteric syntax of each VCS). Perhaps we can have the best of both worlds by setting up a "bot" to export/import the bzr tree to a git tree on a routine basis. I presently maintain both the underlying .git and .bzr directories in my development trees. Richard On May 21, 2012, at 10:13 AM, Barry Warsaw wrote: > I don't want to side track too long into a vcs discussion, so I'll respond > here and then you can have the last word. :) > > On May 21, 2012, at 12:21 PM, Stephen J. Turnbull wrote: > >> Barry Warsaw writes: >> >>> I personally think that rebase is an abomination generally required >>> by workflow policies that try to overcome tool deficiencies. By >>> not *requiring* rebase (it is of course possible), it means that >>> all your intermediate commits are preserved >> >> No VCS "requires" rebase, or removing commits from history. > > Agreed, but just about every git fan I've ever talked to always emphasizes > rebase as an important part of the merge workflow. When I dig deeper into why > that is, it always seems to come down to this: when I merge your branch into > mine, all your intermediate commits get slapped right onto my branch, one at a > time. Which means that if your branch introduced a regression, and I want to > bisect to find it, I have to bisect through all your intermediate commits. > This has implications for logging too, which would show me all your > intermediate commits as well. If I saw that all the time, I'd think it would > suck too. > > Admittedly, I'm not speaking from rich first hand experience, so feel free to > correct the FUD. But I really like the bzr way of seeing my merge of your > branch as one clearly labeled revision on my branch. I can dig into your > intermediate commits if I want (there's often valuable information there), but > most of the time I don't care, and my tool allows me to not care, until I do. > >>> because sometimes they are useful. Most of the time you can ignore >>> them which is exactly how it should be, IMHO. >> >> This is the nub of the argument. bzr mandates a presentation of >> history that bzr fans like, and some folks don't. I'm not a big fan >> of bzr log -n# for any value of # AFAIK ;-), but I'm willing to try >> different things as they seem useful. > > There are some good graphical representations of that history, for folks who > like that sort of thing. I think they can make digging into those branch > sidings nicer. > >>> In a well-developed branch, that rationale should be included in >>> the intermediate commit messages of the proposed branch (not to >>> mention good comments in the code ). Rebasing that away just >>> seems *wrong* to me. >> >> That is not the purpose of rebase, and I doubt any well-managed >> project permits it. > > Isn't this essentially how the kernel works? When I talk to developers of > git-run projects, it does always seem to come down to this. > >>> As far as the attributions go, I think the best place to be >>> explicit is in the NEWS file. Folks getting Mailman via tarball or >>> distro package won't have access to the VCS history anyway. >> >> False. It's less convenient for them, but they can browse launchpad. > > If they can find it. I still think a NEWS file or ACKNOWLEDGMENTS file > (suitably maintained :/ ) is more accessible to more folks. > >> Anyway, the NEWS file is way too coarse for the purposes that Wacky >> and I have in mind. Eg, George may need some changes to the IArchiver >> interface, and send you a branch that makes them. But a crucial patch >> may have been suggested and supplied by a mentor. I trust that you'll >> mention George in NEWS, but will you even be aware of the >> contributions by third parties? > > Probably the best way to handle this is for George's NEWS file entries to > include that information. If George really did merge a mentor's branch for > the crucial patch, and then I merged George's branch, the history of that will > be reflected in the bzr revision history. It may be off in a 2-level deep > siding, but it's there. The usefulness of that seems independent of the vcs > being used. A plain text file in the tree is still going to be a better place > to record contributions, IMHO. > > -Barry > _______________________________________________ > Mailman-Developers mailing list > Mailman-Developers at python.org > http://mail.python.org/mailman/listinfo/mailman-developers > Mailman FAQ: http://wiki.list.org/x/AgA3 > Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ > Unsubscribe: http://mail.python.org/mailman/options/mailman-developers/richard%40nfsnet.org > > Security Policy: http://wiki.list.org/x/QIA9 From richard at NFSNet.org Mon May 21 18:24:27 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Mon, 21 May 2012 11:24:27 -0500 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <4FBA5EAE.9090603@state-of-mind.de> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> Message-ID: <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> I believe that it may be your intention to have kept "postorius" hidden. But I don't think that the actual implementation has accomplished that. Please see ~mailman-coders/postorius/trunk : /src/postorius/templates/postorius/base.html (revision 65) at lines 11 - 16 Clearly, this file is a part of the postorius app and not the dev_setup site. And you seem to have missed my point in suggesting that we deliver two themes. I recognize that Django has a good mechanism for the implementation IF the user templates are written in a generic manner. However, all too often, in many projects, I find that the actual code written fails to adhere to the necessary standards and is therefore very difficult to port to an alternate implementation. If we force ourselves to maintain two, significantly different, implementations, we are much more likely to remain within the design standards and thus have something that an end-user can readily customize for their own use. Richard On May 21, 2012, at 10:26 AM, Florian Fuchs wrote: > Hi, > > Am 20.05.12 16:22, schrieb Richard Wackerbarth: >> However, I am concerned that your implementation exposes "/postorius/" in the URLs and in the template names for the themes. > > It doesn't - it's a simple configuration issue. The URL namespace for > Postorius is defined in the *project's* urls modules (in our case > `dev_setup/urls.py`), *not* in Postorius'. >> I suggest that we deliver at least two themes. One would be in the style of "mailman" and the other that of "django". I suggest this because, if we cannot do both easily, it will provide some indication of the usability of our website structure. > > We already have a MAILMAN_THEME setting (set to 'default') which you > could easily change to something else and add another theme folder to > the templates/postorius folder. We did that exactly with the idea in > mind to deliver more than one theme with the application. > > However, I don't like the idea very much any more, because django > already has a very good system to override existing themes, either > through project-level overrides or through installing a "theme-only" app. > > Florian From barry at list.org Mon May 21 23:18:21 2012 From: barry at list.org (Barry Warsaw) Date: Mon, 21 May 2012 17:18:21 -0400 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <2EDEF921-A67B-4B17-BAA0-D448114C26BD@NFSNet.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> <87txzap6b0.fsf@uwakimon.sk.tsukuba.ac.jp> <20120521111358.0e610876@resist.wooz.org> <2EDEF921-A67B-4B17-BAA0-D448114C26BD@NFSNet.org> Message-ID: <20120521171821.21003b62@resist> On May 21, 2012, at 10:53 AM, Richard Wackerbarth wrote: >Again, I will comment that my preference for git is largely based on the lack >of support for bzr on Mac OSX. If we had the same GUI support that is >provided by, for example GitX, and we had integration with the Xcode IDE, >then I am sure that I would not care which DVCS was used as the backend. I'm pretty much a command line guy, so can't help much with the gui integration. But I do get that it would be useful. I could ask around if you want though. >Perhaps we can have the best of both worlds by setting up a "bot" to >export/import the bzr tree to a git tree on a routine basis. I presently >maintain both the underlying .git and .bzr directories in my development >trees. I don't know if github can import foreign vcs branches, but that might be one thing to investigate. As long as we don't get pull requests from git branches, I'd certainly support that. (Launchpad can import foreign vcses into bzr branches, though Mercurial will soon be deprecated due to bit rot in the bzr-hg plugin.) -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: not available URL: From f at state-of-mind.de Mon May 21 23:40:40 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Mon, 21 May 2012 23:40:40 +0200 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> Message-ID: <4FBAB658.2030206@state-of-mind.de> Am 21.05.12 18:24, schrieb Richard Wackerbarth: > I believe that it may be your intention to have kept "postorius" hidden. > But I don't think that the actual implementation has accomplished that. > > Please see ~mailman-coders/postorius/trunk > /base.html (revision > 65) at lines 11 - 16 If you are talking about the static file paths containing `postorius` I don't see why we should break out of this very useful convention (or why it should be contradictory to the goal to make postorius more customizable). Having the app name hard-coded in static file paths is pretty common. And for a good reason - for instance, if you use `manage.py collectstatic` - which has the sole purpose of making app assets available within a //... folder structure (and is essential for serving static files effectively and hassle-free). Do we want to be able to customize the namespace in page urls? Yes. Do we want to make it possible to override single postorius URLs (for instance if you just want to use the subsription page on your site)? Also yes. Those are basic django features and you can do that with Postorius, too. But if you want postorius to use different asset paths IMHO the django way to do it would be to just override base.html. What we could do though (we already have your bug report for that) is optimize base.html's block structure a bit. > And you seem to have missed my point in suggesting that we deliver two > themes. I recognize that Django has a good mechanism for the > implementation IF the user templates are written in a generic manner. > However, all too often, in many projects, I find that the actual code > written fails to adhere to the necessary standards and is therefore very > difficult to port to an alternate implementation. I agree, the goal is to keep the markup in the sub-templates (the ones that extend base.html) as simple and generic as possible. In order for them to work well even with a very different override of base.html. I'm glad for every inconsitency you can find and report on that side (or even fix it!). I'm sure there are things we can do better. It's still alpha code after all. Also, I'm very eager to clean-up the view code and add better testing at the moment. So we definitely can use some help with the templates. > If we force ourselves to maintain two, significantly different, > implementations, we are much more likely to remain within the design > standards and thus have something that an end-user can readily customize > for their own use. I agree - with the small exception that someone has to write that second theme... ;-) Florian From richard at NFSNet.org Tue May 22 00:38:18 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Mon, 21 May 2012 17:38:18 -0500 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <20120521171821.21003b62@resist> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> <87txzap6b0.fsf@uwakimon.sk.tsukuba.ac.jp> <20120521111358.0e610876@resist.wooz.org> <2EDEF921-A67B-4B17-BAA0-D448114C26BD@NFSNet.org> <20120521171821.21003b62@resist> Message-ID: <9799B910-5F9A-44D3-B961-A4A969690623@NFSNet.org> On May 21, 2012, at 4:18 PM, Barry Warsaw wrote: > On May 21, 2012, at 10:53 AM, Richard Wackerbarth wrote: > >> Perhaps we can have the best of both worlds by setting up a "bot" to >> export/import the bzr tree to a git tree on a routine basis. I presently >> maintain both the underlying .git and .bzr directories in my development >> trees. > > I don't know if github can import foreign vcs branches, but that might be one > thing to investigate. As long as we don't get pull requests from git > branches, I'd certainly support that. (Launchpad can import foreign vcses > into bzr branches, though Mercurial will soon be deprecated due to bit rot in > the bzr-hg plugin.) I will have to find out if fast-export | fast-import works as an incremental updater. If so, whether directly on github or on a server (mine or otherwise), we can have a cron-driven bot looking for changes and cross-posting them. (At least in the bzr-->git direction.) Richard From stephen at xemacs.org Tue May 22 02:51:43 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Tue, 22 May 2012 09:51:43 +0900 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <20120521111358.0e610876@resist.wooz.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <20120519222633.39baecd3@resist.wooz.org> <87txzap6b0.fsf@uwakimon.sk.tsukuba.ac.jp> <20120521111358.0e610876@resist.wooz.org> Message-ID: <87fwatox5s.fsf@uwakimon.sk.tsukuba.ac.jp> Barry Warsaw writes: > I don't want to side track too long into a vcs discussion, so I'll respond > here and then you can have the last word. :) > > On May 21, 2012, at 12:21 PM, Stephen J. Turnbull wrote: > >No VCS "requires" rebase, or removing commits from history. > > Agreed, but just about every git fan I've ever talked to always > emphasizes rebase [...]. [W]hen I merge your branch into mine, all > your intermediate commits get slapped right onto my branch, one at > a time. Which means that if your branch introduced a regression, > and I want to bisect to find it, I have to bisect through all your > intermediate commits. All true, but if it's my branch that introduced the regression, you have to bisect the whole thing either way. Worse, in your workflow, if you have 25 commits and I have 25 commits on our respective branches, it's not uncommon for bisect to "localize" the regression to the set of those 50 commits (ie, only the final merge commit exhibits the regression). The implication is that your workflow is happiest with many small feature branches; at the very least, bisect would not work well with kernel-style development where there are a fair number of long-lived feature branches. I don't think there are many projects like the kernel, though. Most projects are happier with many small feature branches. The point is simply that the kernel has special needs, and git is mostly developed by kernel developers, they are going to prefer the workflow they are used to. (Other projects may have more than a little kernel envy. :-) > This has implications for logging too, which would show > me all your intermediate commits as well. If I saw that all the > time, I'd think it would suck too. Touche -- but your comment about graphical log viewers applies here, too. > Admittedly, I'm not speaking from rich first hand experience, so > feel free to correct the FUD. But I really like the bzr way of > seeing my merge of your branch as one clearly labeled revision on > my branch. I can dig into your intermediate commits if I want > (there's often valuable information there), but most of the time I > don't care, and my tool allows me to not care, until I do. git allows this; you can select only merge commits for logging (and other DAG-traversal operations IIRC). It's not the default because the git and kernel developers prefer the rebase-based workflow. > > > In a well-developed branch, that rationale should be included in > > > the intermediate commit messages of the proposed branch (not to > > > mention good comments in the code ). Rebasing that away just > > > seems *wrong* to me. > > > >That is not the purpose of rebase, and I doubt any well-managed > >project permits it. > > Isn't this essentially how the kernel works? When I talk to developers of > git-run projects, it does always seem to come down to this. No, it's not. They don't "rebase away" the intermediate commits; they create a new presentation of the changes, sequencing the commits "as if" they were carefully planned, and crafting new commit messages as documentation of those changes. If you send a branch to Linus with change/message skew, you'd better be prepared for massive skin grafts in the near future (and that's the good case, it means your patch is deemed to have some socially redeeming value :-). > > > Folks getting Mailman via tarball or distro package won't have > > > access to the VCS history anyway. > > > >False. It's less convenient for them, but they can browse launchpad. > > If they can find it. I still think a NEWS file or ACKNOWLEDGMENTS file > (suitably maintained :/ ) is more accessible to more folks. No question incldued files are "more accessible to more folks", but the people who care in the way that Wacky and I are describing are generally going to have a checkout anyway. The "suitably maintained" caveat is also a biggie. > Probably the best way to handle this is for George's NEWS file entries to > include that information. If George really did merge a mentor's > branch That's why I used a "mentor" example. The mentor probably shouldn't be maintaining branches for application to George's code, right? But if the description is sufficiently explicit, the git attribution machinery allows a commit with "author:wacky committer:george". > A plain text file in the tree is still going to be a better place > to record contributions, IMHO. Depends on policy. I have a patch in the Emacs tree, but since RMS put it into final form, I don't have an AUTHORS entry. (And that's all right by me, but that's another story....) From stephen at xemacs.org Tue May 22 03:33:36 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Tue, 22 May 2012 10:33:36 +0900 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> Message-ID: <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> Richard Wackerbarth writes: > I believe that it may be your intention to have kept "postorius" > hidden. But I don't think that the actual implementation has > accomplished that. > > Please see ~mailman-coders/postorius/trunk : > /src/postorius/templates/postorius/base.html (revision 65) at lines > 11 - 16 > > Clearly, this file is a part of the postorius app and not the > dev_setup site. I don't understand your point. For better or worse, CSS is tied to the HTML it styles via id and class tags, and element nesting patterns. Another app for presenting list admin functions would have different HTML and different CSS. So a site which wishes to customize the appearance of postorius will need to add postorius-specific CSS anyway, which may as well be indicated by a path element in the URL. Note that STATIC_URL is site-specific, and if you want to add the postorius theme code in a site-specific place, add that place to the STATICFILES_DIRS setting. What am I missing? A different question: what happens if MAILMAN_THEME is set to "foo", and postorius doesn't have a "foo" theme? I think it would be obnoxious to require all customizers to customize everything. From richard at NFSNet.org Tue May 22 13:14:05 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Tue, 22 May 2012 06:14:05 -0500 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <261439C2-C140-41B1-BF59-5E52A08D38FB@NFSNet.org> On May 21, 2012, at 8:33 PM, Stephen J. Turnbull wrote: > Richard Wackerbarth writes: > >> I believe that it may be your intention to have kept "postorius" >> hidden. But I don't think that the actual implementation has >> accomplished that. >> >> Please see ~mailman-coders/postorius/trunk : >> /src/postorius/templates/postorius/base.html (revision 65) at lines >> 11 - 16 >> >> Clearly, this file is a part of the postorius app and not the >> dev_setup site. > > I don't understand your point. For better or worse, CSS is tied to > the HTML it styles via id and class tags, and element nesting > patterns. Another app for presenting list admin functions would have > different HTML and different CSS. So a site which wishes to customize > the appearance of postorius will need to add postorius-specific CSS > anyway, which may as well be indicated by a path element in the URL. Yes, but one of the design points of Django is that, without a great deal of effort, the user can customize his site URLs in any manner. Further, doing so follows the DRY principle. Embedding the actual text stream "/postorius/" in templates, particularly multiple times, is a violation of this design. Following the design, the user will specify the appropriate prefix for the subsystem dependent static files as a part of the settings. The default value will include "postorius". However, since most users view the GUI to be a part of the larger mailing list system, I could argue that "mailman" might be a better choice. > Note that STATIC_URL is site-specific, and if you want to add the > postorius theme code in a site-specific place, add that place to the > STATICFILES_DIRS setting. STATICFILES_DIRS relates to the server-side storage of files. I am talking about the client-visible URLs used to reference them. > What am I missing? You are also missing the fact that postorius is intended to be a subsystem within a larger website, As such, it should be obtaining its "boilerplate", including the basic page layout, navigation menu structure, css, etc. from the parent website. That website should not be expected to invert the hierarchy and use files within the postorius namespace for pages that have nothing to do with the administration of the mailing lists. Remember, we must assume that there also might be some other subsystem (such as an e-commerce storefront) that will coexist with the mailing list. We should assume that it would follow the same structural design. Since both of these subsystems cannot be the source of the essential boilerplate, we would have to force one of them to defer to the other. It is a poor design to create an artificial dependency between the two subsystems. Rather, both of the subsystems should defer to the main site since they are a subsection of it. > A different question: what happens if MAILMAN_THEME is set to "foo", > and postorius doesn't have a "foo" theme? I think it would be > obnoxious to require all customizers to customize everything. I agree. However, I think that it is a mistake to build themes for the entire website into the postorius app itself. Using a theme app is a better design. Thus, "MAILMAN_THEME" would apply only to the specific content portion of the pages involving mailing list settings, etc. Since much of the "look and feel" for that content should be inherited from the surrounding page, I think it reasonable to require that the selected postorius theme components exist. Richard From f at state-of-mind.de Tue May 22 13:51:53 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Tue, 22 May 2012 13:51:53 +0200 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <4FBB7DD9.8040004@state-of-mind.de> Am 22.05.12 03:33, schrieb Stephen J. Turnbull: > A different question: what happens if MAILMAN_THEME is set to "foo", > and postorius doesn't have a "foo" theme? I think it would be > obnoxious to require all customizers to customize everything. That's why I'd like to get rid of the MAILMAN_THEME setting rather sooner than later. It seemed like a good idea at the time, but that was in Django 1.2 days. Since 1.3 (with the introduction of contrib.staticfiles) there's no benefit in doing it like this any more. If you ask me, Postorius should ship with a default theme and make alternatives available as installable "theme-only" apps. If a theme is available on pypi it takes about two command line actions and one change to your settings to install a new theme. Florian From f at state-of-mind.de Tue May 22 14:23:03 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Tue, 22 May 2012 14:23:03 +0200 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <261439C2-C140-41B1-BF59-5E52A08D38FB@NFSNet.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> <261439C2-C140-41B1-BF59-5E52A08D38FB@NFSNet.org> Message-ID: <4FBB8527.4070007@state-of-mind.de> Am 22.05.12 13:14, schrieb Richard Wackerbarth: > On May 21, 2012, at 8:33 PM, Stephen J. Turnbull wrote: >> I don't understand your point. For better or worse, CSS is tied >> to the HTML it styles via id and class tags, and element nesting >> patterns. Another app for presenting list admin functions would >> have different HTML and different CSS. So a site which wishes to >> customize the appearance of postorius will need to add >> postorius-specific CSS anyway, which may as well be indicated by a >> path element in the URL. > > Yes, but one of the design points of Django is that, without a great > deal of effort, the user can customize his site URLs in any manner. > Further, doing so follows the DRY principle. Embedding the actual > text stream "/postorius/" in templates, particularly multiple times, > is a violation of this design. Again: This is not generally true. It is true for hard-coded *page* URLs in templates. One really should use the `url` template tag for this. So *if* you find hard-coded *page* links in postorius, consider it a bug that needs to be fixed. But having the app name (in our case: the text stram "postorius") appear hard-coded in *static file* paths (CSS/JS etc.) in base.html is, in fact, a wide-spread and very useful Django convention. After all, the app's name is "postorius" and as such it is the reference point for Django, needed for template overrides and static file collection. Even Django's own contrib apps handle it like this. > Following the design, the user will specify the appropriate prefix > for the subsystem dependent static files as a part of the settings. > The default value will include "postorius". However, since most users > view the GUI to be a part of the larger mailing list system, I could > argue that "mailman" might be a better choice. A prefix is not the recommended approach any more. In fact the "admin_media_prefix" context variable in django's own contrib.admin app is now deprecated, because that's exactly what contrib.staticfiles/collectstatic and template overrides can do better. If you'd like to have urls like "/mailman/lists/new" instead of "/postorius/lists/new", or even "/mailman/come/on/lets/add/a/list": Fine, you can do that. But if you want to use different static assets, you need to override the template. > You are also missing the fact that postorius is intended to be a > subsystem within a larger website, There is probably more than one opinion on what Postorius is intended to be. If you ask me, it is more than just that. A subsystem in an existing site, yes. But also a stand-alone mailing list management app that you might serve on a specific (sub)domain. And also (hopefully, in the future) part of a collection of other mailman-related django apps (although in that case, you could argue that it's a subsystem). > that it would follow the same structural design. Since both of these > subsystems cannot be the source of the essential boilerplate, we > would have to force one of them to defer to the other. It is a poor > design to create an artificial dependency between the two subsystems. > Rather, both of the subsystems should defer to the main site since > they are a subsection of it. I really like the idea of independent and easily pluggable apps. But it obviously has some downsides. I bet we're not the first ones argueing about the best way to plug different Django apps together. That's why I'd rather talk about how to find a "good solution" but about a "poor design". >> A different question: what happens if MAILMAN_THEME is set to >> "foo", and postorius doesn't have a "foo" theme? I think it would >> be obnoxious to require all customizers to customize everything. > > I agree. However, I think that it is a mistake to build themes for > the entire website into the postorius app itself. Using a theme app > is a better design. See my reply to Steve's previous post... Florian From richard at NFSNet.org Tue May 22 17:12:17 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Tue, 22 May 2012 10:12:17 -0500 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <4FBB8527.4070007@state-of-mind.de> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> <261439C2-C140-41B1-BF59-5E52A08D38FB@NFSNet.org> <4FBB8527.4070007@state-of-mind.de> Message-ID: <9B35B5A0-4BB6-4311-BCD6-1FE7B6A66F07@NFSNet.org> On May 22, 2012, at 7:23 AM, Florian Fuchs wrote: > Am 22.05.12 13:14, schrieb Richard Wackerbarth: >> On May 21, 2012, at 8:33 PM, Stephen J. Turnbull wrote: >>> I don't understand your point. For better or worse, CSS is tied >>> to the HTML it styles via id and class tags, and element nesting >>> patterns. Another app for presenting list admin functions would >>> have different HTML and different CSS. So a site which wishes to >>> customize the appearance of postorius will need to add >>> postorius-specific CSS anyway, which may as well be indicated by a >>> path element in the URL. >> >> Yes, but one of the design points of Django is that, without a great >> deal of effort, the user can customize his site URLs in any manner. >> Further, doing so follows the DRY principle. Embedding the actual >> text stream "/postorius/" in templates, particularly multiple times, >> is a violation of this design. > > Again: This is not generally true. It is true for hard-coded *page* URLs > in templates. But you are now making a distinction between assets based on their method of generation. Whether a file is .html , .css, or .js , django can generate it from templates. It is only for server efficiency that a distinction is made. Further, unless the content is customized for the subsystem, I would argue that the asset should appear in a global namespace and not within the namespace of the subsystem. For example, it would be a poor practice to deliver content for ".../jquery-1.7.1.js" from within the subsystem which is different from that which was supplied by the vendor. Why, therefore, should ".../postorius/jquery-1.7.1.js" ever exist? > One really should use the `url` template tag for this. Equally, there SHOULD be an equivalent mechanism for the static content. > But having the app name (in our case: the text stream "postorius") appear > hard-coded in *static file* paths (CSS/JS etc.) in base.html is, in > fact, a wide-spread and very useful Django convention. Only because that was an expedient implementation to which most users do not object. > After all, the app's name is "postorius" and as such it is the reference point for > Django, needed for template overrides and static file collection. As an internal name, I agree. However from an external view, I think that it is more confusing than helpful. I also think that using the entire FQDN in the website URLs is a mistake. (I have no problem with them in the REST interface) There are three obvious use cases. I believe that the most common usage will be the middle one. Case 1) One website serves mailing lists from multiple email domains. Here, we need to specify both the list name and the domain in each get request in order to be able to handle duplicated list names in separate email domains. Case 2) The website serves multiple mailing lists, all from the same email domain. Here, the email domain need not be a part of the URL because it is implied by the website domain. The django view handling the transaction should supply the email domain for processing purposes. Case 3) The website serves only a single mailing list. Here the django view can supply both the list name and the email domain. Actually, the urlpattern mechanism should be capable of parsing the different URL cases and a single view can handle all three cases. So, we could supply the includable url patterns for each case and the installer could activate the appropriate one. > A prefix is not the recommended approach any more. In fact the > "admin_media_prefix" context variable in django's own contrib.admin app > is now deprecated, because that's exactly what contrib.staticfiles/collectstatic and template overrides can do better. Actually, I think that "media" was intended to be for uploaded content, "static" is for invariant install-time content, and templates are for generated upon request content. >> You are also missing the fact that postorius is intended to be a >> subsystem within a larger website, > > There is probably more than one opinion on what Postorius is intended to > be. If you ask me, it is more than just that. A subsystem in an existing > site, yes. But also a stand-alone mailing list management app that you > might serve on a specific (sub)domain. But, that is just a special case of a trivial master site of which the postorious administration interface, and quite likely a mail archive interface are the only subsystems. From marshman at gmail.com Tue May 22 19:49:33 2012 From: marshman at gmail.com (Jeff Marshall) Date: Tue, 22 May 2012 10:49:33 -0700 Subject: [Mailman-Developers] Mailman 3 configuration questions and feedback Message-ID: Hey everybody. I've been playing with 3.0.0b1 and Postorius. I have some questions as well as some initial feedback. I am assuming many of these are known issues or works-in-progress so I apologize ahead of time. * How do I add another person as an administrator to either a single list or to my full mailman installation? I don't see this in either Postorius or the command line tools. * How do I enabling public archiving? I see the archive mentions in the config files but I'm not finding it clear how to flip it on. * The BrowserID system on Postorius logs me out all the time, even after just a few page views. I'm constantly having to hit the sign-in button again. If I am trying to perform an administrative function I have to do it very quickly after signing in or else I'm logged out again. (Mac OS X, Chrome). * The Held Messages page on Postorius only shows me the subject line of the messages. It seems like the body of the message will also be important for reviewing the held message. * I get an error dump whenever I accept a held message on Postorius. The message goes through, though. Exception Type: AttributeError Exception Value: 'module' object has no attribute 'successful' Exception Location: /home/marshman/mailman/postorius/src/postorius/views.py in accept_held_message, line 405 * Postorius doesn't seem to have confirmation messages after changing a setting or adding a subscriber. It leaves me uncertain whether my change or subscriber addition went through. * Postorius could use a page showing the list members. * Is there a plan for exposing some list traffic stats on the Mailman API and on Postorius? It would be handy to see # of messages received today, etc, especially at this stage when I'm trying to figure out what is working or not. * It might be handy in the Postorius docs to mention how to run a Django server on a public url; I hadn't used Django before so I was spinning my wheels for a bit until I dug this up: $ python manage.py runserver 0.0.0.0:8000 * While attempting to build the docs I get this: $ python setup.py build_sphinx ... ... File "/usr/local/lib/python2.7/dist-packages/sphinx/config.py", line 216, in __init__ exec code in config File "/home/marshman/mailman/mailman-3.0.0b1/conf.py", line 54, in from mailman.version import VERSION ImportError: No module named version I'm happy to file tickets on Launchpad but I didn't want to do so until I understood what is already in progress. Thanks Jeff The Mail Archive From barry at list.org Wed May 23 05:17:17 2012 From: barry at list.org (Barry Warsaw) Date: Tue, 22 May 2012 23:17:17 -0400 Subject: [Mailman-Developers] Mailman 3 configuration questions and feedback In-Reply-To: References: Message-ID: <20120522231717.6b8198c1@resist.wooz.org> On May 22, 2012, at 10:49 AM, Jeff Marshall wrote: >Hey everybody. I've been playing with 3.0.0b1 and Postorius. I have >some questions as well as some initial feedback. I am assuming many >of these are known issues or works-in-progress so I apologize ahead of >time. Glad you're taking a look Jeff. I'll answer questions about the core and leave Postorius to the web guys. :) >* How do I add another person as an administrator to either a single >list or to my full mailman installation? I don't see this in either >Postorius or the command line tools. This is not exposed in the cli right now. It's certainly not hard to do from the internal API, and in fact would be fairly easily to write as a 'withlist' script. The closes thing right now is the 'members' subcommand, which takes an --add switch. This is still pretty dumb though because it's only capable of adding regular members to a single list. What kind of cli would you want to see? I'm not sure whether this functionality should go in the 'members' subcommand, or a separate subcommand. I'm also not frankly certain that 'members --add' is a very good cli. (Possibly, 'members' should morph into a read-only command, with a separate command for updating.) >* How do I enabling public archiving? I see the archive mentions in >the config files but I'm not finding it clear how to flip it on. Right now, it's a little convoluted. (I'm still trying to get the schema migration branch working, which could change some of this.) The mailman.cfg file is used only to globally enable, disable, or define archivers available to Mailman. Each mailing list itself then has two variables which essentially expose three states: * mlist.archive (bool) - whether the mailing list archives messages at all * mlist.archive_private (bool) - whether archives for the list are public or private. Once the schema migration branch lands, this will be one variable mlist.archive_policy with an enum value, something like ArchivePolicy.never, ArchivePolicy.private, ArchivePolicy.public. Now, what actually happens with these values is currently left up to the individual archivers, with the mail-archive archiver being the only one that looks at mlist.archive_private. If this value is true, it will simply ignore any messages handed to it. None of the other archivers currently do anything with this value. mlist.archive *is* used globally in a few places. It informs whether the List-Archive and Archived-At headers get added, but more importantly, if this value is false, the message will not even get enqueued to the archive runner. >* Is there a plan for exposing some list traffic stats on the Mailman >API and on Postorius? It would be handy to see # of messages received >today, etc, especially at this stage when I'm trying to figure out >what is working or not. There is a summer of code project addressing this. >I'm happy to file tickets on Launchpad but I didn't want to do so >until I understood what is already in progress. That's the state of affairs as regards to the core. Do feel free to file bugs on the cli for adding owners and moderators. Keep in mind that some bits of the archiver infrastructure will change with the schema migration. Please tag bugs with 'mailman3' so they show up on my radar. :) Cheers, -Barry From stephen at xemacs.org Wed May 23 06:19:12 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Wed, 23 May 2012 13:19:12 +0900 Subject: [Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius In-Reply-To: <261439C2-C140-41B1-BF59-5E52A08D38FB@NFSNet.org> References: <20120519112604.13832.45151.codereview@gac.canonical.com> <2F2A79C2-F580-44AD-B1F0-CBE818551F1A@nfsnet.org> <4FB81ACE.1010603@gmail.com> <0682FCE1-9F5A-4579-AFE5-62EBF21C912B@nfsnet.org> <4FBA5EAE.9090603@state-of-mind.de> <89A9DBAA-746B-49AC-ACB9-18B064CEC1AF@NFSNet.org> <87ehqdov7z.fsf@uwakimon.sk.tsukuba.ac.jp> <261439C2-C140-41B1-BF59-5E52A08D38FB@NFSNet.org> Message-ID: <877gw3pm0v.fsf@uwakimon.sk.tsukuba.ac.jp> Richard Wackerbarth writes: > Yes, but one of the design points of Django is that, without a > great deal of effort, the user can customize his site URLs in any > manner. Further, doing so follows the DRY principle. Embedding the > actual text stream "/postorius/" in templates, particularly > multiple times, is a violation of this design. > > Following the design, the user will specify the appropriate prefix > for the subsystem dependent static files as a part of the > settings. The default value will include "postorius". However, > since most users view the GUI to be a part of the larger mailing > list system, I could argue that "mailman" might be a better choice. I can't speak to the "multiple times" issue (it does sound like a violation of DRY), but after arguing vehemently for multiple themes, you now seem to be mistaking Postorius for a unique part of Mailman (core). It's not. One could even imagine us sharing a site and you insist on using Postorius for your admin duties while I prefer CeterisAdmin, and having both installed. Postorius-specific components of a theme will need to be in a Postorius-specific namespace. > > Note that STATIC_URL is site-specific, and if you want to add the > > postorius theme code in a site-specific place, add that place to the > > STATICFILES_DIRS setting. > > STATICFILES_DIRS relates to the server-side storage of files. I am > talking about the client-visible URLs used to reference them. > > > What am I missing? > > You are also missing the fact that postorius is intended to be a > subsystem within a larger website, As such, it should be obtaining > its "boilerplate", including the basic page layout, navigation menu > structure, css, etc. from the parent website. I'm beginning to see your point, and I think I'm going to stay far away from it (and most especially not devote any implementation effort to it). AIUI, Mailman itself doesn't currently provide a website (although maybe it should, limited to the purpose of providing a common framework for inserting Mailman-related apps into a larger web site), and who knows what a "larger website" might provide. So I don't see how to implement that requirement. > That website should not be expected to invert the hierarchy and use > files within the postorius namespace for pages that have nothing to > do with the administration of the mailing lists. Why would it do that anyway? (I concede your jquery example, but I don't think that would be hard to fix up. The base template and base CSS are hairballs OTOH.) What I would expect is a (hopefully minor) violation of DRY: 1. Designer designs Big Web Site. 2. Admin installs Mailman and Postorius. 3. Designer adds BigWebSite theme to Postorius (not a problem for Postorius-specific aspects) 4. including a BigWebSite base template and CSS (DRY violation!) 5. Admin sets MAILMAN_THEME to "BigWebSite". Sure, I'd love to say "Postorius will inherit from the Big Web Site, so we can omit 4", but I don't think we can. > We should assume that it would follow the same structural > design. I disagree. Postorius is being built so we can throw it away. If we're real lucky, maybe we won't have to, and if it's sufficiently modular, maybe we can get away with only redoing the base template or something like that. But trying to make it all things to all Big Web Sites now is imposing a huge burden on the Postorius implementers, because it's almost certain they will get it wrong for some Big Web Sites. Let's leave them to do what they can get right. Also, Postorius is an admin function, with complex internal navigation needs. I could see trying to make the user interface for managing one's subscriptions conformant to a larger design, but the list and site admins are necessarily going to see a Postorius-specific navigation scheme. It might be artistically better to leave that entirely up to Postorius. > dependency between the two subsystems. Rather, both of the > subsystems should defer to the main site since they are a > subsection of it. That would be OK if we had a specification of "main site" (specifically how themes and navigation are implemented). Do we? I don't see one (I don't even see reason to suppose it will be implemented in Django!), but I may be missing something (I'm not a web designer). From f at state-of-mind.de Thu May 24 13:53:40 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Thu, 24 May 2012 13:53:40 +0200 Subject: [Mailman-Developers] Mailman 3 configuration questions and feedback In-Reply-To: References: Message-ID: <4FBE2144.2010103@state-of-mind.de> Hi Jeff, On 05/22/2012 07:49 PM, Jeff Marshall wrote: > Hey everybody. I've been playing with 3.0.0b1 and Postorius. I have > some questions as well as some initial feedback. I am assuming many > of these are known issues or works-in-progress so I apologize ahead of > time. > > * How do I add another person as an administrator to either a single > list or to my full mailman installation? I don't see this in either > Postorius or the command line tools. As far as Postorius is concerned, this is indeed work in progress. At the moment you can add new superusers (for the full Postorius installation) via the command line from the dev_setup directory: $ python manage.py createsuperuser > * The BrowserID system on Postorius logs me out all the time, even > after just a few page views. I'm constantly having to hit the sign-in > button again. If I am trying to perform an administrative function I > have to do it very quickly after signing in or else I'm logged out > again. (Mac OS X, Chrome). My first guess was that it's a problem with browser privacy settings. So I tried to reproduce the problem with different cookie-settings - session-only, no 3rd party cookies, all cookies allowed. Still everything worked fine. I guess you do allow at least session-based cookies (otherwise you wouldn't have been able to log in in the first place). Is it possible that you got thrown out after you got an error? If so, could you post the exception type displayed in the dump? Does that happen only with browserid or also when you're logged-in with the superuser account created on syncdb?? > * The Held Messages page on Postorius only shows me the subject line > of the messages. It seems like the body of the message will also be > important for reviewing the held message. +1 ...only I think the msg body currently isn't exposed by the MM API (@Barry, can you confirm that?), in which case we would need two bug reports: One for mailman (expose body of held messages) and one for Postorius (show held msg body). > * I get an error dump whenever I accept a held message on Postorius. > The message goes through, though. > > Exception Type: AttributeError > Exception Value: > 'module' object has no attribute 'successful' > Exception Location: > /home/marshman/mailman/postorius/src/postorius/views.py in > accept_held_message, line 405 This is a bug. Feel free to file a bug report on LP. Otherwise I will... ;-) > * Postorius doesn't seem to have confirmation messages after changing > a setting or adding a subscriber. It leaves me uncertain whether my > change or subscriber addition went through. +1 for confirmation messages on settings changes etc. But you should see a confirmation message after subscribing/unsubscribing (displayed just below the page header). > * Postorius could use a page showing the list members. +1 > * Is there a plan for exposing some list traffic stats on the Mailman > API and on Postorius? It would be handy to see # of messages received > today, etc, especially at this stage when I'm trying to figure out > what is working or not. Like Barry said: Luckily, there's a GSOC student working on metrics. > * It might be handy in the Postorius docs to mention how to run a > Django server on a public url; I hadn't used Django before so I was > spinning my wheels for a bit until I dug this up: > > $ python manage.py runserver 0.0.0.0:8000 You should use the django dev server only for testing. Writing a tutorial on how to run Postorius using Apache has been on my todo list for a while. There are a number of tutorials out there on Django/Apache though... (But I should still finally write that thing... ;-) > I'm happy to file tickets on Launchpad but I didn't want to do so > until I understood what is already in progress. There's no reason why you shouldn't. And thanks a lot for your feedback! Florian From barry at list.org Thu May 24 16:29:34 2012 From: barry at list.org (Barry Warsaw) Date: Thu, 24 May 2012 10:29:34 -0400 Subject: [Mailman-Developers] Mailman 3 configuration questions and feedback In-Reply-To: <4FBE2144.2010103@state-of-mind.de> References: <4FBE2144.2010103@state-of-mind.de> Message-ID: <20120524102934.55f7eedd@resist.wooz.org> On May 24, 2012, at 01:53 PM, Florian Fuchs wrote: >+1 ...only I think the msg body currently isn't exposed by the MM API >(@Barry, can you confirm that?), in which case we would need two bug reports: >One for mailman (expose body of held messages) and one for Postorius (show >held msg body). The body of the message, as a text blob, should be accessible via the REST API. http://packages.python.org/mailman/src/mailman/rest/docs/moderation.html Cheers, -Barry From marshman at gmail.com Thu May 24 18:39:51 2012 From: marshman at gmail.com (Jeff Marshall) Date: Thu, 24 May 2012 09:39:51 -0700 Subject: [Mailman-Developers] Mailman 3 configuration questions and feedback In-Reply-To: <4FBE2144.2010103@state-of-mind.de> References: <4FBE2144.2010103@state-of-mind.de> Message-ID: Florian & Barry, thank you for the replies. Very helpful information. On Thu, May 24, 2012 at 4:53 AM, Florian Fuchs wrote: > $ python manage.py createsuperuser Great, this worked. >> * The BrowserID system on Postorius logs me out all the time, even >> after just a few page views. ?I'm constantly having to hit the sign-in >> button again. ?If I am trying to perform an administrative function I >> have to do it very quickly after signing in or else I'm logged out >> again. ?(Mac OS X, Chrome). > > > My first guess was that it's a problem with browser privacy settings. So I > tried to reproduce the problem with different cookie-settings - > session-only, no 3rd party cookies, all cookies allowed. Still everything > worked fine. I guess you do allow at least session-based cookies (otherwise > you wouldn't have been able to log in in the first place). I'm using Chrome (19.0.1084.46) on the Mac (10.7.3) with all default settings on the browser. I'll file a ticket with the info. Please let me know if there is some debug tracing I can turn on that would help track it down. > Is it possible that you got thrown out after you got an error? If so, could > you post the exception type displayed in the dump? There's no error when I get logged out. It simply loses my logged-in state. > Does that happen only with browserid or also when you're logged-in with the > superuser account created on syncdb?? I went ahead and created a superuser account via the command line like you mentioned. Logging in with this superuser account works flawlessly - I haven't been logged out yet, whereas I would have been several times via BrowserID. I'll go ahead and files tickets on the other ones we discussed on this thread. Thanks again Jeff From richard at NFSNet.org Thu May 24 19:06:40 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Thu, 24 May 2012 12:06:40 -0500 Subject: [Mailman-Developers] [Bug 1004049] [NEW] Held messages show display message body In-Reply-To: <20120524165042.25997.30084.malonedeb@gac.canonical.com> References: <20120524165042.25997.30084.malonedeb@gac.canonical.com> <20120524165042.25997.30084.malonedeb@gac.canonical.com> Message-ID: <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> How do you think that this should work? Should we always display at least a part of the message as a part of the list? Or should we display only the subject and have a linkage to the body of the message, perhaps as a pop up window? On May 24, 2012, at 11:50 AM, Jeff Marshall wrote: > Public bug reported: > > The Held Messages page on Postorius only shows the subject line of the > messages. It seems like the body of the message will also be important > for reviewing the held message. From marshman at gmail.com Thu May 24 19:12:25 2012 From: marshman at gmail.com (Jeff Marshall) Date: Thu, 24 May 2012 10:12:25 -0700 Subject: [Mailman-Developers] [Bug 1004049] [NEW] Held messages show display message body In-Reply-To: <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> References: <20120524165042.25997.30084.malonedeb@gac.canonical.com> <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> Message-ID: I would recommend displaying only the subject line like you are now and having a button that displays the body in a pop-up modal. Thanks On Thu, May 24, 2012 at 10:06 AM, Richard Wackerbarth wrote: > How do you think that this should work? > > Should we always display at least a part of the message as a part of the list? Or should we display only the subject and have a linkage to the body of the message, perhaps as a pop up window? > > On May 24, 2012, at 11:50 AM, Jeff Marshall wrote: > >> Public bug reported: >> >> The Held Messages page on Postorius only shows the subject line of the >> messages. ?It seems like the body of the message will also be important >> for reviewing the held message. > > _______________________________________________ > Mailman-Developers mailing list > Mailman-Developers at python.org > http://mail.python.org/mailman/listinfo/mailman-developers > Mailman FAQ: http://wiki.list.org/x/AgA3 > Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/ > Unsubscribe: http://mail.python.org/mailman/options/mailman-developers/marshman%40gmail.com > > Security Policy: http://wiki.list.org/x/QIA9 From iane at sussex.ac.uk Fri May 25 10:54:50 2012 From: iane at sussex.ac.uk (Ian Eiloart) Date: Fri, 25 May 2012 08:54:50 +0000 Subject: [Mailman-Developers] [Bug 1004049] [NEW] Held messages show display message body In-Reply-To: <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> References: <20120524165042.25997.30084.malonedeb@gac.canonical.com> <20120524165042.25997.30084.malonedeb@gac.canonical.com> <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> Message-ID: <71A5D229-32C9-43DB-A156-6BC3FE3D6E97@sussex.ac.uk> On 24 May 2012, at 18:06, Richard Wackerbarth wrote: > > How do you think that this should work? > > Should we always display at least a part of the message as a part of the list? Or should we display only the subject and have a linkage to the body of the message, perhaps as a pop up window? Sorry, ignore the "perhaps per thread" comment on my last. I was answering a different question. I think that, if there's only one message, then display the body. If there are fewer than, say, five, then display a few lines of the body. With more than that, display only the subject line. But, for each message, it should be quick to pop up a few lines of the message body. Perhaps a disclosure triangle, or something. -- Ian Eiloart Postmaster, University of Sussex +44 (0) 1273 87-3148 From iane at sussex.ac.uk Fri May 25 10:50:42 2012 From: iane at sussex.ac.uk (Ian Eiloart) Date: Fri, 25 May 2012 08:50:42 +0000 Subject: [Mailman-Developers] [Bug 1004049] [NEW] Held messages show display message body In-Reply-To: <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> References: <20120524165042.25997.30084.malonedeb@gac.canonical.com> <20120524165042.25997.30084.malonedeb@gac.canonical.com> <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> Message-ID: <90AE5ABD-42EA-4780-B963-9EEE43D11EC4@sussex.ac.uk> On 24 May 2012, at 18:06, Richard Wackerbarth wrote: > > How do you think that this should work? > > Should we always display at least a part of the message as a part of the list? Or should we display only the subject and have a linkage to the body of the message, perhaps as a pop up window? > I think that an option to display the first n < 5 or so unquoted lines of the body would be useful. Perhaps with a checkbox to toggle that option on the displayed page. Perhaps per thread. Keep it simple, though. -- Ian Eiloart Postmaster, University of Sussex +44 (0) 1273 87-3148 From pingou at pingoured.fr Fri May 25 11:18:57 2012 From: pingou at pingoured.fr (Pierre-Yves Chibon) Date: Fri, 25 May 2012 11:18:57 +0200 Subject: [Mailman-Developers] HyperKitty MongoDB vs PostgreSQL. Message-ID: <1337937537.8091.19.camel@ambre.pingoured.fr> Dear all, It has been some time since the last info regarding HyperKitty, but the project has made some progress. I have implemented to database interface that I was presented already a month ago [1]. So now there is a standalone project/library, KittyStore [2] which provides an interface to the database. It defines an interface which can then be implemented for whatever database system you would like. At the moment it covers MongoDB and PostgreSQL. Once I implemented this interface I tried to solve the question of which database system should we primarily focus on. I wrote a small comparison test of the two systems on an RHEL6 system [3] (I still have to publish the results for F17). The difference between the two databases system is not so large (1s for a query that already takes 6 seconds) and there was not any tuning of the servers. So I think the advantage of having only one back-end for mailman and its archive is worth this time difference in the results (which might anyway get even better). Thus we will move forward with PostgreSQL as a back-end for HyperKitty. The good news is that HyperKitty already works fine with PostgreSQL and KittyStore (if you use the correct branch [4]). However, we have to rebuild our test server, so we cannot show you how the latest version works right now. So all is nicely getting in place for Aamir to start working on his project and for HK to get further down the road :) I think that's about all I wanted to say, fire away if you have questions! Best regards, Pierre [1] http://mail.python.org/pipermail/mailman-developers/2012-April/022012.html [2] https://github.com/pypingou/kittystore [3] http://blog.pingoured.fr/index.php?post/2012/05/20/PostgreSQL-vs-MongoDB [4] http://bzr.fedorahosted.org/bzr/hyperkitty/rdbms/files From barry at list.org Fri May 25 17:03:10 2012 From: barry at list.org (Barry Warsaw) Date: Fri, 25 May 2012 11:03:10 -0400 Subject: [Mailman-Developers] HyperKitty MongoDB vs PostgreSQL. In-Reply-To: <1337937537.8091.19.camel@ambre.pingoured.fr> References: <1337937537.8091.19.camel@ambre.pingoured.fr> Message-ID: <20120525110310.478c8b41@limelight.wooz.org> On May 25, 2012, at 11:18 AM, Pierre-Yves Chibon wrote: >Thus we will move forward with PostgreSQL as a back-end for HyperKitty. >The good news is that HyperKitty already works fine with PostgreSQL and >KittyStore (if you use the correct branch [4]). >However, we have to rebuild our test server, so we cannot show you how >the latest version works right now. I haven't looked, but is it possible to use an intermediate layer like an ORM which would allow a user to use different databases under the hood? For example, the core is written using Storm, so is pretty easy to use any database that Storm supports. Currently, because of minor SQL differences, this means SQLite and PostgreSQL, but it should be easy for someone to contribute MySQL code. An nosql database might be harder though because that doesn't fit naturally into Storm's view of the world. -Barry From a.badger at gmail.com Fri May 25 17:59:02 2012 From: a.badger at gmail.com (Toshio Kuratomi) Date: Fri, 25 May 2012 08:59:02 -0700 Subject: [Mailman-Developers] HyperKitty MongoDB vs PostgreSQL. In-Reply-To: <20120525110310.478c8b41@limelight.wooz.org> References: <1337937537.8091.19.camel@ambre.pingoured.fr> <20120525110310.478c8b41@limelight.wooz.org> Message-ID: <20120525155901.GG2569@unaka.lan> On Fri, May 25, 2012 at 11:03:10AM -0400, Barry Warsaw wrote: > On May 25, 2012, at 11:18 AM, Pierre-Yves Chibon wrote: > > >Thus we will move forward with PostgreSQL as a back-end for HyperKitty. > >The good news is that HyperKitty already works fine with PostgreSQL and > >KittyStore (if you use the correct branch [4]). > >However, we have to rebuild our test server, so we cannot show you how > >the latest version works right now. > > I haven't looked, but is it possible to use an intermediate layer like an ORM > which would allow a user to use different databases under the hood? For > example, the core is written using Storm, so is pretty easy to use any > database that Storm supports. Currently, because of minor SQL differences, > this means SQLite and PostgreSQL, but it should be easy for someone to > contribute MySQL code. An nosql database might be harder though because that > doesn't fit naturally into Storm's view of the world. > We're using SQLAlchemy i(a different ORM) to abstract the database layer. That means the big three open source solutions (sqlite, postgres, and mysql) and proprietary ones like oracle should all be supported. However, we're thinking about using fulltext search indexes which would mean tying it to specific backends. It may be possible to run in a degraded mode (searches being slower... but for small to medium lists this is likely fine) so we could keep the backend abstraction while running faster on certain databases.. MongoDB is not a relational database so using an ORM seems like a bit of a hack. People have adapted SQLAlchemy for use with MongoDB but I'm not sure what sacrifices they had to make to make that work. Running comparisons using postgres was actually a choice dictated by our experience with the Core. In our use, using the sqlite backend quickly resulted in database locks that we couldn't figure our way out of. So that effectively left us with postgres as the only db for the core. If admins have to run postgres for the Core then the thinking is that it wouldn't be hard for them to also run it for the archiver. I've never had the sqlite issue with SQLAlchemy,though, so we could probably support a non-fulltext-optimized search in sqlite without doing much of anything. Note that pingou's current blog post is done without fulltext indexes on a moderate sized list and we made the decision to focus on postgres from those benchmark numbers. Postgres is slower but not enough that we think users will be upset at the speed. A mongodb backend would be nice for those who have even larger lists (or possibly for a large number of lists on the same server -- since the contents of tables are cached in memory if there's enough available, a system that hosted a large number of moderate sized lists might also benefit from a faster backend. -Toshio -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From f at state-of-mind.de Fri May 25 19:33:09 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Fri, 25 May 2012 19:33:09 +0200 Subject: [Mailman-Developers] [Bug 1004049] [NEW] Held messages show display message body In-Reply-To: References: <20120524165042.25997.30084.malonedeb@gac.canonical.com> <9E8214E3-1A37-4CE7-BCFC-027FF0107D5F@NFSNet.org> Message-ID: <4FBFC255.6020905@state-of-mind.de> On 05/24/2012 07:12 PM, Jeff Marshall wrote: > I would recommend displaying only the subject line like you are now > and having a button that displays the body in a pop-up modal. +1! There should be some kind of fallback for non-JS users, though. Since the Postorius base template detects JS, I suggest a simplfied CSS-only version for non-JS-clients (possibly depending on the :hover or :active state of the button) and the pop-up modal for JS-enabled ones. Florian From terri at zone12.com Tue May 29 03:08:29 2012 From: terri at zone12.com (Terri Oda) Date: Mon, 28 May 2012 19:08:29 -0600 Subject: [Mailman-Developers] GSoC Status Reports for week 1 due, code expected starting June 4th Message-ID: <4FC4218D.5080305@zone12.com> For those of you who don't keep track, our GSoC students officially started coding on May 21st, so today marks their second week (except for George, who started early). I hope you've all gotten settled in and are getting down to work! I've got two things I need from all of the GSoC students: 1. By tomorrow, you need to write a status report telling us all about your first week (see more detail below) 2. I want ALL of you to make some sort of commit or merge request to the Mailman/Postorius/Hyperkitty repositories by June 4th, so get ready to do that! This first commit to the repository doesn't have to be a big deal. If you don't have any code yet, it's ok if you just check in some directory structure you'll be using later and files with nothing but comments explaining how they'll be used later. The idea is to make sure all of us know how to get your code into the repositories in a useful way, including making sure we all know where to find the appropriate knobs in launchpad. The status report also doesn't have to be huge, but here's what I'd like to see: 1. What did you do in the past week? (May 21-28th) * Include links to any code/documentation you've written. If it's not checked in somewhere yet, check it in! 2. What do you plan to do next week? (May 28-June 4) * This can be a bit sketchy, but feel free to dream big! 3. What, if anything, caused you trouble this week? 4. Do you have any questions that came up? (And these can be things like "why is this directory here?" or "why is it called Postorius, anyhow?" as well as stuff relevant to exactly what you're working on.) 5. Do you have any other important upcoming plans? (This includes reminding us when you have exams coming up, or you have to go to your sister's wedding, or other things that just don't fit under "next week") Expect to be doing weekly reports for most of the summer -- it's an easy way to help give all the mentors and other developers an idea of where you are and when you might need help. Starting next week I may start sending private reminders, but I figured I'd start by telling the whole list so they know to be prepared for your code commits and to expect status reports starting tomorrow. From syst3m.w0rm at gmail.com Wed May 30 01:45:24 2012 From: syst3m.w0rm at gmail.com (Aamir Khan) Date: Tue, 29 May 2012 19:45:24 -0400 Subject: [Mailman-Developers] HyperKitty login Message-ID: Hi everybody! First task I am going to do for my GSoC project is to have login authentication mechanism for HyperKitty users. I have had discussion with few mailman developers about it. I am planning to wrap up social_auth into mm_ui_auth django application. Both postorius and HyperKitty can use this app for authenticating users. Feel free to suggest if you have any ideas about how login should work in HyperKitty. -- Aamir Khan | 3rd Year | Computer Science & Engineering | IIT Roorkee From stephen at xemacs.org Wed May 30 06:37:46 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Wed, 30 May 2012 13:37:46 +0900 Subject: [Mailman-Developers] HyperKitty login In-Reply-To: References: Message-ID: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> Aamir Khan writes: > Hi everybody! > > First task I am going to do for my GSoC project is to have login > authentication mechanism for HyperKitty users. I have had discussion with > few mailman developers about it. I am planning to wrap up social_auth into > mm_ui_auth django application. Both postorius and HyperKitty can use this > app for authenticating users. Please explain in somewhat more detail. Not all of us know what "social_auth" is, and since Postorius and HyperKitty are independent apps, presumably there will need to be some design and coordination effort to get everybody on the same page. In the spirit of "DRY" (don't repeat yourself), rather than make long posts here, I suggest that you start a blog or a Wiki page on the Mailman site where you can log (1) your design decisions and (2) any agreements on APIs etc you make with other Mailman developers (or third parties such as maintainers of libraries you use). Then you can simply have a shortcut key and say "I've designed an authentication mechanism for HyperKitty users, which I expect to be extensible for use by Postorius and other Django apps for Mailman. See my blog: http://blogs.example.com/~aamir/gsoc/." George is doing this quite well IMO. Kudos to George! N.B. George is generally copying his blog post to this list. That's OK if you want to do it, but IMO not necessary. (But that's something we will evolve over time, and I defer to Terri's opinion on this kind of thing. This is all just a suggestion.) From richard at NFSNet.org Wed May 30 14:28:06 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Wed, 30 May 2012 07:28:06 -0500 Subject: [Mailman-Developers] [Bug 1006345] [NEW] Anonymous subscription via confirmation email In-Reply-To: <20120530112146.17443.29580.malonedeb@chaenomeles.canonical.com> References: <20120530112146.17443.29580.malonedeb@chaenomeles.canonical.com> <20120530112146.17443.29580.malonedeb@chaenomeles.canonical.com> Message-ID: <78DD7A19-A714-415A-96DF-F5740AFE81C8@NFSNet.org> I think that it is important for this to be controlled an administrative list policy setting. When someone logs in using BrowserID, for example, and then subscribes to a new mailing list, the subscription can be marked as "email confirmed". But if they simply enter an email address on a form, the website need to be able to trigger the issuance of a "request subscription confirmation" email. Richard On May 30, 2012, at 6:21 AM, Robert Niederreiter wrote: > Public bug reported: > > Currently it is not possible to subscribe as anonymous user. > > ** Affects: postorius > Importance: Undecided > Status: New > ** Tags: anonymous confirmation subscription ui From richard at NFSNet.org Wed May 30 14:28:22 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Wed, 30 May 2012 07:28:22 -0500 Subject: [Mailman-Developers] HyperKitty login In-Reply-To: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> References: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <1373C8EA-7380-4281-AD70-5669CF43849E@NFSNet.org> Stephen, "social_auth" is a django "app" (Think library) that handles OpenID, BrowserID, Google, Twitter, etc. authentication. It is with the DRY principal in mind that I think we should "wrap" it to make a common login manager app that will be used by both HK and postorius. This is important because "Sally", as a website designer, will want to have Postorius, HK, and her own (for example project status or e-commerce) material delivered as a single website. The end-user, "Bob", will think of this as a single website and not as three websites cobbled together. He perceives that he logs into the site, not the mailing list or archives. He certainly wants to log in only once to be able to access all of the functions of any of the components. Since the login access and (at least some of) the user tools would likely appear in the header of (almost) every page on the website, each component needs to make these items available to the site designer for her inclusion in the sites "base_site.html" template and ALL of the submodules, including django.contrib.admin, need to extend a single (remember DRY) common template. This infers that, where possible, each of these should use the same css classes in a consistent way. As for George posting to both his blog and this list, I think that the purpose in his doing so is to make additional members of the developer community aware of his activity. Since he is still in the design phase for the interfaces to both the web side and the MM core side, it is important for him to get early feedback. In keeping with the DRY principal, it might be more appropriate for him (and Aamir, etc.) to post simple paragraphs "Work progressing on .... See my latest update on my Blog for additional details. to this list when they have made a significant posting. Richard On May 29, 2012, at 11:37 PM, Stephen J. Turnbull wrote: > Aamir Khan writes: >> Hi everybody! >> >> First task I am going to do for my GSoC project is to have login >> authentication mechanism for HyperKitty users. I have had discussion with >> few mailman developers about it. I am planning to wrap up social_auth into >> mm_ui_auth django application. Both postorius and HyperKitty can use this >> app for authenticating users. > > Please explain in somewhat more detail. Not all of us know what > "social_auth" is, and since Postorius and HyperKitty are independent > apps, presumably there will need to be some design and coordination > effort to get everybody on the same page. > > In the spirit of "DRY" (don't repeat yourself), rather than make long > posts here, I suggest that you start a blog or a Wiki page on the > Mailman site where you can log (1) your design decisions and (2) any > agreements on APIs etc you make with other Mailman developers (or > third parties such as maintainers of libraries you use). Then you can > simply have a shortcut key and say > > "I've designed an authentication mechanism for HyperKitty users, which > I expect to be extensible for use by Postorius and other Django apps > for Mailman. See my blog: http://blogs.example.com/~aamir/gsoc/." > > George is doing this quite well IMO. Kudos to George! > > N.B. George is generally copying his blog post to this list. That's > OK if you want to do it, but IMO not necessary. (But that's something > we will evolve over time, and I defer to Terri's opinion on this kind > of thing. This is all just a suggestion.) From terri at zone12.com Wed May 30 18:23:15 2012 From: terri at zone12.com (Terri Oda) Date: Wed, 30 May 2012 10:23:15 -0600 Subject: [Mailman-Developers] HyperKitty login In-Reply-To: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> References: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <4FC64973.8080200@zone12.com> On 05/29/2012 10:37 PM, Stephen J. Turnbull wrote: > N.B. George is generally copying his blog post to this list. That's > OK if you want to do it, but IMO not necessary. (But that's something > we will evolve over time, and I defer to Terri's opinion on this kind > of thing. This is all just a suggestion.) Posting to the list as George is doing by copying his blog post is actually ideal. That means we've always got a copy of the information with the list, even if for any reason the blog goes offline later. (Posting details to the wiki serves the same purpose, of course.) Our friendly python GSoC overlords want blog posts they can read and link to to show how the students from the various projects are doing, so that's why doing both is ideal, if anyone's wondering! Terri From richard at NFSNet.org Wed May 30 18:41:38 2012 From: richard at NFSNet.org (Richard Wackerbarth) Date: Wed, 30 May 2012 11:41:38 -0500 Subject: [Mailman-Developers] [Bug 1006345] Anonymous subscription via confirmation email In-Reply-To: <20120530160601.4933.85214.malone@gac.canonical.com> References: <20120530112146.17443.29580.malonedeb@chaenomeles.canonical.com> <20120530160601.4933.85214.malone@gac.canonical.com> Message-ID: <9E3B1681-9A79-4477-ADF0-9957EEC680E5@NFSNet.org> On May 30, 2012, at 11:06 AM, Robert Niederreiter wrote: > actually, in postorius you need to be authenticated in order to > subscribe to a list > > "anonymous" refers to the authentication in postorius in this case > > it would be nice to just have subscription form available to the public, > sending a "subscription confirmation" to the entered mail address with a > confirmation link, finally do the list subscription if confirmation link > gets clicked. > > Robert +2 :) From stephen at xemacs.org Thu May 31 10:00:48 2012 From: stephen at xemacs.org (Stephen J. Turnbull) Date: Thu, 31 May 2012 17:00:48 +0900 Subject: [Mailman-Developers] HyperKitty login In-Reply-To: <1373C8EA-7380-4281-AD70-5669CF43849E@NFSNet.org> References: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> <1373C8EA-7380-4281-AD70-5669CF43849E@NFSNet.org> Message-ID: <8762bc3hlb.fsf@uwakimon.sk.tsukuba.ac.jp> Richard Wackerbarth writes: > Stephen, > > "social_auth" is a django "app" (Think library) that handles > OpenID, BrowserID, Google, Twitter, etc. authentication. Yeah, I think all the mentors and most of the other subscribers here can figure that out. The questions are "which one?" (just an URL will do) and "why this one?" (ie, what are the design requirements and how does this app compare to the alternatives in meeting them?) Requirements and design are important, and the GSoC developers (== students) should be doing this work and reporting on it IMO. > It is with the DRY principal in mind that I think we should "wrap" > it to make a common login manager app that will be used by both HK > and postorius. Again, I think we all agree on that. My question is, that implies a set of requirements sufficient for both HyperKitty and Postorius. Why do we believe that such a set of requirements is known, and satisfied by the design? And how about Alex's NNTP access? If access to the archives is to be authenticated, then we would want the NNTP access to be authenticated, and consistent with HyperKitty. Can a Django authentication system do that? Can social_auth? Aamir is explicitly working on HyperKitty. While it makes a whole lot of sense for him to generalize the authorization module to Postorius (and one would hope beyond), this does require communication with the people doing Postorius. If he's talked to them and believes there's agreement on requirements, all I want to see is "I've talked to Florian on IRC about Postorius requirements for authorization, and we agree that they have the same requirements (see my blog)." Of course he's welcome to post as much detail as he likes! By the way, I think we should let the developers speak for themselves. I don't have any objection to developers getting a lot of help from mentors, but they should be able to present and to some extent defend their own work. If there's a language issue -- AFAIK none of our students are native English speakers -- they should feel free to say so, too, and we'll work that out. From a.badger at gmail.com Thu May 31 17:20:15 2012 From: a.badger at gmail.com (Toshio Kuratomi) Date: Thu, 31 May 2012 08:20:15 -0700 Subject: [Mailman-Developers] HyperKitty login In-Reply-To: <8762bc3hlb.fsf@uwakimon.sk.tsukuba.ac.jp> References: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> <1373C8EA-7380-4281-AD70-5669CF43849E@NFSNet.org> <8762bc3hlb.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <20120531152015.GN2569@unaka.lan> On Thu, May 31, 2012 at 05:00:48PM +0900, Stephen J. Turnbull wrote: > Richard Wackerbarth writes: > > Stephen, > > > > "social_auth" is a django "app" (Think library) that handles > > OpenID, BrowserID, Google, Twitter, etc. authentication. > > Yeah, I think all the mentors and most of the other subscribers here > can figure that out. The questions are "which one?" (just an URL will > do) and "why this one?" (ie, what are the design requirements and how > does this app compare to the alternatives in meeting them?) > > Requirements and design are important, and the GSoC developers (== > students) should be doing this work and reporting on it IMO. > > > It is with the DRY principal in mind that I think we should "wrap" > > it to make a common login manager app that will be used by both HK > > and postorius. > > Again, I think we all agree on that. My question is, that implies a > set of requirements sufficient for both HyperKitty and Postorius. Why > do we believe that such a set of requirements is known, and satisfied > by the design? And how about Alex's NNTP access? If access to the > archives is to be authenticated, then we would want the NNTP access to > be authenticated, and consistent with HyperKitty. Can a Django > authentication system do that? Can social_auth? > > Aamir is explicitly working on HyperKitty. While it makes a whole lot > of sense for him to generalize the authorization module to Postorius > (and one would hope beyond), this does require communication with the > people doing Postorius. If he's talked to them and believes there's > agreement on requirements, all I want to see is "I've talked to > Florian on IRC about Postorius requirements for authorization, and we > agree that they have the same requirements (see my blog)." Of course > he's welcome to post as much detail as he likes! > > By the way, I think we should let the developers speak for themselves. > I don't have any objection to developers getting a lot of help from > mentors, but they should be able to present and to some extent defend > their own work. If there's a language issue -- AFAIK none of our > students are native English speakers -- they should feel free to say > so, too, and we'll work that out. > I think that the mailing list is one of the public places where GSoC students should be soliciting feedback and discussion. So they should be posting half-baked ideas here to get them more fully developed with the help of other contributors. Florian wasn't available on IRC yesterday when Aamir and wacky discussed how to design the authentication so that both postorius and hyperkitty could use it so I asked Aamir to get in touch with him via email "and the list" because I wanted to know what Florian thought of this architecture and it seemed to me that others would as well. No sense having that conversation via private email and then reporting to the list (and getting more feedback from others then) if the discussion could happen on the mailing list in the first place. That said, there probably is a little bit of a language (or perhaps open source cultural) issue going on as well. Aamir, it'd be great if you could post some more information about this app, how it works, and how it integrates with the stuff that postorius uses already. And it would also be great if you made sure to mention that you were looking for Florian's input specifically :-) -Toshio -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From a.badger at gmail.com Thu May 31 19:28:52 2012 From: a.badger at gmail.com (Toshio Kuratomi) Date: Thu, 31 May 2012 10:28:52 -0700 Subject: [Mailman-Developers] Speaking about kitties (or archivers) In-Reply-To: <1335458162.10650.0.camel@ambre.pingoured.fr> References: <1335205036.2188.29.camel@ambre.pingoured.fr> <20120423182018.50067886@resist.wooz.org> <20120424181221.GM28774@unaka.lan> <1335458162.10650.0.camel@ambre.pingoured.fr> Message-ID: <20120531172852.GO2569@unaka.lan> On Thu, Apr 26, 2012 at 06:36:02PM +0200, Pierre-Yves Chibon wrote: > > The current version of HK relies on mongodb for the storage, but I want > to test HK with a traditionnal SQL backend. So I have started to work on > this. > > The interface I defined is there: > https://github.com/pypingou/kittystore/blob/master/kittystore/__init__.py > > And its implementation using SQLAlchemy is there: > https://github.com/pypingou/kittystore/blob/master/kittystore/kittysastore.py > > The mongodb implementation isn't done yet but should be quite trivial to > do (most function from the API were coming from it). > > The idea is that now, we can have different backend and each module > needing access to the emails can use the API directly without having to > bother about which storage system is behind. > Wacky looked at this today and asked if we should have the x-message-id-hash as another key value to look up an email. That seems proper to me. Would we want a separate function or to overload get_email() so that it can either take message_id or message_id_hash? -Toshio -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: not available URL: From terri at zone12.com Thu May 31 19:50:41 2012 From: terri at zone12.com (Terri Oda) Date: Thu, 31 May 2012 11:50:41 -0600 Subject: [Mailman-Developers] Speaking about kitties (or archivers) In-Reply-To: <20120531172852.GO2569@unaka.lan> References: <1335205036.2188.29.camel@ambre.pingoured.fr> <20120423182018.50067886@resist.wooz.org> <20120424181221.GM28774@unaka.lan> <1335458162.10650.0.camel@ambre.pingoured.fr> <20120531172852.GO2569@unaka.lan> Message-ID: <4FC7AF71.6000807@zone12.com> On 05/31/2012 11:28 AM, Toshio Kuratomi wrote: > Wacky looked at this today and asked if we should have the x-message-id-hash > as another key value to look up an email. That seems proper to me. Would > we want a separate function or to overload get_email() so that it can either > take message_id or message_id_hash? Overloading sounds good to me, although I don't have any particular reason for the preference. Terri From f at state-of-mind.de Thu May 31 22:31:23 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Thu, 31 May 2012 22:31:23 +0200 Subject: [Mailman-Developers] HyperKitty login In-Reply-To: References: Message-ID: <4FC7D51B.7090403@state-of-mind.de> Hi Aamir, On 05/30/2012 01:45 AM, Aamir Khan wrote: > Hi everybody! > > First task I am going to do for my GSoC project is to have login > authentication mechanism for HyperKitty users. I have had discussion > with few mailman developers about it. I am planning to wrap up > social_auth into mm_ui_auth django application. Both postorius and > HyperKitty can use this app for authenticating users. As you know, Postorius already uses django-social-auth. Implementing it was more or less a configuration issue (settings.py), plus we had to build a login-template (which was pretty trivial). We did look at some other existing solutions before choosing django-social-auth. So far it seems like a good choice. (Although it should be noted, that there was one report about a browserID logged-in user getting logged-out erroneously. But I haven't been able to reproduce this.) Since social-auth has been designed with DRY/re-usability in mind, the important question (at least to me) is: What are the advantages of an mm_ui_auth app wrapper compared to simply using it directly? The main advantage I can think of is shared UI-resources (template, css). But this reduces mm_ui_auth more or less to a "theme only" app (OK, with a few lines of login/logout view code in it). This can make absolute sense, but mainly if both Postorius/HK are OK with sharing the same design for the login-/out pages. I, for one, would be fine with that. (Well, let's see how it looks first. But still... ;-) Cheers, Florian From f at state-of-mind.de Thu May 31 22:58:40 2012 From: f at state-of-mind.de (Florian Fuchs) Date: Thu, 31 May 2012 22:58:40 +0200 Subject: [Mailman-Developers] HyperKitty login In-Reply-To: <8762bc3hlb.fsf@uwakimon.sk.tsukuba.ac.jp> References: <87y5oathb9.fsf@uwakimon.sk.tsukuba.ac.jp> <1373C8EA-7380-4281-AD70-5669CF43849E@NFSNet.org> <8762bc3hlb.fsf@uwakimon.sk.tsukuba.ac.jp> Message-ID: <4FC7DB80.50406@state-of-mind.de> On 05/31/2012 10:00 AM, Stephen J. Turnbull wrote: > Yeah, I think all the mentors and most of the other subscribers here > can figure that out. The questions are "which one?" https://github.com/omab/django-social-auth > do) and "why this one?" It's used in Postorius. There aren't that many around. This one's well documented, very comprehensive and works well with django.contrib.auth. > Aamir is explicitly working on HyperKitty. While it makes a whole lot > of sense for him to generalize the authorization module to Postorius > (and one would hope beyond), this does require communication with the > people doing Postorius. If he's talked to them and believes there's > agreement on requirements, all I want to see is "I've talked to > Florian on IRC about Postorius requirements for authorization, and we > agree that they have the same requirements (see my blog)." Of course > he's welcome to post as much detail as he likes! Aamir contacted me and Terri via email, Terri told him about django-social-auth. So he did start the required communication with us. He also talked to some other devs on #mailman about his approach. Cheers, Florian