What's new in Sublime Package Control 3.0.0

Dec 24, 2014
  • Backwards Compatibility Breaks:
  • For users who have a custom SSL CA certs, please note that any custom certs must now be stored in Packages/User/Package Control.user-ca-bundle. This mechanism replaces the old certs setting. In general this should not be necessary since Package Control now utilizes OS certificate stores for CA certs.
  • The Create Binary Package File command was removed, but replaced with the package_profiles setting which allows for any number of different package creation configurations. See Creating Package Files for more details.
  • Dependencies:
  • Package Control now supports package dependencies for the sake of shipping non-user-facing binary files that are needed by packages. These will commonly include compiled Python modules and executables. To learn more, read the Dependencies documentation.
  • A package loader that is run before any other non-default packages. This adds dependency folders to sys.path and makes the package_control Python module always available, instead of waiting until Sublime Text loads up all packages that are alphabetically before Package Control.
  • Upgrades:
  • Improved handling of package upgrades involving editor customizations. Theme, Color Scheme and Syntax upgrades will no longer cause Sublime Text error messages. If a package containing one of these is being upgraded, Package Control will change the setting back to the default just before starting. Once complete, the customized settings will be restored.
  • In-use file upgrades improved. Package Control performs extra steps on Windows to allow upgrades to occur for packages that use various binary files such as DLLs and executables.
  • A package event API was added to allow packages to know if they were just installed, are about to be upgraded, were just upgraded, or are about to be removed. See the Events documentation for more details.
  • Package upgrades that are interupted by Sublime Text being closed or restarted will no longer result in packages being left in the ignored_packages setting.
  • Commands:
  • Advanced Install Package install packages via a comma-separated list
  • List Unmanaged Packages list packages not controlled via Package Control
  • Remove Channel helper to remove a channel
  • Remove Repository helper to remove a repository
  • Syncing:
  • Package Control will now remove packages, upon start, that have been deleted from the installed_packages list. This improves the recommended configuration of just syncing the Packages/User/ folder.
  • Incorrect syncing of packages will now be detected and users will be notified of the issue. Sync warnings will only be raised when a package for a specific platform or version of Sublime Text is copied to an incompatible machine.
  • Python Patches:
  • Upgraded SSL support for Sublime Text 2 on Windows. _ssl.pyd files are installed for ST2 on Windows that are compiled against the latest version of OpenSSL. This allows secure connections to validate modern SSL certificates that use SHA-2 signatures.
  • Package Control now patches the Python select module for Sublime Text 2 on Windows. This patch will make the select module available for use by all packages.
  • Security:
  • All repositories and packages are now required to use SSL for improved security.
  • SSL support for Linux. Package Control now ships _ssl.so files that are compatible with OpenSSL 0.9.8 and 1.0.x (both libssl-1.0.0 and libssl-10). Thanks to the new package loader, these are injected before any other packages are loaded. Gone are the days of package developers having to bundle them individually, or using curl/wget.
  • SSL CA certificates are now 100% sourced from the OS. Previously Package Control included functionality to distribute SSL CA certificates to allow validation of SSL certs on OS X and Windows. With version 3.0, Package Control can now explort SSL CA certs from the Windows trust store into the format necessary for OpenSSL. This allows PC to no longer be responsible for distributing SSL CA certs in a secure way.
  • Added a parser that allows Package Control to validate SSL certificates using SubjectAltName fields for certs that are valid for multiple hostnames. Previously such certificates were only supported in Sublime Text 3.
  • HTTP:
  • A revised Urllib-based downloader for Windows. In version 2.0, Package Control switched from using urllib for downloads to using the WinINet API on Windows. This allowed PC to delegate all of the work of proxy auto-detection and SSL verification to the OS. Unfortunately some users are unable to connect to the internet using WinINet due to local policies. Other users experienced issues with SSL connectivity through the WinINet API. As of version 3.0, Package Control will automatically fall back to the urllib downloader if WinINet is unable to connect.
  • HTTP compression based on bzip2 is now used for the channel file to reduce bandwidth usage. Every Sublime Text install will now have the bz2 module available for use by other packages.
  • Repositories and Channels:
  • A new schema_version of the channel and repository JSON files was released that supports using prefixed tags to allow for semantic versions with separate code-bases for different versions of Sublime Text. See the example-repository.json for details.
  • A new package, ChannelRepositoryTools, was released that provides commands for package developers to upgrade their older repository JSON files to the newest standard. Read Channels and Repositories for more information.
  • Documentation:
  • Various documentation on the website has been added, or improved, including:
  • Dependencies
  • Events
  • Troubleshooting
  • Renaming a Package
  • Creating Package Files

New in Sublime Package Control 3.0.0 Beta (Dec 11, 2014)

  • Tweaks to List Unmanaged Packages command

New in Sublime Package Control 2.0 (Aug 15, 2013)

  • Sublime Text 3 support, including support for different versions of packages for either Sublime Text 2 or Sublime Text 3.
  • The new WinINet downloader on Windows that hooks into the OS subsystem for downloading files from the internet. This vastly improves proxy support and eliminates the need for distributing SSL CA certificates.
  • Updated downloaders for OS X and Linux that utilize the operating systems’ SSL CA cert bundles.
  • Proper package installation in ST3 via .sublime-package files. This allows users to override individual files in a package with their own version. Packages that must be unpacked simply need to have a file named .no-sublime-package in the root of the package.
  • A completely revamped schema for channel and repositories making it much easier to properly add packages to the channel, easily override package details and provide more information.
  • Support for easy package releases using tags.
  • A labels system for categorizing packages.
  • A migration to semver.org for versioning semantics, along with an option to ignore pre-release package versions.
  • Caching support for HTTP requests, allowing for more custom GitHub-based repositories without hitting the hourly rate limit.
  • Keep-Alive support for the Urllib downloader, making multiple requests to the same server much faster and less error prone.
  • Many, many bug fixes and small user enhancements.

New in Sublime Package Control 1.6.4 (Jul 15, 2013)

  • Bug Fixes:
  • Fixed downloading of non-bundled CA certs
  • Fixed using Package Control to remove itself
  • Fixed all references to nodeload.github.com to codeload.github.com since the former now responds with a 503.

New in Sublime Package Control 1.6.3 (Jan 22, 2013)

  • Bug Fixes:
  • Fixed an error using wget

New in Sublime Package Control 1.6.2 (Jan 18, 2013)

  • Enhancements:
  • Added the ability to add a file of custom CA certs to the stack in a way that it will be automatically re-applied after Package Control upgrades. See the certs setting for details.
  • Added support for allowing package renames that consist of just changing the case of one or more letters
  • Added support for changing the user agent of the various downloaders via the new user_agent setting
  • Bug Fixes:
  • Added support for X-RateLimit-Limit and X-RateLimit-Remaining HTTP headers so that we don’t take down the GitHub API again if the default channel is unable to cache the package info. (Sorry GitHub!)
  • Fixed uncaught exception if resolving the IP of a hostname does not work when the debug setting it set to true
  • Added all of the bundle cert into to the default certs setting so that users can download from GitHub and BitBucket without connecting to the default channel.

New in Sublime Package Control 1.6.1 (Jan 18, 2013)

  • Bug Fixes:
  • Fixed IncompleteRead exceptions when download chunked content via the urllib2 downloader
  • Fixed proxy support to properly respect Proxy-Connection: close HTTP headers
  • Fixed a threading error with the install_missing functionality

New in Sublime Package Control 1.6.0 (Nov 26, 2012)

  • Enhancements:
  • Added full (custom) proxy authentication support for HTTPS connections
  • Added NTLM authentication for proxies on Windows
  • Proxy authentication information is now set via the new proxy_username and proxy_password settings.
  • If the https_proxy setting it set to false, it will not inherit from the http_proxy setting (thanks planardothum!)
  • The time of the last successful run is no longer stored in Packages/User/Package Control.sublime-settings, but rather in Packages/User/Package Control.last-run making it easier to ignore via git, hg, etc. (thanks schlamar!)
  • Packages are now ignored during install and upgrade to help prevents errors where Sublime Text tries to read a file as it is being extracted
  • Packages that include DLLs for Windows can now be upgraded. In-use DLLs will be detected and the user prompted to restart.
  • Package version numbers may now include non-numeric components, and semantic versioning (http://semver.org) is fully supported
  • JSON parsing messages are now printed to the console instead of being shown in an error popup
  • Added support for changes to the BitBucket API
  • Added support for changes to GitHub URLs
  • Added the debug setting to help track down HTTP connection issues
  • All of the downloaders will now try to use HTTP compression
  • All of the downloaders will now follow redirects
  • Added new install_missing setting to control if Package Control should try to install any packages that appear to be missing from the current machine. This defaults to true, and is really only useful if you want to prevent Package Control from connecting to the internet without explicitly asking it to.
  • Added lots of code comments as a first step towards making contributions by other developers easier
  • Bug Fixes:
  • Added support for the new preferences filename (thanks titoBouzout!)
  • If a package is missing from a machine, but not available for that platform, it is no longer considered an error (thanks schlamar!)
  • Updated CA certs
  • Fixed handling of install and upgrade messages that contain non-ASCII characters
  • Fixed a unicode error trying to load the CA cert bundle file on Windows when the install path to Sublime Text contains non-ASCII characters
  • Better handling for edge case HTTP errors (thanks tgecho!)
  • Fixed a number of errors related to non-ASCII error messages being created by the operating system (thanks quarnster!)
  • GitHub URLs will now automatically be trimmed of trailing .git suffixes
  • Badly formatted messages.json files will no longer break the install process

New in Sublime Package Control 1.5.0 (Mar 12, 2012)

  • Changed default channel to https://sublime.wbond.net/repositories.json
  • Added SSL certificate checking to prevent MITM attacks
  • Added the ignore_vcs_packages setting to ignore all packages that are Git or Hg repositories
  • Fixed a bug where a package with no description would break showing the list of available packages
  • Added an explicit --ff --commit to Git update commands to handle the situation where users have their default set to --no-ff --no-commit
  • Updated plugin to use OS PATH setting for finding Git, Hg, Curl and Wget
  • Fixed a bug with removing a package while not connected to the internet
  • Added files_to_include and files_to_include_binary to allow for explicit includes even when using files_to_exclude
  • Fixed a bug with detecting packages trying to install files outside of the package directory - this was breaking the PowerShell package
  • Updated BitBucket package provider to use the name instead of the slug since the slug is always forced to lower case
  • Added error hanlding for BadZipfile exceptions when installing a package that did not download properly
  • Updated the user interface to be less confusing by renaming Add Repository Channel to Add Channel