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
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:
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?
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"
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:
For example, the
.gitmodules file would look like:
path = submodule
url = https://github.com/user/submodule
download = https://codeload.github.com/user/submodule/zip/master