Commit Graph

76 Commits

Author SHA1 Message Date
mniip
f4fd16d247
Naming changes (#117)
* Rename openapi-diff -> comparest

Rename OpenAPI.Checker -> Data.OpenApi.Compare

* Tweak emojis used in reports

* Shuffle imports

* Fix workflow

* Reuse nix

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-08-16 13:41:22 +03:00
iko
c7159b1f76
GitHub actions (#118)
* Initial stab at github actions

* Fixed docker images

* Added run

* old new

* update

* Updated

* Fixed (?)

* Added certs

* Proper safe head

* Use proper API

* Added project name

* Updated docker image

* Started reading the right comments

* Added docker image to CI

* Renamed CI thing

* Increased swap

* Fixed tests

* Fixed docker hub

* Added conditionals back in

* minor refinements
2021-08-06 11:49:00 +03:00
mniip
df894c0d88 Fix comment 2021-08-02 12:13:21 +03:00
iko
9aef830cf6
Added docker image builder and quick start guide (#113)
* wip

* Cleaned things up

* Updated readme

* updated command
2021-07-30 11:55:14 +03:00
mniip
958a653cfc
Refactor categorizing issues (#111)
* Behaviour -> Behavior (consistency)

* Introduce more issue kinds

* typo

* Add equivalence relations on issues

* Refactor issue segregation in the report
2021-07-23 13:57:36 +03:00
iko
23bb0f78cc
Refined CLI and added options (#114)
* show full help on error

* Added signal-exit-code flag
2021-07-23 12:49:52 +03:00
iko
d50b2ba645
Fixed ProdCons value pairs in report (#112)
* Fixed ProdCons value pairs in report

* normalizeProdConsOrientation -> orientProdCons

* Applied fix to PathFragmentsDontMatch
2021-07-23 12:19:22 +03:00
iko
a501f6ed41
Better CLI docs (#106) 2021-07-22 19:07:33 +03:00
mniip
dcd32cbdd9
Tuple items (#108)
* Add implication checks for tuple items

* Parse TupleItems from the source schema

* Add tests

* Refined report wording

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-07-21 16:28:09 +03:00
mniip
7029d2439b
Add disjointness heuristic with the help of partitioning (#107)
* Try to detect disjointness in oneOf via partitioning

* Split OpenAPI.Checker.Validate.Schema into modules

* Refactor schema code

* Tweak error messages for NoContradiction

* Refined reports

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-07-16 15:39:22 +03:00
mniip
2a7f02ae1e
Splitting (#104)
* Fix traces in conjuncted "items" clauses

* Add a couple tests

* Add an initial framework for partitioning (#71) and allow partitioning by an enum

* Try to preserve the logic about enum removal

* Add some tests

* Report partitions in the behavior somehow

* Bumped resolver

* Refined report

* Removed trailing period

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-07-15 18:03:19 +03:00
iko
cc07ccf254
Added preliminary report example (#105) 2021-07-15 09:30:01 +03:00
iko
a8bf43ba9a
Added tool comparison benchmarks scaffolding (#103)
* Added tool comparison benchmarks scaffolding

* Added specs to output

* Added oasdiff

* Added bump.sh

* Added readme
2021-07-12 18:44:30 +03:00
iko
ff54497e24
Added support for modes (#101) 2021-07-02 16:17:53 +03:00
iko
3f2c95f744
Don't fold singleton sections in report (#100)
* Don't fold singletons

* less specific parts of the report should be higher up

* Fixed request-response order
2021-07-02 15:10:35 +03:00
mniip
53ba00e5b6
Add special reporting for when type-restricting clauses have been added (#96)
* Add special reporting for when type-restricting clauses have been added

* Add a note for if issues arise due to a property going from
"additionalProperties" to "properties"

* Changed some wording. Instead of referencing properties by name, errors are now embedded in the behaviour.

* Changed wording of TypesRestricted

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-07-01 17:53:09 +03:00
iko
62a321a537
Added foldable tree report (#91)
* export raw html

* wip

* Added tree style options

* render issues as list
2021-06-28 19:44:47 +03:00
iko
649261f6bc
Fixed some report issues (#88)
* Removed HasUnsupportedFeature

* Embedded direction in error and removed reversed responses

* Swap first two checkCompatibility arguments

* Monomorphised env

closes #47

* Made swapProdCons better

* Added inversion when swapping prodcons

* Show issues when adding restrictions to open field in json schema

* better condition rendering
2021-06-28 13:49:09 +03:00
iko
38341ca51f
Added styling to HTML output (#84)
* Added html template

* added awsm.css submodule

* Embed styling

* Removed extra dependency

* checkout submodules on CI

* Fixed wording

* Rmoved file
2021-06-22 17:15:57 +03:00
iko
2440f23829
Added non-breaking changes to reports (#82)
* bumped resolver

* Added non-breaking changes to report

* Removed dead file

* Added backward issue descriptions

* Issue description reversing

* Changed wording slightly
2021-06-21 20:52:48 +03:00
iko
695c8fb31d
Improved reports (#78)
* Extracted jets

* Split document structure

* Splite removed paths

* bumped resolver

* Better enum errors

* Better removed paths rendering

* Slightly better wording

* Strip empty jetted headers

* Don't check field further if it will fail based on being optional or required

* changed wording slightly

* Slightly changed wording

* Changed wording some more

* Changed wording a lot
2021-06-15 18:57:35 +03:00
iko
f883264b8d
Disabled split sections 2021-06-10 15:12:45 +03:00
iko
5d875c22ce
Split object files (#77)
* Split-objs

* split-sections

* rebuild-ghc-options: true

* split ghc options

* Removed -j

* check memory

* Increased swap

* increased swap

* test options

* Upload artifact

* Removed artifact
2021-06-10 13:08:27 +03:00
iko
f546347431
Update haskell.yml 2021-06-09 14:36:52 +03:00
iko
28519f107b
Made warnings stricter (#76)
* Made warnings stricter

* Fixed imports

* Moved file

* Don't upload artifacts

* Fixed more warnings
2021-06-08 19:12:34 +03:00
iko
5fd5a1cd78
Added JSON Path jets (#75)
* Updated ConstructReportJet variables

* changed ConstructReportJet yet more

* Added support for Union in jets

* Extracted jet args

* observeJetShowErrs'

* Complex Arguments

* Added branching

* Added JSON path jets

* Simplified things

* Better type rendering in report
2021-06-08 17:57:13 +03:00
iko
218336b11e
Added report generation (#73)
* first stab

* Made things compile

* Fixed headers

* Implemented jets

* Added method-path jet

* Added yet more jets

* Rerun tests

* Updated formatting

* Added some issue descriptions

* resolved producer/consumer mixup in schema

* Added UnguardedRecursion descriptions

* Added condition formatting

* Added jet docs

* Added different format outputs
2021-06-05 19:15:04 +03:00
iko
f39734fc00
Update remove-artifacts.yaml 2021-06-03 18:07:16 +03:00
iko
e2340b607f
Update remove-artifacts.yaml 2021-06-03 17:57:23 +03:00
iko
572057f19a
Remove artefacts as fast as possible 2021-06-03 17:26:16 +03:00
iko
7e7c9fa037
Create remove-artifacts.yaml 2021-06-03 16:13:02 +03:00
mniip
1ee90ee5a5
Guarded Recursion (#67)
* Allow guarded recursion

* Add a test for guarded recursion

* Detect and report "unguarded" recursion

* Add test
2021-06-01 18:35:36 +03:00
iko
df1f841721
Fixed boolean/number bug in schema (#74) 2021-05-31 17:20:19 +03:00
mniip
6e454bcf2a
Fix some TODOs in schema and expand some comments (#72)
* Fix some TODOs in schema and expand some comments

* Update src/OpenAPI/Checker/Validate/Schema.hs

Co-authored-by: iko <ilyakooo0@gmail.com>

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-05-28 15:43:30 +03:00
mniip
1e7e283b2c
Re-emit memoized errors at different behaviors (#66)
* Re-emit memoized errors at different behaviors

* Fix client/server vs server/client memoization
2021-05-28 14:45:59 +03:00
iko
b5ed0cb04a
Added callback errors (#65) 2021-05-28 11:44:50 +03:00
iko
b76f48dc5a
Added security schemes (#59)
* Security schemes

* Added simple test
2021-05-25 13:01:44 +03:00
iko
e0ffc455ff
StructuralMemoKey (#62) 2021-05-25 12:55:14 +03:00
iko
5942040f05
Added uuid format (#60) 2021-05-25 12:11:52 +03:00
iko
6817a586b0 Removed emoji 2021-05-21 18:55:09 +03:00
iko
4dbd1b68cf
Releases are now not pre-releases 2021-05-21 17:08:27 +03:00
iko
44a3c27f4c
Slightly better output signalling (#58) 2021-05-21 14:31:58 +03:00
iko
0261ac1a83
Added artifact uploads (#57)
* Added artifact uploads

* Added release uploads
2021-05-21 14:01:48 +03:00
iko
4f254f4da1
Initial memoization (#56)
* Structural things now have traces and everything is now memoized

* Memoization now doesn't confuse different keys

* Accept tests
2021-05-21 13:15:54 +03:00
iko
cbfeeedc1e
Structural compatibility (#49)
* First very rough draft of structural compatibility

* Horrible schema hack

* absurdIssue -> structuralIssue

* Added some structural comparing

* Added yet more structural comparisons

* dropped ProdConsEqHList

* Bumped resolver

* Nonrecursive schema
2021-05-17 17:38:59 +03:00
mniip
8687e5fbac
Traces (#50)
* Implement internal vs external traces

* Fixup tests

* Move some errors around

* ToBehavior -> SubtreeLevel

* minor fixes

* Fixed server

* integrated anyOfSubtreeAt into anyOfAt

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-05-14 12:25:57 +03:00
iko
7df8b85623
Added server checking (#42)
* Added server checking

* Updated test

* Made things work after rebase
2021-05-07 17:54:54 +03:00
mniip
c2968fee75
Turn Traced into a comonad (#41)
* Turn Traced into a comonad

* tracedDePathFragment -> tracedPathFragmentParam

* Fixed tracedOp

Co-authored-by: iko <ilyakooo0@gmail.com>
2021-05-06 13:53:25 +03:00
Alexey Uimanov
1d27fd17f3
Non-schema golden tests (#40)
* req body media

* refac

* wip

* fix

* wip

* response media type object

* parameters stuff

* fix code

* param schema

* fix

* Prods

* Sums

* wip

* wip (compiles not works)

* wip

* rework responses

* wip operations

* PathItem done

* path fragments done

* matching done

* fixups

* path matching and other stuff

* comment out

* better error

* Nope

* tests ok

* fix bug with responses

* all works as usual

* all tests ok

* warnings

* fix tests
2021-05-03 21:45:08 +03:00
iko
95f82e1828
Started running tests in CI (#43)
* Started running tests in CI

* Added id test result
2021-04-26 13:19:57 +03:00