The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Clarifying Command Initializers
4 weeks ago
This version brings significant changes (clarification) to the Command struct initializers, as well as expanded documentation coverage.
Here's a brief overview of what's new in this release:
- Command struct initializers have been revised to clarify how they are being initialized. This change has been made based on feedback from our users via Issues and through our own observations.
- We've greatly expanded the documentation coverage for the Command struct, making it easier to use and understand.
- This release also reorganizes a few internal pieces to prepare for the upcoming 4.0.0 release.
We believe that these changes will make SwiftSlash even more powerful and user-friendly. As always, we welcome your feedback and encourage you to share any thoughts or suggestions you may have.
Removed Public-Facing ClibSwiftSlash Library
1 year ago
- `Package.swift` has been updated to hide the internal library `ClibSwiftSlash` from external users.
- This is a minor update (no breaking API changes) because `ClibSwiftSlash` was undocumented and not meant for public use.
Public API Changes
1 year ago
- `Command(command:String)` has been changed to a nameless initializer `Command(_:String)`
- `CommandResult` is now `Command.Result`
- Improved documentation
- SwiftSlash now has DocC documentation on every public symbol in the framework.
- DocC render for the latest release can be found on [the SwiftSlash website](https://swiftslash.com/documentation)
- Removed build warnings on unit tests
Internal & External Improvements
1 year ago
- Eliminated build warnings on MacOS
- Eliminated fatalError on MacOS that would get thrown when signals are sent to the process in which SwiftSlash is running
- Command struct instance variables are now publicly accessible
Stability tweak
1 year ago
Bugfix: SwiftSlash no longer throws a fatalError when a signal is sent to the process in which it is running.
- completely rebuilt data engine.
- better structure for concurrency
- resource awareness - if SwiftSlash cannot create new file handles, it will wait to launch your command until it can.
- independent mechanism for detecting process exits
- lays foundation for dynamic channel closure going forward
- full production support on MacOS with Monterey and newer versions
- passing async tests
- async tests restored, passing on MacOS and will pass on Linux when apple adds async functionality in a future release
Stability improvement
1 year ago
Revised execution order of an internal mechanism (ChannelManager) to improve framework stability
Command API tweak
1 year ago
Changed `Command.init?(command:String)` to a non-optional initializer. In an event where invalid input is passed as `command:String`, a fatalError is thrown.
SwiftSlash has been completely rebuilt from the ground-up (inside and out) to support Swift's native async/await concurrency tools.