Plugin packaging and distribution
Explain how the dependency tree of the compiler-plugin, gradle-plugin and idea-plugin works and how a user would get it.
- [ ] The goal is to provide a set-up that only downloads the most minimal binaries for a working set-up.
Hence a CI/CD pipeline only needs the gradle and compiler plugin, whereas a Developer and alike needs IDEA support.
Personally, I would suggest that the gradle plugin is the flagship for each set-up whether in a presentation, tutorial or project. I am not an expert on this, so I am open for discussion
AFAIK the gradle plugin checks if the idea plugin is installed and then the idea plugin checks if the compiler plugin is installed. We used that because of historical reasons in Development, but we can change that.
@AdrianRaFo please check if my explanation is correct. Feel free to edit it.
The idea plugin should provide the compiler plugin to the Intellij analyzer IIRC. Apart from that it's correct
Currently, the Gradle Plugin adds automatically the compiler-plugin to the KotlinCompilationTask.
to Sum Up:
- CI/CD needs only the gradle-plugin:
The compiler-plugin get's added automatically by the gradle-plugin
- This is only true in the Arrow Project: Once we deploy the compiler-plugin we can extend it to the general audience. This would need a new PR.
- Developer Experience: For now, the user would need to download the idea-plugin and apply the gradle-plugin to his project, to get Arrow-Meta with Idea support.
I am not sure if the current state already fulfills, your issue here @JorgeCastilloPrz.
Or, were you looking for a more minimalistic set-up?
I just copied this one over from an old repo so might be super outdated. Those are not my words since I don't have much context on this. I'd suggest to close it / keep it at will. If you want to , feel free to close it and open any other ones required if any.
I updated my message and the description of the issue. Thumbs up if it makes sense :)