enso/tools/legal-review/engine
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
..
ch.qos.logback.logback-classic-1.3.7 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
ch.qos.logback.logback-core-1.3.7 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00: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 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
com.github.pureconfig.pureconfig-core_2.13-0.17.4 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
com.github.pureconfig.pureconfig-generic_2.13-0.17.4 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
com.github.pureconfig.pureconfig-generic-base_2.13-0.17.4 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +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.googlecode.javaewah.JavaEWAH-1.2.3 Eliminate VCS TimeoutExceptions on startup (#8080) 2023-10-18 09:34:08 +00:00
com.ibm.icu.icu4j-73.1 Add AWS SSO JARs to the Standard.AWS library (#9782) 2024-04-25 18:44:51 +00:00
com.lihaoyi.fansi_2.13-0.4.0 Add parser for line by line processing (#8719) 2024-02-01 07:29:50 +00:00
com.lihaoyi.sourcecode_2.13-0.3.0 Reduce extra output in compilation and tests (#7809) 2023-10-16 10:57:44 +02:00
com.monovore.decline_2.13-2.4.1 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +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-codec.commons-codec-1.16.0 Upgrade directory-watcher library (#8201) 2023-11-02 11:24:26 +00: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-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-generic-extras_2.13-0.14.3 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.methvin.directory-watcher-0.18.0 Upgrade directory-watcher library (#8201) 2023-11-02 11:24:26 +00:00
io.sentry.sentry-6.28.0 Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
io.sentry.sentry-logback-6.28.0 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
net.java.dev.jna.jna-5.12.1 Upgrade enso to GraalVM for jdk 21 (#7991) 2023-11-17 18:02:36 +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.apache.tika.tika-core-2.4.1 Update Scala to 2.13.8 (#3631) 2022-08-08 19:32:55 +00:00
org.bouncycastle.bcpkix-jdk18on-1.76 Add graalpy packages to the component directory (#8351) 2023-12-04 11:50:59 +00:00
org.bouncycastle.bcprov-jdk18on-1.76 Add graalpy packages to the component directory (#8351) 2023-12-04 11:50:59 +00:00
org.bouncycastle.bcutil-jdk18on-1.76 Add graalpy packages to the component directory (#8351) 2023-12-04 11:50:59 +00:00
org.eclipse.jgit.org.eclipse.jgit-6.7.0.202309050840-r Upgrade directory-watcher library (#8201) 2023-11-02 11:24:26 +00:00
org.graalvm.js.js-language-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.llvm.llvm-api-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.polyglot.polyglot-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.python.python-language-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.python.python-resources-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.regex.regex-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.sdk.collections-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.sdk.nativeimage-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.sdk.word-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.shadowed.icu4j-24.0.0 Add AWS SSO JARs to the Standard.AWS library (#9782) 2024-04-25 18:44:51 +00:00
org.graalvm.shadowed.json-24.0.0/files-add Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.shadowed.xz-24.0.0/files-add Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.tools.profiler-tool-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.truffle.truffle-api-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.graalvm.truffle.truffle-nfi-24.0.0 Add AWS SSO JARs to the Standard.AWS library (#9782) 2024-04-25 18:44:51 +00:00
org.graalvm.truffle.truffle-nfi-libffi-24.0.0 Update to GraalVM 24.0.0 (#9647) 2024-04-12 17:01:49 +00:00
org.jline.jline-3.23.0 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
org.netbeans.api.org-netbeans-modules-sampler-RELEASE180 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
org.netbeans.api.org-openide-util-lookup-RELEASE180 Scala 2.13.11 and libraries update (#7010) 2023-06-14 13:15:57 +00:00
org.reactivestreams.reactive-streams-1.0.3 In-memory suggestions (#9751) 2024-04-22 11:02:17 +00:00
org.scala-lang.modules.scala-collection-compat_2.13-2.8.1 Batch insert suggestions (#6189) 2023-04-06 07:47:23 +00: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 Initial Legal Review (#1210) 2020-10-19 10:50:12 +02: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
reviewed-licenses Start Ydoc with the language server (#9862) 2024-05-28 13:51:42 +00:00
report-state Eliminate circe-yaml dependency (#10326) 2024-07-05 09:32:45 +02:00