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

Add support for dependency locking to source dependencies #26392

Open
tudortimi opened this issue Sep 14, 2023 · 4 comments
Open

Add support for dependency locking to source dependencies #26392

tudortimi opened this issue Sep 14, 2023 · 4 comments

Comments

@tudortimi
Copy link

Expected Behavior

Currently, one of the "source dependencies" are listed as the only limitation of dependency locking.

Current Behavior (optional)

No response

Context

We've only recently started using Gradle. We use source dependencies, because the language plugin we're using doesn't provide support for publishing artifacts to repositories and resolving dependencies from there. This is mostly because the compilers we are using are not really built for binary integration.

For direct dependencies we use strict fixed versions, so this gives us some control. This doesn't affect transitive dependencies though. I can't really see a real alternative to locking here, aside from specifying dependency constraints on each and every dependency in the build. This could get pretty unwieldy.

@tudortimi tudortimi added a:feature A new functionality to-triage labels Sep 14, 2023
@ov7a
Copy link
Member

ov7a commented Sep 20, 2023

Thank you for your interest in Gradle!

This feature request is in the backlog of the relevant team, but this area of Gradle is currently not in focus. It might take a while before it gets implemented.

@tudortimi
Copy link
Author

I'm not sure whether this is a major thing or just requires some touch ups here and there. If someone could hold my hand a bit, I'd be open to working on it.

@big-guy
Copy link
Member

big-guy commented Sep 20, 2023

Hi @tudortimi,

Thanks for the offer to help. This particular feature isn't under active development and never really reached full maturity.

I don't know the full scope of what would need to change, but it would be deep in dependency-management.

IIRC, the reason that dependency locking doesn't apply to source dependencies is that source dependencies appear to Gradle as project dependencies instead of external dependencies.

Since this isn't an active area, I can't offer more guidance than that.

As an alternative to source dependencies... since your toolchain doesn't really support building binaries, you could consider just assembling all of the separate repos into a large composite build and manage which tags get checked out outside of Gradle.

@tudortimi
Copy link
Author

@big-guy I use source dependencies to consume separate libraries and I use Gradle exactly for figuring out what has to get checked out. I was thinking of updating my plugins for producing artifacts, which merely consist of the sources and some metadata. This way it would look like "binaries" for Gradle, but they could be used to do source integration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants