lf-lang / lingua-franca

Intuitive concurrent programming in any language
https://www.lf-lang.org
Other
240 stars 63 forks source link

Publication of some or all modules to Maven Central #937

Open Rojods opened 2 years ago

Rojods commented 2 years ago

Would there be any interest on publishing some or all modules to Maven Central? This issue is somewhat related to #142 .

The use case for such feature is the easy integration of LF tooling into 3rd party toolsets. Specially for those that wish to perform M2M or other advanced analysis while reusing the LF toolset.

To give a concrete use case, I speak for myself. I am currently the main developer of ForSyDe IO, which is majorly implemented as a Java library outside Eclipse's ecosystem. Doing my actual research requires parsing a LF model and doing a simple M2M transformation to ForSyDe IO. Naturally, my first thought is to just grab the LF compiler and extract it's internal IR that is an EMF model. Sadly, after a handful trials and errors, the only reproducible solution to integrate it in my toolset was to copy the model submodule from the git repo into my own repo. This means that until I find better solutions, to achieve reproducibility I have to manually update the LF model in ForSyDe IO. This is not a problem per se, it just feels less robust when compared to a plain maven/gradle project experience.

I am also aware how hard it is to make the standard Eclipse ecosystem play nice with maven/gradle or other non-Eclipse tools in general. I have little experience, but a couple dabbles here and there taught me some painful lessons :). I just wonder, as there are already gradle (Oomph) builds in place, maybe it would not be a monumental effort to bring at least the core modules to maven central in the future.

I would label this issue as "Enhancement" myself, but it seems like I'm not allowed to.

lhstrh commented 2 years ago

Thanks for suggesting this, @Rojods. I wasn't aware that anyone was using parts of our toolchain as a library, but your use case certainly justifies looking into this. I'm not sure anyone on the team has prior experience with publishing to Maven Central, but as we're establishing a release cycle that will involve a fair amount of automation, publishing on Maven Central is something that might be relatively easy to add.

On a related note, this week we've published the first version of our new VS Code extension; check it out :-)

Rojods commented 2 years ago

Thanks for the reply @lhstrh !! I'll be sure to check it out. I have some limited experience with Maven central, and it's basically just a one time effort to setup everything. At least it was wit ForSyDe IO 🙂.

I think that one big project that is also Eclipse/OSGi and has managed to publish to maven central is app4mc! It could be a nice starting point to glance over it for whoever makes the endevaour to put LF in the central repository 😊!

cmnrd commented 1 year ago

With the restructuring of https://github.com/lf-lang/lingua-franca/pull/1779 we should be able to publish our core repo as a library on Maven Central. This is maybe something to consider for the 0.6.0 milestone.

lhstrh commented 1 year ago

Just linking this (outdated) PR here: https://github.com/lf-lang/lingua-franca/pull/1211 because it seems relevant.