Skip to content

Add deprecated aliases for config.schema package#6495

Merged
pditommaso merged 5 commits intomasterfrom
fix-missing-schema-classes
Oct 20, 2025
Merged

Add deprecated aliases for config.schema package#6495
pditommaso merged 5 commits intomasterfrom
fix-missing-schema-classes

Conversation

@pditommaso
Copy link
Member

@pditommaso pditommaso commented Oct 20, 2025

Summary

This PR fixes the end-to-end test infrastructure and maintains backward compatibility after the recent package rename in #6485.

Main highlight: Fixed the e2e test build process to properly create scratch container images using the installScratch target, resolving issues with the end-to-end test pipeline.

Changes

End-to-End Test Fixes

  • Fixed test-e2e/run.sh: Changed from separate make assemble + make install to combined make releaseInfo assemble installScratch
  • Uses the proper installScratch target designed for creating scratch container images
  • More efficient build process that correctly prepares the Nextflow runtime for containerization

Backward Compatibility

Added deprecated type aliases in nextflow.config.schema package to maintain compatibility with plugins compiled against the old package names (before the rename to config.spec in #6485):

  • ConfigScope (interface) - extends the new nextflow.config.spec.ConfigScope
  • ConfigOption (annotation) - mirrors the new version
  • ScopeName (annotation) - mirrors the new version
  • PlaceholderName (annotation) - mirrors the new version

All deprecated classes include @Deprecated annotations with Javadoc pointing to the new locations.

Test plan

  • Fixed e2e test build process with installScratch target
  • End-to-end tests run successfully against Seqera Platform production environment
  • Project compiles successfully with deprecated aliases
  • Fixes the NoClassDefFoundError when loading plugins compiled against older Nextflow versions

Related Issues

Fixes the error:

java.lang.NoClassDefFoundError: nextflow/config/schema/ConfigScope

And resolves issues with the end-to-end test build process that prevented proper container image creation.

🤖 Generated with Claude Code

@pditommaso pditommaso requested a review from a team as a code owner October 20, 2025 14:16
@pditommaso
Copy link
Member Author

Weird, now is the new one the problem

ERROR ~ java.lang.NoClassDefFoundError: nextflow/config/spec/ConfigScope
 -- Check 'nf-bjfdHwXKQAQvH.log' file for details

@nextflow-io nextflow-io deleted a comment from netlify bot Oct 20, 2025
@nextflow-io nextflow-io deleted a comment from netlify bot Oct 20, 2025
@nextflow-io nextflow-io deleted a comment from netlify bot Oct 20, 2025
@bentsherman bentsherman added this to the 25.10 milestone Oct 20, 2025
@bentsherman bentsherman mentioned this pull request Oct 20, 2025
pditommaso and others added 5 commits October 20, 2025 19:10
The config.schema package was recently renamed to config.spec in commit ef0d2d6.
This change breaks backward compatibility for plugins that reference the old package names.

This commit adds deprecated type aliases in the old package location to maintain
backward compatibility while giving plugin developers time to migrate to the new package.

The following deprecated classes were added:
- ConfigScope (interface)
- SchemaNode (annotation, now SpecNode)
- ConfigOption (annotation)
- ScopeName (annotation)
- PlaceholderName (annotation)

These aliases simply extend or mirror the new classes in nextflow.config.spec
and are marked with @deprecated annotations pointing to the new locations.

Fixes the NoClassDefFoundError: nextflow/config/schema/ConfigScope error
that occurs when loading plugins compiled against older Nextflow versions.

Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Ben Sherman <bentshermann@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
@pditommaso pditommaso force-pushed the fix-missing-schema-classes branch from 07511e2 to 8de208a Compare October 20, 2025 17:11
@pditommaso pditommaso merged commit d3cee2b into master Oct 20, 2025
7 checks passed
@pditommaso pditommaso deleted the fix-missing-schema-classes branch October 20, 2025 17:13
pditommaso added a commit that referenced this pull request Oct 21, 2025
…es (#6495)

This commit addresses two issues stemming from the recent config.schema
to config.spec package rename in #6485:

1. End-to-End Test Infrastructure Fix
    - Fixed test-e2e/run.sh to use the proper `installScratch` Makefile target
    - Changed from separate `make assemble` + `make install` to combined
      `make releaseInfo assemble installScratch`
    - The `installScratch` target (BUILD_PACK=1) is specifically designed for
      creating scratch container images used in the e2e test pipeline
    - This ensures the Nextflow runtime is correctly prepared for containerization
      and deployment to the Seqera Platform test environments

2. Backward Compatibility
    - Added deprecated type aliases in the old `nextflow.config.schema` package
    - Prevents `NoClassDefFoundError: nextflow/config/schema/ConfigScope` when
      loading plugins compiled against older Nextflow versions
    - Added deprecated classes: ConfigScope, ConfigOption, ScopeName, PlaceholderName
    - All deprecated classes delegate to their new counterparts in config.spec
    - Includes @deprecated annotations with Javadoc pointing to new locations

The e2e test fixes ensure that the automated testing pipeline against Seqera
Platform staging and production environments works correctly, while the
compatibility aliases give plugin developers time to migrate to the new
package structure.

Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
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