Skip to content

Commit 794b5d4

Browse files
docs: 1.0.0
1 parent 79f617d commit 794b5d4

2 files changed

Lines changed: 116 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 116 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable unreleased changes to this project will be documented in this file.
44

55
For released versions, see the [Releases](https://github.com/mirumee/ariadne/releases) page.
66

7-
## Unreleased
7+
## 1.0.0 (2026-03-16)
88

99
### ⚠️ Breaking Changes
1010
- **Remove deprecated `EnumType.bind_to_default_values`**
@@ -30,4 +30,119 @@ For released versions, see the [Releases](https://github.com/mirumee/ariadne/rel
3030
- Update classifiers and versioning policy
3131
- Add git-cliff for automated changelog and release notes
3232

33+
---
3334

35+
## Migration Guide: 0.29.0 → 1.0.0
36+
37+
### Removed `EnumType.bind_to_default_values`
38+
39+
The `EnumType.bind_to_default_values()` method, deprecated since 0.22, has been removed. `make_executable_schema` already calls `repair_schema_default_enum_values` internally, so the manual call is unnecessary.
40+
41+
**Migration:** Remove the call entirely.
42+
43+
```python
44+
# Before
45+
from ariadne import EnumType, make_executable_schema
46+
47+
status_type = EnumType("Status", {"ACTIVE": 1, "INACTIVE": 0})
48+
schema = make_executable_schema(type_defs, status_type)
49+
status_type.bind_to_default_values(schema) # ← remove this line
50+
51+
# After
52+
from ariadne import EnumType, make_executable_schema
53+
54+
status_type = EnumType("Status", {"ACTIVE": 1, "INACTIVE": 0})
55+
schema = make_executable_schema(type_defs, status_type)
56+
# Default enum values are now repaired automatically
57+
```
58+
59+
### Removed deprecated tracing & federation utilities
60+
61+
The following modules and functions have been removed:
62+
63+
- `ApolloTracingExtension` / `apollo_tracing_extension()` from `ariadne.contrib.tracing.apollotracing`
64+
- `OpenTracingExtension` / `opentracing_extension()` from `ariadne.contrib.tracing.opentracing`
65+
- `extend_federated_schema()` from `ariadne.contrib.federation.schema`
66+
- The `tracing` pip extra (`pip install ariadne[tracing]`) has been removed
67+
68+
**Migration (tracing):** Both Apollo Tracing and OpenTracing are archived projects. Migrate to OpenTelemetry using the `telemetry` extra:
69+
70+
```python
71+
# Before
72+
from ariadne.contrib.tracing.apollotracing import ApolloTracingExtension
73+
# or
74+
from ariadne.contrib.tracing.opentracing import OpenTracingExtension
75+
76+
# After
77+
pip install ariadne[telemetry]
78+
79+
from ariadne.contrib.tracing.opentelemetry import OpenTelemetryExtension
80+
```
81+
82+
**Migration (`extend_federated_schema`):** Use `graphql.extend_schema()` from graphql-core directly:
83+
84+
```python
85+
# Before
86+
from ariadne.contrib.federation.schema import extend_federated_schema
87+
88+
schema = extend_federated_schema(schema, type_defs)
89+
90+
# After
91+
from graphql import build_ast_schema, extend_schema, parse
92+
93+
schema = extend_schema(schema, parse(type_defs))
94+
```
95+
96+
### Renamed base handler classes
97+
98+
Base handler class names have been made consistent:
99+
100+
| Old Name | New Name |
101+
|----------|----------|
102+
| `GraphQLHandler` | `GraphQLHandlerBase` |
103+
| `GraphQLWebsocketHandler` | `GraphQLWebsocketHandlerBase` |
104+
105+
`GraphQLHttpHandlerBase` was already correctly named and is unchanged.
106+
107+
**Migration:** Find-and-replace your imports. This only affects users subclassing these base handlers.
108+
109+
```python
110+
# Before
111+
from ariadne.asgi.handlers import GraphQLHandler, GraphQLWebsocketHandler
112+
113+
class MyHandler(GraphQLHandler): ...
114+
class MyWSHandler(GraphQLWebsocketHandler): ...
115+
116+
# After
117+
from ariadne.asgi.handlers import GraphQLHandlerBase, GraphQLWebsocketHandlerBase
118+
119+
class MyHandler(GraphQLHandlerBase): ...
120+
class MyWSHandler(GraphQLWebsocketHandlerBase): ...
121+
```
122+
123+
### `convert_names_case` now handles digit boundaries
124+
125+
`convert_names_case` now inserts underscores at digit boundaries in lowercase names. Previously, names that were already lowercase were skipped entirely. Now the custom name converter is called for **all** fields, including already-lowercase ones.
126+
127+
Examples of changed behavior:
128+
129+
| GraphQL name | Before | After |
130+
|-------------|--------|-------|
131+
| `foobar19` | `foobar19` | `foobar_19` |
132+
| `test134` | `test134` | `test_134` |
133+
| `134test` | `134test` | `134_test` |
134+
135+
**Migration:** If you rely on the old behavior (no underscores at digit boundaries), pass a custom `name_converter` to `make_executable_schema`:
136+
137+
```python
138+
from ariadne import make_executable_schema
139+
140+
def my_name_converter(graphql_name: str, schema) -> str:
141+
# Your custom logic here — return the name unchanged
142+
# to preserve old behavior for digit boundaries
143+
return graphql_name
144+
145+
schema = make_executable_schema(
146+
type_defs, ..., name_converter=my_name_converter
147+
)
148+
```

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ Documentation is available [here](https://ariadnegraphql.org).
2424
| ---------- | ----------- |
2525
| [Ariadne](https://github.com/mirumee/ariadne) | Python library for implementing GraphQL servers using a schema-first approach. |
2626
| [Ariadne codegen](https://github.com/mirumee/ariadne-codegen) | GraphQL client code generator for Python. |
27-
| [Ariadne GraphQL modules](https://github.com/mirumee/ariadne-graphql-modules) | Ariadne package for implementing Ariadne GraphQL schemas using a modular approach. |
2827
| [Ariadne auth](https://github.com/mirumee/ariadne-auth) | A collection of authentication and authorization utilities for Ariadne. |
2928
| [Ariadne lambda](https://github.com/mirumee/ariadne-lambda) | Deploy Ariadne GraphQL applications as AWS Lambda functions. |
3029
| [Ariadne GraphQL proxy](https://github.com/mirumee/ariadne-graphql-proxy) | A GraphQL proxy for Ariadne that allows you to combine multiple GraphQL APIs into a single API. |

0 commit comments

Comments
 (0)