Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Gradle #188

Open
mauricioaniche opened this issue Jun 1, 2023 · 5 comments
Open

Migrate to Gradle #188

mauricioaniche opened this issue Jun 1, 2023 · 5 comments
Assignees
Labels
enhancement New feature or request Low priority

Comments

@mauricioaniche
Copy link
Contributor

Maven is too 2000s, it's time to go for Gradle.

@mauricioaniche mauricioaniche added enhancement New feature or request Low priority labels Jun 1, 2023
@cashbreaker
Copy link
Contributor

I would like to work on this issue

@mauricioaniche
Copy link
Contributor Author

This is a tough one!

We'd need to:

  • migrate all the existing poms.
  • the main trick is how to package Andy which we need to configure the same shading as we do now
  • we'd need to implement the maven plug-in as a gradle plug-in.
  • we are about to add checkstyle to maven, so, it needs to go here as well.

Are you up for it? :)

@Arraying
Copy link
Contributor

@mauricioaniche some more things: we would also need to update all the images and pipelines. Then, also check the test infrastructure. Furthermore, we would need to decide if we want the Kotlin or Groovy flavour (I think Kotlin is nicer, but Groovy works well). Also, I thought we were ditching the Maven plugin, does it make sense to make a Gradle one? Lastly, we also need to update the documentation on how to run Andy. This may conflict with the open issues on updating documentation for students.


There's a nice migration guide by Gradle. I think it'd be super helpful to take advantage of build scans, though I'm not sure if they can sufficiently visualize our organized chaos.

The Gradle equivalent of shading is shadow. There are transformers available for some of the things we have in ourandy POM, but I'm not sure if all of them exist. It may be required to create a custom transformer/port a Maven one.

When you run gradle init, the conversion explodes all of the assignments, so we'll end up with a lot of modules defined at the root level settings.gradle.kts. Though I think it's the same with the Maven setup right now.

@cashbreaker
Copy link
Contributor

@mauricioaniche it is a tough one but should be a pleasant challenge.


I have already seen the Gradle migration guide. Simple gradle init is good start. However as @Arraying mentioned a lot of modules are defined at root level. In current maven configuration the all the assignments are defined in assignments module.

@mauricioaniche
Copy link
Contributor Author

All yours!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Low priority
Projects
None yet
Development

No branches or pull requests

3 participants