Releases: hummingbird-project/hummingbird
Releases · hummingbird-project/hummingbird
v2.0.0 Beta 3
Breaking changes
- Remove
ClientConnection
code as this has been moved tohummingbird-websocket
the only place it is used. - Remove
RouteHandler
protocol as this doesn't work with dependency injection. - Remove
Sendable
conformance requirement fromResponseEncoder
,RequestDecoder
protocols. PR #424 - Remove
ServerChildChannel
generic parameter fromApplicationProtocol
. PR #426 - Add optional
port
parameter toTestClientProtocol
Minor release changes
- Fix minimum nio version to use async FileIO. PR #414 from @sidepelican
- Update
content-length
header on setting Response body. PR #425 - Add
RouteCollection
type for passing around groups of routes unattached to aRouter
. PR #421
Patch release changes
- Remove SwiftNIO outbound HTTP header validation as HTTPTypes already does this for us. PR #417
v1.12.2
v2.0.0 Beta 2
Major release changes
- Add
FileProvider
protocol to abstract file loading inFileMiddleware
. Default to loading from the local file system, this could be used to load from S3, or using a cache. #405
Minor release changes
- Make
RequestID
public #407
Patch release changes
- Reinstate "hb_" prefix to logger metadata. #406
- Fix crash in percentDecoding in HBParser. PR #404 from @tannerdsilva
- Add support for running tests on macOS CI without access to the KeyChain. #409
- Fix metrics timers to record length of request once all of the response has been written #412
v1.12.1
Patch release changes
- Ensure we are running on EventLoop after AsyncMiddleware. PR #351
- Replace
LegacyTracer
withTracer
from swift-distributed-tracing now we aren't supporting Swift 5.6. PR #327 - Fix crash in
percentDecoding
inHBParser
. PR #411 from @tannerdsilva
v2.0.0 Beta 1
This is the first beta release of Hummingbird v2. Below is a list of the changes since the last alpha
Major release changes
- The "HB" prefix on symbols has been removed. To help transition from previous symbols with the "HB" prefix we have added deprecated typealiases for the old symbols. eg
typealias HBRequest = Request
. These will be removed in the final release. - At the same time we have renamed
HBMiddlewareProtocol
toRouterMiddleware
.HBChildChannel
toServerChildChannel
HBResponder
toHTTPResponder
HBURL
toURI
Client
toClientConnection
- HummingbirdXCT test framework has been renamed to
HummingbirdTesting
with symbol changesHBXCTClientProtocol
toTestClientProtocol
HBXCTClientProtocol.XCTExecute()
toHBXCTClientProtocol.execute()
- HummingbirdJobs has been reworked to allow for easier referencing of services from inside job execution code. Check https://hummingbird-project.github.io/hummingbird-docs/2.0/documentation/hummingbirdjobs for details.
GracefulShutdownWaiter
has been removed. Usetry await gracefulShutdown()
from ServiceLifecycle instead.HBParser
scope is nowpackage
Other changes
- 2.0 code has now been merged into
main
branch.
v2.0.0 Alpha 3
Breaking changes
- Removed
HBRequestContext.init(allocator:logger:)
as a protocol requirement, removed default implementation ofHBRequestContext.init(channel:logger:)
requirement. - JobQueue protocol has associated type
JobID
for identifying a job. - Removed
GracefulShutdownWaiter
. Instead usetry await gracefulShutdown()
which is already provided by ServiceLifecycle.
Minor release changes
- Added
HBParameter.get/require
function for types that conform toRawRepresentable
. - Added
HBRouterOptions
. Options includecaseInsensitive
: Route path matching is case insensitiveautoGenerateHeadEndpoints
: Automatically generate HEAD endpoints for all GET endpoints.
- Add primary associated type for
HBRouterMethods
. Thanks to @sidepelican
Patch release changes
- Fixed HTTP2 channel cleanup
- Replaced atomic in
HTTPChannelHandler.handleHTTP
with value wrapped inNIOLockedValueBox
- Tag retroactive protocol conformances.
v2.0.0 Alpha 2
Breaking changes
HBRequestBody
has been converted from anenum
to astruct
.HBBindAddress
renamed toHBAddress
and has been converted from anenum
to astruct
.HBHTTPChannelBuilder.http2
renamed toHBHTTPChannelBuilder.http2Upgrade
.HBServerConfiguration
is no longer passed toHBChildChannel.setup
.- Removed
HBRouterMethodOptions
as they are no longer needed. - Removed
loggerWithRequestId
global function. - Removed
HBApplicationConfiguration.noHTTPServer
as we don't use it. HBServer.makeServer
is no longer public..env
file loading is now async.
Minor release changes
- Added
HBRequestBody.makeStream
to construct a new back pressured stream of buffers for a request body. - Added generalized client type to setup client connection without defining the protocol being used (being used by WebSocket client).
HBApplicationConfiguration
members are allvar
instead oflet
.
Patch release changes
- Fix issue with
HBApplication.runBeforeServerStart
and testing using.router
framework. - Set StrictConcurrency=complete and fixed related warnings
Other changes
- Updated README for v2.
Full Changelog: 2.0.0-alpha.1...2.0.0-alpha.2
v2.0.0 Alpha 1
This is the first alpha release of Hummingbird v2. Below is a list of the major changes
- Complete rewrite of internals to be Swift structured concurrency based instead of NIO EventLoop
- All EventLoopFuture based APIs have been removed
- Integration with v2 of Swift Service Lifecycle.
- Removed ability to extend
HBApplication
andHBRequest
. These are replaced with direct dependency injection and a generic request context which is passed along with the request in route handlers and middleware. - In addition to the trie based router we have a new result builder based router.
- Uses new HTTPTypes from Apple.
- HummingbirdCore module is now in the same repository as Hummingbird
- Merged HummingbirdFoundation into Hummingbird
- Rewrite of Jobs system to use structured concurrency.
API Documentation can be found here and more details about differences between Hummingbird v1 and v2 can be found in the migration guide
Alongside the Hummingbird v2 alpha release, there will be alpha releases of HummingbirdAuth, HummingbirdRedis and HummingbirdFluent. WebSocket and Compression are not ready for release yet and will come later.
v.1.12.0
Minor release changes
- Add
RequestID
to generate unique ids for each request. The request id is no longer just an incrementing counter. It now includes an extra random element to identify the hummingbird process generating the request. It is also output as hex instead of decimal. PR #326
Other changes
- Removed unused documentation. Documentation is generated from https://github.com/hummingbird-project/hummingbird-docs.
- Documentation link now includes hummingbird version, in preparation for future major releases.
- Set documentation visibility to internal for
@_exported
symbols from other libraries.
v1.11.0
Minor release changes
- Make
HBMethods.constructResponder
public. PR #316
Other changes
- Update CONTRIBUTORS.md
- Fix small code mistake in Encoding and Decoding.md. PR #304 from @sidepelican