wbond / package_control

The Sublime Text package manager
https://packagecontrol.io
4.77k stars 816 forks source link

Problem with "Package Control.sublime-settings" hierarchy/ team settings #1633

Closed DavidBrieden closed 7 months ago

DavidBrieden commented 1 year ago

I work in a small team with Sublime Text and would like to set up an environment for team settings for package control.

The idea is to define global settings that apply to the whole team and store them in the Sublime folder under Data\Packages\Default. This folder will then be version controlled. In the folder under Data\Packages\User every single user can overwrite his own settings.

We would like to do the same for packages. We already have a global "Package Control.sublime-settings" in the default folder. Basically this already works, when starting Sublime these packages are installed successfully.

The problem now is when we make a change, i.e. when we delete or add packages: Here the "Package Control.sublime-settings" is completely copied into the user folder, and completely overwritten. If now a change is made to the "Package Control.sublime-settings" in the default folder, Package Control does not notice this change, because there is already an own file in the user, which overwrites everything.

Is there a solution for this problem?

deathaxe commented 1 year ago

ST's settings mechanism unfortunately doesn't merge list or dictionary values the way it would be needed to handle your request.

The easiest way would probably be to introduce a coorparate_packages setting, which PC would read but never modify. You could then add your predefined packages to it.

Sounds like something for the PC4.0 branch.

DavidBrieden commented 1 year ago

sounds good to me. thank you!

deathaxe commented 1 year ago

Package Control 4.0 will read and merge all installed_packages lists from all Package Control.sublime-settings found in any package and treat them as "predefined packages", which are automatically installed at start and kept up-to-date.

A user can't remove those packages.

A Package Control: Satisfy Packages Command Palette entry is provided to immediatly install all missing or remove orphaned packages at any time.

for details see: https://github.com/wbond/package_control/commit/369da1c732ec05cc515e3aaaac80b6ed5d2a129c