The First Version of PNotify

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:
https://github.com/sciactive/pnotify/commit/9986e9f82f7fbc5231078eb6a3d365ab17b8086e

That should be easy. The files came from the Pines component repository, in the com_pnotify component:
https://github.com/sciactive/pines-components-deprecated/tree/master/com_pnotify
That’s where the “P” in PNotify comes from. 😀

Let’s just check the oldest commit there:
https://github.com/sciactive/pines-components-deprecated/commits/cb2d308da0a2536ea4797861bf4dd208e29fff5e/com_pnotify
No luck. That’s not the oldest PNotify code.

I had made a commit that moved the file from there:
https://github.com/sciactive/pines-components-deprecated/commit/e8e21cfa7942cf4f5f6f7817b6fd28d4e1f4269b#diff-500b76c43bd0d20b3ebe6d224f267ebc

So I had to look up where the file was moved from in the commit before the move:
https://github.com/sciactive/pines-components-deprecated/tree/f7f9aae775ce419d7a84903576995903c33b6d15/pines/com_pnotify

And through the history of the file there:
https://github.com/sciactive/pines-components-deprecated/blob/f7f9aae775ce419d7a84903576995903c33b6d15/pines/com_pnotify/includes/jquery.pnotify.js

I found a reference in the earliest commit to include that file:
https://github.com/sciactive/pines-components-deprecated/commit/865ce7b3e04431692fbe6a1fb1e709ff7273ec96#diff-3247d0c01b86b119ccf02ecca8a10485

<?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:
https://github.com/sciactive/pines-core-deprecated/tree/master/system

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!

Join the Conversation

1 Comment

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.