August 9 2011
Pancake gets a life of its own!
Today we were going to write an article about the brilliant new 3.1.0 coming out, but now were on v3.1.3. What is happening? Awesome stuff is happening.
Back in the v1.x days you would have to manually update all the files and go through an upgrade wizard to update your database. In v2.x we implemented Migrations so your database would automatically be updated when your files were upgraded. This made it easier, but still a little too time consuming. Now in v3.1 we have made this considerably better: Now your files will automatically upgrade. Pancake will update itself while you feed the kids, go to the pub or play some Call of Duty. Pancake has a life of its own!
Since releasing v3.1.0 weve made a few changes and fixed a few bugs with this system, got it working on more hosts, etc and these updates have gone out automatically to anyone who has v3.1.x installed. So, how does it work?
First you need to upgrade from v3.0.x to v3.1.3 just as you normally would, by backing up system/pancake/config/config.php, system/pancake/config/database.php and replacing the files. Then auto-upgrade then has to be enabled in Settings. If you do not enable updates then Pancake will simply just let you know that a new version is available. This means that the system not upgrade unless you tell it to. When this notice is shown you will see what version is available and a change-log from the current version so you know why you are upgrading.
The other option is to have it upgrade automatically. This will download a ZIP file that contains all new and modified files, which will replace whatever you have on your server automatically. If Pancake cannot replace the files due to file permissions it will try to use FTP to write the files, which you can provide in the settings page.
So how does Pancake know that a new version is out? Well it wont be checking with our server every page load or even every time you login. That is slow, and it can cause issues if you are installing it on a test server with no internet. Instead pancakeapp.com will try to notify your installation that a new version is available as soon as it is released. If your installation has not heard from us in a little while it will automatically check with us (if you have the cron job set up). Otherwise if it has not heard from us, and has not run the cron job, it will THEN check when you log in.
Pancake has got pretty smart when it comes to upgrades and gives you the choice over how automatic it is. Those who hate messing with their files will certainly be happy, and those worried about Skynet taking over can just let Pancake tell them there is a new version when they next login.
There may be a few of you who took up our offer of having read-access to Pancake on GitHub. If you are using Git to track your projects due to customizations or whatever else then have no fear, this will not conflict. Simply leave the auto-updater off and continue to pull your updates as you have been.
The Future
This change, and this release signifies a significant shift in how new versions of Pancake will be released. Now it can become more of a continues trickle of great new features. Those of you who have been using Pancake since the early days will remember that often a big release would be held up while we finished working on a one or two little features. We had to make sure that the next version had enough change to signify the bump in version numbers because we hate to make users upgrade their systems all the time.
Now if we make a brilliant new feature tomorrow, or fix an important bug we can just drop a new version. It doesnt matter if the new version is v3.1.4, v3.1.20 or v54345.3245025.4, if your upgrades are happening automatically Pancake will just quietly get better and you can get on with your work and enjoy sending invoices to clients.
A few other things
Those of you using CSS to customize the frontend and backend from the Settings page will now notice that weve added some great syntax highlighting, so you can write CSS much easier.
You can also delete an uploaded logo instead of just replacing it.