zio / zio-sbt

SBT Plugins For ZIO Projects
https://zio.dev/zio-sbt
Apache License 2.0
12 stars 11 forks source link

refactor: migrate to zio-json + update all #438

Open ThijsBroersen opened 1 month ago

ThijsBroersen commented 1 month ago

Why circe if we have zio-json? 😏

I think main is broken because some PR's got merged which did not pass CI. Like circe-yaml 0.16.0 which is not available for Scala 2.12 anymore.

This PR updates all dependencies and migrates to zio-json. I see some other areas where improvements can be made but will target that in separate PR's.

I ran sbt prepare as in the Contributing guide but not sbt testPlugin that seems broken. I could not find any reference to the testPlugin task. I also could not find any tests in the repo... how is this project tested? Manually?

With zio-json I created codecs (both encoders and decoders) so perhaps validations can now also be done by parsing the yaml and decoding back to the model and then create a set of rules for it. Perhaps even allow manual tweaks and on each new generate-run first load the existing flow and then update this flow.

ThijsBroersen commented 1 month ago

The PR is btw breaking because it changes the model so the codecs become easier because they match the GHA model more closely. Any opinions? I think it helps to migrate and not have to remember different views on the same thing.

--update-- I restored the existing model and added a new one. With toNative methods to convert. I tested it on a few zio projects and the required changes are quite small.

ThijsBroersen commented 4 days ago

The ScalaWorkflow now only has a single version.