Its time for another crowdfunding adventure. Last week we released thirty bees 1.0.4 without an updater. This is how all new releases are going to be released until we can have more time to focus on the updater.
Why do we need to crowdfund an updater?
The reason is simple, time. We have all spent a lot of time working on other parts of thirty bees that needed to be fixed. The updater is one of the last pieces of the puzzle. Some of us here have spent so much time working on thirty bees that our work has started to suffer. In the last couple of months there has been a lot of work that is not readily noticeable on the main thirty bees branch, but nonetheless needed to be done. Some of that includes:
- A complete rewrite of the MailChimp module
- Refactoring the Stripe module with the new API
- Update and rewrite of Piwik/Matomo module to be compatible with later php versions and easier connection
- The APCu, Opcache, and Memcache modules have been updated to be compatible with PHP 7.2
- The PayPal module has been updated to be more stable with a ton of bug fixes
- The stats core for thirty bees was rewritten to reduce the number of modules used by 25 modules
- Another 10 modules have been bug fixed or updated in the last few months as well
- A GDPR module for GDPR compliance
- And finally we have written a stable packager
The Packager
Out of all the updates I have pulled this one out to talk about it more, since it directly relates to the updater. We have written a stable packager where we can package thirty bees quickly and on demand. What does this mean for you the merchant? It means quite a lot actually. Since we have tested it thoroughly with the 1.0.4 release we are moving it into production. What this means is we are going to start packaging new bug fix releases every 2-3 weeks. This means now the need for a stable updater is more urgent than before.
The new updater
Our old updater is build on years old technology we forked. The new updater will be written from the ground up to be more stable and use better practices. We have actually started on this updater already, but it needs a good amount of work before it is stable enough to be used. But, we also have to eat, this is the problem at hand. Crowdfunding the module will increase the amount of time it can be worked on, letting us launch the module sooner.
Features of the new updater module
As we have mentioned in several blogs before, automation is our key to success. The less time we have to work on mundane tasks, the more time we can focus on making new modules, fixing bugs in the core, and adding new features. This module will not be any different. Currently with our upgrade module we have to pack every release. Pack all the file changes, the database changes, and release an update of the module to handle the package. An issue we have with the module is it will time out on some systems when there are a lot of changes. This is why we cannot pack 1.0.4 for this module, it needs to be rewritten because there are just so many bug fixes and file changes.
The new module we are working on will be a packageless module. This means we will not have to create update packages ever. This will give shop owners the ultimate flexibility in upgrading their shops. We plan on using the infrastructure around GIT to handle all of the upgrades. Doing this takes time to set up initially, but the pay off of never having to touch it again will be worth that time. Some of the things the module will be able to do:
- Apply bug fixes – If you have an issue and we fix it in the thirty bees repository, you can apply that patch immediately.
- Canary Upgrades – You can upgrade your shop to the latest source code in the repository, even if there is not a release version out, so you will be running the latest, fastest, bug free code.
- Ability to revert versions – If you apply an upgrade and a feature breaks, you can go to the module and remove the upgrade quickly and easily until we get the regression fixed.
- Automatic upgrades – One main feature of this module is to transition to automatic upgrades, where you shop is update without you actually having to do anything.
- Partial upgrades – You can upgrade your shop, but if there is a bug, you can remove the single upgraded file that is causing the problem.
We feel these features would make the module not only stable, but able to work on just about every system, since we would not be replacing the whole shop on upgrade, just the affected files. It would also give shop owners a very precise control over their upgrade that no other platform has.
We have a lot on our plate with thirty bees, especially with this module which is going to be a vital part of the future of thirty bees. We are going to have to keep releasing manual upgrade versions until this module is completed. The faster that we can fund the creation of the module, the faster we can release it.