Releases: vapor/console-kit
4.15.1 - Fix Windows build break in Terminal.
What's Changed
Fix Windows build break in Terminal. by @jeffdav in #205
There are three things that cause Terminal to not build on Windows:
isprint()
returns anInt32
which requires an explicit comparison. Easy fix: just compare against0
._getch()
returns anInt32
, butUnicode.Scalar()
takes aUInt32
. So we must cast.- The entire implementation of
size
was Posix-specific. Add a Windows implementation.
This patch was released by @0xTim
Full Changelog: 4.15.0...4.15.1
4.15.0 - Don't animate ActivityIndicator when outputting to a file
What's Changed
Don't animate ActivityIndicator when outputting to a file by @jflan-dd in #202
Long running loading/progress indicators create a lot of noisy output when an executable is outputting to Xcode’s console, being captured to a file, or a piped to another command. e.g. #141
This PR skips writing the animated output of an
ActivityIndicator
if the console will not handle it well.
This patch was released by @0xTim
Full Changelog: 4.14.3...4.15.0
4.14.3 - Make logged metadata a little more readable
What's Changed
Make logged metadata a little more readable by @gwynne in #201
We now explicitly suppress excess
"
characters recursively in logger metadata.Also bumps the package to a minimum of Swift 5.8 and fixes some warnings.
Reviewers
Thanks to the reviewers for their help:
This patch was released by @gwynne
Full Changelog: 4.14.2...4.14.3
4.14.2 - Support compiling against Musl
What's Changed
Support compiling against Musl by @simonjbeaumont in #198
In order to compile this package against Musl libc, we need to not conflate
#if os(Linux)
with the ability toimport Glibc
. The common pattern for this is to use the#if canImport
directive.This patch adds support for Musl by replacing the
Glibc
import conditional alongside a new conditional import ofMusl
.It also updates the
linux_readpassphrase
implementation to use the appropriatesigaction
handler field for Musl.
This patch was released by @0xTim
Full Changelog: 4.14.1...4.14.2
4.14.1 - Revert unnecessary command behavior change
What's Changed
Revert unnecessary command behavior change by @gwynne in #197
In a previous release, a change was made (by me) to how old
Command
s are integrated withAsyncCommand
s which was unnecessary, offers no tangible benefit, possibly has a (very small) speed penalty, and is one of a small number of potential sources of runtime stalls. This reverts said ill-advised change.
This patch was released by @gwynne
Full Changelog: 4.14.0...4.14.1
4.14.0 - Revise async commands support
What's Changed
Revise async commands support by @gwynne in #196
Changes:
- Deprecates unnecessary API
- Corrects the sync
Command
adapter methods- Cleans up some concurrency warnings
This patch was released by @gwynne
Full Changelog: 4.13.0...4.14.0
4.13.0 - Add merge function to command groups
What's Changed
Add merge function to command groups by @marius-se in #195
Add merge function to
AsyncCommandGroup
and conformAnyCommand
toAnyAsyncCommand
. This allows us to get AsyncCommand working again in Vapor 4 🎉
This patch was released by @0xTim
Full Changelog: 4.12.0...4.13.0
4.12.0 - Split ConsoleKit into two functional targets
What's Changed
Split ConsoleKit into two functional targets by @gwynne in #192
ConsoleKit has been split into two separate targets:
ConsoleKitTerminal
contains the logic for interacting with a console (I/O, color support, other ANSI commands, etc.).ConsoleKitCommands
contains the functionality for handling argument parsing, which is now soft-deprecated in favor ofswift-argument-parser
when possible.The existing
ConsoleKit
target is now an umbrella import, similar to the function of theNIO
target inswift-nio
; existing code should be unaffected.Several additional minor cleanups were also made in the process of this split.
Reviewers
Thanks to the reviewers for their help:
This patch was released by @gwynne
Full Changelog: 4.11.0...4.12.0
4.11.0 - Add a public initializer to LogRecord
What's Changed
Add a public initializer to LogRecord by @semicoleon in #194
One of the goals of the
LoggerFragment
system was to make it simple to handle more complex logging logic by wrapping a custom log handler around the existingLoggerFragment
system.Unfortunately I forgot to give
LogRecord
a public initializer which makes doing that impossible.
This patch was released by @gwynne
Full Changelog: 4.10.2...4.11.0
4.10.2 - Fix `AnySendableHashable` regression
What's Changed
Fix AnySendableHashable
regression by @0xTim in #193
AnySendableHashable
introduced a breaking change where trying to pass concrete types that conform toSendable
andHashable
but the compiler couldn’t infer they could be passed around asAnySendableHashable
. This fixes the accesses for any dictionary (includinguserInfo
) to fix an API break in https://github.com/vapor/console-kit/releases/tag/4.8.0
This patch was released by @0xTim
Full Changelog: 4.10.1...4.10.2