Skip to content

Compatibility Policy

ImperaZim edited this page Jun 29, 2026 · 2 revisions

Compatibility Policy

This page summarizes the EasyLibrary 3.0-dev compatibility policy.

The versioned source document is docs/compatibility.md.

Current Line

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

Compatibility Surfaces

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 Modes

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

Restart Boundaries

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.

Deprecation Rules

Any future deprecation, namespace move or behavior removal must update:

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.

Validation

After package/provider/config changes:

/easylibrary doctor
/easylibrary packages doctor
/easylibrary config doctor
/easylibrary runtime reload request-runtime-reload
elprobe <package>
elprobe run <package>

Clone this wiki locally