I just released PNotify 5, which, shockingly, is the fifth major version of PNotify. That got me thinking about when I started PNotify. The PNotify repo goes back pretty far (almost exactly 10 years), but not to the beginning.
Here’s the first commit:
That should be easy. The files came from the Pines component repository, in the com_pnotify component:
That’s where the “P” in PNotify comes from. 😀
Let’s just check the oldest commit there:
No luck. That’s not the oldest PNotify code.
I had made a commit that moved the file from there:
So I had to look up where the file was moved from in the commit before the move:
And through the history of the file there:
I found a reference in the earliest commit to include that file:
<?php echo $pines->config->rela_location; ?>system/css/jquery.pnotify.default.css
It looks like PNotify was moved from Pines’ core system directory, which was put in its own repo:
I looked through the history of the core repo, and I found a commit from before the move: https://github.com/sciactive/pines-core-deprecated/commit/972c97b3b960b9a3c5223a8fbdfc24c7e0294e85#diff-5cd6fb22734eaa172041d59ea509f021
This commit was some fixes for Internet Explorer 6 (ugh). PNotify used to support IE6, which was the bane of my existence for the entire time TECHSmart supported it. I remember the day I finally convinced my boss to let us drop IE6 support. A happier Hunter has rarely been seen.
That brought me to the history of PNotify’s earlier file, in the core directory in Pine’s original code: https://github.com/sciactive/pines-core-deprecated/commits/972c97b3b960b9a3c5223a8fbdfc24c7e0294e85/system/js/jquery.pnotify.js
And from there, I was able to go further back.
Finally, I found the first commit of PNotify ever: https://github.com/sciactive/pines-core-deprecated/commit/ad064eb661e080e6605b22a2ae760078d6380bf6
With this commit, on November 23, 2009, PNotify came to be. I like how I called it version 1.0 just right from the start. Lately, I’ve been keeping PNotify in beta or alpha for months because so many projects rely on it now.
Back then it was called Pines Notify and it was a jQuery component. It used jQuery up until version 4, when I almost completely rewrote it to use Svelte instead. It’s interesting to see that there’s still some code that’s basically the same, 11 years later. Albeit, not much, and it’s been moved around some.
When I wrote that copy of “Pines Notify” in 2009, I had just turned 22. I didn’t think that I would still be using it heavily in most of my projects, including my work project, almost 11 years later.
This has been one of the most fun open source projects I’ve ever worked on. I am eternally grateful to my old boss, Guru Dharam Khalsa, for letting me open source almost all of my work at TECHSmart. I can’t wait to see what future Hunter will do with version 6!