Skip to content

Conversation

edmundmiller
Copy link
Member

@edmundmiller edmundmiller commented Apr 10, 2025

This pull request refactors the build and plugin management system for the project, simplifying the Makefile, removing the root-level plugins/build.gradle, and updating Gradle settings for plugin management. The changes streamline how plugins are built, tested, installed, and released, and shift plugin configuration to a more modern Gradle setup.

Follows https://www.nextflow.io/docs/latest/guides/migrate-plugin.html

@edmundmiller edmundmiller force-pushed the nextflow-plugin-gradle branch from 57e06ee to eacccc7 Compare April 10, 2025 15:01
build.gradle Outdated
Comment on lines 31 to 45
sourceSets {
main {
groovy {
srcDirs = ['src/main/groovy']
}
resources {
srcDirs = ['src/main/resources']
}
}
test {
groovy {
srcDirs = ['src/test/groovy']
}
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this can be removed

build.gradle Outdated
Comment on lines 64 to 65
// Replace commons-logging with jcl-over-slf4j
implementation 'org.slf4j:jcl-over-slf4j:2.0.7'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this can be removed

build.gradle Outdated
Comment on lines 74 to 84
testImplementation ("org.apache.groovy:groovy-test:4.0.23") { exclude group: 'org.apache.groovy' }
testImplementation ("cglib:cglib-nodep:3.3.0")
testImplementation ("org.objenesis:objenesis:3.1")
testImplementation ("org.spockframework:spock-core:2.3-groovy-4.0") { exclude group: 'org.apache.groovy'; exclude group: 'net.bytebuddy' }
testImplementation ('org.spockframework:spock-junit4:2.3-groovy-4.0') { exclude group: 'org.apache.groovy'; exclude group: 'net.bytebuddy' }
testImplementation ('com.google.jimfs:jimfs:1.1')

testImplementation(testFixtures("io.nextflow:nextflow:$nextflowVersion"))
testImplementation(testFixtures("io.nextflow:nf-commons:$nextflowVersion"))
// Add back Nextflow test dependencies
testImplementation "io.nextflow:nextflow:${nextflowPlugin.nextflowVersion}"
testImplementation(testFixtures("io.nextflow:nextflow:${nextflowPlugin.nextflowVersion}"))
testImplementation(testFixtures("io.nextflow:nf-commons:${nextflowPlugin.nextflowVersion}"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think all of this can be removed

build.gradle Outdated
Comment on lines 87 to 48
configurations {
// see https://docs.gradle.org/4.1/userguide/dependency_management.html#sub:exclude_transitive_dependencies
runtimeClasspath.exclude group: 'org.slf4j', module: 'slf4j-api'
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this can be removed

build.gradle Outdated
Comment on lines 131 to 132
// AWS Athena dependencies setup - migrated from the original build.gradle
apply plugin: 'de.undercouch.download'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be moved to the plugins block at the top

settings.gradle Outdated
Comment on lines 1 to 7
// For the Nextflow plugin Gradle plugin
pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be needed anymore since the nextflow gradle plugin was published to Maven Central

Copy link
Member

@pditommaso pditommaso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please keep this on hold, until we don't have a pre-production plugin and registry

@edmundmiller edmundmiller marked this pull request as draft April 16, 2025 18:02
@pditommaso
Copy link
Member

Worth to resume this now that the registry is avail

@edmundmiller edmundmiller self-assigned this Sep 12, 2025
@edmundmiller edmundmiller marked this pull request as ready for review September 15, 2025 20:29
@edmundmiller edmundmiller marked this pull request as draft September 15, 2025 20:33
- Remove unnecessary sourceSets configuration per @bentsherman feedback
- Remove explicit test dependencies (handled by plugin)
- Remove SLF4J and runtime classpath exclusions
- Simplify settings.gradle (remove pluginManagement block)
- Keep only essential database dependencies and Athena tasks
- Update to latest Nextflow Gradle plugin v1.0.0-beta.6
- Maintain full functionality while reducing complexity

All tests pass and plugin builds/installs successfully.

Co-authored-by: Ben Sherman <[email protected]>
Signed-off-by: Edmund Miller <[email protected]>
@edmundmiller edmundmiller marked this pull request as ready for review September 15, 2025 23:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants