Updates
How the updater works, what the channels mean, and what changes when the update window closes.
Updates arrive as signed packages that Bondry verifies before applying. The whole flow lives in System > Updates.
The check#
Once a day the scheduled task asks the license server which releases exist for your product, your channel and your current version. If a newer one is available, the panel shows a notice you can dismiss per version.
The check only lists releases published inside your update window. Everything released while the window was open stays available to you forever, even after it closes.
Channels#
| Channel | Who it is for |
|---|---|
stable |
Everyone. The default. |
beta |
People who want the next version early and can afford to hit a bug. |
The channel is a setting in System > Updates. Switching to beta on a
production community is not recommended.
What the updater does#
When you apply an update, in this order:
- Preflight: the new version is higher than the current one, the current version is at or above the package minimum, the PHP version qualifies, the files are writable and there is disk space.
- Backup: every file the package touches is copied aside and the database is dumped.
- Maintenance mode: the site shows the maintenance screen.
- Copy: the files are written.
- Migrations: for the core and for every installed module.
- Caches: config, route, view and OPcache are cleared.
- Verification: every written file is checked against the hash in the manifest.
- Back online.
If anything fails after the backup, the updater restores the files and the database and leaves you on the version you started from. Every run is recorded in the update history, step by step.
What it refuses#
A package is rejected if the signature does not verify, if any file hash does
not match, or if any path in it is absolute, contains .., or falls outside
the directories an update is allowed to touch. .env, storage/,
public/uploads/ and bootstrap/cache/ are never written by an update.
Hosts without outbound network#
Two ways around it:
- download the package from your account and upload it in System > Updates, which runs exactly the same verification;
- run
php artisan bondry:update --file=/path/to/package.zipfrom a shell, useful when the web request would time out on a big update.
When the window closes#
You retain the right to use your licensed versions and download releases published within your update window. An optional extension gives you access to newer releases. The hosted Designer library requires an eligible core or Designer license with an active update window.
An extension adds 365 days from the current expiry date or the purchase date, whichever is later. Renewing early preserves the time remaining; renewing after expiry starts a new 365-day window on the purchase date.
Warning Update the core before the modules. A module declares the core version it needs, and installing a module built for a newer core leaves it disabled until the core catches up.