Changelog for vty-6.0

6.0

This release marks the beginning of multi-platform support in Vty. Getting to this point involved removing Unix-specific functionality from Vty and moving it to a new package, vty-unix. Windows support is now provided via a vty-windows package. Another new package, vty-crossplatform, is provided as a convenience for applications that want to support both Unix and Windows platforms automatically at build time. See the migration guide below for details on how to upgrade.

Migration guide for 6.0

To upgrade to this version of Vty, most people will only need to take a few steps:

  1. Add a package dependency on vty-unix, vty-windows, or vty-crossplatform, depending on the desired level of platform support. For example, if an application only supports Unix systems, it should depend on vty-unix. But if an application is intended to work anywhere Vty works, then vty-crossplatform is the best choice.
  2. Import mkVty from the platform package in step (1). (mkVty was removed from the vty package and is now the responsibility of each platform package.) Imports are as follows:
    • vty-unix: Graphics.Vty.Platform.Unix
    • vty-windows: Graphics.Vty.Platform.Windows
    • vty-crossplatform: Graphics.Vty.CrossPlatform
  3. Maintain any existing package dependency on vty; the core library abstractions, types, and functions are still obtained from vty itself. The platform packages do not re-export the core library's modules.
  4. If desired, call Graphics.Vty.Config.userConfig to load the Vty user configuration since this step is no longer automatic.

For applications using more of Vty's API than just the basic initialization and rendering API, the full change list is provided below. For people who want to write their own Vty platform package like vty-unix, see PLATFORM-HOWTO.md.

Detailed change list for 6.0

5.39

Package changes:

Bug fixes:

5.38

This release includes numerous API changes, although none of them should break your programs. If so, please open a ticket on the Vty issue tracker.

Package changes:

API changes:

5.37

5.36

5.35.1

Bug fixes:

5.35

New features:

API changes:

Other enhancements:

5.34

API changes:

(defAttr `withForeColor` blue) <> (defAttr `withBackColor` green)

would result in just

   (defAttr `withBackColor` green)

because the instances were designed to favor the right-hand arguments' fields even if they had not been explicitly set (a consequence of the MaybeDefault Semigroup instance). While that behavior was sensible specifically in the context of Graphics.Vty.Inline, it wasn't a useful user-facing API and it made for surprising instance behavior. Since there is actually no good way to handle this in a Semigroup instance for Attr -- some choices have to be made about how to merge two attributes' foreground colors, and that won't be much better than what we had -- the instance was just removed.

5.33

API changes:

Package changes:

Other improvements:

5.32

New features:

Bug fixes:

5.31

New features and API changes:

Other changes:

5.30

New features:

5.29

API changes:

Other changes:

5.28.2

Bug fixes:

5.28.1

Bug fixes:

5.28

This release improves Vty's support for multi-column Unicode characters and provides greater compatibility with a wider array of terminal emulators. The following sections summarize the relevant changes, but an overview of the new functionality is motivated and detailed in the new "Multi-Column Character Support" README section. For historical context, please also consider reading over #175.

API changes:

Configuration file changes:

Other changes:

5.27

5.26

5.25.1

5.25

5.24.1

5.24

5.23.1

5.23

5.22

5.21

5.20

API changes:

5.19.1

API changes:

5.19

API changes:

5.18.1

Bug fixes:

5.18

API changes:

5.17.1

5.17

API changes:

5.16

API changes:

Bug fixes:

5.15.1

Package changes:

Bug fixes:

5.15

Package changes:

API changes:

5.14

5.13

5.12

5.11.3

5.11.2

5.11.1

5.11

5.10

5.9.1

5.9

5.8.1

5.8

5.7.1

5.7

5.6

5.5.0

5.4.0

5.3.1

5.3

5.2.11

5.2.10

5.2.9

5.2.8

5.2.7

5.2.6

5.2.5

5.2.4

5.2.3

5.2.2

5.2.1

5.2.0

5.1.4

5.1.1

5.1.0

5.0.0