From 5b75f59bdf3644a286b4c1a10713fc4965a3e1bc Mon Sep 17 00:00:00 2001 From: Kamil Bukum Date: Sat, 14 Feb 2026 12:44:48 -0600 Subject: [PATCH] Remove gradle_wrapper_updater experiment checks from file fetcher, parser, updater, and specs --- gradle/lib/dependabot/gradle/file_fetcher.rb | 2 -- gradle/lib/dependabot/gradle/file_parser.rb | 6 ++--- gradle/lib/dependabot/gradle/file_updater.rb | 10 ++++---- .../gradle/package/package_details_fetcher.rb | 2 -- .../update_checker/requirements_updater.rb | 2 -- .../dependabot/gradle/file_fetcher_spec.rb | 24 +++++++++++++++---- .../dependabot/gradle/file_parser_spec.rb | 8 ------- .../dependabot/gradle/file_updater_spec.rb | 1 - .../package/package_details_fetcher_spec.rb | 6 ----- .../requirements_updater_spec.rb | 6 ----- 10 files changed, 25 insertions(+), 42 deletions(-) diff --git a/gradle/lib/dependabot/gradle/file_fetcher.rb b/gradle/lib/dependabot/gradle/file_fetcher.rb index d2a0a57ba16..a91cbace9a4 100644 --- a/gradle/lib/dependabot/gradle/file_fetcher.rb +++ b/gradle/lib/dependabot/gradle/file_fetcher.rb @@ -182,8 +182,6 @@ def subproject_buildfiles(root_dir) sig { params(dir: String).returns(T::Array[DependencyFile]) } def wrapper_files(dir) - return [] unless Experiments.enabled?(:gradle_wrapper_updater) - SUPPORTED_WRAPPER_FILES_PATH.filter_map do |filename| file = fetch_file_if_present(File.join(dir, filename)) next unless file diff --git a/gradle/lib/dependabot/gradle/file_parser.rb b/gradle/lib/dependabot/gradle/file_parser.rb index 081933df550..9a78da9246f 100644 --- a/gradle/lib/dependabot/gradle/file_parser.rb +++ b/gradle/lib/dependabot/gradle/file_parser.rb @@ -60,10 +60,8 @@ def parse script_plugin_files.each do |plugin_file| dependency_set += buildfile_dependencies(plugin_file) end - if Experiments.enabled?(:gradle_wrapper_updater) - wrapper_properties_file.each do |properties_file| - dependency_set += wrapper_properties_dependencies(properties_file) - end + wrapper_properties_file.each do |properties_file| + dependency_set += wrapper_properties_dependencies(properties_file) end version_catalog_file.each do |toml_file| dependency_set += version_catalog_dependencies(toml_file) diff --git a/gradle/lib/dependabot/gradle/file_updater.rb b/gradle/lib/dependabot/gradle/file_updater.rb index 98740bd229b..51e9c0b8012 100644 --- a/gradle/lib/dependabot/gradle/file_updater.rb +++ b/gradle/lib/dependabot/gradle/file_updater.rb @@ -101,12 +101,10 @@ def update_buildfiles_for_dependency(buildfiles:, dependency:) end # runs native updaters (e.g. wrapper, lockfile) on relevant build files updated - if Dependabot::Experiments.enabled?(:gradle_wrapper_updater) - buildfiles_processed.each_value do |buildfile| - wrapper_updater = WrapperUpdater.new(dependency_files: files, dependency: dependency) - updated_files = wrapper_updater.update_files(buildfile) - replace_updated_files(files, updated_files) - end + buildfiles_processed.each_value do |buildfile| + wrapper_updater = WrapperUpdater.new(dependency_files: files, dependency: dependency) + updated_files = wrapper_updater.update_files(buildfile) + replace_updated_files(files, updated_files) end if Dependabot::Experiments.enabled?(:gradle_lockfile_updater) buildfiles_processed.each_value do |buildfile| diff --git a/gradle/lib/dependabot/gradle/package/package_details_fetcher.rb b/gradle/lib/dependabot/gradle/package/package_details_fetcher.rb index a12dcc051cb..b52fe045e87 100644 --- a/gradle/lib/dependabot/gradle/package/package_details_fetcher.rb +++ b/gradle/lib/dependabot/gradle/package/package_details_fetcher.rb @@ -137,8 +137,6 @@ def repositories sig { returns(T.nilable(T::Array[T::Hash[String, T.untyped]])) } def distribution_version_details - return nil unless Experiments.enabled?(:gradle_wrapper_updater) - DistributionsFetcher.available_versions.map do |info| release_date = begin Time.parse(info[:build_time]) diff --git a/gradle/lib/dependabot/gradle/update_checker/requirements_updater.rb b/gradle/lib/dependabot/gradle/update_checker/requirements_updater.rb index 750afcbc3ba..539a6449fb3 100644 --- a/gradle/lib/dependabot/gradle/update_checker/requirements_updater.rb +++ b/gradle/lib/dependabot/gradle/update_checker/requirements_updater.rb @@ -120,8 +120,6 @@ def update_dynamic_requirement(req_string) sig { returns(T::Array[T::Hash[Symbol, T.untyped]]) } def updated_distribution_requirements - return requirements unless Experiments.enabled?(:gradle_wrapper_updater) - distribution_url = T.let(nil, T.nilable(String)) requirements.map do |req| diff --git a/gradle/spec/dependabot/gradle/file_fetcher_spec.rb b/gradle/spec/dependabot/gradle/file_fetcher_spec.rb index 8b1dc23e0ee..0f87a5bec54 100644 --- a/gradle/spec/dependabot/gradle/file_fetcher_spec.rb +++ b/gradle/spec/dependabot/gradle/file_fetcher_spec.rb @@ -48,12 +48,19 @@ def stub_no_content_request(path) .to_return(status: 404) end + def stub_no_wrapper_files(prefix = "") + stub_no_content_request("#{prefix}gradle/wrapper?ref=sha") + stub_no_content_request("#{prefix}gradlew?ref=sha") + stub_no_content_request("#{prefix}gradlew.bat?ref=sha") + end + context "with a basic buildfile" do before do stub_no_content_request("gradle?ref=sha") stub_content_request("?ref=sha", "contents_java.json") stub_content_request("build.gradle?ref=sha", "contents_java_basic_buildfile.json") stub_no_content_request("gradle.lockfile?ref=sha") + stub_no_wrapper_files end it "fetches the buildfile" do @@ -64,7 +71,6 @@ def stub_no_content_request(path) context "with gradle wrapper properties" do before do - Dependabot::Experiments.register(:gradle_wrapper_updater, true) stub_content_request("?ref=sha", "contents_wrapper.json") stub_content_request("gradle/wrapper?ref=sha", "content_gradle_wrapper.json") stub_content_request("gradlew?ref=sha", "gradlew.json") @@ -73,10 +79,6 @@ def stub_no_content_request(path) stub_content_request("gradle/wrapper/gradle-wrapper.properties?ref=sha", "gradle-wrapper.properties.json") end - after do - Dependabot::Experiments.reset! - end - it "fetches the wrapper files" do expect(file_fetcher_instance.files.map(&:name)).to eq( %w( @@ -152,6 +154,7 @@ def stub_no_content_request(path) stub_content_request("buildSrc?ref=sha", "contents_java.json") stub_content_request("buildSrc/build.gradle?ref=sha", "contents_java_basic_buildfile.json") stub_no_content_request("buildSrc/gradle.lockfile?ref=sha") + stub_no_wrapper_files("buildSrc/") end context "when the buildSrc is implicitly included" do @@ -184,6 +187,7 @@ def stub_no_content_request(path) stub_content_request("included?ref=sha", "contents_java.json") stub_content_request("included/build.gradle?ref=sha", "contents_java_basic_buildfile.json") stub_no_content_request("included/gradle.lockfile?ref=sha") + stub_no_wrapper_files("included/") end it "doesn't fetch buildSrc buildfiles twice" do @@ -213,6 +217,7 @@ def stub_no_content_request(path) stub_no_content_request("included/gradle.lockfile?ref=sha") stub_content_request("included/app/build.gradle?ref=sha", "contents_java_basic_buildfile.json") stub_no_content_request("included/app/gradle.lockfile?ref=sha") + stub_no_wrapper_files("included/") end it "fetches all buildfiles" do @@ -248,6 +253,8 @@ def stub_no_content_request(path) stub_content_request("included2/settings.gradle?ref=sha", "contents_java_simple_settings.json") stub_content_request("included2/app/build.gradle?ref=sha", "contents_java_basic_buildfile.json") stub_no_content_request("included2/app/gradle.lockfile?ref=sha") + stub_no_wrapper_files("included/") + stub_no_wrapper_files("included2/") end it "fetches all buildfiles" do @@ -296,6 +303,10 @@ def stub_no_content_request(path) "included/included/included/buildSrc/build.gradle?ref=sha", "contents_java_basic_buildfile.json" ) + stub_no_wrapper_files("included/") + stub_no_wrapper_files("included/included/") + stub_no_wrapper_files("included/included/included/") + stub_no_wrapper_files("included/included/included/buildSrc/") end it "fetches all buildfiles transitively" do @@ -328,6 +339,7 @@ def stub_no_content_request(path) stub_content_request("included/build.gradle?ref=sha", "contents_java_buildfile_with_script_plugins.json") stub_no_content_request("included/gradle.lockfile?ref=sha") stub_content_request("included/gradle/dependencies.gradle?ref=sha", "contents_java_simple_settings.json") + stub_no_wrapper_files("included/") end it "fetches script plugin of main and included build" do @@ -412,6 +424,7 @@ def stub_no_content_request(path) stub_content_request("?ref=sha", "contents_java.json") stub_content_request("build.gradle?ref=sha", "contents_java_buildfile_with_script_plugins.json") stub_content_request("gradle/dependencies.gradle?ref=sha", "contents_java_simple_settings.json") + stub_no_wrapper_files end it "fetches the buildfile and the dependencies script" do @@ -461,6 +474,7 @@ def stub_no_content_request(path) body: "[]", headers: { "content-type" => "application/json" } ) + stub_no_wrapper_files end it "raises dependency file not found" do diff --git a/gradle/spec/dependabot/gradle/file_parser_spec.rb b/gradle/spec/dependabot/gradle/file_parser_spec.rb index 9c96879107d..32f655c2f06 100644 --- a/gradle/spec/dependabot/gradle/file_parser_spec.rb +++ b/gradle/spec/dependabot/gradle/file_parser_spec.rb @@ -832,14 +832,6 @@ ] end - before do - Dependabot::Experiments.register(:gradle_wrapper_updater, true) - end - - after do - Dependabot::Experiments.reset! - end - its(:length) { is_expected.to eq(1) } describe "check dependency" do diff --git a/gradle/spec/dependabot/gradle/file_updater_spec.rb b/gradle/spec/dependabot/gradle/file_updater_spec.rb index cda5263906f..c8ab0db5f8c 100644 --- a/gradle/spec/dependabot/gradle/file_updater_spec.rb +++ b/gradle/spec/dependabot/gradle/file_updater_spec.rb @@ -71,7 +71,6 @@ raise "Unexpected shell command: #{command}" end - Dependabot::Experiments.register(:gradle_wrapper_updater, true) Dependabot::Experiments.register(:gradle_lockfile_updater, true) end diff --git a/gradle/spec/dependabot/gradle/package/package_details_fetcher_spec.rb b/gradle/spec/dependabot/gradle/package/package_details_fetcher_spec.rb index cf723c45f01..b8c7caea2d1 100644 --- a/gradle/spec/dependabot/gradle/package/package_details_fetcher_spec.rb +++ b/gradle/spec/dependabot/gradle/package/package_details_fetcher_spec.rb @@ -321,8 +321,6 @@ context "when the details come from gradle distributions" do before do - Dependabot::Experiments.register(:gradle_wrapper_updater, true) - stub_request(:get, "https://services.gradle.org/versions/all") .to_return( status: 200, @@ -330,10 +328,6 @@ ) end - after do - Dependabot::Experiments.reset! - end - describe "the last version" do subject { versions.last } diff --git a/gradle/spec/dependabot/gradle/update_checker/requirements_updater_spec.rb b/gradle/spec/dependabot/gradle/update_checker/requirements_updater_spec.rb index 6345c7c7205..d3fb63299d9 100644 --- a/gradle/spec/dependabot/gradle/update_checker/requirements_updater_spec.rb +++ b/gradle/spec/dependabot/gradle/update_checker/requirements_updater_spec.rb @@ -184,16 +184,10 @@ end before do - Dependabot::Experiments.register(:gradle_wrapper_updater, true) - stub_request(:get, "https://services.gradle.org/distributions/gradle-9.0.0-all.zip.sha256") .to_return(status: 200, body: "f759b8dd5204e2e3fa4ca3e73f452f087153cf81bac9561eeb854229cc2c5365") end - after do - Dependabot::Experiments.reset! - end - it "updates url and checksum" do expect(updater.updated_requirements).not_to eq(requirements) expect(updater.updated_requirements).to eq(