Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'Add __private__ field to EnumValueDefinition struct' #2

Closed
wants to merge 835 commits into from

Conversation

maartenvanvliet
Copy link
Owner

@maartenvanvliet maartenvanvliet commented Jan 24, 2022

--

benwilson512 and others added 30 commits October 16, 2020 18:00
Fix deprecation warnings in Elixir 1.11
…ne-description-in-sdl

Escape single-lined description in SDL
…rm-populate

Fix compilation bug with persistent_term backend
…l_generation

Fix SDL generation for interfaces
JonRowe and others added 26 commits November 25, 2021 11:06
…bsinthe-graphql#1125)

* Invert the phoenix installation instructions.

Add the instructions for current versions of Phoenix as the default, and then explain how to use in older versions rather than the other way around.

* Restore fence syntax
…1080

Validate object/interfaces implement all transitive interfaces
…1128)

Absinthe's telemetry events includes `id` metadata, as means to
correlate start/stop/exception events. Telemetry defines a
`telemetry_span_context` for this same reasons.

This patch publishes the same `id` value  as both keys, sowe maintain
backwards compatibility as well keep adherent to conventions, for tools
that rely on that - like OpenTelemetry.

The `telemetry_span_context` is generated using `:erlang.make_ref/0`.
Given typespecs describe as `term`, should be safe to use the same value
as `id`.
This was introduced in commit 7529731 but with the removal of
the flatten.ex 0f33807 it's no longer needed.
…ve_type_only_object

Prevent key :is_type_of not found error on interfaces
* Add unique field names validation

Fixes absinthe-graphql#1133
Also fixes absinthe-graphql#1049
as the schema's won't compile anymore, so the warning no longer happens

* Optimize duplicate?/3 check

* Add changelog entry
…the-graphql#1142)

The InputOutputTypesCorrectlyPlaced phase did not work for
SDL schema's since it would unwrap a TypeReference, which
yields the TypeReference and not the type atom.

The subsequent lookup in the schema types would therefore fail, as
it expects atoms not typereferences, and it would not add errors.

It now correctly fetches the atom type identifier, though in a bit of
a roundabout way.
* Add TypeReference.name/1 to get graphql representation

Necessary to get the name of the type when
the underlying type may not exist in the schema
and therefore `Absinthe.Type.name/1` won't work.

* Match spec on allowed variable usage

spec: https://spec.graphql.org/October2021/#sec-All-Variable-Usages-are-Allowed

fixes absinthe-graphql#1134

Several cases did not return errors
 * when the location type was non nullable and the variable nullable
 * when the location type was a list and the variable wasn't

Some cases are allowed:
  * contravariant, when the location type is nullable and the variable
    non-nullable
  * the the argument is non-nullable but either the variable or argument
    has a default value

* Fix invalid documents in tests

* Remove obsolete directive tests

With the changes on allowed variable usage they would only test
whether the directive variable in the operation was present. This
is covered elsewhere.

* Add changelog entry for absinthe-graphql#1141

* Format according to elixir 1.10
…#1140)

* Make invalid scope errors more useful

* Extract deprecated directive fields into separate phase

This change was necessary to to implement macro-based directive
handling.

Because these fields are deprecated, they would use the new `deprecated`
directive. This directive definition is taken from the prototype schema.
However, during compilation of the prototype schema it would also invoke
the introspection builtins with 'deprecated' directive, which is not yet
available.

This new phase extracts the deprecated fields, thus allowing the
prototype phase to skip it in its schema pipeline to avoid the problem.

In Absinthe 2.0 the entire phase can be removed but as of now it's
a backwards incompatible change.

* Add directive/1,2 to notation to apply type system directives

This also handles deprecation at the directive level, so it works
similar to SDL schema's.

* Update lib/absinthe/schema/notation.ex

Co-authored-by: Yu Matsuzawa <ymtszw@gmail.com>

Co-authored-by: Yu Matsuzawa <ymtszw@gmail.com>
* Add failing test cases for wrapped unknown types

* Fix check unknown wrapped types

* Add Did you mean? suggestions for unknown types

* Add changelog entry for absinthe-graphql#1138

Co-authored-by: Ben Wilson <benwilson512@gmail.com>
* Update changelog

* Update docs

* Update ex_doc
…raphql#1146)

* Update non_null.ex

* Update lib/absinthe/type/non_null.ex

Co-authored-by: Ben Wilson <benwilson512@gmail.com>
@maartenvanvliet maartenvanvliet deleted the issues-add-private-field branch January 24, 2022 18:53
@maartenvanvliet maartenvanvliet restored the issues-add-private-field branch January 24, 2022 18:53
@maartenvanvliet maartenvanvliet deleted the issues-add-private-field branch January 24, 2022 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet