Legacy libraries (former "dependencies") bundle python packages, so they can be re-used by Sublime Text packages.
Platform specific variants are organized in sub folders.
folder | description |
---|---|
all |
no restrictions, universally compatible with all versions of Sublime Text, python and platform |
st3 |
requires at least ST3 |
st3_{os} |
... and specific os |
st3_{os}_{arch} |
... and specific architecture |
st4 |
requires at least ST4 |
st4_{py} |
... and specific python version |
st4_{py}_{os} |
... and specific os |
st4_{py}_{os}_{arch} |
... and specific architecture |
variable | valid values |
---|---|
{os} |
"osx", "linux", "windows" |
{arch} |
"x32", "x64", "arm64" |
{py} |
"py33", "py38" |
Package Control installs most specific and best matching variant of a library.
When running Sublime Text 3,
all
andst3
are actually only synonyms as Sublime Text 2 is no longer supported.- all folders beginning with
st4
are ignored.
When running Sublime Text 4,
- all folders beginning with
st4
are prefered, if present. all
andst3
are installed for python 3.3 and 3.8st3_{os}
andst3_{os}_{arch}
are considdered containing binaries and thus are installed for python 3.3, only.
When running ST4 on 64bit Windows, it prefers ...
st4
overst3
st4_py38
overst4
st4_py38_windows
overst4_py38
st4_py38_windows_x64
overst4_py38_windows
Dependencies must opt-in to python 3.8 via repository.
{
"$schema": "sublime://packagecontrol.io/schemas/repository",
"schema_version": "4.0.0",
"libraries": [
{
"name": "example-dependency",
"author": "packagecontrol",
"issues": "https://github.com/packagecontrol/example-dependency/issues"
"releases":[
{
"base": "https://github.com/packagecontrol/example-dependency"
"python_versions": ["3.3", "3.8"]
}
]
}
]
}
Note
JSON repository scheme 4.0.0 is required to specify "python_versions": []
.
packagecontrol.io supports up to scheme 3.0.0 only!
Warning
Package Control downloads the whole repository including all folders and drops all but the required variant when installing the library.
This may result in reasonable bandwith being wasted, depending on amount of variants and size of packages.
It is therefore recommended to ship libraries as platform specific python wheels using asset based releases, instead.