Skip to content

Latest commit

 

History

History
255 lines (176 loc) · 21.6 KB

CHANGELOG.md

File metadata and controls

255 lines (176 loc) · 21.6 KB

Changelog

0.20.1 - 2025-02-08

Fixed

  • Fix ATH::ViewHandler bundle configuration values not being correctly set (#520) (George Dietrich)

0.20.0 - 2025-01-26

Changed

  • Breaking: Normalize exception types (#428) (George Dietrich)
  • Breaking: The ATHR::Interface.configuration macro is no longer scoped to the resolver namespace (#425) (George Dietrich)
  • Breaking: Rename ATHR::RequestBody::Extract to ATHA::MapRequestBody (#425) (George Dietrich)
  • Breaking: Rename ATHR::Time::Format to ATHA::MapTime (#425) (George Dietrich)
  • Update minimum crystal version to ~> 1.14.0 (#433) (George Dietrich)
  • Refactor auto redirection logic to be more robust (#436, #480) (George Dietrich)
  • Refactor ATHR::RequestBody to raise more accurate deserialization errors (#490) (George Dietrich)

Added

  • Add support for Proxies & Load Balancers (#440, #444) (George Dietrich)
  • Add new trusted_host bundle scheme property to allow setting trusted hostnames (#474) (George Dietrich)
  • Add support for deserializing application/x-www-form-urlencoded bodies via ATHA::MapRequestBody (#477) (George Dietrich)
  • Add ATHA::MapQueryString to map a request's query string into a DTO type (#477) (George Dietrich)
  • Add ATH::Exception.from_status helper method (#426) (George Dietrich)
  • Add ATHA::MapQueryParameter for handling query parameters (#426) (George Dietrich)
  • Add #validation_groups and #accept_formats annotation properties to ATHA::MapRequestBody (#486) (George Dietrich)
  • Add #validation_groups annotation property to ATHA::MapQueryString (#486) (George Dietrich)
  • Add ATH::Request#port and ATH::Response#redirect? methods (#436) (George Dietrich)
  • Add #host, #scheme, #secure?, and #from_trusted_proxy? methods to ATH::Request (#440) (George Dietrich)
  • Add ATH::Request#content_type_format to return the request format's name from its content-type header (#477) (George Dietrich)
  • Add ATH::IPUtils module (#440) (George Dietrich)
  • Add .unquote, .split, and .combine methods ATH::HeaderUtils (#440) (George Dietrich)
  • Add request matchers for headers and query parameters (#491) (George Dietrich)

Removed

  • Breaking: Remove ATHA::QueryParam (#426) (George Dietrich)
  • Breaking: Remove ATHA::RequestParam (#426) (George Dietrich)
  • Breaking: Remove ATH::Exception::InvalidParameter (#426) (George Dietrich)
  • Breaking: Remove everything within ATH::Params namespace (#426) (George Dietrich)
  • Breaking: Remove ATH::Action#params (#426) (George Dietrich)
  • Breaking: Remove ATH::Listeners::ParamFetcher (#426) (George Dietrich)

Fixed

  • Fix query parameters being dropped when redirecting to a trailing/non-trailing slash endpoint (#436) (George Dietrich)
  • Fix auto redirection with non-standard ports (#480) (George Dietrich)
  • Fix multipart/form-data not being mapped to the form format (#441) (George Dietrich)
  • Fix being unable to provide the path of an ARTA::Route annotation on a class as a positional argument (#482) (George Dietrich)
  • Fix error when attempting to use ATH::Controller#redirect_view and ATH::Controller#route_redirect_view (#498) (George Dietrich)
  • Fix error when attempting to use ATH::Spec::APITestCase#unlink (#498) (George Dietrich)

0.19.2 - 2024-07-31

Added

  • Add ATH.run_console as an easier entrypoint into the console application (#413) (George Dietrich)
  • Add support for additional boolean conversion values from request attributes (#422) (George Dietrich)

Changed

  • Breaking: ATH::RequestMatcher::Method now requires an Array(String) as opposed to any Enumerable(String) (#431) (George Dietrich)
  • Update minimum crystal version to ~> 1.13.0 (#433) (George Dietrich)
  • Updates usages of UTF-8 in response headers to utf-8 as preferred by the RFC (#417) (George Dietrich)

Fixed

  • Fix the content negotiation implementation not working (#431) (George Dietrich)

0.19.1 - 2024-04-27

Fixed

  • Fix framework component docs landing on an empty page (#399) (George Dietrich)
  • Fix Athena::Clock not being aliased to the interface correctly (#400) (George Dietrich)
  • Fix ATHA::View annotation being defined in incorrect namespace (#403) (George Dietrich)
  • Fix ATH::ErrorRenderer not being aliased to the interface correctly (#404) (George Dietrich)

0.19.0 - 2024-04-09

Changed

  • Breaking: change how framework features are configured (#337, #374, #383) (George Dietrich)
  • Update minimum crystal version to ~> 1.11.0 (#270) (George Dietrich)
  • Integrate website into monorepo (#365) (George Dietrich)

Added

  • Support for Windows OS (#270) (George Dietrich)
  • Add ATH::RequestMatcher as a generic way of matching an ATH::Request given a set of rules (#338) (George Dietrich)
  • Raise an exception if a controller's return value fails to serialize instead of just returning nil (#357) (George Dietrich)
  • Add support for new Crystal 1.12 Process.on_terminate method (#394) (George Dietrich)

Fixed

  • Fix macro splat deprecation (#330) (George Dietrich)
  • Normalize ATH::Request#method to always be uppercase (#338) (George Dietrich)
  • Fixed not being able to use top level configuration annotations on controller action parameters (#356) (George Dietrich)

0.18.2 - 2023-10-09

Changed

  • Change routing logic to redirect GET and HEAD requests with a trailing slash to the route without one if it exists, and vice versa (#307) (George Dietrich)

Added

  • Add native tab completion support to the built-in ATH::Commands (#296) (George Dietrich)
  • Add support for defining multiple route annotations on a single controller action method (#315) (George Dietrich)
  • Require the new Athena::Clock component (#318) (George Dietrich)
  • Add additional ATH::Spec::APITestCase request helper methods (#312, #313) (George Dietrich)

Fixed

  • Fix incorrectly generated route paths with a controller level prefix and no action level / prefix (#308) (George Dietrich)

0.18.1 - 2023-05-29

Added

  • Add support for serializing arbitrarily nested controller action return types (#273) (George Dietrich)
  • Allow using constants for controller action's path (#279) (George Dietrich)

Fixed

  • Fix incorrect content-length header value when returning multi-byte strings (#288) (George Dietrich)

0.18.0 - 2023-02-20

Changed

  • Breaking: upgrade Athena::EventDispatcher to 0.2.x (#205) (George Dietrich)
  • Breaking: deprecate the ATH::ParamConverter concept in favor of Value Resolvers (#243) (George Dietrich)
  • Breaking: rename various types/methods to better adhere to crystal-lang/crystal#10374 (#243) (George Dietrich)
  • Breaking: Change ATH::Spec::AbstractBrowser to be a class (#249) (George Dietrich)
  • Breaking: upgrade Athena::Validator to 0.3.x (#250) (George Dietrich)
  • Improve service ATH::Controllers to not need the public: true ADI::Register field (#213) (George Dietrich)
  • Update minimum crystal version to ~> 1.6.0 (#205) (George Dietrich)

Added

Fixed

  • Correctly populate content-length based on the response content's size (#267) (George Dietrich)
  • Prevent wildcard CORS expose_headers value when allow_credentials is true (#264) (George Dietrich)
  • Correctly handle JSON::Serializable values within Hash/NamedTuple controller action return types (#253) (George Dietrich)
  • Fix ATH::ParameterBag#get? not returning nil if it could not convert the value to the desired type (#243) (George Dietrich)

0.17.1 - 2022-09-05

Changed

  • Breaking: ensure parameter names defined on interfaces match the implementation (#188) (George Dietrich)

0.17.0 - 2022-05-14

Checkout this forum thread for an overview of changes within the ecosystem.

Added

Changed

  • Breaking: rename ATH::Arguments::Resolvers::ArgumentValueResolverInterface to ATH::Arguments::Resolvers::Interface (#176) (George Dietrich)
  • Breaking: bump athena-framework/serializer to ~> 0.3.0 (#181) (George Dietrich)
  • Breaking: bump athena-framework/validator to ~> 0.2.0 (#181) (George Dietrich)
  • Expose the default value of an ATH::Arguments::ArgumentMetadata (#176) (George Dietrich)
  • Update minimum crystal version to ~> 1.4.0 (#169) (George Dietrich)

Fixed

  • Fix error when two controller share a common action name (#146) (George Dietrich)
  • Fix release badge to use correct repo (#161) (George Dietrich)
  • Fix query/request param docs to use new error responses (#167) (George Dietrich)
  • Fix incorrect Athena::Framework Log name (#175) (George Dietrich)

0.16.0 - 2022-01-22

First release in the athena-framework/framework repo, post monorepo.

Added

Changed

Removed

0.15.1 - 2021-12-13

Changed

  • Include error list in ATH::Exception::InvalidParameter (#124) (George Dietrich)
  • Set the base path of parameter errors to the name of the parameter (#124) (George Dietrich)

0.15.0 - 2021-10-30

Last release in the athena-framework/athena repo, pre monorepo.

Added

Changed

  • Breaking: rename base param converter type to ATH::ParamConverter and make it a class (#116) (George Dietrich)
  • Breaking: rename the component from Athena::Routing to Athena::Framework (#120) (George Dietrich)

Fixed

  • Fix incorrect parameter type restriction on ATH::ParameterBag#set (#116) (George Dietrich)
  • Fix incorrect ivar type on AVD::Exception::Exceptions::ValidationFailed#violations (#116) (George Dietrich)
  • Correctly reject requests with whitespace when converting numeric inputs (#117) (George Dietrich)