Releases: athena-framework/framework
Releases · athena-framework/framework
v0.22.0
Immutable
release. Only release title and notes can be modified.
Changed
- Breaking: Store
ATH::ActionwithinATH::Request#attributesinstead of within an ivar (#636) (@Blacksmoke16) - Breaking: Extract out HTTP related
frameworktypes into the newhttpcomponent (#640) (@Blacksmoke16) - Breaking: Extract out Request/Response handling related
frameworktypes into the newhttp_kernelcomponent (#657) (@Blacksmoke16) - Breaking: Refactor how annotations are fetched off an action/parameter (#655) (@Blacksmoke16)
Fixed
- Fix CORS error when using HTTP/2 but providing uppercase header names (#670) (@blackmsoke16)
- Fix compile time error when inadvertently using a type name that conflicts with an internal component type (#678) (@Blacksmoke16)
v0.21.1
Immutable
release. Only release title and notes can be modified.
Fixed
- Fix improper handling of optional file uploads (#595) (@Blacksmoke16)
v0.21.0
Changed
- Breaking: Leverage
ATH::AbstractFilewithinATH::BinaryFileResponse(#563) (@Blacksmoke16) - Leverage
mimecomponent withinATH::BinaryFileResponse(#545) (@Blacksmoke16) - Setter methods on
ATH::Responseand subclasses now returnselfto better support method chaining (#563) (@Blacksmoke16)
Added
- Add support for Athena Contract component types (#544) (@Blacksmoke16)
- Add native file upload support (#559) (@Blacksmoke16)
Fixed
- Correctly apply
emit_nilvalue fromATHA::View(#526) (@Blacksmoke16)
v0.20.1
Fixed
- Fix
ATH::ViewHandlerbundle configuration values not being correctly set (#520) (@Blacksmoke16)
v0.20.0
Changed
- Breaking: Normalize exception types (#428) (@Blacksmoke16)
- Breaking: The
ATHR::Interface.configurationmacro is no longer scoped to the resolver namespace (#425) (@Blacksmoke16) - Breaking: Rename
ATHR::RequestBody::ExtracttoATHA::MapRequestBody(#425) (@Blacksmoke16) - Breaking: Rename
ATHR::Time::FormattoATHA::MapTime(#425) (@Blacksmoke16) - Update minimum
crystalversion to~> 1.14.0(#433) (@Blacksmoke16) - Refactor auto redirection logic to be more robust (#436, #480) (@Blacksmoke16)
- Refactor
ATHR::RequestBodyto raise more accurate deserialization errors (#490) (@Blacksmoke16)
Added
- Add support for Proxies & Load Balancers (#440, #444) (@Blacksmoke16)
- Add new
trusted_hostbundle scheme property to allow setting trusted hostnames (#474) (@Blacksmoke16) - Add support for deserializing
application/x-www-form-urlencodedbodies viaATHA::MapRequestBody(#477) (@Blacksmoke16) - Add
ATHA::MapQueryStringto map a request's query string into a DTO type (#477) (@Blacksmoke16) - Add
ATH::Exception.from_statushelper method (#426) (@Blacksmoke16) - Add
ATHA::MapQueryParameterfor handling query parameters (#426) (@Blacksmoke16) - Add
#validation_groupsand#accept_formatsannotation properties toATHA::MapRequestBody(#486) (@Blacksmoke16) - Add
#validation_groupsannotation property toATHA::MapQueryString(#486) (@Blacksmoke16) - Add
ATH::Request#portandATH::Response#redirect?methods (#436) (@Blacksmoke16) - Add
#host,#scheme,#secure?, and#from_trusted_proxy?methods toATH::Request(#440) (@Blacksmoke16) - Add
ATH::Request#content_type_formatto return the request format's name from itscontent-typeheader (#477) (@Blacksmoke16) - Add
ATH::IPUtilsmodule (#440) (@Blacksmoke16) - Add
.unquote,.split, and.combinemethodsATH::HeaderUtils(#440) (@Blacksmoke16) - Add request matchers for headers and query parameters (#491) (@Blacksmoke16)
Removed
- Breaking: Remove
ATHA::QueryParam(#426) (@Blacksmoke16) - Breaking: Remove
ATHA::RequestParam(#426) (@Blacksmoke16) - Breaking: Remove
ATH::Exception::InvalidParameter(#426) (@Blacksmoke16) - Breaking: Remove everything within
ATH::Paramsnamespace (#426) (@Blacksmoke16) - Breaking: Remove
ATH::Action#params(#426) (@Blacksmoke16) - Breaking: Remove
ATH::Listeners::ParamFetcher(#426) (@Blacksmoke16)
Fixed
- Fix query parameters being dropped when redirecting to a trailing/non-trailing slash endpoint (#436) (@Blacksmoke16)
- Fix auto redirection with non-standard ports (#480) (@Blacksmoke16)
- Fix
multipart/form-datanot being mapped to theformformat (#441) (@Blacksmoke16) - Fix being unable to provide the path of an
ARTA::Routeannotation on a class as a positional argument (#482) (@Blacksmoke16) - Fix error when attempting to use
ATH::Controller#redirect_viewandATH::Controller#route_redirect_view(#498) (@Blacksmoke16) - Fix error when attempting to use
ATH::Spec::APITestCase#unlink(#498) (@Blacksmoke16)
v0.19.2
Added
- Add
ATH.run_consoleas an easier entrypoint into the console application (#413) (@Blacksmoke16) - Add support for additional boolean conversion values from request attributes (#422) (@Blacksmoke16)
Changed
- Breaking:
ATH::RequestMatcher::Methodnow requires anArray(String)as opposed to anyEnumerable(String)(#431) (@Blacksmoke16) - Update minimum
crystalversion to~> 1.13.0(#433) (@Blacksmoke16) - Updates usages of
UTF-8in response headers toutf-8as preferred by the RFC (#417) (@Blacksmoke16)
Fixed
- Fix the content negotiation implementation not working (#431) (@Blacksmoke16)
v0.19.1
Fixed
- Fix
frameworkcomponent docs landing on an empty page (#399) (@Blacksmoke16) - Fix
Athena::Clocknot being aliased to the interface correctly (#400) (@Blacksmoke16) - Fix
ATHA::Viewannotation being defined in incorrect namespace (#403) (@Blacksmoke16) - Fix
ATH::ErrorRenderernot being aliased to the interface correctly (#404) (@Blacksmoke16)
v0.19.0
Changed
- Breaking: change how framework features are configured (#337, #374, #383) (@Blacksmoke16)
- Update minimum
crystalversion to~> 1.11.0(#270) (@Blacksmoke16) - Integrate website into monorepo (#365) (@Blacksmoke16)
Added
- Support for Windows OS (#270) (@Blacksmoke16)
- Add
ATH::RequestMatcheras a generic way of matching anATH::Requestgiven a set of rules (#338) (@Blacksmoke16) - Raise an exception if a controller's return value fails to serialize instead of just returning
nil(#357) (@Blacksmoke16) - Add support for new Crystal 1.12
Process.on_terminatemethod (#394) (@Blacksmoke16)
Fixed
- Fix macro splat deprecation (#330) (@Blacksmoke16)
- Normalize
ATH::Request#methodto always be uppercase (#338) (@Blacksmoke16) - Fixed not being able to use top level configuration annotations on controller action parameters (#356) (@Blacksmoke16)
v0.18.2
Changed
- Change routing logic to redirect
GETandHEADrequests with a trailing slash to the route without one if it exists, and vice versa (#307) (@Blacksmoke16)
Added
- Add native tab completion support to the built-in
ATH::Commands(#296) (@Blacksmoke16) - Add support for defining multiple route annotations on a single controller action method (#315) (@Blacksmoke16)
- Require the new
Athena::Clockcomponent (#318) (@Blacksmoke16) - Add additional
ATH::Spec::APITestCaserequest helper methods (#312, #313) (@Blacksmoke16)
Fixed
- Fix incorrectly generated route paths with a controller level prefix and no action level
/prefix (#308) (@Blacksmoke16)
v0.18.1
Added
- Add support for serializing arbitrarily nested controller action return types (#273) (@Blacksmoke16)
- Allow using constants for controller action's
path(#279) (@Blacksmoke16)
Fixed
- Fix incorrect
content-lengthheader value when returning multi-byte strings (#288) (@Blacksmoke16)