Vertispan / j2clmavenplugin

Maven plugin to launch new J2CL compilation
https://vertispan.github.io/j2clmavenplugin/
Apache License 2.0
53 stars 26 forks source link

Provide a j2cl, elemental2, jsinterop bom? #113

Open niloc132 opened 2 years ago

niloc132 commented 2 years ago

We've discussed elsewhere having a single bom for all the gwt modules, but it probably would make sense to provide a single bom for some definition of "everything" - a "non-gwt j2cl" project that is just getting started isn't going to want to mess with understanding the various j2cl vs jsinterop and elemental2 vs closure differences, but just be given a "here's the current latest for everything" or "here's the current latest for elemental2" etc.

treblereel commented 2 years ago

current latest for everything is a little bit too abstract, for instance, webgpu-elemental2-like should be added to your bom ? or three.js wrappers ? i guess nope ...

niloc132 commented 2 years ago

Yeah, this needs to be more specific, though we can certainly go further with some "bleeding edge of everything that works in j2cl" bom.

At the very least, this issue is specific to artifacts from https://github.com/google/j2cl/ (even if we have to fork to package them) so that they are easier reference just once, esp for unit tests, and the artifacts from https://github.com/google/elemental2/ so that projects can have all versions listed in one place, and just pick which artifacts are needed per project. Until we have a comprehensive solution for externs that elemental2 has agreed to and shipped a stable release, we must enforce that the closure-compiler version used by j2cl is compatible with elemental2, otherwise missing or incompatible externs will cause compile errors and warnings.

With all jars containing their own externs and a (hypothetical) extern merging solution this becomes a non-issue in terms of closure (only need to manage specific projects), though incompatible jsoverlays etc might still bite us.