lloydmeta / enumeratum

A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
MIT License
1.19k stars 148 forks source link

Version 1.7.2 is not binary compatible with previous versions #356

Closed jgordijn closed 1 year ago

jgordijn commented 1 year ago

Running an application with 1.7.2, while components were build with 1.7.0 results in the following error:

java.lang.NoSuchMethodError: 'void enumeratum.values.StringEnum.$init$(enumeratum.values.StringEnum)'

I think it is related to all these changes:

https://github.com/lloydmeta/enumeratum/commit/6ac99af9cde646fa4651a4403fd372843ee3b663#diff-27f44e66b7e80e0a214785b7d5a6d2059d85659fb70f431afa5fbc691879d0c5 in enumeratum-core/src/main/scala/enumeratum/values/ValueEnum.scala

lloydmeta commented 1 year ago

Ah yeah, sorry about this. I suppose we should have bumped a minor version but it's a bit late now.

I think the only thing we can do now is add a note in the readme? Would you like to submit a PR for this?

Ideally somone would pick up https://github.com/lloydmeta/enumeratum/pull/315 to avoid this in the future.

lloydmeta commented 1 year ago

Added a note to the release notes where this broke https://github.com/lloydmeta/enumeratum/releases/tag/v1.7.1 closing.