May 21, 2013

Update on LaSalleMart 2.0 and Custom Joomla Distro

The LaSalleMart 2.0 builds are done. Next comes testing the packages, taking ‘em for a spin, and fixing/tweaking.

What is a build? What is a package?

A package is the final assembly of software parts, put together by an automated process (“build”). LaSalleMart 2.0 for Canada is an assembly of the “core” and the “canada” software parts. My automated build process assembles it all into an integrated whole, and then puts this final software product in the different places where you can access it.

Never have I paid such particular attention to the “back office” of software development. Boy, it got more involved than I anticipated — the devil is in the details for sure — but what a payoff. Without duplicating code, we have:

  • 5 paid flavours of the LaSalleMart extension;
  • 5 free flavours of the LaSalleMart extension;
  • the LaSalleMart Library + its system plugin;
  • 19 modules;
  • 37 plugins.

The extensions have the Akeeba Live Update built in — when there’s an update, you just click from your admin.

The intention is to deliver updates and new features to you super duper fast. No waiting three months for fixes and updates to bundle together into a “release”. If there’s a bug fix, you get it immediately — no waiting.

This speed requires an infrastructure that makes it happen. Hence, the attention to the “back office”.

A huge payoff with attending to the “back office” is creating packages. Without duplicating code, we build specific LaSalleMart packages. The extension itself has 10 packages right off the bat.

Let’s back track a minute. LaSalleMart 2.0 is a fork of Tienda for Joomla 2.5 “alpha”. Upon discovering this “alpha”, I stopped converting LaSalleMart 1.0 to Joomla 2.5; and, forked Tienda from scratch all over again. Why? Saved a ton of time!

Tienda came in one zip file. Contained within this Joomla 2.5 installable zip file was one extension, one library, almost 40 plugins, and nearly 20 modules. I busted up this zip into all its individual parts. The divergence from Tienda happened instantly.

I busted it up, and then put it back together in different packages. This is the start of what will be a matrix of LaSalleMart packages.

Creating these packages was more intense than I thought it would be. So, I decided to finish the packages first, and then test ‘em out after the fact. The packages are done, the uploads to the various server folders for your download pleasure are done, the download areas on my website are done.

Now that my packages are done, it’s time to test them to make sure they install ok. Along the way a few bugs were encountered, so those will be fixed as well. When all is done, the downloads will be available for you.

Creating a custom Joomla distro (ie, “distribution”) seemed low priority. However,  while busting up Tienda and creating packages, it became clear “in the doing” that this was the same thing that I have in mind for Joomla — to take all the components, modules, and plugins that I never use out and end up with a lean mean Joomla. Basically, bust up Joomla.

The idea of creating full Joomla distros of LaSalleMart is pretty good. But, the reality of it is even better. Busting up Tienda became a rehearsal for busting up Joomla. After I get my LaSalleMart 2.0 packages in working order, I will dive into my custom Joomla distro. Actually, I’ve already started.

LaSalleMart 2.0 + customize Joomla +  ”builds & packages” = stunning power for consultants.

Heck, forget about what can be done for consultants who join me in my Club Commerce — how ’bout for me! The ability to provide “white label” Joomla, with the ecomm (and my favourite Joomla toys) built right in.

Maintaining a custom Joomla means fusing the ecomm with Joomla, creating — finally! — an integrated experience. Seamless registration, integrated administration. And, geez, when we add features, we won’t expand an impossibly busy and squished admin component. We will create fresh new small components to administer new features. Visually, you won’t notice because the entire LaSalleMart admin is integrated into Joomla’s admin anyways. But, it’s very profound to build small niche components b/c it faciliates creating the matrix of LaSalleMart packages; and, it sets the stage for an explosion of development by freeing us up from merging everything into one big bad extension.

I will go heads down on this, and update the goings-on on my November “LaSalleMart News” podcast, which I will target for Friday, November 09th.


Why Square One Matters to LaSalleMart for Joomla 2.5

Fork in the RoadLaSalleMart needs prominence in Joomla.

Instead of burying the LaSalleMart dashboard in a component’s admin, we need the LaSalleMart dashboard right in the Joomla dashboard. And, we need to delete or relocate Joomla dashboard icons.

We need to customize Joomla 2.5 for LaSalleMart, so LaSalleMart and Joomla are one. No more relegating ecomm to sub-menus and sub-dashboards. No more that ecomm looks like an add-on. We want one integrated whole.

Furthermore, we want a matrix of Joomla-LaSalleMart Distros. We want Distros based on geographical location + “white label” + vertical market specialization.

The Square One CMS is a critical precedent for doing Joomla distributions. It’s important to see that it is not a crazy idea to intermediate Joomla — that it’s actually happening.

It will be critical for Club Commerce to intermediate Joomla. To strip it of superfluous extensions, to customize the updater as we see fit, and to use it as input into our Distro builds.

Another important aspect is that we will need to manage our success. We need to protect our six figure investment in LaSalleMart programming with Joomla 2.5. Joomla 3.0 may come along and have a whole new way of doing things that lack backwards compatibility. I’m all for progress, but shame on us at Club Commerce for not managing our software investment. Should we blithely allow our software to become instantly obsolete just because a group of people running Joomla says so? When Joomla 3.0 becomes LTS, Club Commerce will have the critical mass to manage Joomla 2.5 & Joomla 3.0 as we see fit.

Square One matters to LaSalleMart so much that I already did two podcasts with S1′s Founder earlier this year.

Jeremy just wrote a terrific post called “Square One 3.0 Discussion” in the S1 Google Group. He enunciates the tensions involved with planning a Joomla 3.0 distro. He also articulates the tensions involved with maintaining a simple little Joomla distro versus broadening the scope into new unique features.

At Club Commerce, the investment in our own “Square One” type of Joomla Distro is worth it. But, an investment it shall be as it will take time, effort, and money to make a serious go of it. We should either offer our own “Square One” type of Joomla Distro to the community; and/or, combine our efforts with the S1 Project in order to support this very worthy endeavour.

In the same way, Club Commerce should become a sponsor of the FoF project. By sponsor, I mean that Club Members pay programmers to do work for FoF, and then offer them to Nicholas — or, perhaps, to pay programmers to do work at Nicholas’ behest.

In either case, we will see where our journey takes us.

It is certainly an experience translating theory into practice. Intermediating open source software is a critical aspect of mitigating risk, and banding together to effect this intermediation is a one reason to band together. The actual Doing It may turn out better than the theory, as my Club Commerce Members contribute back to the projects with which we are intermediating! Sounds good to me.

Another reason to intermediate Joomla itself is hoisting Joomla onto our software development process, in order to unlock inherent value. Again, the “Moneyball”!. You’ll hear references to Jenkins and other infrastructure in Jeremy’s Joomla-and-Beyond-2012 presentation:

<iframe width=”400″ height=”225″ src=”http://www.youtube.com/embed/9nONlUeSXKs?rel=0″ frameborder=”0″ allowfullscreen></iframe>

Why Square One Matters To You (JAB2012)

Thank you to Jeremy for leading the S1 project; and, to everyone who is participating. You are doing important work!