Sublime Forum

Channel Manager

#1

There is some time I was looking for this, since the thread: How to create the channel_v3.json from the repository package_control_channel? Now I create a simple parser which does this creation of the files channel.json and repositories.json based on .gitmodules, therefore it is dependent on the existence of a git repository and having the packages installed as git submodules on the user’s loose Packages folder. It still not heavily tested. On the following address you can find a initial manual about it:

  1. https://github.com/evandrocoan/SublimeChannelManager

Notice the ChannelManager is a dependency, you still need a main package which requires it and call its commands passing the required configurations. On the section How to Build a Channel it is showed examples of these configurations. And at the section Introduction is presented two channels examples.

As the documentation text at the main page still not fully revised, you may find some inconsistencies. If you do not understand something, fell free to open issue on its issue tracker or just ask here.

Someday I should get working on it implementing what is missing, if I feel these features pending still missing. Which feature do you think it is missing or what could be done differently?

Basic Setup

To install this dependency now you need to clone it directly into your loose Packages folder, but you also need to clone its dependency. These command should suffice:

git clone https://github.com/evandrocoan/PythonDebugTools "PythonDebugTools"
git clone --recursive https://github.com/evandrocoan/SublimeChannelManager "ChannelManager"

Notice that ChannelManager and PythonDebugTools must be named like this because while working on the code I do hard path imports like:

from PythonDebugTools import debug_tools
from ChannelManager import channel_manager

Also do not forget the --recursive as the ChannelManager depends on git submodules. Meaning that if you intend on build a channel, you cannot install it by Package Control as currently it does not download the submodules when installing a dependency or package.

I thought about adding this to my Package Control fork by checking for the existence of a .gitmodules file on the downloaded repository, then parsing it and downloading the packages. But it would require a special key to be added to the repository .gitmodules to specify a direct download link as:

https://codeload.github.com/user/submodule/zip/master

For example, the .gitmodules file would look like:

[submodule "submodule"]
    path = submodule
    url = https://github.com/user/submodule
    download = https://codeload.github.com/user/submodule/zip/master
0 Likes

Automatic Setup of Packages
Is it possible to make one package require another?