- Feature: Improved serialization failure messages
- Bug Fix: Render null default values in SDL
- Bug Fix: Reduce memory usage of Schema.Manager
- Feature: Interfaces can now implement Interfaces, matching the latest spec
- Feature: Support for the
repeatable
directive - Feature: Enable rendering of Type System Directives in SDL based schemas.
- Feature: Correctly match Introspection type specs
- Bug Fix: Restore dynamic description support (Note: the
description
s are evaluated once --- at compile time) - Bug Fix: Restore dynamic default_value support (Note: the
default_value
s evaluated once --- at compile time) - Bug Fix: Restore dynamic Enum value support (Note: the
value
is evaluated once --- at compile time) - Bug Fix: Interface nullability corrections
- Bug Fix: Fix field listing for Inputs that import fields
- Bug Fix: Properly trim all descriptions no matter the mechanism used to specify them
- Bug Fix: Fix incorrect specification of
__TypeKind
- Bug Fix: Better match introspection schema specification
- Bug Fix: Add missing value to
__DirectiveLocation
- Bug Fix: Fix compilation problems with
import_types
- Bug Fix: Reduce memory consumption of Subscriptions
- Bug Fix: Fix for
nil
inArgumentsOfCorrectType
suggestions
- Feature: Ensure stable ordering in introspection results.
- Bug Fix: Fix rendering of interfaces in SDL
- Bug Fix: Properly escape single line descriptions in SDL
- Bug Fix: Fix
:meta
on fields - Bug Fix: Validate that DirectivesMustBeValid
- Bug Fix: Handle default value rendering with partial field set
- Bug Fix: Handle null propagation with
non_null(list_of(non_null(type)))
properly - Bug Fix: Fix double escaping issue with string literal arguments.
- Bug Fix: Fix issue with persistent term backend.
- Bug Fix: Enable hydrating resolve_type on unions. #938
- Bug Fix: #922
- Breaking Bug Fix: Variable types must align exactly with the argument type. Previously Absinthe allowed variables of different types to be used by accident as long as the data parsed.
- Feature (Experimental):
:persistent_term
based schema backend - Breaking Change:
telemetry
event keys changed since the beta release.
- Feature: SDL directives, other improvements
- Feature: Output rendered SDL for a schema
- Feature: Substantially lower subscription memory usage.
- Documentation: Testing guide, numerous fixes and updates
- Breaking Change: Scalar outputs are now type checked and will raise exceptions if the result tries to send the wrong data type in the result.
- Breaking Change:
telemetry
event names changed from thealpha
to match an emerging naming convention for tracing. - Breaking Change: Added phase to check validity of field names according to GraphQL spec. Might break existing schema's. Remove the
Absinthe.Phase.Schema.Validation.NamesMustBeValid
from the schema pipeline if you want to ignore this. - Breaking Change: To match the GraphQL spec, we no longer add a non-null error when a resolver on a non-null field explicitly returns its own error.
- Breaking Change: Removed
Absinthe.Traversal
module
Alpha 0 note: 1.5.0 alpha is safe to use on existing schemas. However, there are no schema validations at the moment, so when writing new ones you may get undefined behaviour if you write an invalid schema.
- COLUMN NUMBERS! The Absinthe Lexer has been rewritten using
nimble_parsec
and now Absinthe includes column information. - Complete rewrite of schema internals. This fixes a number of long standing bugs, and provides a variety of new features
- Feature: SDL support
- Feature: Schema decorators
- Feature: Customizable subscription de-duplification. See: https://github.com/absinthe-graphql/absinthe/blob/master/guides/subscriptions.md#de-duplicating-updates
- Feature: Built-in
telemetry
instrumentation (https://github.com/beam-telemetry/telemetry) - Breaking Change:
default_value: DateTime.utc_now()
will have its time set at compile time. IE: DON'T DO THIS. It only worked by accident before anyway, and now it no longer works, which is correct. - Breaking change: added
node_name/0
callback toAbsinthe.Subscription.PubSub
behaviour. To retain old behaviour, implement this callback to returnKernel.node/0
.
For changes pre-v1.5 see the v1.4 branch.