difflicious icon indicating copy to clipboard operation
difflicious copied to clipboard

difflicious and diffx

Open ghostbuster91 opened this issue 2 years ago • 3 comments

Hi,

I tried reaching you out on twitter but the tweet must've got lost among others. I always thought that the way you designed difflicious internals is superior to what I did in diffix, but up until that moment I was able to implement everything I needed in diffx. Recent bug issue(https://github.com/softwaremill/diffx/issues/418) pointed out some flaws in the diffx that cannot be fully fixed without major rewrite of internals. Of course, I could make that rewrite but that would mean doing basically the same thing what you did in difflicious. I don't really see a point in fixing diffx that way, when there is already a better version of it implemented :) While implementing diffx and later maintaining it was a great journey for me, I think that objectively the best I can do now is to deprecate it and redirect users to your library. However, there are some users of diffx out there and I would like to do it right, and provide a smooth transition for them.

First, I would like to make sure that you are planning to maintain difflicious and you have a capacity to do that. These days my capacity is fairly limited by other projects but I will be happy to help if you need any help. Second, I am considering writing a scalafix rule to ease the migration. I guess rewriting imports and class names would cover most of the cases. Do you think it is a good idea? Third, difflicious doesn't support automatic derivation. I understand reasoning behind that decision. I never use auto derivation in my own projects. Still, there are some people that do, and it is a nice feature especially when prototyping/ trying out new things. Would you consider adding it? (maybe it could be done as a separate module?)

ghostbuster91 avatar Nov 07 '22 18:11 ghostbuster91

Hi @ghostbuster91 thanks for the kind words. Yeah I did not receive any message from you on Twitter..definitely had similar things happen before 🤔

  • I do plan to maintain this lib and still got some big improvements I'm hoping to implement, but time is limited these days and whatever I have I try to push Doobie a little bit closer to 1.0. Help will be much appreciated and I'm more than happy to add you as a maintainer :)
  • I think the lack of auto-derviation will be a blocker for a useful scalafix rule. Happy to make auto-derivation available under a separate import (like Circe) as I have wished for it a few times while debugging legacy tests using classic assertions ;)

jatcwang avatar Nov 07 '22 20:11 jatcwang

Understood and thank you. I won't have much time before December but after that I can try contributing the auto-derivation. It seems that we have some vague plan of moving forward. So to sum up:

  • add the auto-derivation to difflicious
  • put diffx into maintenance mode
  • scalafix rule for migration from diffx
  • test the migration and see if there is still anything missing that should be added to difflicious
  • final deprecation of diffix and redirection of users to difflicious

Let me know if you think that something is missing or should be done in different order.

ghostbuster91 avatar Nov 08 '22 06:11 ghostbuster91

Yep sounds good to me thanks!

jatcwang avatar Nov 08 '22 10:11 jatcwang