Versioning & Releases
Pelican follows semantic versioning (MAJOR.MINOR.PATCH).
Panel and Wings
The Panel and Wings are versioned independently. A Panel release does not mean there is a Wings release with the same number, and the other way around.
Compatibility is guaranteed within a major version: any Panel 1.x works with any Wings 1.x.
See Updating the Panel and Updating Wings for the current requirements.
What semver covers
A breaking change to any of these only happens in a new major version:
- The REST API: the application and client API, both request inputs and response shapes.
- The egg format (egg export/import) and the requirements for yolks.
- Configuration: the Panel
.envkeys and the Wingsconfig.ymlformat. - The plugin API, as described in the plugin compatibility policy.
These are not covered and can change in any release:
- The database schema. It is internal, use the API instead of querying tables directly.
- Internal PHP classes, services and views not listed in the plugin compatibility policy.
- The UI.
Deprecations
Features, API fields and config keys are deprecated in a minor release and removed only in the next major release. Deprecations are announced in the release notes and marked as deprecated in the API docs.
Minimum requirements (PHP, database versions) are only raised in minor releases and are announced in the release notes.
Releases
Releases are tagged from the main branch.
- Patch releases (
1.0.1) contain bug and security fixes. - Minor releases (
1.1.0) add features and can deprecate things. - Major releases (
2.0.0) can remove deprecated things and make other breaking changes.
The changelog lives in the GitHub releases:
Support
Only the latest release is supported. Bug and security fixes ship as a new patch release, they are not backported to older versions. Please update before reporting a bug.
Upgrading from a beta
Update like any other release, following Updating the Panel and Updating Wings.
Upgrading from 1.0.0-beta38 or earlier to 1.0.0 includes these breaking changes:
PHP 8.3 is no longer supported. Upgrade PHP before updating the Panel.
Application API
API responses are unchanged, but some deprecated request inputs were removed:
| Endpoint | Removed input | Use instead |
|---|---|---|
PATCH /api/application/servers/{id}/build | memory, swap, io, cpu, threads, disk | limits.* |
POST /api/application/servers | deploy.locations | deploy.tags |
GET /api/application/nodes/deployable | location_ids | tags |
The removed inputs are silently ignored on the build and deployable endpoints, so check any scripts or billing integrations that still send them.
Discord webhooks
Discord support moved out of the core webhook system into plugins. Existing Discord webhooks keep firing with their saved payload, but lose the Discord-specific formatting (such as embed timestamps) and can't be edited. Install a plugin that provides the Discord webhook type to edit them or create new ones.
Plugins
- Fractal was removed.
App\Transformers\Api\*and$this->fractalare gone; API responses are built with the classes inapp/Data/Apiand$this->response. App\Enums\WebhookTypeand theDiscordPreviewcomponent were removed. Webhook types are now plain strings.- Activity logs are append-only. Updating or deleting an
ActivityLogthrows an exception. - Major dependency updates:
phpseclib/phpseclib4,predis/predis3,spatie/laravel-permission8 andspatie/laravel-query-builder7. Check your plugin code andcomposer_packages. ^inpanel_versionnow works like composer's caret and stops before the next major version. See Panel version.
Passkeys
If passkey sign-in fails after updating and the Panel runs behind a reverse proxy, set TRUSTED_PROXIES (see Reverse Proxy Setup) so the Panel sees the correct host.