git.iko.soy/typeable/openapi3
on master help sign in
typeable/openapi3/CHANGELOG.md
367 lines 15 kB history raw
1Unreleased
2----------
43.2.2
5-----
7- Fix bug with infinite recursion in GToSchema [#37](https://github.com/biocad/openapi3/pull/37).
93.2.1
10-----
12- Support aeson-2.0.3.
13- Support GHC-9.2 (doctests still fail).
153.2.0
16-----
18- Support aeson-2 [#34](https://github.com/biocad/openapi3/pull/34).
19- Use `SecurityDefinitions` type for `_componentsSecuritySchemes`
20 [#32](https://github.com/biocad/openapi3/pull/32).
223.1.0
23-----
25- Use `format: date-time` for `ToParamSchema ZonedTime` instance (see
26 [#20](https://github.com/biocad/openapi3/pull/20)).
27- Support generating schema for any polymorphic types via `Typeable` (see
28 [#19](https://github.com/biocad/openapi3/pull/19)).
29- Allow `hashable-1.3.1`, prettify doctests (see [#18](https://github.com/biocad/openapi3/pull/18)).
313.0.2.0
32-------
34- Fix definition for HTTP security scheme (see [#10](https://github.com/biocad/openapi3/pull/10));
35- Fix error message in `exclusiveMaximum` / `exclusiveMinimum` validation (see
36 [#15](https://github.com/biocad/openapi3/pull/15));
383.0.1.0
39-------
41- Support polymorphic types in schema generator.
433.0.0
44-----
46- Switch to OpenAPI 3.0 specification.
482.6.1
49-----
51- More GHC-8.10 related cleanup, tighten lower bound on some dependencies.
52 (see [#216]( https://github.com/GetShopTV/swagger2/pull/216 ));
53- Add "format" field for uint32 and uint64
54 (see [#215]( https://github.com/GetShopTV/swagger2/pull/215 ));
562.6
57---
59- GHC 8.10 support (see [#210]( https://github.com/GetShopTV/swagger2/pull/210 ));
60- Move `aeson-pretty` to other dependencies (see [#206]( https://github.com/GetShopTV/swagger2/pull/206 ));
61- Merge OAuth2 scopes (see [#151]( https://github.com/GetShopTV/swagger2/pull/151 ));
632.5
64---
66Highlights:
67- Add instance for `TimeOfDay` (see [#196]( https://github.com/GetShopTV/swagger2/pull/196 ));
68- Add support for [`optics`](https://hackage.haskell.org/package/optics) (see [#200]( https://github.com/GetShopTV/swagger2/pull/200 ));
69- Slightly better validation errors (see [#195]( https://github.com/GetShopTV/swagger2/pull/195 ));
71Fixes and minor changes:
72- Minor cleanup (see [#194]( https://github.com/GetShopTV/swagger2/pull/194 ));
73- Allow base-4.13 and other GHC-8.8 related stuff (see [#198]( https://github.com/GetShopTV/swagger2/pull/198 ));
74- Fix `stack.yaml` (see [#201]( https://github.com/GetShopTV/swagger2/pull/201 ));
762.4
77---
79- Allow hashable-1.3, semigroups-0.19, network-3.1, time-1.9, generics-sop-0.5
80- Tags aren't sorted
81 (see [#165](https://github.com/GetShopTV/swagger2/issues/165))
82- Schema type is optional
83 (see [#138](https://github.com/GetShopTV/swagger2/issues/138), [#164](https://github.com/GetShopTV/swagger2/pull/164))
84- Take concrete 'Proxy' as argument
85 (see [#180](https://github.com/GetShopTV/swagger2/pull/180))
86- GHC-8.8 preparations
882.3.1.1
89-------
91- Allow `network-3.0`
932.3.1
94-----
96- Add a quickcheck generator for aeson Values that match a swagger schema
97 (see [#162](https://github.com/GetShopTV/swagger2/pull/162))
98- Add `ToParamSchema` instance for `SetCookie`
99 (see [#173](https://github.com/GetShopTV/swagger2/pull/173))
100- Make nullary schemas valid
101 (see [#168](https://github.com/GetShopTV/swagger2/pull/168))
1032.3.0.1
104-------
106- Support GHC-8.6
1082.3
109---
111Major changes:
113- Add support for `additionalProperties` with `Bool` value (see [#159](https://github.com/GetShopTV/swagger2/pull/159));
114- Add `ToSchema` `Object` instance (for aeson's `Object`) (see [`d72466a`](https://github.com/GetShopTV/swagger2/commit/d72466a));
116Dependencies and CI:
118- Aeson 1.4 (see [#158](https://github.com/GetShopTV/swagger2/pull/158));
119- Update .travis.yml (see [#160](https://github.com/GetShopTV/swagger2/pull/160));
120- Allow network 2.7 (see [#155](https://github.com/GetShopTV/swagger2/pull/155));
121- Allow lens-4.17 (see [#161](https://github.com/GetShopTV/swagger2/pull/161));
1232.2.2
124-----
126* Add `ToSchema Version` instance
127* Use base-compat-batteries (0.10)
128* PVP bounds
1302.2.1
131-----
133* Add `Semigroup` instances
134* GHC-8.4 compatibility
135* `Schema (NonEmpty a) instance (see [#141](https://github.com/GetShopTV/swagger2/pull/141))
136* Fix optional property for unary records (see [#142](https://github.com/GetShopTV/swagger2/issues/142))
137* Add `fromAesonOptions` helper (see [#146](https://github.com/GetShopTV/swagger2/issues/139))
138* Fix non-termination when using `datatypeNameModifier` with recursive data types (see [#132](https://github.com/GetShopTV/swagger2/issues/132))
1402.2
141---
143* Treat unknown properties as validation errors in `validateToJSON` (see [#126](https://github.com/GetShopTV/swagger2/pull/126));
144* Add `validateJSON` and `validateJSONWithPatternChecker` to validate JSON `Value` against `Schema` without classes (see [#126](https://github.com/GetShopTV/swagger2/pull/126));
145* Add more `Schema` helpers (see [#126](https://github.com/GetShopTV/swagger2/pull/126)):
146 * `genericNameSchema` — to give a custom schema `Generic`-based name;
147 * `genericDeclareNamedSchemaNewtype` — to derive `NamedSchema` for `newtype`s;
148 * `declareSchemaBoundedEnumKeyMapping` — to derive more specific `Schema` for maps with `Bounded` `Enum` keys;
149* Add a few tests with invalid `Schema`.
1512.1.6
152-----
154* Add `ToParamSchema` and `ToSchema` instances for `Fixed` (see [#121](https://github.com/GetShopTV/swagger2/pull/121)) and `Natural` (see [#123](https://github.com/GetShopTV/swagger2/pull/123));
155* Fix instance for `NominalDiffTime` (see [#121](https://github.com/GetShopTV/swagger2/pull/121));
156* Fix build for `aeson-1.2.2.0` (see [#125](https://github.com/GetShopTV/swagger2/pull/125)).
1582.1.5
159-----
161* Type error by default when deriving Generic-based instances for mixed sum types (see [#118](https://github.com/GetShopTV/swagger2/pull/118));
162* Adjust `allOf` to accept referenced schemas (see [#119](https://github.com/GetShopTV/swagger2/issues/119));
163* Add instances for `Identity` (see [#116](https://github.com/GetShopTV/swagger2/pull/116));
164* Add Gitter chat badge (see [#114](https://github.com/GetShopTV/swagger2/pull/114)).
1662.1.4.1
167-------
169* GHC-8.2 support (see [#95](https://github.com/GetShopTV/swagger2/issues/95), [#106](https://github.com/GetShopTV/swagger2/pull/106) and [#108](https://github.com/GetShopTV/swagger2/pull/108));
170* Documentation corrections (see [#105](https://github.com/GetShopTV/swagger2/pull/105));
171* Allow `generics-sop-0.3` (see [#102](https://github.com/GetShopTV/swagger2/pull/102));
172* Fix `ToSchema` example in docs (see [#104](https://github.com/GetShopTV/swagger2/pull/104)).
1742.1.4
175-----
177* Add `liftDeclare` (see [#100](https://github.com/GetShopTV/swagger2/pull/100));
178* Add `MonadDeclare` instances for all monad transformers (see [#100](https://github.com/GetShopTV/swagger2/pull/100)).
1802.1.3
181-----
183* Add [`UUID`](http://hackage.haskell.org/package/uuid-types/docs/Data-UUID-Types.html#t:UUID) instances (see [#81](https://github.com/GetShopTV/swagger2/pull/81)).
184* Add [`TypeError`](https://hackage.haskell.org/package/base-4.9.0.0/docs/GHC-TypeLits.html#g:4) `ToSchema` and `ToParamSchema ByteString` instances (see [#78](https://github.com/GetShopTV/swagger2/pull/78))
185* Improve documentation for generic sum type instance derivation (see [#75](https://github.com/GetShopTV/swagger2/pull/75))
186* Compile warning free (see [#82](https://github.com/GetShopTV/swagger2/pull/82))
1882.1.2.1
189-------
191* Bug fix previous release
1932.1.2
194---
196* Minor changes:
197 * Support `aeson-1.0.0.0` (see [#70](https://github.com/GetShopTV/swagger2/pull/70)).
1992.1.1
200---
202* Minor changes:
203 * Proper `Schema` examples for `Char`, `Day`, `LocalTime`, `ZonedTime` and `UTCTime`.
2052.1
206---
208* Major changes:
209 * Use `InsOrdHashMap` to preserve insertion order for endpoints and definitions (see [#56](https://github.com/GetShopTV/swagger2/pull/56));
210 * Add support for GHC 8.0 (see [#65](https://github.com/GetShopTV/swagger2/pull/65)).
2122.0.2
213---
215* Fixes:
216 * Fix `additionalProperties` to allow references;
217 * Fix `ToSchema` instances for `Map` and `HashMap` (prevent infinite recursion for recursive values).
2192.0.1
220---
222* Fixes:
223 * Re-export `Pattern` synonym from `Data.Swagger`;
224 * Documentation fixes.
2262.0
227---
229* Major changes:
230 * GHC 7.8 support (see [#49](https://github.com/GetShopTV/swagger2/pull/49));
231 * Switch to classy field lenses (see [#41](https://github.com/GetShopTV/swagger2/pull/41));
232 * Add `Data.Swagger.Schema.Validation` (see [#18](https://github.com/GetShopTV/swagger2/pull/18));
233 * Add `Data.Swagger.Operation` with helpers (see [#50](https://github.com/GetShopTV/swagger2/pull/50));
234 * Add `IsString` instances for some types (see [#47](https://github.com/GetShopTV/swagger2/pull/47));
235 * Add helpers to sketch `Schema` from JSON (see [#48](https://github.com/GetShopTV/swagger2/pull/48)).
237* Minor changes:
238 * Make `NamedSchema` a `data` rather than `type` (see [#42](https://github.com/GetShopTV/swagger2/pull/42));
239 * Change `Definitions` to `Definitions Schema`;
240 * Add schema templates for `"binary"`, `"byte"` and `"password"` formats (see [63ed597](https://github.com/GetShopTV/swagger2/commit/63ed59736dc4f942f0e2a7d668d7cee513fa9eaf));
241 * Add `Monoid` instance for `Contact`;
242 * Change `tags` to be `Set` rather than list.
244* Fixes:
245 * Fix schema for `()` and nullary constructors (see [ab65c4a](https://github.com/GetShopTV/swagger2/commit/ab65c4a48253c34f8a88221a53dc97bf5e6e8d29));
246 * Fix `Operation` `FromJSON` instance to allow missing `tags` and `parameters` properties.
2481.2.1
249---
251* Minor changes:
252 * Change `_SwaggerItemsPrimitive` type from a `Prism'` to a more restrictive `Review`-like `Optic'`.
254* Fixes:
255 * Fix build for GHC 8.0-rc1.
2571.2
258---
259* Minor changes (see [#36](https://github.com/GetShopTV/swagger2/pull/36)):
260 * Change default `ToSchema` instance for unit data types (i.e. types with one nullable constructor like `data Unit = Unit`):
261 now these types are treated like sum types with only one alternative;
262 * Add generic `ToParamSchema` instance for unit data types;
263 * Add `items: []` to schema for `()` (making it a valid schema).
265* Fixes:
266 * Do not omit `items: []` from `Schema` JSON;
267 * Do not generate unused definitions for nested `newtype`s (see [#38](https://github.com/GetShopTV/swagger2/pull/38)).
2691.1.1
270---
271* Fixes:
272 * `CollectionFormat Param` -> `CollectionFormat ParamOtherSchema`;
273 this change was necessary after putting `CollectionFormat` to `SwaggerItems`.
2751.1
276---
277* Major changes:
278 * Put `CollectionFormat` in one place (see [`3cc860d`](https://github.com/GetShopTV/swagger2/commit/3cc860dd3f002ab984f4d0e4ce1d1799f985832e)).
280* Minor changes:
281 * Use Swagger formats for `Int32`, `Int64`, `Float`, `Double`, `Day` and `ZonedTime` (see [#32](https://github.com/GetShopTV/swagger2/pull/32));
282 * Export `HeaderName`, `TagName`, `HttpStatusCode` type synonyms;
283 * Add `ToParamSchema` instances for `[a]`, `Set a` and `HashSet a`;
284 * Add `Monoid` instances for `Header` and `Example`.
286* Fixes:
287 * Use overwrite strategy for `HashMap` `SwaggerMonoid` instances by default.
2891.0
290---
291* Major changes:
292 * Add `Data` and `Typeable` instances for `Data.Swagger` types;
293 * Merge `ParamType`/`ItemsType`/`SchemaType` into `SwaggerType` GADT;
294 * Merge collection format types into `CollectionFormat` GADT;
295 * Introduce `SwaggerItems` GADT, replacing `Items` and `SchemaItems` in `ParamSchema` (see [#24](https://github.com/GetShopTV/swagger2/pull/24));
296 * Move type, format and items fields to `ParamSchema` (former `SchemaComon`);
297 * Prepend reference path automatically (see [commit 49d1fad](https://github.com/GetShopTV/swagger2/commit/49d1fadd2100644e70c442667180d0d73e107a5f))
298 and thus remove `"#/definitions/"` from user code, leaving much clearer `Reference "Name"`;
299 * Change `Data.Swagger.Schema` (see [#19](https://github.com/GetShopTV/swagger2/pull/19)):
300 * Change the only method of `ToSchema` to `declareNamedSchema` which should produce a `NamedSchema`
301 along with a list of schema definitions used to produce it;
302 * Add `declareSchema`, `declareSchemaRef`;
303 * Replace `genericTo*` helpers with `genericDeclare*` helpers;
304 * Add `paramSchemaTo[Named]Schema` helpers to facilitate code reuse for primitive schemas;
305 * Add helpers for inlining `Schema` references dynamically (see [#23](https://github.com/GetShopTV/swagger2/pull/23));
306 * Add `ToParamSchema` class (see [#17](https://github.com/GetShopTV/swagger2/pull/17)) with
307 * generic default implementation and
308 * instances for some base types compliant with `http-api-data` instances;
309 * Add `Data.Swagger.Declare` module with
310 * `DeclareT` monad transformer;
311 * `MonadDeclare` type class;
312 * various helpers;
313 * Rename parameter-related types:
314 * `Parameter` -> `Param`;
315 * `ParameterSchema` -> `ParamAnySchema`;
316 * `ParameterOtherSchema` -> `ParamOtherSchema`;
317 * `ParameterLocation` -> `ParamLocation`;
318 * `SchemaCommon` -> `ParamSchema`;
319 * `parameter*` fields renamed to `param*` fields;
320 * `schemaCommon*` fields renamed to `paramSchema*` fields;
321 * `HasSchemaCommon` -> `HasParamSchema`.
323* Minor changes:
324 * Replace TH-generated JSON instances with `Generic`-based (see [#25](https://github.com/GetShopTV/swagger2/pull/25));
325 * Drop `template-haskell` dependency;
326 * Omit empty array/object properties from `toJSON` output ([#22](https://github.com/GetShopTV/swagger2/pull/22));
327 * Remove `minLength` property from schemas for `time` types;
328 * Move `SchemaOptions` to `Data.Swagger.SchemaOptions`;
329 * Remove `useReferences` from `SchemaOptions` (see [#23](https://github.com/GetShopTV/swagger2/pull/23));
330 * Place all internal submodules under `Data.Swagger.Internal`;
331 * Better documentation (see [#26](https://github.com/GetShopTV/swagger2/pull/26)).
3330.4.1
334---
335* Fixes:
336 * Use `PackageImports` for `Data.HashSet` to avoid test failure on stackage (see [#15](https://github.com/GetShopTV/swagger2/issues/15));
337 * Add an upper version bound for `aeson` due to `aeson-0.10.0.0` bug (see [bos/aeson#293](https://github.com/bos/aeson/issues/293));
338 * Switch to Cabal-based multi GHC Travis config.
3400.4
341---
342* Remove `Swagger`/`swagger` prefixes;
343* Add `ToSchema` type class with default generic implementation;
344* Add configurable generic `ToSchema` helpers;
345* Add `doctest` test suite;
346* Fixes:
347 * Fix `HasSchemaCommon` instance for `Schema`;
348 * Change `minimum`, `maximum` and `multipleOf` properties to be any number,
349 not necessarily an integer;
350 * Fix all warnings.
3520.3
353---
354* Fixes:
355 * Fix `SwaggerMonoid Text` instance;
356 * Wrap `Bool` in `Maybe` everywhere;
357 * These changes make all `Data.Swagger` `Monoid` instances obey monoid laws
358 (previously right identity law was broken by some instances).
3600.2
361---
362* Add `Data.Swagger.Lens`;
363* Support references;
364* Fixes:
365 * Fix `FromJSON SwaggerHost` instance;
366 * Add missing `Maybe`s for field types;
367 * Decode petstore `swagger.json` successfully.