Skip to Content Skip to Menu

We've got an awesome new release for CB Package Builder that improves performance, to UX, to better bundling, and more. Very exciting news for anyone who wants to deliver Joomla installation bundles and now even just as a download manager using bundled ZIP packages. Check out the details below!

First lets start off with the performance improvements. The way CB Package Builder works is you configure a package that points to a file. That file it points to can use versioning via a wildcard in the file path. So for example my file is /image-1.0.jpg. In that file my version is 1.0. With package builder I can automatically pick up new versions by supplying a file path of /image-*.jpg in the package. This means you don't need to manually create new packages when a new version is released. You simply upload it to where /image-1.0.jpg is stored and you're done. Now that I've explained how packages work lets explain the performance problem here. This causes a filescan, which will get heavier and heavier the more files there are. In addition to this it does a filescan anytime API pertaining to versions is accessed so basically all the time. CB Package Builder will now cache those filescans. So lets say you only update something once a week. This means it only needs to do a filescan once and week and from then on will use the cache. This SIGNIFICANTLY improves package performance.

Alright with that all of text out of the way lets get to some of the awesome new features. First off you can now use CB Package Builder as just a ZIP bundle builder. This will just package the selected files into a single ZIP file. It won't include the Joomla installer. This is toggled globally as shown below.

Next you can control what packages are allowed be bundled on a per-package basis. This is no longer and all or nothing feature. You'll see the below parameter in your packages.

This also brings another feature. Bundling for Custom types. So for example if you select 3 PDF documentations for bundling it will bundle all 3 into a single zip file. This means CB Package Builder can truly be used as a generic download manager now instead of more strictly being a Joomla packager. This will be improved even more in the future where package types becomes a lot more customizable.

There have also been even more improvements to per-package configurations. Specifically there are now Sub-Packages. Sub-Packages work just like Dependencies except their published state, access permissions, and conditions are all fully respected unlike Dependencies, which only check published state.

A feature brought over from Presets has also been added to Packages. You can now override the package name when a package is downloaded. The filename parameter supports substitutions as well for personalized filenames as well.

Package media has always been a bit hard to configure. The idea was it'd work the same way packages did in that you drop media into a folder and that media would automatically be picked up. The reason we wanted this behavior for CB Package Builder is it allows developers like us to use entirely tools like CLI to automatically release new version. This was only partially implemented for media though since media doesn't support versioning you'd have to supply filenames for media directly. Now you can just supply a directory. So I could have a folder with images, videos, etc.. and that entire directory of media will be pulled into the package automatically (with caching too!). Take a look below.

You can also specify where a media will output. Whether you want it to output on the package view or on the packages details page or both. With this improvement we've also improved how media is displayed in the details page. It's now a slick inline scroller instead of a popup.

Next great improvement to packages is Description has been split into 2. You now have an Into Description which is shown in the package and a Full Description which is only shown on the details page. The Full Description parameter has WYSIWYG editor enabled as well for easy customization with HTML and supports substitutions as well. So what information you put there is limitless! As you can see below the Intro is shown above the line with the Full shown below it.

UX has also been improved. Downloads can be hard to make user friendly. So a lot has been put into redesigning the grid template to be even easier to use. In addition to this the download bundle button now sticks to the bottom of the page so it's much easier to find. Take a look below.

As you scroll the page the Download Bundle button will scroll with you. It's never lost and won't require you to go all the way to the bottom of the page anymore.

Lets get a bit more technical now. For Joomla developers maintaining a version XML endpoint for your extensions can sometimes been cumbersome. We've now automated that with this release. In addition to the generic XML endpoint provided by CB Package Builder you can now enable a Joomla version XML endpoint. This endpoint will output a Joomla extension bundle XML response. This allows a single automated endpoint for your Joomla extensions to work with Joomlas version checker. It automatically only responds with stable versions.

This bring us to a potential problem though. Version checking isn't very accurate without specific extension XML details like the element, the type, etc.. You can now supply these directly in the package under its Details tab. It will automatically show these parameters after a package has been saved with a Joomla type. This significantly improves the accuracy of version checking.

Last but not least is the Site Key functionality. Site Keys allow you to download packages on behalf of a user by the site key alone. This means you could have automatic updates, install from web store, and more built into your extension that only needs a site key. These can be generated by a user with only needing to supply their domain.

You'll notice there are basic create access permissions and limits you can customize. You can also format how the site key is output, which means you could include the users username in the site key which gives you better control of who maybe accessing the downloads. On frontend users have a slick easy to use interface for creating site keys.

That's it for this release. I hope to see more developers starting to use CB Package Builder in the future for easy download management and release of their extensions or anyone who potentially needs a download manager. Full change log can be found below.

https://forge.joomlapolis.com/projects/cb-cbpackagebuilder/issues?query_id=162