Consider a more Gradle-native syntax to specify Python dependencies in the Gradle plugin
@steve-s is already working on this.
Since Dec 23, 2024.
- Dominant language
- Python
- Stars
- 1.6k
- Forks
- 155
- Avg merge
- 9h 42m
- Merged PRs (30d)
- 36
Description
Currently, specifying Python dependencies from Gradle seems to work like:
plugins {
id("org.graalvm.python") version "24.1.1"
}
graalPy {
packages = setOf("pyfiglet==1.0.2")
}
As a Gradle user, I'd expect a syntax that is more "native" to Gradle, e.g. via a graalPy Gradle configuration:
plugins {
id("org.graalvm.python") version "24.1.1"
}
dependencies {
graalPy("pyfiglet:1.0.2")
}
While I haven't tested this, I assume that as the configuration will be resolved by the plugin, the dependency notation can omit the usual group name. If for whatever reason a group name would be syntactically required, a dummy name like "python" could be added.
Background: I'm inspired by how the JRuby Gradle plugin does it (note that this is still Groovy instead of Kotlin DSL syntax):
dependencies {
/* Using the built-in `jrubyJar` configuration to describe the
* dependencies our jrubyJar task will need, so the gem is properly
* included in the resulting .jar file
*/
jrubyJar "rubygems:colorize:0.7.7+"
jrubyJar 'org.slf4j:slf4j-simple:1.7.12'
}
Following this approach consistently across all Gradle plugins for GraalVM languages would make a great Gradle user experience IMO, and maybe all Gradle plugins could even share some common code (to create those language-specific configurations etc.).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.