Pubsub was originally created by Robb Shecter as a module in the wxPython library, named wx.lib.pubsub. In spring of 2004, I added the ability of the module to use weak references, even to methods, and I asked Robin Dunn if he would like the changes to be put in wx.lib.pubsub. Robb and Robin liked them so much that they offered that I take over ownership of the pubsub package.
The package was stable and fairly well scoped such that only a few minor tweaks and improvements happened after that. In 2006 when I used pubsub on some larger projects, I wished that topic trees and the topic message data could be documented, and that more data could be passed more easily. I also wished I could find a strategy that would allow the use of tools like pylint to point out invalid topic names.
So I developed version 2 of the library. In fall 2006 I created an entry in the Python Cheeseshop as PyPubSub (http://pypi.python.org/pypi/PyPubSub) and used the cheese shop to hold snapshots of my files. This way, developers not using wxPython can still benefit from the publish/subscribe mechanism that it provides.
In May 2007 I decided it was time to create a project on SF.net for it, I called it pubsub (because pypubsub was already used by another project which didn’t have an entry on cheese shop – or any code for that matter – so http://sourceforge.net/projects/pubsub/ is my project, whereas http://sourceforge.net/projects/pypubsub/ is a totally different project!).
But, I wasn’t really happy with version 2 so I started version 3 before I got to beta. Version 3 supports documenting topics, a more OO topic tree, keyword data to be sent along with the topic message and topic argument specification to allow for more validations. It also supports a more versatile notification mechanism that allows messages to be sent when certain things happen in the pubsub module, e.g. a listener subscribes. Version 3 reached acceptable stability only recently, so in the mean time the wxPython’s wx.lib.pubsub hasn’t changed much.
Here is an up-to-date snapshot of the project traffic on SourceForge.net:
Here is an up-to-date snapshot of the download count on SourceForge.net: