Version 4.0.0 Release Notes
===========================


Major Changes
-------------

- Requires at least ST3143 (1.0)

- drops support for python 2.x

- adds support for python 3.8

- Package and library version scheme changed from SemVer to PEP440
  for better pre-release handling and compatibility with python packages.

  Note: Package versions should still follow SemVer like `<major>.<minor>.<micro>`

- Dependencies are now called libraries.

  They are installed to Data/Libs as ordinary python packages.

  Existing managed dependencies are automatically converted.

  Can install python wheels (*.whl)

- Channel/repository scheme v1.0 and v1.2 are no longer supported
  as they contain only packages for no longer supported ST2.

- New channel/repository scheme v4.0.0 is introduced,
  which allows to specify supported `python_versions`.

  Parsing and installing "requirements.txt" is however not yet supported.

  For working examples checkout example-channel.json and example-repository.json
  from Package Control Github repository.


Note for Package Devs
---------------------

  packagecontrol.io does not yet support the new 4.0.0 scheme
  and thus doesn't ship python 3.8 dependencies/libraries.

  Therefore do not upgrade repositories to 4.0.0 scheme,
  which are included in default channel.

  You can however create your own 4.0.0 repository and
  add it via 'Package Control: Add Repository'.

  Metadata for python 3.8 compatible libraries are maintained at

    https://github.com/packagecontrol/channel

  and shipped via

    https://packagecontrol.github.io/channel/channel_v4.json

  so all packages can already migrate to python 3.8


New features include:
---------------------

  - support for python 3.8 dependencies (now called libraries)
  - add openssl 3.0 support via asn1crypto 1.5.1 and oscrypto 1.3.0
  - prune backups older than 14 days (#145)
  - provide all relevant operations via ApplicationCommands (#1071)
    + Advanced Disable Packages (disable_packages)
    + Advanced Enable Packages (enable_packages)
    + Advanced Install Packages (install_packages)
    + Advanced Upgrade Packages (upgrade_packages)
    + Advanced Remove Packages (remove_packages)
  - allow relative paths in channel.json and repository.json (#1329)
  - hide (auto-generated?) packages via `.hidden-sublime-package` file (#1429)
  - support for cooperate_packages (#1406, #1633)
  - IntelliSense support for for channel.json/repository.json via jsonschemas
  - support for asset based Github/Gitlab releases (#1484)


Bug fixes include:
------------------

  - abort package operation if backup fails (#1000)
  - fix long path support on Windows (#1020)
  - fix missing packages not being installed if an overriding unpacked package exists (#1155)
  - fix errors being displayed for git/hg tracked packages without remote (#1167)
  - fix not all git/hg tracked packages being upgraded
  - fix packages in auto_upgrade_ignore setting being renamed without upgrade (#1370)
  - fix corruption of installed_packages or ignored_packages settings
  - fix backup/restore of ST's "auto" color schemes and themes
  - fix manual package upgrades converting unmanaged packages to managed ones (#1272)
  - fix libraries not being upgraded by auto upgrader
  - fix prompt for ST restart before all operations are completed
  - fix SSL_CERT_FILE environment variable being ignored
  - fix repositories of channels without cache not being downloaded (#1354, #1601)
  - fix QuickPanelItem parse errors in URLs (#1580)
  - fix unavailable libraries being reported as successfully installed (#1605)
  - fix error message flooding
  - keep ingored_packages clean by removing non-existing packages

  ...

  The full list of addressed bugs can be found at:

    https://github.com/wbond/package_control/milestone/1
