Skip to content

Comments

Four point oh#9261

Draft
deathaxe wants to merge 137 commits intosublimehq:masterfrom
deathaxe:four-point-oh
Draft

Four point oh#9261
deathaxe wants to merge 137 commits intosublimehq:masterfrom
deathaxe:four-point-oh

Conversation

@deathaxe
Copy link
Contributor

This PR prepares package_control_channel for Package Control 4.0 by...

  1. upgrading scheme version of channel and repositories to 4.0.0
  2. opt-in compatible libraries to python 3.8
  3. drop all ST2-only repositories/packages/libraries

This PR is frequently synced with this repo's master branch and https://github.com/packagecontrol/channel.

It contains all current ST3+ packages and libraries.

As many as possible packages have been migrated from external repositories to this one, to reduce attack surface of uncontrolled 3rd-party registries.

Warning

This PR must not be merged before packagecontrol.io has been upgraded
see:

deathaxe added 30 commits March 21, 2023 21:02
1. rename dependencies.json to libraries.json
2. update scheme versions
3. drops repositories of scheme 1.x as those support ST2 only.
4. drops libraries, which support ST2 only.
5. drops packages, which support ST2 only.
The `sublime_text` key is optional as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Add list of required "libraries", to ensure "lxml" is also installed.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9

Note: Opt-in to python 3.8 as it is a pure python library.
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9
Rename dependency to PyPI package name to avoid future naming conflicts.

Note: Required name mapping to ensure backward compatibility is supported
      as of PC 4.0.0-beta.9

Note: Opt-in to python 3.8 as it is a pure python library.
This commit ...

1. renames tokens:
   dependency => library
   dependencies => libraries

2. adjusts scheme versions to 4.0.0

3. drops `load_order` from libraries

4. drops tests for presence of `sublime_text` and `platforms` keys from release
   tests, as those are optional as of PC4.0-beta.9

5. drops duplicate library vs. package name checks, as libraries are installed
   independently to Libs/ as of PC4.0

6. adds `python_versions` type and value checks.

7. verify new libraries are not named like renamed legacy dependencies.
This commit adds `Binary` and `Git Formats` to the list of default packages.
This commit adds `Binary` and `Git Formats` to the list of default packages.
1. sort urls alphabetically
2. reformat patterns to use more of available space
3. disallow `#` (start of anchors) and `?` (start of parameters)
   in user and repository names
4. move (?<!\.git) to ensure not to accept something like
   https://github.com/repo/user.git/tree/master
Now that arm64 is supported it is very valid to have both x32 and x64
to specify arm64 is not supported.
To support validation and completions via LSP-json, Package Control ships
json schemas for channels and repositories.

This commit allows them to be explicitly assigned without tests failing via
- "$schema": "sublime://packagecontrol.io/schemas/channel",
- "$schema": "sublime://packagecontrol.io/schemas/repository",
Ship libraries for python 3.8 directly from pypi.
Remove repository of scheme 1.2 as no longer supported.
Dropped package.json is missing "details" or "base" entries for more about 8
years and thus has never been crawled. As such, drop that questionable thing.
If not specified `"sublime_text": "*"` is used by PC4.

The key is optional in schema 4.0.0
@deathaxe
Copy link
Contributor Author

How and where should we backup the old tombstoned names?

The same way as all other packages have to be managaged, which have been removed from this channel before.

@kaste
Copy link
Contributor

kaste commented Dec 21, 2025

And how exactly is that? IIRC I fetched/scraped the data from pc.io

@deathaxe
Copy link
Contributor Author

Failing schema tests will succeed, once #9269 is merged.

The platform key is only required to declare restrictions.
Package Control 4 requires at least ST3143.
Schema Version 4 is supported by Package Control 4, only.

Thus any sublime_text version specifier, defining least ST builds before 3143,
can safely be removed, as it always applies.
Bound version specifiers targeting builds before 3143 are converted to remove
obsolete lower bound.
All package releases being restricted to builds before 3143 are removed
as being ignored by PC4 anyway.
@deathaxe
Copy link
Contributor Author

deathaxe commented Jan 30, 2026

FWIW, crawling packages (with current release of thecrawl) using this branch and related master branch revision, results in channel.json files with equal sets of packages, when filtering all <ST3143 release branches.

So chances are good, this branch doesn't break any existing and compatible (ST3143+) packages.

The only 5 differences I see, are related with a package failing with 504 locally, but others being crawled, which fail with 403 when running upstream. All of them are present and valid in this branch.

EDIT: schema-test-action has been updated to accept python 3.14 specific library releases, so tests should succeed as of next test run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

non-package This is not about new or modified packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants