diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index ffcc4512d8..c6adf2394e 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -120076,11 +120076,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 48520792c9..c60ca06b91 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -88715,11 +88715,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", @@ -91280,15 +91275,7 @@ async function getFeaturePrefix(codeql, features, language) { enabledFeatures.push(feature); } }; - if (language === "java" /* java */) { - const minimizeJavaJars = await features.getValue( - "java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */, - codeql - ); - if (minimizeJavaJars) { - return "minify-"; - } - } else if (language === "csharp" /* csharp */) { + if (language === "csharp" /* csharp */) { await addFeatureIfEnabled("csharp_new_cache_key" /* CsharpNewCacheKey */); await addFeatureIfEnabled("csharp_cache_bmn" /* CsharpCacheBuildModeNone */); } @@ -91305,11 +91292,7 @@ async function cachePrefix2(codeql, features, language) { prefix = `${prefix}-${customPrefix}`; } const featurePrefix = await getFeaturePrefix(codeql, features, language); - if (featurePrefix === "minify-") { - return `${featurePrefix}${prefix}-${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; - } else { - return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; - } + return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; } var internal = { makePatternCheck diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index c7b2d59091..f6e965a894 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -84016,11 +84016,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 6699c08cab..1778af23e1 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -123457,11 +123457,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/init-action.js b/lib/init-action.js index 77524b00ab..50888a86f8 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -86129,11 +86129,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", @@ -87460,15 +87455,7 @@ async function getFeaturePrefix(codeql, features, language) { enabledFeatures.push(feature); } }; - if (language === "java" /* java */) { - const minimizeJavaJars = await features.getValue( - "java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */, - codeql - ); - if (minimizeJavaJars) { - return "minify-"; - } - } else if (language === "csharp" /* csharp */) { + if (language === "csharp" /* csharp */) { await addFeatureIfEnabled("csharp_new_cache_key" /* CsharpNewCacheKey */); await addFeatureIfEnabled("csharp_cache_bmn" /* CsharpCacheBuildModeNone */); } @@ -87485,11 +87472,7 @@ async function cachePrefix2(codeql, features, language) { prefix = `${prefix}-${customPrefix}`; } const featurePrefix = await getFeaturePrefix(codeql, features, language); - if (featurePrefix === "minify-") { - return `${featurePrefix}${prefix}-${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; - } else { - return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; - } + return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; } var internal = { makePatternCheck @@ -90283,7 +90266,8 @@ exec ${goBinaryPath} "$@"` logger.debug( `${"CODEQL_EXTRACTOR_JAVA_OPTION_MINIMIZE_DEPENDENCY_JARS" /* JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS */} is already set to '${process.env["CODEQL_EXTRACTOR_JAVA_OPTION_MINIMIZE_DEPENDENCY_JARS" /* JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS */]}', so the Action will not override it.` ); - } else if (await features.getValue("java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */, codeql) && config.dependencyCachingEnabled && config.buildMode === "none" /* None */ && config.languages.includes("java" /* java */)) { + } else if (await codeQlVersionAtLeast(codeql, "2.23.0") && // First version of the extractor to safely support this option + config.dependencyCachingEnabled && config.buildMode === "none" /* None */ && config.languages.includes("java" /* java */)) { core13.exportVariable( "CODEQL_EXTRACTOR_JAVA_OPTION_MINIMIZE_DEPENDENCY_JARS" /* JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS */, "true" diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index 8f176bce16..9dcf00faa3 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -84007,11 +84007,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index 4b4c28abca..60123622e4 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -83919,11 +83919,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index 7f461a22c9..1e4416578e 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -119482,11 +119482,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 16f308b6a7..3e074526c6 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -100071,11 +100071,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/upload-lib.js b/lib/upload-lib.js index 3ee72bb5cf..9fd0809fdf 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -87072,11 +87072,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index 8c466d1a3a..345d5f2e1f 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -119648,11 +119648,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 2efce87979..f702a61893 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -86869,11 +86869,6 @@ var featureConfig = { legacyApi: true, minimumVersion: void 0 }, - ["java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0" - }, ["overlay_analysis" /* OverlayAnalysis */]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/src/dependency-caching.test.ts b/src/dependency-caching.test.ts index 195cb060c8..c37d37b43b 100644 --- a/src/dependency-caching.test.ts +++ b/src/dependency-caching.test.ts @@ -603,28 +603,6 @@ test("getFeaturePrefix - returns empty string if no features are enabled", async } }); -test("getFeaturePrefix - Java - returns 'minify-' if JavaMinimizeDependencyJars is enabled", async (t) => { - const codeql = createStubCodeQL({}); - const features = createFeatures([Feature.JavaMinimizeDependencyJars]); - - const result = await getFeaturePrefix(codeql, features, KnownLanguage.java); - t.deepEqual(result, "minify-"); -}); - -test("getFeaturePrefix - non-Java - returns '' if JavaMinimizeDependencyJars is enabled", async (t) => { - const codeql = createStubCodeQL({}); - const features = createFeatures([Feature.JavaMinimizeDependencyJars]); - - for (const knownLanguage of Object.values(KnownLanguage)) { - // Skip Java since we expect a result for it, which is tested in the previous test. - if (knownLanguage === KnownLanguage.java) { - continue; - } - const result = await getFeaturePrefix(codeql, features, knownLanguage); - t.deepEqual(result, "", `Expected no feature prefix for ${knownLanguage}`); - } -}); - test("getFeaturePrefix - C# - returns prefix if CsharpNewCacheKey is enabled", async (t) => { const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpNewCacheKey]); diff --git a/src/dependency-caching.ts b/src/dependency-caching.ts index 497a31fa55..dc9a140be4 100644 --- a/src/dependency-caching.ts +++ b/src/dependency-caching.ts @@ -541,18 +541,7 @@ export async function getFeaturePrefix( } }; - if (language === KnownLanguage.java) { - // To ensure a safe rollout of JAR minimization, we change the key when the feature is enabled. - const minimizeJavaJars = await features.getValue( - Feature.JavaMinimizeDependencyJars, - codeql, - ); - - // To maintain backwards compatibility with this, we return "minify-" instead of a hash. - if (minimizeJavaJars) { - return "minify-"; - } - } else if (language === KnownLanguage.csharp) { + if (language === KnownLanguage.csharp) { await addFeatureIfEnabled(Feature.CsharpNewCacheKey); await addFeatureIfEnabled(Feature.CsharpCacheBuildModeNone); } @@ -593,14 +582,8 @@ async function cachePrefix( // experimental features that affect the cache contents. const featurePrefix = await getFeaturePrefix(codeql, features, language); - // Assemble the cache key. For backwards compatibility with the JAR minification experiment's existing - // feature prefix usage, we add that feature prefix at the start. Other feature prefixes are inserted - // after the general CodeQL dependency cache prefix. - if (featurePrefix === "minify-") { - return `${featurePrefix}${prefix}-${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; - } else { - return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; - } + // Assemble the cache key. + return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`; } /** Represents information about our overall cache usage for CodeQL dependency caches. */ diff --git a/src/feature-flags.ts b/src/feature-flags.ts index 999ed20d7b..64cd1fcddd 100644 --- a/src/feature-flags.ts +++ b/src/feature-flags.ts @@ -54,7 +54,6 @@ export enum Feature { DisableJavaBuildlessEnabled = "disable_java_buildless_enabled", DisableKotlinAnalysisEnabled = "disable_kotlin_analysis_enabled", ExportDiagnosticsEnabled = "export_diagnostics_enabled", - JavaMinimizeDependencyJars = "java_minimize_dependency_jars", OverlayAnalysis = "overlay_analysis", OverlayAnalysisActions = "overlay_analysis_actions", OverlayAnalysisCodeScanningActions = "overlay_analysis_code_scanning_actions", @@ -174,11 +173,6 @@ export const featureConfig: Record< legacyApi: true, minimumVersion: undefined, }, - [Feature.JavaMinimizeDependencyJars]: { - defaultValue: false, - envVar: "CODEQL_ACTION_JAVA_MINIMIZE_DEPENDENCY_JARS", - minimumVersion: "2.23.0", - }, [Feature.OverlayAnalysis]: { defaultValue: false, envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS", diff --git a/src/init-action.ts b/src/init-action.ts index 8fa7899d8f..1585c8f0f8 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -638,18 +638,20 @@ async function run() { } } - // If the feature flag to minimize Java dependency jars is enabled, and we are doing a Java - // `build-mode: none` analysis (i.e. the flag is relevant), then set the environment variable - // that enables the corresponding option in the Java extractor. We also only do this if - // dependency caching is enabled, since the option is intended to reduce the size of - // dependency caches, but the jar-rewriting does have a performance cost that we'd like to avoid - // when caching is not being used. + // If we are doing a Java `build-mode: none` analysis, then set the environment variable that + // enables the option in the Java extractor to minimize dependency jars. We also only do this if + // dependency caching is enabled, since the option is intended to reduce the size of dependency + // caches, but the jar-rewriting does have a performance cost that we'd like to avoid when + // caching is not being used. + // TODO: Remove this language-specific mechanism and replace it with a more general one that + // tells extractors when dependency caching is enabled, and then the Java extractor can make its + // own decision about whether to rewrite jars. if (process.env[EnvVar.JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS]) { logger.debug( `${EnvVar.JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS} is already set to '${process.env[EnvVar.JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS]}', so the Action will not override it.`, ); } else if ( - (await features.getValue(Feature.JavaMinimizeDependencyJars, codeql)) && + (await codeQlVersionAtLeast(codeql, "2.23.0")) && // First version of the extractor to safely support this option config.dependencyCachingEnabled && config.buildMode === BuildMode.None && config.languages.includes(KnownLanguage.java)