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

BOM completeness checks #26067

Open
ppalaga opened this issue Jun 12, 2022 · 10 comments
Open

BOM completeness checks #26067

ppalaga opened this issue Jun 12, 2022 · 10 comments
Labels
area/kotlin kind/bug Something isn't working

Comments

@ppalaga
Copy link
Contributor

ppalaga commented Jun 12, 2022

Describe the bug

#26026 seems to suggest that the completeness of the BOM is not checked on a regular basis.

This could perhaps be done during the BOM flattening.

I just found out that quarkus-smallrye-reactive-messaging-kotlin-deployment is also missing. Edit: it is not missing, there is no such module quarkus-smallrye-reactive-messaging-kotlin-deployment. Sorry for the confusion. We should check the completeness of the BOMs anyway.

It is hard to figure out manually whether anything else is missing.

cc @aloubyansky

Expected behavior

No response

Actual behavior

No response

How to Reproduce?

No response

Output of uname -a or ver

No response

Output of java -version

No response

GraalVM version (if different from Java)

No response

Quarkus version or git rev

No response

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

@ppalaga ppalaga added the kind/bug Something isn't working label Jun 12, 2022
@quarkus-bot
Copy link

quarkus-bot bot commented Jun 12, 2022

/cc @evanchooly

@aloubyansky
Copy link
Member

@ppalaga by completeness you mean for every runtime artifact there a deployment artifact is expected to be present in the BOM?

@ppalaga
Copy link
Contributor Author

ppalaga commented Jun 12, 2022

by completeness you mean for every runtime artifact there a deployment artifact is expected to be present in the BOM?

Yes, at least.

Maybe other related checks are possible:

  • All modules (and their io.quarkus transitives) under extensions directory are managed
  • All BOM entries exist in some of the configured remote repos

@aloubyansky
Copy link
Member

  • All BOM entries exist in some of the configured remote repos

AFAICT, there will pretty much always be some non-existing constraints imported with thirdparty BOMs.

@ppalaga
Copy link
Contributor Author

ppalaga commented Jun 13, 2022

AFAICT, there will pretty much always be some non-existing constraints imported with thirdparty BOMs.

Yep, but isn't flattening a good occasion to remove those?

@aloubyansky
Copy link
Member

It is. Although it'll increase the build time. We'd have to disable it for most common build-for-dev use-cases. Otherwise our colleagues will hate it.

@gsmet
Copy link
Member

gsmet commented Jun 13, 2022

Can't we use the same trick we are using for the documentation and the bom descriptor? We would have to adjust the script a bit as for the content but it could work, couldn't it?

Talking about: https://github.com/quarkusio/quarkus/blob/main/update-extension-dependencies.sh .

@gsmet
Copy link
Member

gsmet commented Jun 13, 2022

/cc @famod

@ppalaga
Copy link
Contributor Author

ppalaga commented Jun 13, 2022

It is. Although it'll increase the build time. We'd have to disable it for most common build-for-dev use-cases. Otherwise our colleagues will hate it.

Yes, it does not have to happen on every build. I am just asking for doing it regularly.

@gsmet
Copy link
Member

gsmet commented Jun 13, 2022

Could we just have a check in the enforcer that makes sure all io.quarkus dependencies don't have a version set? That would then require them to be defined in the BOM (or in a dependency management block in the parent for the independent projects).
My guess is that it would be easy to implement given we already have some additional enforcer rules and fast.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kotlin kind/bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants