Wingware Early Access Program

Wingware's Early Access Program lets you try out new versions of Wing while they are still under development.

You can participate in this program simply by downloading and using the early releases of Wing. We ask only that you keep your feedback and bug reports private by submitting them through Wing's Help menu or by email to support@wingware.com.

Wing 8.0.0.4

Support for Flake8, Anaconda Environments, and Native Apple Silicon

Wing 8 Screen Shot

This early release of Wing 8 adds flake8 as an external checker in the Code Warnings tool, supports Anaconda environments in the new Packages tool, and introduces native installers for macOS on Apple Silicon (M1) hardware.

A number of bugs have been fixed, including:

  • Fix startup problems seen on some systems
  • Fix viewing arrays in the Stack Data tool
  • Fix package manager problems when using a base install of Python or remote host
  • Fix several code analysis problems
  • Fix reverting an update

All of the major new features in this release are available only in Wing Pro. Wing Personal and 101 contain only more minor changes and improvements.

Downloads

Wing Pro 8.0.0.4

Wing Personal 8.0.0.4

Wing 101 8.0.0.4

Please try Wing 8 and email us if you find problems or have suggestions!

New in Wing 8

Support for Containers and Clusters (Wing Pro)

Wing 8 adds support for developing, testing, and debugging Python code that runs inside containers, such as those provided by Docker, LXC/LXD or other containerization system. When a container is used, the Python Executable in Project Properties is set to Container. This selects a container configuration that tells Wing how local resources are shared into the container and how to launch code in the container environment. Wing then works with files on local disk for editing, code analysis, error checking, and version control, but transparently runs code for testing and debugging inside the container.

Wing 8 also supports working with clusters of containers managed by a container orchestration system like Docker Compose. When a cluster is used, the Python Executable in Project Properties is set to Cluster. Clusters may be debugged as a whole from the Containers tool in the Tools menu. In addition, individual debug, test, Python Shell, and OS Commands processes may be started on containers configured by the cluster, either on synthesized out-of-cluster instances of those containers or in-cluster on the actively running cluster.

For details, see Working with Containers and Clusters in the Wing Manual found in Wing 8's Help menu.

New Package Management Tool (Wing Pro)

Wing 8 adds a new Packages tool that provides the ability to install, remove, and update packages found in the Python environment used by your project. This supports pipenv, pip, and conda as the underlying package manager. Packages may be selected manually from PyPI or by package specifications found in a requirements.txt or Pipfile.

For details, see Package Manager in the Wing Manual found in Wing 8's Help menu.

Improved New Project Support (Wing Pro)

Wing 8 redesigns New Project support so that the host, project directory, Python environment, and project type may all be selected independently. New projects may use either an existing or newly created source directory and existing or newly created Python environment.

This change adds and/or improves the following specific capabilities:

  • Django and all other project types may be created either on the local host or on a selected remote host, VM, or container.
  • A new source directory may be created for the project, optionally by cloning a revision control repository.
  • A new virtualenv, pipenv, Anaconda env, or Docker container may be created together with the new project, optionally with installation of packages specified individually or in a requirements.txt or Pipfile.

For details, see Creating a Project in the Wing Manual found in Wing 8's Help menu.

Expanded Python Code Analysis and Code Warnings

Wing 8 expands the capabilities of Wing's static analysis engine, by improving its support for f-strings, named tuples, imports from modules that contain __all__, multiple return value types, tuple unpacking, stringified and commented type hints, simple expressions, and global/non-local statements.

As a result of this work, Find Uses, Refactoring, and auto-completion now work with f-string expressions and Wing's built-in code warnings now cover named tuples.

The Code Warnings tool now also allows disabling individual syntax errors and indent warnings.

Other Improvements

  • Native support for macOS on Apple Silicon (M1) hardware
  • Allow setting the user interface and editor colors independently from each other
  • Add missing attributes to the sys.stdout/err replacements used while debugging
  • Fix intermittent failure to display all output for short-lived debug processes
  • Add preference Editor > Auto-Editing > Mutate Adjacent Quotes for finer control over auto-editing
  • Enable structural folding in .pyi and .pi files
  • Add basic syntax highlighting for Dockerfile
  • Reduce application startup time
  • Fix several other usability issues

See the change log for details.

Details

Limitations

This early access release has a few limitations, some of which may be lifted by future development, depending on the customer feedback that we receive:

  • Only Docker, Docker Compose, and LXC/LXD are supported. There is currently no explicit support for Kubernetes or other container orchestration systems.
  • Wing currently assumes that docker, docker-compose, and lxc are on your PATH. On macOS, this may be a problem when launching Wing from the Finder. Running /Applications/Wing Pro.app/Contents/Resources/wing from the command line ensures that the correct PATH is set, or add /usr/local/bin to the PATH in Wing's Project Properties.
  • Only containers that run Linux or macOS are supported, even if Wing is running on Windows.
  • If a virtualenv is run in a container, the container configuration must use the full path to the virtualenv's Python to make use of that environment. Specifying the activation command instead (with Activated Env) will not work.
  • Containers can only run on the local host where Wing is running. Running a container on a remote host, VM, or device is not yet supported.
  • New LXC/LXD containers and Docker Compose clusters cannot be created from the New Project dialog, but existing LXC/LXD container and Docker Compose cluster configurations may be used during project creation.

If you need any of these features, please let us know by email to support@wingware.com.

Changes and Incompatibilities

Wing 8 makes some incompatible changes from Wing 7, as follows:

  • When working with Python 3, the default encoding for Python files is now utf-8.
  • The preferences used to select user interface display theme and color palettes have changed to make them easier to understand and to allow concurrent selection of different palettes for the editor and the rest of the UI.
  • Wing Pro now runs on Python 3.9. All customer extension scripts will need to be updated before they can be used by Wing 8.
  • The legacy script-based Django support has been removed and replaced by the redesigned New Project functionality.
  • Deprecated commands and scripting API have been removed.
  • The legacy support for ancient namespace merging in Zope2 has been removed. Debugging with the WingDBG product has also been removed; this was an optimization for starting Zope debugging in the early days of Wing, when machines were much slower. Zope should now just be launched from within the IDE for debugging.
  • The form of some executable and installation directory names have changed, to add spaces and/or omit the minor version number.
  • More Python installations are considered in selecting the default Python when Python is not found on the PATH, thus the default may change on some systems from what was used in Wing 7.
  • Wing Personal no longer includes documentation and features specifically designed for third party modules, packages, and frameworks such as Django and Pylint. This functionality is now only available in Wing Pro.
  • The editor background preference has been removed since it conflicts with setting the editor palette, which is now possible independently of setting the overall display palette.

If you have questions about any of this, please don't hesitate to contact us at support@wingware.com.