Skip to content

Conversation

edmundmiller
Copy link
Member

Summary

This PR adds extension point interfaces to enable standalone Nextflow plugin development. These interfaces provide compile-time access to Nextflow extension points without requiring the full Nextflow runtime as a dependency.

Changes

  • ✅ Add PluginExtensionPoint base interface for all plugin extensions
  • ✅ Add Factory annotation for channel factory extensions
  • ✅ Add Function annotation for custom function extensions
  • ✅ Add Operator annotation for channel operator extensions
  • ✅ Add CommandExtensionPoint interface for first-class CLI commands
  • ✅ Bump version to 1.0.0-beta.7

Benefits

  • Standalone Development: Plugins can be developed without full Nextflow runtime dependency
  • First-Class Commands: Enables plugins to register commands that appear directly in main Nextflow CLI
  • Clean Architecture: Separates compile-time interfaces from runtime implementation
  • Extensibility: Foundation for future plugin system enhancements

Related PRs

  • Main Nextflow implementation: Coming soon
  • Wave CLI example implementation: Coming soon

Testing

  • ✅ All existing tests pass
  • ✅ New interfaces compile correctly
  • ✅ Version bump applied successfully

🤖 Generated with Claude Code

edmundmiller and others added 2 commits August 15, 2025 17:19
- Add PluginExtensionPoint base interface for all plugin extensions
- Add Factory annotation for channel factory extensions
- Add Function annotation for custom function extensions
- Add Operator annotation for channel operator extensions
- Add CommandExtensionPoint interface for first-class CLI commands

These interfaces enable standalone plugin development by providing
compile-time access to Nextflow extension points without requiring
the full Nextflow runtime as a dependency.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Updated version to reflect new extension point interfaces that enable
standalone plugin development with compile-time access to Nextflow
extension points.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
*
* @author Edmund Miller <edmund@seqera.io>
*/
interface CommandExtensionPoint extends ExtensionPoint {
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 be nextflow core classes/interfaces, not the other way around

@edmundmiller edmundmiller marked this pull request as draft August 22, 2025 22:30
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.

2 participants