Re: [Mailman-Developers] Mailman Suite 3.0rc1 awaiting an upstream fix

2015-04-20 Thread Pierre-Yves Chibon
On Mon, Apr 20, 2015 at 10:53:09AM -0400, Sumana Harihareswara wrote:
 At the PyCon sprint last week, we made a lot of progress towards a 3.0
 release and we discussed next steps. I'm very glad so many of us could
 make it and pitch in.
 
 The 3.0rc1 depends on a new Falcon release because there's a bugfix
 awaiting release in Falcon that fixes a blocker bug for us:
 https://bugs.launchpad.net/postorius/+bug/1444504 Once that's out, we
 can put out a release candidate.
 
 In order to release 3.0.0 final, we need core native releases for all 5
 components of the Mailman suite, with tested installation instructions
 and with all the components tagged, tested, and on PyPI. We'd also like
 some infrastructure and workflow improvements before we do that -- for
 one thing, we ought to set up continuous integration to run our
 automated tests on every merge. We will probably request a CI server/VM
 from the Python Software Foundation. We could actually set up CI for
 HyperKitty (and probably our other components as well) right away using
 the (no guarantee of uptime/service level) Jenkins installation at
 http://jenkins.cloud.fedoraproject.org/ if someone followed the
 instructions at
 https://fedoraproject.org/wiki/Jenkins@infra#Can_I_add_my_project_to_Jenkins.3F
 and add ticket to https://fedorahosted.org/fedora-infrastructure/ . We
 need to have an i18n setup and I've agreed to take lead on that. And
 there's further potential wrangling around Launchpad, branches, Bazaar,
 Git, etc. that I'll write up tomorrow.

We are (as in Patrick is) currently working on getting a Fedora 22 builder added
to the jenkins instance so that we have a python 3.4 available for you folks if
you so desire :)


Pierre
___
Mailman-Developers mailing list
Mailman-Developers@python.org
https://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: 
https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] [hyperkitty-devel] Mailman Suite 3.0rc1 awaiting an upstream fix

2015-04-20 Thread Pierre-Yves Chibon
On Mon, Apr 20, 2015 at 08:19:29PM +0200, Aurelien Bompard wrote:
  We are (as in Patrick is) currently working on getting a Fedora 22 builder 
  added
  to the jenkins instance so that we have a python 3.4 available for you 
  folks if
  you so desire :)
 
 
 Fedora 21 has Python 3.4, so that would be enough.

That is true, but currently we only have a F20 builder, but good to know that if
we do not manage to get the F22 one running, we can also try getting a F21 one
up.

Thanks,
Pierre
___
Mailman-Developers mailing list
Mailman-Developers@python.org
https://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: 
https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] Python 3

2014-12-26 Thread Pierre-Yves Chibon
On Fri, Dec 26, 2014 at 04:38:08PM +0100, Aurelien Bompard wrote:
 [...]  then I'll merge this to trunk and do a 3.0b5 release as a
  Python 3-only application.  Mailman 3 will not be bilingual so Python 2
  support will be dropped.
 
 
 Wow. I am very surprised.
 So we went from Python3 compatibility is not on the blocker list for
 Mailman 3.0 to Mailman 3.0 will only work on Python 3.
 That's quite a change.
 This means I must now port HyperKitty and Kittystore to Python3, check that
 we don't use Py2-only libraries, etc.
 And mailman.client must be ported too, since it does import stuff from
 mailman for testing purposes. I think Postorious is safe, but that must be
 verified (I believe it imports the testing framework from mailman.client
 and thus must be ported too).

This also means that mailman 3 will pretty much only not work on server-oriented
distro (except probably Debian that likely ships a python 3 version, although
not being involved in Debian, I do not know for sure).
For the record, neither RHEL7 nor SL7 nor CentOS7 currently have a python3
stack...

 And I thought the 3.0 release was almost there. I must say this is rather
 discouraging.

Same for me.

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@python.org
https://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: 
https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] Archives on MM3

2014-08-08 Thread Pierre-Yves Chibon
On Fri, Aug 08, 2014 at 04:51:25PM -0300, Alex Azevedo wrote:
 Hey guys,
 Do we have a web interface to get list archives?
 Are they available (archives) on MM3 ?


You may be interested in the HyperKitty project:
https://fedorahosted.org/hyperkitty/

Demo instance: https://lists.stg.fedoraproject.org/archives/


Pierre
___
Mailman-Developers mailing list
Mailman-Developers@python.org
https://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: 
https://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] GSOC 2013 - Introduction and Project Discussion

2013-04-08 Thread Pierre-Yves Chibon
On Sat, 2013-04-06 at 15:03 +0530, Udit Saxena wrote:
 2. Web Posting Interface.

I haven't really followed the GSoC ideas for MM3 this year but that line
poped-up on my radar.
Isn't this similar/overlapping to what HyperKitty already does?
I don't think one would want to embed posting messages from the admin
interface of mailman (postorious), so posting from an interface would
have to deal with archives as well (since one might want to reply to an
existing thread). That's the reasoning that brought me to the question
above :)

Did I miss something?

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


[Mailman-Developers] Logo license

2012-12-04 Thread Pierre-Yves Chibon
Good morning everyone (© Farnsworth),

I was wondering if there is a specific license for the Mailman logo. I
could find the svg file on the website [1] but it does not mention a
license.

Basically, we have someone interested in working on an icon for
hyperkitty as part of the Google Code-In and I was wondering if we could
reuse/modify/use part of the mailman logo.


Thanks,
Pierre


[1] http://www.gnu.org/software/mailman/otherstuff.html
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9

Re: [Mailman-Developers] Speaking about kitties (or archivers)

2012-06-05 Thread Pierre-Yves Chibon
On Fri, 2012-06-01 at 21:33 -0400, Barry Warsaw wrote:
 * Look at the IMessageStore API.  Is this complete?  IOW, could you
 build a purely Python-level archiver like HyperKitty on top of this
 API?  Here's where proper attachment handling would probably be
 necessary.

With the help of wacky on #mailman this week-end we came up with this
patch.
Attached is both the diff and the file itself.

This way we can start discussing :)

Pierre
=== modified file 'src/mailman/interfaces/messages.py'
--- src/mailman/interfaces/messages.py	2012-01-01 19:14:46 +
+++ src/mailman/interfaces/messages.py	2012-06-03 16:23:46 +
@@ -65,35 +65,125 @@
 def add(message):
 Add the message to the store.
 
-:param message: An email.message.Message instance containing at least
-a unique Message-ID header.  The message will be given an
-X-Message-ID-Hash header, overriding any existing such header.
-:returns: The calculated X-Message-ID-Hash header.
-:raises ValueError: if the message is missing a Message-ID header.
-The storage service is also allowed to raise this exception if it
-find, but disallows collisions.
-
-
-def get_message_by_id(message_id):
-Return the message with a matching Message-ID.
-
-:param message_id: The Message-ID header contents to search for.
-:returns: The message, or None if no matching message was found.
-
-
-def get_message_by_hash(message_id_hash):
-Return the message with the matching X-Message-ID-Hash.
-
-:param message_id_hash: The X-Message-ID-Hash header contents to
-search for.
-:returns: The message, or None if no matching message was found.
+:param message: An email.message.Message instance containing at
+least a unique Message-ID header.  The message will be given
+an X-Message-ID-Hash header, overriding any existing such
+header.
+:returns: The calculated X-Message-ID-Hash header.
+:raises ValueError: if the message is missing a Message-ID 
+header.
+The storage service is also allowed to raise this exception
+if it find, but disallows collisions.
+
+
+def add_to_list(list_name, message):
+Add the message to a specific list of the store.
+
+:param list_name: The fully qualified list name to which the
+message should be added.
+:param message: An email.message.Message instance containing at
+least a unique Message-ID header.  The message will be given
+an X-Message-ID-Hash header, overriding any existing such
+header.
+:returns: The calculated X-Message-ID-Hash header.
+:raises ValueError: if the message is missing a Message-ID 
+header.
+The storage service is also allowed to raise this exception
+if it find, but disallows collisions.
 
 
 def delete_message(message_id):
 Remove the given message from the store.
 
-:param message: The Message-ID of the mesage to delete from the store.
-:raises LookupError: if there is no such message.
+:param message: The Message-ID of the mesage to delete from the
+store.
+:raises LookupError: if there is no such message.
+
+
+def delete_message_from_list(list_name, message_id):
+Remove the given message for a specific list from the store.
+
+:param list_name: The fully qualified list name to which the
+message should be added.
+:param message: The Message-ID of the mesage to delete from the
+store.
+:raises LookupError: if there is no such message.
+
+
+def get_list_size(list_name):
+ Return the number of emails stored for a given mailing list.
+
+:arg list_name, name of the mailing list in which this email
+should be searched.
+
+
+def get_message_by_hash(message_id_hash):
+Return the message with the matching X-Message-ID-Hash.
+
+:param message_id_hash: The X-Message-ID-Hash header contents to
+search for.
+:returns: The message, or None if no matching message was found.
+
+
+def get_message_by_hash_from_list(list_name, message_id_hash):
+Return the message with the matching X-Message-ID-Hash.
+
+:param message_id_hash: The X-Message-ID-Hash header contents to
+search for.
+:returns: The message, or None if no matching message was found.
+
+
+def get_message_by_id(message_id):
+Return the message with a matching Message-ID.
+
+:param message_id: The Message-ID header contents to search for.
+:returns: The message, or None if no matching message was found.
+
+
+def get_message_by_id_from_list(list_name, message_id):
+Return the 

Re: [Mailman-Developers] Speaking about kitties (or archivers)

2012-06-03 Thread Pierre-Yves Chibon
On Fri, 2012-06-01 at 21:33 -0400, Barry Warsaw wrote:
 * Look at the IMessageStore API.  Is this complete?  IOW, could you
 build a purely Python-level archiver like HyperKitty on top of this
 API?  Here's where proper attachment handling would probably be
 necessary.

I have defined a number of functions in the kittystore interface which
could go into the IMessageStore:
https://github.com/pypingou/kittystore/blob/master/kittystore/__init__.py

Main difference compare to what is in the IMessageStore at the moment is
that I require the fq list name as first argument of each function (ie:
I have one table for each list and need to know where you would like me
to search)

 * How would you want to expose the IMessageStore interface into the
 REST API?
   My sense is that you could probably take a fairly straightforward
 translation of IMessageStore into REST and *that* would be what you'd
 build the various archiver UIs on top of.  REST needs to answer
 questions like batching which are necessary for efficient transfer of
 data over HTTP but not for direct Python calls.

+1 for the straightforward translation of the interface to REST.
Archiver could then use either the implementation of the interface or
REST.

 * Should threading information be part of the IMessageStore, or a
 separate interface?  If the prototype archiver becomes the default
 implementation for the IMessageStore, it probably needs to grow a lot
 more functionality to support threading information. 

Keeping some info about threading in the database, the KittyStore
interface allows to retrieve for example all the messages of a thread or
the length of a thread.


I can work on merging KittyStore and IMessageStore and providing the
REST interface for it.
Should I provide also an implementation ? Using PostgreSQL as backend ?

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] Speaking about kitties (or archivers)

2012-06-03 Thread Pierre-Yves Chibon
On Sun, 2012-06-03 at 14:49 +0200, Pierre-Yves Chibon wrote:
 Main difference compare to what is in the IMessageStore at the moment
 is that I require the fq list name as first argument of each function
 (ie: I have one table for each list and need to know where you would
 like me
 to search) 

hm, the fact that I would require the full list name will cause a
problem regarding the `messages` attributes on the IMessageStore.

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] Speaking about kitties (or archivers)

2012-06-01 Thread Pierre-Yves Chibon
On Thu, 2012-05-31 at 10:28 -0700, Toshio Kuratomi wrote:
  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.  

I am all for extending the API as much as we need, and I am sure the
different modules have different needs, so please let us know what you
would like to have access to.

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


[Mailman-Developers] HyperKitty MongoDB vs PostgreSQL.

2012-05-25 Thread Pierre-Yves Chibon
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

___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] Speaking about kitties (or archivers)

2012-04-26 Thread Pierre-Yves Chibon
On Tue, 2012-04-24 at 11:12 -0700, Toshio Kuratomi wrote:
 [mailman3 core] -- maintainance of list metadata, sending and 
receiving, provides a REST API
 [Web UIs] -- web ui to Core functions
 [Archive-stores] -- stores the messages sent to the mailing lists.
 Provides a (REST?) API to apps built on top 
 of it
 [Archiver UIs] -- web ui, nntp interface, REST API (if not 
   implemented at the storage layer), etc to the
   archive-store
 
 By splitting the archive storage from the archive UI similar to how
 mailman3-core splits with the web ui, we can allow a sysadmin to
 choose one archive-storage for all of the archive front-ends that they
 run on their systems.

Thank you Toshio for explaining this in a better than I was able to do.

 Question: Where do we start?  I think that we'll either succeed or
 fail very quickly by trying to define what the API between
 archive-store and archiver-ui should look like.  We'll either be able
 to agree on a common set of features there (from which we'll be able
 to go forth and create our own archive-storage plugins) or we'll
 decide that we all need/want to do different things that no common API
 can address.  If there's no common API definition then we won't be
 able to do any of the rest of this so there won't be any sense
 continuing down that path.

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.


I hope this helps,

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] Speaking about kitties (or archivers)

2012-04-26 Thread Pierre-Yves Chibon
Resent as the first one doesn't seem to want to arrive.

On Tue, 2012-04-24 at 11:12 -0700, Toshio Kuratomi wrote:
 [mailman3 core] -- maintainance of list metadata, sending and 
receiving, provides a REST API
 [Web UIs] -- web ui to Core functions
 [Archive-stores] -- stores the messages sent to the mailing lists.
 Provides a (REST?) API to apps built on top 
 of it
 [Archiver UIs] -- web ui, nntp interface, REST API (if not 
   implemented at the storage layer), etc to the
   archive-store
 
 By splitting the archive storage from the archive UI similar to how
 mailman3-core splits with the web ui, we can allow a sysadmin to
 choose one archive-storage for all of the archive front-ends that they
 run on their systems.

Thank you Toshio for explaining this in a better than I was able to do.

 Question: Where do we start?  I think that we'll either succeed or
 fail very quickly by trying to define what the API between
 archive-store and archiver-ui should look like.  We'll either be able
 to agree on a common set of features there (from which we'll be able
 to go forth and create our own archive-storage plugins) or we'll
 decide that we all need/want to do different things that no common API
 can address.  If there's no common API definition then we won't be
 able to do any of the rest of this so there won't be any sense
 continuing down that path.

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.


I hope this helps,

Pierre

___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


[Mailman-Developers] Speaking about kitties (or archivers)

2012-04-23 Thread Pierre-Yves Chibon
Meeow miaou*

We spoke on IRC about the archiver the other day and I said that I
should present here my thoughts about it. So here they are (beware that
might be long).

First I think we should think about the structure/architecture of
things. We have a number of component which need to be archives aware,
without being exhaustive I'm thinking about:
- the archiver itself (which present the archive (ie: mails and threads)
- the NNTP bits which should be able to return emails and/or threads
- the stats module which want to give information to the user about the
health of the list itself (emails/month, last threads, biggest
threads...)
- archives retrieval (we probably want to give the user a way to
download the archives since the creation of the list/the last
year/month)

All of these components needs to be aware about the archives. We agreed
that the core does not want to know about it.

So we have several solutions:
- each module becomes an archiver wrt to core, meaning each module has
its own way to storing the archives (and eventually its own system to do
so)
- we create a archive-core module which manage the archives and provides
an API to access, modify, extend them.

Of course, we prefer the second solution :)
So we would have the following architecture:

  mm-core (handles the lists themselves) --send emails to archivers--
archive-core (store the emails and expose them through an API) --
archivers/stats/NNTP

The questions are then:
- how do we store the emails ?
- how do we expose the API ?
- how to make it such that it becomes easy to extend ? (ie: the stats
module wants to read the db, but probably also to store information on
it)

Having played with mongodb (HK relies on it atm), I quite like the
possibilities it gives us. We can easily store the emails in it, query
them and since it is a NoSQL database system extending it becomes also
easy.
On the other hand, having the archiver-core relying on the same system
as the core itself would be nicer from a sysadmin pov. I have not tried
to upload archives to a RDBMS and test its speed, but for mongodb the
results of the tests are presented at [1].

The challenge will be speed and designing an API which allow each
component to do its work.
I think it would be nice if we could reach some kind of agreement before
the GSoC starts (even if we change our mind later on) to be sure that if
we get students their work don't overlap too much.


The second point I want to present is with respect to the archiver
itself.
At the moment we have HyperKitty (HK), the current version:
- exposes single emails
- exposes single threads
- presents the archives for one month or day
- allows to search the archives using the sender, subject, content or
subject and content
- presents a summary of the recent activities on the list (including the
evolution of the number of post sent over the last month)

I think these are the basis functionality that we would like to see in
an archiver.
But HK aims at much more, the ultimate goal of HK is to provide a
forum-like interface to the mailing-lists, with it HK would provide a
number of option (social-web like) allowing to like or dislike a
post or a thread, allowing to +1 someone, allowing to tag the mails or
assign them categories.
These are all nice feature but, imho, they go beyond what one would want
from a basic archiver.

So what I would like to propose is to split HK into a sub-project
(MiniKitty?) which would provide these basic functionality.

We would keep HyperKitty as a more extensive archiver and try to bring
HK to its ultimate goal. This will need some more work and time as we
will have to make HK speak with core for authentication, find a way to
send emails to core/the lists and of course add all the other features
(tags, categories...)


Comments welcome :)

Thanks,
Pierre


[1]
http://blog.pingoured.fr/index.php?post/2012/03/16/Mailman-archives-and-mongodb
* Hi everyone
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


[Mailman-Developers] From the creation of a ThreadID

2012-04-05 Thread Pierre-Yves Chibon
Hi,

In HyperKitty to be able to easily retrieve from the database all the
threads of a given month or just all the emails of a thread, I created a
Field in the database called ThreadID.
When I load the archives from mailman into mongo, I look for the absence
of the headers 'References' or 'In-Reply-To' to define an email that
starts a new thread.
Then all emails which have the header 'References' or 'In-Reply-To' will
look for the preceding email and extract the ThreadID from it.
This seems to work fine.

At the beginning I was using a simple integer as identifier but of
course if you changed the order in which the archives are loaded or just
if you miss like one month than the ThreadID is not consistent anymore.
So I changed to use the Message-ID of the first email of the Thread as
ThreadID.
Problem is of course, if the admin removes the first email of a thread
for x or y reasons, then when reloading the archives (for z or a
reasons), we will loose the ThreadID and actually, the integrity of the
Thread (each reply to the first email will be split into their own
thread).

Would anyone have an idea on how to generate a stable and delete/reload
proof ThreadID?
The other solution of course being that I regenerate the thread on the
fly based on the first email (which is still easy to find), but that
will be a lot of db querying.

Thinking about it, generating the thread on the fly would also give the
possibility to regenerate the thread view from anywhere (so you could
generate a thread view for only a sub-thread).

Do you have any suggestions/preferences ?

Thanks,
Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] From the creation of a ThreadID

2012-04-05 Thread Pierre-Yves Chibon
On Fri, 2012-04-06 at 00:10 +0900, Stephen J. Turnbull wrote:
 On Thu, Apr 5, 2012 at 10:41 PM, Pierre-Yves Chibon pin...@pingoured.fr 
 wrote:
 
  In HyperKitty to be able to easily retrieve from the database all the
  threads of a given month or just all the emails of a thread, I created a
  Field in the database called ThreadID.
  When I load the archives from mailman into mongo, I look for the absence
  of the headers 'References' or 'In-Reply-To' to define an email that
  starts a new thread.
 
 This fails when a thread crosses channels.  Eg,
 
 To: Pierre
 From: Steve
 Message-Id: x@y.z
 
 is followed by
 
 To: Steve
 From: Pierre
 Cc: SomeList
 References: x@y.z
 Message-Id: a@b.c
 
  Would anyone have an idea on how to generate a stable and delete/reload
  proof ThreadID?
 
 I don't see how this can be possible.  Eg, in the above scenario you
 construct a thread based on your reply to me.  Then I go, oh, really
 I should have posted to mm-dev and repost the thread.  So the
 Message-ID of root message fails, and I don't see an alternative
 that can be predicted.  So it may as well be arbitrary (eg, any
 message in the thread) and stored in the database with appropriate
 linkage from thread IDs to message IDs (one-to-many), and vice versa
 (many-to-one).

Ok, I missed a something here.
So when it parses the email, it checks for 'References' or
'In-Reply-To'.
- If it finds them, it looks for the preceding email
- if it finds the preceding email, then the current email gets the
ThreadID from the preceding email
- if it does not find the preceding email, then the current email is
assumed to be a new thread and thus its ThreadID is its Message-ID
- if it does not find 'References' or 'In-Reply-To', then the current
email is assumed to be a new thread and thus its ThreadID is its
Message-ID

So for the example you give, the archiver will receive your email and
make a new thread out of it.

  The other solution of course being that I regenerate the thread on the
  fly based on the first email (which is still easy to find), but that
  will be a lot of db querying.
 
 I haven't thought about it deeply, but I would say just give the
 thread an arbitrary ID in the database.  Message-IDs are supposed to
 universally unique, so what's wrong with keeping the thread in the
 database as a tree of message IDs?  Some Message-IDs will not have
 corresponding messages but that's always a problem with threading (see
 http://www.jwz.org/doc/threading.html, and RFC 5256).

The idea of using the Message-ID for ThreadID (instead of a integer) is
that, if I whether I load one months or two months of archives into the
database, the link to the thread
(http://mm3test.fedoraproject.org/thread/packaging@fp.o/XU7HT5JC5GND2O4JII7MTQILLTB4IN4S)
 will remain the same (so consistent urls).

 There are other problems with threading that need to be dealt with as
 well, such as References being inconsistent across messages in the
 same thread and people who continue a thread with a new message, etc.

For these I am not sure I can do something (at least automatically, we
could always allow an admin to edit the field).

Pierre

___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] GSoC

2012-03-30 Thread Pierre-Yves Chibon
On Thu, 2012-03-29 at 10:49 +0900, Stephen J. Turnbull wrote:
   Hyperkitty is the demo that
 a few people have been working on, including Toshio at the sprints,
 but there are others in play (eg, recent posts to this list).  Also,
 Hyperkitty is currently based on somewhat limited technology (the
 notmuch indexer).  I'm not sure it would be up to the demands of
 data-mining.  Of course, if Toshio says it is, listen to him, not me.
 :-) 

For the record, the current version of HyperKitty has moved from a
notmuch backend to a mongo database allowing a much more flexible data
storage scheme. This is the one you can see online at:
http://mm3test.fedoraproject.org/
The demo is getting more and more complete with month view, recent
activities, thread view, basic search functions and categories.
My only problem is that we seem to have some memory leaks at the
moment :-/

Pierre

___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] GSoC

2012-03-30 Thread Pierre-Yves Chibon
On Thu, 2012-03-29 at 21:49 +0200, Pierre-Yves Chibon wrote:
 On Thu, 2012-03-29 at 10:49 +0900, Stephen J. Turnbull wrote:
Hyperkitty is the demo that
  a few people have been working on, including Toshio at the sprints,
  but there are others in play (eg, recent posts to this list).  Also,
  Hyperkitty is currently based on somewhat limited technology (the
  notmuch indexer).  I'm not sure it would be up to the demands of
  data-mining.  Of course, if Toshio says it is, listen to him, not me.
  :-) 
 
 For the record, the current version of HyperKitty has moved from a
 notmuch backend to a mongo database allowing a much more flexible data
 storage scheme. This is the one you can see online at:
 http://mm3test.fedoraproject.org/
 The demo is getting more and more complete with month view, recent
 activities, thread view, basic search functions and categories.
 My only problem is that we seem to have some memory leaks at the
 moment :-/

We might still get a third version of this email. As it seemed that they
were not reaching (which apparently they do now), I try to resend them.

Sorry for the noise.

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] any interest in a new built-in web-archive? (i.e. pipermail replacement)

2012-03-29 Thread Pierre-Yves Chibon
On Mon, 2012-03-26 at 17:11 -0700, Toshio Kuratomi wrote:
 Grackle is another archiver for mailman that doesn't
 have the UI bells and whistles of hyperkitty but it does make an
 effort to expose a REST UI to the world.  I think that's a beautiful
 thing.  

I started a small thing on hyperkitty there:
http://mm3test.fedoraproject.org/api/

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9


Re: [Mailman-Developers] GSoC

2012-03-29 Thread Pierre-Yves Chibon
On Thu, 2012-03-29 at 10:49 +0900, Stephen J. Turnbull wrote:
   Hyperkitty is the demo that
 a few people have been working on, including Toshio at the sprints,
 but there are others in play (eg, recent posts to this list).  Also,
 Hyperkitty is currently based on somewhat limited technology (the
 notmuch indexer).  I'm not sure it would be up to the demands of
 data-mining.  Of course, if Toshio says it is, listen to him, not me.
 :-) 

For the record, the current version of HyperKitty has moved from a
notmuch backend to a mongo database allowing a much more flexible data
storage scheme. This is the one you can see online at:
http://mm3test.fedoraproject.org/
The demo is getting more and more complete with month view, recent
activities, thread view, basic search functions and categories.
My only problem is that we seem to have some memory leaks at the
moment :-/

Pierre
___
Mailman-Developers mailing list
Mailman-Developers@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/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9