View Source Upgrading to v1.5

This information is extracted and expanded from the CHANGELOG.

This version includes:

  • Schema compilation phases
  • SDL based schema definitions
  • SDL rendering
  • Telemetry based instrumentation

Existing macro-based schemas will work as-is, but make sure to note that the schema pipeline executes at compile time.

Breaking changes

Default values evaluated at compile time

Default values are evaluated at compile time. For example default_value: DateTime.utc_now() will have its time set at compile time. You probably don't want this :)

Scalar output validation

Scalar outputs are now type checked and will raise exceptions if the result tries to send the wrong data type in the result.

Variable types validation

Variable types must now align exactly with the argument type. Previously Absinthe allowed variables of different types to be used by accident as long as the data parsed.

Field name validation

Added a schema phase to check the validity of field names according to GraphQL spec. Remove the Absinthe.Phase.Schema.Validation.NamesMustBeValid from the schema pipeline if you need to retain the previous behavior.

Absinthe.Subscription.PubSub

Added node_name/0 callback to Absinthe.Subscription.PubSub behaviour. To retain old behaviour, implement this callback to return Kernel.node/0.

Absinthe.Traversal

Removed the un-used Absinthe.Traversal module.