micronaut-projects / micronaut-core

Micronaut Application Framework
http://micronaut.io
Apache License 2.0
6.03k stars 1.05k forks source link

Version Catalogues in every module #7070

Closed sdelamo closed 6 months ago

sdelamo commented 2 years ago

Issue description

Some modules are using Gradle Version Catalogues.

sdelamo commented 2 years ago

I am worried that using version catalogues leaves us without automatic dependency updates. I think Dependabot does not work with them.

sdelamo commented 2 years ago

@micronaut-projects/core-developers thoughts?

dstepanov commented 2 years ago

We might want to consider to switch to the alternative to dependabot @melix had suggested

alvarosanchez commented 2 years ago

I made the same suggestion way before, but it didn't seem to get much attention: https://github.com/micronaut-projects/micronaut-build/issues/97

donbeave commented 2 years ago

Do you need any help here? I can say renovatebot works much better than dependabot and supports more formats, including Gradle Kotlin DSL and Gradle Version Catalogs. I'm using it in some of my projects and until now didn't encounter any problems.

If you are open to this change I can help with PRs.

P.S. It looks like these projects already migrated to Version Catalog:

1) https://github.com/micronaut-projects/micronaut-flyway/blob/master/gradle/libs.versions.toml 2) https://github.com/micronaut-projects/micronaut-groovy/blob/master/gradle/libs.versions.toml 3) https://github.com/micronaut-projects/micronaut-mongodb/blob/master/gradle/libs.versions.toml 4) https://github.com/micronaut-projects/micronaut-nats/blob/master/gradle/libs.versions.toml 5) https://github.com/micronaut-projects/micronaut-oracle-cloud/blob/master/gradle/libs.versions.toml 6) https://github.com/micronaut-projects/micronaut-spring/blob/master/gradle/libs.versions.toml

graemerocher commented 2 years ago

@donbeave contributions welcome!

donbeave commented 2 years ago

I will create a migration PR for each project and will also post the link to these PRs here in the comments section.

donbeave commented 2 years ago
dstepanov commented 2 years ago

@donbeave Thanks! BTW you aren’t supposed to modify anything in .github, that should be updated by the micronaut build PRs

donbeave commented 2 years ago

@dstepanov ok, I’ll restore these changes, but looks like many repositories aren’t synced with project template in terms of common files. I saw there are some PRs with updating common files stayed unmerged. After migrate to Gradle Version Catalogs PRs I think it’s important to merge these PRs with updating common files, otherwise the dependency updates flow will not work.

alvarosanchez commented 2 years ago

@donbeave agreed that there are some unmerged sync PRs, but the only reason is because we don't have enough bandwidth to quickly handle all the incoming PRs.

The majority of the projects should be sync'ed from the template. There are some exceptions, like micronaut-starter (which has a quite unique build) or the Maven Plugin (which uses Maven). If you find a notable miss, please let us know.

In some other cases, like micronaut-kubernetes, the sync PRs can't be automatically merged because they have customisations (e.g. a Kubernetes version matrix) that would otherwise be lost. Merging those PRs requires manually editing them.

One thing that was added by GitHub and that we are not leveraging yet is reusable workflows. If you are willing to help in this area, kindly let me know.

In any case, thank you very much for your contributions so far! They are highly appreciated! ❤️

donbeave commented 2 years ago

If you are willing to help in this area, kindly let me know.

I'm happy to help. Let me finish migration to Gradle Version Catalog. Probably I can finish migration for the rest of the projects today.

donbeave commented 2 years ago
donbeave commented 2 years ago
donbeave commented 2 years ago
donbeave commented 2 years ago
altro3 commented 6 months ago

@sdelamo I think, it's already done