-
Notifications
You must be signed in to change notification settings - Fork 2
Compatibility Policy
This page summarizes the EasyLibrary 3.0-dev compatibility policy.
The versioned source document is
docs/compatibility.md.
| Field | Value |
|---|---|
| EasyLibrary line | 3.0.0-dev |
| PHP | 8.2+ |
| PocketMine-MP | 5.x |
| Core role | Core manager, package manager and compatibility layer |
| Official libraries | Package-backed or standalone providers |
| Legacy embedded source | Removed from the 3.x core |
| Surface | Rule |
|---|---|
@api EasyLibrary classes/methods |
Public contract for the current major line. |
@experimental classes/methods |
May change before stable 3.0.0. |
@internal classes/methods |
Implementation detail; external plugins should not depend on it. |
| Official library namespaces | Owned by their own package/standalone repositories. |
package.yml |
Public Package Contract v1 for .easylib.zip assets. |
| Human command output | Operator diagnostics, not a stable machine API. |
| Provider | Rule |
|---|---|
| Package-backed | Managed by EasyLibrary under plugin_data/EasyLibrary/packages, exposed through a generated PMMP proxy when needed. |
| Standalone | The standalone PMMP plugin owns the provider directly. |
| Legacy embedded | 2.x history only; removed from EasyLibrary 3.x core. |
Mixed mode is migration-only:
standalone present + package installed = standalone wins
Package install, update, remove, rollback and provider ownership switches are restart-based. EasyLibrary does not hot-unload already loaded PHP code.
/easylibrary config reload reloads config files only. It does not remount
package proxies, change PMMP dependencies, reload package code or re-register
permissions.
/easylibrary runtime reload reload-config uses the same config-only contract.
/easylibrary runtime reload request-runtime-reload returns a restart-only
report for package-backed providers, proxy mounts, command backends, components,
permissions and plugin metadata. /easylibrary runtime reload all applies the
config reload and lists the runtime boundaries that still need a restart.
Any future deprecation, namespace move or behavior removal must update:
- Deprecated APIs
- Removed Features and Replacements
- Public API Contract when relevant
- repository
CHANGELOG.md - repository
changelogs/3.0.md - repository migration docs when code changes are required
Before stable 3.0.0, development-only removals are allowed when documented. After stable 3.0.0, public API removals should wait for a major version unless a severe security or correctness issue requires otherwise.
After package/provider/config changes:
/easylibrary doctor
/easylibrary packages doctor
/easylibrary config doctor
/easylibrary runtime reload request-runtime-reload
elprobe <package>
elprobe run <package>
- Package Manager
- Package Backed Plugins
- Standalone vs Package
- Package Switch and Migration
- Package Doctor
- Package Safety Gate
- Support Report Bundle
- Timings
- Package Recovery
- Proxy Troubleshooting
- Migrating from EasyLibrary 2.0 to 3.x
- Embedded Libraries Migration Map
- Removed Features and Replacements
- Deprecated APIs
- Compatibility Policy
- Config Migration
- Plugin Developer Migration
- Server Administrator Migration
- Official Libraries
- LibPacket
- LibCommand
- LibSerializer
- LibForm
- LibDB
- LibCommons
- LibHttp
- LibAssets
- LibPlaceholder
- LibWorld
- EasyLibrary Agent Bridge
- LibCustom
- LibEnchantment
- LibHud
- LibTrigger
- LibWindow
- Public API Contract
- Doctor Output
- Repository Notifications
- Smoke Tests
- Common Errors
- Release and Changelog