Sublime Forum

Package Control: A full-featured package manager

#30

Version 1.1.0 of Package Control was just released for upgrade. Changes include:

  • Support for local Git and Hg repositories in addition to zip/.sublime-package downloads

  • Fixed Discover Packages command to pull the proper URL from custom repositories

  • Improved the handling of upgrades and removal on Windows, reducing the number of Access Denied errors

  • Changed the downloaders to try multiple times on timeout since GitHub and BitBucket requests seem to fail fairly frequently

  • Package upgrades now copy the complete old version to the Backups folder that is a sibling of the Packages directory

  • Fixed the text of the activity indicator during individual package upgrades

Also, the master channel list has been updated to include github.com/Kronuz/SublimeLint.

Thanks for all of the feedback and suggestions, keep them coming!

@sublimator

I very much apologize for causing you to lose work with Upgrade All Packages. This new version should prevent such loss, and should also make it possible for less network-intensive updates via git and hg.

0 Likes

#31

That’s kind of messed up, but whatever I guess.

0 Likes

#32

[quote=“Anomareh”]

That’s kind of messed up, but whatever I guess.[/quote]

I’m certainly open to improving this process. What about the current process do think is messed up?

0 Likes

#33

One person saying something and acting on it without the repos in question even being looked at.

For one, the Kronuz fork should probably be the aparajita fork at this point as the last month worth of commits have pretty much just been merging his pull requests. Secondly, that fork probably shouldn’t be a fork anymore.

Also I’m not really sure what conversation happened that would affirm the Kronuz fork was the one to go with. aparajita said twice that it was the most actively developed, two people said they weren’t using it or sure about what it actually was, and I gave my impression.

Just seemed rather hasty to me.

0 Likes

#34

[quote=“Anomareh”]

One person saying something and acting on it without the repos in question even being looked at.

For one, the Kronuz fork should probably be the aparajita fork at this point as the last month worth of commits have pretty much just been merging his pull requests. Secondly, that fork probably shouldn’t be a fork anymore.

Also I’m not really sure what conversation happened that would affirm the Kronuz fork was the one to go with. aparajita said twice that it was the most actively developed, two people said they weren’t using it or sure about what it actually was, and I gave my impression.

Just seemed rather hasty to me.[/quote]

Point taken, I’ll be sure to be slower before adding repositories that have more than one copy. I did spend a little bit of time looking at the various forks before I added it and also checked out github.com/lunixbochs/sublimelint/network. I also weighed in your and aparajita’s comments. That said, I do think you have a valid point and appreciate you speaking up.

Due to the way that the versioning in Package Control is done, it is actually possible to switch the repository being used for a package at any given time as long as it was pushed after the date the previous repository was pushed.

0 Likes

#35

The only reason I really took issue with it is I know what it’s like to want the light version of something and ending up having to go digging around for it. This happens to be one of the occasions that I actually want the heavier version but many a time have I had to either pull apart something to rip off all the stuff I don’t want or go looking for the version where someone has already done it for me.

Personally, I think the ideal solution would be making both versions available, ideally with the fork being split into a new package entirely (SublimeLint+ or something) or being made available as a dev release.

0 Likes

#36

That is potentially a good idea for the next version. Right now it is not possible to map the names of individual repositories, just all repositories of a specific name. If I add the ability to map names on a per repository basis, then it would be possible to have both without any changes to the repositories.

Perhaps a better idea that would be clearer to users would be for the fork to rename itself. This would obviously require buy-in by the developer.

It is possible right now to add your own custom repositories to allow someone to use the original, but this doesn’t help solve the discoverability problem for people. It would, however, allow for easy updating.

0 Likes

#37

My sincere apologies to everyone. I was only looking at the commit histories to see which had been more active recently – whether or not those commits were from me.

Probably not. I haven’t looked closely to see what the essential differences are between the forks. Ultimately it would be nice if the forks could be unified somehow.

0 Likes

#38

If that’s true, I’ll switch! :smile:

What do you mean by “less noisy” and “less quirks”?

0 Likes

#39

Great work, thank you for making this available.

I want to submit a new package for inclusion in the package repo, how do I go about it?

0 Likes

#40

Heh, you already are :stuck_out_tongue: You’ve been the only one pushing commits to the fork for the past month. Only difference is you’re sending pull requests instead of just committing.

I don’t think this is possible. Although they seem very similar on paper, internally they are rather different. The original is much stabler and snappier. With the fork everything config wise is quite different.

0 Likes

#41

You can either send a pull request via github or bitbucket, or email me at viewtopic.php?f=5&t=2746#p12731.

0 Likes

#42

If the original is much stabler, then I will definitely give it a try and port my stuff to that.

0 Likes

#43

Agreed. Kronuz’s fork also has PEP8 checking built-in, which I don’t necessarily want all the time.

0 Likes

#44

This is unbelievable! Just what I’ve been looking for, and will be a massive quality of life improvement :smiley:

Purchasing the SFTP package just to support your work!

0 Likes

#45

I tried to install using the command line and it does nothing. It creates an empty folder (on st start) and that’s all.
I tried to download & install this file: http://sublime.wbond.net/Package%20Control.sublime-package but when i hit *install package *i get this error in the console:

Exception in thread Thread-47:
Traceback (most recent call last):
  File ".\threading.py", line 532, in __bootstrap_inner
  File ".\Package Control.py", line 1189, in run
  File ".\Package Control.py", line 1099, in make_package_list
  File ".\Package Control.py", line 518, in incoming
  File ".\Package Control.py", line 457, in execute
  File ".\subprocess.py", line 633, in __init__
  File ".\subprocess.py", line 842, in _execute_child
WindowsError: [Error 5] Access is denied
0 Likes

#46

[quote=“iamntz”]I tried to install using the command line and it does nothing. It creates an empty folder (on st start) and that’s all.
I tried to download & install this file: http://sublime.wbond.net/Package%20Control.sublime-package but when i hit *install package *i get this error in the console:[/quote]

I’m looking into this right now.

0 Likes

#47

[quote=“iamntz”]I tried to download & install this file: http://sublime.wbond.net/Package%20Control.sublime-package but when i hit *install package *i get this error in the console:

Exception in thread Thread-47: Traceback (most recent call last): File ".\threading.py", line 532, in __bootstrap_inner File ".\Package Control.py", line 1189, in run File ".\Package Control.py", line 1099, in make_package_list File ".\Package Control.py", line 518, in incoming File ".\Package Control.py", line 457, in execute File ".\subprocess.py", line 633, in __init__ File ".\subprocess.py", line 842, in _execute_child WindowsError: [Error 5] Access is denied [/quote]

I’m not quite sure why the command line installed would not work. I just took a fresh ST2 environment on Win 7 x64 and it seemed to work fine extracting the files into the Package Control folder. If you want to try and debug it you could delete the Package Control folder and run the console command again. The next time you open ST2 you can look at the console and it should mention that it is installed Package Control. My guess is that there will probably be some error after it begins the process.

From the error message you posted after manually downloading the package, it seems like a file permissions issue with running Git to perform a Git fetch. My guess is that your current user for some reason does not have permission to execute git.exe, which is probably stored in C:\Program Files (x86)\Git\bin. If you right click and select Properties and then go to the Security tab, there will be a list of users and groups that have permissions. On my machine the Users group has the read and execute permission. For git fetch to get executed, one of your packages must be a git repository. Perhaps the permissions on some files in that repository are broken also?

Let me know what you find out!

0 Likes

#48

If anyone gets the following error:

Package Control: An error occurred while trying to backup the package directory for [package name].

Please execute the following in your console:

import os;os.makedirs(os.path.join(os.path.dirname(sublime.packages_path()), 'Backup'))
0 Likes

#49

Permissions looks like this: screencast.com/t/rb7GnnxJ4t

On startup console i have this (that is related to package control):

startup, version: 2102 windows x64 channel: dev executable: /C/Program Files/Sublime Text 2/sublime_text.exe working dir: /C/Windows/system32 packages path: /C/Users/Ionut/AppData/Roaming/Sublime Text 2/Packages settings path: /C/Users/Ionut/AppData/Roaming/Sublime Text 2/Settings error parsing session: No data at: 0:0 package /C/Users/Ionut/AppData/Roaming/Sublime Text 2/Installed Packages/Package Control.sublime-package is newer than the installed version (/C/Users/Ionut/AppData/Roaming/Sublime Text 2/Pristine Packages/Package Control.sublime-package), running PackageSetup PackageSetup returned: -1 catalogue loaded

Git is installed into c:\cygwin\git and is accesible via windows cmd.

Also, this command:

import os;os.makedirs(os.path.join(os.path.dirname(sublime.packages_path()), 'Backup'))

give me this:

[code]

import os;os.makedirs(os.path.join(os.path.dirname(sublime.packages_path()), ‘Backup’))
Traceback (most recent call last):
File “”, line 1, in
File “.\os.py”, line 157, in makedirs
WindowsError: [Error 183] Cannot create a file when that file already exists: u’C:\Users\Ionut\AppData\Roaming\Sublime Text 2\Backup’[/code]

0 Likes