Giraffe v4.0.1 Release Notes

Release Date: 2019-10-18 // 4 months ago
  • 🛠 Fixed dependency references for TFM netcoreapp3.0 projects.


Previous changes from v4.0.0

  • ⬆️ Giraffe 4.0.0 has been tested against netcoreapp3.0 alongside netcoreapp2.1 and net461. All sample code has been upgraded to .NET Core 3.0 as well.

    ATTENTION:

    🚀 This release of Giraffe fixes a bug in the routef handler which would have previously matched a route too eagerly.

    Before:
    Route: /foo/bar/hello/world
    routef: /foo/bar/%s
    Match: true
    
    Now:
    Route: /foo/bar/hello/world
    routef: /foo/bar/%s
    Match: false
    

    👀 For more information please see issue #347.

    🆕 New features

    • 👌 Support array of 'T as a child in form binding
    • ➕ Added a new DateTime extension method ToIsoString which produces a RFC3339 formatted string, and corrected the docs on the existing ToHtmlString extension method which actually produces a RFC822 formatted string.

    🐛 Bug fixes and breaking changes

    • 🛠 Fixed routef to not match more than one URL path segment.
    • 🛠 Fixed the _ariaLabelledBy attribute in the GiraffeViewEngine
    • 🛠 Fixed case insensitive route handlers on Ubuntu
    • 🔄 Changed minimum version of Newtonsoft.Json to 11.0.2. This allows Giraffe to be compatible with Azure Functions.
    • 📇 Renamed tryMatchInput to tryMatchInputExact and swapped the order of arguments so that the string value comes last
    • ➕ Added new version of tryMatchInput which accepts MatchSettings record:

      type MatchMode =
          | Exact                // Will try to match entire string from start to end.
          | StartsWith           // Will try to match a substring. Subject string should start with test case.
          | EndsWith             // Will try to match a substring. Subject string should end with test case.
          | Contains             // Will try to match a substring. Subject string should contain test case.
      
      type MatchOptions = { IgnoreCase: bool; MatchMode: MatchMode; }