circe-yaml icon indicating copy to clipboard operation
circe-yaml copied to clipboard

use snakeyaml-engine, which only handles yaml 1.2

Open sideeffffect opened this issue 2 years ago • 7 comments

closes https://github.com/circe/circe-yaml/pull/300 closes https://github.com/circe/circe-yaml/pull/301 closes https://github.com/circe/circe-yaml/pull/302

/cc @oyvindberg

sideeffffect avatar Jun 21 '22 23:06 sideeffffect

Note that i made that commit two minutes after I got it to compile. I gave also never used circe-yaml or snakeyaml before. As such I'd expect it will take some work to finish it. Tests are not green.

Also this seems to be breaking public api, and a breaking change to yaml format. This should at the minimum get a new major version, perhaps it should be a separate artifact, or even a separate library.

oyvindberg avatar Jun 22 '22 08:06 oyvindberg

Maybe we could find a way to do this that does not break the public API. The circe-yaml library would then still be not well configurable, but maybe it's better to have API continuity than configurability :+1:

sideeffffect avatar Jun 22 '22 09:06 sideeffffect

I'd say the opposite, let's make it very obvious and clear. This update can and will interpret arbitrary yaml differently

Also the new snakeyaml library is very configurable with config objects. Let's rather use those, so for instance the printer can become much simpler.

The only thing we really need to provide is a Node <-> JSON bijection and some syntax

oyvindberg avatar Jun 22 '22 10:06 oyvindberg

Related issue on BitBucket: snakeyaml-engine Cannot parse integers encoded in hexadecimal https://bitbucket.org/snakeyaml/snakeyaml-engine/issues/38/cannot-parse-integers-encoded-in

sideeffffect avatar Sep 14 '22 21:09 sideeffffect

Codecov Report

Base: 87.30% // Head: 87.35% // Increases project coverage by +0.05% :tada:

Coverage data is based on head (cbfd4b0) compared to base (9df6d5c). Patch coverage: 90.83% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #303      +/-   ##
==========================================
+ Coverage   87.30%   87.35%   +0.05%     
==========================================
  Files           5       14       +9     
  Lines         126      253     +127     
  Branches        9       13       +4     
==========================================
+ Hits          110      221     +111     
- Misses         16       32      +16     
Impacted Files Coverage Δ
...rce-yaml/src/main/scala/io/circe/yaml/Parser.scala 89.09% <ø> (ø)
.../src/main/scala/io/circe/yaml/parser/package.scala 35.71% <ø> (ø)
.../src/main/scala/io/circe/yaml/syntax/package.scala 100.00% <ø> (ø)
.../main/scala/io/circe/yaml/v12/parser/package.scala 50.00% <50.00%> (ø)
.../src/main/scala/io/circe/yaml/v12/ParserImpl.scala 84.74% <84.74%> (ø)
...-v12/src/main/scala/io/circe/yaml/v12/Parser.scala 100.00% <100.00%> (ø)
...v12/src/main/scala/io/circe/yaml/v12/Printer.scala 100.00% <100.00%> (ø)
...src/main/scala/io/circe/yaml/v12/PrinterImpl.scala 100.00% <100.00%> (ø)
...v12/src/main/scala/io/circe/yaml/v12/package.scala 100.00% <100.00%> (ø)
...main/scala/io/circe/yaml/v12/printer/package.scala 100.00% <100.00%> (ø)
... and 6 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

codecov-commenter avatar Sep 14 '22 22:09 codecov-commenter

Hi @jeffmay , would you like to merge this yourself of can I do it? Just make sure, are you aware that this is a breaking change for the library, right?

sideeffffect avatar Sep 15 '22 00:09 sideeffffect

I wasn't able to implement all the suggestions from the comments, so I've at least explained the reason in the comments.

Otherwise this is ready to be merged @jeffmay

sideeffffect avatar Oct 07 '22 17:10 sideeffffect

I'll rework this into 2 separate modules, one for 1.1, the other for 1.2.

sideeffffect avatar Oct 17 '22 20:10 sideeffffect

@jeffmay This is ready. Can you please merge this and release an RC version (0.14.2-RC1)? (I think all this should be 100 % backwards compatible.)

sideeffffect avatar Oct 17 '22 22:10 sideeffffect

I'll go ahead and merge this before any more merge conflicts appear. We can keep polishing this after it is in master

sideeffffect avatar Nov 14 '22 23:11 sideeffffect