Skip to content

Releases: vapor/leaf

4.3.0 - Bump Package.swift

05 Feb 11:55
0be8765
Compare
Choose a tag to compare

What's Changed

Bump Package.swift by @gwynne in #230

This package should have gotten a release after the previous update to its Package.swift, but it was overlooked. This one further updates the versions and should resolve version issues with the Leaf provider.

This patch was released by @gwynne

Full Changelog: 4.2.4...4.3.0

Fix Algorithms Dependency Declaration

29 Nov 10:04
6fe0e84
Compare
Choose a tag to compare
This patch was authored by @dankinsoid and released by @0xTim.

Swift Algorithms was used in Leaf but never explicitly declared as a dependency on the target. That resulted in compiler errors in some scenarios. The dependency is now correctly declared.

Fix retain cycle(s) in encoder implementation

23 Nov 19:08
79fbcfb
Compare
Choose a tag to compare
This patch was authored by @petrpavlik and released by @0xTim.

This PR addresses issue #215 and server as an alternative of PR #216, that somehow got stuck in it's efforts of being merged in.

I've done 2 things to discover the issue and confirm the fix

  • Xcode would show a bunch of memory leaks when using it's memory graph debugger, those are gone after the changes introduced in this PR
  • I've switched https://swiftpack.co, which uses leaf heavily, to using my fork with this fix. The heroku graph bellow shows significantly lower memory consumption and does not seem to be crashing, though I still do do seem to have memory leaks somewhere in the codebase.

Screenshot 2022-10-11 at 8 09 09

Screenshot 2022-10-09 at 18 38 05

Screenshot 2022-10-09 at 18 35 00

Screenshot 2022-10-09 at 18 36 58

Screenshot 2022-10-09 at 18 32 46

Screenshot 2022-10-09 at 18 35 33

Add Swift Algorithms as an explicit dependency

26 Sep 14:57
bf1c279
Compare
Choose a tag to compare
This patch was authored by @Joannis and released by @0xTim.

Adds Swift Algorithms as an explicit dependency as we depend on it

Fix behavior of Leaf context encoding and improve Leaf errors

17 Aug 06:32
04f262e
Compare
Choose a tag to compare
This patch was authored and released by @gwynne.

Types which use superEncoder(forKey:) in their Codable conformance (such as Fluent models) can now safely be provided to Leaf views as context objects. In general, handling of context encoding is significantly improved.

LeafError now conforms to AbortError and DebuggableError for improved error UI/UX.

Update Supported Swift Versions

16 May 06:46
804f272
Compare
Choose a tag to compare
This patch was authored and released by @0xTim.

This removes support for Swift 5.2 and Swift 5.3, making Swift 5.4 the earliest supported version as
announced

Add experimental support for iOS

02 Feb 09:31
41741b7
Compare
Choose a tag to compare
This patch was authored by @BeauNouvelle and released by @0xTim.

This change allows Leaf to be used within iOS environments. Without it we get the following error:

The package product 'Vapor' requires minimum platform version 13.0 for the iOS platform, but this target supports 9.0

Fix UnkeyedContainer crash for collections with nil

16 Dec 01:34
ffff1a8
Compare
Choose a tag to compare
This patch was authored by @fananek and released by @0xTim.

UnkeyedContainer throw fatal error in case of encoding collection with one or more nil values.
This change removes force unwrap of the input data and skip any nil value in a collection.

Resolves #197

Export `UnsafeUnescapedLeafTag`

09 Aug 16:24
c0359c4
Compare
Choose a tag to compare
This patch was authored and released by @0xTim.

Exports the new UnsafeUnescapedLeafTag so it's easy to use for anyone importing Leaf

Remove Starting Renderer with Caching Enabled Log

06 May 17:15
ee95844
Compare
Choose a tag to compare
This patch was authored and released by @0xTim.

This removes the log message that states that the application is starting the Leaf Renderer with caching enabled. Because the userInfo is unique per request we can't cache the renderer so it needs to be created for each request (which is fine as everything else is stored in the request's storage). However this means that we get the log for each request.

Additionally the log might not be true if the application is configured to disable caching. Resolves #192