Step 1: update Ash
Step 2: mass rename Api to Domain
Step 3: Ash.Query.expr -> Ash.Expr.expr
Also change ref interpolation
Step 4: remove all warnings
Step 5: remove registries from tests
Step 6: fix filter
Step 7: private? -> !public?
Step 8: Ash.Calculation -> Ash.Resource.Calculation
Step 9: use depend_on_resources/1 -> resources/1
Step 10: add Domain to all resources
Step 11: use Ash module for all actions
Step 12: add public? true all around
Step 13: remove verbose? from options passed during Domain calls
Step 14: add simple_sat
Step 15: Ash.ErrorKind is no more, so remove code from errors
Step 16: sprinkle default_accept :* around tests
Step 17: replace Ash.Changeset.new/2 with Ash.Changeset.for_*
Step 18: calculation fixups
- Context is now a struct and arguments go under the arguments key
- Function based calculations receive a list of records
- Add a select to query-based loads
- select -> load
Step 19: pass the correct name to pass the policy in tests
Step 20: Ash.Query.new/2 is no more
Step 21: add AshGraphql.Resource.embedded? utility function
Use that instead of Ash.Type.embedded_type?(resource_or_type) since resources
are not types anymore
Step 22: handle struct + instance_of: Resource in unions
Resources are not type anymore so they need to be passed this way in unions
Step 23: ensure we only check GraphQL actions for pagination
All reads are now paginated by default, so this triggered a compilation error
Step 24: swap arguments for sort on calculations
Step 25: remove unused debug? option
An error occurs at compile time:
== Compilation error in file test/support/schema.ex ==
** (MatchError) no match of right hand side value: {:error, "Must provide field type for max"}
lib/resource/resource.ex:2278: AshGraphql.Resource.filterable?/2
(elixir 1.15.4) lib/enum.ex:4265: Enum.filter_list/2
(elixir 1.15.4) lib/enum.ex:4266: Enum.filter_list/2
lib/resource/resource.ex:2229: AshGraphql.Resource.aggregate_filter_fields/2
lib/resource/resource.ex:2195: AshGraphql.Resource.resource_filter_fields/2
lib/resource/resource.ex:1159: AshGraphql.Resource.args/5
lib/resource/resource.ex:425: anonymous fn/6 in AshGraphql.Resource.queries/5
(elixir 1.15.4) lib/enum.ex:1693: Enum."-map/2-lists^map/1-1-"/2
metadata on read actions is merged with the rest of the fields on the query, so must have a name unique from the attributes/calculations/aggregates.
The system will warn you if there is metadata on the underlying action that is being ignored, and will tell you how to fix it.