Closed LDAP closed 1 year ago
the repository.json scheme must not be updated
Even though barely used, plugins can provide dependency/library specification upstream via dependencies: {...}
aka. libraries: {...}
as an alternative for dependencies.json. With the discussion about adding support to force unmaintained packages to run on python 3.8 via upstream setting in mind it would probably just make sense to also support upstream package level dependencies, optionally.
Libraries are installed/updated during package installation. The same would need to happen for packages with the difference that those need to be disabled before installing or upgrading. As dependencies are not known before a package has been downloaded and extracted, we again end up in disabling and enabling packages nearly one by one, which is the main cause of all the trouble with packages keeping disabled after upgrade or batch install/upgrade operations being rather unreliable. This should not be the outcome of any future change again.
Note: Just try to copy a Package Control.sublime-settings with about 70 packages to a new ST setup and try to let PC 3.4 install everything. You'll need dozens of restarts with dozens of error dialogs before everything is up and running.
Hence a solution would look like:
PakageDisabler.disable_packages()
for all downloaded packagesPakageDisabler.reenable_packages()
for all downloaded packages
_Originally posted by @deathaxe in https://github.com/wbond/package_control/issues/1628#issuecomment-1428328790_
If we accept that package dependencies are installed after the fact and ST needs to be restarted in some cases (LSP-helpers that depend on LSP), the repository.json scheme must not be updated as far as I can see. This would already suit many plugins since the package dependencies are mostly optional (e.g. providing extra functionality if Terminus or Debugger are available).
I could attempt to provide a PR in this case.