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:
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