You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If the server still reports `legacy` config, migrate supported config blocks once:
@@ -78,7 +78,7 @@ If the server still reports `legacy` config, migrate supported config blocks onc
78
78
/easylibrary config doctor
79
79
```
80
80
81
-
The migration writes supported files such as `plugin_data/EasyLibrary/config/package-manager.yml` and `plugin_data/EasyLibrary/config/library-installer.yml`, then leaves the old `config.yml` blocks untouched as fallback.
81
+
The migration writes supported files such as `plugin_data/EasyLibrary/config/package-manager.yml`, `plugin_data/EasyLibrary/config/library-installer.yml` and `plugin_data/EasyLibrary/config/components.yml`, then leaves the old `config.yml` blocks and legacy `components.yml` untouched as fallback.
82
82
83
83
### Installing internal packages
84
84
@@ -118,7 +118,7 @@ elprobe run libplaceholder
118
118
119
119
### Safe config operations
120
120
121
-
Config Split currently supports `package-manager` and `library-installer`:
121
+
Config Split currently supports `package-manager`, `library-installer` and `components`:
122
122
123
123
```txt
124
124
/easylibrary config doctor
@@ -127,7 +127,7 @@ Config Split currently supports `package-manager` and `library-installer`:
127
127
/easylibrary config repair [confirm]
128
128
```
129
129
130
-
`config reload`reloads config files only. It does not hot-swap package-backed plugins, regenerate PMMP dependency graphs, change loaded permissions or remount proxies. Changes to `plugin-loader`, `runtime-autoload`, `plugin.yml`, dependencies, permissions and load order still require restart.
130
+
`config reload`reloads config files only. It does not hot-swap package-backed plugins, regenerate PMMP dependency graphs, change loaded permissions, remount proxies, enable/disable active components or re-register command overrides. Changes to `plugin-loader`, `runtime-autoload`, `components`, `plugin.yml`, dependencies, permissions and load order still require restart.
131
131
132
132
### Plugin developer rule of thumb
133
133
@@ -255,6 +255,7 @@ The preferred 3.x command path is `/easylibrary packages`. The old `/easylibrary
255
255
| Return to local package version | `/easylibrary packages rollback <package> [version] [confirm]` |
@@ -291,24 +293,25 @@ Current asset-ready internal packages in this wave include `libpacket`, `libcomm
291
293
292
294
Installing a package is still separate from replacing a standalone plugin. EasyLibrary 3.0-dev prepares a hidden package-backed proxy under `plugins/.easylibrary-<Plugin>.easylibplugin/`, while the real package code stays under `plugin_data/EasyLibrary/packages/`. If the matching standalone plugin is present, the proxy is parked and the standalone wins for that server session.
293
295
294
-
### Modular package-manager config
296
+
### Modular config split
295
297
296
-
EasyLibrary 3.0-dev includes the first Config Split foundation. Package-manager and standalone library-installer settings can now be read from:
298
+
EasyLibrary 3.0-dev includes the Config Split foundation. Package-manager, standalone library-installer and core component settings can now be read from:
When one of those files exists, its values override the matching `package-manager.*` or `library-installer.*` entries from the legacy `plugin_data/EasyLibrary/config.yml`. If a split file does not exist, the old `config.yml` path continues to work exactly as before. No config file is moved or migrated automatically in this phase.
306
+
When `package-manager.yml` or `library-installer.yml` exists, its values override the matching `package-manager.*` or `library-installer.*` entries from the legacy `plugin_data/EasyLibrary/config.yml`. When `components.yml` exists under `config/`, it overrides the legacy `plugin_data/EasyLibrary/components.yml`. Existing legacy files are left in place as fallback.
304
307
305
308
Use `/easylibrary doctor` to confirm which config sources are active. The doctor reports `split`, `legacy` or `defaults` for supported areas. For a more detailed migration check, run `/easylibrary config doctor`; it prints each split path, split value detection, legacy value detection and any warnings about empty or mismatched split files.
306
309
307
-
Use `/easylibrary config migrate` for a dry-run plan that creates supported split files from legacy `config.yml` blocks. Repeat with `confirm` to write missing split files. The command intentionally leaves `config.yml` unchanged, so rollback is just removing the split file and restarting if behavior changed.
310
+
Use `/easylibrary config migrate` for a dry-run plan that creates supported split files from legacy sources. `package-manager` and `library-installer` are copied from `config.yml`; `components` is copied from `components.yml`. Repeat with `confirm` to write missing split files. The command intentionally leaves legacy files unchanged, so rollback is just removing the split file and restarting if behavior changed.
308
311
309
-
Use `/easylibrary config repair` when a supported split file is missing, empty or not recognized but `config.yml` still has a valid block for that area. It is dry-run by default; with `confirm`, it writes only the split file and still leaves `config.yml` untouched. It does not try to reconcile divergent values yet.
312
+
Use `/easylibrary config repair` when a supported split file is missing, empty or not recognized but the legacy source still has valid values for that area. It is dry-run by default; with `confirm`, it writes only the split file and still leaves legacy files untouched. It does not try to reconcile divergent values yet.
310
313
311
-
Use `/easylibrary config reload` for a safe config-file reload. It reloads `config.yml`, rereads split config files through a fresh resolver and reports restart boundaries. It does not unload, mount or hot-swap package-backed plugins; changes to `package-manager.plugin-loader`, `package-manager.runtime-autoload`, plugin dependencies, permissions or load order still require a restart to affect the current PMMP session.
314
+
Use `/easylibrary config reload` for a safe config-file reload. It reloads `config.yml`, rereads split config files through a fresh resolver and reports restart boundaries. It does not unload, mount or hot-swap package-backed plugins; changes to `package-manager.plugin-loader`, `package-manager.runtime-autoload`, `components`, plugin dependencies, permissions or load order still require a restart to affect the current PMMP session.
312
315
313
316
The modular files use each legacy block's contents without the outer area key. For `package-manager.yml`:
314
317
@@ -341,6 +344,16 @@ backup-before-install: true
341
344
restart-required: true
342
345
```
343
346
347
+
For `components.yml`:
348
+
349
+
```yaml
350
+
logger: true
351
+
commands:
352
+
overwrite_defaults: true
353
+
vendor:
354
+
Cache: true
355
+
```
356
+
344
357
For controlled smoke tests, remove one matching standalone plugin at a time and restart. The package should move from `installed-shadowed-by-standalone` to `active`, `/easylibrary packages doctor` should report no problems, and `elprobe run <package>` should report `functional=yes`.
345
358
346
359
Package installs are guarded by the same safety rules as the standalone installer:
@@ -367,6 +380,8 @@ The package-backed loader has now validated the base wave (`libserializer`, `lib
367
380
368
381
`/easylibrary packages doctor`validates package paths, installed manifests, sha256 metadata, proxy marker data and stale restart markers. If a package is already active through the package-backed proxy, stale restart-required entries are cleared automatically.
369
382
383
+
`/easylibrary packages proxies doctor [package]`focuses only on generated package-backed proxy mounts. It prints mount summaries, active/parked/missing manifest counts and per-package recovery hints such as `proxies prepare`, `packages repair`, `packages switch` or config allow-list fixes.
384
+
370
385
`/easylibrary packages repair <package|all>`is dry-run by default. With `confirm`, it can rewrite missing package lock entries from installed state, normalize stale state metadata, clear restart markers for active package-backed plugins and regenerate managed proxy mounts.
371
386
372
387
`/easylibrary packages update <package> [channel]`is also dry-run by default. It only stages a different registered target version for an already installed package; it does not move the currently loaded package directory while the server is running, and the updated package becomes active after restart.
@@ -417,6 +432,7 @@ The standalone installer remains available for compatibility. The preferred 3.x
Because config migration does not delete `config.yml`, rollback is simple:
85
+
Because config migration does not delete `config.yml` or `components.yml`,
86
+
rollback is simple:
86
87
87
88
1. Stop the server.
88
-
2. Remove or move the relevant split file, such as `plugin_data/EasyLibrary/config/package-manager.yml` or `plugin_data/EasyLibrary/config/library-installer.yml`.
89
+
2. Remove or move the relevant split file, such as `plugin_data/EasyLibrary/config/package-manager.yml`, `plugin_data/EasyLibrary/config/library-installer.yml` or `plugin_data/EasyLibrary/config/components.yml`.
89
90
3. Start the server.
90
91
4. Confirm `/easylibrary config doctor` reports `legacy` for that area.
0 commit comments