enso/distribution/project-manager/THIRD-PARTY
Hubert Plociniczak c54c3b7e9d
Eliminate circe-yaml dependency (#10326)
* Eliminating circe-yaml

This change adds our very-own YAML parser on top of SnakeYAML. Compared
to Circe parser on top of SnakeYAML. The advantage? In some not-so-distant
future we might actually get rid of circe and the related performance
issues.

The logic is similar to what circe does i.e. analyzing SnakeYAML to
build our own structure.
This change is not complete, as there are still some tests failing, but
most common Configs are already parseable.
We _could_ auto-generate some of the code but still some of the logic
would have to be tweaked by hand; the current logic has a number of
special cases, as I found out the hard way.

* wip: more tests passing

* Fix remaining tests in ConfigSpec

* Fixing YAML decoder for editions

Dropping circe as a decoder for Editions revealed some problems. Turns
out the current implementation had even more special cases to deal with.

* nit

* Allow for empty exports

* Mostly complete encodin part

Replaced almost all `toYAML` locations with SnakeYAML equivalent.
The encoding has to use Java collections for which there exists a
built-in support. If we were to use Scala collections we would have to
deal with tagging, at the very least.

* Remove the last remaining Circe's YAML parser

* Bug fix + further loop optimization

* removal of some dependencies

* Remove circe-yaml

Added a custom SnakeYAML Node updater to mimick the JSON -> YAML -> JSON
conversion needed for updating fields. The algorithm recursively follows
the key-path and inserts the desired Node. This is not a performance
oriented code on purpose.

* Fix compilation issues

`circe-core` was marked as `provided` but no one eventually included it
in the final jar, hence `NoClassFoundException`.

* fix licensing

* Removing obsolete circe definitions

* fmt

* nits

* s/SnakeYamlDecoder/YamlDecoder

* fmt

* Partial revert, PM needs JSON decoders/encoders

* style

* incremental compilation gone wrong
2024-07-05 09:32:45 +02:00
..
com.chuusai.shapeless_2.13-2.3.10 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.github.plokhotnyuk.jsoniter-scala.jsoniter-scala-core_2.13-2.28.5 Replace Jackson serde (#10035) 2024-06-11 15:03:12 +00:00
com.github.plokhotnyuk.jsoniter-scala.jsoniter-scala-macros_2.13-2.28.5 Replace Jackson serde (#10035) 2024-06-11 15:03:12 +00:00
com.github.pureconfig.pureconfig_2.13-0.17.4 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.github.pureconfig.pureconfig-core_2.13-0.17.4 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.github.pureconfig.pureconfig-generic_2.13-0.17.4 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.github.pureconfig.pureconfig-generic-base_2.13-0.17.4 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.google.flatbuffers.flatbuffers-java-24.3.25 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
com.typesafe.akka.akka-actor_2.13-2.6.20 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-actor-typed_2.13-2.6.20 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-http_2.13-10.2.10 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-http-core_2.13-10.2.10 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-http-spray-json_2.13-10.2.10 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-parsing_2.13-10.2.10 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-protobuf-v3_2.13-2.6.20 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-slf4j_2.13-2.6.20 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.akka.akka-stream_2.13-2.6.20 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
com.typesafe.config-1.4.2 Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
com.typesafe.scala-logging.scala-logging_2.13-3.9.4 Update Scala to 2.13.7 (#3214) 2021-12-31 17:50:32 +03:00
com.typesafe.ssl-config-core_2.13-0.4.3 Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
commons-cli.commons-cli-1.5.0 Update Scala to 2.13.7 (#3214) 2021-12-31 17:50:32 +03:00
commons-io.commons-io-2.12.0 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
dev.zio.izumi-reflect_2.13-2.3.8 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
dev.zio.izumi-reflect-thirdparty-boopickle-shaded_2.13-2.3.8 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
dev.zio.zio_2.13-2.0.14 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
dev.zio.zio-internal-macros_2.13-2.0.14 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
dev.zio.zio-interop-cats_2.13-23.0.0.6 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
dev.zio.zio-stacktracer_2.13-2.0.14 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
io.circe.circe-core_2.13-0.14.7 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
io.circe.circe-generic_2.13-0.14.7 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
io.circe.circe-jawn_2.13-0.14.7 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
io.circe.circe-literal_2.13-0.14.7 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
io.circe.circe-numbers_2.13-0.14.7 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
io.circe.circe-parser_2.13-0.14.7 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
io.helidon.builder.helidon-builder-api-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.features.helidon-common-features-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.features.helidon-common-features-api-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-buffers-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-config-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-configurable-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-context-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-key-util-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-mapper-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-media-type-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-parameters-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-security-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-socket-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-task-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-tls-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-types-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.common.helidon-common-uri-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.config.helidon-config-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.helidon-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.http.encoding.helidon-http-encoding-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.http.helidon-http-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.http.media.helidon-http-media-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.inject.helidon-inject-api-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.logging.helidon-logging-common-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.webclient.helidon-webclient-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.webclient.helidon-webclient-api-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.webclient.helidon-webclient-http1-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.webclient.helidon-webclient-websocket-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.webserver.helidon-webserver-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.webserver.helidon-webserver-websocket-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.helidon.websocket.helidon-websocket-4.0.8 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.spray.spray-json_2.13-1.3.6 Update Scala to 2.13.7 (#3214) 2021-12-31 17:50:32 +03:00
jakarta.inject.jakarta.inject-api-2.0.1 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
licenses Removing Truffle API dependency from runtime-compiler project (#9785) 2024-04-26 13:14:22 +00:00
org.apache.commons.commons-compress-1.23.0 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
org.apache.commons.commons-lang3-3.12.0 Update Scala to 2.13.7 (#3214) 2021-12-31 17:50:32 +03:00
org.reactivestreams.reactive-streams-1.0.3 Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
org.scala-lang.modules.scala-java8-compat_2.13-1.0.0 Update Scala to 2.13.7 (#3214) 2021-12-31 17:50:32 +03:00
org.scala-lang.modules.scala-parser-combinators_2.13-1.1.2 Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
org.scala-lang.scala-library-2.13.11 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
org.scala-lang.scala-reflect-2.13.11 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
org.slf4j.slf4j-api-2.0.9 Reduce extra output in compilation and tests (#7809) 2023-10-16 10:57:44 +02:00
org.typelevel.cats-core_2.13-2.10.0 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
org.typelevel.cats-kernel_2.13-2.10.0 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
org.typelevel.jawn-parser_2.13-1.5.1 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
org.yaml.snakeyaml-2.2 Cleaning up YAML parsing in preparation for circe-yaml removal (#10309) 2024-06-20 13:07:54 +00:00
COPYRIGHT-MUSL Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
COPYRIGHT-ZLIB Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
NOTICE Eliminate circe-yaml dependency (#10326) 2024-07-05 09:32:45 +02:00