forked from fern-api/fern
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathversions.yml
More file actions
431 lines (377 loc) · 13.3 KB
/
versions.yml
File metadata and controls
431 lines (377 loc) · 13.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
# For unreleased changes, use unreleased.yml
- version: 1.11.2
changelogEntry:
- summary: |
Update to support IR version 62.6.0 with new WebSocketMessage.methodName field,
webhook response descriptions, and OpenAPI explode parameter support.
type: chore
createdAt: "2025-12-18"
irVersion: 62
- version: 1.11.1
changelogEntry:
- summary: Fix forward ref detection for complex circular type cycles.
type: fix
createdAt: "2025-12-10"
irVersion: 61
- version: 1.11.0
changelogEntry:
- summary: |
Add `coerce_numbers_to_str` option to `pydantic_config`. When enabled, numeric types (int, float, Decimal)
will be coerced to strings during validation. This is useful for APIs that return numeric values as strings.
type: feat
createdAt: "2025-12-09"
irVersion: 61
- version: 1.10.2
changelogEntry:
- summary: |
Fix Python 3.11+ enum compatibility by using StrEnum for Python >= 3.11 and the (str, Enum)
mixin for older versions. This resolves compatibility issues with Python 3.11's stricter
enum mixin handling.
type: fix
createdAt: "2025-12-08"
irVersion: 61
- version: 1.10.1
changelogEntry:
- summary: Fix discriminated union Field(discriminator=...) and UnionMetadata(discriminant=...) to use Python field names instead of JSON aliases for Pydantic v2 compatibility.
type: fix
createdAt: "2025-11-24"
irVersion: 61
- version: 1.10.0
changelogEntry:
- summary: Add pytest-xdist for parallel test execution and upgrade CI Python version to 3.9 in generated SDKs.
type: feat
createdAt: "2025-11-19"
irVersion: 61
- version: 1.9.4
changelogEntry:
- summary: Bump generator CLI version to publish new Docker image.
type: chore
createdAt: "2025-11-19"
irVersion: 61
- version: 1.9.3
changelogEntry:
- summary: Fix circular reference issue for recursive types and unions.
type: fix
createdAt: "2025-11-14"
irVersion: 61
- version: 1.9.2
changelogEntry:
- summary: Resolve PydanticUserError for mutually recursive models in Pydantic v2.
type: fix
createdAt: "2025-11-12"
irVersion: 61
- version: 1.9.1
changelogEntry:
- summary: Add back F401-ignored imports for circular references.
type: fix
createdAt: "2025-11-10"
irVersion: 61
- version: 1.9.0
changelogEntry:
- summary: Add automatic discriminated union support using Pydantic's Field(discriminator=...) to improve serialization performance. Benchmarks show a 2x speedup by eliminating sequential variant attempts and enabling O(1) variant selection.
type: feat
createdAt: "2025-11-10"
irVersion: 61
- version: 1.8.2
changelogEntry:
- summary: Upgrade to IRv61
type: chore
createdAt: "2025-10-27"
irVersion: 61
- version: 1.8.1
changelogEntry:
- summary: Fix pydantic model alias generator to correctly serialize wrapped aliases in pydantic v2.
type: fix
createdAt: "2025-10-27"
irVersion: 60
- version: 1.8.0
changelogEntry:
- summary: |
Add support for setting the recursion limit above the default of 1000.
Also removes unused imports that were previously F401-ignored.
type: feat
createdAt: "2025-10-24"
irVersion: 60
- version: 1.7.3
changelogEntry:
- summary: Escape backslashes in docstrings to prevent SyntaxWarning for invalid escape sequences.
type: fix
createdAt: "2025-10-17"
irVersion: 60
- version: 1.7.2
changelogEntry:
- summary: Fix publishing by removing defunct poetry shell command.
type: chore
createdAt: "2025-10-02"
irVersion: 60
- version: 1.7.1
changelogEntry:
- summary: Fix pydantic `v1_on_v2` export of non-existent `IS_PYDANTIC_V2` variable.
type: fix
createdAt: "2025-09-25"
irVersion: 60
- version: 1.7.0
changelogEntry:
- summary: |
Bumped IR version to 60.
type: chore
createdAt: "2025-09-23"
irVersion: 60
- version: 1.6.1
changelogEntry:
- summary: |
Union member self-referencing dependencies are now correctly imported and forward referenced.
This fixes compatibility with Pydantic >=2.11.0.
type: fix
createdAt: "2025-09-05"
irVersion: 59
- version: 1.6.0
changelogEntry:
- summary: Bumped IR version to 59.
type: chore
createdAt: "2025-08-20"
irVersion: 59
- version: 1.5.0
changelogEntry:
- summary: |
Bump to v58 of IR.
type: chore
createdAt: "2025-05-27"
irVersion: 58
- version: 1.4.8
createdAt: "2025-05-07"
irVersion: 57
changelogEntry:
- type: internal
summary: |
Update the IR to v57.
- version: 1.4.7
createdAt: "2024-10-11"
irVersion: 53
changelogEntry:
- type: fix
summary: |
The snippet writer now correctly handles base64 strings.
- version: 1.4.7-rc1
createdAt: "2024-09-26"
irVersion: 53
changelogEntry:
- type: fix
summary: |
Pydantic utilities now correctly handles cases where you have a Pydantic model, with a list of pydantic models as a field, where those models have literals.
Effectively, `deep_union_pydantic_objects` now handles lists of objects and merges them appropriately.
- version: 1.4.7-rc0
createdAt: "2024-09-23"
irVersion: 53
changelogEntry:
- type: fix
summary: |
When leveraging the `include_union_utils` configuration flag, the Pydantic models will no longer include transitive dependencies within
`update_forward_ref` calls, since these should not be necessary. This effectively scopes back the changes introduced in 4.0.0-rc5, which included
changes to improve circular reference handling in Pydantic models.
- version: 1.4.6
createdAt: "2024-09-09"
irVersion: 53
changelogEntry:
- type: fix
summary: Default new pydantic alias flag to true as it is a breaking change.
- version: 1.4.5
createdAt: "2024-09-06"
irVersion: 53
changelogEntry:
- type: chore
summary: Remove Pydantic field aliases and leverage an internal representation
fixed:
- >-
Pydantic field aliases are removed and replaced with an internal
representation. This allows for more robust handling of field aliases
and prevents issues with Pydantic V2 and mypy.
Previously, you'd have for V1 and V2 compatibility in Pydantic, you'd want to conditionally apply the config class within
the base model, however this would lead to mypy errors when filling out a model with it's field alias. To solve this, We
used the deprecated `class Config`, regardless of the Pydantic version to satisfy mypy, which lead to warnings in the console.
Now, we've removed the field aliases and replaced them with an internal representation, which allows us to avoid pydantic config altogether.
If you'd like to disable this feature, you can set `use_pydantic_field_aliases` to `true` in your configuration, which will preserve the existing behavior.
To maintain parity with pre-3.11.0 behavior, update the flag to `true`:
```yaml
- name: fernapi/fern-pydantic-model
version: 1.4.5
config:
use_pydantic_field_aliases: true
```
- >-
Pydantic V2 `.dict` calls are updated to be back to pre-3.10.4 logic.
This is fix a regression where nested literals were being omitted due to the Pydantic V2 serializers not respecting the recursive .dict logic, as
Pydantic V2 shells out `model_dump` calls to Rust library and serializers, as opposed to recursively calling `model_dump`.
It is expected that performance will not be degraded given the Rust-based serializers have optimized performance, compared to the Pydantic V1 .dict approach.
- version: 1.4.4
createdAt: "2024-08-28"
irVersion: 53
changelogEntry:
- type: fix
summary: When not leveraging mock integration tests, still run pytest over everything, not a specific directory.
# ===== Migrated versions =====
- version: 1.4.3
createdAt: "2024-08-16"
changelogEntry:
- type: fix
summary: >-
Upgrade intermediate representation dependency to safely parse null
unknown types.
irVersion: 53
- version: 1.4.2
createdAt: "2024-08-14"
changelogEntry:
- type: chore
summary: Improve performance of Pydantic `.dict` calls
changed:
- >-
`.dict` performance is improved, consolidating to a single call to
Pydantic's `.dict` instead of 2 in attempts to remove unset optional
values.
irVersion: 53
- version: 1.4.1
createdAt: "2024-08-13"
changelogEntry:
- type: fix
summary: Unions with utils now update forward refs again
irVersion: 53
- version: 1.4.0
createdAt: "2024-08-06"
changelogEntry:
- type: feat
summary: Exposes `package_name` configuration option
added:
- >-
Exposes `package_name` configuration option for pydantic models. This
field controls the package from which users will import your client,
for example, the following config would allow users to use: `from
my_custom_package import Client`
irVersion: 53
- version: 1.3.1
createdAt: "2024-08-05"
changelogEntry:
- type: fix
summary: Auto-completion for unions leveraging union utils now works as expected.
fixed:
- >-
The root type for unions with visitors now has it's parent typed
correctly. This allows auto-complete to work once again on the union
when it's nested within other pydantic models.
irVersion: 53
- version: 1.3.0
createdAt: "2024-08-05"
changelogEntry:
- type: feat
summary: Generated code now respects the pydantic version configuration flag.
changed:
- >-
The generated server code now respects the pydantic version flag,
generating V1 only code and V2 only code if specified. If not, the
server is generated as it is today, with compatibility for BOTH
Pydantic versions. This cleans up the generated code, and brings back
features liked wrapped aliases and custom root validators for V1-only
servers.
irVersion: 53
- version: 1.2.0
createdAt: "2024-08-04"
changelogEntry:
- type: internal
summary: Generator code now uses Pydantic V2, no changes to generated code.
changed:
- >-
The generator has now been upgraded to use Pydantic V2 internally.
Note that there is no change to the generated code, however by
leveraging Pydantic V2 you should notice an improvement in `fern
generate` times.
irVersion: 53
- version: 1.1.0-rc0
createdAt: "2024-07-31"
changelogEntry:
- type: internal
summary: The generator now consumes IRv53.
irVersion: 53
- version: 1.0.0-rc0
createdAt: "2024-07-16"
changelogEntry:
- type: break
summary: >-
The generated models now support Pydantic V2 outright, it no longer uses
`pydantic.v1` models.
changed:
- >-
The generated models now support Pydantic V2 outright, it no longer
uses `pydantic.v1` models.
- >-
Public fields previously prefixed with `_` are now prefixed with `f_`
(Pydantic V2 does not allow for `_` prefixes on public fields and
Python does not allow for a numeric prefix)
removed:
- wrapped aliases outside of Pydantic V1
- custom root validators outside of Pydantic V1
irVersion: 49
- version: 0.10.0-rc0
createdAt: "2024-06-24"
changelogEntry:
- type: internal
summary: The generator now consumes IRV49.
irVersion: 49
- version: 0.9.1
createdAt: "2024-06-19"
changelogEntry:
- type: internal
summary: The generator now consumes IRV46.
irVersion: 46
- version: 0.9.0
createdAt: "2024-05-09"
changelogEntry:
- type: internal
summary: Release Generator
irVersion: 39
- version: 0.9.0-rc1
createdAt: "2024-04-22"
changelogEntry:
- type: internal
summary: The generator now consumes IRV39.
irVersion: 39
- version: 0.9.0-rc0
createdAt: "2024-01-29"
changelogEntry:
- type: internal
summary: The generator now consumes IRV38.
- type: break
summary: The generator no longer supports Python 3.7
removed:
- The generator no longer supports Python 3.7
- The `backports` dependency has been removed
irVersion: 38
- version: 0.8.1-rc0
createdAt: "2024-01-29"
changelogEntry:
- type: fix
summary: >-
Increase allowed recursion depth to account for highly nested and
complex examples.
fixed:
- >-
Recursion depth is increased to allow for highly nested and complex
examples, this is a temporary solution while the example datamodel is
further refined.
irVersion: 31
- version: 0.8.0-rc0
createdAt: "2024-01-28"
changelogEntry:
- type: fix
summary: The SDK now better handles cyclical references.
fixed:
- >-
The SDK now better handles cyclical references. In particular,
cyclical references are tracked for undiscriminated unions, and
update_forward_refs is always called with object references.
irVersion: 31
- version: 0.7.7
createdAt: "2024-01-21"
changelogEntry:
- type: internal
summary: Initialize the changelog
irVersion: 31