wbond / package_control

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

Handling Packages that Override Built In Packages #890

Closed idleberg closed 10 months ago

idleberg commented 9 years ago

Is it possible that PC 3.0 has a problem with packages using the same name, e.g. when a user installed a package that uses the name of a package that comes with Sublime Text? This seems to be the case with my AppleScript package. I might not have used the package since the upgrade to PC 3.0, but I did not have any conflicts in previous versions (to make things more complicated, my package was renamed sometime last year!)

Since cloning the package to Packages/User works fine (even if the target folder is named AppleScript), I assume it's a name conflict.

To reproduce it, try the following:

  1. Create a new document and set the scope to AppleScript (this should work)
  2. Install the AppleScript package from PC
  3. Repeat step 1, this time it should not work

I also noticed, that PC keeps offering me the option to install the AppleScript package and it's not listed when I try to remove it. When I delete Installed Packages/AppleScript.sublime-package manually, hell breaks loose: after a restart setting the syntax to AppleScript works for a few seconds, then I get an error popup reporting the missing file AppleScript.tmLanguage.

Tested on Sublime Text Build 3065, OS X 10.7 & 10.10

FichteFoll commented 9 years ago

Entirely possible that ST3 has problems here. I don't think anyone has tested how default packages interact with "Installed Packages overrides" so far, but judging by your experiences it appears that the default packages are replaced completely (as in: Once Installed Packages/<Package>.sublime-package exists the default archive in AppFolder/Packages/<Package>.sublime-package is ignored). The reason why I suspect that is because you don't define a tmLanguage file in your package but the default one contains one. Honestly, that behavior is exactly what we would need if we at one point maintain all the default packages ourselves (there has been numerous discussion, latest here: https://github.com/SublimeTextIssues/Core/issues/621).

For the more detailed process: When PC wants to install a package it first adds it to the "ignored packages" list. That will deactivate the default AppleScript package and cause ST to not find the syntax definition anymore. Then the new package is "installed" and ST ignores the default one because it thinks that you replaced it or something. When you then delete the archive manually package control will detect that the package is "missing" (because you didn't remove it properly) and attempt to install it normally, which leads to the same procedure as mentioned above.

The reason why this works properly when placed in an extracted state in the Packages dir is because ST treats those differently. By saving files to the normal Packages dir you are allowed to override individual files (not the entire package). That means that files you didn't override are still present (in this case AppleScript.tmLanguage) and can be used.

Anyway, I don't see a reason why PC3.0 should have anything to do with it since the installation process is largely the same. The main problem here should be ST3 vs ST2.

Solutions:

  1. Just rename your package. I thought we didn't have a package name conflicting with a default package when we talked about that a few weeks ago, but apparently we did. I don't think I would accept a package with the exact same name as a default package, also because I don't even know how this works on ST2 and suspect the original package might get removed as well when attempting to remove the installed one.
  2. Include the default AppleScript.tmLanguage in your package. Licensing issues aside, I have no idea how this would behave on ST2 and you should really just do 1. until we know more.
  3. Include a .no-sublime-package file in your package. PC will then unextract your package to the normal Packages dir and will thus trigger the override-by-file functionality instead of overriding the entire package. However, this has the same problem as 2.
FichteFoll commented 9 years ago

The worst thing is actually that you can not remove the package using PC's "Remove Package" command. You need to delete the file manually and remove the "AppleScript" entry in the installed packages list (package control user settings).

I'm worried if the renaming will work or if this requires a fix for PC first.

idleberg commented 9 years ago

Another thing I was wondering about is whether I could add a .tmlanguage file that simply includes the default one. I renamed the package now, let's see what this does.

From a look at these dates, I think we can rule out Package Control being the cause of this problem.

However, I think I updated to PC 3.0 while it was still in beta. But I think there's a strong indication it was caused by the name change.

FichteFoll commented 9 years ago

I will add tests to the channel that check if a package name conflicts with a default package since we don't want package authors run into the same thing that you ran into. I usually check that manually but I didn't know an "AppleScript" package existed (because I never used it) and thus missed it. Updating the tests will prevent that from happening.

I will do some testing with PC, probably tomorrow, to see if there are more checks needed in this case (on both ST2 and ST3) so that it doesn't require manual interference and create a pull request. If this patch is needed to ensure a sane renaming process I will wait with merging your package rename proposal until the patch is released.

wbond commented 9 years ago

The reason it is not listen when trying to remove is because all default packages are ignored. This is probably why you keep getting the option to install it also, since it removed packages that are already installed, but it is not seen in the list of installed packages since default ones are removed.

To my knowledge, no one has done any real work on seeing how packages with the same name as default ones interact with PC and ST in general. Just from thinking about the issue for a minute and what I recall of how PC works, I imagine there are more than a few issues/bugs/situations that would need to be resolved for this to work smoothly.

I don't believe anything in PC has changed in this regard in a long time. The biggest change was probably from ST2 to ST3 where ST3 now has three places where packages can be defined instead of the one that ST2 had.

wbond commented 9 years ago

High-level steps to resolve this issue include:

  1. Testing and documenting how ST2 and ST3 behave when creating a package with the same name as a built-in one
  2. Adding tests to ensure that a overriding package with the same name as a default can be removed and that the default package will be fully-functional

Feel free to comment here if you are interested in contributing to this issue. I'd be happy to give more guidance on how to integrate with the existing tests.

evandrocoan commented 6 years ago

it appears that the default packages are replaced completely (as in: Once Installed Packages/.sublime-package exists the default archive in AppFolder/Packages/.sublime-package is ignored).

Indeed, this is the exactly behavior. This is why you cannot install the Default.sublime-package by package control, because:

  1. While doing that, will will completely override the builtin Default.sublime-package, meaning that we need to completely copy the Default.sublime-package into this new package, which raises the issues:

    1. The copyright issue. The Default.sublime-package is covered by the Sublime Text license and is part of the Sublime Text copyrighted code.
    2. The compatibility issue. The Default.sublime-package is very tied to the current installed Sublime Text core version build. Meaning that having it installed on the Installed Packages folder will raise issues once the user uses a incompatible build of Sublime Text.
  2. To install or uninstall a package we need to add it to the ignored_pacakges setting, and adding the Default.sublime-package to the ignored_pacakges settings makes Sublime Text go nuts.

For the remaining builtin packages shipped with Sublime Text, the Default.sublime-package compatibility issue is also valid, but it is weakerly linked, as they are not much more tied with the Sublime Text current build other than any other package distributed by Package Control.

However, due the complete override Sublime Text does with the builtin packages when a package with the same name shows up on the Installed Packages list, this new package with the same name as a builtin package need to be a complete override, otherwise it will cause the issues presented on the original post by @idleberg

__

@wbond, I would like to write the automated tests for this, but while running the current tests on a Sublime Text 3143 vanilla install, I got some of them are not already working:

Ran 60 tests in 22.646s

FAILED (failures=3, errors=7)

``` Running Package Control Tests EEEEEE........F.............E...........F..F................ ====================================================================== ERROR: test_github_client_branch_downloads (Package Control.package_control.tests.clients.GitHubClientTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.clients in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 85, in test_github_client_branch_downloads File "package_control.clients.github_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 127, in download_info File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in fetch_json File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 42, in fetch File "package_control.download_manager in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 340, in fetch File "package_control.downloaders.wininet_downloader in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 683, in download Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP error 403 downloading https://api.github.com/repos/packagecontrol-test/package_control-tester/commits?sha=master&per_page=1&client_secret=&client_id=. ====================================================================== ERROR: test_github_client_repo_info (Package Control.package_control.tests.clients.GitHubClientTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.clients in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 40, in test_github_client_repo_info File "package_control.clients.github_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 169, in repo_info File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in fetch_json File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 42, in fetch File "package_control.download_manager in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 340, in fetch File "package_control.downloaders.wininet_downloader in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 683, in download Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP error 403 downloading https://api.github.com/repos/packagecontrol-test/package_control-tester?client_secret=&client_id=. ====================================================================== ERROR: test_github_client_tags_downloads (Package Control.package_control.tests.clients.GitHubClientTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.clients in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 113, in test_github_client_tags_downloads File "package_control.clients.github_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 94, in download_info File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in fetch_json File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 42, in fetch File "package_control.download_manager in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 340, in fetch File "package_control.downloaders.wininet_downloader in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 683, in download Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP error 403 downloading https://api.github.com/repos/packagecontrol-test/package_control-tester/tags?per_page=100&client_secret=&client_id=. ====================================================================== ERROR: test_github_client_tags_prefix_downloads (Package Control.package_control.tests.clients.GitHubClientTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.clients in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 126, in test_github_client_tags_prefix_downloads File "package_control.clients.github_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 94, in download_info File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in fetch_json File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 42, in fetch File "package_control.download_manager in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 340, in fetch File "package_control.downloaders.wininet_downloader in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 683, in download Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP error 403 downloading https://api.github.com/repos/packagecontrol-test/package_control-tester/tags?per_page=100&client_secret=&client_id=. ====================================================================== ERROR: test_github_client_user_info (Package Control.package_control.tests.clients.GitHubClientTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.clients in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in test_github_client_user_info File "package_control.clients.github_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 213, in user_info File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in fetch_json File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 42, in fetch File "package_control.download_manager in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 340, in fetch File "package_control.downloaders.wininet_downloader in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 683, in download Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP error 403 downloading https://api.github.com/users/packagecontrol-test/repos?client_secret=&client_id=. ====================================================================== ERROR: test_github_readme (Package Control.package_control.tests.clients.GitHubClientTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.clients in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 71, in test_github_readme File "package_control.clients.readme_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 64, in readme_info File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in fetch_json File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 42, in fetch File "package_control.download_manager in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 340, in fetch File "package_control.downloaders.wininet_downloader in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 683, in download Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP error 403 downloading https://api.github.com/repos/packagecontrol-test/package_control-tester/readme?ref=master&client_secret=&client_id=. ====================================================================== ERROR: test_get_packages (Package Control.package_control.tests.providers.GitHubUserProviderTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.providers in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 155, in test_get_packages File "package_control.tests.providers in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 155, in File "package_control.providers.github_user_provider in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 142, in get_packages File "package_control.providers.github_user_provider in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 138, in get_packages File "package_control.clients.github_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 213, in user_info File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 58, in fetch_json File "package_control.clients.json_api_client in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 42, in fetch File "package_control.download_manager in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 340, in fetch File "package_control.downloaders.wininet_downloader in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 683, in download Package Control.package_control.downloaders.downloader_exception.DownloaderException: Error downloading repository. HTTP error 403 downloading https://api.github.com/users/packagecontrol-test/repos?client_secret=&client_id=. ====================================================================== FAIL: test_get_packages (Package Control.package_control.tests.providers.GitHubRepositoryProviderTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.providers in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 80, in test_get_packages AssertionError: Lists differ: [('package_control-tester', {'... != [] First list contains 1 additional elements. First extra element 0: ('package_control-tester', {'last_modified': '2014-11-28 20:54:15', 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', 'buy': None, 'previous_names': [], 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', 'sources': ['https://github.com/packagecontrol-test/package_control-tester'], 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', 'releases': [{'sublime_text': '*', 'date': '2014-11-28 20:54:15', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/master', 'version': '2014.11.28.20.54.15'}], 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', 'author': 'packagecontrol-test', 'labels': [], 'name': 'package_control-tester', 'donate': None}) + [] - [('package_control-tester', - {'author': 'packagecontrol-test', - 'buy': None, - 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', - 'donate': None, - 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', - 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', - 'labels': [], - 'last_modified': '2014-11-28 20:54:15', - 'name': 'package_control-tester', - 'previous_names': [], - 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', - 'releases': [{'date': '2014-11-28 20:54:15', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/master', - 'version': '2014.11.28.20.54.15'}], - 'sources': ['https://github.com/packagecontrol-test/package_control-tester']})] ====================================================================== FAIL: test_get_packages_20_github (Package Control.package_control.tests.providers.RepositoryProviderTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.providers in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 589, in test_get_packages_20_github AssertionError: Lists differ: [('package_control-tester-2.0-... != [] First list contains 1 additional elements. First extra element 0: ('package_control-tester-2.0-gh', {'last_modified': '2014-11-12 15:52:35', 'labels': [], 'buy': None, 'previous_names': [], 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', 'sources': ['https://raw.githubusercontent.com/wbond/package_control-json/master/repository-2.0-github_details.json', 'https://github.com/packagecontrol-test/package_control-tester'], 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', 'releases': [{'sublime_text': '<3000', 'date': '2014-11-12 15:52:35', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1', 'version': '1.0.1'}, {'sublime_text': '<3000', 'date': '2014-11-12 15:14:23', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1-beta', 'version': '1.0.1-beta'}, {'sublime_text': '<3000', 'date': '2014-11-12 15:14:13', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.0', 'version': '1.0.0'}, {'sublime_text': '<3000', 'date': '2014-11-12 02:02:22', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/0.9.0', 'version': '0.9.0'}], 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', 'author': 'packagecontrol-test', 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', 'name': 'package_control-tester-2.0-gh', 'donate': None}) + [] - [('package_control-tester-2.0-gh', - {'author': 'packagecontrol-test', - 'buy': None, - 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', - 'donate': None, - 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', - 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', - 'labels': [], - 'last_modified': '2014-11-12 15:52:35', - 'name': 'package_control-tester-2.0-gh', - 'previous_names': [], - 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', - 'releases': [{'date': '2014-11-12 15:52:35', - 'platforms': ['*'], - 'sublime_text': '<3000', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1', - 'version': '1.0.1'}, - {'date': '2014-11-12 15:14:23', - 'platforms': ['*'], - 'sublime_text': '<3000', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1-beta', - 'version': '1.0.1-beta'}, - {'date': '2014-11-12 15:14:13', - 'platforms': ['*'], - 'sublime_text': '<3000', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.0', - 'version': '1.0.0'}, - {'date': '2014-11-12 02:02:22', - 'platforms': ['*'], - 'sublime_text': '<3000', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/0.9.0', - 'version': '0.9.0'}], - 'sources': ['https://raw.githubusercontent.com/wbond/package_control-json/master/repository-2.0-github_details.json', - 'https://github.com/packagecontrol-test/package_control-tester']})] ====================================================================== FAIL: test_get_packages_300_github (Package Control.package_control.tests.providers.RepositoryProviderTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "package_control.tests.providers in C:\Users\Professional\AppData\Roaming\Sublime Text 3\Installed Packages\Package Control.sublime-package", line 989, in test_get_packages_300_github AssertionError: Lists differ: [('package_control-tester-3.0.... != [] First list contains 4 additional elements. First extra element 0: ('package_control-tester-3.0.0-gh-tags', {'last_modified': '2014-11-12 15:52:35', 'labels': [], 'buy': None, 'previous_names': [], 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', 'sources': ['https://raw.githubusercontent.com/wbond/package_control-json/master/repository-3.0.0-github_releases.json', 'https://github.com/packagecontrol-test/package_control-tester'], 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', 'releases': [{'sublime_text': '*', 'date': '2014-11-12 15:52:35', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1', 'version': '1.0.1'}, {'sublime_text': '*', 'date': '2014-11-12 15:14:23', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1-beta', 'version': '1.0.1-beta'}, {'sublime_text': '*', 'date': '2014-11-12 15:14:13', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.0', 'version': '1.0.0'}, {'sublime_text': '*', 'date': '2014-11-12 02:02:22', 'platforms': ['*'], 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/0.9.0', 'version': '0.9.0'}], 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', 'author': 'packagecontrol-test', 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', 'name': 'package_control-tester-3.0.0-gh-tags', 'donate': None}) + [] - [('package_control-tester-3.0.0-gh-tags', - {'author': 'packagecontrol-test', - 'buy': None, - 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', - 'donate': None, - 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', - 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', - 'labels': [], - 'last_modified': '2014-11-12 15:52:35', - 'name': 'package_control-tester-3.0.0-gh-tags', - 'previous_names': [], - 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', - 'releases': [{'date': '2014-11-12 15:52:35', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1', - 'version': '1.0.1'}, - {'date': '2014-11-12 15:14:23', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1-beta', - 'version': '1.0.1-beta'}, - {'date': '2014-11-12 15:14:13', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.0', - 'version': '1.0.0'}, - {'date': '2014-11-12 02:02:22', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/0.9.0', - 'version': '0.9.0'}], - 'sources': ['https://raw.githubusercontent.com/wbond/package_control-json/master/repository-3.0.0-github_releases.json', - 'https://github.com/packagecontrol-test/package_control-tester']}), - ('package_control-tester-3.0.0-gh-tags_base', - {'author': 'packagecontrol', - 'buy': None, - 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', - 'donate': None, - 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', - 'issues': None, - 'labels': [], - 'last_modified': '2014-11-12 15:52:35', - 'name': 'package_control-tester-3.0.0-gh-tags_base', - 'previous_names': [], - 'readme': None, - 'releases': [{'date': '2014-11-12 15:52:35', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1', - 'version': '1.0.1'}, - {'date': '2014-11-12 15:14:23', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.1-beta', - 'version': '1.0.1-beta'}, - {'date': '2014-11-12 15:14:13', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/1.0.0', - 'version': '1.0.0'}, - {'date': '2014-11-12 02:02:22', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/0.9.0', - 'version': '0.9.0'}], - 'sources': ['https://raw.githubusercontent.com/wbond/package_control-json/master/repository-3.0.0-github_releases.json']}), - ('package_control-tester-3.0.0-gh-tags_prefix', - {'author': 'packagecontrol-test', - 'buy': None, - 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', - 'donate': None, - 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', - 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', - 'labels': [], - 'last_modified': '2014-11-28 20:54:15', - 'name': 'package_control-tester-3.0.0-gh-tags_prefix', - 'previous_names': [], - 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', - 'releases': [{'date': '2014-11-28 20:54:15', - 'platforms': ['windows'], - 'sublime_text': '<3000', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/win-1.0.2', - 'version': '1.0.2'}], - 'sources': ['https://raw.githubusercontent.com/wbond/package_control-json/master/repository-3.0.0-github_releases.json', - 'https://github.com/packagecontrol-test/package_control-tester']}), - ('package_control-tester-3.0.0-gh-branch', - {'author': 'packagecontrol-test', - 'buy': None, - 'description': 'A test of Package Control upgrade messages with explicit versions, but date-based releases.', - 'donate': None, - 'homepage': 'https://github.com/packagecontrol-test/package_control-tester', - 'issues': 'https://github.com/packagecontrol-test/package_control-tester/issues', - 'labels': [], - 'last_modified': '2014-11-28 20:54:15', - 'name': 'package_control-tester-3.0.0-gh-branch', - 'previous_names': [], - 'readme': 'https://raw.githubusercontent.com/packagecontrol-test/package_control-tester/master/readme.md', - 'releases': [{'date': '2014-11-28 20:54:15', - 'platforms': ['*'], - 'sublime_text': '*', - 'url': 'https://codeload.github.com/packagecontrol-test/package_control-tester/zip/master', - 'version': '2014.11.28.20.54.15'}], - 'sources': ['https://raw.githubusercontent.com/wbond/package_control-json/master/repository-3.0.0-github_releases.json', - 'https://github.com/packagecontrol-test/package_control-tester']})] ---------------------------------------------------------------------- Ran 60 tests in 22.646s FAILED (failures=3, errors=7) ```


Would be nice that Travis could run these Unit Tests each time a new commit is sent to, like on the https://github.com/wbond/package_control_channel/pulls However I cannot find a easy way to so it as tests tests depend on a Sublime Text API with a running instance of it.
deathaxe commented 11 months ago

Resolved by Package Control 4.0-beta10

3rd-party packages with the same name as a built-in package can be installed, upgraded and removed as any other package.

If they are shipped as sublime-package file, they fully augment their built-in counterpart.

If they are shipped with .no-sublime-package, they would partly override files from built-in package. It is not recommended to do so however as

  1. certain kinds of structural changes to built-in packages may have unwanted side-effects
  2. it makes it harder for users to add own overrides.