|
1 | 1 | # CHANGELOG |
2 | 2 |
|
3 | | -## 0.15.2 (2025-08-28) |
| 3 | +All notable unreleased changes to this project will be documented in this file. |
4 | 4 |
|
5 | | -- Changed code typing to satisfy MyPy 1.11.0 version |
6 | | -- Added support for `async_client=false` to work with `enable_custom_operations=true` |
7 | | -- Fix propagating `convert_to_snake_case` to clients during package generation |
8 | | -- Added ClientForwardRefsPlugin to standard plugins. |
9 | | -- Re-added model_rebuild calls for input types with forward references. |
10 | | -- Fixed fragments on interfaces being omitted from generated client. |
11 | | -- Fixed @include directive result type when using convert_to_snake_case option. |
12 | | -- Added Custom query builder feature. |
| 5 | +For released versions, see the [Releases](https://github.com/mirumee/ariadne-codegen/releases) page. |
13 | 6 |
|
14 | | -## 0.14.0 (2024-07-17) |
| 7 | +## Unreleased |
15 | 8 |
|
16 | | -- Added `ClientForwardRefsPlugin` to standard plugins. |
17 | | -- Re-added `model_rebuild` calls for input types with forward references. |
18 | | -- Fixed fragments on interfaces being omitted from generated client. |
19 | | -- Fixed `@Include` directive result type when using `convert_to_snake_case` option. |
20 | | -- Added Custom query builder feature. |
| 9 | +### ⚠️ Breaking Changes |
21 | 10 |
|
| 11 | +### 📚 Documentation |
22 | 12 |
|
23 | | -## 0.13.0 (2024-03-4) |
24 | | - |
25 | | -- Fixed `str_to_snake_case` utility to capture fully capitalized words followed by an underscore. |
26 | | -- Re-added `model_rebuild` calls for models with forward references. |
27 | | -- Fixed potential name conflicts between field args and generated client's method code. |
28 | | - |
29 | | - |
30 | | -## 0.12.0 (2024-02-05) |
31 | | - |
32 | | -- Fixed `graphql-transport-ws` protocol implementation not waiting for the `connection_ack` message on new connection. |
33 | | -- Fixed `get_client_settings` mutating `config_dict` instance. |
34 | | -- Added support to `graphqlschema` for saving schema as a GraphQL file. |
35 | | -- Restored `model_rebuild` calls for top level fragment models. |
36 | | - |
37 | | - |
38 | | -## 0.11.0 (2023-12-05) |
39 | | - |
40 | | -- Removed `model_rebuild` calls for generated input, fragment and result models. |
41 | | -- Added `NoReimportsPlugin` that makes the `__init__.py` of generated client package empty. |
42 | | -- Added `include_all_inputs` config flag to generate only inputs used in supplied operations. |
43 | | -- Added `include_all_enums` config flag to generate only enums used in supplied operations. |
44 | | -- Added `operationName` to payload sent by generated client's methods. |
45 | | -- Fixed base clients to pass `mypy --strict` without installed optional dependencies. |
46 | | -- Renamed `GraphQlClientInvalidResponseError` to `GraphQLClientInvalidResponseError` (breaking change). |
47 | | -- Changed base clients to raise `GraphQLClientGraphQLMultiError` for payloads with `errors` key but no `data` (breaking change). |
48 | | - |
49 | | - |
50 | | -## 0.10.0 (2023-11-15) |
51 | | - |
52 | | -- Fixed generating results for nullable fields with nullable directives. |
53 | | -- Changed `include_comments` option to accept enum value, changed default to `"stable"`, deprecated boolean support. Added `get_file_comment` plugin hook. |
54 | | -- Changed `str_to_snake_case` utility to correctly handle capitalized words. |
55 | | -- Digits in Python names are now preceded by an underscore (breaking change). |
56 | | -- Fixed parsing of unions and interfaces to always add `__typename` to generated result models. |
57 | | -- Added escaping of enum values which are Python keywords by appending `_` to them. |
58 | | -- Fixed `enums_module_name` option not being passed to generators. |
59 | | -- Added additional base clients supporting the Open Telemetry tracing. Added `opentelemetry_client` config option. |
60 | | -- Changed generated client's methods to pass `**kwargs` to base client's `execute` and `execute_ws` methods (breaking change for custom base clients). |
61 | | -- Added `operation_definition` argument to `generate_client_method` plugin hook. |
62 | | -- Added `ExtractOperationsPlugin` that extracts operation strings from client methods to separate module. |
63 | | -- Added Python 3.12 to tested versions. |
64 | | - |
65 | | - |
66 | | -## 0.9.0 (2023-09-11) |
67 | | - |
68 | | -- Fixed generating operation string for nested inline fragments. |
69 | | -- Removed scalars module. Changed generated models and client to use annotated types for custom scalars. Removed `scalars_module_name` option. Removed `generate_scalars_module`, `generate_scalars_cod`, `generate_scalar_annotation` and `generate_scalar_imports` plugin hooks. |
70 | | -- Removed pydantic warnings for fields with `model_` prefix. |
71 | | -- Fixed generating result types with nullable directives. |
72 | | - |
73 | | - |
74 | | -## 0.8.0 (2023-08-22) |
75 | | - |
76 | | -- Added support for `Upload` scalar. Added support for file uploads to `AsyncBaseClient` and `BaseClient`. |
77 | | -- Added validation of defined operations against the schema. |
78 | | -- Removed `mixin` directive from fragment string included in operation string sent to server. |
79 | | -- Added support for `mixin` directive on fragments definitions. |
80 | | -- Added support for fragments defined on subtype of field's type. |
81 | | -- Added default representation for a field name consisting only of underscores. |
82 | | -- Changed generated client and models to use pydantic v2. |
83 | | -- Changed custom scalars implementation to utilize pydantic's `BeforeValidator` and `PlainSerializer`. Added `scalars_module_name` option. Replaced `generate_scalars_parse_dict` and `generate_scalars_serialize_dict` with `generate_scalar_annotation` and `generate_scalar_imports` plugin hooks. |
84 | | -- Unified annotations in generated client to be compatible with python < 3.9. |
85 | | -- Fixed generating default values of input types from remote schemas. |
86 | | -- Changed generating of input and result field names to add `_` to names reserved by pydantic. |
87 | | - |
88 | | - |
89 | | -## 0.7.1 (2023-06-06) |
90 | | - |
91 | | -- Fixed `AsyncBaseClient` and `BaseClient` to send `Content-Type` header with requests. |
92 | | - |
93 | | - |
94 | | -## 0.7.0 (2023-06-01) |
95 | | - |
96 | | -- Added support for subscriptions as async generators. |
97 | | -- Changed how fragments are handled to generate separate module with fragments as mixins. |
98 | | -- Fixed `ResultTypesGenerator` to trigger `generate_result_class` for each result model. |
99 | | -- Changed processing of models fields to trim leading underscores. |
100 | | -- Added `ShorterResultsPlugin` to standard plugins. |
101 | | -- Fixed handling of inline fragments inside other fragments. |
102 | | -- Changed generated unions to use pydantic's discriminated unions feature. |
103 | | -- Replaced HTTPX's `json=` serializer for query payloads with pydantic's `pydantic_encoder`. |
104 | | -- Removed `mixin` directive from operation string sent to server. |
105 | | -- Fixed `ShorterResultsPlugin` that generated faulty code for discriminated unions. |
106 | | -- Changed generator to ignore unused fragments which should be unpacked in queries. |
107 | | -- Changed type hints for parse and serialize methods of scalars to `typing.Any`. |
108 | | -- Added `process_schema` plugin hook. |
109 | | - |
110 | | - |
111 | | -## 0.6.0 (2023-04-18) |
112 | | - |
113 | | -- Changed logic how custom scalar imports are generated. Deprecated `import_` key. |
114 | | -- Added escaping of GraphQL names which are Python keywords by appending `_` to them. |
115 | | -- Fixed parsing of list variables. |
116 | | -- Changed base clients to remove unset arguments and input fields from variables payload. |
117 | | -- Added `process_name` plugin hook. |
118 | | - |
119 | | - |
120 | | -## 0.5.0 (2023-04-05) |
121 | | - |
122 | | -- Added generation of GraphQL schema's Python representation. |
123 | | -- Fixed annotations for lists. |
124 | | -- Fixed support of custom operation types names. |
125 | | -- Unlocked versions of black, isort, autoflake and dev dependencies |
126 | | -- Added `remote_schema_verify_ssl` option. |
127 | | -- Changed how default values for inputs are generated to handle potential cycles. |
128 | | -- Fixed `BaseModel` incorrectly calling `parse` and `serialize` methods on entire list instead of its items for `list[Scalar]`. |
129 | | - |
130 | | - |
131 | | -## 0.4.0 (2023-03-20) |
132 | | - |
133 | | -- Fixed generating models from interfaces with inline fragments. |
134 | | -- Added default `None` values for generated methods optional arguments. |
135 | | -- Added basic plugin system. |
136 | | -- Added `InitFileGenerator`, `EnumsGenerator`, `ClientGenerator` and `ArgumentsGenerator` plugin hooks. |
137 | | -- Added `InputTypesGenerator` and `ResultTypesGenerator` plugin hooks. |
138 | | -- Added `ScalarsDefinitionsGenerator` and `PackageGenerator` plugin hooks. |
139 | | -- Added support for `[tool.ariadne-codegen]` section key. Deprecated `[ariadne-codegen]`. |
140 | | -- Added support for environment variables to remote schema headers values. |
141 | | -- Added `--config` argument to `ariadne-codegen` script, to support reading configuration from custom path. |
142 | | - |
143 | | - |
144 | | -## 0.3.0 (2023-02-21) |
145 | | - |
146 | | -- Changed generated code to pass `mypy --strict`. |
147 | | -- Changed base clients to get full url from user. |
148 | | -- Added support for custom scalars. |
149 | | - |
150 | | - |
151 | | -## 0.2.1 (2023-02-13) |
152 | | - |
153 | | -- Fixed incorrectly raised exception when using custom scalar as query argument type. |
154 | | - |
155 | | - |
156 | | -## 0.2.0 (2023-02-02) |
157 | | - |
158 | | -- Added `remote_schema_url` and `remote_schema_headers` settings to support reading remote schemas. |
159 | | -- Added `headers` argument to `__init__` methods of `BaseClient` and `AsyncBaseClient`. |
| 13 | +### 🛠️ Build System |
0 commit comments