Skip to content

Releases: hummingbird-project/hummingbird

v2.0.0 Beta 7

17 Jun 09:48
1d10ee0
Compare
Choose a tag to compare
v2.0.0 Beta 7 Pre-release
Pre-release

Breaking changes

  • Rename Request.collateBody to Request.collectBody. PR #468
  • Replace RequestContext initialization parameters with an assoicatedtype Source and collapse RequestContext and BaseRequestContext into one protocol. PR #469, #474
  • Add add(middleware:) as a requirement to RouterMethods and conform Router

Minor release changes

  • Make chunkLength a configurable option in HBFileIO.read functions. PR #471
  • Make HTTPUserEventHandler final

Patch release changes

  • Don't apply middleware to earlier routes in RouteCollection. PR #466
  • Fix Swift.6 error in Promise used in tests

Miscellaneous

  • Added CODEOWNERS file

v2.0.0 Beta 6

05 Jun 11:45
44aea61
Compare
Choose a tag to compare
v2.0.0 Beta 6 Pre-release
Pre-release

Major release changes

  • Move Error handling from HummingbirdCore to Application in Hummingbird. PR #462

Patch release changes

  • Fix router path precedence and parsing of OpenAPI style parameters. PR #464
  • Ensure server errors have CORS, server and date headers. PR #461

v2.0.0 Beta 5

21 May 16:37
aed1e36
Compare
Choose a tag to compare
v2.0.0 Beta 5 Pre-release
Pre-release

Breaking changes

  • Allow for LogRequestsMiddleware to filter headers logged. PR #433
  • Add services parameter to Application.init. PR #438
  • Don't add @_exported to Foundation symbols. PR #449
  • Add requirement that channel is accessible in ServerChildChannel.Value. PR #450
  • HTTPChannelBuilder renamed HTTPServerBuilder and builds Server instead of ServerChildChannel. PR #452
  • Address renamed back to BindAddress

Minor release changes

  • Make RequestBody.init(asynsSequence:) public.
  • Make LocalFileSystem.init() public. PR #451 from @alephao
  • Ensure tracing span records correct duration. PR #435
  • Add support for compiling against Musl. PR #446

Patch release changes

  • Return 404 when user attempts to load folder from FileMiddleware. PR #432
  • Include more descriptive error messages when returning errors. PR #431
  • Add content-length header if we pass in a body to the router test framework
  • Optimize TrieRouter by using array of structs. PR #443
  • Rely on NIO defaults for `maxMessagesPerRead. PR #441
  • Minor optimisations, reducing number of allocations. PR #454

v2.0.0 Beta 4

29 Apr 10:19
23bedac
Compare
Choose a tag to compare
v2.0.0 Beta 4 Pre-release
Pre-release

Minor release changes

  • Add public to RouterMethods.on(_:path:use:)

v2.0.0 Beta 3

29 Apr 09:56
e5fbcd9
Compare
Choose a tag to compare
v2.0.0 Beta 3 Pre-release
Pre-release

Breaking changes

  • Remove ClientConnection code as this has been moved to hummingbird-websocket the only place it is used.
  • Remove RouteHandler protocol as this doesn't work with dependency injection.
  • Remove Sendable conformance requirement from ResponseEncoder, RequestDecoder protocols. PR #424
  • Remove ServerChildChannel generic parameter from ApplicationProtocol. PR #426
  • Add optional port parameter to TestClientProtocol

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 a Router. PR #421

Patch release changes

  • Remove SwiftNIO outbound HTTP header validation as HTTPTypes already does this for us. PR #417

v1.12.2

18 Apr 15:30
Compare
Choose a tag to compare

Patch release changes

  • Require hummingbird-core v1.6.1

v2.0.0 Beta 2

03 Apr 17:15
Compare
Choose a tag to compare
v2.0.0 Beta 2 Pre-release
Pre-release

Major release changes

  • Add FileProvider protocol to abstract file loading in FileMiddleware. 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

25 Mar 10:24
94820ea
Compare
Choose a tag to compare

Patch release changes

  • Ensure we are running on EventLoop after AsyncMiddleware. PR #351
  • Replace LegacyTracer with Tracer from swift-distributed-tracing now we aren't supporting Swift 5.6. PR #327
  • Fix crash in percentDecoding in HBParser. PR #411 from @tannerdsilva

v2.0.0 Beta 1

14 Mar 10:11
dd36634
Compare
Choose a tag to compare
v2.0.0 Beta 1 Pre-release
Pre-release

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 to RouterMiddleware.
    • HBChildChannel to ServerChildChannel
    • HBResponder to HTTPResponder
    • HBURL to URI
    • Client to ClientConnection
  • HummingbirdXCT test framework has been renamed to HummingbirdTesting with symbol changes
    • HBXCTClientProtocol to TestClientProtocol
    • HBXCTClientProtocol.XCTExecute() to HBXCTClientProtocol.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. Use try await gracefulShutdown() from ServiceLifecycle instead.
  • HBParser scope is now package

Other changes

  • 2.0 code has now been merged into main branch.

v2.0.0 Alpha 3

20 Feb 10:19
8cb3e42
Compare
Choose a tag to compare
v2.0.0 Alpha 3 Pre-release
Pre-release

Breaking changes

  • Removed HBRequestContext.init(allocator:logger:) as a protocol requirement, removed default implementation of HBRequestContext.init(channel:logger:) requirement.
  • JobQueue protocol has associated type JobID for identifying a job.
  • Removed GracefulShutdownWaiter. Instead use try await gracefulShutdown() which is already provided by ServiceLifecycle.

Minor release changes

  • Added HBParameter.get/require function for types that conform to RawRepresentable.
  • Added HBRouterOptions. Options include
    • caseInsensitive: Route path matching is case insensitive
    • autoGenerateHeadEndpoints: 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 in NIOLockedValueBox
  • Tag retroactive protocol conformances.