A little about the history of my open source project Command Line Email Client for Lotus Notes, or CLENotes, available at OpenNTF.org.

The time period of this history is from 2002, when I first released it at IBM alphaWorks, until now, 2011.

This is “reprint” of my entry in developerWorks blog plus some additional comments.

In the beginning: The Reason

History of Lotus Notes Command Line Email Client started around Spring 2002 while my work involved to use some pretty resource-consuming software products in my laptop (Thinkpad T20, if I remember correctly).I had to shut down the Notes client in order to do my work and it meant that I couldn’t access my mail unless I stopped my work to just read my email. This was unacceptable and after a while I thought about why there is no command line access to Notes email. I investigated and learned about Notes Java API and decided to do something to solve my problem.

In the beginning: IBM alphaWorks

I started development around May/June 2002 and I finished the first version in couple of weeks. After the initial development, it was just for me and I used it as part of my daily work, some days days I used it a lot and other days not at all. I realized sometime in Autumn 2002 that command line client might be useful to others as well. Pretty soon after that realization, I started the process to publish NotesCLI to IBM alphaWorks. The process took several weeks but I did got it approved and the first 1.0 version was published at IBM alphaWorks on December 3, 2002.

Development: Versions 1.x

The version 1.0 was actually command line shell to read email from Notes and also to send email using SMTP. Sending mail using Notes was not implemented at the time and I don’t recall exactly why I used SMTP instead of Notes, but probably because SMTP seemed to be easier. I used Java Mail API for sending mail. Notes version at the time of release was 5.0.3 Version 1.1 followed quite soon after the first release and I removed the shell feature and started to use command line options. Command line options were actually suggested by a user who had downloaded NotesCLI but I don’t remember who it was. Within six months of the initial release I had updated NotesCLI 5 times and then there was a break in development for a year and a half or so. My work changed so that I did not have to use so resource-consuming products.

Dying project: Versions 2.x

Version 2 was released in late 2004 and I had done complete refactoring for it. Codebase was totally new because I felt that old 1.x version was not very maintainable. Notes version at the time was 6.5.2. There were only minor changes after the release of 2.0 and last release of 2.0 codebase was in the late 2005. After the last release in 2005, NotesCLI became less and less important for me and after a while I thought the project dead. But still, NotesCLI was downloaded every month dozens of times and total downloads since the first relase is well over 10,000.

Resurrection

During 2008, however, I thought about resurrecting NotesCLI but it was not until August 2008 I got the incentive to do it. The editors of IBM alphaWorks had noticed that Lotus Notes Command Line Email Client hadn’t been updated for three years and they were planning to retire it. But I couldn’t allow it. After all, it was still downloaded and used and so I told to editors that update was on it’s way and started the development. Before I started development I had already decided to refactor it and start a new version with different set of functionality and totally new codebase.

Development resurrected: Versions 3.x

The new codebase was based on Jython, powerful script language and interpreted on Java virtual machine. I chose Jython because it is easy to modify and because I wanted to use and learn a new language. I developed version 3 of NotesCLI a few lines at a time over about two months of calendar time. After finishing the first 3.0.0 version, I started the process to publish it to IBM alphaWorks, and because the process was totally different than the first time I published NotesCLI, it took some time to get NotesCLI approved and version 3.0.0 was released on February 13, 2009. I have updated NotesCLI v3 a few times based on user feedback. The last version at IBM alphaWorks was 3.4.0 and it was published February 18, 2010.

Beginning of a new era and version 4.0.0

After I had published version 3.4.0, I decided to submit the project as open source. At first,I thought about creating new project in sourceforge or somewhere similar but then I stumbled upon OpenNTF.org and my choice was made. OpenNTF is natural environment where Command Line Email Client for Lotus Notes could live. Version 4 of NotesCLI is a major milestone even though the functionality is exactly the same as in version 3.4.0. CLENotes is now an open source project in OpenNTF.org, released December 1st, 2010. License has been changed to Apache v2.0 and name is also changed from Lotus Notes Command Line Email Client to Command Line Email Client for Lotus Notes, or CLENotes. Version 4.2.0 has been available since May, 2011.

Future

What is coming in the future? Further development based on user feedback. And perhaps version 5 will have again different codebase (possibly plain Java again or maybe I learn a new language again: Scala or Clojure or Groovy or Ruby or….).

But at the time of writing, I haven’t started or planned any new development.