Latest release

Vapor 3.0.6

@tanner0101 tanner0101 released this Jul 5, 2018 · 2 commits to master since this release

Fixed:

  • Removed extraneous copy of ConsoleLogger (#1746).

Vapor 3.0.5

@tanner0101 tanner0101 released this Jun 19, 2018 · 4 commits to master since this release

New:

  • ApplicationResponder is now public (#1704).

Vapor 3.0.4

@tanner0101 tanner0101 released this Jun 5, 2018 · 18 commits to master since this release

Fixed:

  • Fixed an issue where URL query strings could be doubly precent encoded (#1692, #1687).
  • Fixed a typo in a default argument for max body size in NIOServer (#1691).

Vapor 3.0.3

@rafiki270 rafiki270 released this May 16, 2018 · 32 commits to master since this release

Fixed:

  • Making on(), custom route methods public.
public func on<T>(_ method: HTTPMethod, at path: PathComponentsRepresentable..., use closure: @escaping (Request) throws -> T) -> Route<Responder>
public func on<T>(_ method: HTTPMethod, at path: [PathComponentsRepresentable], use closure: @escaping (Request) throws -> T) -> Route<Responder>

Vapor 3.0.2

@tanner0101 tanner0101 released this May 9, 2018 · 38 commits to master since this release

New:

  • New method Request.makeResponse(_:as:) for responding with HTTPBodyLosslessRepresentable content (#1657).
// new API accepts HTTPBodyLosslessRepresentable object
router.get("hello") { req in
    return req.makeResponse("Hello!")
}

// you can also specify a content type
router.get("hello-html") { req in
    return req.makeResponse("Hey!", as: .html)
}

// existing API that accepts non-HTTPBodyLosslessRepresentable content
router.get("hello-json") { req in
    let res = req.makeResponse()
    try res.content.encode(["hello": "world"], as: .json)
    return res
}
  • New method router.on(...) that accepts a non-variadic array of path components (#1658, #1666).

Fixed:

  • BlockingIOThreadPool is now a singleton, shared across all containers (#1665).
  • Middleware is now applied in the correct order when using router.grouped(...) and router.group(...) (#1663).
  • Errors reported to Logger now correctly display the error message (#1660).

API Docs:
https://api.vapor.codes/vapor/latest/Vapor

Milestone:
3.0.2

Vapor 3.0.1

@tanner0101 tanner0101 released this May 5, 2018 · 59 commits to master since this release

Fixed:

  • SessionsMiddleware no longer aborts when it encounters an invalid cookie (#1656).

Milestone:
3.0.1

Vapor 3.0.0

@tanner0101 tanner0101 released this May 4, 2018 · 63 commits to master since this release

Vapor 3.0 is here! 🎉

Stay tuned for the full release article + benchmarks.

Docs:
https://docs.vapor.codes/3.0/vapor/getting-started/

API Docs:
https://api.vapor.codes/vapor/latest/Vapor

Upgrading:
https://docs.vapor.codes/3.0/version/upgrading/#24-to-30


Changes since last release candidate:

New:

  • Logger.reportError(...) is now public.
  • New convenience methods for encoding Content with status/headers (#1587).
  • AbortError now supports adding headers (#1397).

Fixed:

  • All APIs are now documented with doc blocks.
  • API surface minimized (everything made internal that can be).
  • HEAD requests are now properly handled (#1617).
  • ContentContainer is now more powerful (#1648).
  • map / flatMap now support implicit return types (#1606).
  • FileMiddleware is now non-blocking (#1586).
  • Bind to port 8080 even in production (#1455).
  • Tons of other small bug fixes and improvements.

Milestone:
3.0.0

Vapor 3.0.0 RC 2.8.1

@tanner0101 tanner0101 released this May 4, 2018 · 130 commits to master since this release

3.0.0-rc.2.8.1

any/all route updates
Pre-release

Vapor 3.0.0 RC 2.8

@tanner0101 tanner0101 released this May 4, 2018 · 131 commits to master since this release

Merge pull request #1645 from vapor/dbkit-gm

dbkit 1.0.0 gm
Pre-release

Vapor 3.0.0 RC 2.7

@tanner0101 tanner0101 released this Apr 20, 2018 · 141 commits to master since this release

New:

  • Use Routing 3.0.0 official release.
  • ⚠️ req.parameter(...) has been renamed to req.parameters.next(...):

Milestone:
3.0.0-rc.2.7