Skip to content

v2.0.0

Compare
Choose a tag to compare
@DamnWidget DamnWidget released this 25 Aug 16:29
· 320 commits to master since this release
                                                      |
          _` |  __ \    _` |   __|   _ \   __ \    _` |   _` |
         (   |  |   |  (   |  (     (   |  |   |  (   |  (   |
        \__,_| _|  _| \__,_| \___| \___/  _|  _| \__,_| \__,_|
                                 The Sublime Text 3 Python IDE

Anaconda v2.0.0

This is the new major release of AnacondaST3 Python IDE. Many things had been
changed, rewritten and/or redesigned for this release.

Redesigns

This is a non exhaustive list of the redesigns for the package

Refactor

Some parts of the package had been refactored and MyPy annotations had been
added to all the runtime (part of the package that runs in ST3 context) python
files.

Workers

The anaconda's workers (workers are objects that get a request from the ST3
events system and send it using an asynchronous custom JSON TCP protocol client
to the anaconda's jsonserver for processing and register callbacks that get
fired when a response is received or on a timeout) have been completely
redesigned and rewritten to support remote anaconda servers running in a
different machine than the ST3 application is running itself.

The change above allow us to connect anaconda's ST3 runtime with any anaconda's
jsonserver (minserver really) over any TCP connection that makes possible
to support a new Docker worker and improve the already existent Vagrant
worker.

The worker-client architecture has been improved in order to minimize ST3
slowdowns when there is some problem with the jsonserver or with the
configured python_interpreter.

The python_interpreter and vagrant settings

In anaconda v1.x the user had to enable the vagrant support and provide an
additional vagrant configuration in order to connect to a remote anaconda's
jsonserver, even that way of work with Vagrant is already supported, it is
deprecated and will be removed from the package in future releases, the
suggested way to work with Vagrant or any other remote worker now is setting
the python_interpreter to the right value.

For example, in order to connect the AnacondaST3 IDE into a Vagrant worker we
could just configure our python_interpreter option as:

`"python_interpreter": "vagrant://default:19360?network=forwarded"`

That will connect the ST3 anaconda's runtime to the default vagrant VM into
the 19360 port using a forwarded network topology invoking the system python
that is in the Vagrant's VM $PATH.

For more info visit: https://github.com/DamnWidget/anaconda/wiki/Anaconda-v2:-Using-a-remote-python-interpreter-through-Vagrant

Note: the vagrant branch is also deprecated and is not gonna be maintained
any more as it is not needed for anaconda v2

A very similar configuration can be used to connect to server running in for
example a development machine in AWS

`"python_interpreter": "tcp://your_domain.com:9999"`

That will connect the anaconda's runtime into a remote server running in
your_domain.com in the port 9999

More info: https://github.com/DamnWidget/anaconda/wiki/Anaconda-v2:-Using-a-remote-python-interpreter

UNIX Domain Sockets on Posix Platforms

Starting from v2.0.0 anaconda connects to the jsonserver trough a UNIX Domain
Socket instead of a regular TCP/IP connection when a local worker (local
python interpreter running in the same machine than ST3 is running in) is used.

Deadcode

Some deadcode has been removed.

New Features

This is a non exhaustive list of the major new features in anaconda v2.0.0

Docker Support

This was most voted up feature requests in the package's history and now is
here to stay.

Use a python interpreter running in a Docker container is as simple as configure
the right python_interpreter it is very like the examples that we already
show above.

More info: https://github.com/DamnWidget/anaconda/wiki/Anaconda-v2:-Using-a-remote-python-interpreter-through-Docker

MyPy Support

MyPy is now supported as linter, it is disabled by default and can be enabled
and configured trough the mypy family settings in the configuration file. To
enable mypy linting just set mypy as true in any level of your
configuration.

Please, refer to the Anaconda's configuration file to get a complete list of
the MyPy linting options available in anaconda.

Improved Logging Locations

Anaconda v2 doesn't use Jedi's cache directory for logging purposes anymore now
the log files under the following paths in each platform:

* GNU/Linux: ~/.local/share/anaconda/logs
* OS X: ~/Library/Logs/anaconda
* Windows: %APPDATA%\\Anaconda\\Logs

Updates

Jedi has been updated to v0.10.0 (commmit 8a34481e8cbda862f9c0c2a33995ccbebe85897e)
that will solve some autocompletion problems.

Final Notes

There is lots of small fixes, bug fixes and other changes that probably worth
a mention in this version notes but I am too lazy to do so forgive me.