Skip to content

Commit d3cee2b

Browse files
authored
Fix e2e test infrastructure and add config.schema compatibility aliases (#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>
1 parent c41677b commit d3cee2b

File tree

6 files changed

+133
-2
lines changed

6 files changed

+133
-2
lines changed

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ install:
5757
BUILD_PACK=1 \
5858
./gradlew installLauncher publishToMavenLocal installPlugin
5959

60+
installScratch:
61+
BUILD_PACK=1 \
62+
./gradlew installScratch publishToMavenLocal installPlugin
63+
6064
#
6165
# Show dependencies try `make deps config=runtime`, `make deps config=google`
6266
#
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright 2024-2025, Seqera Labs
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package nextflow.config.schema;
17+
18+
import java.lang.annotation.ElementType;
19+
import java.lang.annotation.Retention;
20+
import java.lang.annotation.RetentionPolicy;
21+
import java.lang.annotation.Target;
22+
23+
/**
24+
* Deprecated alias for backwards compatibility.
25+
*
26+
* @deprecated Use {@link nextflow.config.spec.ConfigOption} instead.
27+
* This package was renamed from config.schema to config.spec.
28+
*/
29+
@Deprecated
30+
@Retention(RetentionPolicy.RUNTIME)
31+
@Target(ElementType.FIELD)
32+
public @interface ConfigOption {
33+
Class[] types() default {};
34+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright 2024-2025, Seqera Labs
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package nextflow.config.schema;
17+
18+
/**
19+
* Deprecated alias for backwards compatibility.
20+
*
21+
* @deprecated Use {@link nextflow.config.spec.ConfigScope} instead.
22+
* This package was renamed from config.schema to config.spec.
23+
*/
24+
@Deprecated
25+
public interface ConfigScope {
26+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright 2024-2025, Seqera Labs
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package nextflow.config.schema;
17+
18+
import java.lang.annotation.ElementType;
19+
import java.lang.annotation.Retention;
20+
import java.lang.annotation.RetentionPolicy;
21+
import java.lang.annotation.Target;
22+
23+
/**
24+
* Deprecated alias for backwards compatibility.
25+
*
26+
* @deprecated Use {@link nextflow.config.spec.PlaceholderName} instead.
27+
* This package was renamed from config.schema to config.spec.
28+
*/
29+
@Deprecated
30+
@Retention(RetentionPolicy.RUNTIME)
31+
@Target(ElementType.TYPE)
32+
public @interface PlaceholderName {
33+
String value();
34+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright 2024-2025, Seqera Labs
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package nextflow.config.schema;
17+
18+
import java.lang.annotation.ElementType;
19+
import java.lang.annotation.Retention;
20+
import java.lang.annotation.RetentionPolicy;
21+
import java.lang.annotation.Target;
22+
23+
/**
24+
* Deprecated alias for backwards compatibility.
25+
*
26+
* @deprecated Use {@link nextflow.config.spec.ScopeName} instead.
27+
* This package was renamed from config.schema to config.spec.
28+
*/
29+
@Deprecated
30+
@Retention(RetentionPolicy.RUNTIME)
31+
@Target(ElementType.TYPE)
32+
public @interface ScopeName {
33+
String value();
34+
}

test-e2e/run.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ rm -rf .nextflow && mkdir .nextflow
2020
# copy nextflow dependencies
2121
(cd ..
2222
export NXF_PLUGINS_DIR=$PWD/build/plugins
23-
make assemble
24-
make install
23+
make releaseInfo assemble installScratch
2524
)
2625

2726
# copy nextflow plugins

0 commit comments

Comments
 (0)