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,
allandst3are actually only synonyms as Sublime Text 2 is no longer supported.- all folders beginning with
st4are ignored.
When running Sublime Text 4,
- all folders beginning with
st4are prefered, if present. allandst3are 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 ...
st4overst3st4_py38overst4st4_py38_windowsoverst4_py38st4_py38_windows_x64overst4_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.