scala-js-snabbdom icon indicating copy to clipboard operation
scala-js-snabbdom copied to clipboard

Lockdown all the things

Open armanbilge opened this issue 3 years ago • 0 comments

Make as much as possible private, final, and sealed to make it easier to evolve the API binary-compatibly.

For the record, it remains an open question how important binary-compatibility will be for this library. It only becomes important if it becomes involved in diamond dependencies: for example, the community publishes components built with ff4s, tyrian, and outwatch and someone decides to mix these components in their application. This would only work if ff4s, tyrian, and outwatch are all using binary-compatible versions of scala-js-snabbdom.

To give a concrete example: someone recently wanted to try out my experimental lib calico within their laminar app. Unfortunately, the latest laminar uses an older version of scala-dom-types that is not binary-compatible with the current release that calico was built against. So, this became impossible.

armanbilge avatar May 07 '22 16:05 armanbilge