packagecontrol / channel

Package Control Libraries Channel
https://packagecontrol.github.io/channel/
3 stars 5 forks source link

How do dependencies of dependencies work? #5

Closed kaste closed 6 months ago

kaste commented 7 months ago

SublimeLinter used jsonschema. If I switch to Py38 PC will automatically update the dependency. That's good but the new version of jsonschema has various dependencies, e.g. attrs among them. (Obviously they can also come and go at their will.) These are not installed and also not available/registered so the update/package is broken after that.

Is this supposed that we add all these dependencies here as well? Should we rather remove jsonschema as it does not work in the current form?

https://github.com/packagecontrol/channel/blob/8da3e2a0996af2fa30f776ba7854346d51867986/repository.json#L442-L459

deathaxe commented 7 months ago

Package Control does not yet resolve dependencies (or requirements) recursively.

All found libraries which would help doing so, don't support python 3.3. Thus this whole logic would need to be re-invented, if we do not want to completely drop ST3 support. Anyway writing python 3.8 only code would cause syntax errors, if python 3.3 plugins make use of Package Control even on ST4.

The only current chance is to manually check those requirements, register them to this channel if needed and add them to dependencies.json of the primary package (e.g.: SublimeLinter).

Note that we won't do any version compatibility checks. The latest available release of each library will be installed.

kaste commented 7 months ago

That's what I thought. I think we should remove it then as it simply requires to much.

3.8 is also near its end; pretty sure they drop it soon enough. It's their minimum version anyway.

I like the old simple jsonschema as it is enough to validate ST settings. Obviously a recent jsonschema is full-blown. YAGNI for us.

deathaxe commented 7 months ago

Feel free to open a PR to drop it.