OTP-28 support#2
Conversation
This adds inflex to our project, inflex have not had updates in 5 years, the source code here is from the branch https://github.com/warmwaffles/inflex/tree/master which make inflex otp28 compatible
Update all that are not high level depencies earmark_parser 1.4.42 => 1.4.44 ex_doc 0.37.3 => 0.38.2 (minor) makeup_erlang 1.0.1 => 1.0.2 mime 2.0.6 => 2.0.7 nimble_parsec 1.4.0 => 1.4.2 plug_crypto 2.1.0 => 2.1.1
sebWH
left a comment
There was a problem hiding this comment.
I skipped reviewing the Inflex code - I assume it was just copied from the fixed branch.
Some comments/questions:
- I see that we don't use
Inflex.*anywhere in the Legolas code - this means it is used only byja_serializerunder the hood? - I see some risks when it comes to usage of our
ja_serializerfork. We can miss some important updates or improvements... But it looks like bothja_serializerandinflexare abandoned 🤔 - I saw this comment saying that with 28.1 the issue should be solved. I assume we don't want to wait for it and continue with this PR?
- Maybe this issue would be worth updating with a comment saying something about also including
inflexin the fork alongside signifying that we will stick to the fork for a longer time 😏 Maybe the issue could be even closed?
Yes, its they only use we have of it now.
I agree, it's not optimal that we have a fork, but if
Hmm 🤔 that's a great point. We are for once very bleeding edge with our packages. I personally would like to get it before 28.1 - there is as far as I can see no ETA on it: https://github.com/erlang/otp/milestone/218.
I've updated the issue with a comment. In regards to whether the issue could be closed - under all circumstances we will need to continue on our own forks as long as nobody is actively maintaining |
This allows
ja_serializerto run on OTP-28, pulls inflex-lib directly into library, and updated dependencies, adds CI.OTP 28 support
Erlang/OTP 28 no longer allows regexes to be defined in the module body and interpolated into an attribute, this meant that the depency inflex cannot be compiled under OTP-28. there is an open pr which fixes the issue.
inflexnow part of ourja_serializerforkI've opted to remove
inflexas a dependency (Clone of the branch which fixes OTP 28 compatibility) and added it directly to ja_serializer see a41c595. 'inflex' have not been updated in 5 years see hex.pm.CI
workflow have been added, so we now executed the units test and lint on each push.
This required some code changes (credo and formatting)
Note: otp-28 elixir 1.17.x is excluded in matix (otp-28 is first supported from elixir 1.18.4
Deps
The deps have been updated as well