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

The binary-compatibility-validator API module published on Maven central does not declare dependency on ASM and kotlin-metadata-jvm #278

Closed
mikaelstaldal opened this issue Nov 12, 2024 · 9 comments
Labels
question Further information is requested

Comments

@mikaelstaldal
Copy link

mikaelstaldal commented Nov 12, 2024

The binary-compatibility-validator API module published on Maven central does not declare dependency on org.ow2.asm:asm, org.ow2.asm:asm-tree, org.jetbrains.kotlin:kotlin-metadata-jvm.

@mikaelstaldal mikaelstaldal changed the title The binary-compatibility-validator API module published on Maven central does not declare dependency on ASM The binary-compatibility-validator API module published on Maven central does not declare dependency on ASM and kotlin-metadata-jvm Nov 12, 2024
@fzhinkin
Copy link
Collaborator

At the moment, there's no separate binary-compatibility-validator API module.
org.jetbrains.kotlinx:binary-compatibility-validator is the Gradle plugin's implementation, and dependencies on ASM and kotlin-metadata-jvm are managed by the means of Gradle configurations. Dependencies are declared that way intentionally, to prevent their leakage into projects applying the BCV plugin.

There was a plan to split the plugin and publish separate artifacts providing an API for validation. However, currently the plugin is migrating into Kotlin repository (#223) and an API might be provided there eventually.

@fzhinkin fzhinkin added the question Further information is requested label Nov 12, 2024
@mikaelstaldal
Copy link
Author

At the moment, there's no separate binary-compatibility-validator API module.

So how come I found this? https://central.sonatype.com/artifact/org.jetbrains.kotlinx/binary-compatibility-validator/0.16.3/overview

@fzhinkin
Copy link
Collaborator

So how come I found this? https://central.sonatype.com/artifact/org.jetbrains.kotlinx/binary-compatibility-validator/0.16.3/overview

As I wrote:

org.jetbrains.kotlinx:binary-compatibility-validator is the Gradle plugin's implementation

That does not contradict the fact that it comes bundled with an API. However, it is not a standalone library, thus its dependencies are managed they way they are managed.

@mikaelstaldal
Copy link
Author

So how come I found this? https://central.sonatype.com/artifact/org.jetbrains.kotlinx/binary-compatibility-validator/0.16.3/overview

As I wrote:

org.jetbrains.kotlinx:binary-compatibility-validator is the Gradle plugin's implementation

That does not contradict the fact that it comes bundled with an API. However, it is not a standalone library, thus its dependencies are managed they way they are managed.

How am someone who stumble upon it on Maven Central supposed to know it's not a standalone library?

@fzhinkin
Copy link
Collaborator

How am someone who stumble upon it on Maven Central supposed to know it's not a standalone library?

There's a link to this repository, and it is clearly stated that BCV is a Gradle plugin.

But yeah, artifact's description could be improved.

@fzhinkin
Copy link
Collaborator

And we should also include details on required additional dependencies for those who use the plugin as a library.

@mikaelstaldal
Copy link
Author

It seems like the kotlinx.validation.api package doesn't have any Gradle dependencies, so that package can be considered a library. What about actually releasing that as a proper library (with correct dependencies)? Should be quite easy to do I think.

@fzhinkin
Copy link
Collaborator

Currently, BCV is migrating to the Kotlin repository (#223, https://youtrack.jetbrains.com/issue/KT-71098); the split into a plugin and a separate library most likely will happen after the migration complete.

@mikaelstaldal
Copy link
Author

Currently, BCV is migrating to the Kotlin repository (#223, https://youtrack.jetbrains.com/issue/KT-71098); the split into a plugin and a separate library most likely will happen after the migration complete.

Sounds good. In the mean time, I and others will use the current Gradle plugin module as a library

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants