From 5751b3d2f4cdbe29ec97642f418949d460726b2c Mon Sep 17 00:00:00 2001 From: kbukum1 Date: Tue, 15 Oct 2024 09:18:29 -0700 Subject: [PATCH 01/20] Update pnpm Specs with Public Git Dependency for Private Testing (#10786) * moved private git "Zelcord/electron-context-menu" dependency into dependabot-fixtures account and named as pnpm_github_dependency_private --- .../file_updater/pnpm_lockfile_updater_spec.rb | 4 ++-- .../pnpm/github_dependency_private/package.json | 4 ++-- .../pnpm/github_dependency_private/pnpm-lock.yaml | 14 +++++++------- .../pnpm/github_dependency_private_v8/package.json | 4 ++-- .../github_dependency_private_v8/pnpm-lock.yaml | 12 ++++++------ 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_lockfile_updater_spec.rb b/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_lockfile_updater_spec.rb index f261c503369d..05608b328dc8 100644 --- a/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_lockfile_updater_spec.rb +++ b/npm_and_yarn/spec/dependabot/npm_and_yarn/file_updater/pnpm_lockfile_updater_spec.rb @@ -374,7 +374,7 @@ expect(error.dependency_urls) .to eq( [ - "https://github.com/Zelcord/electron-context-menu" + "https://github.com/dependabot-fixtures/pnpm_github_dependency_private" ] ) end @@ -419,7 +419,7 @@ expect(error.dependency_urls) .to eq( [ - "https://github.com/Zelcord/electron-context-menu" + "https://github.com/dependabot-fixtures/pnpm_github_dependency_private" ] ) end diff --git a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/package.json b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/package.json index a4181e0cba76..ca02d30f2d7e 100644 --- a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/package.json +++ b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/package.json @@ -18,6 +18,6 @@ "homepage": "https://github.com/Zelcord/Zelcord#readme", "dependencies": { "cross-fetch": "^3.1.5", - "electron-context-menu": "github:Zelcord/electron-context-menu" + "pnpm_github_dependency_private": "github:dependabot-fixtures/pnpm_github_dependency_private" } -} +} \ No newline at end of file diff --git a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/pnpm-lock.yaml b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/pnpm-lock.yaml index 08db1d3df60c..0397fa98ec47 100644 --- a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/pnpm-lock.yaml +++ b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private/pnpm-lock.yaml @@ -11,18 +11,18 @@ importers: cross-fetch: specifier: ^3.1.5 version: 3.1.5 - electron-context-menu: - specifier: github:Zelcord/electron-context-menu - version: https://codeload.github.com/Zelcord/electron-context-menu/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32 + pnpm_github_dependency_private: + specifier: github:dependabot-fixtures/pnpm_github_dependency_private + version: https://codeload.github.com/dependabot-fixtures/pnpm_github_dependency_private/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32 packages: cross-fetch@3.1.5: resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} - electron-context-menu@https://codeload.github.com/Zelcord/electron-context-menu/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32: - resolution: {tarball: https://codeload.github.com/Zelcord/electron-context-menu/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32} - name: electron-context-menu + pnpm_github_dependency_private@https://codeload.github.com/dependabot-fixtures/pnpm_github_dependency_private/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32: + resolution: {tarball: https://codeload.github.com/dependabot-fixtures/pnpm_github_dependency_private/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32} + name: pnpm_github_dependency_private version: 3.5.0 node-fetch@2.6.7: @@ -51,7 +51,7 @@ snapshots: transitivePeerDependencies: - encoding - electron-context-menu@https://codeload.github.com/Zelcord/electron-context-menu/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32: {} + pnpm_github_dependency_private@https://codeload.github.com/dependabot-fixtures/pnpm_github_dependency_private/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32: {} node-fetch@2.6.7: dependencies: diff --git a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/package.json b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/package.json index b6d9388ddf4b..ef7b5259d206 100644 --- a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/package.json +++ b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/package.json @@ -18,7 +18,7 @@ "homepage": "https://github.com/Zelcord/Zelcord#readme", "dependencies": { "cross-fetch": "^3.1.5", - "electron-context-menu": "github:Zelcord/electron-context-menu" + "pnpm_github_dependency_private": "github:dependabot-fixtures/pnpm_github_dependency_private" }, "packageManager": "pnpm@8.15.6" -} +} \ No newline at end of file diff --git a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/pnpm-lock.yaml b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/pnpm-lock.yaml index 8351e3bceed1..d426db936baa 100644 --- a/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/pnpm-lock.yaml +++ b/npm_and_yarn/spec/fixtures/projects/pnpm/github_dependency_private_v8/pnpm-lock.yaml @@ -8,9 +8,9 @@ dependencies: cross-fetch: specifier: ^3.1.5 version: 3.1.5 - electron-context-menu: - specifier: github:Zelcord/electron-context-menu - version: github.com/Zelcord/electron-context-menu/280c81398c02a063f46e3285a9708d8db1a7ce32 + pnpm_github_dependency_private: + specifier: github:dependabot-fixtures/pnpm_github_dependency_private + version: github.com/dependabot-fixtures/pnpm_github_dependency_private/280c81398c02a063f46e3285a9708d8db1a7ce32 packages: @@ -49,8 +49,8 @@ packages: webidl-conversions: 3.0.1 dev: false - github.com/Zelcord/electron-context-menu/280c81398c02a063f46e3285a9708d8db1a7ce32: - resolution: {tarball: https://codeload.github.com/Zelcord/electron-context-menu/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32} - name: electron-context-menu + github.com/dependabot-fixtures/pnpm_github_dependency_private/280c81398c02a063f46e3285a9708d8db1a7ce32: + resolution: {tarball: https://codeload.github.com/dependabot-fixtures/pnpm_github_dependency_private/tar.gz/280c81398c02a063f46e3285a9708d8db1a7ce32} + name: pnpm_github_dependency_private version: 3.5.0 dev: false From 7f120c2aceed54050003d0057adca2af733f5b3c Mon Sep 17 00:00:00 2001 From: Jake Coffman Date: Tue, 15 Oct 2024 18:32:45 -0500 Subject: [PATCH 02/20] Raise unsupported error when package manager is not supported before update starting update process (#10794) * Raise unsupported error when package manager is not supported before update starting update process --------- Co-authored-by: Kamil Bukum --- silent/lib/dependabot/silent/file_parser.rb | 15 ++++++ .../lib/dependabot/silent/package_manager.rb | 45 +++++++++++++++++ silent/tests/testdata/vu-unsupported.txt | 22 +++++++++ updater/lib/dependabot/dependency_snapshot.rb | 4 +- .../lib/dependabot/update_files_command.rb | 14 +++++- .../updater/group_update_creation.rb | 3 -- .../create_security_update_pull_request.rb | 5 -- .../refresh_security_update_pull_request.rb | 3 -- .../refresh_version_update_pull_request.rb | 3 -- .../updater/operations/update_all_versions.rb | 3 -- .../dependabot/dependency_snapshot_spec.rb | 49 +++++++++++++++++++ .../dependabot/update_files_command_spec.rb | 27 ++++++++++ ...reate_security_update_pull_request_spec.rb | 23 --------- .../spec/fixtures/bundler/unsupported/Gemfile | 8 +++ .../fixtures/bundler/unsupported/Gemfile.lock | 16 ++++++ 15 files changed, 197 insertions(+), 43 deletions(-) create mode 100644 silent/lib/dependabot/silent/package_manager.rb create mode 100644 silent/tests/testdata/vu-unsupported.txt create mode 100644 updater/spec/fixtures/bundler/unsupported/Gemfile create mode 100644 updater/spec/fixtures/bundler/unsupported/Gemfile.lock diff --git a/silent/lib/dependabot/silent/file_parser.rb b/silent/lib/dependabot/silent/file_parser.rb index a88a17c88919..a7c4f7203dc8 100644 --- a/silent/lib/dependabot/silent/file_parser.rb +++ b/silent/lib/dependabot/silent/file_parser.rb @@ -4,6 +4,8 @@ require "dependabot/dependency" require "dependabot/file_parsers" require "dependabot/file_parsers/base" +require "dependabot/package_manager" +require "dependabot/silent/package_manager" require "sorbet-runtime" module SilentPackageManager @@ -26,6 +28,19 @@ def parse raise Dependabot::DependencyFileNotParseable, T.must(dependency_files.first).path end + sig { returns(Dependabot::PackageManagerBase) } + def package_manager + meta_data = JSON.parse(manifest_content)["silent"] + silent_version = if meta_data.nil? + "2" + else + meta_data["version"] + end + Dependabot::Silent::PackageManager.new(silent_version) + rescue JSON::ParserError + raise Dependabot::DependencyFileNotParseable, T.must(dependency_files.first).path + end + private sig { params(name: String, info: String).returns(Dependabot::Dependency) } diff --git a/silent/lib/dependabot/silent/package_manager.rb b/silent/lib/dependabot/silent/package_manager.rb new file mode 100644 index 000000000000..7f8d54f10f33 --- /dev/null +++ b/silent/lib/dependabot/silent/package_manager.rb @@ -0,0 +1,45 @@ +# typed: strong +# frozen_string_literal: true + +require "sorbet-runtime" +require "dependabot/silent/version" +require "dependabot/package_manager" + +module Dependabot + module Silent + PACKAGE_MANAGER = "silent" + + SUPPORTED_SILENT_VERSIONS = T.let([Version.new("2")].freeze, T::Array[Dependabot::Version]) + DEPRECATED_SILENT_VERSIONS = T.let([Version.new("1")].freeze, T::Array[Dependabot::Version]) + + class PackageManager < PackageManagerBase + extend T::Sig + + sig { params(version: T.any(String, Dependabot::Version)).void } + def initialize(version) + @version = T.let(Version.new(version), Dependabot::Version) + @name = T.let(PACKAGE_MANAGER, String) + @deprecated_versions = T.let(DEPRECATED_SILENT_VERSIONS, T::Array[Dependabot::Version]) + @supported_versions = T.let(SUPPORTED_SILENT_VERSIONS, T::Array[Dependabot::Version]) + end + + sig { override.returns(String) } + attr_reader :name + + sig { override.returns(Dependabot::Version) } + attr_reader :version + + sig { override.returns(T::Array[Dependabot::Version]) } + attr_reader :deprecated_versions + + sig { override.returns(T::Array[Dependabot::Version]) } + attr_reader :supported_versions + + sig { override.returns(T::Boolean) } + def unsupported? + # Check if the version is not supported + supported_versions.all? { |supported| supported > version } + end + end + end +end diff --git a/silent/tests/testdata/vu-unsupported.txt b/silent/tests/testdata/vu-unsupported.txt new file mode 100644 index 000000000000..179c662950bc --- /dev/null +++ b/silent/tests/testdata/vu-unsupported.txt @@ -0,0 +1,22 @@ +! dependabot update -f input.yml --local . --updater-image ghcr.io/dependabot/dependabot-updater-silent +! stderr 'created \| dependency-a \( from 1.2.3 to 1.2.5 \)' +! pr-created expected.json +stderr 'Currently, the following silent versions are supported in Dependabot: v2\.*\.' +stdout {"data":{"error-type":"tool_version_not_supported","error-details":{"detected-version":"1","supported-versions":"v2.*","tool-name":"silent"}},"type":"record_update_job_error"} + + +-- manifest.json -- +{ + "silent": { "version": "1" }, + "dependency-a": { "version": "1.2.3" } +} + +-- input.yml -- +job: + package-manager: "silent" + source: + directory: "/" + provider: example + hostname: example.com + api-endpoint: https://example.com/api/v3 + repo: dependabot/smoke-tests diff --git a/updater/lib/dependabot/dependency_snapshot.rb b/updater/lib/dependabot/dependency_snapshot.rb index b9c2c8530b04..02b03c4ef46f 100644 --- a/updater/lib/dependabot/dependency_snapshot.rb +++ b/updater/lib/dependabot/dependency_snapshot.rb @@ -241,8 +241,10 @@ def dependency_file_parser reject_external_code: job.reject_external_code?, options: job.experiments ) - # Add 'package_manager' to the depedency_snapshopt to use it in operations' + # Add 'package_manager' to the dependency_snapshot to use it in operations package_manager = parser.package_manager + # Raise an error if the package manager version is unsupported + package_manager&.raise_if_unsupported! @package_manager[@current_directory] = package_manager diff --git a/updater/lib/dependabot/update_files_command.rb b/updater/lib/dependabot/update_files_command.rb index b3cb91d74b93..d04b4abc8d81 100644 --- a/updater/lib/dependabot/update_files_command.rb +++ b/updater/lib/dependabot/update_files_command.rb @@ -67,7 +67,7 @@ def base_commit_sha Environment.job_definition["base_commit_sha"] end - # rubocop:disable Metrics/AbcSize, Layout/LineLength + # rubocop:disable Metrics/AbcSize, Layout/LineLength, Metrics/MethodLength def handle_parser_error(error) # This happens if the repo gets removed after a job gets kicked off. # The service will handle the removal without any prompt from the updater, @@ -80,6 +80,16 @@ def handle_parser_error(error) # Check if the error is a known "run halting" state we should handle if (error_type = Updater::ErrorHandler::RUN_HALTING_ERRORS[error.class]) { "error-type": error_type } + elsif error.is_a?(ToolVersionNotSupported) + Dependabot.logger.error(error.message) + { + "error-type": "tool_version_not_supported", + "error-detail": { + "tool-name": error.tool_name, + "detected-version": error.detected_version, + "supported-versions": error.supported_versions + } + } else # If it isn't, then log all the details and let the application error # tracker know about it @@ -118,6 +128,6 @@ def handle_parser_error(error) error_details: error_details[:"error-detail"] ) end - # rubocop:enable Metrics/AbcSize, Layout/LineLength + # rubocop:enable Metrics/AbcSize, Layout/LineLength, Metrics/MethodLength end end diff --git a/updater/lib/dependabot/updater/group_update_creation.rb b/updater/lib/dependabot/updater/group_update_creation.rb index 9494698c4cc7..abf23f6492f6 100644 --- a/updater/lib/dependabot/updater/group_update_creation.rb +++ b/updater/lib/dependabot/updater/group_update_creation.rb @@ -241,9 +241,6 @@ def compile_updates_for(dependency, dependency_files, group) # rubocop:disable M return [] end - # Raise an error if the package manager version is unsupported - dependency_snapshot.package_manager&.raise_if_unsupported! - checker.updated_dependencies( requirements_to_unlock: requirements_to_unlock ) diff --git a/updater/lib/dependabot/updater/operations/create_security_update_pull_request.rb b/updater/lib/dependabot/updater/operations/create_security_update_pull_request.rb index d10754aa7c28..156a48f3b36e 100644 --- a/updater/lib/dependabot/updater/operations/create_security_update_pull_request.rb +++ b/updater/lib/dependabot/updater/operations/create_security_update_pull_request.rb @@ -105,7 +105,6 @@ def check_and_create_pr_with_error_handling(dependency) # rubocop:disable Metrics/AbcSize # rubocop:disable Metrics/PerceivedComplexity # rubocop:disable Metrics/MethodLength - # rubocop:disable Metrics/CyclomaticComplexity sig { params(dependency: Dependabot::Dependency).void } def check_and_create_pull_request(dependency) dependency = vulnerable_version(dependency) if dependency.metadata[:all_versions] @@ -146,9 +145,6 @@ def check_and_create_pull_request(dependency) log_requirements_for_update(requirements_to_unlock, checker) return record_security_update_not_possible_error(checker) if requirements_to_unlock == :update_not_possible - # Raise an error if the package manager version is unsupported - dependency_snapshot.package_manager&.raise_if_unsupported! - updated_deps = checker.updated_dependencies( requirements_to_unlock: requirements_to_unlock ) @@ -202,7 +198,6 @@ def check_and_create_pull_request(dependency) # rubocop:enable Metrics/MethodLength # rubocop:enable Metrics/AbcSize # rubocop:enable Metrics/PerceivedComplexity - # rubocop:enable Metrics/CyclomaticComplexity sig { params(dependency: Dependabot::Dependency).returns(Dependabot::Dependency) } def vulnerable_version(dependency) return dependency if dependency.metadata[:all_versions].count == 1 diff --git a/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb b/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb index 6202dc7a3587..a70b466217c3 100644 --- a/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb +++ b/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb @@ -54,9 +54,6 @@ def perform Dependabot.logger.info("Starting update job for #{job.source.repo}") Dependabot.logger.info("Checking and updating security pull requests...") - # Raise an error if the package manager version is unsupported - dependency_snapshot.package_manager&.raise_if_unsupported! - # Retrieve the list of initial notices from dependency snapshot @notices = dependency_snapshot.notices # More notices can be added during the update process diff --git a/updater/lib/dependabot/updater/operations/refresh_version_update_pull_request.rb b/updater/lib/dependabot/updater/operations/refresh_version_update_pull_request.rb index 4919c7589866..aafa2b2e13fa 100644 --- a/updater/lib/dependabot/updater/operations/refresh_version_update_pull_request.rb +++ b/updater/lib/dependabot/updater/operations/refresh_version_update_pull_request.rb @@ -138,9 +138,6 @@ def check_and_update_pull_request(dependencies) return close_pull_request(reason: :update_no_longer_possible) end - # Raise an error if the package manager version is unsupported - dependency_snapshot.package_manager&.raise_if_unsupported! - updated_deps = checker.updated_dependencies( requirements_to_unlock: requirements_to_unlock ) diff --git a/updater/lib/dependabot/updater/operations/update_all_versions.rb b/updater/lib/dependabot/updater/operations/update_all_versions.rb index 40e63264e62d..bdcc9a20c4b3 100644 --- a/updater/lib/dependabot/updater/operations/update_all_versions.rb +++ b/updater/lib/dependabot/updater/operations/update_all_versions.rb @@ -172,9 +172,6 @@ def check_and_create_pull_request(dependency) notices: @notices ) - # Raise an error if the package manager version is unsupported - dependency_snapshot.package_manager&.raise_if_unsupported! - if dependency_change.updated_dependency_files.empty? raise "UpdateChecker found viable dependencies to be updated, but FileUpdater failed to update any files" end diff --git a/updater/spec/dependabot/dependency_snapshot_spec.rb b/updater/spec/dependabot/dependency_snapshot_spec.rb index 2830dfe8fc4c..fc63e23a94c5 100644 --- a/updater/spec/dependabot/dependency_snapshot_spec.rb +++ b/updater/spec/dependabot/dependency_snapshot_spec.rb @@ -68,6 +68,21 @@ ] end + let(:dependency_files_for_unsupported) do + [ + Dependabot::DependencyFile.new( + name: "Gemfile", + content: fixture("bundler/unsupported/Gemfile"), + directory: directory + ), + Dependabot::DependencyFile.new( + name: "Gemfile.lock", + content: fixture("bundler/unsupported/Gemfile.lock"), + directory: directory + ) + ] + end + let(:dependency_groups) do [ { @@ -84,6 +99,21 @@ "mock-sha" end + let(:unsupported_error_enabled) { false } + + before do + allow(Dependabot::Experiments).to receive(:enabled?) + .with(:bundler_v1_unsupported_error) + .and_return(unsupported_error_enabled) + allow(Dependabot::Experiments).to receive(:enabled?) + .with(:add_deprecation_warn_to_pr_message) + .and_return(true) + end + + after do + Dependabot::Experiments.reset! + end + describe "::add_handled_dependencies" do subject(:create_dependency_snapshot) do described_class.create_from_job_definition( @@ -92,6 +122,8 @@ ) end + let(:unsupported_error_enabled) { false } + let(:job_definition) do { "base_commit_sha" => base_commit_sha, @@ -148,6 +180,23 @@ ) end + context "when the package manager version is unsupported" do + let(:unsupported_error_enabled) { true } + + let(:job_definition) do + { + "base_commit_sha" => base_commit_sha, + "base64_dependency_files" => encode_dependency_files(dependency_files_for_unsupported) + } + end + + it "raises ToolVersionNotSupported error" do + expect do + create_dependency_snapshot + end.to raise_error(Dependabot::ToolVersionNotSupported) + end + end + context "when the job definition includes valid information prepared by the file fetcher step" do let(:job_definition) do { diff --git a/updater/spec/dependabot/update_files_command_spec.rb b/updater/spec/dependabot/update_files_command_spec.rb index 20a31a06147c..db17767e0f6c 100644 --- a/updater/spec/dependabot/update_files_command_spec.rb +++ b/updater/spec/dependabot/update_files_command_spec.rb @@ -3,6 +3,7 @@ require "spec_helper" require "dependabot/update_files_command" +require "dependabot/bundler" require "tmpdir" RSpec.describe Dependabot::UpdateFilesCommand do @@ -112,6 +113,32 @@ end end + context "when there is an unsupported package manager version" do + let(:error) do + Dependabot::ToolVersionNotSupported.new( + "bundler", # tool name + "1.0.0", # detected version + ">= 2.0.0" # supported versions + ) + end + + it_behaves_like "a fast-failed job" + + it "records the unsupported version error with details" do + expect(service).to receive(:record_update_job_error).with( + error_type: "tool_version_not_supported", + error_details: { + "tool-name": "bundler", + "detected-version": "1.0.0", + "supported-versions": ">= 2.0.0" + } + ) + expect(service).to receive(:mark_job_as_processed) + + perform_job + end + end + context "with an update files error (cloud)" do let(:error) { StandardError.new("hell") } diff --git a/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb index cadfb1b3f4dd..e11778a9e63c 100644 --- a/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb @@ -305,29 +305,6 @@ perform end end - - context "when package manager version is unsupported" do - let(:package_manager_version) { "1" } - let(:supported_versions) { %w(2 3) } - - before do - # Enable the feature flag for unsupported version - allow(Dependabot::Experiments).to receive(:enabled?) - .with(:bundler_v1_unsupported_error) - .and_return(true) - - # Ensure unsupported? method returns true so the error is triggered - allow(package_manager).to receive(:unsupported?).and_return(true) - end - - it "logs the ToolVersionNotSupported error to the error handler" do - # Ensure the error handler receives the expected error - expect(mock_error_handler).to receive(:handle_dependency_error) - .with(hash_including(error: instance_of(Dependabot::ToolVersionNotSupported))) - - perform - end - end end describe "#check_and_create_pull_request" do diff --git a/updater/spec/fixtures/bundler/unsupported/Gemfile b/updater/spec/fixtures/bundler/unsupported/Gemfile new file mode 100644 index 000000000000..419f7bed8348 --- /dev/null +++ b/updater/spec/fixtures/bundler/unsupported/Gemfile @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "bundler", "~> 1.15.0" + +gem "business", "~> 1.4.0" +gem "statesman", "~> 1.2.0" diff --git a/updater/spec/fixtures/bundler/unsupported/Gemfile.lock b/updater/spec/fixtures/bundler/unsupported/Gemfile.lock new file mode 100644 index 000000000000..7e5129246ac4 --- /dev/null +++ b/updater/spec/fixtures/bundler/unsupported/Gemfile.lock @@ -0,0 +1,16 @@ +GEM + remote: https://rubygems.org/ + specs: + business (1.4.0) + statesman (1.2.1) + +PLATFORMS + ruby + +DEPENDENCIES + bundler (~> 1.15.0) + business (~> 1.4.0) + statesman (~> 1.2.0) + +BUNDLED WITH + 1.15.4 From 420e9ff6aff22e0dcdc0d58137936d5978b9ef53 Mon Sep 17 00:00:00 2001 From: "S.Sandhu" <167903774+sachin-sandhu@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:48:29 -0400 Subject: [PATCH 03/20] Fix rebase creating PR for wrong dependency (#10727) --- silent/tests/testdata/su-multidir-rebase.txt | 77 +++++++++++++++ .../refresh_security_update_pull_request.rb | 24 ++++- ...fresh_security_update_pull_request_spec.rb | 93 +++++++++++++++++++ ...efresh_version_update_pull_request_spec.rb | 1 + 4 files changed, 193 insertions(+), 2 deletions(-) create mode 100644 silent/tests/testdata/su-multidir-rebase.txt diff --git a/silent/tests/testdata/su-multidir-rebase.txt b/silent/tests/testdata/su-multidir-rebase.txt new file mode 100644 index 000000000000..58c9b8b718c2 --- /dev/null +++ b/silent/tests/testdata/su-multidir-rebase.txt @@ -0,0 +1,77 @@ +dependabot update -f input.yml --local . --updater-image ghcr.io/dependabot/dependabot-updater-silent +stderr -count=1 'Security advisory dependency: dependency-a' +pr-updated frontend/expected.json +pr-updated backend/expected.json + +-- frontend/manifest.json -- +{ + "dependency-a": { "version": "1.2.3" }, + "dependency-b": { "version": "2.3.3" } +} + +-- backend/manifest.json -- +{ + "dependency-a": { "version": "1.2.3" }, + "dependency-b": { "version": "2.3.3" } +} + +-- utilities/manifest.json -- +{ + "unrelated": { "version": "1.0.0" } +} + +-- frontend/expected.json -- +{ + "dependency-a": { "version": "1.2.4" }, + "dependency-b": { "version": "2.3.3" } +} + +-- backend/expected.json -- +{ + "dependency-a": { "version": "1.2.4" }, + "dependency-b": { "version": "2.3.3" } +} + +-- dependency-a -- +{ + "versions": [ + "1.2.3", + "1.2.4", + "1.2.5" + ] +} + +-- dependency-b -- +{ + "versions": [ + "2.3.3", + "2.3.4", + "2.3.5" + ] +} + +-- input.yml -- +job: + dependencies: + - dependency-a + security-advisories: + - dependency-name: dependency-a + affected-versions: + - < 1.2.4 + existing-pull-requests: + - - dependency-name: dependency-a + dependency-version: 1.2.4 + security-updates-only: true + updating-a-pull-request: true + source: + directories: + - "/frontend" + - "/utilities" + - "/backend" + provider: github + repo: test/dependabot-testing + branch: main + package-manager: silent + experiments: + lead_security_dependency: true + diff --git a/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb b/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb index a70b466217c3..4b82b87ebe7c 100644 --- a/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb +++ b/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb @@ -129,7 +129,20 @@ def check_and_update_pull_request(dependencies) # Note: Gradle, Maven and Nuget dependency names can be case-insensitive # and the dependency name in the security advisory often doesn't match # what users have specified in their manifest. - lead_dep_name = job_dependencies.first&.downcase + # Dependabot::Experiments.register(:lead_security_dependency, true) + + if Dependabot::Experiments.enabled?(:lead_security_dependency) + lead_dep_name = security_advisory_dependency + + # telemetry data collection + Dependabot.logger.info( + "Security advisory dependency: #{lead_dep_name}\n" \ + "First dependency in list: #{job_dependencies.first&.downcase}" + ) + else + lead_dep_name = job_dependencies.first&.downcase + end + lead_dependency = dependencies.find do |dep| dep.name.downcase == lead_dep_name end @@ -171,7 +184,9 @@ def check_and_update_pull_request(dependencies) # and the dependency name in the security advisory often doesn't match # what users have specified in their manifest. job_dependencies = job_dependencies.map(&:downcase) - if dependency_change.updated_dependencies.map { |x| x.name.downcase } != job_dependencies + changed_dependencies = dependency_change.updated_dependencies.map { |x| x.name.downcase } + + if changed_dependencies.sort_by(&:downcase) != job_dependencies.sort_by(&:downcase) # The dependencies being updated have changed. Close the existing # multi-dependency PR and try creating a new one. close_pull_request(reason: :dependencies_changed) @@ -285,6 +300,11 @@ def close_pull_request(reason:) service.close_pull_request(job_dependencies, reason) end + + sig { returns(String) } + def security_advisory_dependency + T.cast(job.security_advisories.first, T::Hash[String, String])["dependency-name"].to_s + end end end end diff --git a/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb index 177effbcf788..a17c542d4d56 100644 --- a/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb @@ -79,6 +79,36 @@ ) end + let(:dependency_b) do + Dependabot::Dependency.new( + name: "dummy-pkg-b", + version: "3.0.0", + requirements: [{ + file: "Gemfile", + requirement: "~> 4.0.0", + groups: ["default"], + source: nil + }], + package_manager: "bundler", + metadata: { all_versions: ["3.0.0"] } + ) + end + + let(:dependency_c) do + Dependabot::Dependency.new( + name: "dummy-pkg-c", + version: "3.0.0", + requirements: [{ + file: "Gemfile", + requirement: "~> 4.0.0", + groups: ["default"], + source: nil + }], + package_manager: "bundler", + metadata: { all_versions: ["3.0.0"] } + ) + end + let(:stub_update_checker) do instance_double( Dependabot::UpdateCheckers::Base, @@ -113,6 +143,7 @@ before do allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) + allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(false) allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) allow(Dependabot::UpdateCheckers).to receive(:for_package_manager).and_return(stub_update_checker_class) @@ -233,5 +264,67 @@ end end end + + context "when the update is allowed and lead dependency is out of order with security advisory" do + before do + allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(true) + allow(stub_update_checker).to receive_messages( + up_to_date?: false, + requirements_unlocked_or_can_be?: true + ) + allow(job).to receive_messages(allowed_update?: true, + security_advisories: [{ "dependency-name" => "dummy-pkg-a" }]) + end + + after do + allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(false) + end + + it "checks if a pull request already exists" do + allow(job).to receive(:dependencies).and_return(%w(dummy-pkg-b dummy-pkg-c dummy-pkg-a)) + allow(refresh_security_update_pull_request).to receive(:existing_pull_request).and_return(true) + allow(Dependabot.logger).to receive(:info).and_call_original + + expect(refresh_security_update_pull_request).to receive(:create_pull_request) + + expect(Dependabot.logger) + .to receive(:info) + .with matching(/Security advisory dependency: dummy-pkg-a\nFirst dependency in list: dummy-pkg-b/) + + refresh_security_update_pull_request.send(:check_and_update_pull_request, + [dependency, dependency_b, dependency_c]) + end + end + + context "when the update is allowed and lead dependency is out of order with security advisory" do + before do + allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(true) + allow(stub_update_checker).to receive_messages( + up_to_date?: false, + requirements_unlocked_or_can_be?: true + ) + allow(job).to receive_messages(allowed_update?: true, + security_advisories: [{ "dependency-name" => "dummy-pkg-a" }]) + end + + after do + allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(false) + end + + it "checks if a pull request already exists" do + allow(job).to receive(:dependencies).and_return(%w(dummy-pkg-a)) + allow(refresh_security_update_pull_request).to receive(:existing_pull_request).and_return(true) + allow(Dependabot.logger).to receive(:info).and_call_original + + expect(refresh_security_update_pull_request).to receive(:update_pull_request) + + expect(Dependabot.logger) + .to receive(:info) + .with matching(/Security advisory dependency: dummy-pkg-a/) + + refresh_security_update_pull_request.send(:check_and_update_pull_request, + [dependency]) + end + end end end diff --git a/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb index 937eec9cc7bc..f08f731fc2ad 100644 --- a/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb @@ -127,6 +127,7 @@ before do allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) + allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(false) allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) allow(Dependabot::UpdateCheckers).to receive(:for_package_manager).and_return(stub_update_checker_class) From ea4cf7695aced0889eab9fc2c957078a34eecae9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 16:29:18 +0000 Subject: [PATCH 04/20] Bump the npm-dependencies group across 1 directory with 3 updates Bumps the npm-dependencies group with 3 updates in the /npm_and_yarn/helpers directory: [@npmcli/arborist](https://github.com/npm/cli/tree/HEAD/workspaces/arborist), [nock](https://github.com/nock/nock) and [semver](https://github.com/npm/node-semver). Updates `@npmcli/arborist` from 7.5.4 to 8.0.0 - [Release notes](https://github.com/npm/cli/releases) - [Changelog](https://github.com/npm/cli/blob/latest/workspaces/arborist/CHANGELOG.md) - [Commits](https://github.com/npm/cli/commits/v8.0.0/workspaces/arborist) Updates `nock` from 13.5.4 to 13.5.5 - [Release notes](https://github.com/nock/nock/releases) - [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md) - [Commits](https://github.com/nock/nock/compare/v13.5.4...v13.5.5) Updates `semver` from 7.6.2 to 7.6.3 - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v7.6.2...v7.6.3) --- updated-dependencies: - dependency-name: "@npmcli/arborist" dependency-type: direct:production update-type: version-update:semver-major dependency-group: npm-dependencies - dependency-name: nock dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: semver dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies ... Signed-off-by: dependabot[bot] --- npm_and_yarn/helpers/package-lock.json | 2685 ++++++++++++++++-------- npm_and_yarn/helpers/package.json | 6 +- 2 files changed, 1802 insertions(+), 889 deletions(-) diff --git a/npm_and_yarn/helpers/package-lock.json b/npm_and_yarn/helpers/package-lock.json index 4dd10e2bb6c7..c25b624fd781 100644 --- a/npm_and_yarn/helpers/package-lock.json +++ b/npm_and_yarn/helpers/package-lock.json @@ -8,14 +8,14 @@ "hasInstallScript": true, "dependencies": { "@dependabot/yarn-lib": "^1.22.22", - "@npmcli/arborist": "^7.5.4", + "@npmcli/arborist": "^8.0.0", "@pnpm/dependency-path": "^5.1.1", "@pnpm/lockfile-file": "^9.1.2", "detect-indent": "^6.1.0", - "nock": "^13.5.4", + "nock": "^13.5.5", "npm": "6.14.18", "patch-package": "^8.0.0", - "semver": "^7.6.2" + "semver": "^7.6.3" }, "bin": { "helper": "run.js" @@ -893,9 +893,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -965,6 +965,17 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", @@ -1904,11 +1915,11 @@ } }, "node_modules/@npmcli/agent/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1932,9 +1943,9 @@ } }, "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -1943,62 +1954,57 @@ "node": ">= 14" } }, - "node_modules/@npmcli/agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dependencies": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" } }, "node_modules/@npmcli/arborist": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz", - "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-8.0.0.tgz", + "integrity": "sha512-APDXxtXGSftyXibl0dZ3CuZYmmVnkiN3+gkqwXshY4GKC2rof2+Lg0sGuj6H1p2YfBAKd7PRwuMVhu6Pf/nQ/A==", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.1", - "@npmcli/installed-package-contents": "^2.1.0", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.1.1", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.1.0", - "@npmcli/query": "^3.1.0", - "@npmcli/redact": "^2.0.0", - "@npmcli/run-script": "^8.1.0", - "bin-links": "^4.0.4", - "cacache": "^18.0.3", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^8.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.2", - "json-parse-even-better-errors": "^3.0.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", "json-stringify-nice": "^1.1.4", "lru-cache": "^10.2.2", "minimatch": "^9.0.4", - "nopt": "^7.2.1", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.2", - "npm-pick-manifest": "^9.0.1", - "npm-registry-fetch": "^17.0.1", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.0", - "proc-log": "^4.2.0", - "proggy": "^2.0.0", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^3.0.1", - "read-package-json-fast": "^3.0.2", + "read-package-json-fast": "^4.0.0", "semver": "^7.3.7", - "ssri": "^10.0.6", + "ssri": "^12.0.0", "treeverse": "^3.0.0", "walk-up-path": "^3.0.1" }, @@ -2006,7 +2012,7 @@ "arborist": "bin/index.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/arborist/node_modules/brace-expansion": { @@ -2018,11 +2024,11 @@ } }, "node_modules/@npmcli/arborist/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/arborist/node_modules/minimatch": { @@ -2040,43 +2046,52 @@ } }, "node_modules/@npmcli/arborist/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", "dependencies": { "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/git": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz", - "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", + "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/git/node_modules/ini": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/git/node_modules/isexe": { @@ -2088,9 +2103,9 @@ } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dependencies": { "isexe": "^3.1.1" }, @@ -2098,36 +2113,36 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "bin": { "installed-package-contents": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/map-workspaces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.2.tgz", - "integrity": "sha512-bCEC4PG7HbadtAYkW/TTUVNEOSr5Dhfmv6yGLgByJgCvdCqq7teq09cjvJ1LhzJU/euWjvYMcQxsfj7yDD2ikg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-4.0.1.tgz", + "integrity": "sha512-g5H8ljH7Z+4T1ASsfcL09gZl4YGw6M4GbjzPt6HgE+pCRSKC4nlNc4nY75zshi88eEHcdoh3Q8XgWFkGKoVOPw==", "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^8.0.1", - "minimatch": "^6.1.6", - "read-package-json-fast": "^3.0.0" + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { @@ -2139,102 +2154,92 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/map-workspaces/node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/metavuln-calculator": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz", - "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-8.0.0.tgz", + "integrity": "sha512-zR2TGfhR8fH1u4VRz9fuC7r1nI9dweViRDsFnMH8J89OA90lJNwF6idTttEzYSWaOTW4NVoAIB6+ujV+/wI+kg==", "dependencies": { - "cacache": "^18.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^18.0.0", - "proc-log": "^4.1.0", + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/metavuln-calculator/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", - "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-3.0.0.tgz", + "integrity": "sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", - "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.0.1.tgz", + "integrity": "sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g==", "dependencies": { - "@npmcli/git": "^5.0.0", + "@npmcli/git": "^6.0.0", "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", "semver": "^7.5.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json/node_modules/brace-expansion": { @@ -2246,9 +2251,9 @@ } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -2260,25 +2265,22 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2290,14 +2292,14 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.1.tgz", + "integrity": "sha512-ZscqKtJqy7oj6MgXEJcHQ1om4utU0Q84QtC28UVuiO6ALSO9sDPanXdu6Wd1oYhItW8fx2u96zRFUE8BuPlAjA==", "dependencies": { - "which": "^4.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { @@ -2309,9 +2311,9 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dependencies": { "isexe": "^3.1.1" }, @@ -2319,42 +2321,42 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/query": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz", - "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-4.0.0.tgz", + "integrity": "sha512-3pPbese0fbCiFJ/7/X1GBgxAKYFE8sxBddA7GtuRmOgNseH4YbGsXJ807Ig3AEwNITjDUISHglvy89cyDJnAwA==", "dependencies": { - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.1.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", + "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.1.tgz", + "integrity": "sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "proc-log": "^5.0.0", + "which": "^5.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/run-script/node_modules/isexe": { @@ -2366,9 +2368,9 @@ } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dependencies": { "isexe": "^3.1.1" }, @@ -2376,7 +2378,7 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@pkgjs/parseargs": { @@ -2878,6 +2880,14 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sigstore/sign/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@sigstore/tuf": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", @@ -2964,9 +2974,9 @@ } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3600,17 +3610,41 @@ } }, "node_modules/bin-links": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", - "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", + "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==", "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/bin-links/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/bin-links/node_modules/write-file-atomic": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/bl": { @@ -3768,11 +3802,11 @@ } }, "node_modules/cacache": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", - "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", "dependencies": { - "@npmcli/fs": "^3.1.0", + "@npmcli/fs": "^4.0.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", @@ -3780,13 +3814,13 @@ "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/cacache/node_modules/brace-expansion": { @@ -3798,9 +3832,9 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -3812,17 +3846,14 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3834,14 +3865,14 @@ } }, "node_modules/cacache/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/call-bind": { @@ -3926,11 +3957,11 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/ci-info": { @@ -4031,11 +4062,11 @@ } }, "node_modules/cmd-shim": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", - "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-7.0.0.tgz", + "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/co": { @@ -5194,9 +5225,9 @@ } }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -5579,14 +5610,14 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", + "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", "dependencies": { "lru-cache": "^10.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/html-escaper": { @@ -5718,14 +5749,14 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", + "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", "dependencies": { "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/ignore-walk/node_modules/brace-expansion": { @@ -5737,9 +5768,9 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6354,15 +6385,12 @@ } }, "node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -8240,14 +8268,14 @@ } }, "node_modules/just-diff": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", - "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", + "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==" }, "node_modules/just-diff-apply": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", - "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==" }, "node_modules/keyv": { "version": "4.5.4", @@ -8394,12 +8422,9 @@ } }, "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/make-dir": { "version": "4.0.0", @@ -8438,35 +8463,218 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dependencies": { - "minipass": "^7.0.3" + "semver": "^7.3.5" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, + "node_modules/make-fetch-happen/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "tmpl": "1.0.5" + "balanced-match": "^1.0.0" } }, - "node_modules/math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "node_modules/merge-stream": { + "node_modules/make-fetch-happen/node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/make-fetch-happen/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-fetch-happen/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/micromatch": { "version": "2.3.11", @@ -8793,9 +9001,9 @@ "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==" }, "node_modules/nock": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", - "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", + "version": "13.5.5", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.5.tgz", + "integrity": "sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -8848,9 +9056,9 @@ } }, "node_modules/node-gyp": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", @@ -8858,9 +9066,9 @@ "graceful-fs": "^4.2.6", "make-fetch-happen": "^13.0.0", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", + "tar": "^6.2.1", "which": "^4.0.0" }, "bin": { @@ -8878,10 +9086,40 @@ "balanced-match": "^1.0.0" } }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-gyp/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/node-gyp/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -8893,9 +9131,6 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -8909,9 +9144,9 @@ } }, "node_modules/node-gyp/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8922,14 +9157,63 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/node-gyp/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/node-gyp/node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/node-gyp/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -8957,9 +9241,9 @@ "dev": true }, "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.0.0.tgz", + "integrity": "sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw==", "dependencies": { "abbrev": "^2.0.0" }, @@ -8967,21 +9251,20 @@ "nopt": "bin/nopt.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/normalize-package-data": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", - "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.0.tgz", + "integrity": "sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==", "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", + "hosted-git-info": "^8.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/normalize-path": { @@ -9264,99 +9547,238 @@ "npx": "bin/npx-cli.js" }, "engines": { - "node": "6 >=6.2.0 || 8 || >=9.3.0" + "node": "6 >=6.2.0 || 8 || >=9.3.0" + } + }, + "node_modules/npm-bundled": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", + "dependencies": { + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-install-checks": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.0.tgz", + "integrity": "sha512-bkTildVlofeMX7wiOaWk3PlW7YcBXAuEc7TWpOxwUgalG5ZvgT/ms+6OX9zt7iGLv4+VhKbRZhpOfgQJzk1YAw==", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-logical-tree": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", + "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" + }, + "node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-package-arg": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", + "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", + "dependencies": { + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^6.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-packlist": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", + "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", + "dependencies": { + "ignore-walk": "^7.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", + "dependencies": { + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.1.tgz", + "integrity": "sha512-5XKlWmVtfTTmnU6rKBjjQDMdnFOVAH9t7D4DG1ZcsIDwkGYBTUl0fMnbzsVSM0t/HZRpyE1VMLZv9O0Bvkj3UA==", + "dependencies": { + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "node_modules/npm-registry-fetch/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "ms": "^2.1.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dependencies": { - "semver": "^7.1.1" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 14" } }, - "node_modules/npm-logical-tree": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" + "node_modules/npm-registry-fetch/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.1.tgz", + "integrity": "sha512-Z1ndm71UQdcK362F5Wg4IFRBZq4MGeCz+uor5iPROkSjEWEoc1Zn7OSKPvmg01S9XOI8mr+GlRr+W4ABz4ZgdA==", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm-package-arg": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", - "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", + "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "node_modules/npm-registry-fetch/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", "dependencies": { - "ignore-walk": "^6.0.4" + "minipass": "^7.0.4", + "rimraf": "^5.0.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 18" } }, - "node_modules/npm-pick-manifest": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz", - "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==", + "node_modules/npm-registry-fetch/node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 14" } }, - "node_modules/npm-registry-fetch": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", - "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "node_modules/npm-registry-fetch/node_modules/ssri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dependencies": { - "@npmcli/redact": "^2.0.0", - "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-run-path": { @@ -13624,14 +14046,11 @@ } }, "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", + "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13647,49 +14066,114 @@ } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, "node_modules/pacote": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-19.0.0.tgz", + "integrity": "sha512-953pUJqILTeaRvKFcQ78unsNc3Nl4PyVHTTsAUmvSmJ0NXs0LTWKAl5tMF2CXPRXA16RdCMYI9EKlV4CCi2T5g==", + "dependencies": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", "sigstore": "^2.2.0", - "ssri": "^10.0.0", + "ssri": "^12.0.0", "tar": "^6.1.11" }, "bin": { "pacote": "bin/index.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/pacote/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/pacote/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dependencies": { "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pacote/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" } }, "node_modules/pako": { @@ -13710,24 +14194,24 @@ } }, "node_modules/parse-conflict-json": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.0.tgz", - "integrity": "sha512-ipcKLCmZbAj7n+h9qQREvdvsBUMPetGk9mM4ljCvs5inZznAlkHPk5XPc7ROtknUKw7kO6Jnz10Y3Eec7tky/A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-4.0.0.tgz", + "integrity": "sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^5.0.1", + "json-parse-even-better-errors": "^4.0.0", + "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/parse-conflict-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/parse-glob": { @@ -14030,9 +14514,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14108,11 +14592,11 @@ } }, "node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/process-nextick-args": { @@ -14121,11 +14605,11 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/proggy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz", - "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proggy/-/proggy-3.0.0.tgz", + "integrity": "sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/promise-all-reject-late": { @@ -14356,31 +14840,31 @@ } }, "node_modules/read-cmd-shim": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz", + "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", + "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/readable-stream": { @@ -14620,6 +15104,61 @@ "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz", "integrity": "sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==" }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rsvp": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", @@ -14691,9 +15230,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -15132,19 +15671,19 @@ } }, "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/tar-fs": { @@ -15187,47 +15726,40 @@ }, "engines": { "node": ">= 0.8.0" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + } + }, + "node_modules/tar/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, "engines": { - "node": ">=8" + "node": ">= 18" } }, "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "engines": { + "node": ">=18" } }, "node_modules/test-exclude": { @@ -15360,11 +15892,11 @@ } }, "node_modules/tuf-js/node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -15375,11 +15907,6 @@ } } }, - "node_modules/tuf-js/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -15418,25 +15945,25 @@ } }, "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", "dependencies": { - "unique-slug": "^4.0.0" + "unique-slug": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", "dependencies": { "imurmurhash": "^0.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/universalify": { @@ -15527,11 +16054,11 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/verror": { @@ -16529,9 +17056,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" }, "ansi-styles": { "version": "6.2.1", @@ -16573,6 +17100,14 @@ } } }, + "@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "requires": { + "minipass": "^7.0.4" + } + }, "@isaacs/string-locale-compare": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", @@ -17277,11 +17812,11 @@ } }, "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "http-proxy-agent": { @@ -17294,69 +17829,64 @@ } }, "https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "requires": { "agent-base": "^7.0.2", "debug": "4" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "requires": { "agent-base": "^7.1.1", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" } } } }, "@npmcli/arborist": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz", - "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-8.0.0.tgz", + "integrity": "sha512-APDXxtXGSftyXibl0dZ3CuZYmmVnkiN3+gkqwXshY4GKC2rof2+Lg0sGuj6H1p2YfBAKd7PRwuMVhu6Pf/nQ/A==", "requires": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.1", - "@npmcli/installed-package-contents": "^2.1.0", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.1.1", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.1.0", - "@npmcli/query": "^3.1.0", - "@npmcli/redact": "^2.0.0", - "@npmcli/run-script": "^8.1.0", - "bin-links": "^4.0.4", - "cacache": "^18.0.3", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^8.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.2", - "json-parse-even-better-errors": "^3.0.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", "json-stringify-nice": "^1.1.4", "lru-cache": "^10.2.2", "minimatch": "^9.0.4", - "nopt": "^7.2.1", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.2", - "npm-pick-manifest": "^9.0.1", - "npm-registry-fetch": "^17.0.1", - "pacote": "^18.0.6", - "parse-conflict-json": "^3.0.0", - "proc-log": "^4.2.0", - "proggy": "^2.0.0", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^3.0.1", - "read-package-json-fast": "^3.0.2", + "read-package-json-fast": "^4.0.0", "semver": "^7.3.7", - "ssri": "^10.0.6", + "ssri": "^12.0.0", "treeverse": "^3.0.0", "walk-up-path": "^3.0.1" }, @@ -17370,9 +17900,9 @@ } }, "json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==" }, "minimatch": { "version": "9.0.4", @@ -17383,9 +17913,9 @@ } }, "ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "requires": { "minipass": "^7.0.3" } @@ -17393,37 +17923,43 @@ } }, "@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", "requires": { "semver": "^7.3.5" } }, "@npmcli/git": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz", - "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", + "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", "requires": { - "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^4.0.0" + "which": "^5.0.0" }, "dependencies": { + "ini": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==" + }, "isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" }, "which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "requires": { "isexe": "^3.1.1" } @@ -17431,23 +17967,23 @@ } }, "@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", "requires": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" } }, "@npmcli/map-workspaces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.2.tgz", - "integrity": "sha512-bCEC4PG7HbadtAYkW/TTUVNEOSr5Dhfmv6yGLgByJgCvdCqq7teq09cjvJ1LhzJU/euWjvYMcQxsfj7yDD2ikg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-4.0.1.tgz", + "integrity": "sha512-g5H8ljH7Z+4T1ASsfcL09gZl4YGw6M4GbjzPt6HgE+pCRSKC4nlNc4nY75zshi88eEHcdoh3Q8XgWFkGKoVOPw==", "requires": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^8.0.1", - "minimatch": "^6.1.6", - "read-package-json-fast": "^3.0.0" + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -17459,31 +17995,22 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" } }, "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { "brace-expansion": "^2.0.1" } @@ -17491,45 +18018,45 @@ } }, "@npmcli/metavuln-calculator": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz", - "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-8.0.0.tgz", + "integrity": "sha512-zR2TGfhR8fH1u4VRz9fuC7r1nI9dweViRDsFnMH8J89OA90lJNwF6idTttEzYSWaOTW4NVoAIB6+ujV+/wI+kg==", "requires": { - "cacache": "^18.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^18.0.0", - "proc-log": "^4.1.0", + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5" }, "dependencies": { "json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==" } } }, "@npmcli/name-from-folder": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", - "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-3.0.0.tgz", + "integrity": "sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==" }, "@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==" }, "@npmcli/package-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", - "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.0.1.tgz", + "integrity": "sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g==", "requires": { - "@npmcli/git": "^5.0.0", + "@npmcli/git": "^6.0.0", "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "normalize-package-data": "^7.0.0", + "proc-log": "^5.0.0", "semver": "^7.5.3" }, "dependencies": { @@ -17542,9 +18069,9 @@ } }, "glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "requires": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -17555,14 +18082,14 @@ } }, "json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==" }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { "brace-expansion": "^2.0.1" } @@ -17570,11 +18097,11 @@ } }, "@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.1.tgz", + "integrity": "sha512-ZscqKtJqy7oj6MgXEJcHQ1om4utU0Q84QtC28UVuiO6ALSO9sDPanXdu6Wd1oYhItW8fx2u96zRFUE8BuPlAjA==", "requires": { - "which": "^4.0.0" + "which": "^5.0.0" }, "dependencies": { "isexe": { @@ -17583,9 +18110,9 @@ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" }, "which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "requires": { "isexe": "^3.1.1" } @@ -17593,29 +18120,29 @@ } }, "@npmcli/query": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz", - "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-4.0.0.tgz", + "integrity": "sha512-3pPbese0fbCiFJ/7/X1GBgxAKYFE8sxBddA7GtuRmOgNseH4YbGsXJ807Ig3AEwNITjDUISHglvy89cyDJnAwA==", "requires": { - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^6.1.2" } }, "@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", + "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==" }, "@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.1.tgz", + "integrity": "sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==", "requires": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "proc-log": "^5.0.0", + "which": "^5.0.0" }, "dependencies": { "isexe": { @@ -17624,9 +18151,9 @@ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" }, "which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "requires": { "isexe": "^3.1.1" } @@ -17968,6 +18495,13 @@ "make-fetch-happen": "^13.0.1", "proc-log": "^4.2.0", "promise-retry": "^2.0.1" + }, + "dependencies": { + "proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==" + } } }, "@sigstore/tuf": { @@ -18041,9 +18575,9 @@ } }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { "brace-expansion": "^2.0.1" } @@ -18542,14 +19076,31 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, "bin-links": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", - "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", + "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==", "requires": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, + "write-file-atomic": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + } + } } }, "bl": { @@ -18677,11 +19228,11 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacache": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", - "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", "requires": { - "@npmcli/fs": "^3.1.0", + "@npmcli/fs": "^4.0.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", @@ -18689,10 +19240,10 @@ "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" }, "dependencies": { "brace-expansion": { @@ -18704,9 +19255,9 @@ } }, "glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "requires": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -18717,17 +19268,17 @@ } }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { "brace-expansion": "^2.0.1" } }, "ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "requires": { "minipass": "^7.0.3" } @@ -18787,9 +19338,9 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==" }, "ci-info": { "version": "1.6.0", @@ -18871,9 +19422,9 @@ } }, "cmd-shim": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", - "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-7.0.0.tgz", + "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==" }, "co": { "version": "4.6.0", @@ -19735,9 +20286,9 @@ } }, "foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "requires": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -20024,9 +20575,9 @@ } }, "hosted-git-info": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", + "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", "requires": { "lru-cache": "^10.0.1" } @@ -20129,9 +20680,9 @@ "dev": true }, "ignore-walk": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-7.0.0.tgz", + "integrity": "sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==", "requires": { "minimatch": "^9.0.0" }, @@ -20145,9 +20696,9 @@ } }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { "brace-expansion": "^2.0.1" } @@ -20601,9 +21152,9 @@ } }, "jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "requires": { "@isaacs/cliui": "^8.0.2", "@pkgjs/parseargs": "^0.11.0" @@ -21986,14 +22537,14 @@ } }, "just-diff": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", - "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", + "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==" }, "just-diff-apply": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", - "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==" }, "keyv": { "version": "4.5.4", @@ -22115,9 +22666,9 @@ } }, "lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==" + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "make-dir": { "version": "4.0.0", @@ -22147,12 +22698,145 @@ "ssri": "^10.0.0" }, "dependencies": { + "@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "requires": { + "semver": "^7.3.5" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==" + }, "ssri": { "version": "10.0.6", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "requires": { - "minipass": "^7.0.3" + "minipass": "^7.0.3" + } + }, + "tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + } + } + }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "requires": { + "unique-slug": "^4.0.0" + } + }, + "unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "requires": { + "imurmurhash": "^0.1.4" } } } @@ -22435,9 +23119,9 @@ "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==" }, "nock": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", - "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", + "version": "13.5.5", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.5.tgz", + "integrity": "sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==", "requires": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -22477,9 +23161,9 @@ } }, "node-gyp": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "requires": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", @@ -22487,9 +23171,9 @@ "graceful-fs": "^4.2.6", "make-fetch-happen": "^13.0.0", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", + "tar": "^6.2.1", "which": "^4.0.0" }, "dependencies": { @@ -22501,10 +23185,33 @@ "balanced-match": "^1.0.0" } }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, "glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "requires": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -22520,17 +23227,50 @@ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" }, "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "requires": { "brace-expansion": "^2.0.1" } }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "requires": { + "abbrev": "^2.0.0" + } + }, "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==" + }, + "tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + } + } }, "which": { "version": "4.0.0", @@ -22555,20 +23295,19 @@ "dev": true }, "nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.0.0.tgz", + "integrity": "sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw==", "requires": { "abbrev": "^2.0.0" } }, "normalize-package-data": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", - "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.0.tgz", + "integrity": "sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==", "requires": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", + "hosted-git-info": "^8.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } @@ -25817,17 +26556,17 @@ } }, "npm-bundled": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", "requires": { - "npm-normalize-package-bin": "^3.0.0" + "npm-normalize-package-bin": "^4.0.0" } }, "npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.0.tgz", + "integrity": "sha512-bkTildVlofeMX7wiOaWk3PlW7YcBXAuEc7TWpOxwUgalG5ZvgT/ms+6OX9zt7iGLv4+VhKbRZhpOfgQJzk1YAw==", "requires": { "semver": "^7.1.1" } @@ -25838,53 +26577,157 @@ "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" }, "npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==" }, "npm-package-arg": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", - "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", + "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", "requires": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "validate-npm-package-name": "^6.0.0" } }, "npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-9.0.0.tgz", + "integrity": "sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==", "requires": { - "ignore-walk": "^6.0.4" + "ignore-walk": "^7.0.0" } }, "npm-pick-manifest": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz", - "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", "requires": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", "semver": "^7.3.5" } }, "npm-registry-fetch": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", - "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-18.0.1.tgz", + "integrity": "sha512-5XKlWmVtfTTmnU6rKBjjQDMdnFOVAH9t7D4DG1ZcsIDwkGYBTUl0fMnbzsVSM0t/HZRpyE1VMLZv9O0Bvkj3UA==", "requires": { - "@npmcli/redact": "^2.0.0", + "@npmcli/redact": "^3.0.0", "jsonparse": "^1.3.1", - "make-fetch-happen": "^13.0.0", + "make-fetch-happen": "^14.0.0", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" + }, + "dependencies": { + "@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "requires": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + } + }, + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "requires": { + "debug": "^4.3.4" + } + }, + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "requires": { + "ms": "^2.1.3" + } + }, + "http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "make-fetch-happen": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.1.tgz", + "integrity": "sha512-Z1ndm71UQdcK362F5Wg4IFRBZq4MGeCz+uor5iPROkSjEWEoc1Zn7OSKPvmg01S9XOI8mr+GlRr+W4ABz4ZgdA==", + "requires": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + } + }, + "minipass-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", + "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", + "requires": { + "encoding": "^0.1.13", + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + } + }, + "minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "requires": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + } + }, + "socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "requires": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + } + }, + "ssri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", + "requires": { + "minipass": "^7.0.3" + } + } } }, "npm-run-path": { @@ -26012,12 +26855,9 @@ } }, "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", + "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==" }, "p-try": { "version": "2.2.0", @@ -26026,41 +26866,89 @@ "dev": true }, "package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, "pacote": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", - "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", - "requires": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/package-json": "^5.1.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^8.0.0", - "cacache": "^18.0.0", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-19.0.0.tgz", + "integrity": "sha512-953pUJqILTeaRvKFcQ78unsNc3Nl4PyVHTTsAUmvSmJ0NXs0LTWKAl5tMF2CXPRXA16RdCMYI9EKlV4CCi2T5g==", + "requires": { + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^17.0.0", - "proc-log": "^4.0.0", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", "sigstore": "^2.2.0", - "ssri": "^10.0.0", + "ssri": "^12.0.0", "tar": "^6.1.11" }, "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, "ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "requires": { "minipass": "^7.0.3" } + }, + "tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + } + } } } }, @@ -26079,19 +26967,19 @@ } }, "parse-conflict-json": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.0.tgz", - "integrity": "sha512-ipcKLCmZbAj7n+h9qQREvdvsBUMPetGk9mM4ljCvs5inZznAlkHPk5XPc7ROtknUKw7kO6Jnz10Y3Eec7tky/A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-4.0.0.tgz", + "integrity": "sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==", "requires": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^5.0.1", + "json-parse-even-better-errors": "^4.0.0", + "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" }, "dependencies": { "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==" } } }, @@ -26308,9 +27196,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -26358,9 +27246,9 @@ } }, "proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==" }, "process-nextick-args": { "version": "2.0.1", @@ -26368,9 +27256,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "proggy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz", - "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proggy/-/proggy-3.0.0.tgz", + "integrity": "sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==" }, "promise-all-reject-late": { "version": "1.0.1", @@ -26532,23 +27420,23 @@ } }, "read-cmd-shim": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz", + "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==" }, "read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", + "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", "requires": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "dependencies": { "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==" } } }, @@ -26739,6 +27627,45 @@ "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz", "integrity": "sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==" }, + "rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "requires": { + "glob": "^10.3.7" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "rsvp": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", @@ -26787,9 +27714,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==" + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" }, "shebang-command": { "version": "2.0.0", @@ -27129,45 +28056,36 @@ } }, "tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" }, "dependencies": { - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } + "minipass": "^7.0.4", + "rimraf": "^5.0.5" } }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==" + }, + "yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==" } } }, @@ -27320,17 +28238,12 @@ }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -27363,17 +28276,17 @@ "dev": true }, "unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", "requires": { - "unique-slug": "^4.0.0" + "unique-slug": "^5.0.0" } }, "unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", "requires": { "imurmurhash": "^0.1.4" } @@ -27437,9 +28350,9 @@ } }, "validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", + "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==" }, "verror": { "version": "1.10.0", diff --git a/npm_and_yarn/helpers/package.json b/npm_and_yarn/helpers/package.json index 3bf1b8c3c1d7..ae7e46177697 100644 --- a/npm_and_yarn/helpers/package.json +++ b/npm_and_yarn/helpers/package.json @@ -11,13 +11,13 @@ }, "dependencies": { "@dependabot/yarn-lib": "^1.22.22", - "@npmcli/arborist": "^7.5.4", + "@npmcli/arborist": "^8.0.0", "detect-indent": "^6.1.0", - "nock": "^13.5.4", + "nock": "^13.5.5", "npm": "6.14.18", "@pnpm/lockfile-file": "^9.1.2", "@pnpm/dependency-path": "^5.1.1", - "semver": "^7.6.2", + "semver": "^7.6.3", "patch-package": "^8.0.0" }, "devDependencies": { From b6d3c5a87aa2d8e8f412d1f8cf20644035718a68 Mon Sep 17 00:00:00 2001 From: kbukum1 Date: Wed, 16 Oct 2024 12:02:09 -0700 Subject: [PATCH 05/20] Remove Bundler v1 Deprecation and Unsupported Feature Flags and Deactivate Bundler v1 CI Tests (#10796) Remove Bundler v1 deprecation flags and deactivate Bundler v1 CI tests, setting Bundler v2 as the default. --- .github/workflows/ci.yml | 3 +- bin/ci-test | 20 +- bundler/Dockerfile | 3 +- bundler/lib/dependabot/bundler/helpers.rb | 14 +- .../lib/dependabot/bundler/package_manager.rb | 12 +- .../update_checker/shared_bundler_helpers.rb | 3 +- bundler/script/ci-test | 15 +- .../bundler/file_parser/file_preparer_spec.rb | 10 +- .../dependabot/bundler/file_parser_spec.rb | 124 +------ .../dependabot/bundler/file_updater_spec.rb | 18 +- .../spec/dependabot/bundler/helper_spec.rb | 4 +- .../bundler/package_manager_spec.rb | 48 +-- .../latest_version_finder_spec.rb | 69 ---- .../update_checker/version_resolver_spec.rb | 80 +---- .../dependabot/bundler/update_checker_spec.rb | 8 +- bundler/spec/spec_helper.rb | 22 +- common/spec/dependabot/notices_spec.rb | 4 +- .../message_builder_spec.rb | 9 - updater/lib/dependabot/notices_helpers.rb | 3 - .../spec/dependabot/notices_helpers_spec.rb | 9 - .../create_group_update_pull_request_spec.rb | 3 - ...reate_security_update_pull_request_spec.rb | 3 - .../refresh_group_update_pull_request_spec.rb | 304 ++++++++++-------- ...fresh_security_update_pull_request_spec.rb | 16 - ...efresh_version_update_pull_request_spec.rb | 16 - .../operations/update_all_versions_spec.rb | 3 - .../updater/pull_request_helpers_spec.rb | 2 - .../fixtures/bundler/original/Gemfile.lock | 2 +- .../fixtures/bundler/original/sub_dep.lock | 2 +- .../fixtures/bundler/updated/Gemfile.lock | 2 +- .../bundler_grouped/original/Gemfile.lock | 2 +- updater/spec/support/dummy_pkg_helpers.rb | 6 +- 32 files changed, 218 insertions(+), 621 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f29ec28bec68..b3e4f1d80260 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,8 +15,7 @@ jobs: fail-fast: false matrix: suite: - - { path: bundler, name: bundler1, ecosystem: bundler } - - { path: bundler, name: bundler2, ecosystem: bundler } + - { path: bundler, name: bundler, ecosystem: bundler } - { path: cargo, name: cargo, ecosystem: cargo } - { path: common, name: common, ecosystem: common} - { path: composer, name: composer, ecosystem: composer } diff --git a/bin/ci-test b/bin/ci-test index 1747d07fea2e..30662e3d0f26 100755 --- a/bin/ci-test +++ b/bin/ci-test @@ -10,17 +10,15 @@ function print_usage() { function handle_args() { export SUITE_NAME=$1 - case $SUITE_NAME in - bundler1 | bundler2) - export MODULE=bundler - ;; - "") - print_usage - exit 1 - ;; - *) - export MODULE=$SUITE_NAME - esac + + # Only allow "bundler" as a valid SUITE_NAME + if [[ "$SUITE_NAME" != "bundler" ]]; then + echo "Error: Only 'bundler' is allowed as SUITE_NAME." + print_usage + exit 1 + fi + + export MODULE="bundler" if ! [ -d "$MODULE" ]; then print_usage diff --git a/bundler/Dockerfile b/bundler/Dockerfile index 928a98c4b5fb..3e30b2edb1a2 100644 --- a/bundler/Dockerfile +++ b/bundler/Dockerfile @@ -3,8 +3,7 @@ FROM ghcr.io/dependabot/dependabot-updater-core USER dependabot COPY --chown=dependabot:dependabot bundler/helpers /opt/bundler/helpers -RUN bash /opt/bundler/helpers/v1/build \ - && bash /opt/bundler/helpers/v2/build +RUN bash /opt/bundler/helpers/v2/build COPY --chown=dependabot:dependabot bundler $DEPENDABOT_HOME/bundler COPY --chown=dependabot:dependabot common $DEPENDABOT_HOME/common diff --git a/bundler/lib/dependabot/bundler/helpers.rb b/bundler/lib/dependabot/bundler/helpers.rb index 6bd5d504a24a..7583f04c301d 100644 --- a/bundler/lib/dependabot/bundler/helpers.rb +++ b/bundler/lib/dependabot/bundler/helpers.rb @@ -20,23 +20,11 @@ def self.bundler_version(lockfile) if (matches = lockfile.content&.match(BUNDLER_MAJOR_VERSION_REGEX)) matches[:version].to_i >= 2 ? V2 : V1 - elsif Dependabot::Experiments.enabled?(:bundler_v1_unsupported_error) - DEFAULT else - failover_version + DEFAULT end end - # If we are updating a project with a Gemfile.lock that does not specify - # the version it was bundled with, we failover to V1 on the assumption - # it was created with an old version that didn't add this information - sig { returns(String) } - def self.failover_version - return V2 if Dependabot::Experiments.enabled?(:bundler_v1_unsupported_error) - - V1 - end - sig { params(lockfile: T.nilable(Dependabot::DependencyFile)).returns(String) } def self.detected_bundler_version(lockfile) return "unknown" unless lockfile diff --git a/bundler/lib/dependabot/bundler/package_manager.rb b/bundler/lib/dependabot/bundler/package_manager.rb index 6e33bd9f2e52..b5c2816ab0bf 100644 --- a/bundler/lib/dependabot/bundler/package_manager.rb +++ b/bundler/lib/dependabot/bundler/package_manager.rb @@ -12,9 +12,11 @@ module Bundler # Keep versions in ascending order SUPPORTED_BUNDLER_VERSIONS = T.let([Version.new("2")].freeze, T::Array[Dependabot::Version]) - DEPRECATED_BUNDLER_VERSIONS = T.let([ - Version.new("1") - ].freeze, T::Array[Dependabot::Version]) + # Currently, we don't support any deprecated versions of Bundler + # When a version is going to be unsupported, it will be added here for a while to give users time to upgrade + # Example for deprecation: + # DEPRECATED_BUNDLER_VERSIONS = T.let([Version.new("1")].freeze, T::Array[Dependabot::Version]) + DEPRECATED_BUNDLER_VERSIONS = T.let([].freeze, T::Array[Dependabot::Version]) class PackageManager < PackageManagerBase extend T::Sig @@ -41,9 +43,7 @@ def initialize(version) sig { override.returns(T::Boolean) } def unsupported? - # Check if the feature flag for Bundler v1 unsupported error is enabled. - return false unless Dependabot::Experiments.enabled?(:bundler_v1_unsupported_error) - + # Check if the version is not supported supported_versions.all? { |supported| supported > version } end end diff --git a/bundler/lib/dependabot/bundler/update_checker/shared_bundler_helpers.rb b/bundler/lib/dependabot/bundler/update_checker/shared_bundler_helpers.rb index 186370fdf36d..5ddd1a92cb4b 100644 --- a/bundler/lib/dependabot/bundler/update_checker/shared_bundler_helpers.rb +++ b/bundler/lib/dependabot/bundler/update_checker/shared_bundler_helpers.rb @@ -31,8 +31,7 @@ module SharedBundlerHelpers PATH_REGEX = /The path `(?.*)` does not exist/ module BundlerErrorPatterns - # The `set --global` optional part can be made required when Bundler 1 support is dropped - MISSING_AUTH_REGEX = /bundle config (?:set --global )?(?.*) username:password/ + MISSING_AUTH_REGEX = /bundle config set --global (?.*) username:password/ BAD_AUTH_REGEX = /Bad username or password for (?.*)\.$/ FORBIDDEN_AUTH_REGEX = /Access token could not be authenticated for (?.*)\.$/ diff --git a/bundler/script/ci-test b/bundler/script/ci-test index a04d01a8e008..ecab00746b32 100755 --- a/bundler/script/ci-test +++ b/bundler/script/ci-test @@ -8,14 +8,7 @@ bundle exec turbo_tests --verbose # NOTE: Don't use `if` branches without `else` part, since the code in some of # then seems to not abort the script regardless of `set -e` -if [[ "$SUITE_NAME" == "bundler1" ]]; then - # shellcheck source=../helpers/v1/build - DEPENDABOT_NATIVE_HELPERS_PATH="" source helpers/v1/build \ - && BUNDLER_VERSION=1.17.3 ./patched_bundler exec rspec spec\ - && cd - -else - # shellcheck source=../helpers/v2/build - DEPENDABOT_NATIVE_HELPERS_PATH="" source helpers/v2/build \ - && bundle exec rspec spec \ - && cd - -fi +# shellcheck source=../helpers/v2/build +DEPENDABOT_NATIVE_HELPERS_PATH="" source helpers/v2/build \ + && bundle exec rspec spec \ + && cd - diff --git a/bundler/spec/dependabot/bundler/file_parser/file_preparer_spec.rb b/bundler/spec/dependabot/bundler/file_parser/file_preparer_spec.rb index 80b98ab8c961..aa2317e6e48f 100644 --- a/bundler/spec/dependabot/bundler/file_parser/file_preparer_spec.rb +++ b/bundler/spec/dependabot/bundler/file_parser/file_preparer_spec.rb @@ -19,15 +19,7 @@ its(:content) { is_expected.to include('gem "business", "~> 1.4.0"') } end - describe "the updated lockfile", :bundler_v1_only do - subject do - prepared_dependency_files.find { |f| f.name == "Gemfile.lock" } - end - - its(:content) { is_expected.to include("1.10.6") } - end - - describe "the updated lockfile", :bundler_v2_only do + describe "the updated lockfile" do subject do prepared_dependency_files.find { |f| f.name == "Gemfile.lock" } end diff --git a/bundler/spec/dependabot/bundler/file_parser_spec.rb b/bundler/spec/dependabot/bundler/file_parser_spec.rb index ea0b8d2b2c1d..4d2281a30a32 100644 --- a/bundler/spec/dependabot/bundler/file_parser_spec.rb +++ b/bundler/spec/dependabot/bundler/file_parser_spec.rb @@ -172,32 +172,7 @@ its(:length) { is_expected.to eq(5) } - describe "an untagged dependency", :bundler_v1_only do - subject { dependencies.find { |d| d.name == "uk_phone_numbers" } } - - let(:expected_requirements) do - [{ - requirement: ">= 0", - file: "Gemfile", - source: { - type: "git", - url: "https://github.com/dependabot-fixtures/uk_phone_numbers", - branch: nil, - ref: "master" - }, - groups: [:default] - }] - end - - it { is_expected.to be_a(Dependabot::Dependency) } - its(:requirements) { is_expected.to eq(expected_requirements) } - - its(:version) do - is_expected.to eq("1530024bd6a68d36ac18e04836ce110e0d433c36") - end - end - - describe "an untagged dependency", :bundler_v2_only do + describe "an untagged dependency" do subject { dependencies.find { |d| d.name == "uk_phone_numbers" } } let(:expected_requirements) do @@ -247,34 +222,7 @@ end end - describe "a github dependency", :bundler_v1_only do - subject { dependencies.find { |d| d.name == "business" } } - - let(:dependency_files) { bundler_project_dependency_files("github_source") } - - let(:expected_requirements) do - [{ - requirement: ">= 0", - file: "Gemfile", - source: { - type: "git", - url: "https://github.com/dependabot-fixtures/business.git", - branch: nil, - ref: "master" - }, - groups: [:default] - }] - end - - it { is_expected.to be_a(Dependabot::Dependency) } - its(:requirements) { is_expected.to eq(expected_requirements) } - - its(:version) do - is_expected.to eq("d31e445215b5af70c1604715d97dd953e868380e") - end - end - - describe "a github dependency", :bundler_v2_only do + describe "a github dependency" do subject { dependencies.find { |d| d.name == "business" } } let(:dependency_files) { bundler_project_dependency_files("github_source") } @@ -301,31 +249,7 @@ end end - context "with a subdependency of a git source", :bundler_v1_only do - subject { dependencies.find { |d| d.name == "kaminari-actionview" } } - - let(:dependency_files) { bundler_project_dependency_files("git_source_undeclared") } - - let(:expected_requirements) do - [{ - requirement: ">= 0", - file: "Gemfile", - source: { - type: "git", - url: "https://github.com/dependabot-fixtures/kaminari", - branch: nil, - ref: "master" - }, - groups: [:default] - }] - end - - it { is_expected.to be_a(Dependabot::Dependency) } - its(:name) { is_expected.to eq("kaminari-actionview") } - its(:requirements) { is_expected.to eq(expected_requirements) } - end - - context "with a subdependency of a git source", :bundler_v2_only do + context "with a subdependency of a git source" do subject { dependencies.find { |d| d.name == "kaminari-actionview" } } let(:dependency_files) { bundler_project_dependency_files("git_source_undeclared") } @@ -589,48 +513,6 @@ end end - context "with an unparseable git dep that also appears in the gemspec", :bundler_v1_only do - let(:dependency_files) { bundler_project_dependency_files("git_source_unparseable") } - - it "includes source details on the gemspec requirement" do - expect(dependencies.map(&:name)).to match_array(%w(business)) - expect(dependencies.first.name).to eq("business") - expect(dependencies.first.version) - .to eq("1378a2b0b446d991b7567efbc7eeeed2720e4d8f") - expect(dependencies.first.requirements) - .to contain_exactly({ - file: "example.gemspec", - requirement: "~> 1.0", - groups: ["runtime"], - source: { - type: "git", - url: "git@github.com:dependabot-fixtures/business", - branch: nil, - ref: "master" - } - }) - end - - it "includes source details on the gemspec requirement", :bundler_v2_only do - expect(dependencies.map(&:name)).to match_array(%w(business)) - expect(dependencies.first.name).to eq("business") - expect(dependencies.first.version) - .to eq("1378a2b0b446d991b7567efbc7eeeed2720e4d8f") - expect(dependencies.first.requirements) - .to contain_exactly({ - file: "example.gemspec", - requirement: "~> 1.0", - groups: ["runtime"], - source: { - type: "git", - url: "git@github.com:dependabot-fixtures/business", - branch: nil, - ref: nil - } - }) - end - end - context "with two gemspecs" do let(:dependency_files) { bundler_project_dependency_files("imports_two_gemspecs") } diff --git a/bundler/spec/dependabot/bundler/file_updater_spec.rb b/bundler/spec/dependabot/bundler/file_updater_spec.rb index 391866828f9a..2b364f451a4d 100644 --- a/bundler/spec/dependabot/bundler/file_updater_spec.rb +++ b/bundler/spec/dependabot/bundler/file_updater_spec.rb @@ -378,11 +378,7 @@ expect(file.content).to include("statesman (1.3.1)") end - it "locks the yanked gem to the latest version allowed by the Gemfile", :bundler_v1_only do - expect(file.content).to include("business (1.18.0)") - end - - it "does not touch the yanked gem", :bundler_v2_only do + it "does not touch the yanked gem" do expect(file.content).to include("business (1.4.1)") end end @@ -399,11 +395,7 @@ expect(file.content).to include("statesman (1.2.1)") end - it "preserves the BUNDLED WITH line in the lockfile", :bundler_v1_only do - expect(file.content).to include("BUNDLED WITH\n 1.10.6") - end - - it "preserves the BUNDLED WITH line in the lockfile", :bundler_v2_only do + it "preserves the BUNDLED WITH line in the lockfile" do expect(file.content).to include("BUNDLED WITH\n 2.2.0") end @@ -1513,11 +1505,7 @@ }] end - it "raises an error", :bundler_v1_only do - expect { updated_gemfile }.to raise_error(/Bundler could not find compatible versions for gem "bundler"/) - end - - it "returns the latest version", :bundler_v2_only do + it "returns the latest version" do expect(updated_gemfile.content).to include("\"guard-bundler\", \"~> 2.2.1\"") end end diff --git a/bundler/spec/dependabot/bundler/helper_spec.rb b/bundler/spec/dependabot/bundler/helper_spec.rb index 7f165ebe8557..247ae784f57b 100644 --- a/bundler/spec/dependabot/bundler/helper_spec.rb +++ b/bundler/spec/dependabot/bundler/helper_spec.rb @@ -50,8 +50,8 @@ def described_method(lockfile) expect(described_method(no_lockfile)).to eql("2") end - it "is 1 if there is no bundled with string" do - expect(described_method(lockfile_bundled_with_missing)).to eql("1") + it "is 2 if there is no bundled with string" do + expect(described_method(lockfile_bundled_with_missing)).to eql("2") end it "is 1 if it was bundled with a v1.x version" do diff --git a/bundler/spec/dependabot/bundler/package_manager_spec.rb b/bundler/spec/dependabot/bundler/package_manager_spec.rb index da93cd63a73c..35b69eaba926 100644 --- a/bundler/spec/dependabot/bundler/package_manager_spec.rb +++ b/bundler/spec/dependabot/bundler/package_manager_spec.rb @@ -58,24 +58,17 @@ end describe "#deprecated?" do - before do - allow(Dependabot::Experiments).to receive(:enabled?) - .with(:bundler_v1_unsupported_error) - .and_return(feature_flag_enabled) - end - context "when version is deprecated but not unsupported" do let(:version) { "1" } - let(:feature_flag_enabled) { false } it "returns true" do + allow(package_manager).to receive_messages(deprecated?: true) expect(package_manager.deprecated?).to be true end end context "when version is unsupported" do let(:version) { "0.9" } - let(:feature_flag_enabled) { true } it "returns false, as unsupported takes precedence" do expect(package_manager.deprecated?).to be false @@ -84,59 +77,34 @@ end describe "#unsupported?" do - before do - allow(Dependabot::Experiments).to receive(:enabled?) - .with(:bundler_v1_unsupported_error) - .and_return(feature_flag_enabled) - end - - context "when feature flag is enabled and version is unsupported" do - let(:version) { "0.9" } - let(:feature_flag_enabled) { true } - - it "returns true" do - expect(package_manager.unsupported?).to be true - end - end - - context "when feature flag is enabled and version is supported" do + context "when version is supported" do let(:version) { "2" } - let(:feature_flag_enabled) { true } it "returns false" do expect(package_manager.unsupported?).to be false end end - context "when feature flag is disabled" do + context "when version is not supported" do let(:version) { "0.9" } - let(:feature_flag_enabled) { false } - it "returns false" do - expect(package_manager.unsupported?).to be false + it "returns true" do + expect(package_manager.unsupported?).to be true end end end describe "#raise_if_unsupported!" do - before do - allow(Dependabot::Experiments).to receive(:enabled?) - .with(:bundler_v1_unsupported_error) - .and_return(feature_flag_enabled) - end - - context "when feature flag is enabled and version is unsupported" do + context "when version is unsupported" do let(:version) { "0.9" } - let(:feature_flag_enabled) { true } it "raises a ToolVersionNotSupported error" do expect { package_manager.raise_if_unsupported! }.to raise_error(Dependabot::ToolVersionNotSupported) end end - context "when feature flag is disabled" do - let(:version) { "0.9" } - let(:feature_flag_enabled) { false } + context "when version is supported" do + let(:version) { "2.1" } it "does not raise an error" do expect { package_manager.raise_if_unsupported! }.not_to raise_error diff --git a/bundler/spec/dependabot/bundler/update_checker/latest_version_finder_spec.rb b/bundler/spec/dependabot/bundler/update_checker/latest_version_finder_spec.rb index 89a23ab046d5..e81ad5ea99b7 100644 --- a/bundler/spec/dependabot/bundler/update_checker/latest_version_finder_spec.rb +++ b/bundler/spec/dependabot/bundler/update_checker/latest_version_finder_spec.rb @@ -311,75 +311,6 @@ its([:version]) { is_expected.to eq(Gem::Version.new("1.5.0")) } end - context "when we don't have authentication details", :bundler_v1_only do - let(:error_message) do - <<~ERR - Authentication is required for repo.fury.io. - Please supply credentials for this source. You can do this by running: - bundle config repo.fury.io username:password - ERR - end - - let(:error_class) do - "Bundler::Fetcher::AuthenticationRequiredError" - end - - before do - allow(Dependabot::Bundler::NativeHelpers) - .to receive(:run_bundler_subprocess) - .with({ - bundler_version: bundler_version, - function: "private_registry_versions", - options: anything, - args: anything - }) - .and_raise(subprocess_error) - end - - it "blows up with a useful error" do - error_class = Dependabot::PrivateSourceAuthenticationFailure - expect { finder.latest_version_details } - .to raise_error do |error| - expect(error).to be_a(error_class) - expect(error.source).to eq("repo.fury.io") - end - end - end - - context "when we don't have authentication details", :bundler_v2_only do - let(:error_message) do - <<~ERR - Bad username or password for https://user:secret@repo.fury.io/greysteil/. - Please double-check your credentials and correct them. - ERR - end - - let(:error_class) do - "Bundler::Fetcher::BadAuthenticationError" - end - - before do - allow(Dependabot::Bundler::NativeHelpers) - .to receive(:run_bundler_subprocess) - .with({ - bundler_version: bundler_version, - function: "private_registry_versions", - options: anything, - args: anything - }) - .and_raise(subprocess_error) - end - - it "blows up with a useful error" do - error_class = Dependabot::PrivateSourceAuthenticationFailure - expect { finder.latest_version_details } - .to raise_error do |error| - expect(error).to be_a(error_class) - expect(error.source).to eq("https://repo.fury.io/") - end - end - end - context "when we have bad authentication details" do let(:error_message) do <<~ERR diff --git a/bundler/spec/dependabot/bundler/update_checker/version_resolver_spec.rb b/bundler/spec/dependabot/bundler/update_checker/version_resolver_spec.rb index d8293196eb47..f314da5868f4 100644 --- a/bundler/spec/dependabot/bundler/update_checker/version_resolver_spec.rb +++ b/bundler/spec/dependabot/bundler/update_checker/version_resolver_spec.rb @@ -89,11 +89,7 @@ let(:dependency_files) { bundler_project_dependency_files("blocked_by_subdep") } - it "only upgrades as far as the subdep allows", :bundler_v1_only do - expect(latest_resolvable_version_details[:version]).to eq(Gem::Version.new("1.1.0")) - end - - it "is still able to upgrade to the latest version by upgrading the subdep as well", :bundler_v2_only do + it "is still able to upgrade to the latest version by upgrading the subdep as well" do expect(latest_resolvable_version_details[:version]).to eq(Gem::Version.new("2.0.0")) end end @@ -119,44 +115,7 @@ end end - context "with a Bundler v1 version specified", :bundler_v1_only do - let(:requirement_string) { "~> 1.4.0" } - - let(:dependency_files) { bundler_project_dependency_files("bundler_specified") } - - its([:version]) { is_expected.to eq(Gem::Version.new("1.4.0")) } - - context "when attempting to update Bundler" do - let(:dependency_name) { "bundler" } - let(:dependency_files) { bundler_project_dependency_files("bundler_specified") } - - include_context "when stubbing rubygems versions api" - - its([:version]) { is_expected.to eq(Gem::Version.new("1.16.3")) } - - context "when wrapped in a source block" do - let(:dependency_files) do - bundler_project_dependency_files("bundler_specified_in_source_bundler_specified") - end - - its([:version]) { is_expected.to eq(Gem::Version.new("1.16.3")) } - end - - context "when required by another dependency" do - let(:gemfile_fixture_name) { "bundler_specified_and_required" } - let(:lockfile_fixture_name) do - "bundler_specified_and_required.lock" - end - - it "is nil" do - skip("skipped due to https://github.com/dependabot/dependabot-core/issues/2364") - expect(latest_resolvable_version_details).to be_nil - end - end - end - end - - context "with a Bundler v2 version specified", :bundler_v2_only do + context "with a Bundler v2 version specified" do let(:requirement_string) { "~> 1.4.0" } let(:dependency_files) { bundler_project_dependency_files("bundler_specified") } @@ -175,28 +134,7 @@ end end - context "with a dependency that requires bundler v1", :bundler_v1_only do - let(:dependency_name) { "guard-bundler" } - let(:requirement_string) { "2.2.1" } - - let(:dependency_files) { bundler_project_dependency_files("requires_bundler") } - - its([:version]) { is_expected.to eq(Gem::Version.new("2.2.1")) } - end - - context "when bundled with v1 and requesting a version that requires bundler v2", :bundler_v1_only do - let(:dependency_name) { "guard-bundler" } - let(:requirement_string) { "~> 3.0.0" } - - let(:dependency_files) { bundler_project_dependency_files("requires_bundler") } - - it "raises a DependencyFileNotResolvable error" do - expect { latest_resolvable_version_details } - .to raise_error(Dependabot::DependencyFileNotResolvable) - end - end - - context "with a dependency that requires bundler v2", :bundler_v2_only do + context "with a dependency that requires bundler v2" do let(:dependency_name) { "guard-bundler" } let(:requirement_string) { "3.0.0" } @@ -247,11 +185,7 @@ let(:dependency_files) { bundler_project_dependency_files("version_conflict_with_listed_subdep") } - it "does not allow the upgrade", :bundler_v1_only do - expect(latest_resolvable_version_details[:version]).to eq(Gem::Version.new("3.6.0")) - end - - it "is still able to upgrade", :bundler_v2_only do + it "is still able to upgrade" do expect(latest_resolvable_version_details[:version]).to be > Gem::Version.new("3.6.0") end end @@ -424,11 +358,7 @@ } end - it "is nil", :bundler_v1_only do - expect(resolver.latest_resolvable_version_details).to be_nil - end - - it "still resolves fine if the circular dependency does not cause any conflicts", :bundler_v2_only do + it "still resolves fine if the circular dependency does not cause any conflicts" do expect(resolver.latest_resolvable_version_details[:version].to_s).to eq("0.0.1") end end diff --git a/bundler/spec/dependabot/bundler/update_checker_spec.rb b/bundler/spec/dependabot/bundler/update_checker_spec.rb index 83352a9e32d2..2d6ecd78ee42 100644 --- a/bundler/spec/dependabot/bundler/update_checker_spec.rb +++ b/bundler/spec/dependabot/bundler/update_checker_spec.rb @@ -1339,7 +1339,7 @@ .to_return(status: 401) end - it "raises a helpful error", :bundler_v2_only do + it "raises a helpful error" do expect { checker.latest_resolvable_version } .to raise_error do |error| expect(error).to be_a(Dependabot::GitDependenciesNotReachable) @@ -1383,11 +1383,7 @@ let(:dependency_name) { "guard-bundler" } let(:current_version) { "2.2.1" } - context "when using bundler v1", :bundler_v1_only do - it { is_expected.to eq(Gem::Version.new("2.2.1")) } - end - - context "when using bundler v2", :bundler_v2_only do + context "when using bundler v2" do it { is_expected.to eq(Gem::Version.new("3.0.0")) } end end diff --git a/bundler/spec/spec_helper.rb b/bundler/spec/spec_helper.rb index 6e76d874e91e..aa5091c6e732 100644 --- a/bundler/spec/spec_helper.rb +++ b/bundler/spec/spec_helper.rb @@ -12,16 +12,8 @@ def require_common_spec(path) require "#{common_dir}/spec/spec_helper.rb" module PackageManagerHelper - def self.use_bundler_1? - ENV["SUITE_NAME"] == "bundler1" - end - - def self.use_bundler_2? - !use_bundler_1? - end - def self.bundler_version - use_bundler_2? ? "2" : "1" + "2" end end @@ -45,7 +37,7 @@ def bundler_project_dependency_file(project, filename:) end def bundler_build_tmp_repo(project) - build_tmp_repo(project, path: "projects/bundler1") + build_tmp_repo(project, path: "projects/bundler2") end def suppress_output @@ -60,16 +52,6 @@ def suppress_output end RSpec.configure do |config| - config.around do |example| - if PackageManagerHelper.use_bundler_2? && example.metadata[:bundler_v1_only] - example.skip - elsif PackageManagerHelper.use_bundler_1? && example.metadata[:bundler_v2_only] - example.skip - else - example.run - end - end - config.after do # Cleanup side effects from cloning git gems, so that they don't interfere # with other specs. diff --git a/common/spec/dependabot/notices_spec.rb b/common/spec/dependabot/notices_spec.rb index 407d34abf2b9..cde5924755d1 100644 --- a/common/spec/dependabot/notices_spec.rb +++ b/common/spec/dependabot/notices_spec.rb @@ -35,9 +35,6 @@ def deprecated? sig { override.returns(T::Boolean) } def unsupported? - # Check if the feature flag for Bundler v1 unsupported error is enabled. - return false unless Dependabot::Experiments.enabled?(:bundler_v1_unsupported_error) - # Determine if the Bundler version is unsupported. version < supported_versions.first end @@ -129,6 +126,7 @@ def unsupported? end it "returns the correct deprecation notice" do + allow(package_manager).to receive(:unsupported?).and_return(false) expect(generate_pm_deprecation_notice.to_hash) .to eq({ mode: "WARN", diff --git a/common/spec/dependabot/pull_request_creator/message_builder_spec.rb b/common/spec/dependabot/pull_request_creator/message_builder_spec.rb index b0f068ef6515..e8d5389a3f15 100644 --- a/common/spec/dependabot/pull_request_creator/message_builder_spec.rb +++ b/common/spec/dependabot/pull_request_creator/message_builder_spec.rb @@ -168,15 +168,6 @@ def commits_details(base:, head:) end end - before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) - end - - after do - Dependabot::Experiments.reset! - end - describe "#pr_name" do subject(:pr_name) { builder.pr_name } diff --git a/updater/lib/dependabot/notices_helpers.rb b/updater/lib/dependabot/notices_helpers.rb index b5a646c07f21..c8f52474df8f 100644 --- a/updater/lib/dependabot/notices_helpers.rb +++ b/updater/lib/dependabot/notices_helpers.rb @@ -60,9 +60,6 @@ def log_notice(notice) sig { params(package_manager: T.nilable(PackageManagerBase)).returns(T.nilable(Dependabot::Notice)) } def create_deprecation_notice(package_manager) - # Feature flag check if deprecation notice should be added to notices. - return unless Dependabot::Experiments.enabled?(:add_deprecation_warn_to_pr_message) - return unless package_manager return unless package_manager.is_a?(PackageManagerBase) diff --git a/updater/spec/dependabot/notices_helpers_spec.rb b/updater/spec/dependabot/notices_helpers_spec.rb index 318612cd56ca..45ac2b598b39 100644 --- a/updater/spec/dependabot/notices_helpers_spec.rb +++ b/updater/spec/dependabot/notices_helpers_spec.rb @@ -42,15 +42,6 @@ def supported_versions end.new end - before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) - end - - after do - Dependabot::Experiments.reset! - end - describe "#add_deprecation_notice" do context "when package manager is provided and is deprecated" do it "adds a deprecation notice to the notices array" do diff --git a/updater/spec/dependabot/updater/operations/create_group_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/create_group_update_pull_request_spec.rb index 6376b88bf346..15d904b453f6 100644 --- a/updater/spec/dependabot/updater/operations/create_group_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/create_group_update_pull_request_spec.rb @@ -135,9 +135,6 @@ end before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) - allow(Dependabot::UpdateCheckers).to receive(:for_package_manager).and_return(stub_update_checker_class) allow(Dependabot::DependencyChangeBuilder) .to receive(:create_from) diff --git a/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb index e11778a9e63c..3fd645e8c9d6 100644 --- a/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/create_security_update_pull_request_spec.rb @@ -208,9 +208,6 @@ end before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) - allow(Dependabot::UpdateCheckers).to receive( :for_package_manager ).and_return(stub_update_checker_class) diff --git a/updater/spec/dependabot/updater/operations/refresh_group_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/refresh_group_update_pull_request_spec.rb index 3825770be6da..e877821b7833 100644 --- a/updater/spec/dependabot/updater/operations/refresh_group_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/refresh_group_update_pull_request_spec.rb @@ -17,7 +17,7 @@ include DependencyFileHelpers include DummyPkgHelpers - subject(:group_update_all) do + subject(:refresh_group) do described_class.new( service: mock_service, job: job, @@ -55,188 +55,208 @@ instance_double(Dependabot::Updater::ErrorHandler) end - after do - Dependabot::Experiments.reset! + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh_dependencies_changed") end - context "when the same dependencies need to be updated to the same target versions" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh") - end + let(:dependency_files) do + original_bundler_files + end - let(:dependency_files) do - original_bundler_files - end + let(:package_manager) do + DummyPkgHelpers::StubPackageManager.new( + name: "bundler", + version: package_manager_version, + deprecated_versions: deprecated_versions, + supported_versions: supported_versions + ) + end - before do - stub_rubygems_calls - end + let(:package_manager_version) { "2" } + let(:supported_versions) { %w(2 3) } + let(:deprecated_versions) { %w(1) } - it "updates the existing pull request without errors" do - expect(mock_service).to receive(:update_pull_request) do |dependency_change| - expect(dependency_change.dependency_group.name).to eql("everything-everywhere-all-at-once") - expect(dependency_change.updated_dependency_files_hash).to eql(updated_bundler_files_hash) - end + after do + Dependabot::Experiments.reset! + end - group_update_all.perform - end + before do + allow(dependency_snapshot).to receive(:package_manager).and_return(package_manager) + allow(job).to receive(:package_manager).and_return("bundler") end - context "when the dependencies have been since been updated by someone else and there's nothing to do" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh") - end + describe "#perform" do + context "when the same dependencies need to be updated to the same target versions" do + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh") + end - let(:dependency_files) do - updated_bundler_files - end + before do + stub_rubygems_calls + end - before do - stub_rubygems_calls + it "updates the existing pull request without errors" do + expect(mock_service).to receive(:update_pull_request) do |dependency_change| + expect(dependency_change.dependency_group.name).to eql("everything-everywhere-all-at-once") + expect(dependency_change.updated_dependency_files_hash).to eql(updated_bundler_files_hash) + end + + refresh_group.perform + end end - it "closes the pull request" do - expect(mock_service).to receive(:close_pull_request).with(["dummy-pkg-b"], :update_no_longer_possible) + context "when the dependencies have been since been updated by someone else and there's nothing to do" do + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh") + end - group_update_all.perform - end - end + let(:dependency_files) do + updated_bundler_files + end - context "when the dependencies that need to be updated have changed" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh_dependencies_changed") - end + before do + stub_rubygems_calls + end - let(:dependency_files) do - original_bundler_files - end + it "closes the pull request" do + expect(mock_service).to receive(:close_pull_request).with(["dummy-pkg-b"], :update_no_longer_possible) - before do - stub_rubygems_calls + refresh_group.perform + end end - it "closes the existing pull request and creates a new one" do - expect(mock_service).to receive(:close_pull_request).with(%w(dummy-pkg-b dummy-pkg-c), :dependencies_changed) + context "when the dependencies that need to be updated have changed" do + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh_dependencies_changed") + end - expect(mock_service).to receive(:create_pull_request) do |dependency_change| - expect(dependency_change.dependency_group.name).to eql("everything-everywhere-all-at-once") - expect(dependency_change.updated_dependency_files_hash).to eql(updated_bundler_files_hash) + let(:dependency_files) do + original_bundler_files end - group_update_all.perform - end - end + before do + stub_rubygems_calls + end - context "when a dependency needs to be updated to a different version" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh_versions_changed") - end + it "closes the existing pull request and creates a new one" do + expect(mock_service).to receive(:close_pull_request).with(%w(dummy-pkg-b dummy-pkg-c), :dependencies_changed) - let(:dependency_files) do - original_bundler_files - end + expect(mock_service).to receive(:create_pull_request) do |dependency_change| + expect(dependency_change.dependency_group.name).to eql("everything-everywhere-all-at-once") + expect(dependency_change.updated_dependency_files_hash).to eql(updated_bundler_files_hash) + end - before do - stub_rubygems_calls + refresh_group.perform + end end - it "creates a new pull request to supersede the existing one" do - expect(mock_service).to receive(:create_pull_request) do |dependency_change| - expect(dependency_change.dependency_group.name).to eql("everything-everywhere-all-at-once") - expect(dependency_change.updated_dependency_files_hash).to eql(updated_bundler_files_hash) + context "when a dependency needs to be updated to a different version" do + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh_versions_changed") end - group_update_all.perform - end - end + let(:dependency_files) do + original_bundler_files + end - # This shouldn't be possible as the grouped update shouldn't put a dependency in more than one group. - # But it's useful to test what will happen on refresh if it does get in this state. - context "when there is a pull request for an overlapping group" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh_similar_pr") - end + before do + stub_rubygems_calls + end - let(:dependency_files) do - original_bundler_files - end + it "creates a new pull request to supersede the existing one" do + expect(mock_service).to receive(:create_pull_request) do |dependency_change| + expect(dependency_change.dependency_group.name).to eql("everything-everywhere-all-at-once") + expect(dependency_change.updated_dependency_files_hash).to eql(updated_bundler_files_hash) + end - before do - stub_rubygems_calls + refresh_group.perform + end end - it "considers the dependencies in the other PRs as handled, and closes the duplicate PR" do - expect(mock_service).to receive(:close_pull_request).with(["dummy-pkg-b"], :update_no_longer_possible) + # This shouldn't be possible as the grouped update shouldn't put a dependency in more than one group. + # But it's useful to test what will happen on refresh if it does get in this state. + context "when there is a pull request for an overlapping group" do + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh_similar_pr") + end - group_update_all.perform + let(:dependency_files) do + original_bundler_files + end - # It added all of the other existing grouped PRs to the handled list - expect(dependency_snapshot.handled_dependencies).to match_array(%w(dummy-pkg-a dummy-pkg-b dummy-pkg-c - dummy-pkg-d)) - end - end + before do + stub_rubygems_calls + end - context "when the target dependency group is no longer present in the project's config" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh_missing_group") - end + it "considers the dependencies in the other PRs as handled, and closes the duplicate PR" do + expect(mock_service).to receive(:close_pull_request).with(["dummy-pkg-b"], :update_no_longer_possible) - let(:dependency_files) do - original_bundler_files - end + refresh_group.perform - before do - stub_rubygems_calls + # It added all of the other existing grouped PRs to the handled list + expect(dependency_snapshot.handled_dependencies).to match_array(%w(dummy-pkg-a dummy-pkg-b dummy-pkg-c + dummy-pkg-d)) + end end - it "does nothing, logs a warning and notices an error" do - # Our mocks will fail due to unexpected messages if any errors or PRs are dispatched + context "when the target dependency group is no longer present in the project's config" do + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh_missing_group") + end - expect(Dependabot.logger).to receive(:warn).with( - "The 'everything-everywhere-all-at-once' group has been removed from the update config." - ) + let(:dependency_files) do + original_bundler_files + end - expect(mock_service).to receive(:capture_exception).with( - error: an_instance_of(Dependabot::DependabotError), - job: job - ) + before do + stub_rubygems_calls + end - group_update_all.perform - end - end + it "does nothing, logs a warning and notices an error" do + # Our mocks will fail due to unexpected messages if any errors or PRs are dispatched - context "when the target dependency group no longer matches any dependencies in the project" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh_empty_group") - end + expect(Dependabot.logger).to receive(:warn).with( + "The 'everything-everywhere-all-at-once' group has been removed from the update config." + ) - let(:dependency_files) do - original_bundler_files - end + expect(mock_service).to receive(:capture_exception).with( + error: an_instance_of(Dependabot::DependabotError), + job: job + ) - before do - stub_rubygems_calls + refresh_group.perform + end end - it "logs a warning and tells the service to close the Pull Request" do - # Our mocks will fail due to unexpected messages if any errors or PRs are dispatched + context "when the target dependency group no longer matches any dependencies in the project" do + let(:job_definition) do + job_definition_fixture("bundler/version_updates/group_update_refresh_empty_group") + end - allow(Dependabot.logger).to receive(:warn) - expect(Dependabot.logger).to receive(:warn).with( - "Skipping update group for 'everything-everywhere-all-at-once' as it does not match any allowed dependencies." - ) + let(:dependency_files) do + original_bundler_files + end + + before do + stub_rubygems_calls + end - expect(mock_service).to receive(:close_pull_request).with(["dummy-pkg-b"], :dependency_group_empty) + it "logs a warning and tells the service to close the Pull Request" do + # Our mocks will fail due to unexpected messages if any errors or PRs are dispatched - group_update_all.perform + allow(Dependabot.logger).to receive(:warn) + expect(Dependabot.logger).to receive(:warn).with( + "Skipping update group for 'everything-everywhere-all-at-once' as it does not match any allowed dependencies." + ) + + expect(mock_service).to receive(:close_pull_request).with(["dummy-pkg-b"], :dependency_group_empty) + + refresh_group.perform + end end end describe "#deduce_updated_dependency" do - let(:job_definition) do - job_definition_fixture("bundler/version_updates/group_update_refresh_dependencies_changed") - end - let(:dependency_files) do original_bundler_files end @@ -248,13 +268,13 @@ it "returns nil if dependency is nil" do dependency = nil original_dependency = dependency_snapshot.dependencies.first - expect(group_update_all.deduce_updated_dependency(dependency, original_dependency)).to be_nil + expect(refresh_group.deduce_updated_dependency(dependency, original_dependency)).to be_nil end it "returns nil if original_dependency is nil" do dependency = dependency_snapshot.dependencies.first original_dependency = nil - expect(group_update_all.deduce_updated_dependency(dependency, original_dependency)).to be_nil + expect(refresh_group.deduce_updated_dependency(dependency, original_dependency)).to be_nil end end @@ -292,7 +312,7 @@ let(:latest_version) { "1.2.3" } it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end @@ -301,7 +321,7 @@ let(:latest_version) { "1.2.3" } it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end @@ -310,7 +330,7 @@ let(:latest_version) { "1.2.3" } it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end @@ -324,7 +344,7 @@ end it "returns true" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(true) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(true) end end @@ -334,7 +354,7 @@ end it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end @@ -344,7 +364,7 @@ end it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end end @@ -359,7 +379,7 @@ end it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end @@ -369,7 +389,7 @@ end it "returns true" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(true) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(true) end end @@ -379,7 +399,7 @@ end it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end end @@ -394,7 +414,7 @@ end it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end @@ -404,7 +424,7 @@ end it "returns false" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(false) end end @@ -414,7 +434,7 @@ end it "returns true" do - expect(group_update_all.semver_rules_allow_grouping?(group, dependency, checker)).to be(true) + expect(refresh_group.semver_rules_allow_grouping?(group, dependency, checker)).to be(true) end end end diff --git a/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb index a17c542d4d56..a2df8f7bcc86 100644 --- a/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/refresh_security_update_pull_request_spec.rb @@ -142,9 +142,7 @@ end before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) allow(Dependabot::UpdateCheckers).to receive(:for_package_manager).and_return(stub_update_checker_class) allow(Dependabot::DependencyChangeBuilder) @@ -185,20 +183,6 @@ perform end end - - context "when package manager version is unsupported" do - let(:package_manager_version) { "1" } - let(:error) { Dependabot::ToolVersionNotSupported.new("bundler", "1", "v2.*, v3.*") } - - before do - allow(refresh_security_update_pull_request).to receive(:check_and_update_pull_request).and_raise(error) - end - - it "handles the ToolVersionNotSupported error with the error handler" do - expect(mock_error_handler).to receive(:handle_dependency_error).with(error: error, dependency: dependency) - perform - end - end end describe "#check_and_update_pull_request" do diff --git a/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb b/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb index f08f731fc2ad..d8abdac525c6 100644 --- a/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb +++ b/updater/spec/dependabot/updater/operations/refresh_version_update_pull_request_spec.rb @@ -126,9 +126,7 @@ end before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) allow(Dependabot::Experiments).to receive(:enabled?).with(:lead_security_dependency).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) allow(Dependabot::UpdateCheckers).to receive(:for_package_manager).and_return(stub_update_checker_class) allow(Dependabot::DependencyChangeBuilder) @@ -172,20 +170,6 @@ perform end end - - context "when package manager version is unsupported" do - let(:package_manager_version) { "1" } - let(:error) { Dependabot::ToolVersionNotSupported.new("bundler", "1", "v2.*, v3.*") } - - before do - allow(refresh_version_update_pull_request).to receive(:check_and_update_pull_request).and_raise(error) - end - - it "handles the ToolVersionNotSupported error with the error handler" do - expect(mock_error_handler).to receive(:handle_dependency_error).with(error: error, dependency: dependency) - perform - end - end end describe "#check_and_update_pull_request" do diff --git a/updater/spec/dependabot/updater/operations/update_all_versions_spec.rb b/updater/spec/dependabot/updater/operations/update_all_versions_spec.rb index 69e7fc00e62c..cc667cfe6b31 100644 --- a/updater/spec/dependabot/updater/operations/update_all_versions_spec.rb +++ b/updater/spec/dependabot/updater/operations/update_all_versions_spec.rb @@ -151,9 +151,6 @@ end before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) - allow(Dependabot::UpdateCheckers).to receive( :for_package_manager ).and_return(stub_update_checker_class) diff --git a/updater/spec/dependabot/updater/pull_request_helpers_spec.rb b/updater/spec/dependabot/updater/pull_request_helpers_spec.rb index 077397cf42cd..f48f5cbf85c6 100644 --- a/updater/spec/dependabot/updater/pull_request_helpers_spec.rb +++ b/updater/spec/dependabot/updater/pull_request_helpers_spec.rb @@ -46,8 +46,6 @@ def supported_versions end before do - allow(Dependabot::Experiments).to receive(:enabled?).with(:bundler_v1_unsupported_error).and_return(false) - allow(Dependabot::Experiments).to receive(:enabled?).with(:add_deprecation_warn_to_pr_message).and_return(true) allow(service).to receive(:record_update_job_warning) end diff --git a/updater/spec/fixtures/bundler/original/Gemfile.lock b/updater/spec/fixtures/bundler/original/Gemfile.lock index 4fd8f37aaa10..1f21c435958a 100644 --- a/updater/spec/fixtures/bundler/original/Gemfile.lock +++ b/updater/spec/fixtures/bundler/original/Gemfile.lock @@ -13,4 +13,4 @@ DEPENDENCIES dummy-pkg-b (~> 1.1.0) BUNDLED WITH - 1.14.6 + 2.4.13 diff --git a/updater/spec/fixtures/bundler/original/sub_dep.lock b/updater/spec/fixtures/bundler/original/sub_dep.lock index dae47db2ec40..e6d6a5d03cb4 100644 --- a/updater/spec/fixtures/bundler/original/sub_dep.lock +++ b/updater/spec/fixtures/bundler/original/sub_dep.lock @@ -13,4 +13,4 @@ DEPENDENCIES dummy-pkg-b (~> 1.1.0) BUNDLED WITH - 1.14.6 + 2.4.13 \ No newline at end of file diff --git a/updater/spec/fixtures/bundler/updated/Gemfile.lock b/updater/spec/fixtures/bundler/updated/Gemfile.lock index 0e7697ff9a98..6397df8ca71e 100644 --- a/updater/spec/fixtures/bundler/updated/Gemfile.lock +++ b/updater/spec/fixtures/bundler/updated/Gemfile.lock @@ -13,4 +13,4 @@ DEPENDENCIES dummy-pkg-b (~> 1.2.0) BUNDLED WITH - 1.14.6 + 2.4.13 diff --git a/updater/spec/fixtures/bundler_grouped/original/Gemfile.lock b/updater/spec/fixtures/bundler_grouped/original/Gemfile.lock index 48feef3532e8..8dc7b0cd3087 100644 --- a/updater/spec/fixtures/bundler_grouped/original/Gemfile.lock +++ b/updater/spec/fixtures/bundler_grouped/original/Gemfile.lock @@ -15,4 +15,4 @@ DEPENDENCIES ungrouped-dummy-pkg-c (~> 1.0.0) BUNDLED WITH - 1.14.6 + 2.4.13 diff --git a/updater/spec/support/dummy_pkg_helpers.rb b/updater/spec/support/dummy_pkg_helpers.rb index 2f207f5f13ec..2750b821bdf1 100644 --- a/updater/spec/support/dummy_pkg_helpers.rb +++ b/updater/spec/support/dummy_pkg_helpers.rb @@ -89,10 +89,8 @@ def deprecated? sig { override.returns(T::Boolean) } def unsupported? - # Check if the feature flag for Bundler v1 unsupported error is enabled. - return false unless name == "bundler" && Dependabot::Experiments.enabled?(:bundler_v1_unsupported_error) - - version < supported_versions.first + # Check if the version is not supported + supported_versions.all? { |supported| supported > version } end end end From 2e3720ec7f4d2a7b7ed085905716a753f7d4a594 Mon Sep 17 00:00:00 2001 From: kbukum1 Date: Wed, 16 Oct 2024 13:09:23 -0700 Subject: [PATCH 06/20] clean-up bundler v1 code (#10793) Clean-up bundler v1 code. --- .github/workflows/codeql-analysis.yml | 1 - .rubocop.yml | 1 - .rubocop_todo.yml | 1 - bundler/helpers/v1/.gitignore | 8 - bundler/helpers/v1/Gemfile | 7 - bundler/helpers/v1/build | 29 --- bundler/helpers/v1/lib/functions.rb | 172 ------------ .../conflicting_dependency_resolver.rb | 89 ------- .../v1/lib/functions/dependency_source.rb | 90 ------- .../helpers/v1/lib/functions/file_parser.rb | 119 --------- .../helpers/v1/lib/functions/force_updater.rb | 173 ------------ .../v1/lib/functions/lockfile_updater.rb | 218 ---------------- .../v1/lib/functions/version_resolver.rb | 141 ---------- .../definition_bundler_version_patch.rb | 16 -- .../definition_ruby_version_patch.rb | 22 -- .../fileutils_keyword_splat_patch.rb | 20 -- .../v1/monkey_patches/git_source_patch.rb | 62 ----- .../v1/monkey_patches/object_untaint_patch.rb | 17 -- .../resolver_spec_group_sane_eql.rb | 18 -- bundler/helpers/v1/patched_bundler | 34 --- bundler/helpers/v1/run.rb | 38 --- .../conflicting_dependency_resolver_spec.rb | 118 --------- .../spec/functions/dependency_source_spec.rb | 188 ------------- .../v1/spec/functions/file_parser_spec.rb | 75 ------ .../v1/spec/functions/force_updater_spec.rb | 59 ----- .../spec/functions/version_resolver_spec.rb | 105 -------- bundler/helpers/v1/spec/native_spec_helper.rb | 56 ---- bundler/helpers/v1/spec/shared_contexts.rb | 60 ----- .../projects/bundler1/bad_branch/Gemfile | 7 - .../projects/bundler1/bad_branch/Gemfile.lock | 23 -- .../bundler1/bad_branch_business/Gemfile | 6 - .../bundler1/bad_branch_business/Gemfile.lock | 23 -- .../projects/bundler1/bad_ref/Gemfile | 7 - .../projects/bundler1/bad_ref/Gemfile.lock | 22 -- .../bundler1/block_source_rubygems/Gemfile | 4 - .../block_source_rubygems/Gemfile.lock | 15 -- .../bundler1/blocked_by_subdep/Gemfile | 6 - .../bundler1/blocked_by_subdep/Gemfile.lock | 16 -- .../bundler1/bundler_specified/Gemfile | 8 - .../bundler1/bundler_specified/Gemfile.lock | 16 -- .../Gemfile | 8 - .../Gemfile.lock | 16 -- .../bundler1/cant_unlock_subdep/Gemfile | 4 - .../bundler1/cant_unlock_subdep/Gemfile.lock | 21 -- .../projects/bundler1/comment_gemfile/Gemfile | 1 - .../bundler1/comment_gemfile/Gemfile.lock | 15 -- .../bundler1/comments_no_lockfile/Gemfile | 4 - .../projects/bundler1/conditional/Gemfile | 11 - .../bundler1/conditional/Gemfile.lock | 15 -- .../vendor/cache/business-1.4.0.gem | Bin 11776 -> 0 bytes .../vendor/cache/statesman-1.2.1.gem | Bin 30720 -> 0 bytes .../vendor/cache/statesman-7.2.0.gem | Bin 40960 -> 0 bytes .../bundler1/custom_tag_gemfile/Gemfile | 1 - .../bundler1/custom_tag_gemfile/Gemfile.lock | 15 -- .../bundler1/default_gem_specified/Gemfile | 8 - .../default_gem_specified/Gemfile.lock | 17 -- .../bundler1/development_dependencies/Gemfile | 8 - .../development_dependencies/Gemfile.lock | 15 -- .../bundler1/eval_gemfile_absolute/Gemfile | 6 - .../eval_gemfile_absolute/Gemfile.lock | 15 -- .../eval_gemfile_absolute/backend/Gemfile | 4 - .../bundler1/eval_gemfile_gemfile/Gemfile | 6 - .../eval_gemfile_gemfile/Gemfile.lock | 15 -- .../eval_gemfile_gemfile/backend/Gemfile | 4 - .../eval_gemfile_nested/nested/Gemfile | 6 - .../eval_gemfile_nested/nested/Gemfile.lock | 15 -- .../nested/backend/Gemfile | 4 - .../bundler1/eval_gemfile_variable/Gemfile | 7 - .../eval_gemfile_variable/Gemfile.lock | 15 -- .../eval_gemfile_variable/backend/Gemfile | 4 - .../bundler1/exec_error_gemfile/Gemfile | 6 - .../bundler1/exec_error_gemfile/Gemfile.lock | 15 -- .../bundler1/exec_error_no_lockfile/Gemfile | 6 - .../projects/bundler1/explicit_ruby/Gemfile | 5 - .../bundler1/explicit_ruby/Gemfile.lock | 15 -- .../explicit_ruby_in_lockfile/Gemfile | 5 - .../explicit_ruby_in_lockfile/Gemfile.lock | 18 -- .../bundler1/explicit_ruby_old/Gemfile | 5 - .../bundler1/explicit_ruby_old/Gemfile.lock | 15 -- .../bundler1/function_version_gemfile/Gemfile | 5 - .../function_version_gemfile/Gemfile.lock | 15 -- .../projects/bundler1/gem_with_number/Gemfile | 3 - .../bundler1/gem_with_number/Gemfile.lock | 13 - .../projects/bundler1/gemfile/Gemfile | 6 - .../projects/bundler1/gemfile/Gemfile.lock | 15 -- .../projects/bundler1/gemfile_exact/Gemfile | 6 - .../bundler1/gemfile_exact/Gemfile.lock | 15 -- .../bundler1/gemfile_exact/example.gemspec | 22 -- .../projects/bundler1/gemfile_example/Gemfile | 6 - .../bundler1/gemfile_example/Gemfile.lock | 15 -- .../bundler1/gemfile_example/example.gemspec | 33 --- .../bundler1/gemfile_function_name/Gemfile | 6 - .../gemfile_function_name/Gemfile.lock | 15 -- .../gemfile_function_name/example.gemspec | 24 -- .../gemfile_gemspec_with_require/Gemfile | 6 - .../gemfile_gemspec_with_require/Gemfile.lock | 15 -- .../example.gemspec | 44 ---- .../bundler1/gemfile_impossible_ruby/Gemfile | 6 - .../gemfile_impossible_ruby/Gemfile.lock | 15 -- .../gemfile_impossible_ruby/example.gemspec | 21 -- .../gemfile_multiple_git_requirements/Gemfile | 1 - .../Gemfile.lock | 15 -- .../gemfile_multiple_requirements/Gemfile | 1 - .../Gemfile.lock | 15 -- .../Gemfile | 1 - .../Gemfile.lock | 15 -- .../Gemfile | 6 - .../Gemfile.lock | 15 -- .../example.gemspec | 1 - .../bundler1/gemfile_no_required_ruby/Gemfile | 6 - .../gemfile_no_required_ruby/Gemfile.lock | 15 -- .../gemfile_no_required_ruby/example.gemspec | 20 -- .../gemfile_old_required_ruby/Gemfile | 6 - .../gemfile_old_required_ruby/Gemfile.lock | 15 -- .../gemfile_old_required_ruby/example.gemspec | 21 -- .../bundler1/gemfile_require_ruby_3/Gemfile | 6 - .../gemfile_require_ruby_3/Gemfile.lock | 15 -- .../gemfile_require_ruby_3/example.gemspec | 22 -- .../bundler1/gemfile_require_ruby_3_1/Gemfile | 6 - .../gemfile_require_ruby_3_1/Gemfile.lock | 15 -- .../gemfile_require_ruby_3_1/example.gemspec | 22 -- .../bundler1/gemfile_require_ruby_3_2/Gemfile | 6 - .../gemfile_require_ruby_3_2/Gemfile.lock | 15 -- .../gemfile_require_ruby_3_2/example.gemspec | 22 -- .../bundler1/gemfile_require_ruby_3_3/Gemfile | 6 - .../gemfile_require_ruby_3_3/Gemfile.lock | 15 -- .../gemfile_require_ruby_3_3/example.gemspec | 22 -- .../bundler1/gemfile_small_example/Gemfile | 6 - .../gemfile_small_example/Gemfile.lock | 15 -- .../gemfile_small_example/example.gemspec | 21 -- .../gemfile_unevaluatable_ruby/Gemfile | 6 - .../gemfile_unevaluatable_ruby/Gemfile.lock | 15 -- .../example.gemspec | 21 -- .../gemfile_with_nested_block/Gemfile | 6 - .../gemfile_with_nested_block/Gemfile.lock | 15 -- .../gemfile_with_nested_block/example.gemspec | 7 - .../bundler1/gemfile_with_require/Gemfile | 6 - .../gemfile_with_require/Gemfile.lock | 15 -- .../gemfile_with_require/example.gemspec | 44 ---- .../projects/bundler1/gems_rb/gems.locked | 15 -- .../projects/bundler1/gems_rb/gems.rb | 6 - .../gemspec_loads_another/another.gemspec | 23 -- .../gemspec_loads_another/example.gemspec | 30 --- .../gemspec_multiple_requirements/Gemfile | 1 - .../Gemfile.lock | 15 -- .../example.gemspec | 1 - .../Gemfile.lock | 15 -- .../example.gemspec | 1 - .../bundler1/gemspec_no_gemfile/Gemfile.lock | 15 -- .../gemspec_no_gemfile/example.gemspec | 33 --- .../gemspec_no_lockfile/example.gemspec | 33 --- .../bundler1/gemspec_not_imported/Gemfile | 6 - .../gemspec_not_imported/Gemfile.lock | 15 -- .../gemspec_not_imported/example.gemspec | 44 ---- .../gemspec_not_imported_no_lockfile/Gemfile | 4 - .../example.gemspec | 21 -- .../Gemfile | 4 - .../example.gemspec | 21 -- .../Gemfile | 4 - .../example.gemspec | 21 -- .../Gemfile | 4 - .../example.gemspec | 21 -- .../example.gemspec | 21 -- .../example.gemspec | 46 ---- .../projects/bundler1/git_source/Gemfile | 11 - .../projects/bundler1/git_source/Gemfile.lock | 43 --- .../bundler1/git_source_circular/Gemfile | 5 - .../bundler1/git_source_circular/Gemfile.lock | 20 -- .../bundler1/git_source_gemfile/Gemfile | 11 - .../bundler1/git_source_gemfile/Gemfile.lock | 15 -- .../bundler1/git_source_internal/Gemfile | 5 - .../bundler1/git_source_internal/Gemfile.lock | 21 -- .../bundler1/git_source_mismatched/Gemfile | 8 - .../git_source_mismatched/Gemfile.lock | 43 --- .../bundler1/git_source_no_ref/Gemfile | 4 - .../bundler1/git_source_no_ref/Gemfile.lock | 18 -- .../bundler1/git_source_outdated/Gemfile | 10 - .../bundler1/git_source_outdated/Gemfile.lock | 43 --- .../bundler1/git_source_reordered/Gemfile | 10 - .../git_source_reordered/Gemfile.lock | 43 --- .../bundler1/git_source_undeclared/Gemfile | 7 - .../git_source_undeclared/Gemfile.lock | 54 ---- .../bundler1/git_source_unparseable/Gemfile | 10 - .../git_source_unparseable/Gemfile.lock | 25 -- .../git_source_unparseable/example.gemspec | 21 -- .../bundler1/git_source_unreleased/Gemfile | 6 - .../git_source_unreleased/Gemfile.lock | 19 -- .../bundler1/git_source_with_conflict/Gemfile | 5 - .../git_source_with_conflict/Gemfile.lock | 34 --- .../git_source_with_multiple_deps/Gemfile | 10 - .../Gemfile.lock | 57 ---- .../git_source_with_tag_conflict/Gemfile | 5 - .../git_source_with_tag_conflict/Gemfile.lock | 34 --- .../git_source_with_version_gemfile/Gemfile | 4 - .../Gemfile.lock | 15 -- .../git_tags_on_newline_gemfile/Gemfile | 2 - .../git_tags_on_newline_gemfile/Gemfile.lock | 15 -- .../projects/bundler1/github_source/Gemfile | 5 - .../bundler1/github_source/Gemfile.lock | 20 -- .../projects/bundler1/gte_matcher/Gemfile | 4 - .../bundler1/gte_matcher/Gemfile.lock | 15 -- .../projects/bundler1/guard_bundler/Gemfile | 5 - .../bundler1/guard_bundler/Gemfile.lock | 46 ---- .../projects/bundler1/imports_gemspec/Gemfile | 7 - .../bundler1/imports_gemspec/Gemfile.lock | 22 -- .../bundler1/imports_gemspec/example.gemspec | 21 -- .../nested/Gemfile | 7 - .../nested/Gemfile.lock | 22 -- .../nested/subdir/example.gemspec | 21 -- .../imports_gemspec_from_path/Gemfile | 7 - .../imports_gemspec_from_path/Gemfile.lock | 22 -- .../subdir/example.gemspec | 21 -- .../bundler1/imports_gemspec_gemfile/Gemfile | 7 - .../imports_gemspec_gemfile/Gemfile.lock | 15 -- .../Gemfile | 6 - .../example.gemspec | 21 -- .../Gemfile | 7 - .../Gemfile.lock | 96 ------- .../example.gemspec | 33 --- .../Gemfile | 7 - .../example.gemspec | 21 -- .../imports_gemspec_no_lockfile/Gemfile | 8 - .../example.gemspec | 34 --- .../imports_gemspec_no_overlap/Gemfile | 7 - .../imports_gemspec_no_overlap/Gemfile.lock | 22 -- .../example.gemspec | 21 -- .../Gemfile | 7 - .../example.gemspec | 21 -- .../Gemfile | 7 - .../example.gemspec | 21 -- .../imports_gemspec_unevaluatable/Gemfile | 7 - .../Gemfile.lock | 22 -- .../example.gemspec | 33 --- .../imports_gemspec_version_as_float/Gemfile | 7 - .../version_as_float.gemspec | 16 -- .../Gemfile | 7 - .../example.gemspec | 21 -- .../imports_gemspec_with_require/Gemfile | 7 - .../imports_gemspec_with_require/Gemfile.lock | 96 ------- .../example.gemspec | 46 ---- .../bundler1/imports_two_gemspecs/Gemfile | 5 - .../imports_two_gemspecs/Gemfile.lock | 23 -- .../imports_two_gemspecs/example.gemspec | 21 -- .../imports_two_gemspecs/example2.gemspec | 21 -- .../nested/Gemfile | 8 - .../nested/Gemfile.lock | 15 -- .../some_other_file.rb | 1 - .../includes_require_relative_nested/Gemfile | 8 - .../Gemfile.lock | 15 -- .../nested/some_other_file.rb | 1 - .../includes_requires_gemfile/Gemfile | 5 - .../includes_requires_gemfile/Gemfile.lock | 15 -- .../interpolated_version_no_lockfile/Gemfile | 5 - .../projects/bundler1/invalid_ruby/Gemfile | 3 - .../projects/bundler1/jfrog_source/Gemfile | 9 - .../fixtures/projects/bundler1/jruby/Gemfile | 4 - .../projects/bundler1/jruby/Gemfile.lock | 13 - .../projects/bundler1/legacy_ruby/Gemfile | 4 - .../bundler1/legacy_ruby/Gemfile.lock | 16 -- .../local_gemspec_needs_updates/Gemfile | 5 - .../local_gemspec_needs_updates/Gemfile.lock | 37 --- .../common/dependabot-common.gemspec | 20 -- .../bundler1/lockfile_only/Gemfile.lock | 15 -- .../lockfile_only_and_forced_updates/Gemfile | 4 - .../Gemfile.lock | 147 ----------- .../minor_version_specified_gemfile/Gemfile | 4 - .../Gemfile.lock | 15 -- .../Gemfile | 6 - .../Gemfile.lock | 15 -- .../bundler1/multiple_blocking/Gemfile | 5 - .../bundler1/multiple_blocking/Gemfile.lock | 70 ----- .../bundler1/multiple_path_gems/Gemfile | 4 - .../bundler1/multiple_path_gems/Gemfile.lock | 25 -- .../vendor/couchrb/couchrb.gemspec | 14 - .../vendor/net-imap/net-imap.gemspec | 15 -- .../projects/bundler1/nested_gemfile/Gemfile | 7 - .../bundler1/nested_gemfile/Gemfile.lock | 15 -- .../bundler1/nested_gemfile/backend/Gemfile | 6 - .../Gemfile | 4 - .../Gemfile.lock | 15 -- .../nested/Gemfile | 4 - .../projects/bundler1/nested_gemspec/Gemfile | 6 - .../bundler1/nested_gemspec/Gemfile.lock | 15 -- .../nested_gemspec/some/example.gemspec | 22 -- .../nested_path_source/nested/Gemfile | 6 - .../nested_path_source/nested/Gemfile.lock | 30 --- .../nested/example/example.gemspec | 34 --- .../projects/bundler1/no_bundled_with/Gemfile | 6 - .../bundler1/no_bundled_with/Gemfile.lock | 12 - .../projects/bundler1/no_downgrades/Gemfile | 8 - .../bundler1/no_downgrades/Gemfile.lock | 174 ------------- .../projects/bundler1/no_lockfile/Gemfile | 6 - .../non_git_tags_at_end_gemfile/Gemfile | 1 - .../non_git_tags_at_end_gemfile/Gemfile.lock | 15 -- .../non_git_tags_at_start_gemfile/Gemfile | 1 - .../Gemfile.lock | 15 -- .../non_git_tags_on_newline_gemfile/Gemfile | 2 - .../Gemfile.lock | 15 -- .../path_gem_with_ruby_requirement/Gemfile | 4 - .../Gemfile.lock | 34 --- .../vendor/couchrb/couchrb.gemspec | 16 -- .../projects/bundler1/path_source/Gemfile | 6 - .../bundler1/path_source/Gemfile.lock | 30 --- .../plugins/example/example.gemspec | 34 --- .../bundler1/path_source_eval/Gemfile | 6 - .../projects/bundler1/path_source_if/Gemfile | 11 - .../bundler1/path_source_no_overlap/Gemfile | 6 - .../path_source_no_overlap/Gemfile.lock | 30 --- .../plugins/example/example.gemspec | 21 -- .../Gemfile | 6 - .../Gemfile.lock | 30 --- .../plugins/example/example.gemspec | 27 -- .../path_source_not_reachable/Gemfile | 6 - .../path_source_not_reachable/Gemfile.lock | 30 --- .../bundler1/path_source_statesman/Gemfile | 4 - .../path_source_statesman/Gemfile.lock | 19 -- .../gems/statesman-4.1.1/.specification | 246 ------------------ .../bundler1/platform_windows/Gemfile | 5 - .../bundler1/platform_windows/Gemfile.lock | 14 - .../platform_windows_no_lockfile/Gemfile | 5 - .../bundler1/prerelease_specified/Gemfile | 4 - .../prerelease_specified/Gemfile.lock | 15 -- .../prerelease_with_dash_gemfile/Gemfile | 4 - .../prerelease_with_dash_gemfile/Gemfile.lock | 15 -- .../bundler1/private_gem_source/Gemfile | 7 - .../bundler1/private_gem_source/Gemfile.lock | 18 -- .../bundler1/private_git_source/Gemfile | 7 - .../bundler1/private_git_source/Gemfile.lock | 22 -- .../private_git_source_no_lockfile/Gemfile | 7 - .../private_github_source_no_lockfile/Gemfile | 6 - .../bundler1/requires_bundler/Gemfile | 5 - .../bundler1/requires_bundler/Gemfile.lock | 46 ---- .../bundler1/ruby_version_file/.ruby-version | 1 - .../bundler1/ruby_version_file/Gemfile | 6 - .../bundler1/ruby_version_file/Gemfile.lock | 15 -- .../projects/bundler1/sidekiq_pro/Gemfile | 5 - .../bundler1/sidekiq_pro/Gemfile.lock | 26 -- .../bundler1/source_block_gemfile/Gemfile | 3 - .../source_block_gemfile/Gemfile.lock | 15 -- .../bundler1/specified_default_source/Gemfile | 3 - .../specified_default_source/Gemfile.lock | 16 -- .../Gemfile | 3 - .../bundler1/specified_plugin_source/Gemfile | 7 - .../specified_plugin_source/Gemfile.lock | 16 -- .../bundler1/specified_source/Gemfile | 7 - .../bundler1/specified_source/Gemfile.lock | 16 -- .../specified_source_no_lockfile/Gemfile | 7 - .../bundler1/subdep_blocked_by_subdep/Gemfile | 5 - .../subdep_blocked_by_subdep/Gemfile.lock | 15 -- .../projects/bundler1/subdependency/Gemfile | 3 - .../bundler1/subdependency/Gemfile.lock | 15 -- .../subdependency_gems_rb/gems.locked | 15 -- .../bundler1/subdependency_gems_rb/gems.rb | 3 - .../bundler1/tool_versions_file/.gitignore | 1 - .../tool_versions_file/.tool-versions | 1 - .../bundler1/tool_versions_file/Gemfile | 6 - .../bundler1/tool_versions_file/Gemfile.lock | 15 -- .../bundler1/top_level_update/Gemfile | 8 - .../bundler1/top_level_update/Gemfile.lock | 74 ------ .../top_level_update_with_git_gems/Gemfile | 11 - .../Gemfile.lock | 122 --------- .../bundler1/transitive_blocking/Gemfile | 3 - .../bundler1/transitive_blocking/Gemfile.lock | 119 --------- .../bundler1/unavailable_gem_gemfile/Gemfile | 5 - .../unavailable_gem_gemfile/Gemfile.lock | 15 -- .../unevaluatable_japanese_gemfile/Gemfile | 8 - .../Gemfile.lock | 15 -- .../unsatisfied_required_ruby_version/Gemfile | 5 - .../Gemfile.lock | 13 - .../example.gemspec | 18 -- .../projects/bundler1/vendored_gems/Gemfile | 6 - .../bundler1/vendored_gems/Gemfile.lock | 15 -- .../vendor/cache/business-1.4.0.gem | Bin 11776 -> 0 bytes .../vendor/cache/statesman-1.2.1.gem | Bin 30720 -> 0 bytes .../acceptance/Gemfile | 6 - .../acceptance/Gemfile.lock | 15 -- .../vendor/cache/business-1.4.0.gem | Bin 11776 -> 0 bytes .../vendor/cache/statesman-1.2.1.gem | Bin 30720 -> 0 bytes .../projects/bundler1/vendored_git/Gemfile | 4 - .../bundler1/vendored_git/Gemfile.lock | 18 -- .../.bundlecache | 0 .../README.md | 3 - .../test-ruby-package.gemspec | 19 -- .../version_between_bounds_gemfile/Gemfile | 4 - .../Gemfile.lock | 15 -- .../gems.locked | 15 -- .../version_between_bounds_gems_rb/gems.rb | 4 - .../bundler1/version_conflict/Gemfile | 6 - .../bundler1/version_conflict/Gemfile.lock | 19 -- .../version_conflict_gems_rb/gems.locked | 19 -- .../bundler1/version_conflict_gems_rb/gems.rb | 6 - .../version_conflict_mutual_sub/Gemfile | 4 - .../version_conflict_mutual_sub/Gemfile.lock | 21 -- .../version_conflict_no_req_change/Gemfile | 4 - .../Gemfile.lock | 15 -- .../gems.locked | 15 -- .../gems.rb | 4 - .../Gemfile | 4 - .../Gemfile.lock | 18 -- .../bundler1/version_not_specified/Gemfile | 4 - .../version_not_specified/Gemfile.lock | 15 -- .../version_specified_gemfile/Gemfile | 4 - .../version_specified_gemfile/Gemfile.lock | 15 -- .../Gemfile | 6 - .../Gemfile.lock | 30 --- .../plugins/example/.specification | 245 ----------------- .../version_specified_gems_rb/gems.locked | 15 -- .../version_specified_gems_rb/gems.rb | 4 - .../version_specified_no_lockfile/Gemfile | 4 - 409 files changed, 8169 deletions(-) delete mode 100644 bundler/helpers/v1/.gitignore delete mode 100644 bundler/helpers/v1/Gemfile delete mode 100755 bundler/helpers/v1/build delete mode 100644 bundler/helpers/v1/lib/functions.rb delete mode 100644 bundler/helpers/v1/lib/functions/conflicting_dependency_resolver.rb delete mode 100644 bundler/helpers/v1/lib/functions/dependency_source.rb delete mode 100644 bundler/helpers/v1/lib/functions/file_parser.rb delete mode 100644 bundler/helpers/v1/lib/functions/force_updater.rb delete mode 100644 bundler/helpers/v1/lib/functions/lockfile_updater.rb delete mode 100644 bundler/helpers/v1/lib/functions/version_resolver.rb delete mode 100644 bundler/helpers/v1/monkey_patches/definition_bundler_version_patch.rb delete mode 100644 bundler/helpers/v1/monkey_patches/definition_ruby_version_patch.rb delete mode 100644 bundler/helpers/v1/monkey_patches/fileutils_keyword_splat_patch.rb delete mode 100644 bundler/helpers/v1/monkey_patches/git_source_patch.rb delete mode 100644 bundler/helpers/v1/monkey_patches/object_untaint_patch.rb delete mode 100644 bundler/helpers/v1/monkey_patches/resolver_spec_group_sane_eql.rb delete mode 100755 bundler/helpers/v1/patched_bundler delete mode 100644 bundler/helpers/v1/run.rb delete mode 100644 bundler/helpers/v1/spec/functions/conflicting_dependency_resolver_spec.rb delete mode 100644 bundler/helpers/v1/spec/functions/dependency_source_spec.rb delete mode 100644 bundler/helpers/v1/spec/functions/file_parser_spec.rb delete mode 100644 bundler/helpers/v1/spec/functions/force_updater_spec.rb delete mode 100644 bundler/helpers/v1/spec/functions/version_resolver_spec.rb delete mode 100644 bundler/helpers/v1/spec/native_spec_helper.rb delete mode 100644 bundler/helpers/v1/spec/shared_contexts.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/comments_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/conditional/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/conditional/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/conditional/vendor/cache/business-1.4.0.gem delete mode 100644 bundler/spec/fixtures/projects/bundler1/conditional/vendor/cache/statesman-1.2.1.gem delete mode 100644 bundler/spec/fixtures/projects/bundler1/conditional/vendor/cache/statesman-7.2.0.gem delete mode 100644 bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/backend/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/backend/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/backend/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/backend/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/exec_error_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_exact/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_example/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_function_name/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_small_example/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemfile_with_require/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gems_rb/gems.locked delete mode 100644 bundler/spec/fixtures/projects/bundler1/gems_rb/gems.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/another.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_small_example_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/gemspec_with_require_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_unparseable/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/github_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/github_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/subdir/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/subdir/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/version_as_float.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example2.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/some_other_file.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/nested/some_other_file.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/interpolated_version_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/invalid_ruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/jfrog_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/jruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/jruby/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/common/dependabot-common.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/lockfile_only/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/couchrb/couchrb.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/net-imap/net-imap.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemfile/backend/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/nested/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_gemspec/some/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/example/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/vendor/couchrb/couchrb.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source/plugins/example/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_eval/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_if/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/plugins/example/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/plugins/example/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/path_source_statesman/vendor/gems/statesman-4.1.1/.specification delete mode 100644 bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/platform_windows_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/private_git_source_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/private_github_source_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/ruby_version_file/.ruby-version delete mode 100644 bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_default_source_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/specified_source_no_lockfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.locked delete mode 100644 bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/tool_versions_file/.gitignore delete mode 100644 bundler/spec/fixtures/projects/bundler1/tool_versions_file/.tool-versions delete mode 100644 bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/example.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems/vendor/cache/business-1.4.0.gem delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems/vendor/cache/statesman-1.2.1.gem delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/vendor/cache/business-1.4.0.gem delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/vendor/cache/statesman-1.2.1.gem delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_git/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_git/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/.bundlecache delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/README.md delete mode 100644 bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/test-ruby-package.gemspec delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.locked delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.locked delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.locked delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile.lock delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/plugins/example/.specification delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.locked delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.rb delete mode 100644 bundler/spec/fixtures/projects/bundler1/version_specified_no_lockfile/Gemfile diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 484548346017..65f73a7e62c0 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -56,7 +56,6 @@ jobs: languages: ${{ matrix.language }} config: | paths-ignore: - - 'bundler/spec/fixtures/projects/bundler1/invalid_ruby/Gemfile' - 'bundler/spec/fixtures/projects/bundler2/invalid_ruby/Gemfile' if: matrix.language == 'ruby' diff --git a/.rubocop.yml b/.rubocop.yml index 3a9503f0619b..ed7f1565c2b8 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -14,7 +14,6 @@ AllCops: - "*/spec/fixtures/**/*" - "vendor/**/*" - "dry-run/**/*" - - "bundler/helpers/v1/patched_bundler" - "bundler/helpers/spec_helpers/*" NewCops: enable TargetRubyVersion: 3.1 diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 64ea1d09a6ee..e7673987d004 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -9,7 +9,6 @@ # Offense count: 39 RSpec/AnyInstance: Exclude: - - 'bundler/helpers/v1/spec/shared_contexts.rb' - 'bundler/spec/dependabot/bundler/update_checker_spec.rb' - 'common/spec/dependabot/clients/codecommit_spec.rb' - 'common/spec/dependabot/file_fetchers/base_spec.rb' diff --git a/bundler/helpers/v1/.gitignore b/bundler/helpers/v1/.gitignore deleted file mode 100644 index c88c5c24353b..000000000000 --- a/bundler/helpers/v1/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/.bundle -/.env -/tmp -/dependabot-*.gem -Gemfile.lock -spec/fixtures/projects/*/.bundle/ -!spec/fixtures/projects/**/Gemfile.lock -!spec/fixtures/projects/**/vendor diff --git a/bundler/helpers/v1/Gemfile b/bundler/helpers/v1/Gemfile deleted file mode 100644 index 7f0d0db26dc7..000000000000 --- a/bundler/helpers/v1/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "dependabot-common", path: "../../../common" - -gemspec path: "../.." diff --git a/bundler/helpers/v1/build b/bundler/helpers/v1/build deleted file mode 100755 index 5a38af68de8c..000000000000 --- a/bundler/helpers/v1/build +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -set -e - -helpers_dir=$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd) - -if [ -z "$DEPENDABOT_NATIVE_HELPERS_PATH" ]; then - install_dir="$helpers_dir" -else - install_dir="$DEPENDABOT_NATIVE_HELPERS_PATH/bundler/v1" - mkdir -p "$install_dir" - - cp -r \ - "$helpers_dir/lib" \ - "$helpers_dir/monkey_patches" \ - "$helpers_dir/run.rb" \ - "$helpers_dir/patched_bundler" \ - "$install_dir" -fi - -cd "$install_dir" - -export GEM_HOME=$install_dir/.bundle - -gem install bundler -v 1.17.3 --no-document - -if [ -z "$DEPENDABOT_NATIVE_HELPERS_PATH" ]; then - BUNDLER_VERSION=1.17.3 ./patched_bundler install -fi diff --git a/bundler/helpers/v1/lib/functions.rb b/bundler/helpers/v1/lib/functions.rb deleted file mode 100644 index 48bae5564242..000000000000 --- a/bundler/helpers/v1/lib/functions.rb +++ /dev/null @@ -1,172 +0,0 @@ -# typed: true -# frozen_string_literal: true - -require "functions/file_parser" -require "functions/force_updater" -require "functions/lockfile_updater" -require "functions/dependency_source" -require "functions/version_resolver" -require "functions/conflicting_dependency_resolver" - -module Functions - def self.parsed_gemfile(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: []) - FileParser.new(lockfile_name: args.fetch(:lockfile_name)) - .parsed_gemfile(gemfile_name: args.fetch(:gemfile_name)) - end - - def self.parsed_gemspec(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: []) - FileParser.new(lockfile_name: args.fetch(:lockfile_name)) - .parsed_gemspec(gemspec_name: args.fetch(:gemspec_name)) - end - - def self.vendor_cache_dir(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: []) - Bundler.settings.app_cache_path - end - - def self.update_lockfile(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - LockfileUpdater.new( - gemfile_name: args.fetch(:gemfile_name), - lockfile_name: args.fetch(:lockfile_name), - dependencies: args.fetch(:dependencies) - ).run - end - - def self.force_update(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - ForceUpdater.new( - dependency_name: args.fetch(:dependency_name), - target_version: args.fetch(:target_version), - gemfile_name: args.fetch(:gemfile_name), - lockfile_name: args.fetch(:lockfile_name), - update_multiple_dependencies: args.fetch(:update_multiple_dependencies) - ).run - end - - def self.dependency_source_type(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - - DependencySource.new( - gemfile_name: args.fetch(:gemfile_name), - dependency_name: args.fetch(:dependency_name) - ).type - end - - def self.dependency_source_latest_git_version(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - DependencySource.new( - gemfile_name: args.fetch(:gemfile_name), - dependency_name: args.fetch(:dependency_name) - ).latest_git_version( - dependency_source_url: args.fetch(:dependency_source_url), - dependency_source_branch: args.fetch(:dependency_source_branch) - ) - end - - def self.private_registry_versions(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - - DependencySource.new( - gemfile_name: args.fetch(:gemfile_name), - dependency_name: args.fetch(:dependency_name) - ).private_registry_versions - end - - def self.resolve_version(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - VersionResolver.new( - dependency_name: args.fetch(:dependency_name), - dependency_requirements: args.fetch(:dependency_requirements), - gemfile_name: args.fetch(:gemfile_name), - lockfile_name: args.fetch(:lockfile_name) - ).version_details - end - - def self.jfrog_source(**args) - # Set flags and credentials - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - - Bundler::Definition.build(args.fetch(:gemfile_name), nil, {}) - .send(:sources) - .rubygems_remotes - .find { |uri| uri.host.include?("jfrog") } - &.host - end - - def self.git_specs(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - - git_specs = Bundler::Definition.build(args.fetch(:gemfile_name), nil, {}).dependencies - .select do |spec| - spec.source.is_a?(Bundler::Source::Git) - end - git_specs.map do |spec| - # Piggy-back off some private Bundler methods to configure the - # URI with auth details in the same way Bundler does. - git_proxy = spec.source.send(:git_proxy) - auth_uri = spec.source.uri.gsub("git://", "https://") - auth_uri = git_proxy.send(:configured_uri_for, auth_uri) - auth_uri += ".git" unless auth_uri.end_with?(".git") - auth_uri += "/info/refs?service=git-upload-pack" - { - uri: spec.source.uri, - auth_uri: auth_uri - } - end - end - - def self.conflicting_dependencies(**args) - set_bundler_flags_and_credentials(dir: args.fetch(:dir), credentials: args.fetch(:credentials)) - ConflictingDependencyResolver.new( - dependency_name: args.fetch(:dependency_name), - target_version: args.fetch(:target_version), - lockfile_name: args.fetch(:lockfile_name) - ).conflicting_dependencies - end - - def self.set_bundler_flags_and_credentials(dir:, credentials:) - dir = Pathname.new(dir) if dir - Bundler.instance_variable_set(:@root, dir) - - # Remove installed gems from the default Rubygems index - Gem::Specification.all = - Gem::Specification.send(:default_stubs, "*.gemspec") - - # Set auth details - relevant_credentials(credentials).each do |cred| - token = cred["token"] || - "#{cred['username']}:#{cred['password']}" - - Bundler.settings.set_command_option( - cred.fetch("host"), - token.gsub("@", "%40F").gsub("?", "%3F") - ) - end - - # Use HTTPS for GitHub if lockfile - Bundler.settings.set_command_option("github.https", "true") - - # Native helpers rely on dependency unlocking, so Bundler should never be frozen - Bundler.settings.set_command_option("frozen", "false") - end - - def self.relevant_credentials(credentials) - [ - *git_source_credentials(credentials), - *private_registry_credentials(credentials) - ].select { |cred| cred["password"] || cred["token"] } - end - - def self.private_registry_credentials(credentials) - credentials - .select { |cred| cred["type"] == "rubygems_server" } - end - - def self.git_source_credentials(credentials) - credentials - .select { |cred| cred["type"] == "git_source" } - end -end diff --git a/bundler/helpers/v1/lib/functions/conflicting_dependency_resolver.rb b/bundler/helpers/v1/lib/functions/conflicting_dependency_resolver.rb deleted file mode 100644 index b031322aaa0c..000000000000 --- a/bundler/helpers/v1/lib/functions/conflicting_dependency_resolver.rb +++ /dev/null @@ -1,89 +0,0 @@ -# typed: true -# frozen_string_literal: true - -module Functions - class ConflictingDependencyResolver - def initialize(dependency_name:, target_version:, lockfile_name:) - @dependency_name = dependency_name - @target_version = target_version - @lockfile_name = lockfile_name - end - - # Finds any dependencies in the lockfile that have a subdependency on the - # given dependency that does not satisfly the target_version. - # @return [Array String}] - # * explanation [String] a sentence explaining the conflict - # * name [String] the blocking dependencies name - # * version [String] the version of the blocking dependency - # * requirement [String] the requirement on the target_dependency - def conflicting_dependencies - Bundler.settings.set_command_option("only_update_to_newer_versions", true) - - parent_specs.flat_map do |parent_spec| - top_level_specs_for(parent_spec).map do |top_level| - dependency = parent_spec.dependencies.find { |bd| bd.name == dependency_name } - { - "explanation" => explanation(parent_spec, dependency, top_level), - "name" => parent_spec.name, - "version" => parent_spec.version.to_s, - "requirement" => dependency.requirement.to_s - } - end - end - end - - private - - attr_reader :dependency_name - attr_reader :target_version - attr_reader :lockfile_name - - def parent_specs - version = Gem::Version.new(target_version) - parsed_lockfile.specs.filter do |spec| - spec.dependencies.any? do |dep| - dep.name == dependency_name && - !dep.requirement.satisfied_by?(version) - end - end - end - - def top_level_specs_for(parent_spec) - return [parent_spec] if top_level?(parent_spec) - - parsed_lockfile.specs.filter do |spec| - spec.dependencies.any? do |dep| - dep.name == parent_spec.name && top_level?(spec) - end - end - end - - def top_level?(spec) - parsed_lockfile.dependencies.key?(spec.name) - end - - def explanation(spec, dependency, top_level) - if spec.name == top_level.name - "#{spec.name} (#{spec.version}) requires #{dependency_name} (#{dependency.requirement})" - else - "#{top_level.name} (#{top_level.version}) requires #{dependency_name} " \ - "(#{dependency.requirement}) via #{spec.name} (#{spec.version})" - end - end - - def parsed_lockfile - @parsed_lockfile ||= Bundler::LockfileParser.new(lockfile) - end - - def lockfile - return @lockfile if defined?(@lockfile) - - @lockfile = - begin - return unless lockfile_name && File.exist?(lockfile_name) - - File.read(lockfile_name) - end - end - end -end diff --git a/bundler/helpers/v1/lib/functions/dependency_source.rb b/bundler/helpers/v1/lib/functions/dependency_source.rb deleted file mode 100644 index 235abe0a5f10..000000000000 --- a/bundler/helpers/v1/lib/functions/dependency_source.rb +++ /dev/null @@ -1,90 +0,0 @@ -# typed: true -# frozen_string_literal: true - -module Functions - class DependencySource - attr_reader :gemfile_name - attr_reader :dependency_name - - RUBYGEMS = "rubygems" - PRIVATE_REGISTRY = "private" - GIT = "git" - OTHER = "other" - - def initialize(gemfile_name:, dependency_name:) - @gemfile_name = gemfile_name - @dependency_name = dependency_name - end - - def type - bundler_source = specified_source || default_source - type_of(bundler_source) - end - - def latest_git_version(dependency_source_url:, dependency_source_branch:) - source = Bundler::Source::Git.new( - "uri" => dependency_source_url, - "branch" => dependency_source_branch, - "name" => dependency_name, - "submodules" => true - ) - - # Tell Bundler we're fine with fetching the source remotely - source.instance_variable_set(:@allow_remote, true) - - spec = source.specs.first - { version: spec.version, commit_sha: spec.source.revision } - end - - def private_registry_versions - bundler_source = specified_source || default_source - - bundler_source - .fetchers.flat_map do |fetcher| - fetcher - .specs_with_retry([dependency_name], bundler_source) - .search_all(dependency_name) - end - .map(&:version) - end - - private - - def type_of(bundler_source) - case bundler_source - when Bundler::Source::Rubygems - remote = bundler_source.remotes.first - if remote.nil? || remote.to_s == "https://rubygems.org/" - RUBYGEMS - else - PRIVATE_REGISTRY - end - when Bundler::Source::Git - GIT - else - OTHER - end - end - - def specified_source - return @specified_source if defined? @specified_source - - @specified_source = definition.dependencies - .find { |dep| dep.name == dependency_name }&.source - end - - def default_source - definition.send(:sources).default_source - end - - def definition - @definition ||= Bundler::Definition.build(gemfile_name, nil, {}) - end - - def serialize_bundler_source(source) - { - type: source.class.to_s - } - end - end -end diff --git a/bundler/helpers/v1/lib/functions/file_parser.rb b/bundler/helpers/v1/lib/functions/file_parser.rb deleted file mode 100644 index f0dc0ab8080f..000000000000 --- a/bundler/helpers/v1/lib/functions/file_parser.rb +++ /dev/null @@ -1,119 +0,0 @@ -# typed: true -# frozen_string_literal: true - -require "uri" - -module Functions - class FileParser - def initialize(lockfile_name:) - @lockfile_name = lockfile_name - end - - attr_reader :lockfile_name - - def parsed_gemfile(gemfile_name:) - Bundler::Definition.build(gemfile_name, nil, {}) - .dependencies.select(&:current_platform?) - .reject { |dep| local_sources.include?(dep.source.class) } - .map { |dep| serialize_bundler_dependency(dep) } - end - - def parsed_gemspec(gemspec_name:) - Bundler.load_gemspec_uncached(gemspec_name) - .dependencies - .map { |dep| serialize_bundler_dependency(dep) } - end - - private - - def lockfile - return @lockfile if defined?(@lockfile) - - @lockfile = - begin - return unless lockfile_name && File.exist?(lockfile_name) - - File.read(lockfile_name) - end - end - - def parsed_lockfile - return unless lockfile - - @parsed_lockfile ||= Bundler::LockfileParser.new(lockfile) - end - - def source_from_lockfile(dependency_name) - parsed_lockfile&.specs&.find { |s| s.name == dependency_name }&.source - end - - def source_for(dependency) - source = dependency.source - if lockfile && default_rubygems?(source) - # If there's a lockfile and the Gemfile doesn't have anything - # interesting to say about the source, check that. - source = source_from_lockfile(dependency.name) - end - raise "Bad source: #{source}" unless sources.include?(source.class) - - return nil if default_rubygems?(source) - - details = { type: source.class.name.split("::").last.downcase } - details.merge!(git_source_details(source)) if source.is_a?(Bundler::Source::Git) - details[:url] = source.remotes.first.to_s if source.is_a?(Bundler::Source::Rubygems) - details - end - - def git_source_details(source) - { - url: source.uri, - branch: source.branch, - ref: source.ref - } - end - - RUBYGEMS_HOSTS = [ - "rubygems.org", - "www.rubygems.org" - ].freeze - - def default_rubygems?(source) - return true if source.nil? - return false unless source.is_a?(Bundler::Source::Rubygems) - - source.remotes.any? do |r| - RUBYGEMS_HOSTS.include?(URI(r.to_s).host) - end - end - - def serialize_bundler_dependency(dependency) - { - name: dependency.name, - requirement: dependency.requirement, - groups: dependency.groups, - source: source_for(dependency), - type: dependency.type - } - end - - # Can't be a constant because some of these don't exist in bundler - # 1.15, which used to cause issues on Heroku (causing exception on boot). - # TODO: Check if this will be an issue with multiple bundler versions - def sources - [ - NilClass, - Bundler::Source::Rubygems, - Bundler::Source::Git, - *local_sources, - Bundler::Source::Metadata - ] - end - - def local_sources - [ - Bundler::Source::Path, - Bundler::Source::Gemspec - ] - end - end -end diff --git a/bundler/helpers/v1/lib/functions/force_updater.rb b/bundler/helpers/v1/lib/functions/force_updater.rb deleted file mode 100644 index 82946f146fb4..000000000000 --- a/bundler/helpers/v1/lib/functions/force_updater.rb +++ /dev/null @@ -1,173 +0,0 @@ -# typed: true -# frozen_string_literal: true - -module Functions - class ForceUpdater - class TransitiveDependencyError < StandardError; end - - def initialize(dependency_name:, target_version:, gemfile_name:, - lockfile_name:, update_multiple_dependencies:) - @dependency_name = dependency_name - @target_version = target_version - @gemfile_name = gemfile_name - @lockfile_name = lockfile_name - @update_multiple_dependencies = update_multiple_dependencies - end - - def run - # Only allow upgrades. Otherwise it's unlikely that this - # resolution will be found by the FileUpdater - Bundler.settings.set_command_option( - "only_update_to_newer_versions", - true - ) - - dependencies_to_unlock = [] - - begin - definition = build_definition(dependencies_to_unlock: dependencies_to_unlock) - definition.resolve_remotely! - specs = definition.resolve - updates = [{ name: dependency_name }] + - dependencies_to_unlock.map { |dep| { name: dep.name } } - specs = specs.map do |dep| - { - name: dep.name, - version: dep.version - } - end - [updates, specs] - rescue Bundler::VersionConflict => e - raise unless update_multiple_dependencies? - - # TODO: Not sure this won't unlock way too many things... - new_dependencies_to_unlock = - new_dependencies_to_unlock_from( - error: e, - already_unlocked: dependencies_to_unlock - ) - - raise if new_dependencies_to_unlock.none? - - dependencies_to_unlock += new_dependencies_to_unlock - retry - end - end - - private - - attr_reader :dependency_name - attr_reader :target_version - attr_reader :gemfile_name - attr_reader :lockfile_name - attr_reader :credentials - attr_reader :update_multiple_dependencies - alias update_multiple_dependencies? update_multiple_dependencies - - def new_dependencies_to_unlock_from(error:, already_unlocked:) - potentials_deps = - relevant_conflicts(error, already_unlocked) - .flat_map(&:requirement_trees) - .reject do |tree| - # If the final requirement wasn't specific, it can't be binding - next true if tree.last.requirement == Gem::Requirement.new(">= 0") - - # If the conflict wasn't for the dependency we're updating then - # we don't have enough info to reject it - next false unless tree.last.name == dependency_name - - # If the final requirement *was* for the dependency we're updating - # then we can ignore the tree if it permits the target version - tree.last.requirement.satisfied_by?( - Gem::Version.new(target_version) - ) - end.map(&:first) - - potentials_deps - .reject { |dep| already_unlocked.map(&:name).include?(dep.name) } - .reject { |dep| [dependency_name, "ruby\0"].include?(dep.name) } - .uniq - end - - def relevant_conflicts(error, dependencies_being_unlocked) - names = [*dependencies_being_unlocked.map(&:name), dependency_name] - - # For a conflict to be relevant to the updates we're making it must be - # 1) caused by a new requirement introduced by our unlocking, or - # 2) caused by an old requirement that prohibits the update. - # Hence, we look at the beginning and end of the requirement trees - error.cause.conflicts.values - .select do |conflict| - conflict.requirement_trees.any? do |t| - names.include?(t.last.name) || names.include?(t.first.name) - end - end - end - - def build_definition(dependencies_to_unlock:) - gems_to_unlock = dependencies_to_unlock.map(&:name) + [dependency_name] - definition = Bundler::Definition.build( - gemfile_name, - lockfile_name, - gems: gems_to_unlock + subdependencies, - lock_shared_dependencies: true - ) - - # Remove the Gemfile / gemspec requirements on the gems we're - # unlocking (i.e., completely unlock them) - gems_to_unlock.each do |gem_name| - unlock_gem(definition: definition, gem_name: gem_name) - end - - dep = definition.dependencies - .find { |d| d.name == dependency_name } - - # If the dependency is not found in the Gemfile it means this is a - # transitive dependency that we can't force update. - raise TransitiveDependencyError unless dep - - # Set the requirement for the gem we're forcing an update of - new_req = Gem::Requirement.create("= #{target_version}") - dep.instance_variable_set(:@requirement, new_req) - dep.source = nil if dep.source.is_a?(Bundler::Source::Git) - - definition - end - - def lockfile - return @lockfile if defined?(@lockfile) - - @lockfile = - begin - return unless lockfile_name && File.exist?(lockfile_name) - - File.read(lockfile_name) - end - end - - def subdependencies - # If there's no lockfile we don't need to worry about - # subdependencies - return [] unless lockfile - - all_deps = Bundler::LockfileParser.new(lockfile) - .specs.map { |x| x.name.to_s } - top_level = Bundler::Definition - .build(gemfile_name, lockfile_name, {}) - .dependencies.map { |x| x.name.to_s } - - all_deps - top_level - end - - def unlock_gem(definition:, gem_name:) - dep = definition.dependencies.find { |d| d.name == gem_name } - version = definition.locked_gems.specs - .find { |d| d.name == gem_name }.version - - dep&.instance_variable_set( - :@requirement, - Gem::Requirement.create(">= #{version}") - ) - end - end -end diff --git a/bundler/helpers/v1/lib/functions/lockfile_updater.rb b/bundler/helpers/v1/lib/functions/lockfile_updater.rb deleted file mode 100644 index 057f2de3ce2b..000000000000 --- a/bundler/helpers/v1/lib/functions/lockfile_updater.rb +++ /dev/null @@ -1,218 +0,0 @@ -# typed: true -# frozen_string_literal: true - -require "fileutils" - -module Functions - class LockfileUpdater - RETRYABLE_ERRORS = [Bundler::HTTPError].freeze - GEM_NOT_FOUND_ERROR_REGEX = - / - locked\sto\s(?[^\s]+)\s\(| - not\sfind\s(?[^\s]+)-\d| - has\s(?[^\s]+)\slocked\sat - /x - - def initialize(gemfile_name:, lockfile_name:, dependencies:) - @gemfile_name = gemfile_name - @lockfile_name = lockfile_name - @dependencies = dependencies - end - - def run - generate_lockfile - end - - private - - attr_reader :gemfile_name - attr_reader :lockfile_name - attr_reader :dependencies - - def generate_lockfile # rubocop:disable Metrics/PerceivedComplexity - dependencies_to_unlock = dependencies.map { |d| d.fetch("name") } - - begin - definition = build_definition(dependencies_to_unlock) - - old_reqs = lock_deps_being_updated_to_exact_versions(definition) - - definition.resolve_remotely! - - old_reqs.each do |dep_name, old_req| - d_dep = definition.dependencies.find { |d| d.name == dep_name } - if old_req == :none then definition.dependencies.delete(d_dep) - else - d_dep.instance_variable_set(:@requirement, old_req) - end - end - - cache_vendored_gems(definition) if Bundler.app_cache.exist? - - definition.to_lock - rescue Bundler::GemNotFound => e - unlock_yanked_gem(dependencies_to_unlock, e) && retry - rescue Bundler::VersionConflict => e - unlock_blocking_subdeps(dependencies_to_unlock, e) && retry - rescue *RETRYABLE_ERRORS - raise if @retrying - - @retrying = true - sleep(rand(1.0..5.0)) - retry - end - end - - def cache_vendored_gems(definition) - # Dependencies that have been unlocked for the update (including - # sub-dependencies) - unlocked_gems = definition.instance_variable_get(:@unlock) - .fetch(:gems) - bundler_opts = { - cache_all: true, - cache_all_platforms: true, - no_prune: true - } - - Bundler.settings.temporary(**bundler_opts) do - # Fetch and cache gems on all platforms without pruning - Bundler::Runtime.new(nil, definition).cache - - # Only prune unlocked gems (the original implementation is in - # Bundler::Runtime) - cache_path = Bundler.app_cache - resolve = definition.resolve - prune_gem_cache(resolve, cache_path, unlocked_gems) - prune_git_and_path_cache(resolve, cache_path) - end - end - - # Copied from Bundler::Runtime: Modified to only prune gems that have - # been unlocked - def prune_gem_cache(resolve, cache_path, unlocked_gems) - cached_gems = Dir["#{cache_path}/*.gem"] - - outdated_gems = cached_gems.reject do |path| - spec = Bundler.rubygems.spec_from_gem path - - !unlocked_gems.include?(spec.name) || resolve.any? do |s| - s.name == spec.name && s.version == spec.version && - !s.source.is_a?(Bundler::Source::Git) - end - end - - return unless outdated_gems.any? - - outdated_gems.each do |path| - File.delete(path) - end - end - - # Copied from Bundler::Runtime - def prune_git_and_path_cache(resolve, cache_path) - cached_git_and_path = Dir["#{cache_path}/*/.bundlecache"] - - outdated_git_and_path = cached_git_and_path.reject do |path| - name = File.basename(File.dirname(path)) - - resolve.any? do |s| - s.source.respond_to?(:app_cache_dirname) && - s.source.app_cache_dirname == name - end - end - - return unless outdated_git_and_path.any? - - outdated_git_and_path.each do |path| - path = File.dirname(path) - FileUtils.rm_rf(path) - end - end - - def unlock_yanked_gem(dependencies_to_unlock, error) - raise unless error.message.match?(GEM_NOT_FOUND_ERROR_REGEX) - - gem_name = error.message.match(GEM_NOT_FOUND_ERROR_REGEX) - .named_captures["name"] - raise if dependencies_to_unlock.include?(gem_name) - - dependencies_to_unlock << gem_name - end - - def unlock_blocking_subdeps(dependencies_to_unlock, error) - all_deps = Bundler::LockfileParser.new(lockfile) - .specs.map { |x| x.name.to_s } - top_level = build_definition([]).dependencies - .map { |x| x.name.to_s } - allowed_new_unlocks = all_deps - top_level - dependencies_to_unlock - - raise if allowed_new_unlocks.none? - - # Unlock any sub-dependencies that Bundler reports caused the - # conflict - potentials_deps = - error.cause.conflicts.values - .flat_map(&:requirement_trees) - .filter_map do |tree| - tree.find { |req| allowed_new_unlocks.include?(req.name) } - end.map(&:name) - - # If there are specific dependencies we can unlock, unlock them - return dependencies_to_unlock.append(*potentials_deps) if potentials_deps.any? - - # Fall back to unlocking *all* sub-dependencies. This is required - # because Bundler's VersionConflict objects don't include enough - # information to chart the full path through all conflicts unwound - dependencies_to_unlock.append(*allowed_new_unlocks) - end - - def build_definition(dependencies_to_unlock) - defn = Bundler::Definition.build( - gemfile_name, - lockfile_name, - gems: dependencies_to_unlock - ) - - # Bundler unlocks the sub-dependencies of gems it is passed even - # if those sub-deps are top-level dependencies. We only want true - # subdeps unlocked, like they were in the UpdateChecker, so we - # mutate the unlocked gems array. - unlocked = defn.instance_variable_get(:@unlock).fetch(:gems) - must_not_unlock = defn.dependencies.map { |x| x.name.to_s } - - dependencies_to_unlock - unlocked.reject! { |n| must_not_unlock.include?(n) } - - defn - end - - def lock_deps_being_updated_to_exact_versions(definition) - dependencies.each_with_object({}) do |dep, old_reqs| - defn_dep = definition.dependencies.find do |d| - d.name == dep.fetch("name") - end - - if defn_dep.nil? - definition.dependencies << - Bundler::Dependency.new(dep.fetch("name"), dep.fetch("version")) - old_reqs[dep.fetch("name")] = :none - elsif git_dependency?(dep) && - defn_dep.source.is_a?(Bundler::Source::Git) - defn_dep.source.unlock! - elsif Gem::Version.correct?(dep.fetch("version")) - new_req = Gem::Requirement.create("= #{dep.fetch('version')}") - old_reqs[dep.fetch("name")] = defn_dep.requirement - defn_dep.instance_variable_set(:@requirement, new_req) - end - end - end - - def git_dependency?(dep) - sources = dep.fetch("requirements").map { |r| r.fetch("source") } - sources.all? { |s| s&.fetch("type", nil) == "git" } - end - - def lockfile - @lockfile ||= File.read(lockfile_name) - end - end -end diff --git a/bundler/helpers/v1/lib/functions/version_resolver.rb b/bundler/helpers/v1/lib/functions/version_resolver.rb deleted file mode 100644 index 54330d52c31e..000000000000 --- a/bundler/helpers/v1/lib/functions/version_resolver.rb +++ /dev/null @@ -1,141 +0,0 @@ -# typed: true -# frozen_string_literal: true - -module Functions - class VersionResolver - GEM_NOT_FOUND_ERROR_REGEX = /locked to (?[^\s]+) \(/ - - attr_reader :dependency_name - attr_reader :dependency_requirements - attr_reader :gemfile_name - attr_reader :lockfile_name - - def initialize(dependency_name:, dependency_requirements:, - gemfile_name:, lockfile_name:) - @dependency_name = dependency_name - @dependency_requirements = dependency_requirements - @gemfile_name = gemfile_name - @lockfile_name = lockfile_name - end - - def version_details - dep = dependency_from_definition - - # If the dependency wasn't found in the definition, but *is* - # included in a gemspec, it's because the Gemfile didn't import - # the gemspec. This is unusual, but the correct behaviour if/when - # it happens is to behave as if the repo was gemspec-only. - return "latest" if dep.nil? && dependency_requirements.any? - - # Otherwise, if the dependency wasn't found it's because it is a - # subdependency that was removed when attempting to update it. - return nil if dep.nil? - - # If the dependency is Bundler itself then we can't trust the - # version that has been returned (it's the version Dependabot is - # running on, rather than the true latest resolvable version). - return nil if dep.name == "bundler" - - details = { - version: dep.version, - ruby_version: ruby_version, - fetcher: fetcher_class(dep) - } - details[:commit_sha] = dep.source.revision if dep.source.instance_of?(::Bundler::Source::Git) - details - end - - private - - # rubocop:disable Metrics/PerceivedComplexity - def dependency_from_definition(unlock_subdependencies: true) - dependencies_to_unlock = [dependency_name] - dependencies_to_unlock += subdependencies if unlock_subdependencies - begin - definition = build_definition(dependencies_to_unlock) - definition.resolve_remotely! - rescue ::Bundler::GemNotFound => e - unlock_yanked_gem(dependencies_to_unlock, e) && retry - rescue ::Bundler::HTTPError => e - # Retry network errors - # Note: in_a_native_bundler_context will also retry `Bundler::HTTPError` errors - # up to three times meaning we'll end up retrying this error up to six times - # TODO: Could we get rid of this retry logic and only rely on - # SharedBundlerHelpers.in_a_native_bundler_context - attempt ||= 1 - attempt += 1 - raise if attempt > 3 || !e.message.include?("Network error") - - retry - end - - dep = definition.resolve.find { |d| d.name == dependency_name } - return dep if dep - return if dependency_requirements.any? || !unlock_subdependencies - - # If no definition was found and we're updating a sub-dependency, - # try again but without unlocking any other sub-dependencies - dependency_from_definition(unlock_subdependencies: false) - end - # rubocop:enable Metrics/PerceivedComplexity - - def subdependencies - # If there's no lockfile we don't need to worry about - # subdependencies - return [] unless lockfile - - all_deps = ::Bundler::LockfileParser.new(lockfile) - .specs.map { |x| x.name.to_s }.uniq - top_level = build_definition([]).dependencies - .map { |x| x.name.to_s } - - all_deps - top_level - end - - def build_definition(dependencies_to_unlock) - # NOTE: we lock shared dependencies to avoid any top-level - # dependencies getting unlocked (which would happen if they were - # also subdependencies of the dependency being unlocked) - ::Bundler::Definition.build( - gemfile_name, - lockfile_name, - gems: dependencies_to_unlock, - lock_shared_dependencies: true - ) - end - - def unlock_yanked_gem(dependencies_to_unlock, error) - raise unless error.message.match?(GEM_NOT_FOUND_ERROR_REGEX) - - gem_name = error.message.match(GEM_NOT_FOUND_ERROR_REGEX) - .named_captures["name"] - raise if dependencies_to_unlock.include?(gem_name) - - dependencies_to_unlock << gem_name - end - - def lockfile - return @lockfile if defined?(@lockfile) - - @lockfile = - begin - return unless lockfile_name - return unless File.exist?(lockfile_name) - - File.read(lockfile_name) - end - end - - def fetcher_class(dep) - return unless dep.source.is_a?(::Bundler::Source::Rubygems) - - dep.source.fetchers.first.fetchers.first.class.to_s - end - - def ruby_version - return nil unless gemfile_name - - @ruby_version ||= build_definition([]).ruby_version&.gem_version - end - end -end diff --git a/bundler/helpers/v1/monkey_patches/definition_bundler_version_patch.rb b/bundler/helpers/v1/monkey_patches/definition_bundler_version_patch.rb deleted file mode 100644 index 8783e7693c02..000000000000 --- a/bundler/helpers/v1/monkey_patches/definition_bundler_version_patch.rb +++ /dev/null @@ -1,16 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "bundler/definition" - -# Ignore the Bundler version specified in the Gemfile (since the only Bundler -# version available to us is the one we're using). -module BundlerDefinitionBundlerVersionPatch - def expanded_dependencies - @expanded_dependencies ||= - expand_dependencies(dependencies + metadata_dependencies, @remote) - .reject { |d| d.name == "bundler" } - end -end - -Bundler::Definition.prepend(BundlerDefinitionBundlerVersionPatch) diff --git a/bundler/helpers/v1/monkey_patches/definition_ruby_version_patch.rb b/bundler/helpers/v1/monkey_patches/definition_ruby_version_patch.rb deleted file mode 100644 index bca11f2dc7c4..000000000000 --- a/bundler/helpers/v1/monkey_patches/definition_ruby_version_patch.rb +++ /dev/null @@ -1,22 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "bundler/definition" - -module BundlerDefinitionRubyVersionPatch - def index - @index ||= super.tap do - if ruby_version - requested_version = ruby_version.to_gem_version_with_patchlevel - sources.metadata_source.specs << - Gem::Specification.new("ruby\0", requested_version) - end - - %w(2.5.3p105 2.6.10p210 2.7.6p219 3.0.7p220 3.1.5p252 3.2.4p170).each do |version| - sources.metadata_source.specs << Gem::Specification.new("ruby\0", version) - end - end - end -end - -Bundler::Definition.prepend(BundlerDefinitionRubyVersionPatch) diff --git a/bundler/helpers/v1/monkey_patches/fileutils_keyword_splat_patch.rb b/bundler/helpers/v1/monkey_patches/fileutils_keyword_splat_patch.rb deleted file mode 100644 index 168b7d469c65..000000000000 --- a/bundler/helpers/v1/monkey_patches/fileutils_keyword_splat_patch.rb +++ /dev/null @@ -1,20 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "bundler/vendor/fileutils/lib/fileutils" - -# Port -# https://github.com/ruby/fileutils/commit/a5eca84a4240e29bb7886c3ef7085d464a972dd0 -# to fix keyword argument errors on Ruby 3.1 - -module BundlerFileUtilsKeywordSplatPatch - def entries - opts = {} - opts[:encoding] = ::Encoding::UTF_8 if fu_windows? - Dir.entries(path, **opts) - .reject { |n| n == "." || n == ".." } - .map { |n| self.class.new(prefix, join(rel, n.untaint)) } - end -end - -Bundler::FileUtils::Entry_.prepend(BundlerFileUtilsKeywordSplatPatch) diff --git a/bundler/helpers/v1/monkey_patches/git_source_patch.rb b/bundler/helpers/v1/monkey_patches/git_source_patch.rb deleted file mode 100644 index c878d582069a..000000000000 --- a/bundler/helpers/v1/monkey_patches/git_source_patch.rb +++ /dev/null @@ -1,62 +0,0 @@ -# typed: true -# frozen_string_literal: true - -require "bundler/source" - -module Bundler - class Source - class Git - class GitProxy - private - - # Bundler allows ssh authentication when talking to GitHub but there's - # no way for Dependabot to do so (it doesn't have any ssh keys). - # Instead, we convert all `git@github.com:` URLs to use HTTPS. - def configured_uri_for(uri) - uri = uri.gsub(%r{git@(.*?):/?}, 'https://\1/') - if uri.match?(/https?:/) - remote = ::URI.parse(uri) - config_auth = - Bundler.settings[remote.to_s] || Bundler.settings[remote.host] - remote.userinfo ||= config_auth - remote.to_s - else - uri - end - end - end - end - end -end - -module Bundler - class Source - class Git < Path - private - - def serialize_gemspecs_in(destination) - original_load_paths = $LOAD_PATH.dup - reduced_load_paths = original_load_paths - .reject { |p| p.include?("/gems/") } - - $LOAD_PATH.shift until $LOAD_PATH.empty? - reduced_load_paths.each { |p| $LOAD_PATH << p } - - destination = destination.expand_path(Bundler.root) if destination.relative? - Dir["#{destination}/#{@glob}"].each do |spec_path| - # Evaluate gemspecs and cache the result. Gemspecs - # in git might require git or other dependencies. - # The gemspecs we cache should already be evaluated. - spec = Bundler.load_gemspec(spec_path) - next unless spec - - Bundler.rubygems.set_installed_by_version(spec) - Bundler.rubygems.validate(spec) - File.binwrite(spec_path, spec.to_ruby) - end - $LOAD_PATH.shift until $LOAD_PATH.empty? - original_load_paths.each { |p| $LOAD_PATH << p } - end - end - end -end diff --git a/bundler/helpers/v1/monkey_patches/object_untaint_patch.rb b/bundler/helpers/v1/monkey_patches/object_untaint_patch.rb deleted file mode 100644 index 04b8c620f8ce..000000000000 --- a/bundler/helpers/v1/monkey_patches/object_untaint_patch.rb +++ /dev/null @@ -1,17 +0,0 @@ -# typed: false -# frozen_string_literal: true - -# Bundler v1 uses the `untaint` method on objects in `Bundler::SharedHelpers`. -# This method has been deprecated for a long time, and is actually a no-op in -# ruby versions 2.7+. In Ruby 3.3 it was finally removed, and it's now causing -# bundler v1 to error. -# -# In order to keep the old behavior, we're monkey patching `Object` to add a -# no-op implementation of untaint. -module ObjectUntaintPatch - def untaint - self - end -end - -Object.prepend(ObjectUntaintPatch) diff --git a/bundler/helpers/v1/monkey_patches/resolver_spec_group_sane_eql.rb b/bundler/helpers/v1/monkey_patches/resolver_spec_group_sane_eql.rb deleted file mode 100644 index c3e2e7012612..000000000000 --- a/bundler/helpers/v1/monkey_patches/resolver_spec_group_sane_eql.rb +++ /dev/null @@ -1,18 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "bundler/resolver/spec_group" - -# Port -# https://github.com/rubygems/bundler/commit/30a690edbdf5ee64ea54afc7d0c91d910ff2b80e -# to fix flaky failures on Bundler 1 - -module BundlerResolverSpecGroupSaneEql - def eql?(other) - return false unless other.is_a?(self.class) - - super - end -end - -Bundler::Resolver::SpecGroup.prepend(BundlerResolverSpecGroupSaneEql) diff --git a/bundler/helpers/v1/patched_bundler b/bundler/helpers/v1/patched_bundler deleted file mode 100755 index 15e4f86f0f5d..000000000000 --- a/bundler/helpers/v1/patched_bundler +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/local/bin/ruby -# -# This file was generated by RubyGems. -# It was then patched by Dependabot to add `Object#untaint` back -# in order to run bundler 1.17.3 using Ruby 3.3+. -# -# The application 'bundler' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -$LOAD_PATH.unshift(File.expand_path("./monkey_patches", __dir__)) -require "object_untaint_patch" - -require 'rubygems' - -version = ">= 0.a" - -str = ARGV.first -if str - str = str.b[/\A_(.*)_\z/, 1] - if str and Gem::Version.correct?(str) - version = str - ENV['BUNDLER_VERSION'] = str - - ARGV.shift - end -end - -if Gem.respond_to?(:activate_bin_path) -load Gem.activate_bin_path('bundler', 'bundle', version) -else -gem "bundler", version -load Gem.bin_path("bundler", "bundle", version) -end diff --git a/bundler/helpers/v1/run.rb b/bundler/helpers/v1/run.rb deleted file mode 100644 index 2b9345d60916..000000000000 --- a/bundler/helpers/v1/run.rb +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strict -# frozen_string_literal: true - -gem "bundler", "~> 1.17" -require "bundler" -require "json" - -$LOAD_PATH.unshift(File.expand_path("./lib", __dir__)) -$LOAD_PATH.unshift(File.expand_path("./monkey_patches", __dir__)) - -trap "HUP" do - puts JSON.generate(error: "timeout", error_class: "Timeout::Error", trace: []) - exit 2 -end - -# Bundler monkey patches -require "definition_ruby_version_patch" -require "definition_bundler_version_patch" -require "fileutils_keyword_splat_patch" -require "git_source_patch" -require "resolver_spec_group_sane_eql" -require "object_untaint_patch" - -require "functions" - -begin - request = JSON.parse($stdin.read) - - function = request["function"] - args = request["args"].transform_keys(&:to_sym) - - print JSON.dump({ result: Functions.send(function, **args) }) -rescue StandardError => e - print JSON.dump( - { error: e.message, error_class: e.class, trace: e.backtrace } - ) - exit(1) -end diff --git a/bundler/helpers/v1/spec/functions/conflicting_dependency_resolver_spec.rb b/bundler/helpers/v1/spec/functions/conflicting_dependency_resolver_spec.rb deleted file mode 100644 index 5be15365c3cd..000000000000 --- a/bundler/helpers/v1/spec/functions/conflicting_dependency_resolver_spec.rb +++ /dev/null @@ -1,118 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "native_spec_helper" -require "shared_contexts" - -RSpec.describe Functions::ConflictingDependencyResolver do - include_context "when in a temporary bundler directory" - - let(:conflicting_dependency_resolver) do - described_class.new( - dependency_name: dependency_name, - target_version: target_version, - lockfile_name: "Gemfile.lock" - ) - end - - let(:dependency_name) { "dummy-pkg-a" } - let(:target_version) { "2.0.0" } - - let(:project_name) { "blocked_by_subdep" } - - describe "#conflicting_dependencies" do - subject(:conflicting_dependencies) do - in_tmp_folder { conflicting_dependency_resolver.conflicting_dependencies } - end - - it "returns a list of dependencies that block the update" do - expect(conflicting_dependencies).to eq( - [{ - "explanation" => "dummy-pkg-b (1.0.0) requires dummy-pkg-a (< 2.0.0)", - "name" => "dummy-pkg-b", - "version" => "1.0.0", - "requirement" => "< 2.0.0" - }] - ) - end - - context "when dealing with nested transitive dependencies" do - let(:project_name) { "transitive_blocking" } - let(:dependency_name) { "activesupport" } - let(:target_version) { "6.0.0" } - - it "returns a list of dependencies that block the update" do - expect(conflicting_dependencies).to contain_exactly({ - "explanation" => "rails (5.2.0) requires activesupport (= 5.2.0)", - "name" => "rails", - "requirement" => "= 5.2.0", - "version" => "5.2.0" - }, { - "explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via actionpack (5.2.0)", - "name" => "actionpack", - "version" => "5.2.0", - "requirement" => "= 5.2.0" - }, { - "explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via actionview (5.2.0)", - "name" => "actionview", - "version" => "5.2.0", - "requirement" => "= 5.2.0" - }, { - "explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via activejob (5.2.0)", - "name" => "activejob", - "version" => "5.2.0", - "requirement" => "= 5.2.0" - }, { - "explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via activemodel (5.2.0)", - "name" => "activemodel", - "version" => "5.2.0", - "requirement" => "= 5.2.0" - }, { - "explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via activerecord (5.2.0)", - "name" => "activerecord", - "version" => "5.2.0", - "requirement" => "= 5.2.0" - }, { - "explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via railties (5.2.0)", - "name" => "railties", - "version" => "5.2.0", - "requirement" => "= 5.2.0" - }) - end - end - - context "with multiple blocking dependencies" do - let(:dependency_name) { "activesupport" } - let(:current_version) { "5.0.0" } - let(:target_version) { "6.0.0" } - let(:project_name) { "multiple_blocking" } - - it "returns all of the blocking dependencies" do - expect(conflicting_dependencies).to contain_exactly({ - "explanation" => "actionmailer (5.0.0) requires activesupport (= 5.0.0) via actionpack (5.0.0)", - "name" => "actionpack", - "version" => "5.0.0", - "requirement" => "= 5.0.0" - }, { - "explanation" => "actionview (5.0.0) requires activesupport (= 5.0.0)", - "name" => "actionview", - "version" => "5.0.0", - "requirement" => "= 5.0.0" - }, { - "explanation" => "actionmailer (5.0.0) requires activesupport (= 5.0.0) via activejob (5.0.0)", - "name" => "activejob", - "version" => "5.0.0", - "requirement" => "= 5.0.0" - }) - end - end - - context "without any blocking dependencies" do - let(:target_version) { "1.0.0" } - - it "returns an empty list" do - expect(conflicting_dependencies).to eq([]) - end - end - end -end diff --git a/bundler/helpers/v1/spec/functions/dependency_source_spec.rb b/bundler/helpers/v1/spec/functions/dependency_source_spec.rb deleted file mode 100644 index 53f5b7470c95..000000000000 --- a/bundler/helpers/v1/spec/functions/dependency_source_spec.rb +++ /dev/null @@ -1,188 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "native_spec_helper" -require "shared_contexts" - -RSpec.describe Functions::DependencySource do - include_context "when in a temporary bundler directory" - - let(:dependency_source) do - described_class.new( - gemfile_name: "Gemfile", - dependency_name: dependency_name - ) - end - - let(:dependency_name) { "business" } - - let(:project_name) { "specified_source_no_lockfile" } - let(:registry_url) { "https://repo.fury.io/greysteil/" } - let(:gemfury_business_url) do - "https://repo.fury.io/greysteil/api/v1/dependencies?gems=business" - end - - before do - stub_request(:get, registry_url + "versions") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 404) - stub_request(:get, registry_url + "api/v1/dependencies") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 200) - stub_request(:get, gemfury_business_url) - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 200, body: fixture("ruby", "gemfury_response")) - end - - describe "#private_registry_versions" do - subject(:private_registry_versions) do - in_tmp_folder { dependency_source.private_registry_versions } - end - - it "returns all versions from the private source" do - expect(private_registry_versions).to eq([ - Gem::Version.new("1.5.0"), - Gem::Version.new("1.9.0"), - Gem::Version.new("1.10.0.beta") - ]) - end - - context "when specified as the default source" do - let(:project_name) { "specified_default_source_no_lockfile" } - - it "returns all versions from the private source" do - expect(private_registry_versions).to eq([ - Gem::Version.new("1.5.0"), - Gem::Version.new("1.9.0"), - Gem::Version.new("1.10.0.beta") - ]) - end - end - - context "when we don't have authentication details for" do - before do - stub_request(:get, registry_url + "versions") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 401) - stub_request(:get, registry_url + "api/v1/dependencies") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 401) - stub_request(:get, registry_url + "specs.4.8.gz") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 401) - end - - it "blows up with a useful error" do - error_class = Bundler::Fetcher::AuthenticationRequiredError - error_message = "Authentication is required for repo.fury.io" - expect { private_registry_versions } - .to raise_error do |error| - expect(error).to be_a(error_class) - expect(error.message).to include(error_message) - end - end - end - - context "when we have bad authentication details" do - before do - stub_request(:get, registry_url + "versions") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 403) - stub_request(:get, registry_url + "api/v1/dependencies") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 403) - stub_request(:get, registry_url + "specs.4.8.gz") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 403) - end - - it "blows up with a useful error" do - error_class = Bundler::Fetcher::BadAuthenticationError - expect { private_registry_versions } - .to raise_error do |error| - expect(error).to be_a(error_class) - expect(error.message) - .to include("Bad username or password for") - end - end - end - - context "when bad-requested, but is a private repo" do - before do - stub_request(:get, registry_url + "versions") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 400) - stub_request(:get, registry_url + "api/v1/dependencies") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 400) - stub_request(:get, registry_url + "specs.4.8.gz") - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 400) - end - - it "blows up with a useful error" do - expect { private_registry_versions } - .to raise_error do |error| - expect(error).to be_a(Bundler::HTTPError) - expect(error.message) - .to include("Could not fetch specs from") - end - end - end - - context "when it doesn't have details of the gem" do - before do - stub_request(:get, gemfury_business_url) - .with(basic_auth: ["SECRET_CODES", ""]) - .to_return(status: 404) - - # Stub indexes to return details of other gems (but not this one) - stub_request(:get, registry_url + "specs.4.8.gz") - .to_return( - status: 200, - body: fixture("ruby", "contribsys_old_index_response") - ) - stub_request(:get, registry_url + "prerelease_specs.4.8.gz") - .to_return( - status: 200, - body: fixture("ruby", "contribsys_old_index_prerelease_response") - ) - end - - it { is_expected.to be_empty } - end - - context "when it only implements the old Bundler index format" do - let(:project_name) { "sidekiq_pro" } - let(:dependency_name) { "sidekiq-pro" } - let(:registry_url) { "https://gems.contribsys.com/" } - - before do - stub_request(:get, registry_url + "versions") - .with(basic_auth: %w(username password)) - .to_return(status: 404) - stub_request(:get, registry_url + "api/v1/dependencies") - .with(basic_auth: %w(username password)) - .to_return(status: 404) - stub_request(:get, registry_url + "specs.4.8.gz") - .with(basic_auth: %w(username password)) - .to_return( - status: 200, - body: fixture("ruby", "contribsys_old_index_response") - ) - stub_request(:get, registry_url + "prerelease_specs.4.8.gz") - .with(basic_auth: %w(username password)) - .to_return( - status: 200, - body: fixture("ruby", "contribsys_old_index_prerelease_response") - ) - end - - it "returns all versions from the private source" do - expect(private_registry_versions.length).to be(70) - expect(private_registry_versions.min).to eql(Gem::Version.new("1.0.0")) - expect(private_registry_versions.max).to eql(Gem::Version.new("3.5.2")) - end - end - end -end diff --git a/bundler/helpers/v1/spec/functions/file_parser_spec.rb b/bundler/helpers/v1/spec/functions/file_parser_spec.rb deleted file mode 100644 index db4c96ca8bc3..000000000000 --- a/bundler/helpers/v1/spec/functions/file_parser_spec.rb +++ /dev/null @@ -1,75 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "native_spec_helper" -require "shared_contexts" - -RSpec.describe Functions::FileParser do - include_context "when in a temporary bundler directory" - - let(:dependency_source) do - described_class.new( - lockfile_name: "Gemfile.lock" - ) - end - - describe "#parsed_gemfile" do - subject(:parsed_gemfile) do - in_tmp_folder do - dependency_source.parsed_gemfile(gemfile_name: "Gemfile") - end - end - - let(:project_name) { "gemfile" } - - it "parses gemfile" do - parsed_gemfile = [ - { - groups: [:default], - name: "business", - requirement: Gem::Requirement.new("~> 1.4.0"), - source: nil, - type: :runtime - }, - { - groups: [:default], - name: "statesman", - requirement: Gem::Requirement.new("~> 1.2.0"), - source: nil, - type: :runtime - } - ] - expect(parsed_gemfile).not_to be_nil # to get past IdenticalEqualityAssertion - end - end - - describe "#parsed_gemspec" do - subject(:parsed_gemspec) do - in_tmp_folder do |_tmp_path| - dependency_source.parsed_gemspec(gemspec_name: "example.gemspec") - end - end - - let(:project_name) { "gemfile_exact" } - - it "parses gemspec" do - parsed_gemspec = [ - { - groups: nil, - name: "business", - requirement: Gem::Requirement.new("= 1.0.0"), - source: nil, - type: :runtime - }, - { - groups: nil, - name: "statesman", - requirement: Gem::Requirement.new("= 1.0.0"), - source: nil, - type: :runtime - } - ] - expect(parsed_gemspec).not_to be_nil # to get past IdenticalEqualityAssertion - end - end -end diff --git a/bundler/helpers/v1/spec/functions/force_updater_spec.rb b/bundler/helpers/v1/spec/functions/force_updater_spec.rb deleted file mode 100644 index fd9ba6338e6e..000000000000 --- a/bundler/helpers/v1/spec/functions/force_updater_spec.rb +++ /dev/null @@ -1,59 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "native_spec_helper" -require "shared_contexts" - -RSpec.describe Functions::ForceUpdater do - include_context "when in a temporary bundler directory" - include_context "when stubbing rubygems compact index" - - let(:force_updater) do - described_class.new( - dependency_name: dependency_name, - target_version: target_version, - gemfile_name: gemfile_name, - lockfile_name: lockfile_name, - update_multiple_dependencies: update_multiple_dependencies - ) - end - let(:gemfile_name) { "Gemfile" } - let(:lockfile_name) { "Gemfile.lock" } - let(:update_multiple_dependencies) { true } - - describe "#run" do - subject(:force_update) do - in_tmp_folder { force_updater.run } - end - - context "with a version conflict" do - let(:target_version) { "3.6.0" } - let(:dependency_name) { "rspec-support" } - let(:project_name) { "version_conflict" } - - it "updates the conflicting dependencies" do - updated_deps, _specs = force_update - expect(updated_deps).to eq([{ name: "rspec-support" }, { name: "rspec-mocks" }]) - end - - context "when updating a single dependency" do - let(:update_multiple_dependencies) { false } - - it { expect { force_update }.to raise_error(Bundler::VersionConflict) } - end - end - - context "with a version conflict in gems rb" do - let(:target_version) { "3.6.0" } - let(:dependency_name) { "rspec-support" } - let(:project_name) { "version_conflict_gems_rb" } - let(:gemfile_name) { "gems.rb" } - let(:lockfile_name) { "gems.locked" } - - it "updates the conflicting dependencies" do - updated_deps, _specs = force_update - expect(updated_deps).to eq([{ name: "rspec-support" }, { name: "rspec-mocks" }]) - end - end - end -end diff --git a/bundler/helpers/v1/spec/functions/version_resolver_spec.rb b/bundler/helpers/v1/spec/functions/version_resolver_spec.rb deleted file mode 100644 index afa017a963f8..000000000000 --- a/bundler/helpers/v1/spec/functions/version_resolver_spec.rb +++ /dev/null @@ -1,105 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "native_spec_helper" -require "shared_contexts" - -RSpec.describe Functions::VersionResolver do - include_context "when in a temporary bundler directory" - include_context "when stubbing rubygems compact index" - - let(:version_resolver) do - described_class.new( - dependency_name: dependency_name, - dependency_requirements: dependency_requirements, - gemfile_name: "Gemfile", - lockfile_name: "Gemfile.lock" - ) - end - - let(:dependency_name) { "business" } - let(:dependency_requirements) do - [{ - file: "Gemfile", - requirement: requirement_string, - groups: [], - source: source - }] - end - let(:source) { nil } - - let(:rubygems_url) { "https://index.rubygems.org/api/v1/" } - let(:old_index_url) { rubygems_url + "dependencies" } - - describe "#version_details" do - subject do - in_tmp_folder { version_resolver.version_details } - end - - let(:project_name) { "gemfile" } - let(:requirement_string) { " >= 0" } - - its([:version]) { is_expected.to eq(Gem::Version.new("1.4.0")) } - its([:fetcher]) { is_expected.to eq("Bundler::Fetcher::CompactIndex") } - - context "with a private gemserver source" do - include_context "when stubbing rubygems compact index" - - let(:project_name) { "specified_source" } - let(:requirement_string) { ">= 0" } - - before do - gemfury_url = "https://repo.fury.io/greysteil/" - gemfury_deps_url = gemfury_url + "api/v1/dependencies" - - stub_request(:get, gemfury_url + "versions") - .to_return(status: 200, body: fixture("ruby", "gemfury-index")) - stub_request(:get, gemfury_url + "info/business").to_return(status: 404) - stub_request(:get, gemfury_deps_url).to_return(status: 200) - stub_request(:get, gemfury_deps_url + "?gems=business,statesman") - .to_return(status: 200, body: fixture("ruby", "gemfury_response")) - stub_request(:get, gemfury_deps_url + "?gems=business") - .to_return(status: 200, body: fixture("ruby", "gemfury_response")) - stub_request(:get, gemfury_deps_url + "?gems=statesman") - .to_return(status: 200, body: fixture("ruby", "gemfury_response")) - end - - its([:version]) { is_expected.to eq(Gem::Version.new("1.9.0")) } - its([:fetcher]) { is_expected.to eq("Bundler::Fetcher::Dependency") } - end - - context "with a git source" do - let(:project_name) { "git_source" } - - its([:version]) { is_expected.to eq(Gem::Version.new("1.6.0")) } - its([:fetcher]) { is_expected.to be_nil } - end - - context "when Bundler's compact index is down" do - before do - stub_request(:get, "https://index.rubygems.org/versions") - .to_return(status: 500, body: "We'll be back soon") - stub_request(:get, "https://index.rubygems.org/info/public_suffix") - .to_return(status: 500, body: "We'll be back soon") - stub_request(:get, old_index_url).to_return(status: 200) - stub_request(:get, old_index_url + "?gems=business,statesman") - .to_return( - status: 200, - body: fixture("rubygems_responses", - "dependencies-default-gemfile") - ) - end - - its([:version]) { is_expected.to eq(Gem::Version.new("1.4.0")) } - its([:fetcher]) { is_expected.to eq("Bundler::Fetcher::Dependency") } - end - - context "with no update possible due to a version conflict" do - let(:project_name) { "version_conflict_with_listed_subdep" } - let(:dependency_name) { "rspec-mocks" } - let(:requirement_string) { ">= 0" } - - its([:version]) { is_expected.to eq(Gem::Version.new("3.6.0")) } - end - end -end diff --git a/bundler/helpers/v1/spec/native_spec_helper.rb b/bundler/helpers/v1/spec/native_spec_helper.rb deleted file mode 100644 index 4e041f5fc54c..000000000000 --- a/bundler/helpers/v1/spec/native_spec_helper.rb +++ /dev/null @@ -1,56 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "rspec/its" -require "webmock/rspec" -require "tmpdir" - -$LOAD_PATH.unshift(File.expand_path("../lib", __dir__)) -$LOAD_PATH.unshift(File.expand_path("../monkey_patches", __dir__)) -$LOAD_PATH.unshift(File.expand_path("../../spec_helpers", __dir__)) - -# Bundler monkey patches -require "definition_ruby_version_patch" -require "definition_bundler_version_patch" -require "fileutils_keyword_splat_patch" -require "git_source_patch" -require "resolver_spec_group_sane_eql" - -require "functions" - -require "gem_net_http_adapter" - -RSpec.configure do |config| - config.color = true - config.order = :rand - config.mock_with(:rspec) { |mocks| mocks.verify_partial_doubles = true } - config.raise_errors_for_deprecations! -end - -# Duplicated in lib/dependabot/bundler/file_updater/lockfile_updater.rb -# TODO: Stop sanitizing the lockfile once we have bundler 2 installed -LOCKFILE_ENDING = /(?\s*(?:RUBY VERSION|BUNDLED WITH).*)/m - -def project_dependency_files(project) - project_path = File.expand_path(File.join("../../spec/fixtures/projects/bundler1", project)) - - raise "Fixture does not exist for project: '#{project}'" unless Dir.exist?(project_path) - - Dir.chdir(project_path) do - # NOTE: Include dotfiles (e.g. .npmrc) - files = Dir.glob("**/*", File::FNM_DOTMATCH) - files = files.select { |f| File.file?(f) } - files.map do |filename| - content = File.read(filename) - content = content.gsub(LOCKFILE_ENDING, "") if filename == "Gemfile.lock" - { - name: filename, - content: content - } - end - end -end - -def fixture(*name) - File.read(File.join("../../spec/fixtures", File.join(*name))) -end diff --git a/bundler/helpers/v1/spec/shared_contexts.rb b/bundler/helpers/v1/spec/shared_contexts.rb deleted file mode 100644 index 3588d6ca9a03..000000000000 --- a/bundler/helpers/v1/spec/shared_contexts.rb +++ /dev/null @@ -1,60 +0,0 @@ -# typed: false -# frozen_string_literal: true - -require "bundler/compact_index_client" -require "bundler/compact_index_client/updater" - -TMP_DIR_PATH = File.expand_path("../tmp", __dir__) - -RSpec.shared_context "when in a temporary bundler directory" do - let(:project_name) { "gemfile" } - - let(:tmp_path) do - FileUtils.mkdir_p(TMP_DIR_PATH) - dir = Dir.mktmpdir("native_helper_spec_", TMP_DIR_PATH) - Pathname.new(dir).expand_path - end - - before do - project_dependency_files(project_name).each do |file| - File.write(File.join(tmp_path, file[:name]), file[:content]) - end - end - - def in_tmp_folder(&block) - Dir.chdir(tmp_path, &block) - end -end - -RSpec.shared_context "without caching rubygems" do - before do - # Stub Bundler to stop it using a cached versions of Rubygems - allow_any_instance_of(Bundler::CompactIndexClient::Updater) - .to receive(:etag_for).and_return("") - end -end - -RSpec.shared_context "when stubbing rubygems compact index" do - include_context "without caching rubygems" - - before do - # Stub the Rubygems index - stub_request(:get, "https://index.rubygems.org/versions") - .to_return( - status: 200, - body: fixture("rubygems_responses", "index") - ) - - # Stub the Rubygems response for each dependency we have a fixture for - fixtures = - Dir[File.join("../../spec", "fixtures", "rubygems_responses", "info-*")] - fixtures.each do |path| - dep_name = path.split("/").last.gsub("info-", "") - stub_request(:get, "https://index.rubygems.org/info/#{dep_name}") - .to_return( - status: 200, - body: fixture("rubygems_responses", "info-#{dep_name}") - ) - end - end -end diff --git a/bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile b/bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile deleted file mode 100644 index b6cf85ff122c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "prius", git: "https://github.com/dependabot-fixtures/prius", branch: "bad" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile.lock deleted file mode 100644 index 973b58c891bf..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bad_branch/Gemfile.lock +++ /dev/null @@ -1,23 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - branch: bad - specs: - prius (1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile b/bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile deleted file mode 100644 index 59ef4eb67a94..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", git: "https://github.com/dependabot-fixtures/business", branch: "bad" -gem "statesman", "~> 1.2.0" -gem "prius", "~> 1.0.0" diff --git a/bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile.lock deleted file mode 100644 index 9b3fecdea723..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bad_branch_business/Gemfile.lock +++ /dev/null @@ -1,23 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/business - revision: d41e445215b5af70c1604715d97dd953e868380e - branch: bad_branch - specs: - business (1.10.0) - -GEM - remote: https://rubygems.org/ - specs: - prius (1.0.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business! - prius (~> 1.0.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.16.0.pre.2 diff --git a/bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile b/bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile deleted file mode 100644 index d77611ce2909..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile.lock deleted file mode 100644 index 96ad9f03e0de..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bad_ref/Gemfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce1 - specs: - prius (1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile b/bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile deleted file mode 100644 index 316161ee3649..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' do - gem 'statesman' - gem 'business' -end diff --git a/bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile.lock deleted file mode 100644 index e8c0ec5ae72c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/block_source_rubygems/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.10.0) - statesman (3.1.0) - -PLATFORMS - ruby - -DEPENDENCIES - business! - statesman! - -BUNDLED WITH - 1.16.0.pre.3 diff --git a/bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile b/bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile deleted file mode 100644 index 31ab2eb1cff9..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "dummy-pkg-a" -gem "dummy-pkg-b" diff --git a/bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile.lock deleted file mode 100644 index 30740272d747..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/blocked_by_subdep/Gemfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - dummy-pkg-a (1.0.1) - dummy-pkg-b (1.0.0) - dummy-pkg-a (< 2.0.0) - -PLATFORMS - ruby - -DEPENDENCIES - dummy-pkg-a (= 1.0.1) - dummy-pkg-b (= 1.0.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile b/bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile deleted file mode 100644 index 419f7bed8348..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "bundler", "~> 1.15.0" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile.lock deleted file mode 100644 index 7e5129246ac4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bundler_specified/Gemfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - bundler (~> 1.15.0) - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.4 diff --git a/bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile b/bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile deleted file mode 100644 index d9fd43ddf899..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" do - gem "bundler", "~> 1.15.0" - - gem "business", "~> 1.4.0" - gem "statesman", "~> 1.2.0" -end diff --git a/bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile.lock deleted file mode 100644 index 7e5129246ac4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/bundler_specified_in_source_bundler_specified/Gemfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - bundler (~> 1.15.0) - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.4 diff --git a/bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile b/bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile deleted file mode 100644 index 3fcd714d947b..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "ibandit", "~> 0.6.0" -gem "i18n", git: "https://github.com/dependabot-fixtures/i18n" diff --git a/bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile.lock deleted file mode 100644 index 85a8667a8ff2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/cant_unlock_subdep/Gemfile.lock +++ /dev/null @@ -1,21 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/i18n - revision: d049c7115f59689efb123d61430c078c6feb7537 - specs: - i18n (0.7.0) - -GEM - remote: https://rubygems.org/ - specs: - ibandit (0.6.6) - i18n (~> 0.7.0) - -PLATFORMS - ruby - -DEPENDENCIES - i18n! - ibandit (~> 0.6.0) - -BUNDLED WITH - 1.16.3 diff --git a/bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile deleted file mode 100644 index fb635a712c1b..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "prius", "1.0.0", git: "git_url" # My gem diff --git a/bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/comment_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/comments_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/comments_no_lockfile/Gemfile deleted file mode 100644 index 41c480ffbead..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/comments_no_lockfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" # Business time -gem "statesman", "~> 1.2.0" # State machine diff --git a/bundler/spec/fixtures/projects/bundler1/conditional/Gemfile b/bundler/spec/fixtures/projects/bundler1/conditional/Gemfile deleted file mode 100644 index b672cd73c873..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/conditional/Gemfile +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" - -if ENV["STATESMAN_NEXT"] == "1" - gem "statesman", "~> 7.2.0" -else - gem "statesman", "~> 1.2.0" # rubocop:disable Bundler/DuplicatedGem -end diff --git a/bundler/spec/fixtures/projects/bundler1/conditional/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/conditional/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/conditional/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/conditional/vendor/cache/business-1.4.0.gem b/bundler/spec/fixtures/projects/bundler1/conditional/vendor/cache/business-1.4.0.gem deleted file mode 100644 index 2878bcd0ae6c943056e30f2bc1278597026500f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11776 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 diff --git a/bundler/spec/fixtures/projects/bundler1/conditional/vendor/cache/statesman-1.2.1.gem b/bundler/spec/fixtures/projects/bundler1/conditional/vendor/cache/statesman-1.2.1.gem deleted file mode 100644 index f9b34cd6dc2ff8076032bafb8bd7a63d52533283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30720 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

^-s-jfM#?dmdLhXlh{{j(H9z=AER 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 ZpJ{~uPviA>U;akmZv_5E;QtDN{{a4z0e}Di diff --git a/bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile deleted file mode 100644 index 44c200339538..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "prius", "1.0.0", github: "git_url" diff --git a/bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/custom_tag_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile b/bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile deleted file mode 100644 index bdb3dbdcbc23..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "openssl", "~> 2.1.2" - -gem "business", "~> 1.4" -gem "statesman", "~> 1.2" diff --git a/bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile.lock deleted file mode 100644 index ef218622d90e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/default_gem_specified/Gemfile.lock +++ /dev/null @@ -1,17 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.18.0) - openssl (2.1.2) - statesman (1.3.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4) - openssl (~> 2.1.2) - statesman (~> 1.2) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile b/bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile deleted file mode 100644 index f04c68bc2bf3..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" - -group :development, :test do - gem "business", "~> 1.4.0" -end diff --git a/bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile.lock deleted file mode 100644 index 2fcfa9f3321e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/development_dependencies/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile deleted file mode 100644 index e08aed36a110..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -eval_gemfile File.expand_path('backend/Gemfile', File.dirname(__FILE__)) - -gem "business", "~> 1.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/backend/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/backend/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_absolute/backend/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile deleted file mode 100644 index 5febdf9583f8..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -eval_gemfile('backend/Gemfile') - -gem "business", "~> 1.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/backend/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/backend/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_gemfile/backend/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile deleted file mode 100644 index 5febdf9583f8..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -eval_gemfile('backend/Gemfile') - -gem "business", "~> 1.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/backend/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/backend/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_nested/nested/backend/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile deleted file mode 100644 index 25064841bbd0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -local_gemfile = File.dirname(__FILE__), 'backend/Gemfile' -eval_gemfile File.join(local_gemfile) - -gem "business", "~> 1.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/backend/Gemfile b/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/backend/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/eval_gemfile_variable/backend/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile deleted file mode 100644 index d438c188756a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -exec "curl https://example.com" - -source "https://rubygems.org" - -gem "business", "~> 1.0.0" -gem "uk_phone_numbers", "~> 0.1.0" diff --git a/bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/exec_error_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/exec_error_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/exec_error_no_lockfile/Gemfile deleted file mode 100644 index d438c188756a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/exec_error_no_lockfile/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -exec "curl https://example.com" - -source "https://rubygems.org" - -gem "business", "~> 1.0.0" -gem "uk_phone_numbers", "~> 0.1.0" diff --git a/bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile deleted file mode 100644 index 19cbfcc4b7f3..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -ruby "2.2.0" -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/explicit_ruby/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile deleted file mode 100644 index 19cbfcc4b7f3..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -ruby "2.2.0" -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile.lock deleted file mode 100644 index 7be0c623b865..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_in_lockfile/Gemfile.lock +++ /dev/null @@ -1,18 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -RUBY VERSION - ruby 2.2.0p0 - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile b/bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile deleted file mode 100644 index 2b0ebe4feb73..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -ruby "1.9.3" -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/explicit_ruby_old/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile deleted file mode 100644 index 43ddcac6fcfc..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source "https://rubygems.org" - -version = ENV['BUSINESS_VERSION'] || '1.0.0' - -gem "business", version diff --git a/bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/function_version_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile b/bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile deleted file mode 100644 index 80d3f33fcc6b..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source "https://rubygems.org" - -gem "i18n", "~> 0.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile.lock deleted file mode 100644 index fd18e69295c0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gem_with_number/Gemfile.lock +++ /dev/null @@ -1,13 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - i18n (0.4.2) - -PLATFORMS - ruby - -DEPENDENCIES - i18n (~> 0.4.0) - -BUNDLED WITH - 1.15.0 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_exact/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_exact/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_exact/example.gemspec deleted file mode 100644 index 79ab4231bea9..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_exact/example.gemspec +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '1.0.0' - spec.add_dependency 'statesman', '= 1.0.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_example/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_example/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_example/example.gemspec deleted file mode 100644 index bcc3ef45101c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_example/example.gemspec +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", ["~> 0.55"] - spec.add_dependency("gemnasium-parser", "~> 0.1") - spec.add_dependency 'gems', '~> 1.0' - spec.add_dependency "octokit", "~> 4.6" - spec.add_dependency "gitlab", "~> 4.1" - - spec.add_development_dependency "webmock", "~> 2.3.1" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "rake" -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/example.gemspec deleted file mode 100644 index 142de29de153..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_function_name/example.gemspec +++ /dev/null @@ -1,24 +0,0 @@ -# frozen_string_literal: true - -function_name = "unlucky" - -Gem::Specification.new do |spec| - spec.name = function_name - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/example.gemspec deleted file mode 100644 index da77199c39d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_gemspec_with_require/example.gemspec +++ /dev/null @@ -1,44 +0,0 @@ -# frozen_string_literal: true - -lib = File.expand_path('../lib', __FILE__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require 'example/version' - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = Example::VERSION - spec.summary = "Automated dependency management #{Example::VERSION}" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - Find.find("lib", "helpers") do |path| - if ignores.any? { |i| File.fnmatch(i, "/" + path, File::FNM_DOTMATCH) } - Find.prune - else - spec.files << path unless File.directory?(path) - end - end - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", "~> 0.55" - spec.add_dependency "gemnasium-parser", "~> 0.1" - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "octokit", "~> 4.6" - spec.add_dependency "gitlab", "~> 4.1" - - spec.add_development_dependency "webmock", "~> 2.3.1" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "rake" -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/example.gemspec deleted file mode 100644 index 00d9cbc8425d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_impossible_ruby/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 15.9.3" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile deleted file mode 100644 index de75a07e91e1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "business", ">= 1", "< 3", require: true diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_git_requirements/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile deleted file mode 100644 index de75a07e91e1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "business", ">= 1", "< 3", require: true diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile deleted file mode 100644 index 65e6a4ac20e5..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "business", [">= 1", "<3"], require: true diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_array/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/example.gemspec deleted file mode 100644 index 6b7414313e35..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_multiple_requirements_parenthesis/example.gemspec +++ /dev/null @@ -1 +0,0 @@ -spec.add_dependency("business", ">= 1", "< 3") diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/example.gemspec deleted file mode 100644 index 3288570e1cfb..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_no_required_ruby/example.gemspec +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/example.gemspec deleted file mode 100644 index a1543e7694d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_old_required_ruby/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 1.9.3" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/example.gemspec deleted file mode 100644 index 07f1eb623794..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3/example.gemspec +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 3.0.1" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/example.gemspec deleted file mode 100644 index 76e2d25bc8df..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_1/example.gemspec +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 3.1.1" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/example.gemspec deleted file mode 100644 index 19b5053b1d49..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_2/example.gemspec +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 3.2.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/example.gemspec deleted file mode 100644 index 76e0ab9ba747..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_require_ruby_3_3/example.gemspec +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 3.3.3" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_small_example/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/example.gemspec deleted file mode 100644 index 56f7e3e95012..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_unevaluatable_ruby/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = Some::Constant - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/example.gemspec deleted file mode 100644 index 186c9ecee3ec..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_with_nested_block/example.gemspec +++ /dev/null @@ -1,7 +0,0 @@ -# -*- encoding: utf-8 -*- - -Gem::Specification.new do |s| - s.files = `git ls-files`.split($/) - dev_files = %w(.gitignore bin/setup.sh bin/test.sh) - dev_files.each {|f| s.files.delete f } -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/example.gemspec deleted file mode 100644 index da77199c39d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemfile_with_require/example.gemspec +++ /dev/null @@ -1,44 +0,0 @@ -# frozen_string_literal: true - -lib = File.expand_path('../lib', __FILE__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require 'example/version' - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = Example::VERSION - spec.summary = "Automated dependency management #{Example::VERSION}" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - Find.find("lib", "helpers") do |path| - if ignores.any? { |i| File.fnmatch(i, "/" + path, File::FNM_DOTMATCH) } - Find.prune - else - spec.files << path unless File.directory?(path) - end - end - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", "~> 0.55" - spec.add_dependency "gemnasium-parser", "~> 0.1" - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "octokit", "~> 4.6" - spec.add_dependency "gitlab", "~> 4.1" - - spec.add_development_dependency "webmock", "~> 2.3.1" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "rake" -end diff --git a/bundler/spec/fixtures/projects/bundler1/gems_rb/gems.locked b/bundler/spec/fixtures/projects/bundler1/gems_rb/gems.locked deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gems_rb/gems.locked +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gems_rb/gems.rb b/bundler/spec/fixtures/projects/bundler1/gems_rb/gems.rb deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gems_rb/gems.rb +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/another.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/another.gemspec deleted file mode 100644 index 997bd60a94c6..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/another.gemspec +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' - spec.add_dependency 'statesman', '= 1.0.0' - spec.add_development_dependency 'rake' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/example.gemspec deleted file mode 100644 index bec8987c9774..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_loads_another/example.gemspec +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - another_gemspec = Bundler.load_gemspec_uncached("another.gemspec") - - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", "~> 0.55" - spec.add_development_dependency "webmock", "~> 2.3.1" - - another_gemspec.development_dependencies.each do |dep| - spec.add_development_dependency dep.name, *dep.requirement.as_list - end -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile deleted file mode 100644 index de75a07e91e1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "business", ">= 1", "< 3", require: true diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/example.gemspec deleted file mode 100644 index 48ad347d63af..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements/example.gemspec +++ /dev/null @@ -1 +0,0 @@ -spec.add_dependency "business", ">= 1", "< 3" diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/example.gemspec deleted file mode 100644 index 360854054f26..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_multiple_requirements_array/example.gemspec +++ /dev/null @@ -1 +0,0 @@ -spec.add_dependency "business", [">= 1", "<3"] diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/example.gemspec deleted file mode 100644 index bcc3ef45101c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_no_gemfile/example.gemspec +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", ["~> 0.55"] - spec.add_dependency("gemnasium-parser", "~> 0.1") - spec.add_dependency 'gems', '~> 1.0' - spec.add_dependency "octokit", "~> 4.6" - spec.add_dependency "gitlab", "~> 4.1" - - spec.add_development_dependency "webmock", "~> 2.3.1" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "rake" -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_no_lockfile/example.gemspec deleted file mode 100644 index bcc3ef45101c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_no_lockfile/example.gemspec +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", ["~> 0.55"] - spec.add_dependency("gemnasium-parser", "~> 0.1") - spec.add_dependency 'gems', '~> 1.0' - spec.add_dependency "octokit", "~> 4.6" - spec.add_dependency "gitlab", "~> 4.1" - - spec.add_development_dependency "webmock", "~> 2.3.1" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "rake" -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/example.gemspec deleted file mode 100644 index da77199c39d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported/example.gemspec +++ /dev/null @@ -1,44 +0,0 @@ -# frozen_string_literal: true - -lib = File.expand_path('../lib', __FILE__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require 'example/version' - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = Example::VERSION - spec.summary = "Automated dependency management #{Example::VERSION}" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - Find.find("lib", "helpers") do |path| - if ignores.any? { |i| File.fnmatch(i, "/" + path, File::FNM_DOTMATCH) } - Find.prune - else - spec.files << path unless File.directory?(path) - end - end - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", "~> 0.55" - spec.add_dependency "gemnasium-parser", "~> 0.1" - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "octokit", "~> 4.6" - spec.add_dependency "gitlab", "~> 4.1" - - spec.add_development_dependency "webmock", "~> 2.3.1" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "rake" -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_not_imported_no_lockfile/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/example.gemspec deleted file mode 100644 index 90e236e18cba..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.2, < 4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/example.gemspec deleted file mode 100644 index 57312f3847ec..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_range_array/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = [">= 2.2", "< 4.0"] - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/Gemfile b/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/Gemfile deleted file mode 100644 index be0f45dc3acd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/example.gemspec deleted file mode 100644 index a07f63f03458..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_required_ruby_version_requirement_class/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = Gem::Requirement.new(">= 2.1.8", "< 4.0.0") - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_small_example_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_small_example_no_lockfile/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_small_example_no_lockfile/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/gemspec_with_require_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/gemspec_with_require_no_lockfile/example.gemspec deleted file mode 100644 index 705e935a3ac7..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gemspec_with_require_no_lockfile/example.gemspec +++ /dev/null @@ -1,46 +0,0 @@ -# frozen_string_literal: true - -require "find" - -lib = File.expand_path("lib", __dir__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require "example/version" - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = Example::VERSION - spec.summary = "Automated dependency management #{Example::VERSION}" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - Find.find("lib", "helpers") do |path| - if ignores.any? { |i| File.fnmatch(i, "/" + path, File::FNM_DOTMATCH) } - Find.prune - else - spec.files << path unless File.directory?(path) - end - end - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", "~> 0.55" - spec.add_dependency "gemnasium-parser", "~> 0.1" - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "gitlab", "~> 4.1" - spec.add_dependency "octokit", "~> 4.6" - - spec.add_development_dependency "rake" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "webmock", "~> 2.3.1" -end diff --git a/bundler/spec/fixtures/projects/bundler1/git_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source/Gemfile deleted file mode 100644 index 4bfadcc3318f..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source/Gemfile +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.6.0", - git: "git@github.com:dependabot-fixtures/business", - ref: "a1b78a9" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" -gem "que", git: "git@github.com:dependabot-fixtures/que", tag: "v0.11.6" -gem "statesman", "~> 1.2.0" -gem "uk_phone_numbers", git: "https://github.com/dependabot-fixtures/uk_phone_numbers" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source/Gemfile.lock deleted file mode 100644 index 571fd40d0488..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source/Gemfile.lock +++ /dev/null @@ -1,43 +0,0 @@ -GIT - remote: git@github.com:dependabot-fixtures/business - revision: a1b78a929dac93a52f08db4f2847d76d6cfe39bd - ref: a1b78a9 - specs: - business (1.6.0) - -GIT - remote: git@github.com:dependabot-fixtures/que - revision: 997d1a6ee76a1f254fd72ce16acbc8d347fcaee3 - tag: v0.11.6 - specs: - que (0.11.6) - -GIT - remote: https://github.com/dependabot-fixtures/uk_phone_numbers - revision: 1530024bd6a68d36ac18e04836ce110e0d433c36 - specs: - uk_phone_numbers (0.1.1) - -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.6.0)! - prius! - que! - statesman (~> 1.2.0) - uk_phone_numbers! - -BUNDLED WITH - 1.16.0.pre.2 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile deleted file mode 100644 index 0aa8c132febb..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "rubygems-circular-dependency", git: "https://github.com/dependabot-fixtures/rubygems-circular-dependency" -gem "business" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile.lock deleted file mode 100644 index 1e55627e3a42..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_circular/Gemfile.lock +++ /dev/null @@ -1,20 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/rubygems-circular-dependency - revision: 3c85f0bd8d6977b4dfda6a12acf93a282c4f5bf1 - specs: - rubygems-circular-dependency (0.0.1) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - -PLATFORMS - ruby - -DEPENDENCIES - business - rubygems-circular-dependency! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile deleted file mode 100644 index 4bfadcc3318f..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.6.0", - git: "git@github.com:dependabot-fixtures/business", - ref: "a1b78a9" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" -gem "que", git: "git@github.com:dependabot-fixtures/que", tag: "v0.11.6" -gem "statesman", "~> 1.2.0" -gem "uk_phone_numbers", git: "https://github.com/dependabot-fixtures/uk_phone_numbers" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile deleted file mode 100644 index 754a6acd9f89..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "parallel", git: "git@github.com:dependabot-fixtures/parallel", ref: "v1.12.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile.lock deleted file mode 100644 index 9867e9c869c3..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_internal/Gemfile.lock +++ /dev/null @@ -1,21 +0,0 @@ -GIT - remote: git@github.com:dependabot-fixtures/parallel - revision: 5fa4406bcf0b3109f645550ca799fc7570501870 - ref: v1.12.0 - specs: - parallel (1.12.0) - -GEM - remote: https://rubygems.org/ - specs: - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - parallel! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile deleted file mode 100644 index 874b8d1c7d2c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", "~> 1.6.0" -gem "statesman", "~> 1.2.0" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" -gem "que", git: "git@github.com:dependabot-fixtures/que", tag: "v0.11.6" -gem "uk_phone_numbers", git: "https://github.com/dependabot-fixtures/uk_phone_numbers" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile.lock deleted file mode 100644 index 571fd40d0488..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_mismatched/Gemfile.lock +++ /dev/null @@ -1,43 +0,0 @@ -GIT - remote: git@github.com:dependabot-fixtures/business - revision: a1b78a929dac93a52f08db4f2847d76d6cfe39bd - ref: a1b78a9 - specs: - business (1.6.0) - -GIT - remote: git@github.com:dependabot-fixtures/que - revision: 997d1a6ee76a1f254fd72ce16acbc8d347fcaee3 - tag: v0.11.6 - specs: - que (0.11.6) - -GIT - remote: https://github.com/dependabot-fixtures/uk_phone_numbers - revision: 1530024bd6a68d36ac18e04836ce110e0d433c36 - specs: - uk_phone_numbers (0.1.1) - -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.6.0)! - prius! - que! - statesman (~> 1.2.0) - uk_phone_numbers! - -BUNDLED WITH - 1.16.0.pre.2 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile deleted file mode 100644 index 54834ed2d503..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", "~> 1.6.0", git: "git@github.com:dependabot-fixtures/business" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile.lock deleted file mode 100644 index 948f0399faa1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_no_ref/Gemfile.lock +++ /dev/null @@ -1,18 +0,0 @@ -GIT - remote: git@github.com:dependabot-fixtures/business - revision: a1b78a929dac93a52f08db4f2847d76d6cfe39bd - specs: - business (1.6.0) - -GEM - remote: https://rubygems.org/ - specs: - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.6.0)! - -BUNDLED WITH - 1.16.0.pre.2 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile deleted file mode 100644 index 270582c73c90..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", "~> 1.6.0", - git: "git@github.com:dependabot-fixtures/business", - ref: "a1b78a9" -gem "statesman", "~> 1.2.0" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" -gem "que", git: "git@github.com:dependabot-fixtures/que", tag: "v0.11.6" -gem "uk_phone_numbers", git: "https://github.com/dependabot-fixtures/uk_phone_numbers" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile.lock deleted file mode 100644 index ba0bb68051f1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_outdated/Gemfile.lock +++ /dev/null @@ -1,43 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/uk_phone_numbers - revision: 1530024bd6a68d36ac18e04836ce110e0d433c36 - specs: - uk_phone_numbers (0.1.1) - -GIT - remote: git@github.com:dependabot-fixtures/business - revision: a1b78a929dac93a52f08db4f2847d76d6cfe39bd - ref: a1b78a9 - specs: - business (1.6.0) - -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -GIT - remote: git@github.com:dependabot-fixtures/que - revision: 997d1a6ee76a1f254fd72ce16acbc8d347fcaee3 - tag: v0.11.6 - specs: - que (0.11.6) - -GEM - remote: https://rubygems.org/ - specs: - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.6.0)! - prius! - que! - statesman (~> 1.2.0) - uk_phone_numbers! - -BUNDLED WITH - 1.16.0.pre.2 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile deleted file mode 100644 index 270582c73c90..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", "~> 1.6.0", - git: "git@github.com:dependabot-fixtures/business", - ref: "a1b78a9" -gem "statesman", "~> 1.2.0" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" -gem "que", git: "git@github.com:dependabot-fixtures/que", tag: "v0.11.6" -gem "uk_phone_numbers", git: "https://github.com/dependabot-fixtures/uk_phone_numbers" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile.lock deleted file mode 100644 index ba0bb68051f1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_reordered/Gemfile.lock +++ /dev/null @@ -1,43 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/uk_phone_numbers - revision: 1530024bd6a68d36ac18e04836ce110e0d433c36 - specs: - uk_phone_numbers (0.1.1) - -GIT - remote: git@github.com:dependabot-fixtures/business - revision: a1b78a929dac93a52f08db4f2847d76d6cfe39bd - ref: a1b78a9 - specs: - business (1.6.0) - -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -GIT - remote: git@github.com:dependabot-fixtures/que - revision: 997d1a6ee76a1f254fd72ce16acbc8d347fcaee3 - tag: v0.11.6 - specs: - que (0.11.6) - -GEM - remote: https://rubygems.org/ - specs: - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.6.0)! - prius! - que! - statesman (~> 1.2.0) - uk_phone_numbers! - -BUNDLED WITH - 1.16.0.pre.2 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile deleted file mode 100644 index f9dab1ae5b0a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source "https://rubygems.org" - -git "https://github.com/dependabot-fixtures/kaminari" do - gem "kaminari-core" -end - -gem 'kaminari-actionview' diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile.lock deleted file mode 100644 index c3c912e8f937..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_undeclared/Gemfile.lock +++ /dev/null @@ -1,54 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/kaminari - revision: 62ec743dcee69e02186e5f1a309b08e59d83f647 - specs: - kaminari-actionview (1.1.1) - actionview - kaminari-core (= 1.1.1) - kaminari-core (1.1.1) - -GEM - remote: https://rubygems.org/ - specs: - actionview (5.1.6) - activesupport (= 5.1.6) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activesupport (5.1.6) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - builder (3.2.3) - concurrent-ruby (1.0.5) - crass (1.0.3) - erubi (1.7.1) - i18n (1.0.0) - concurrent-ruby (~> 1.0) - loofah (2.2.2) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mini_portile2 (2.3.0) - minitest (5.11.3) - nokogiri (1.8.2) - mini_portile2 (~> 2.3.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.0.4) - loofah (~> 2.2, >= 2.2.2) - thread_safe (0.3.6) - tzinfo (1.2.5) - thread_safe (~> 0.1) - -PLATFORMS - ruby - -DEPENDENCIES - kaminari-actionview - kaminari-core! - -BUNDLED WITH - 1.16.1 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile deleted file mode 100644 index fcae7c722cf0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -def git_gem(name, **options) - gem name, git: "git@github.com:dependabot-fixtures/business" -end - -git_gem 'business' - -gemspec diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile.lock deleted file mode 100644 index b5a8cfa05c35..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/Gemfile.lock +++ /dev/null @@ -1,25 +0,0 @@ -GIT - remote: git@github.com:dependabot-fixtures/business - revision: 1378a2b0b446d991b7567efbc7eeeed2720e4d8f - specs: - business (1.16.0) - -PATH - remote: . - specs: - example (0.9.3) - business (~> 1.0) - -GEM - remote: https://rubygems.org/ - specs: - -PLATFORMS - ruby - -DEPENDENCIES - business! - example! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/example.gemspec b/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_unparseable/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile deleted file mode 100644 index fbdc6ef59cf1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "dummy-git-dependency", - git: "git@github.com:dependabot-fixtures/ruby-dummy-git-dependency", - ref: "v1.0.0" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile.lock deleted file mode 100644 index 80f8bc6ad1fe..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_unreleased/Gemfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -GIT - remote: git@github.com:dependabot-fixtures/ruby-dummy-git-dependency - revision: 20151f9b67c8a04461fa0ee28385b6187b86587b - ref: v1.0.0 - specs: - dummy-git-dependency (1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - -PLATFORMS - ruby - -DEPENDENCIES - dummy-git-dependency! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile deleted file mode 100644 index 899ac4d6a521..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "rest-client", "~> 1.8" -gem "onfido", git: "https://github.com/dependabot-fixtures/onfido" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile.lock deleted file mode 100644 index af51d8778781..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_conflict/Gemfile.lock +++ /dev/null @@ -1,34 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/onfido - revision: 7b36eac82a7e42049052a58af0a7943fe0363714 - ref: v0.4.0 - specs: - onfido (0.4.0) - rest-client (~> 1.8.0) - -GEM - remote: https://rubygems.org/ - specs: - domain_name (0.5.20170404) - unf (>= 0.0.5, < 1.0.0) - http-cookie (1.0.3) - domain_name (~> 0.5) - mime-types (2.99.3) - netrc (0.11.0) - rest-client (1.8.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 3.0) - netrc (~> 0.7) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.4) - -PLATFORMS - ruby - -DEPENDENCIES - onfido! - rest-client (~> 1.8) - -BUNDLED WITH - 1.16.0.pre.3 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile deleted file mode 100644 index 9ff8d43fd464..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "elasticsearch-dsl", - github: "dependabot-fixtures/elasticsearch-ruby", - branch: "5.x", - require: "elasticsearch/dsl" -gem "elasticsearch-model", github: "dependabot-fixtures/elasticsearch-rails", branch: "5.x" -gem "elasticsearch-rails", github: "dependabot-fixtures/elasticsearch-rails", branch: "5.x" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile.lock deleted file mode 100644 index bb068bb47756..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_multiple_deps/Gemfile.lock +++ /dev/null @@ -1,57 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/elasticsearch-rails.git - revision: 212b37a1e927015f2a095e0f841c897d377ad1c7 - branch: 5.x - specs: - elasticsearch-model (5.1.0) - activesupport (> 3) - elasticsearch (~> 5) - hashie - elasticsearch-rails (5.1.0) - -GIT - remote: https://github.com/dependabot-fixtures/elasticsearch-ruby.git - revision: 43f48b229a975b77c5339644d512c88389fefafa - branch: 5.x - specs: - elasticsearch (5.0.4) - elasticsearch-api (= 5.0.4) - elasticsearch-transport (= 5.0.4) - elasticsearch-api (5.0.4) - multi_json - elasticsearch-dsl (0.1.4) - elasticsearch-transport (5.0.4) - faraday - multi_json - -GEM - remote: https://rubygems.org/ - specs: - activesupport (5.2.0) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - concurrent-ruby (1.0.5) - faraday (0.15.2) - multipart-post (>= 1.2, < 3) - hashie (3.5.7) - i18n (1.0.1) - concurrent-ruby (~> 1.0) - minitest (5.11.3) - multi_json (1.13.1) - multipart-post (2.0.0) - thread_safe (0.3.6) - tzinfo (1.2.5) - thread_safe (~> 0.1) - -PLATFORMS - ruby - -DEPENDENCIES - elasticsearch-dsl! - elasticsearch-model! - elasticsearch-rails! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile deleted file mode 100644 index 64283612f00a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "rest-client", "~> 1.8" -gem "onfido", git: "https://github.com/dependabot-fixtures/onfido", ref: "v0.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile.lock deleted file mode 100644 index af51d8778781..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_tag_conflict/Gemfile.lock +++ /dev/null @@ -1,34 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/onfido - revision: 7b36eac82a7e42049052a58af0a7943fe0363714 - ref: v0.4.0 - specs: - onfido (0.4.0) - rest-client (~> 1.8.0) - -GEM - remote: https://rubygems.org/ - specs: - domain_name (0.5.20170404) - unf (>= 0.0.5, < 1.0.0) - http-cookie (1.0.3) - domain_name (~> 0.5) - mime-types (2.99.3) - netrc (0.11.0) - rest-client (1.8.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 3.0) - netrc (~> 0.7) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.4) - -PLATFORMS - ruby - -DEPENDENCIES - onfido! - rest-client (~> 1.8) - -BUNDLED WITH - 1.16.0.pre.3 diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile deleted file mode 100644 index 7c42cfb2bd36..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "dependabot-test-ruby-package", "~> 1.0.0", git: "https://github.com/dependabot-fixtures/dependabot-test-ruby-package" diff --git a/bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_source_with_version_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile deleted file mode 100644 index c876180cc408..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -gem "prius", "1.0.0", require: false, -git: "git_url" diff --git a/bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/git_tags_on_newline_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/github_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/github_source/Gemfile deleted file mode 100644 index d296c477b65a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/github_source/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", github: "dependabot-fixtures/business" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/github_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/github_source/Gemfile.lock deleted file mode 100644 index 4fff9268c734..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/github_source/Gemfile.lock +++ /dev/null @@ -1,20 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/business.git - revision: d31e445215b5af70c1604715d97dd953e868380e - specs: - business (1.10.0) - -GEM - remote: https://rubygems.org/ - specs: - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.16.0.pre.3 diff --git a/bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile b/bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile deleted file mode 100644 index f44683ee945a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", ">= 1.4.0" -gem "statesman", ">= 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile.lock deleted file mode 100644 index 8c9d0f36a150..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/gte_matcher/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (>= 1.4.0) - statesman (>= 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile b/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile deleted file mode 100644 index 686cbd2c37d8..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "guard-bundler", "~> 2.2.1" diff --git a/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile.lock deleted file mode 100644 index 694632ca4299..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/guard_bundler/Gemfile.lock +++ /dev/null @@ -1,46 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - coderay (1.1.3) - ffi (1.14.2) - formatador (0.2.5) - guard (2.16.2) - formatador (>= 0.2.4) - listen (>= 2.7, < 4.0) - lumberjack (>= 1.0.12, < 2.0) - nenv (~> 0.1) - notiffany (~> 0.0) - pry (>= 0.9.12) - shellany (~> 0.0) - thor (>= 0.18.1) - guard-bundler (2.2.1) - bundler (>= 1.3.0, < 3) - guard (~> 2.2) - guard-compat (~> 1.1) - guard-compat (1.2.1) - listen (3.4.1) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - lumberjack (1.2.8) - method_source (1.0.0) - nenv (0.3.0) - notiffany (0.1.3) - nenv (~> 0.1) - shellany (~> 0.0) - pry (0.14.0) - coderay (~> 1.1) - method_source (~> 1.0) - rb-fsevent (0.10.4) - rb-inotify (0.10.1) - ffi (~> 1.0) - shellany (0.0.1) - thor (1.1.0) - -PLATFORMS - ruby - -DEPENDENCIES - guard-bundler (= 2.2.1) - -BUNDLED WITH - 1.7.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile.lock deleted file mode 100644 index f58baefbb9f4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec/Gemfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PATH - remote: . - specs: - example (0.9.3) - business (~> 1.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile deleted file mode 100644 index c735e46b5d7b..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec path: 'subdir' - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile.lock deleted file mode 100644 index 17163f014218..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/Gemfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PATH - remote: subdir - specs: - example (0.9.3) - business (~> 1.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/subdir/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/subdir/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_nested_path/nested/subdir/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile deleted file mode 100644 index c735e46b5d7b..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec path: 'subdir' - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile.lock deleted file mode 100644 index 17163f014218..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/Gemfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PATH - remote: subdir - specs: - example (0.9.3) - business (~> 1.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/subdir/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/subdir/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_from_path/subdir/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/Gemfile deleted file mode 100644 index b433ef5f4810..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0", git: "https://github.com/dependabot-fixtures/business" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_git_override_no_lockfile/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile.lock deleted file mode 100644 index 40c784e5ae69..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/Gemfile.lock +++ /dev/null @@ -1,96 +0,0 @@ -PATH - remote: . - specs: - example (0.9.3) - bundler (>= 1.12.0) - excon (~> 0.55) - gemnasium-parser (~> 0.1) - gems (~> 1.0) - gitlab (~> 4.1) - octokit (~> 4.6) - -GEM - remote: https://rubygems.org/ - specs: - addressable (2.5.1) - public_suffix (~> 2.0, >= 2.0.2) - ast (2.3.0) - business (1.4.0) - crack (0.4.3) - safe_yaml (~> 1.0.0) - diff-lcs (1.3) - excon (0.58.0) - faraday (0.12.2) - multipart-post (>= 1.2, < 3) - gemnasium-parser (0.1.9) - gems (1.0.0) - json - gitlab (4.2.0) - httparty - terminal-table - hashdiff (0.3.5) - httparty (0.15.6) - multi_xml (>= 0.5.2) - json (2.1.0) - multi_xml (0.6.0) - multipart-post (2.0.0) - octokit (4.7.0) - sawyer (~> 0.8.0, >= 0.5.3) - parser (2.4.0.0) - ast (~> 2.2) - powerpack (0.1.1) - public_suffix (2.0.5) - rainbow (2.2.2) - rake - rake (12.0.0) - rspec (3.5.0) - rspec-core (~> 3.5.0) - rspec-expectations (~> 3.5.0) - rspec-mocks (~> 3.5.0) - rspec-core (3.5.4) - rspec-support (~> 3.5.0) - rspec-expectations (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-its (1.2.0) - rspec-core (>= 3.0.0) - rspec-expectations (>= 3.0.0) - rspec-mocks (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-support (3.5.0) - rubocop (0.48.1) - parser (>= 2.3.3.1, < 3.0) - powerpack (~> 0.1) - rainbow (>= 1.99.1, < 3.0) - ruby-progressbar (~> 1.7) - unicode-display_width (~> 1.0, >= 1.0.1) - ruby-progressbar (1.8.1) - safe_yaml (1.0.4) - sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) - statesman (1.2.5) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - unicode-display_width (1.3.0) - webmock (2.3.2) - addressable (>= 2.3.6) - crack (>= 0.3.2) - hashdiff - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example! - rake - rspec (~> 3.5.0) - rspec-its (~> 1.2.0) - rubocop (~> 0.48.0) - statesman (~> 1.2.0) - webmock (~> 2.3.1) - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/example.gemspec deleted file mode 100644 index bcc3ef45101c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_imports_gemspec_large/example.gemspec +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", ["~> 0.55"] - spec.add_dependency("gemnasium-parser", "~> 0.1") - spec.add_dependency 'gems', '~> 1.0' - spec.add_dependency "octokit", "~> 4.6" - spec.add_dependency "gitlab", "~> 4.1" - - spec.add_development_dependency "webmock", "~> 2.3.1" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "rake" -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/Gemfile deleted file mode 100644 index ea5e86dc4684..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" do - gem "business", "~> 1.4.0" - gem "statesman", "~> 1.2.0" -end - -gemspec diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_default_source_no_lockfile/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/Gemfile deleted file mode 100644 index 49322c661789..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/example.gemspec deleted file mode 100644 index a39e98a0f463..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_lockfile/example.gemspec +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", ["~> 0.55"] - spec.add_dependency("gemnasium-parser", "~> 0.1") - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "gitlab", "~> 4.1" - spec.add_dependency "octokit", "~> 4.6" - - spec.add_development_dependency "rake" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "webmock", "~> 2.3.1" -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile.lock deleted file mode 100644 index f58baefbb9f4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/Gemfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PATH - remote: . - specs: - example (0.9.3) - business (~> 1.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/example.gemspec deleted file mode 100644 index 330c138fd5ce..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_no_overlap/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'json', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/example.gemspec deleted file mode 100644 index a1543e7694d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_old_required_ruby_no_lockfile/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 1.9.3" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_small_example_no_lockfile/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile.lock deleted file mode 100644 index f58baefbb9f4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/Gemfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PATH - remote: . - specs: - example (0.9.3) - business (~> 1.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/example.gemspec deleted file mode 100644 index c605f05bca65..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_unevaluatable/example.gemspec +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "1.0.0" - spec.summary = bad_code # <----- The bad code is here - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", "~> 0.55" - spec.add_dependency "gemnasium-parser", "~> 0.1" - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "gitlab", "~> 4.1" - spec.add_dependency "octokit", "~> 4.6" - - spec.add_development_dependency "rake" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "webmock", "~> 2.3.1" -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/version_as_float.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/version_as_float.gemspec deleted file mode 100644 index 5a3c734e27a9..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_as_float/version_as_float.gemspec +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "version_as_float" - spec.version = 1.0 - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/Gemfile deleted file mode 100644 index dfe874a7f8d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 3.0.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/example.gemspec deleted file mode 100644 index a1543e7694d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_version_clash_old_required_ruby_no_lockfile/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 1.9.3" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile deleted file mode 100644 index e1d94d6b9020..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile.lock deleted file mode 100644 index 40c784e5ae69..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/Gemfile.lock +++ /dev/null @@ -1,96 +0,0 @@ -PATH - remote: . - specs: - example (0.9.3) - bundler (>= 1.12.0) - excon (~> 0.55) - gemnasium-parser (~> 0.1) - gems (~> 1.0) - gitlab (~> 4.1) - octokit (~> 4.6) - -GEM - remote: https://rubygems.org/ - specs: - addressable (2.5.1) - public_suffix (~> 2.0, >= 2.0.2) - ast (2.3.0) - business (1.4.0) - crack (0.4.3) - safe_yaml (~> 1.0.0) - diff-lcs (1.3) - excon (0.58.0) - faraday (0.12.2) - multipart-post (>= 1.2, < 3) - gemnasium-parser (0.1.9) - gems (1.0.0) - json - gitlab (4.2.0) - httparty - terminal-table - hashdiff (0.3.5) - httparty (0.15.6) - multi_xml (>= 0.5.2) - json (2.1.0) - multi_xml (0.6.0) - multipart-post (2.0.0) - octokit (4.7.0) - sawyer (~> 0.8.0, >= 0.5.3) - parser (2.4.0.0) - ast (~> 2.2) - powerpack (0.1.1) - public_suffix (2.0.5) - rainbow (2.2.2) - rake - rake (12.0.0) - rspec (3.5.0) - rspec-core (~> 3.5.0) - rspec-expectations (~> 3.5.0) - rspec-mocks (~> 3.5.0) - rspec-core (3.5.4) - rspec-support (~> 3.5.0) - rspec-expectations (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-its (1.2.0) - rspec-core (>= 3.0.0) - rspec-expectations (>= 3.0.0) - rspec-mocks (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-support (3.5.0) - rubocop (0.48.1) - parser (>= 2.3.3.1, < 3.0) - powerpack (~> 0.1) - rainbow (>= 1.99.1, < 3.0) - ruby-progressbar (~> 1.7) - unicode-display_width (~> 1.0, >= 1.0.1) - ruby-progressbar (1.8.1) - safe_yaml (1.0.4) - sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) - statesman (1.2.5) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - unicode-display_width (1.3.0) - webmock (2.3.2) - addressable (>= 2.3.6) - crack (>= 0.3.2) - hashdiff - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example! - rake - rspec (~> 3.5.0) - rspec-its (~> 1.2.0) - rubocop (~> 0.48.0) - statesman (~> 1.2.0) - webmock (~> 2.3.1) - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/example.gemspec deleted file mode 100644 index 705e935a3ac7..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_gemspec_with_require/example.gemspec +++ /dev/null @@ -1,46 +0,0 @@ -# frozen_string_literal: true - -require "find" - -lib = File.expand_path("lib", __dir__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require "example/version" - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = Example::VERSION - spec.summary = "Automated dependency management #{Example::VERSION}" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - Find.find("lib", "helpers") do |path| - if ignores.any? { |i| File.fnmatch(i, "/" + path, File::FNM_DOTMATCH) } - Find.prune - else - spec.files << path unless File.directory?(path) - end - end - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", "~> 0.55" - spec.add_dependency "gemnasium-parser", "~> 0.1" - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "gitlab", "~> 4.1" - spec.add_dependency "octokit", "~> 4.6" - - spec.add_development_dependency "rake" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "webmock", "~> 2.3.1" -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile b/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile deleted file mode 100644 index 163bfebc906f..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gemspec name: 'example' -gemspec name: 'example2' diff --git a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile.lock deleted file mode 100644 index 759f3628c564..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/Gemfile.lock +++ /dev/null @@ -1,23 +0,0 @@ -PATH - remote: . - specs: - example (0.9.3) - business (~> 1.0) - example2 (0.9.3) - statesman (~> 1.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.13.0) - statesman (1.3.1) - -PLATFORMS - ruby - -DEPENDENCIES - example! - example2! - -BUNDLED WITH - 1.16.1 diff --git a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example.gemspec deleted file mode 100644 index f1d7674d9f9e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'business', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example2.gemspec b/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example2.gemspec deleted file mode 100644 index a768fc190638..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/imports_two_gemspecs/example2.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example2" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'statesman', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile b/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile deleted file mode 100644 index ff8bd34cc60a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -require_relative "../some_other_file" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/nested/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/some_other_file.rb b/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/some_other_file.rb deleted file mode 100644 index 28f4f6180fca..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_gemfile/some_other_file.rb +++ /dev/null @@ -1 +0,0 @@ -SOME_CONSTANT = 5 diff --git a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile b/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile deleted file mode 100644 index cb5e001ec6f8..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -require_relative "./nested/some_other_file" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/nested/some_other_file.rb b/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/nested/some_other_file.rb deleted file mode 100644 index 28f4f6180fca..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_require_relative_nested/nested/some_other_file.rb +++ /dev/null @@ -1 +0,0 @@ -SOME_CONSTANT = 5 diff --git a/bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile deleted file mode 100644 index 588eb8a91721..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source 'https://rubygems.org' - -%w[cli dependency].each do |path| - require File.expand_path("../lib/backup/#{path}", __FILE__) -end diff --git a/bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/includes_requires_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/interpolated_version_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/interpolated_version_no_lockfile/Gemfile deleted file mode 100644 index b95313d3203f..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/interpolated_version_no_lockfile/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source "https://rubygems.org" - -version = ENV['BUSINESS_VERSION'] || '1.0.0' - -gem "business", "~> #{version}" diff --git a/bundler/spec/fixtures/projects/bundler1/invalid_ruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/invalid_ruby/Gemfile deleted file mode 100644 index 759c9ed2e5f0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/invalid_ruby/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source 'https://rubygems.org' do - ruby -rubygems -e 'require "jekyll-import"; - end diff --git a/bundler/spec/fixtures/projects/bundler1/jfrog_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/jfrog_source/Gemfile deleted file mode 100644 index ad50e194e104..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/jfrog_source/Gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" - -source "https://test.jfrog.io/test/api/gems" do - gem "statesman", "~> 1.2.0" -end diff --git a/bundler/spec/fixtures/projects/bundler1/jruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/jruby/Gemfile deleted file mode 100644 index a832448206ad..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/jruby/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true -source 'https://rubygems.org' - -gem "json" diff --git a/bundler/spec/fixtures/projects/bundler1/jruby/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/jruby/Gemfile.lock deleted file mode 100644 index 9094522a791f..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/jruby/Gemfile.lock +++ /dev/null @@ -1,13 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - json (1.4.3-java) - -PLATFORMS - java - -DEPENDENCIES - json - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile b/bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile deleted file mode 100644 index 4a72378eab4c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -ruby "1.9.3" -source "https://rubygems.org" - -gem "public_suffix" diff --git a/bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile.lock deleted file mode 100644 index 7a7b949342fe..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/legacy_ruby/Gemfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - public_suffix (1.4.0) - -PLATFORMS - ruby - -DEPENDENCIES - public_suffix - -RUBY VERSION - ruby 1.9.3p551 - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile b/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile deleted file mode 100644 index ee3fb9255677..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "dependabot-common", path: "common" diff --git a/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile.lock deleted file mode 100644 index 9dcee84d6976..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/Gemfile.lock +++ /dev/null @@ -1,37 +0,0 @@ -PATH - remote: common - specs: - dependabot-common (0.218.0) - docker_registry2 (~> 1.14.0) - -GEM - remote: https://rubygems.org/ - specs: - docker_registry2 (1.14.0) - rest-client (>= 1.8.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - http-accept (1.7.0) - http-cookie (1.0.5) - domain_name (~> 0.5) - mime-types (3.4.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) - netrc (0.11.0) - rest-client (2.1.0) - http-accept (>= 1.7.0, < 2.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - -PLATFORMS - ruby - -DEPENDENCIES - dependabot-common! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/common/dependabot-common.gemspec b/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/common/dependabot-common.gemspec deleted file mode 100644 index 137b55f996ac..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/local_gemspec_needs_updates/common/dependabot-common.gemspec +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "dependabot-common" - spec.summary = "Shared code used across Dependabot Core" - spec.description = "Dependabot-Common provides the shared code used across Dependabot. " \ - "If you want support for multiple package managers, you probably want the meta-gem " \ - "dependabot-omnibus." - - spec.author = "Dependabot" - spec.email = "opensource@github.com" - spec.homepage = "https://github.com/dependabot/dependabot-core" - spec.license = "Nonstandard" # License Zero Prosperity Public License - - spec.version = "0.218.0" - spec.required_ruby_version = ">= 3.1.0" - spec.required_rubygems_version = ">= 3.3.7" - - spec.add_dependency "docker_registry2", "~> 1.14.0" -end diff --git a/bundler/spec/fixtures/projects/bundler1/lockfile_only/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/lockfile_only/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/lockfile_only/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile b/bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile deleted file mode 100644 index af3a7d5a3189..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' -git_source(:github) { |repo| "https://github.com/#{repo}.git" } - -gem 'activeadmin', '4.0.0.beta6' diff --git a/bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile.lock deleted file mode 100644 index 914e7506a2c4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/lockfile_only_and_forced_updates/Gemfile.lock +++ /dev/null @@ -1,147 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actionpack (7.1.3.4) - actionview (= 7.1.3.4) - activesupport (= 7.1.3.4) - nokogiri (>= 1.8.5) - racc - rack (>= 2.2.4) - rack-session (>= 1.0.1) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.2) - rails-html-sanitizer (~> 1.6) - actionview (7.1.3.4) - activesupport (= 7.1.3.4) - builder (~> 3.1) - erubi (~> 1.11) - rails-dom-testing (~> 2.2) - rails-html-sanitizer (~> 1.6) - activeadmin (4.0.0.beta6) - arbre (~> 2.0) - csv - formtastic (>= 3.1) - formtastic_i18n (>= 0.4) - inherited_resources (~> 1.7) - kaminari (>= 1.2.1) - railties (>= 6.1) - ransack (>= 4.0) - activemodel (7.1.3.4) - activesupport (= 7.1.3.4) - activerecord (7.1.3.4) - activemodel (= 7.1.3.4) - activesupport (= 7.1.3.4) - timeout (>= 0.4.0) - activesupport (7.1.3.4) - base64 - bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) - arbre (2.0.0) - activesupport (>= 3.0.0) - ruby2_keywords (>= 0.0.2) - base64 (0.2.0) - bigdecimal (3.1.8) - builder (3.3.0) - concurrent-ruby (1.3.1) - connection_pool (2.4.1) - crass (1.0.6) - csv (3.3.0) - drb (2.2.1) - erubi (1.12.0) - formtastic (5.0.0) - actionpack (>= 6.0.0) - formtastic_i18n (0.7.0) - has_scope (0.8.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - i18n (1.14.5) - concurrent-ruby (~> 1.0) - inherited_resources (1.14.0) - actionpack (>= 6.0) - has_scope (>= 0.6) - railties (>= 6.0) - responders (>= 2) - io-console (0.7.2) - irb (1.13.1) - rdoc (>= 4.0.0) - reline (>= 0.4.2) - kaminari (1.2.2) - activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.2) - kaminari-activerecord (= 1.2.2) - kaminari-core (= 1.2.2) - kaminari-actionview (1.2.2) - actionview - kaminari-core (= 1.2.2) - kaminari-activerecord (1.2.2) - activerecord - kaminari-core (= 1.2.2) - kaminari-core (1.2.2) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - minitest (5.23.1) - mutex_m (0.2.0) - nokogiri (1.16.5-arm64-darwin) - racc (~> 1.4) - psych (5.1.2) - stringio - racc (1.8.0) - rack (3.0.11) - rack-session (2.0.0) - rack (>= 3.0.0) - rack-test (2.1.0) - rack (>= 1.3) - rackup (2.1.0) - rack (>= 3) - webrick (~> 1.8) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) - irb - rackup (>= 1.0.0) - rake (>= 12.2) - thor (~> 1.0, >= 1.2.2) - zeitwerk (~> 2.6) - rake (13.2.1) - ransack (4.1.1) - activerecord (>= 6.1.5) - activesupport (>= 6.1.5) - i18n - rdoc (6.7.0) - psych (>= 4.0.0) - reline (0.5.8) - io-console (~> 0.5) - responders (3.1.1) - actionpack (>= 5.2) - railties (>= 5.2) - ruby2_keywords (0.0.5) - stringio (3.1.0) - thor (1.3.1) - timeout (0.4.1) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - webrick (1.8.1) - zeitwerk (2.6.15) - -PLATFORMS - ruby - -DEPENDENCIES - activeadmin (= 4.0.0.beta6) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile deleted file mode 100644 index 52e3efa5920e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4" -gem "statesman", "~> 1.2" diff --git a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile b/bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile deleted file mode 100644 index 937f204c5712..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -# The Gemfile.lock for this project has `business` at 1.4.1, which has been -# yanked -gem "business", "~> 1.4" -gem "statesman", "~> 1.2" diff --git a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile.lock deleted file mode 100644 index f212c862e68a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/minor_version_specified_yanked_gem/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.1) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile b/bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile deleted file mode 100644 index eb7111e1ad4d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source "https://rubygems.org" - -gem "activesupport", "5.0.0" -gem "actionview", "5.0.0" -gem "actionmailer", "5.0.0" diff --git a/bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile.lock deleted file mode 100644 index 4d9431f430d3..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/multiple_blocking/Gemfile.lock +++ /dev/null @@ -1,70 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actionmailer (5.0.0) - actionpack (= 5.0.0) - actionview (= 5.0.0) - activejob (= 5.0.0) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (5.0.0) - actionview (= 5.0.0) - activesupport (= 5.0.0) - rack (~> 2.0) - rack-test (~> 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.0.0) - activesupport (= 5.0.0) - builder (~> 3.1) - erubis (~> 2.7.0) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - activejob (5.0.0) - activesupport (= 5.0.0) - globalid (>= 0.3.6) - activesupport (5.0.0) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (~> 0.7) - minitest (~> 5.1) - tzinfo (~> 1.1) - builder (3.2.4) - concurrent-ruby (1.1.7) - crass (1.0.6) - erubis (2.7.0) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (0.9.5) - concurrent-ruby (~> 1.0) - loofah (2.7.0) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) - mini_mime (>= 0.1.1) - mini_mime (1.0.2) - mini_portile2 (2.4.0) - minitest (5.14.2) - nokogiri (1.10.10) - mini_portile2 (~> 2.4.0) - rack (2.2.3) - rack-test (0.6.3) - rack (>= 1.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) - loofah (~> 2.3) - thread_safe (0.3.6) - tzinfo (1.2.7) - thread_safe (~> 0.1) - -PLATFORMS - ruby - -DEPENDENCIES - actionmailer (= 5.0.0) - actionview (= 5.0.0) - activesupport (= 5.0.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile b/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile deleted file mode 100644 index 6b9ec13d3f6a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "couchrb", path: "vendor/couchrb" -gem "net-imap", path: "vendor/net-imap" diff --git a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile.lock deleted file mode 100644 index eac945a863e3..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/Gemfile.lock +++ /dev/null @@ -1,25 +0,0 @@ -PATH - remote: vendor/couchrb - specs: - couchrb (0.9.0) - ice_nine - -PATH - remote: vendor/net-imap - specs: - net-imap (0.3.3) - -GEM - remote: https://rubygems.org/ - specs: - ice_nine (0.11.1) - -PLATFORMS - ruby - -DEPENDENCIES - couchrb! - net-imap! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/couchrb/couchrb.gemspec b/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/couchrb/couchrb.gemspec deleted file mode 100644 index 6b09f198c767..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/couchrb/couchrb.gemspec +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "couchrb" - spec.version = "0.9.0" - spec.authors = ["nicholas a. evans"] - spec.email = [""] - - spec.summary = %q{CouchDB client library.} - spec.description = %q{CouchRb provides a ruby-flavored interface to CouchDB. The basic resources try to follow the CouchDB API as closely as possible, but many additional features are available.} - spec.homepage = "https://github.com/410labs/couchrb" - - spec.add_dependency "ice_nine" -end diff --git a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/net-imap/net-imap.gemspec b/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/net-imap/net-imap.gemspec deleted file mode 100644 index f774eb2e0ce8..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/multiple_path_gems/vendor/net-imap/net-imap.gemspec +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -name = File.basename(__FILE__, ".gemspec") -version = "0.3.3" - -Gem::Specification.new do |spec| - spec.name = name - spec.version = version - spec.authors = ["Shugo Maeda", "nicholas a. evans"] - spec.email = ["shugo@ruby-lang.org", "nick@ekenosen.net"] - - spec.summary = %q{Ruby client api for Internet Message Access Protocol} - spec.description = %q{Ruby client api for Internet Message Access Protocol} - spec.homepage = "https://github.com/ruby/net-imap" -end diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile deleted file mode 100644 index 7029d36a5b75..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -eval_gemfile("backend/Gemfile") - -gem "business", "~> 1.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemfile/backend/Gemfile b/bundler/spec/fixtures/projects/bundler1/nested_gemfile/backend/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemfile/backend/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile b/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile deleted file mode 100644 index 3a258a2ac672..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business" -gem "statesman" diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile.lock deleted file mode 100644 index 69318fc3b62d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business - statesman - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/nested/Gemfile b/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/nested/Gemfile deleted file mode 100644 index 3a258a2ac672..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemfile_version_not_specified/nested/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business" -gem "statesman" diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile b/bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemspec/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/nested_gemspec/some/example.gemspec b/bundler/spec/fixtures/projects/bundler1/nested_gemspec/some/example.gemspec deleted file mode 100644 index 2a65bafba927..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_gemspec/some/example.gemspec +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency "business", "~> 1.0" -end diff --git a/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile b/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile deleted file mode 100644 index b2d90817699a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" -gem "example", ">= 0.9.0", path: "plugins/example" -gem "prius", git: "https://github.com/gocardless/prius" diff --git a/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile.lock deleted file mode 100644 index 6803a685e5cc..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/Gemfile.lock +++ /dev/null @@ -1,30 +0,0 @@ -GIT - remote: https://github.com/gocardless/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -PATH - remote: plugins/example - specs: - example (0.9.3) - i18n (>= 0.3.3) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - i18n (0.8.4) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example (>= 0.9.0)! - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/example/example.gemspec b/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/example/example.gemspec deleted file mode 100644 index a39e98a0f463..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/nested_path_source/nested/example/example.gemspec +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", ["~> 0.55"] - spec.add_dependency("gemnasium-parser", "~> 0.1") - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "gitlab", "~> 4.1" - spec.add_dependency "octokit", "~> 4.6" - - spec.add_development_dependency "rake" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "webmock", "~> 2.3.1" -end diff --git a/bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile b/bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile.lock deleted file mode 100644 index 74780ed56cca..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/no_bundled_with/Gemfile.lock +++ /dev/null @@ -1,12 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) diff --git a/bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile b/bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile deleted file mode 100644 index 3c96f18e75f0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -source 'https://rubygems.org' -git_source(:github) { |repo| "https://github.com/#{repo}.git" } - -ruby '3.1.2' - -gem 'rails', '~> 7.0' - -gem 'db-query-matchers' diff --git a/bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile.lock deleted file mode 100644 index 99514b9de095..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/no_downgrades/Gemfile.lock +++ /dev/null @@ -1,174 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actioncable (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.0.8) - actionpack (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activesupport (= 7.0.8) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.8) - actionview (= 7.0.8) - activesupport (= 7.0.8) - rack (~> 2.0, >= 2.2.4) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.8) - actionpack (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - globalid (>= 0.6.0) - nokogiri (>= 1.8.5) - actionview (7.0.8) - activesupport (= 7.0.8) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.8) - activesupport (= 7.0.8) - globalid (>= 0.3.6) - activemodel (7.0.8) - activesupport (= 7.0.8) - activerecord (7.0.8) - activemodel (= 7.0.8) - activesupport (= 7.0.8) - activestorage (7.0.8) - actionpack (= 7.0.8) - activejob (= 7.0.8) - activerecord (= 7.0.8) - activesupport (= 7.0.8) - marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.8) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - builder (3.2.4) - concurrent-ruby (1.2.2) - crass (1.0.6) - date (3.3.3) - db-query-matchers (0.11.0) - activesupport (>= 4.0, < 7.1) - rspec (>= 3.0) - diff-lcs (1.5.0) - erubi (1.12.0) - globalid (1.2.1) - activesupport (>= 6.1) - i18n (1.14.1) - concurrent-ruby (~> 1.0) - loofah (2.21.4) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mail (2.8.1) - mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp - marcel (1.0.2) - method_source (1.0.0) - mini_mime (1.1.5) - mini_portile2 (2.8.5) - minitest (5.20.0) - net-imap (0.4.2) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.1) - timeout - net-smtp (0.4.0) - net-protocol - nio4r (2.5.9) - nokogiri (1.15.4) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - racc (1.7.1) - rack (2.2.8) - rack-test (2.1.0) - rack (>= 1.3) - rails (7.0.8) - actioncable (= 7.0.8) - actionmailbox (= 7.0.8) - actionmailer (= 7.0.8) - actionpack (= 7.0.8) - actiontext (= 7.0.8) - actionview (= 7.0.8) - activejob (= 7.0.8) - activemodel (= 7.0.8) - activerecord (= 7.0.8) - activestorage (= 7.0.8) - activesupport (= 7.0.8) - bundler (>= 1.15.0) - railties (= 7.0.8) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.8) - actionpack (= 7.0.8) - activesupport (= 7.0.8) - method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) - rake (13.0.6) - rspec (3.12.0) - rspec-core (~> 3.12.0) - rspec-expectations (~> 3.12.0) - rspec-mocks (~> 3.12.0) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.5) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-support (3.12.1) - thor (1.2.2) - timeout (0.4.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - websocket-driver (0.7.6) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - zeitwerk (2.6.12) - -PLATFORMS - ruby - -DEPENDENCIES - db-query-matchers - rails (~> 7.0) - -RUBY VERSION - ruby 3.1.2p20 - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/no_lockfile/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/no_lockfile/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile deleted file mode 100644 index f481e70aa4ff..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "prius", "1.0.0", git: "git_url", require: false diff --git a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_end_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile deleted file mode 100644 index 40050f9da15a..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile +++ /dev/null @@ -1 +0,0 @@ -gem "prius", "1.0.0", require: false, git: "git_url" diff --git a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/non_git_tags_at_start_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile deleted file mode 100644 index 0e182d6e47ea..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -gem "prius", "1.0.0", git: "git_url", -require: false diff --git a/bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/non_git_tags_on_newline_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile deleted file mode 100644 index 803751f7d37d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "activesupport", ">= 6.0.2" # needs ruby >= 2.5 -gem "couchrb", path: "vendor/couchrb" # needs ruby >= 1.9.3 diff --git a/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile.lock deleted file mode 100644 index 09996e318dca..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/Gemfile.lock +++ /dev/null @@ -1,34 +0,0 @@ -PATH - remote: vendor/couchrb - specs: - couchrb (0.9.0) - ice_nine - -GEM - remote: https://rubygems.org/ - specs: - activesupport (6.0.2) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.2) - concurrent-ruby (1.2.2) - i18n (1.12.0) - concurrent-ruby (~> 1.0) - ice_nine (0.11.1) - minitest (5.18.0) - thread_safe (0.3.6) - tzinfo (1.2.11) - thread_safe (~> 0.1) - zeitwerk (2.6.7) - -PLATFORMS - ruby - -DEPENDENCIES - activesupport (>= 6.0.2) - couchrb! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/vendor/couchrb/couchrb.gemspec b/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/vendor/couchrb/couchrb.gemspec deleted file mode 100644 index 0a9e853ec214..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_gem_with_ruby_requirement/vendor/couchrb/couchrb.gemspec +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "couchrb" - spec.version = "0.9.0" - spec.authors = ["nicholas a. evans"] - spec.email = [""] - - spec.summary = %q{CouchDB client library.} - spec.description = %q{CouchRb provides a ruby-flavored interface to CouchDB. The basic resources try to follow the CouchDB API as closely as possible, but many additional features are available.} - spec.homepage = "https://github.com/410labs/couchrb" - - spec.required_ruby_version = ">= 1.9.3" - - spec.add_dependency "ice_nine" -end diff --git a/bundler/spec/fixtures/projects/bundler1/path_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_source/Gemfile deleted file mode 100644 index 1bc6443a9eeb..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" -gem "example", ">= 0.9.0", path: "plugins/example" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" diff --git a/bundler/spec/fixtures/projects/bundler1/path_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/path_source/Gemfile.lock deleted file mode 100644 index 77ac72f9f302..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source/Gemfile.lock +++ /dev/null @@ -1,30 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -PATH - remote: plugins/example - specs: - example (0.9.3) - i18n (>= 0.3.3) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - i18n (0.8.4) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example (>= 0.9.0)! - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/path_source/plugins/example/example.gemspec b/bundler/spec/fixtures/projects/bundler1/path_source/plugins/example/example.gemspec deleted file mode 100644 index a39e98a0f463..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source/plugins/example/example.gemspec +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = "2019-08-01" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = Dir["lib"] - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_runtime_dependency "bundler", ">= 1.12.0" - spec.add_dependency "excon", ["~> 0.55"] - spec.add_dependency("gemnasium-parser", "~> 0.1") - spec.add_dependency "gems", "~> 1.0" - spec.add_dependency "gitlab", "~> 4.1" - spec.add_dependency "octokit", "~> 4.6" - - spec.add_development_dependency "rake" - spec.add_development_dependency "rspec", "~> 3.5.0" - spec.add_development_dependency "rspec-its", "~> 1.2.0" - spec.add_development_dependency "rubocop", "~> 0.48.0" - spec.add_development_dependency "webmock", "~> 2.3.1" -end diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_eval/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_source_eval/Gemfile deleted file mode 100644 index b492381b43db..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_eval/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" -gem "example", path: File.join(File.dirname(__FILE__), 'plugins/example') -gem "prius", git: "https://github.com/dependabot-fixtures/prius" diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_if/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_source_if/Gemfile deleted file mode 100644 index 9a218608c35d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_if/Gemfile +++ /dev/null @@ -1,11 +0,0 @@ -source "https://rubygems.org" - -if ENV['something'] - gem "example", path: "plugins/example" -else - gem "example" -end - -gem "statesman", "~> 1.2.0" -gem "business", "~> 1.4.0" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile deleted file mode 100644 index 1bc6443a9eeb..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" -gem "example", ">= 0.9.0", path: "plugins/example" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile.lock deleted file mode 100644 index 77ac72f9f302..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/Gemfile.lock +++ /dev/null @@ -1,30 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -PATH - remote: plugins/example - specs: - example (0.9.3) - i18n (>= 0.3.3) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - i18n (0.8.4) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example (>= 0.9.0)! - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/plugins/example/example.gemspec b/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/plugins/example/example.gemspec deleted file mode 100644 index 330c138fd5ce..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap/plugins/example/example.gemspec +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'json', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile deleted file mode 100644 index 1bc6443a9eeb..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" -gem "example", ">= 0.9.0", path: "plugins/example" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile.lock deleted file mode 100644 index 77ac72f9f302..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/Gemfile.lock +++ /dev/null @@ -1,30 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -PATH - remote: plugins/example - specs: - example (0.9.3) - i18n (>= 0.3.3) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - i18n (0.8.4) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example (>= 0.9.0)! - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/plugins/example/example.gemspec b/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/plugins/example/example.gemspec deleted file mode 100644 index 927d8d40051f..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_no_overlap_with_require/plugins/example/example.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -lib = File.expand_path('../lib', __FILE__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require 'example/version' - -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = Example::VERSION - spec.summary = "Automated dependency management #{Example::VERSION}" - spec.description = "Core logic for updating a GitHub repos dependencies" - spec.date = Example::DATE - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 2.4.0" - spec.required_rubygems_version = ">= 2.6.11" - - spec.add_dependency 'json', '~> 1.0' -end diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile deleted file mode 100644 index 1bc6443a9eeb..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" -gem "example", ">= 0.9.0", path: "plugins/example" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile.lock deleted file mode 100644 index 77ac72f9f302..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_not_reachable/Gemfile.lock +++ /dev/null @@ -1,30 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -PATH - remote: plugins/example - specs: - example (0.9.3) - i18n (>= 0.3.3) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - i18n (0.8.4) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example (>= 0.9.0)! - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile b/bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile deleted file mode 100644 index 113150701774..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "4.1.1", path: "vendor/gems/statesman-4.1.1" diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile.lock deleted file mode 100644 index df2e0955bdb0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_statesman/Gemfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -PATH - remote: vendor/gems/statesman-4.1.1 - specs: - statesman (4.1.1) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (= 4.1.1)! - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/path_source_statesman/vendor/gems/statesman-4.1.1/.specification b/bundler/spec/fixtures/projects/bundler1/path_source_statesman/vendor/gems/statesman-4.1.1/.specification deleted file mode 100644 index 9749eedb490c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/path_source_statesman/vendor/gems/statesman-4.1.1/.specification +++ /dev/null @@ -1,246 +0,0 @@ ---- !ruby/object:Gem::Specification -name: statesman -version: !ruby/object:Gem::Version - version: 4.1.1 -platform: ruby -authors: -- GoCardless -autorequire: -bindir: bin -cert_chain: [] -date: 2019-07-06 00:00:00.000000000 Z -dependencies: -- !ruby/object:Gem::Dependency - name: ammeter - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' -- !ruby/object:Gem::Dependency - name: bundler - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.3' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.3' -- !ruby/object:Gem::Dependency - name: gc_ruboconfig - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 2.3.9 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 2.3.9 -- !ruby/object:Gem::Dependency - name: mysql2 - requirement: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0.4' - - - "<" - - !ruby/object:Gem::Version - version: '0.6' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0.4' - - - "<" - - !ruby/object:Gem::Version - version: '0.6' -- !ruby/object:Gem::Dependency - name: pg - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '0.18' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '0.18' -- !ruby/object:Gem::Dependency - name: pry - requirement: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0' -- !ruby/object:Gem::Dependency - name: rails - requirement: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '3.2' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '3.2' -- !ruby/object:Gem::Dependency - name: rake - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 12.3.0 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 12.3.0 -- !ruby/object:Gem::Dependency - name: rspec - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' -- !ruby/object:Gem::Dependency - name: rspec-its - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' -- !ruby/object:Gem::Dependency - name: rspec-rails - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' -- !ruby/object:Gem::Dependency - name: rspec_junit_formatter - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.4.0 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.4.0 -- !ruby/object:Gem::Dependency - name: sqlite3 - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 1.3.6 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 1.3.6 -- !ruby/object:Gem::Dependency - name: timecop - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.9.1 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.9.1 -description: A statesman-like state machine library -email: -- developers@gocardless.com -executables: [] -extensions: [] -extra_rdoc_files: [] -files: [] -homepage: https://github.com/gocardless/statesman -licenses: -- MIT -metadata: {} -post_install_message: -rdoc_options: [] -require_paths: -- lib -required_ruby_version: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '2.2' -required_rubygems_version: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0' -requirements: [] -rubygems_version: 3.0.3 -signing_key: -specification_version: 4 -summary: A statesman-like state machine library -test_files: [] - diff --git a/bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile b/bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile deleted file mode 100644 index 74ccddd4b96b..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0", platform: [:mswin] diff --git a/bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile.lock deleted file mode 100644 index 35a6e4aba813..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/platform_windows/Gemfile.lock +++ /dev/null @@ -1,14 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/platform_windows_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/platform_windows_no_lockfile/Gemfile deleted file mode 100644 index 74ccddd4b96b..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/platform_windows_no_lockfile/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0", platform: [:mswin] diff --git a/bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile b/bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile deleted file mode 100644 index 11347d18efc5..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0.rc1" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/prerelease_specified/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile deleted file mode 100644 index 6904ab782d44..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0-rc1" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/prerelease_with_dash_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile deleted file mode 100644 index c0b8498e4464..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "prius", source: "https://rubygems.pkg.github.com/dsp-testing" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile.lock deleted file mode 100644 index 9a23ad55f7c2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/private_gem_source/Gemfile.lock +++ /dev/null @@ -1,18 +0,0 @@ -GEM - remote: https://rubygems.org/ - remote: https://rubygems.pkg.github.com/dsp-testing - specs: - business (1.4.0) - prius (1.0.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile deleted file mode 100644 index 25fa890728dd..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "prius", git: "git@github.com:no-exist-sorry/prius" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile.lock deleted file mode 100644 index 59f2428c1554..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/private_git_source/Gemfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -GIT - remote: git@github.com:no-exist-sorry/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/private_git_source_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/private_git_source_no_lockfile/Gemfile deleted file mode 100644 index 4eea76185481..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/private_git_source_no_lockfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "prius", git: "git@github.com:dependabot-fixtures/does-not-exist" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/private_github_source_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/private_github_source_no_lockfile/Gemfile deleted file mode 100644 index 69fce447abba..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/private_github_source_no_lockfile/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" -gem "prius", github: "dependabot-fixtures/does-not-exist" diff --git a/bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile b/bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile deleted file mode 100644 index 686cbd2c37d8..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "guard-bundler", "~> 2.2.1" diff --git a/bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile.lock deleted file mode 100644 index af7181d4aba3..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/requires_bundler/Gemfile.lock +++ /dev/null @@ -1,46 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - coderay (1.1.3) - ffi (1.14.2) - formatador (0.2.5) - guard (2.16.2) - formatador (>= 0.2.4) - listen (>= 2.7, < 4.0) - lumberjack (>= 1.0.12, < 2.0) - nenv (~> 0.1) - notiffany (~> 0.0) - pry (>= 0.9.12) - shellany (~> 0.0) - thor (>= 0.18.1) - guard-bundler (2.2.1) - bundler (>= 1.3.0, < 3) - guard (~> 2.2) - guard-compat (~> 1.1) - guard-compat (1.2.1) - listen (3.4.1) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - lumberjack (1.2.8) - method_source (1.0.0) - nenv (0.3.0) - notiffany (0.1.3) - nenv (~> 0.1) - shellany (~> 0.0) - pry (0.14.0) - coderay (~> 1.1) - method_source (~> 1.0) - rb-fsevent (0.10.4) - rb-inotify (0.10.1) - ffi (~> 1.0) - shellany (0.0.1) - thor (1.1.0) - -PLATFORMS - ruby - -DEPENDENCIES - guard-bundler (~> 2.2.1) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/ruby_version_file/.ruby-version b/bundler/spec/fixtures/projects/bundler1/ruby_version_file/.ruby-version deleted file mode 100644 index ccbccc3dc626..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/ruby_version_file/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.2.0 diff --git a/bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile b/bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile deleted file mode 100644 index d44cabeca5f5..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -ruby File.open('.ruby-version', 'rb') { |f| f.read.chomp } - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/ruby_version_file/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile b/bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile deleted file mode 100644 index 5e5d48e7a7ad..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source 'https://rubygems.org' - -source "https://username:password@gems.contribsys.com/" do - gem 'sidekiq-pro' -end diff --git a/bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile.lock deleted file mode 100644 index f3ba2930345d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/sidekiq_pro/Gemfile.lock +++ /dev/null @@ -1,26 +0,0 @@ -GEM - remote: https://rubygems.org/ - remote: https://username:password@gems.contribsys.com/ - specs: - concurrent-ruby (1.0.5) - connection_pool (2.2.1) - rack (1.4.7) - rack-protection (1.5.3) - rack - redis (3.3.3) - sidekiq (4.2.9) - concurrent-ruby (~> 1.0) - connection_pool (~> 2.2, >= 2.2.0) - rack-protection (>= 1.5.0) - redis (~> 3.2, >= 3.2.1) - sidekiq-pro (3.4.4) - sidekiq (>= 4.1.5) - -PLATFORMS - ruby - -DEPENDENCIES - sidekiq-pro! - -BUNDLED WITH - 1.15.3 diff --git a/bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile deleted file mode 100644 index 0b7e64ec2fa2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source 'https://example.com' do - gem "business", "~> 1.0", require: true -end diff --git a/bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/source_block_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile deleted file mode 100644 index bf5947034042..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source 'https://SECRET_CODES@repo.fury.io/greysteil/' - -gem 'business' diff --git a/bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile.lock deleted file mode 100644 index 226fd95669c2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_default_source/Gemfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -GEM - remote: https://rubygems.org/ - remote: https://SECRET_CODES@repo.fury.io/greysteil/ - specs: - business (1.5.0) - statesman (2.0.1) - -PLATFORMS - ruby - -DEPENDENCIES - business! - statesman - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/specified_default_source_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/specified_default_source_no_lockfile/Gemfile deleted file mode 100644 index bf5947034042..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_default_source_no_lockfile/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source 'https://SECRET_CODES@repo.fury.io/greysteil/' - -gem 'business' diff --git a/bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile deleted file mode 100644 index 6002285734f6..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -gem 'statesman' - -source 's3://my-gems', type: 'aws-s3' do - gem 'business' -end diff --git a/bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile.lock deleted file mode 100644 index 0abaf3c89b1d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_plugin_source/Gemfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -PLUGIN SOURCE - remote: s3://my-gems - type: aws-s3 - specs: - business (1.5.0) - statesman (2.0.1) - -PLATFORMS - ruby - -DEPENDENCIES - business! - statesman - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile b/bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile deleted file mode 100644 index f933b8d77be6..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -gem 'statesman' - -source 'https://SECRET_CODES@repo.fury.io/greysteil/' do - gem 'business' -end diff --git a/bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile.lock deleted file mode 100644 index 857e29c24732..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_source/Gemfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -GEM - remote: https://rubygems.org/ - remote: https://wxuokzLuQTRgMGtEYMPJ@repo.fury.io/greysteil/ - specs: - business (1.5.0) - statesman (2.0.1) - -PLATFORMS - ruby - -DEPENDENCIES - business! - statesman - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/specified_source_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/specified_source_no_lockfile/Gemfile deleted file mode 100644 index f933b8d77be6..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/specified_source_no_lockfile/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -gem 'statesman' - -source 'https://SECRET_CODES@repo.fury.io/greysteil/' do - gem 'business' -end diff --git a/bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile b/bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile deleted file mode 100644 index 38e1bdd40eeb..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "dummy-pkg-b", "1.0.0" diff --git a/bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile.lock deleted file mode 100644 index 74d79e10aae0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/subdep_blocked_by_subdep/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - dummy-pkg-a (1.0.1) - dummy-pkg-b (1.0.0) - dummy-pkg-a (< 2.0.0) - -PLATFORMS - ruby - -DEPENDENCIES - dummy-pkg-b (= 1.0.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile b/bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile deleted file mode 100644 index cb30b03aaeea..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source "https://rubygems.org" - -gem "ibandit", "~> 0.7.0" diff --git a/bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile.lock deleted file mode 100644 index 6a66ce5411a2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/subdependency/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - i18n (0.7.0.beta1) - ibandit (0.7.0) - i18n (~> 0.7.0) - -PLATFORMS - ruby - -DEPENDENCIES - ibandit (~> 0.7.0) - -BUNDLED WITH - 1.16.1 diff --git a/bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.locked b/bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.locked deleted file mode 100644 index 6a66ce5411a2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.locked +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - i18n (0.7.0.beta1) - ibandit (0.7.0) - i18n (~> 0.7.0) - -PLATFORMS - ruby - -DEPENDENCIES - ibandit (~> 0.7.0) - -BUNDLED WITH - 1.16.1 diff --git a/bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.rb b/bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.rb deleted file mode 100644 index cb30b03aaeea..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/subdependency_gems_rb/gems.rb +++ /dev/null @@ -1,3 +0,0 @@ -source "https://rubygems.org" - -gem "ibandit", "~> 0.7.0" diff --git a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/.gitignore b/bundler/spec/fixtures/projects/bundler1/tool_versions_file/.gitignore deleted file mode 100644 index 48238a337f50..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!.tool-versions diff --git a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/.tool-versions b/bundler/spec/fixtures/projects/bundler1/tool_versions_file/.tool-versions deleted file mode 100644 index 7e1bff112003..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/.tool-versions +++ /dev/null @@ -1 +0,0 @@ -ruby 2.2.0 diff --git a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile b/bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile deleted file mode 100644 index 34c4cf9e8f9d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -ruby File.open('.tool-versions', 'rb') { |f| f.read.match(/ruby (.*)\n/)[1] } - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/tool_versions_file/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile b/bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile deleted file mode 100644 index 3a4d403c7496..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } - -gem "octicons", "~> 19.2" -gem "octicons_helper", "~> 19.2" diff --git a/bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile.lock deleted file mode 100644 index dda2e5040f32..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/top_level_update/Gemfile.lock +++ /dev/null @@ -1,74 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actionpack (7.0.6) - actionview (= 7.0.6) - activesupport (= 7.0.6) - rack (~> 2.0, >= 2.2.4) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actionview (7.0.6) - activesupport (= 7.0.6) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activesupport (7.0.6) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - builder (3.2.4) - concurrent-ruby (1.2.2) - crass (1.0.6) - erubi (1.12.0) - i18n (1.14.1) - concurrent-ruby (~> 1.0) - loofah (2.21.3) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - method_source (1.0.0) - mini_portile2 (2.8.4) - minitest (5.18.1) - nokogiri (1.15.3) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - octicons (19.2.0) - octicons_helper (19.2.0) - actionview - octicons (= 19.2.0) - railties - racc (1.7.1) - rack (2.2.7) - rack-test (2.1.0) - rack (>= 1.3) - rails-dom-testing (2.1.1) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) - method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) - rake (13.0.6) - thor (1.2.2) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - zeitwerk (2.6.8) - -PLATFORMS - ruby - -DEPENDENCIES - octicons (~> 19.2) - octicons_helper (~> 19.2) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile b/bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile deleted file mode 100644 index 471599ee58c0..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" -git_source(:github) { |repo| "https://github.com/#{repo}.git" } - -# Add sentry gems -gem 'sentry-rails', '~> 5.10' -gem 'sentry-ruby', '~> 5.10' - -# Add a gem from a git source -gem 'annotate', github: 'robbevp/annotate_models', branch: 'enhc/support-virtual-columns' diff --git a/bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile.lock deleted file mode 100644 index 175970fa110f..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/top_level_update_with_git_gems/Gemfile.lock +++ /dev/null @@ -1,122 +0,0 @@ -GIT - remote: https://github.com/robbevp/annotate_models.git - revision: 099acde2ff0c1b7e64f70c996a77f907ee1121be - branch: enhc/support-virtual-columns - specs: - annotate (3.1.1) - activerecord (>= 3.2, < 8.0) - rake (>= 10.4, < 14.0) - -GEM - remote: https://rubygems.org/ - specs: - actionpack (7.1.1) - actionview (= 7.1.1) - activesupport (= 7.1.1) - nokogiri (>= 1.8.5) - rack (>= 2.2.4) - rack-session (>= 1.0.1) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.2) - rails-html-sanitizer (~> 1.6) - actionview (7.1.1) - activesupport (= 7.1.1) - builder (~> 3.1) - erubi (~> 1.11) - rails-dom-testing (~> 2.2) - rails-html-sanitizer (~> 1.6) - activemodel (7.1.1) - activesupport (= 7.1.1) - activerecord (7.1.1) - activemodel (= 7.1.1) - activesupport (= 7.1.1) - timeout (>= 0.4.0) - activesupport (7.1.1) - base64 - bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) - base64 (0.1.1) - bigdecimal (3.1.4) - builder (3.2.4) - concurrent-ruby (1.2.2) - connection_pool (2.4.1) - crass (1.0.6) - drb (2.1.1) - ruby2_keywords - erubi (1.12.0) - i18n (1.14.1) - concurrent-ruby (~> 1.0) - io-console (0.6.0) - irb (1.8.3) - rdoc - reline (>= 0.3.8) - loofah (2.21.4) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - mini_portile2 (2.8.5) - minitest (5.20.0) - mutex_m (0.1.2) - nokogiri (1.15.4) - mini_portile2 (~> 2.8.2) - racc (~> 1.4) - psych (5.1.1) - stringio - racc (1.7.1) - rack (3.0.8) - rack-session (2.0.0) - rack (>= 3.0.0) - rack-test (2.1.0) - rack (>= 1.3) - rackup (2.1.0) - rack (>= 3) - webrick (~> 1.8) - rails-dom-testing (2.2.0) - activesupport (>= 5.0.0) - minitest - nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.1.1) - actionpack (= 7.1.1) - activesupport (= 7.1.1) - irb - rackup (>= 1.0.0) - rake (>= 12.2) - thor (~> 1.0, >= 1.2.2) - zeitwerk (~> 2.6) - rake (13.0.6) - rdoc (6.5.0) - psych (>= 4.0.0) - reline (0.3.9) - io-console (~> 0.5) - ruby2_keywords (0.0.5) - sentry-rails (5.10.0) - railties (>= 5.0) - sentry-ruby (~> 5.10.0) - sentry-ruby (5.10.0) - concurrent-ruby (~> 1.0, >= 1.0.2) - stringio (3.0.8) - thor (1.2.2) - timeout (0.4.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - webrick (1.8.1) - zeitwerk (2.6.12) - -PLATFORMS - ruby - -DEPENDENCIES - annotate! - sentry-rails (~> 5.10) - sentry-ruby (~> 5.10) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile b/bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile deleted file mode 100644 index eba56af16006..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source 'https://rubygems.org' - -gem 'rails', '5.2.0' diff --git a/bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile.lock deleted file mode 100644 index 1459e11cefad..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/transitive_blocking/Gemfile.lock +++ /dev/null @@ -1,119 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actioncable (5.2.0) - actionpack (= 5.2.0) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailer (5.2.0) - actionpack (= 5.2.0) - actionview (= 5.2.0) - activejob (= 5.2.0) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (5.2.0) - actionview (= 5.2.0) - activesupport (= 5.2.0) - rack (~> 2.0) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.0) - activesupport (= 5.2.0) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.2.0) - activesupport (= 5.2.0) - globalid (>= 0.3.6) - activemodel (5.2.0) - activesupport (= 5.2.0) - activerecord (5.2.0) - activemodel (= 5.2.0) - activesupport (= 5.2.0) - arel (>= 9.0) - activestorage (5.2.0) - actionpack (= 5.2.0) - activerecord (= 5.2.0) - marcel (~> 0.3.1) - activesupport (5.2.0) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - arel (9.0.0) - builder (3.2.4) - concurrent-ruby (1.1.7) - crass (1.0.6) - erubi (1.9.0) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (1.8.5) - concurrent-ruby (~> 1.0) - loofah (2.7.0) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) - mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) - method_source (1.0.0) - mimemagic (0.3.5) - mini_mime (1.0.2) - mini_portile2 (2.4.0) - minitest (5.14.2) - nio4r (2.5.4) - nokogiri (1.10.10) - mini_portile2 (~> 2.4.0) - rack (2.2.3) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (5.2.0) - actioncable (= 5.2.0) - actionmailer (= 5.2.0) - actionpack (= 5.2.0) - actionview (= 5.2.0) - activejob (= 5.2.0) - activemodel (= 5.2.0) - activerecord (= 5.2.0) - activestorage (= 5.2.0) - activesupport (= 5.2.0) - bundler (>= 1.3.0) - railties (= 5.2.0) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) - loofah (~> 2.3) - railties (5.2.0) - actionpack (= 5.2.0) - activesupport (= 5.2.0) - method_source - rake (>= 0.8.7) - thor (>= 0.18.1, < 2.0) - rake (13.0.1) - sprockets (4.0.2) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) - sprockets (>= 3.0.0) - thor (1.0.1) - thread_safe (0.3.6) - tzinfo (1.2.8) - thread_safe (~> 0.1) - websocket-driver (0.7.3) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.5) - -PLATFORMS - ruby - -DEPENDENCIES - rails (= 5.2.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile deleted file mode 100644 index b4b41dc5c31c..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4" -gem "statesman", "~> 1.2" -gem "dependabot-common", "999999" diff --git a/bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/unavailable_gem_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile deleted file mode 100644 index bf38558ca62e..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -source 'https://rubygems.org' - -# という警告がでるため。 -bad_codes_man - -gem "statesman" diff --git a/bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/unevaluatable_japanese_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile b/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile deleted file mode 100644 index 09c43d7ce768..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source "https://rubygems.org" - -gemspec - -gem "business", "~> 1.4.0" diff --git a/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile.lock deleted file mode 100644 index cc7fe84e1513..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/Gemfile.lock +++ /dev/null @@ -1,13 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/example.gemspec b/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/example.gemspec deleted file mode 100644 index a95f2b2d1f90..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/unsatisfied_required_ruby_version/example.gemspec +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true -Gem::Specification.new do |spec| - spec.name = "example" - spec.version = "0.9.3" - spec.summary = "Automated dependency management" - spec.description = "Core logic for updating a GitHub repos dependencies" - - spec.author = "Dependabot" - spec.email = "support@dependabot.com" - spec.homepage = "https://github.com/hmarr/example" - spec.license = "MIT" - - spec.require_path = "lib" - spec.files = Dir["CHANGELOG.md", "LICENSE.txt", "README.md", - "lib/**/*", "helpers/**/*"] - - spec.required_ruby_version = ">= 99.0.0" -end diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile b/bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile deleted file mode 100644 index bb897e7e7bb2..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/vendored_gems/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_gems/vendor/cache/business-1.4.0.gem b/bundler/spec/fixtures/projects/bundler1/vendored_gems/vendor/cache/business-1.4.0.gem deleted file mode 100644 index 2878bcd0ae6c943056e30f2bc1278597026500f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11776 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 diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_gems/vendor/cache/statesman-1.2.1.gem b/bundler/spec/fixtures/projects/bundler1/vendored_gems/vendor/cache/statesman-1.2.1.gem deleted file mode 100644 index f9b34cd6dc2ff8076032bafb8bd7a63d52533283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30720 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

^-s-jfM#?dmdLhXlh{{j(H9z=AER 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 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/vendor/cache/business-1.4.0.gem b/bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/vendor/cache/business-1.4.0.gem deleted file mode 100644 index 2878bcd0ae6c943056e30f2bc1278597026500f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11776 zcmeHtRZtzw*5$$N0Kwhe-CYi@!GpV;;2J!*ySuwP0m6Y0B)CHo+}$DQneU%@xPRS; znWuZ_*37qGc6YVyUe&#-yY_Ol_As|H_b_L-^#%N^jPoz!<>dwZm;cND*>iF8@Bz5E zd3pKy_<6Yn{_4lY!^_79pyd2l1@zzN^>p_zcl#?OZ#!%2kN>^lpUVHI_W!lFe{Alb zhX1ElDPoZUy@xs4uyBhyhU&jKaRVP3FAJX1%Gd&8+U${;C1L3Y+9Fl8b_FY|BRR6q zI7{rG&qTa((xjzM&83xVM-MCtFO0qlDq=qkcUWg;Uz4~L76$*gIYI2wN15v7%(1JW zth7D}Lp&H|(~ms%pZ==e7p);IJUIsvri-@`3 zWgi~?x8(PSO8Rjuyjx}g1IsF#pH07}#C*EVQn!t@;#c2C6VBhiDpZS%45Y{7En=B5 zl8n10JipqUrP`)aHdbt6bWUQN2{f(IGvpDz=(21pQoMY4Ha0@s>UOxB)^8nS70W96 z>5VS^gQW|>K1a1`I0OM@qS*d>S*T-sEZMt8*r#yo4h)9V^jQBSHE2Jz{0yF;6KJRO zm~c!|D77~|xgj9~xu--fF%8}36wsOwY$1)vAKWmDsC)Pn;3(KCct2JCn-SI}3-eSGfYX-ru1h9Chuy}J~>Vxx4tg7xY?(Vw-Za7 zg}hKeSG9hpH?%@5UhIYyATNfV^u_%}dz97l8CBpYx z%P0n~c0|)~QX`B^-NkncJ}cn*;J1t&O`Dc+O%X_oOqa3Zei=zs{8$(LZL!mfryum~ zMYtfW8}mmEa;u@JJKbr^78L<34*kWt+UR&z(;iHV8Ip8XvR-)eBWalLmQC-8LtPf% z6|xe!Ox{kPAOl8q2$0pONQT23`g83IdlWd`qT|`H#Sem!IPnr0`iMlEI$I!z{GWPd z{-28Le{%m{4ETSK|GD_Nc{%@?|9J%d=Kp`oIr|6ypNjbf{o+q~%`Jpwab9}QqN)BX zIw;o>&rq%HKz>SBAoJ$YDkg-MAGiA2+_2rf@YM$Jj+XI9N}=nQxyE=lY(gO7&EN!J zDN@%Aoou;OLUgtAeZ4k6NjwGfOX{0J^&(h88yr8pKWtOlfpAuH=UaadSN(DcES$jv zVrq1gYC3GpIn6%b?tV?3PJBvAXs7UOv~}?1@Oa{1^qBWVT+*1Yj9B(oJrg6tWX(P9 z00++g#CSK+VIPD^{`f(!jcX0%N(hdp~;psW!#A6li4>WS|fJoeTlZYUrQGMiIAQgHnN5=+@A69xR+_NN^;)L&B zqc>T}by)xIV@Ojb>!$M>Z!&$g0rmwoj&9WYrbFLIyqI)0;?~3${pVZh2l%%v)DQ9a zq9eD}E(_Cn`)8)7BKNnRm)>Um0)9hvulu>c(AxOP^cRT{TgQ0qy9g5)*Y$FGvWF^p zhj{90of>pimSmfL^%s{A#9W|JVwNO_w~ETQ3bl>Ps59aKZmy7I%=pA3!ruVwI7Wkq zqappwGhS6onnf*|YPkH1sC_U_qKUrKp|@YLv(UmrPk^N_xl}b5VBSN&Zpa2>=X#3>PrN6M++36{^4e3e|9JiY@m)|^T z5HLa-W?(Sus~<>HDW>`?a3VfB3=bbGTmcHO5TZ@d{H?@kN%3lwy-WaIb-rlBQ2(&; z{tcY|Wb@(eB>w5IS-(Tw8MLN}6JS#W&?YL9AI>pOkIdaMGcIWEhBFeM-7FrhWW|2w zrWD%>!kiI|K}yrQ;4Bh=&I+-#F40>mWAI+r4W-?E5CF+BFj`855YZ5k2C&l;x;b~r z$a{|S?ZJ4S8$f>4V&PiIK%o#n>ZzVE_*wQw?Y|!dXJBb`8C!gS($~f+q~%0 z0;cG=EFs9w>Zdt{>$}Ei$9Ohz*psRKbDEi%N)Y-LEB4Av@Q={KG}TxGuOMyO05qwG zK>+#F#BVJm-!0J}n(ZAyV|jAKr~|U0VFBy z?x;tSn}6GR0eFcLLf+MJW-_>7rcgO;obIT40%0kQbjo7NTylkzOfL;aAjYZ za7-m%6dW)!qT~>dso2@Nq-4f;@Pv>JUCqren7?4Mxw*A1KQ4$mCEuew`uN{A-aCOa zcXJpn#q?+kf97M#_j@6?2|AH`iKmu|&56FKyp;xY87_Q)-d%Nhx=AM_C_ZoQ1opHW z(w=?Ge>L^~6?rixa_H@|K=phU>V*{Sm4J-FDA{hvKnxJEBireynD<{^clH)17&GZ{ zkK%j)*rob^B=`O)(tj?HI5uLMC_$dzX7ik!m=OP8KT%^ed zwxtu~BGOhHQjxRyNPIu|9lovpe6{DpclIsr9xFl-ji9VOS9!131#x>k#hb1G*eVCV z5qSXl7>ZZ|;k!fcm2Hir1z7_uyO50_u>n)QgmI_ZZpf2&fp&;SFwsxMP6M%(f`@353qz|i$nvUgklvL{TLRj1fn*1w%*S|!d)$v_kB>qC z68oU<@mTsQ8AQqGSA2tpG#B>oiZDa!5EBwA20{Y zJz4yMY9L2gsD)PBk`;WHBnyohl^!@aB3J5yM9aR0gXvXzW*pEs(D}4E3xnG5fIx=w zaYQVAJlQ%Xa79-ZlqAl{gwK?b)tgS*)<^c;*(1_qpAQ>mcr(6V)x>yzpdGfKMV5Dl z0A(P&O`#ZBwUnx3%)a40+qa;@xR9Qt+J(JNo_a|2Pg*$N>>@;EeOIGTfDbcxwsGLp zhXJiU1EvIUw=+DVTw9wsg23WEn(*p~KK?CXt4?sa><{WN_c*tF_nc5IoU(A}B8@`zuHi7MRS#x+ z%46f)-hagM^1p_EwdTe+gXBOsKJ!(Ka}XqCO;dq4v3F6Gc?oW`eH9}%h%|8s3c`VO z&Xz3nYV=Cxk9_ZX{>{W1$aQn~1N|-4W5T!o~&dbSe@3?$SaaiRn))C%qE|!S8 zWQ2&p{kiw2O5GYNoZe|)zy=E`^BNyz$fuX=pw9T81N@!gI#8W`%#vK~i;L=$JE4@H z3FfTL^1?`mPk@A+p9<-bYa>jBgj~JkSbTGwUv9Rhq>#6V%=k&Pdp z4do_&V6C(aS-r+hKkyWRi9hDz0pH4t$S{0YIu`QdJHfe2NvL8i$_`{5 zEJ90{&+>uLpN(fD4Q9iNhnj<1 z$PY#KSwLTc%svIa<4UUNy=EGgh9}AE0>!b1Tk>Kiu!sSNMF~0GWG)r_(zbG}`hD;b zw{Z89nW?{@7PI6F1yRKTH`T3_>qh0uUZe&FM60k+(k!KeV6+vZee@c5fu z8q%T5n6znPe9273p>gvWnyOEu1JsB92@0gp!+^_c<# zF~c5)NhmZ#FTnu{R|EldFvseE=l zD7e|fTRE&s$5Tlj3%KMY{O-S80bq1V?Mg)VkOpAk9F@QBwe^Y9^E)J!9k6vCdiDv- z`gMrhGB`nY`>kHqn-bot$X*{P0=szv0<2#S_68X3GIO_YrbHMs+4JPg$OSgih^_m- z7*s>f$66}svT%nVl!xi=j5i$#YqY@&cN_E``uYf%{gLXz-p}aQL5q_ggrOTNcG`MZ z{Rh#|&n>V->-6TFjD5pDj4y4PI`k^_aAu}IZe*A)-*NYT;7D=uZtUAQ_Cot<`jD8@ zvz9nHg(T+jlFWyEJyRwr9hu!X1Wwj|%I;eheey&06Ki3&nk!y>1t_N|p~&-aTL&12ws6qQPi&M0r<19mopX5;006duntr)ph+FHE zl6WZ+fcSGk0ig^tO6C@h4g7mL1JKlb;*rbDIV7y~K@?0fe?+>8{fndd;NXiyb3G+= z*-dKhE+)quvc~n10&X^vJb%~p(=zl|Yu@!TY&X3?D9KcgpqAC=mm2uRq!i&HfRYKo%Fd}9SImr-fS$O1f#z|pn;zaG`aKDh0pD8b__Dh#)1~AbCIDfOgPh1uZ^9_Pyk{ow{pPsBSz^X5sCGg9d;ae5`N@DQ zoo@dkb$V$UmHFT$gaHetGnBJP4>`~atK`)Sc`E6V)RV7aHyf8|aHR zwXgT6uMyQBFTi6z!xc7vxJdM+*!_{ZTffy<>x7A+|JTcJv5(|!YAz&6`5F&gq6ETa z5I@e@Awe#L0Tt{Hg^p6ss7Jwsx4lmb946yMxu&rT-BB2JYK|)&Vv0(ep2*l}SP3#A?`_=|2v?+$< zKW$gTAZOdt3T=WNtU@Hs@+qiXsZCSd2Q6=?+VSh&9Ar3NoZ+l?oS%qbbc$r_4RnQ6 z#g=WjOf$N$?}{<{P;qmb>wY?h;Xz~r(hMY}CK!J;<4PeEc?@1F zA~R$4Fla8Gnx)i~k5nF0V<6B*YAy|tjlyE-4uys#19J=*VV#hod_*PS8_Rm|X#G6w zgx)`{Psukk2U;Zf8o^qTml(>1&Ea6dsIL&Y&kxsO2Uj{u5d()Ok4QyIB{hRBvq2`y zm_vKjG8xPTrB7OfmFfje2+4_CzG|=CP{98huOE&maof zX^&4pk`vMRbQhHc&krfanTEA12xA}GaWwg_o62z@e_+?Ydbr~{x;+k|rvG7%s>!+C zzV7U`_kHE|<=(jJz|QWj&8nBYXo@Sh)gR99S#~@uIT=g=el(81dDvED>$X|l!>|-B zf^(`h1$!|uw^WR{_x?l!4h z$JfTDCOYjBQRG9GbxH}p4kDO8Xs5zXip+-fI<}V<8^^oHUmwLUWaO}qwRqrd$K5v5 zvVg~kzOBHHs6xo%b{nJHt8dQY4NM#DykRyk$jv+*tZ z+%*$&%e$Qs?%6sxu%n>>SMs^-LfC;`mZsPyEFUfFf)}j_V?=T)pENjP`m$C^zBd^$ zNE306u4{mvI}!Y9hK%0sJK=waeM#$SjPgf~2GgZCNVylqpydoFXWvs9vQBLUZ zPYc?0CCXu<@OtP4hE;#S6Cz+$YLqy1{=~7VVe1E9Qt!e(5>0IJS3B!6L*m-yetNZG zy~78f#Yb5LS7Jn{oa4R@0z;G8$Cq(tv$f%=9zk+;DVVN&X%_+l$YX%JN=fEJOUpqS zJH)X0B06H5!h!VVfd7($dmHIg=OGwAX zz_lRTWr`YBxx5$XY7GIk7fNcQAR;pd*?!hi`*NaBLJKCMu~&CrC4TZvsAZQ}QX8u= zHvj(qutk+6qc-;XnDDhu2XAy*Odus{b-N$fqoZ{2_DBH?&m1TY*gb*ZFG97!M=uvP zeJwwr;^XqseXWLly9J$TE87_wmwA5-EpD`9ybN;Uu39Uhym{}yrZs^O_VMc0N~8#+ zh?aYLLOODO2J(+ibLf>;TK3`U4u%dRE>Q`#s*Z%F9Bo_&-9N?S?P;PHz_YxMO%)xo zL;Ptrz(v*eN=Y3@!B_`NjGA~AZ2@fk#lE+R)~bgH*;=j}S&Y79*|r7@u2{RLNARP6 zxlX_BE5)WU`GDnzV9=d};a&C%bbr6*&AlAD$gm+@U#nhVYPg|;;=HbdGW{dSqu}9+ z7c%&~QFHW6(P4(l@(7*U4YF40_kQMZ*r({h@G*bAn0TEgF|2*wC^+CTykJO>-&_TF z@tn41mNkk`|1l@H9xss%MBZ*zhxyG8y^EK#mU|;%d4~4h^>=4eU*?HcrGFDuR+~?_ zGRq(*L#SX4p6WN>G#V-$X?QG;t&F(&b@~xaq%#!rm1Hn*bBqTX1m==Wf?z_)p*fB}vktXLPqKnCF}x!y zmX;HQdbrzZy~tKdwIs}dgIhu(ZnHM*0~F_2dw@zo^C{Z43mb(C_IIq!9#0yt(74)H zC$hrl+h5ozqVGMu!g|0~v%={VqZJJ*h_c$7})74>5^0{a@SuW7uc>i z2qsFn)-f$*9!zr?L(ZMM#o`>w?o5u8%NqRI7P_#lQSDP zRreW6cs8hb>sSx(>gjwltuCY|Dz=X=z+5L_lna)fMtw1cA=7OVmi2azbv+Bac}k8% z9o&}Lp?Nq6*aCS;X6!|}ah~Ujzrfl5YPMeJAPTKTVZ1tL!iAnOH(EZe%4$qeQLgw0 z_JXn!-}Ei_5{YeeYhF~&`F>q$x`eudsZtW>!SN82gLPZ?4Hm)XrQc`l*6kH#J0cu? zCsfo)av5OC9^N?XN-+uH@j}MVGfV3A&5ClCxW-$ohT=~o5C!O1jS0Jlr*bqidl84I ztbk!eGwGq2o0SDO<(dTq!rEA^iFn**2b18V-i!K9S!C8e!3?{7`Y7aGf!ySJ>WC3cawXi+0Pkr?(BqpW zVBw#Qqj^~82p5uRwL+fp3=1nPSpl6rb;kx>^S?#DjM&bkC6z(A;q7tx0|=|T2rtQqfQ z{%zr9jnf*b`8>G#{TVy^Y>YD1MT|E;&u`2#ZR;Ydz1_#qk?q|`&a2Z;Q9yc=j3Bri z)wSnqcKvDO@<(7Z?(*;{k6*d<%L6GOI*p>;%pz83eg-1qD5hB_9l0cSGE0;arqeL3aQOw)?pGCPPxrVT=3w{>+)Q z0v$Wq1#@eYui>Avh4^1j2M6tkrXB{h!9)f*;R3g@>kmmZt0^0t>}tN(s8|A-c%96k;1sL8+WZT6rRM>Savh|$Nb zMC)_)r)E)DsyNw zifZU&m?V4{!|&b8AB#LrpXg!Ow|$SzWBDOe8@#9bcrYRPQQ^*W8>S9Nh4Bi|%l$sp zc&cS_9Gj?9|5G`REgBEXF*=E{Yrb6PaGIuX{OWg#t^<$EU)&zG?%_$J_ACg*Zj2C* zE6M2ls|~1e)maMi(mpr!sseS^saPb!iGv6ThBcb;kwnqR#v8LYxykuF>S4HaQ!JJ3 zD-O@Z_fK1KniVy7l_oWR)TQZ{BcTSVbT)5UUHt{$U%hfu)5_rQAF#@hZWx$*m(?c= z)m!x$%<5|6MYiAesbbU9b^RY_D&H9o~V70j3tN;B@78T&3 zch_Lpb^LJHP;DOJ=UB8|H1vvc$AM28UU(9zMf5wyrJnh zeG+i(qwTR}CnUOFSNr7|aZ?i9S+gJ%@>O3sENx+5e?lm&&RQPnKqdLrd?Hc}>viOK z|3p1v*d|WA>ho6U)kw*XcTbiTx zH&F_txwInA0cU18~^dfUf;i8V?F^_k@lgzjdxMINLbG*H4Jn)FviO zK)&;=%*KOXj*9&T5^bh?tQxM0L_m8tUr?b}9OcR>bgs`;PltuYGK#~cHBYRnHFEsb z#O?~7{f5^zig&!72XrXucCDAv+H#ETIyq`2s~$hIWGZ_$_A^y0(-n;abPE>`U<#oG ze`P(PP&j}LG7&AH;op)1{r`FqOFL^zu)C+DJNqYd$B+LS6~KQgw}e+&Zu188M$kN^Mx diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/vendor/cache/statesman-1.2.1.gem b/bundler/spec/fixtures/projects/bundler1/vendored_gems_with_subdir/acceptance/vendor/cache/statesman-1.2.1.gem deleted file mode 100644 index f9b34cd6dc2ff8076032bafb8bd7a63d52533283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30720 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

^-s-jfM#?dmdLhXlh{{j(H9z=AER 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 1.0.0", git: "https://github.com/dependabot-fixtures/dependabot-test-ruby-package" diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_git/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/vendored_git/Gemfile.lock deleted file mode 100644 index 141f061d7405..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/vendored_git/Gemfile.lock +++ /dev/null @@ -1,18 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/dependabot-test-ruby-package - revision: 81073f9462f228c6894e3e384d0718def310d99f - specs: - business (1.0.0) - -GEM - remote: https://rubygems.org/ - specs: - -PLATFORMS - ruby - -DEPENDENCIES - dependabot-test-ruby-package (~> 1.0.0)! - -BUNDLED WITH - 1.16.0.pre.2 diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/.bundlecache b/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/.bundlecache deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/README.md b/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/README.md deleted file mode 100644 index f71de17053d1..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## dependabot-test-ruby-package v1.0.0 - -A dummy Ruby package for testing Dependabot. diff --git a/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/test-ruby-package.gemspec b/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/test-ruby-package.gemspec deleted file mode 100644 index 771f333f4931..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/vendored_git/vendor/cache/dependabot-test-ruby-package-81073f9462f2/test-ruby-package.gemspec +++ /dev/null @@ -1,19 +0,0 @@ -# -*- encoding: utf-8 -*- -# stub: dependabot-test-ruby-package 1.0.0 ruby lib - -Gem::Specification.new do |s| - s.name = "dependabot-test-ruby-package".freeze - s.version = "1.0.0" - - s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= - s.require_paths = ["lib".freeze] - s.authors = ["Dependabot".freeze] - s.date = "2020-08-25" - s.email = "noreply@github.com".freeze - s.homepage = "http://github.com/dependabot-fixtures/dependabot-test-ruby-package".freeze - s.licenses = ["MIT".freeze] - s.rubygems_version = "3.1.2".freeze - s.summary = "A dummy package for testing Dependabot".freeze - - s.installed_by_version = "3.1.2" if s.respond_to? :installed_by_version -end diff --git a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile deleted file mode 100644 index 773a61998562..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "> 1.0.0", "< 1.5.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.locked b/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.locked deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.locked +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.rb b/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.rb deleted file mode 100644 index 773a61998562..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_between_bounds_gems_rb/gems.rb +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "> 1.0.0", "< 1.5.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile deleted file mode 100644 index 99b4eeedc6da..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "rspec-mocks", "3.5.0" -gem "rspec-support", "3.5.0" - -gem "diff-lcs", "1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile.lock deleted file mode 100644 index de968b2b14e4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict/Gemfile.lock +++ /dev/null @@ -1,19 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - diff-lcs (1.2.0) - rspec-mocks (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-support (3.5.0) - -PLATFORMS - ruby - -DEPENDENCIES - diff-lcs (= 1.2.0) - rspec-mocks (= 3.5.0) - rspec-support (= 3.5.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.locked b/bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.locked deleted file mode 100644 index de968b2b14e4..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.locked +++ /dev/null @@ -1,19 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - diff-lcs (1.2.0) - rspec-mocks (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-support (3.5.0) - -PLATFORMS - ruby - -DEPENDENCIES - diff-lcs (= 1.2.0) - rspec-mocks (= 3.5.0) - rspec-support (= 3.5.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.rb b/bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.rb deleted file mode 100644 index 99b4eeedc6da..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_gems_rb/gems.rb +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "rspec-mocks", "3.5.0" -gem "rspec-support", "3.5.0" - -gem "diff-lcs", "1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile deleted file mode 100644 index 7d275fdc37f5..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'rspec-expectations', '~> 3.5.0' -gem 'rspec-mocks', '~> 3.5.0' diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile.lock deleted file mode 100644 index cc22499af066..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_mutual_sub/Gemfile.lock +++ /dev/null @@ -1,21 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - diff-lcs (1.3) - rspec-expectations (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-mocks (3.5.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.5.0) - rspec-support (3.5.0) - -PLATFORMS - ruby - -DEPENDENCIES - rspec-expectations (~> 3.5.0) - rspec-mocks (~> 3.5.0) - -BUNDLED WITH - 1.16.0 diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile deleted file mode 100644 index 49ba196f091d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "ibandit", "~> 0.1" -gem "i18n", "~> 0.6" diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile.lock deleted file mode 100644 index e7b685091b02..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - i18n (0.6.11) - ibandit (0.1.1) - -PLATFORMS - ruby - -DEPENDENCIES - i18n (~> 0.6) - ibandit (~> 0.1) - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.locked b/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.locked deleted file mode 100644 index e7b685091b02..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.locked +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - i18n (0.6.11) - ibandit (0.1.1) - -PLATFORMS - ruby - -DEPENDENCIES - i18n (~> 0.6) - ibandit (~> 0.1) - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.rb b/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.rb deleted file mode 100644 index 49ba196f091d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_no_req_change_gems_rb/gems.rb +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "ibandit", "~> 0.1" -gem "i18n", "~> 0.6" diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile deleted file mode 100644 index 2cf229a0fa02..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "rspec-mocks" -gem "rspec-support" diff --git a/bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile.lock deleted file mode 100644 index 9b4195afbf11..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_conflict_with_listed_subdep/Gemfile.lock +++ /dev/null @@ -1,18 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - diff-lcs (1.3) - rspec-mocks (3.6.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.6.0) - rspec-support (3.6.0) - -PLATFORMS - ruby - -DEPENDENCIES - rspec-mocks - rspec-support - -BUNDLED WITH - 1.16.3 diff --git a/bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile deleted file mode 100644 index 3a258a2ac672..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business" -gem "statesman" diff --git a/bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile.lock deleted file mode 100644 index 69318fc3b62d..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_not_specified/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business - statesman - -BUNDLED WITH - 1.14.6 diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile deleted file mode 100644 index 381ba235a887..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile.lock deleted file mode 100644 index 65d23b6c7468..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile/Gemfile.lock +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.10.6 diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile deleted file mode 100644 index 5809430d1b85..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "example", ">= 0.9.0", path: "plugins/example" -gem "prius", git: "https://github.com/dependabot-fixtures/prius" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile.lock b/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile.lock deleted file mode 100644 index 77ac72f9f302..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/Gemfile.lock +++ /dev/null @@ -1,30 +0,0 @@ -GIT - remote: https://github.com/dependabot-fixtures/prius - revision: cff701b3bfb182afc99a85657d7c9f3d6c1ccce2 - specs: - prius (1.0.0) - -PATH - remote: plugins/example - specs: - example (0.9.3) - i18n (>= 0.3.3) - -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - i18n (0.8.4) - statesman (1.2.5) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - example (>= 0.9.0)! - prius! - statesman (~> 1.2.0) - -BUNDLED WITH - 1.15.1 diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/plugins/example/.specification b/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/plugins/example/.specification deleted file mode 100644 index 46f47914a0b9..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_gemfile_specification/plugins/example/.specification +++ /dev/null @@ -1,245 +0,0 @@ ---- !ruby/object:Gem::Specification -name: statesman -version: !ruby/object:Gem::Version - version: 4.1.1 -platform: ruby -authors: -- GoCardless -autorequire: -bindir: bin -cert_chain: [] -date: 2019-07-06 00:00:00.000000000 Z -dependencies: -- !ruby/object:Gem::Dependency - name: ammeter - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' -- !ruby/object:Gem::Dependency - name: bundler - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.3' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.3' -- !ruby/object:Gem::Dependency - name: gc_ruboconfig - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 2.3.9 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 2.3.9 -- !ruby/object:Gem::Dependency - name: mysql2 - requirement: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0.4' - - - "<" - - !ruby/object:Gem::Version - version: '0.6' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0.4' - - - "<" - - !ruby/object:Gem::Version - version: '0.6' -- !ruby/object:Gem::Dependency - name: pg - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '0.18' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '0.18' -- !ruby/object:Gem::Dependency - name: pry - requirement: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0' -- !ruby/object:Gem::Dependency - name: rails - requirement: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '3.2' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '3.2' -- !ruby/object:Gem::Dependency - name: rake - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 12.3.0 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 12.3.0 -- !ruby/object:Gem::Dependency - name: rspec - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' -- !ruby/object:Gem::Dependency - name: rspec-its - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '1.1' -- !ruby/object:Gem::Dependency - name: rspec-rails - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: '3.1' -- !ruby/object:Gem::Dependency - name: rspec_junit_formatter - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.4.0 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.4.0 -- !ruby/object:Gem::Dependency - name: sqlite3 - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 1.3.6 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 1.3.6 -- !ruby/object:Gem::Dependency - name: timecop - requirement: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.9.1 - type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: - - - "~>" - - !ruby/object:Gem::Version - version: 0.9.1 -description: A statesman-like state machine library -email: -- developers@gocardless.com -executables: [] -extensions: [] -extra_rdoc_files: [] -files: [] -homepage: https://github.com/gocardless/statesman -licenses: -- MIT -metadata: {} -post_install_message: -rdoc_options: [] -require_paths: -- lib -required_ruby_version: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '2.2' -required_rubygems_version: !ruby/object:Gem::Requirement - requirements: - - - ">=" - - !ruby/object:Gem::Version - version: '0' -requirements: [] -rubygems_version: 3.0.3 -signing_key: -specification_version: 4 -summary: A statesman-like state machine library -test_files: [] diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.locked b/bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.locked deleted file mode 100644 index ff0f28700125..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.locked +++ /dev/null @@ -1,15 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - business (1.4.0) - statesman (1.2.1) - -PLATFORMS - ruby - -DEPENDENCIES - business (~> 1.4.0) - statesman (~> 1.2.0) - -BUNDLED WITH - 1.17.3 diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.rb b/bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.rb deleted file mode 100644 index 381ba235a887..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_gems_rb/gems.rb +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" diff --git a/bundler/spec/fixtures/projects/bundler1/version_specified_no_lockfile/Gemfile b/bundler/spec/fixtures/projects/bundler1/version_specified_no_lockfile/Gemfile deleted file mode 100644 index 381ba235a887..000000000000 --- a/bundler/spec/fixtures/projects/bundler1/version_specified_no_lockfile/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source "https://rubygems.org" - -gem "business", "~> 1.4.0" -gem "statesman", "~> 1.2.0" From fddf9e9680e1e8ef2480381eea46c09940bc97e4 Mon Sep 17 00:00:00 2001 From: "S.Sandhu" <167903774+sachin-sandhu@users.noreply.github.com> Date: Wed, 16 Oct 2024 23:07:26 -0400 Subject: [PATCH 07/20] adds logs info (#10804) --- .../operations/refresh_security_update_pull_request.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb b/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb index 4b82b87ebe7c..9acbffc8ba04 100644 --- a/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb +++ b/updater/lib/dependabot/updater/operations/refresh_security_update_pull_request.rb @@ -139,6 +139,14 @@ def check_and_update_pull_request(dependencies) "Security advisory dependency: #{lead_dep_name}\n" \ "First dependency in list: #{job_dependencies.first&.downcase}" ) + + if lead_dep_name != job_dependencies.first&.downcase + Dependabot.logger.info( + "Difference found between security-advisory (#{lead_dep_name}) and " \ + "first-dependency (#{job_dependencies.first&.downcase})" + ) + end + else lead_dep_name = job_dependencies.first&.downcase end From a4b9936572ba7f232650887d6365333cd8e7293c Mon Sep 17 00:00:00 2001 From: Rob Aiken Date: Thu, 17 Oct 2024 10:45:33 +0100 Subject: [PATCH 08/20] Fix dependency tag filtering to use exact prefix matching (#10799) * Fix dependency tag filtering to use exact prefix matching * improving test context * updating test name to be more readable --- .../metadata_finders/base/release_finder.rb | 2 +- .../base/release_finder_spec.rb | 15 ++ .../releases_with_mixed_tag_formats.json | 159 ++++++++++++++++++ 3 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 common/spec/fixtures/github/releases_with_mixed_tag_formats.json diff --git a/common/lib/dependabot/metadata_finders/base/release_finder.rb b/common/lib/dependabot/metadata_finders/base/release_finder.rb index 3e7a6b6d1d4b..d92c9c7ac742 100644 --- a/common/lib/dependabot/metadata_finders/base/release_finder.rb +++ b/common/lib/dependabot/metadata_finders/base/release_finder.rb @@ -75,7 +75,7 @@ def all_dep_releases releases_with_dependency_name = releases .reject { |r| r.tag_name.nil? } - .select { |r| r.tag_name.downcase.include?(dep_prefix) } + .select { |r| r.tag_name.start_with?(dep_prefix) } return releases unless releases_with_dependency_name.any? diff --git a/common/spec/dependabot/metadata_finders/base/release_finder_spec.rb b/common/spec/dependabot/metadata_finders/base/release_finder_spec.rb index ac130c447227..5e30dcf3f19f 100644 --- a/common/spec/dependabot/metadata_finders/base/release_finder_spec.rb +++ b/common/spec/dependabot/metadata_finders/base/release_finder_spec.rb @@ -493,6 +493,21 @@ end end + context "when there are tags containing the dependency name as a substring" do + let(:dependency_name) { "React" } + let(:dependency_version) { "18.3.1" } + let(:dependency_previous_version) { "18.3.0" } + let(:github_response) { fixture("github", "releases_with_mixed_tag_formats.json") } + + it "doesn't filter out the tag when there are unrelated tags containing the package name" do + expect(releases_text) + .to eq( + "## 18.3.1 (April 26, 2024)\n" \ + "- Export `act` from `react` [f1338f](https://github.com/facebook/react/commit/f1338f8080abd1386454a10bbf93d67bfe37ce85)" + ) + end + end + context "without GitHub credentials" do let(:credentials) do [{ diff --git a/common/spec/fixtures/github/releases_with_mixed_tag_formats.json b/common/spec/fixtures/github/releases_with_mixed_tag_formats.json new file mode 100644 index 000000000000..b1352fc9ab82 --- /dev/null +++ b/common/spec/fixtures/github/releases_with_mixed_tag_formats.json @@ -0,0 +1,159 @@ +[ + { + "url": "https://api.github.com/repos/facebook/react/releases/179537491", + "assets_url": "https://api.github.com/repos/facebook/react/releases/179537491/assets", + "upload_url": "https://uploads.github.com/repos/facebook/react/releases/179537491/assets{?name,label}", + "html_url": "https://github.com/facebook/react/releases/tag/eslint-plugin-react-hooks%405.0.0", + "id": 179537491, + "author": { + "login": "eps1lon", + "id": 12292047, + "node_id": "MDQ6VXNlcjEyMjkyMDQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/12292047?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/eps1lon", + "html_url": "https://github.com/eps1lon", + "followers_url": "https://api.github.com/users/eps1lon/followers", + "following_url": "https://api.github.com/users/eps1lon/following{/other_user}", + "gists_url": "https://api.github.com/users/eps1lon/gists{/gist_id}", + "starred_url": "https://api.github.com/users/eps1lon/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/eps1lon/subscriptions", + "organizations_url": "https://api.github.com/users/eps1lon/orgs", + "repos_url": "https://api.github.com/users/eps1lon/repos", + "events_url": "https://api.github.com/users/eps1lon/events{/privacy}", + "received_events_url": "https://api.github.com/users/eps1lon/received_events", + "type": "User", + "site_admin": false + }, + "node_id": "RE_kwDOAJy2Ks4Ks4ZT", + "tag_name": "eslint-plugin-react-hooks@5.0.0", + "target_commitish": "main", + "name": "eslint-plugin-react-hooks@5.0.0 (Oct 11, 2024)", + "draft": false, + "prerelease": false, + "created_at": "2024-10-11T13:20:25Z", + "published_at": "2024-10-11T13:32:09Z", + "assets": [ + ], + "tarball_url": "https://api.github.com/repos/facebook/react/tarball/eslint-plugin-react-hooks@5.0.0", + "zipball_url": "https://api.github.com/repos/facebook/react/zipball/eslint-plugin-react-hooks@5.0.0", + "body": "This release only contains `eslint-plugin-react-hooks`. Notably, new violations and support for ESLint v9 were added.\r\n\r\n## `eslint-plugin-react-hooks`\r\n\r\n* **New Violations:** Component names now need to start with an uppercase letter instead of a non-lowercase letter. This means `_Button` or `_component` are no longer valid. ([@kassens](https://github.com/kassens)) in [#25162](https://github.com/facebook/react/pull/25162)\r\n For example, in\r\n ```tsx\r\n function _Component() {\r\n useState()\r\n ^^^^^^^^ A React Hook \"useState\" is called in function \"_Component\" which is neither a Component nor a custom React Hook function.\r\n }\r\n ```\r\n `_Component` should be renamed to `Component`.\r\n \r\n\r\n- Add support for ESLint v9. ([@eps1lon](https://github.com/eps1lon) in [#28773](https://github.com/facebook/react/pull/28773))\r\n- Consider dispatch from `useActionState` stable. ([@eps1lon](https://github.com/eps1lon) in [#29665](https://github.com/facebook/react/pull/29665))\r\n- Accept `as` expression in callback. ([@StyleShit](https://github.com/StyleShit) in [#28202](https://github.com/facebook/react/pull/28202))\r\n- Accept `as` expressions in deps array. ([@StyleShit](https://github.com/StyleShit) in [#28189](https://github.com/facebook/react/pull/28189))\r\n- Treat `React.use()` the same as `use()`. ([@kassens](https://github.com/kassens) in [#27769](https://github.com/facebook/react/pull/27769))\r\n- Move `use()` lint to non-experimental. ([@kassens](https://github.com/kassens) in [#27768](https://github.com/facebook/react/pull/27768))\r\n- Support Flow `as` expressions. ([@cpojer](https://github.com/cpojer) in [#27590](https://github.com/facebook/react/pull/27590))\r\n- Allow `useEffect(fn, undefined)`. ([@kassens](https://github.com/kassens) in [#27525](https://github.com/facebook/react/pull/27525))\r\n- Disallow hooks in async functions. ([@acdlite](https://github.com/acdlite) in [#27045](https://github.com/facebook/react/pull/27045))\r\n- Rename experimental `useEvent` to `useEffectEvent`. ([@sebmarkbage](https://github.com/sebmarkbage) in [#25881](https://github.com/facebook/react/pull/25881))\r\n- Lint for presence of `useEvent` functions in dependency lists. ([@poteto](https://github.com/poteto) in [#25512](https://github.com/facebook/react/pull/25512))\r\n- Check `useEvent` references instead. ([@poteto](https://github.com/poteto) in [#25319](https://github.com/facebook/react/pull/25319))\r\n- Update `RulesOfHooks` with `useEvent` rules. ([@poteto](https://github.com/poteto) in [#25285](https://github.com/facebook/react/pull/25285))", + "reactions": { + "url": "https://api.github.com/repos/facebook/react/releases/179537491/reactions", + "total_count": 289, + "+1": 122, + "-1": 0, + "laugh": 0, + "hooray": 61, + "confused": 0, + "heart": 46, + "rocket": 43, + "eyes": 17 + } + }, + { + "url": "https://api.github.com/repos/facebook/react/releases/153049289", + "assets_url": "https://api.github.com/repos/facebook/react/releases/153049289/assets", + "upload_url": "https://uploads.github.com/repos/facebook/react/releases/153049289/assets{?name,label}", + "html_url": "https://github.com/facebook/react/releases/tag/v18.3.1", + "id": 153049289, + "author": { + "login": "rickhanlonii", + "id": 2440089, + "node_id": "MDQ6VXNlcjI0NDAwODk=", + "avatar_url": "https://avatars.githubusercontent.com/u/2440089?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rickhanlonii", + "html_url": "https://github.com/rickhanlonii", + "followers_url": "https://api.github.com/users/rickhanlonii/followers", + "following_url": "https://api.github.com/users/rickhanlonii/following{/other_user}", + "gists_url": "https://api.github.com/users/rickhanlonii/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rickhanlonii/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rickhanlonii/subscriptions", + "organizations_url": "https://api.github.com/users/rickhanlonii/orgs", + "repos_url": "https://api.github.com/users/rickhanlonii/repos", + "events_url": "https://api.github.com/users/rickhanlonii/events{/privacy}", + "received_events_url": "https://api.github.com/users/rickhanlonii/received_events", + "type": "User", + "site_admin": false + }, + "node_id": "RE_kwDOAJy2Ks4JH1jJ", + "tag_name": "v18.3.1", + "target_commitish": "18-3-1", + "name": "18.3.1 (April 26, 2024)", + "draft": false, + "prerelease": false, + "created_at": "2024-04-26T16:17:57Z", + "published_at": "2024-04-26T19:53:42Z", + "assets": [ + ], + "tarball_url": "https://api.github.com/repos/facebook/react/tarball/v18.3.1", + "zipball_url": "https://api.github.com/repos/facebook/react/zipball/v18.3.1", + "body": "- Export `act` from `react` [f1338f](https://github.com/facebook/react/commit/f1338f8080abd1386454a10bbf93d67bfe37ce85)", + "reactions": { + "url": "https://api.github.com/repos/facebook/react/releases/153049289/reactions", + "total_count": 637, + "+1": 284, + "-1": 0, + "laugh": 77, + "hooray": 79, + "confused": 0, + "heart": 95, + "rocket": 88, + "eyes": 14 + } + }, + { + "url": "https://api.github.com/repos/facebook/react/releases/153048806", + "assets_url": "https://api.github.com/repos/facebook/react/releases/153048806/assets", + "upload_url": "https://uploads.github.com/repos/facebook/react/releases/153048806/assets{?name,label}", + "html_url": "https://github.com/facebook/react/releases/tag/v18.3.0", + "id": 153048806, + "author": { + "login": "rickhanlonii", + "id": 2440089, + "node_id": "MDQ6VXNlcjI0NDAwODk=", + "avatar_url": "https://avatars.githubusercontent.com/u/2440089?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/rickhanlonii", + "html_url": "https://github.com/rickhanlonii", + "followers_url": "https://api.github.com/users/rickhanlonii/followers", + "following_url": "https://api.github.com/users/rickhanlonii/following{/other_user}", + "gists_url": "https://api.github.com/users/rickhanlonii/gists{/gist_id}", + "starred_url": "https://api.github.com/users/rickhanlonii/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/rickhanlonii/subscriptions", + "organizations_url": "https://api.github.com/users/rickhanlonii/orgs", + "repos_url": "https://api.github.com/users/rickhanlonii/repos", + "events_url": "https://api.github.com/users/rickhanlonii/events{/privacy}", + "received_events_url": "https://api.github.com/users/rickhanlonii/received_events", + "type": "User", + "site_admin": false + }, + "node_id": "RE_kwDOAJy2Ks4JH1bm", + "tag_name": "v18.3.0", + "target_commitish": "18-3", + "name": "18.3.0 (April 25, 2024)", + "draft": false, + "prerelease": false, + "created_at": "2024-04-25T16:22:01Z", + "published_at": "2024-04-26T19:48:51Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/facebook/react/tarball/v18.3.0", + "zipball_url": "https://api.github.com/repos/facebook/react/zipball/v18.3.0", + "body": "This release is identical to 18.2 but adds warnings for deprecated APIs and other changes that are needed for React 19.\r\n\r\nRead the [React 19 Upgrade Guide](https://react.dev/blog/2024/04/25/react-19-upgrade-guide) for more info.\r\n\r\n### React\r\n\r\n- Allow writing to `this.refs` to support string ref codemod [909071](https://github.com/facebook/react/commit/9090712fd3ca4e1099e1f92e67933c2cb4f32552)\r\n- Warn for deprecated `findDOMNode` outside StrictMode [c3b283](https://github.com/facebook/react/commit/c3b283964108b0e8dbcf1f9eb2e7e67815e39dfb)\r\n- Warn for deprecated `test-utils` methods [d4ea75](https://github.com/facebook/react/commit/d4ea75dc4258095593b6ac764289f42bddeb835c)\r\n- Warn for deprecated Legacy Context outside StrictMode [415ee0](https://github.com/facebook/react/commit/415ee0e6ea0fe3e288e65868df2e3241143d5f7f)\r\n- Warn for deprecated string refs outside StrictMode [#25383](https://github.com/facebook/react/pull/25383)\r\n- Warn for deprecated `defaultProps` for function components [#25699](https://github.com/facebook/react/pull/25699)\r\n- Warn when spreading `key` [#25697](https://github.com/facebook/react/pull/25697)\r\n- Warn when using `act` from `test-utils` [d4ea75](https://github.com/facebook/react/commit/d4ea75dc4258095593b6ac764289f42bddeb835c)\r\n\r\n### React DOM\r\n- Warn for deprecated `unmountComponentAtNode` [8a015b](https://github.com/facebook/react/commit/8a015b68cc060079878e426610e64e86fb328f8d)\r\n- Warn for deprecated `renderToStaticNodeStream` [#28874](https://github.com/facebook/react/pull/28874)\r\n", + "reactions": { + "url": "https://api.github.com/repos/facebook/react/releases/153048806/reactions", + "total_count": 289, + "+1": 113, + "-1": 0, + "laugh": 24, + "hooray": 39, + "confused": 0, + "heart": 48, + "rocket": 61, + "eyes": 4 + } + } +] From 81eb4261cddaa48ad8d613f6147f8975b0a50224 Mon Sep 17 00:00:00 2001 From: "dependabot-core-action-automation[bot]" <98560086+dependabot-core-action-automation[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:05:14 +0100 Subject: [PATCH 09/20] v0.281.0 (#10805) Release notes: https://github.com/dependabot/dependabot-core/releases/tag/v0.281.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- Gemfile.lock | 80 ++++++++++++++++++++-------------------- common/lib/dependabot.rb | 2 +- updater/Gemfile.lock | 80 ++++++++++++++++++++-------------------- 3 files changed, 81 insertions(+), 81 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6e35b253e2ed..d4ecddad3e70 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,20 +1,20 @@ PATH remote: bundler specs: - dependabot-bundler (0.280.0) - dependabot-common (= 0.280.0) + dependabot-bundler (0.281.0) + dependabot-common (= 0.281.0) parallel (~> 1.24) PATH remote: cargo specs: - dependabot-cargo (0.280.0) - dependabot-common (= 0.280.0) + dependabot-cargo (0.281.0) + dependabot-common (= 0.281.0) PATH remote: common specs: - dependabot-common (0.280.0) + dependabot-common (0.281.0) aws-sdk-codecommit (~> 1.28) aws-sdk-ecr (~> 1.5) bundler (>= 1.16, < 3.0.0) @@ -38,107 +38,107 @@ PATH PATH remote: composer specs: - dependabot-composer (0.280.0) - dependabot-common (= 0.280.0) + dependabot-composer (0.281.0) + dependabot-common (= 0.281.0) PATH remote: devcontainers specs: - dependabot-devcontainers (0.280.0) - dependabot-common (= 0.280.0) + dependabot-devcontainers (0.281.0) + dependabot-common (= 0.281.0) PATH remote: docker specs: - dependabot-docker (0.280.0) - dependabot-common (= 0.280.0) + dependabot-docker (0.281.0) + dependabot-common (= 0.281.0) PATH remote: elm specs: - dependabot-elm (0.280.0) - dependabot-common (= 0.280.0) + dependabot-elm (0.281.0) + dependabot-common (= 0.281.0) PATH remote: git_submodules specs: - dependabot-git_submodules (0.280.0) - dependabot-common (= 0.280.0) + dependabot-git_submodules (0.281.0) + dependabot-common (= 0.281.0) parseconfig (~> 1.0, < 1.1.0) PATH remote: github_actions specs: - dependabot-github_actions (0.280.0) - dependabot-common (= 0.280.0) + dependabot-github_actions (0.281.0) + dependabot-common (= 0.281.0) PATH remote: go_modules specs: - dependabot-go_modules (0.280.0) - dependabot-common (= 0.280.0) + dependabot-go_modules (0.281.0) + dependabot-common (= 0.281.0) PATH remote: gradle specs: - dependabot-gradle (0.280.0) - dependabot-common (= 0.280.0) - dependabot-maven (= 0.280.0) + dependabot-gradle (0.281.0) + dependabot-common (= 0.281.0) + dependabot-maven (= 0.281.0) PATH remote: hex specs: - dependabot-hex (0.280.0) - dependabot-common (= 0.280.0) + dependabot-hex (0.281.0) + dependabot-common (= 0.281.0) PATH remote: maven specs: - dependabot-maven (0.280.0) - dependabot-common (= 0.280.0) + dependabot-maven (0.281.0) + dependabot-common (= 0.281.0) PATH remote: npm_and_yarn specs: - dependabot-npm_and_yarn (0.280.0) - dependabot-common (= 0.280.0) + dependabot-npm_and_yarn (0.281.0) + dependabot-common (= 0.281.0) PATH remote: nuget specs: - dependabot-nuget (0.280.0) - dependabot-common (= 0.280.0) + dependabot-nuget (0.281.0) + dependabot-common (= 0.281.0) rubyzip (>= 2.3.2, < 3.0) PATH remote: pub specs: - dependabot-pub (0.280.0) - dependabot-common (= 0.280.0) + dependabot-pub (0.281.0) + dependabot-common (= 0.281.0) PATH remote: python specs: - dependabot-python (0.280.0) - dependabot-common (= 0.280.0) + dependabot-python (0.281.0) + dependabot-common (= 0.281.0) PATH remote: silent specs: - dependabot-silent (0.280.0) - dependabot-common (= 0.280.0) + dependabot-silent (0.281.0) + dependabot-common (= 0.281.0) PATH remote: swift specs: - dependabot-swift (0.280.0) - dependabot-common (= 0.280.0) + dependabot-swift (0.281.0) + dependabot-common (= 0.281.0) PATH remote: terraform specs: - dependabot-terraform (0.280.0) - dependabot-common (= 0.280.0) + dependabot-terraform (0.281.0) + dependabot-common (= 0.281.0) GEM remote: https://rubygems.org/ diff --git a/common/lib/dependabot.rb b/common/lib/dependabot.rb index d4bc494b5d72..b056f04a4931 100644 --- a/common/lib/dependabot.rb +++ b/common/lib/dependabot.rb @@ -2,5 +2,5 @@ # frozen_string_literal: true module Dependabot - VERSION = "0.280.0" + VERSION = "0.281.0" end diff --git a/updater/Gemfile.lock b/updater/Gemfile.lock index 1666020009b0..c9f5cd8f4b7a 100644 --- a/updater/Gemfile.lock +++ b/updater/Gemfile.lock @@ -1,20 +1,20 @@ PATH remote: ../bundler specs: - dependabot-bundler (0.280.0) - dependabot-common (= 0.280.0) + dependabot-bundler (0.281.0) + dependabot-common (= 0.281.0) parallel (~> 1.24) PATH remote: ../cargo specs: - dependabot-cargo (0.280.0) - dependabot-common (= 0.280.0) + dependabot-cargo (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../common specs: - dependabot-common (0.280.0) + dependabot-common (0.281.0) aws-sdk-codecommit (~> 1.28) aws-sdk-ecr (~> 1.5) bundler (>= 1.16, < 3.0.0) @@ -38,107 +38,107 @@ PATH PATH remote: ../composer specs: - dependabot-composer (0.280.0) - dependabot-common (= 0.280.0) + dependabot-composer (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../devcontainers specs: - dependabot-devcontainers (0.280.0) - dependabot-common (= 0.280.0) + dependabot-devcontainers (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../docker specs: - dependabot-docker (0.280.0) - dependabot-common (= 0.280.0) + dependabot-docker (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../elm specs: - dependabot-elm (0.280.0) - dependabot-common (= 0.280.0) + dependabot-elm (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../git_submodules specs: - dependabot-git_submodules (0.280.0) - dependabot-common (= 0.280.0) + dependabot-git_submodules (0.281.0) + dependabot-common (= 0.281.0) parseconfig (~> 1.0, < 1.1.0) PATH remote: ../github_actions specs: - dependabot-github_actions (0.280.0) - dependabot-common (= 0.280.0) + dependabot-github_actions (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../go_modules specs: - dependabot-go_modules (0.280.0) - dependabot-common (= 0.280.0) + dependabot-go_modules (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../gradle specs: - dependabot-gradle (0.280.0) - dependabot-common (= 0.280.0) - dependabot-maven (= 0.280.0) + dependabot-gradle (0.281.0) + dependabot-common (= 0.281.0) + dependabot-maven (= 0.281.0) PATH remote: ../hex specs: - dependabot-hex (0.280.0) - dependabot-common (= 0.280.0) + dependabot-hex (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../maven specs: - dependabot-maven (0.280.0) - dependabot-common (= 0.280.0) + dependabot-maven (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../npm_and_yarn specs: - dependabot-npm_and_yarn (0.280.0) - dependabot-common (= 0.280.0) + dependabot-npm_and_yarn (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../nuget specs: - dependabot-nuget (0.280.0) - dependabot-common (= 0.280.0) + dependabot-nuget (0.281.0) + dependabot-common (= 0.281.0) rubyzip (>= 2.3.2, < 3.0) PATH remote: ../pub specs: - dependabot-pub (0.280.0) - dependabot-common (= 0.280.0) + dependabot-pub (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../python specs: - dependabot-python (0.280.0) - dependabot-common (= 0.280.0) + dependabot-python (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../silent specs: - dependabot-silent (0.280.0) - dependabot-common (= 0.280.0) + dependabot-silent (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../swift specs: - dependabot-swift (0.280.0) - dependabot-common (= 0.280.0) + dependabot-swift (0.281.0) + dependabot-common (= 0.281.0) PATH remote: ../terraform specs: - dependabot-terraform (0.280.0) - dependabot-common (= 0.280.0) + dependabot-terraform (0.281.0) + dependabot-common (= 0.281.0) GEM remote: https://rubygems.org/ From abec2c6ad1cc198eff6f7f58fc1465c880638e31 Mon Sep 17 00:00:00 2001 From: "Brett V. Forsgren" Date: Thu, 10 Oct 2024 14:02:25 -0600 Subject: [PATCH 10/20] add test helper to enable dependency solver --- .../DependencySolverEnvironment.cs | 12 ++++++ .../Update/UpdateWorkerTests.Sdk.cs | 42 +++++++++---------- 2 files changed, 33 insertions(+), 21 deletions(-) create mode 100644 nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolverEnvironment.cs diff --git a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolverEnvironment.cs b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolverEnvironment.cs new file mode 100644 index 000000000000..7d47ff271ffa --- /dev/null +++ b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/DependencySolverEnvironment.cs @@ -0,0 +1,12 @@ +namespace NuGetUpdater.Core.Test; + +///

+/// Prepares the environment to use the new dependency solver. +/// +public class DependencySolverEnvironment : TemporaryEnvironment +{ + public DependencySolverEnvironment(bool useDependencySolver = true) + : base([("UseNewNugetPackageResolver", useDependencySolver ? "true" : "false")]) + { + } +} diff --git a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs index e3bc939c89e8..dd4f4e0bc9e7 100644 --- a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +++ b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs @@ -54,12 +54,12 @@ await TestUpdateForProject("Some.Package", "9.0.1", "13.0.1", } [Theory] - [InlineData("true")] - [InlineData(null)] - public async Task UpdateVersionChildElement_InProjectFile_ForPackageReferenceIncludeTheory(string variableValue) + [InlineData(true)] + [InlineData(false)] + public async Task UpdateVersionChildElement_InProjectFile_ForPackageReferenceIncludeTheory(bool useDependencySolver) { // update Some.Package from 9.0.1 to 13.0.1 - using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]); + using var _ = new DependencySolverEnvironment(useDependencySolver); await TestUpdateForProject("Some.Package", "9.0.1", "13.0.1", packages: [ @@ -99,7 +99,7 @@ await TestUpdateForProject("Some.Package", "9.0.1", "13.0.1", public async Task CallingResolveDependencyConflictsNew() { // update Microsoft.CodeAnalysis.Common from 4.9.2 to 4.10.0 - using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", "true")]); + using var _ = new DependencySolverEnvironment(); await TestUpdateForProject("Microsoft.CodeAnalysis.Common", "4.9.2", "4.10.0", // initial projectContents: $""" @@ -535,11 +535,11 @@ await TestUpdateForProject("Some.Package", "9.0.1", "13.0.1", } [Theory] - [InlineData(null)] - [InlineData("true")] - public async Task AddPackageReference_InProjectFile_ForTransientDependency(string variableValue) + [InlineData(true)] + [InlineData(false)] + public async Task AddPackageReference_InProjectFile_ForTransientDependency(bool useDependencySolver) { - using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]); + using var _ = new DependencySolverEnvironment(useDependencySolver); // add transient package Some.Transient.Dependency from 5.0.1 to 5.0.2 await TestUpdateForProject("Some.Transient.Dependency", "5.0.1", "5.0.2", isTransitive: true, packages: @@ -2915,11 +2915,11 @@ await TestUpdateForProject("Some.Package", "12.0.1", "13.0.1", } [Theory] - [InlineData("true")] - [InlineData(null)] - public async Task NoChange_IfThereAreIncoherentVersions(string variableValue) + [InlineData(true)] + [InlineData(false)] + public async Task NoChange_IfThereAreIncoherentVersions(bool useDependencySolver) { - using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]); + using var _ = new DependencySolverEnvironment(useDependencySolver); // trying to update `Transitive.Dependency` to 1.1.0 would normally pull `Some.Package` from 1.0.0 to 1.1.0, // but the TFM doesn't allow it @@ -3005,11 +3005,11 @@ await TestUpdateForProject("Some.Package", "7.0.1", "13.0.1", } [Theory] - [InlineData("true")] - [InlineData(null)] - public async Task UnresolvablePropertyDoesNotStopOtherUpdates(string variableValue) + [InlineData(true)] + [InlineData(false)] + public async Task UnresolvablePropertyDoesNotStopOtherUpdates(bool useDependencySolver) { - using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]); + using var _ = new DependencySolverEnvironment(useDependencySolver); // the property `$(SomeUnresolvableProperty)` cannot be resolved await TestUpdateForProject("Some.Package", "7.0.1", "13.0.1", @@ -3045,11 +3045,11 @@ await TestUpdateForProject("Some.Package", "7.0.1", "13.0.1", } [Theory] - [InlineData("true")] - [InlineData(null)] - public async Task UpdatingPackageAlsoUpdatesAnythingWithADependencyOnTheUpdatedPackage(string variableValue) + [InlineData(true)] + [InlineData(false)] + public async Task UpdatingPackageAlsoUpdatesAnythingWithADependencyOnTheUpdatedPackage(bool useDependencySolver) { - using var env = new TemporaryEnvironment([("UseNewNugetPackageResolver", variableValue)]); + using var _ = new DependencySolverEnvironment(useDependencySolver); // updating Some.Package from 3.3.30 requires that Some.Package.Extensions also be updated await TestUpdateForProject("Some.Package", "3.3.30", "3.4.3", From d4958d2abbab432beab7c81cb4df0235a2d48aeb Mon Sep 17 00:00:00 2001 From: "Brett V. Forsgren" Date: Mon, 14 Oct 2024 10:22:16 -0600 Subject: [PATCH 11/20] enable updating transitive via top level with solver --- .../Update/UpdateWorkerTests.Sdk.cs | 99 +++++++++++++++++++ .../Utilities/MSBuildHelperTests.cs | 36 +++---- .../Updater/SdkPackageUpdater.cs | 95 +++++++++++++----- .../Utilities/MSBuildHelper.cs | 14 +-- 4 files changed, 190 insertions(+), 54 deletions(-) diff --git a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs index dd4f4e0bc9e7..1e1a6d057ce6 100644 --- a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +++ b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs @@ -95,6 +95,66 @@ await TestUpdateForProject("Some.Package", "9.0.1", "13.0.1", ); } + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task PeerDependenciesAreUpdatedEvenWhenNotExplicit(bool useDependencySolver) + { + using var _ = new DependencySolverEnvironment(useDependencySolver); + await TestUpdateForProject("AspNetCore.HealthChecks.Rabbitmq", "5.0.2", "7.0.0", + projectFile: ("a/a.csproj", """ + + + Exe + net6.0 + enable + enable + true + + + + + + """), + additionalFiles: + [ + ("Directory.Packages.props", """ + + + + + + + """) + ], + expectedProjectContents: """ + + + Exe + net6.0 + enable + enable + true + + + + + + """, + additionalFilesExpected: + [ + ("Directory.Packages.props", """ + + + + + + + """) + ] + ); + } + [Fact] public async Task CallingResolveDependencyConflictsNew() { @@ -2914,6 +2974,45 @@ await TestUpdateForProject("Some.Package", "12.0.1", "13.0.1", ); } + [Fact] + public async Task UpdatingTransitiveDependencyWithNewSolverCanUpdateJustTheTopLevelPackage() + { + // we've been asked to explicitly update a transitive dependency, but we can solve it by updating the top-level package instead + using var _ = new DependencySolverEnvironment(); + await TestUpdateForProject("Transitive.Package", "1.0.0", "2.0.0", + isTransitive: true, + packages: + [ + MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net8.0", [("net8.0", [("Transitive.Package", "[1.0.0]")])]), + MockNuGetPackage.CreateSimplePackage("Some.Package", "2.0.0", "net8.0", [("net8.0", [("Transitive.Package", "[2.0.0]")])]), + MockNuGetPackage.CreateSimplePackage("Transitive.Package", "1.0.0", "net8.0"), + MockNuGetPackage.CreateSimplePackage("Transitive.Package", "2.0.0", "net8.0"), + ], + projectContents: """ + + + net8.0 + false + + + + + + """, + expectedProjectContents: """ + + + net8.0 + false + + + + + + """ + ); + } + [Theory] [InlineData(true)] [InlineData(false)] diff --git a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs index 337cc4f3fa95..c419bf9faba7 100644 --- a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +++ b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs @@ -442,9 +442,9 @@ [new Dependency("Package.A", "1.0.0", DependencyType.Unknown)] } [Fact] - public async Task DependencyConflictsCanBeResolved() + public async Task DependencyConflictsCanBeResolvedWithBruteForce() { - var repoRoot = Directory.CreateTempSubdirectory($"test_{nameof(DependencyConflictsCanBeResolved)}_"); + var repoRoot = Directory.CreateTempSubdirectory($"test_{nameof(DependencyConflictsCanBeResolvedWithBruteForce)}_"); MockNuGetPackage[] testPackages = [ // some base packages @@ -483,7 +483,7 @@ await File.WriteAllTextAsync(projectPath, """ { new Dependency("Some.Other.Package", "1.2.0", DependencyType.PackageReference), }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsWithBruteForce(repoRoot.FullName, projectPath, "net8.0", dependencies, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(2, resolvedDependencies.Length); Assert.Equal("Some.Package", resolvedDependencies[0].Name); @@ -533,7 +533,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("CS-Script.Core", "2.0.0", DependencyType.PackageReference), }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(3, resolvedDependencies.Length); Assert.Equal("CS-Script.Core", resolvedDependencies[0].Name); @@ -578,7 +578,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Microsoft.Bcl.AsyncInterfaces", "1.1.1", DependencyType.Unknown) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Single(resolvedDependencies); Assert.Equal("Azure.Core", resolvedDependencies[0].Name); @@ -621,7 +621,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Newtonsoft.Json", "13.0.1", DependencyType.Unknown) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(2, resolvedDependencies.Length); Assert.Equal("Newtonsoft.Json.Bson", resolvedDependencies[0].Name); @@ -671,7 +671,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Microsoft.CodeAnalysis.Common", "4.10.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(3, resolvedDependencies.Length); Assert.Equal("Microsoft.CodeAnalysis.Compilers", resolvedDependencies[0].Name); @@ -723,7 +723,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Microsoft.CodeAnalysis.Common", "4.10.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(4, resolvedDependencies.Length); Assert.Equal("Microsoft.CodeAnalysis.Compilers", resolvedDependencies[0].Name); @@ -779,7 +779,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Newtonsoft.Json", "13.0.1", DependencyType.Unknown) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(5, resolvedDependencies.Length); Assert.Equal("Microsoft.CodeAnalysis.Compilers", resolvedDependencies[0].Name); @@ -838,7 +838,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Buildalyzer", "7.0.1", DependencyType.PackageReference), }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(4, resolvedDependencies.Length); Assert.Equal("Buildalyzer", resolvedDependencies[0].Name); @@ -895,7 +895,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Azure.Core", "1.22.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(4, resolvedDependencies.Length); Assert.Equal("System.Collections.Immutable", resolvedDependencies[0].Name); @@ -952,7 +952,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Azure.Core", "1.22.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(5, resolvedDependencies.Length); Assert.Equal("System.Collections.Immutable", resolvedDependencies[0].Name); @@ -1007,7 +1007,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("AutoMapper.Collection", "10.0.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(3, resolvedDependencies.Length); Assert.Equal("AutoMapper.Extensions.Microsoft.DependencyInjection", resolvedDependencies[0].Name); @@ -1054,7 +1054,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Microsoft.Extensions.Caching.Memory", "8.0.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(2, resolvedDependencies.Length); Assert.Equal("Microsoft.EntityFrameworkCore", resolvedDependencies[0].Name); @@ -1104,7 +1104,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Microsoft.EntityFrameworkCore.Analyzers", "8.0.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(4, resolvedDependencies.Length); Assert.Equal("Microsoft.EntityFrameworkCore.Design", resolvedDependencies[0].Name); @@ -1156,7 +1156,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("Microsoft.EntityFrameworkCore.Analyzers", "8.0.0", DependencyType.PackageReference) }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(3, resolvedDependencies.Length); Assert.Equal("Microsoft.EntityFrameworkCore.Design", resolvedDependencies[0].Name); @@ -1208,7 +1208,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("System.Collections.Immutable", "8.0.0", DependencyType.PackageReference), }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(4, resolvedDependencies.Length); Assert.Equal("System.Collections.Immutable", resolvedDependencies[0].Name); @@ -1260,7 +1260,7 @@ await File.WriteAllTextAsync(projectPath, """ new Dependency("System.Collections.Immutable", "8.0.0", DependencyType.PackageReference), }; - var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsNew(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, update, new TestLogger()); Assert.NotNull(resolvedDependencies); Assert.Equal(3, resolvedDependencies.Length); Assert.Equal("Microsoft.CodeAnalysis.CSharp.Workspaces", resolvedDependencies[0].Name); diff --git a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs index 7513e075ad34..b3da76eaaae6 100644 --- a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs +++ b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs @@ -30,19 +30,26 @@ public static async Task UpdateDependencyAsync( return; } - if (isTransitive) + var peerDependencies = await GetUpdatedPeerDependenciesAsync(repoRootPath, projectPath, tfms, dependencyName, newDependencyVersion, logger); + if (MSBuildHelper.UseNewDependencySolver()) { - await UpdateTransitiveDependencyAsync(repoRootPath, projectPath, dependencyName, newDependencyVersion, buildFiles, logger); + await UpdateDependencyWithConflictResolution(repoRootPath, buildFiles, tfms, projectPath, dependencyName, previousDependencyVersion, newDependencyVersion, isTransitive, peerDependencies, logger); } else { - var peerDependencies = await GetUpdatedPeerDependenciesAsync(repoRootPath, projectPath, tfms, dependencyName, newDependencyVersion, logger); - if (peerDependencies is null) + if (isTransitive) { - return; + await UpdateTransitiveDependencyAsync(repoRootPath, projectPath, dependencyName, newDependencyVersion, buildFiles, logger); } + else + { + if (peerDependencies is null) + { + return; + } - await UpdateTopLevelDepdendency(repoRootPath, buildFiles, tfms, dependencyName, previousDependencyVersion, newDependencyVersion, peerDependencies, logger); + await UpdateTopLevelDepdendency(repoRootPath, buildFiles, tfms, dependencyName, previousDependencyVersion, newDependencyVersion, peerDependencies, logger); + } } if (!await AreDependenciesCoherentAsync(repoRootPath, projectPath, dependencyName, logger, buildFiles, tfms)) @@ -53,6 +60,61 @@ public static async Task UpdateDependencyAsync( await SaveBuildFilesAsync(buildFiles, logger); } + public static async Task UpdateDependencyWithConflictResolution( + string repoRootPath, + ImmutableArray buildFiles, + string[] targetFrameworks, + string projectPath, + string dependencyName, + string previousDependencyVersion, + string newDependencyVersion, + bool isTransitive, + IDictionary peerDependencies, + ILogger logger) + { + var topLevelDependencies = MSBuildHelper.GetTopLevelPackageDependencyInfos(buildFiles).ToArray(); + var isDependencyTopLevel = topLevelDependencies.Any(d => d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase)); + var dependenciesToUpdate = new[] { new Dependency(dependencyName, newDependencyVersion, DependencyType.PackageReference) }; + + // update the initial dependency... + TryUpdateDependencyVersion(buildFiles, dependencyName, previousDependencyVersion, newDependencyVersion, logger); + + // ...and the peer dependencies... + foreach (var (packageName, packageVersion) in peerDependencies.Where(kvp => string.Compare(kvp.Key, dependencyName, StringComparison.OrdinalIgnoreCase) != 0)) + { + TryUpdateDependencyVersion(buildFiles, packageName, previousDependencyVersion: null, newDependencyVersion: packageVersion, logger); + } + + // ...and everything else + foreach (var projectFile in buildFiles) + { + foreach (var tfm in targetFrameworks) + { + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRootPath, projectFile.Path, tfm, topLevelDependencies, dependenciesToUpdate, logger); + if (resolvedDependencies is null) + { + logger.Log($" Unable to resolve dependency conflicts for {projectFile.Path}."); + continue; + } + + var isDependencyInResolutionSet = resolvedDependencies.Any(d => d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase)); + if (isTransitive && !isDependencyTopLevel && isDependencyInResolutionSet) + { + // a transitive dependency had to be pinned; add it here + await UpdateTransitiveDependencyAsync(repoRootPath, projectPath, dependencyName, newDependencyVersion, buildFiles, logger); + } + + // update all resolved dependencies that aren't the initial dependency + foreach (var resolvedDependency in resolvedDependencies + .Where(d => !d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase)) + .Where(d => d.Version is not null)) + { + TryUpdateDependencyVersion(buildFiles, resolvedDependency.Name, previousDependencyVersion: null, newDependencyVersion: resolvedDependency.Version!, logger); + } + } + } + } + /// /// Verifies that the package does not already satisfy the requested dependency version. /// @@ -307,7 +369,7 @@ private static async Task UpdateTopLevelDepdendency( IDictionary peerDependencies, ILogger logger) { - + // update dependencies... var result = TryUpdateDependencyVersion(buildFiles, dependencyName, previousDependencyVersion, newDependencyVersion, logger); if (result == UpdateResult.NotFound) { @@ -320,26 +382,13 @@ private static async Task UpdateTopLevelDepdendency( TryUpdateDependencyVersion(buildFiles, packageName, previousDependencyVersion: null, newDependencyVersion: packageVersion, logger); } - // now make all dependency requirements coherent + // ...and make them all coherent Dependency[] updatedTopLevelDependencies = MSBuildHelper.GetTopLevelPackageDependencyInfos(buildFiles).ToArray(); foreach (ProjectBuildFile projectFile in buildFiles) { foreach (string tfm in targetFrameworks) { - if (MSBuildHelper.UseNewDependencySolver()) - { - // Find the index of the dependency we are updating and revert it to the previous version - int dependencyIndex = Array.FindIndex(updatedTopLevelDependencies, d => string.Equals(d.Name, dependencyName, StringComparison.OrdinalIgnoreCase)); - if (dependencyIndex != -1) - { - var originalDependency = updatedTopLevelDependencies[dependencyIndex]; - updatedTopLevelDependencies[dependencyIndex] = originalDependency with { Version = previousDependencyVersion }; - } - - } - Dependency[] update = [new Dependency(dependencyName, newDependencyVersion, DependencyType.PackageReference)]; - Dependency[]? resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRootPath, projectFile.Path, tfm, updatedTopLevelDependencies, update, logger); - + var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflictsWithBruteForce(repoRootPath, projectFile.Path, tfm, updatedTopLevelDependencies, logger); if (resolvedDependencies is null) { logger.Log($" Unable to resolve dependency conflicts for {projectFile.Path}."); @@ -360,7 +409,7 @@ private static async Task UpdateTopLevelDepdendency( continue; } - // update all dependencies + // update all versions foreach (Dependency resolvedDependency in resolvedDependencies .Where(d => !d.Name.Equals(dependencyName, StringComparison.OrdinalIgnoreCase)) .Where(d => d.Version is not null)) diff --git a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs index d1998d925c7c..2d65c39aba67 100644 --- a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +++ b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs @@ -341,18 +341,6 @@ internal static bool UseNewDependencySolver() } internal static async Task ResolveDependencyConflicts(string repoRoot, string projectPath, string targetFramework, Dependency[] packages, Dependency[] update, ILogger logger) - { - if (UseNewDependencySolver()) - { - return await ResolveDependencyConflictsNew(repoRoot, projectPath, targetFramework, packages, update, logger); - } - else - { - return await ResolveDependencyConflictsOld(repoRoot, projectPath, targetFramework, packages, logger); - } - } - - internal static async Task ResolveDependencyConflictsNew(string repoRoot, string projectPath, string targetFramework, Dependency[] packages, Dependency[] update, ILogger logger) { var tempDirectory = Directory.CreateTempSubdirectory("package-dependency-coherence_"); PackageManager packageManager = new PackageManager(repoRoot, projectPath); @@ -510,7 +498,7 @@ internal static bool UseNewDependencySolver() } } - internal static async Task ResolveDependencyConflictsOld(string repoRoot, string projectPath, string targetFramework, Dependency[] packages, ILogger logger) + internal static async Task ResolveDependencyConflictsWithBruteForce(string repoRoot, string projectPath, string targetFramework, Dependency[] packages, ILogger logger) { var tempDirectory = Directory.CreateTempSubdirectory("package-dependency-coherence_"); try From 4759dbd012cfcb16a0ae3ebc59894379f1a79027 Mon Sep 17 00:00:00 2001 From: "Brett V. Forsgren" Date: Tue, 15 Oct 2024 16:32:20 -0600 Subject: [PATCH 12/20] use local packages for test --- .../Update/UpdateWorkerTests.Sdk.cs | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs index 1e1a6d057ce6..20bc39ebf51d 100644 --- a/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +++ b/nuget/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs @@ -101,18 +101,22 @@ await TestUpdateForProject("Some.Package", "9.0.1", "13.0.1", public async Task PeerDependenciesAreUpdatedEvenWhenNotExplicit(bool useDependencySolver) { using var _ = new DependencySolverEnvironment(useDependencySolver); - await TestUpdateForProject("AspNetCore.HealthChecks.Rabbitmq", "5.0.2", "7.0.0", + await TestUpdateForProject("Some.Package", "1.0.0", "2.0.0", + packages: + [ + MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net8.0", [(null, [("Transitive.Package", "[1.0.0]")])]), + MockNuGetPackage.CreateSimplePackage("Some.Package", "2.0.0", "net8.0", [(null, [("Transitive.Package", "[2.0.0]")])]), + MockNuGetPackage.CreateSimplePackage("Transitive.Package", "1.0.0", "net8.0"), + MockNuGetPackage.CreateSimplePackage("Transitive.Package", "2.0.0", "net8.0"), + ], projectFile: ("a/a.csproj", """ - Exe - net6.0 - enable - enable + net8.0 true - + """), @@ -121,8 +125,8 @@ await TestUpdateForProject("AspNetCore.HealthChecks.Rabbitmq", "5.0.2", "7.0.0", ("Directory.Packages.props", """ - - + + """) @@ -130,14 +134,11 @@ await TestUpdateForProject("AspNetCore.HealthChecks.Rabbitmq", "5.0.2", "7.0.0", expectedProjectContents: """ - Exe - net6.0 - enable - enable + net8.0 true - + """, @@ -146,8 +147,8 @@ await TestUpdateForProject("AspNetCore.HealthChecks.Rabbitmq", "5.0.2", "7.0.0", ("Directory.Packages.props", """ - - + + """) From d38e33a03bf9124dfd74f3305997d74c44f5fde8 Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Wed, 16 Oct 2024 16:19:16 -0400 Subject: [PATCH 13/20] Check csprojs for adjacent packages.config. + fix csproj fetching for multiple references --- nuget/helpers/lib/NuGet.Client | 2 +- nuget/lib/dependabot/nuget/file_fetcher.rb | 78 +++++-- .../dependabot/nuget/file_fetcher_spec.rb | 84 +++++++ .../Debug/net8.0/some-project.AssemblyInfo.cs | 22 ++ .../some-project.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 ++ .../obj/Debug/net8.0/projecta.AssemblyInfo.cs | 22 ++ .../net8.0/projecta.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 ++ .../src/a/packages.config | 4 + .../src/a/projecta.csproj | 13 ++ .../obj/Debug/net8.0/projectb.AssemblyInfo.cs | 22 ++ .../net8.0/projectb.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 ++ .../src/b/packages.config | 4 + .../src/b/projectb.csproj | 12 + .../obj/Debug/net8.0/projectc.AssemblyInfo.cs | 22 ++ .../net8.0/projectc.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 ++ .../c/obj/Debug/net8.0/projectc.assets.cache | Bin 0 -> 827 bytes .../projectc.csproj.AssemblyReference.cache | Bin 0 -> 411 bytes .../projectc.csproj.CoreCompileInputs.cache | 1 + .../projectc.csproj.FileListAbsolute.txt | 6 + .../obj/Debug/net8.0/projectc.sourcelink.json | 1 + .../src/c/obj/project.assets.json | 118 ++++++++++ .../src/c/obj/project.nuget.cache | 10 + .../c/obj/projectc.csproj.nuget.dgspec.json | 72 ++++++ .../src/c/obj/projectc.csproj.nuget.g.props | 15 ++ .../src/c/obj/projectc.csproj.nuget.g.targets | 2 + .../src/c/packages.config | 4 + .../src/c/projectc.csproj | 9 + .../a/obj/project.assets.json | 204 +++++++++++++++++ .../a/obj/project.nuget.cache | 11 + .../a/obj/projecta.csproj.nuget.dgspec.json | 211 ++++++++++++++++++ .../a/obj/projecta.csproj.nuget.g.props | 15 ++ .../a/obj/projecta.csproj.nuget.g.targets | 2 + .../a/packages.config | 4 + .../a/projecta.csproj | 13 ++ .../b/obj/project.assets.json | 141 ++++++++++++ .../b/obj/project.nuget.cache | 10 + .../b/obj/projectb.csproj.nuget.dgspec.json | 140 ++++++++++++ .../b/obj/projectb.csproj.nuget.g.props | 15 ++ .../b/obj/projectb.csproj.nuget.g.targets | 2 + .../b/packages.config | 4 + .../b/projectb.csproj | 12 + .../c/obj/project.assets.json | 118 ++++++++++ .../c/obj/project.nuget.cache | 10 + .../c/obj/projectc.csproj.nuget.dgspec.json | 72 ++++++ .../c/obj/projectc.csproj.nuget.g.props | 15 ++ .../c/obj/projectc.csproj.nuget.g.targets | 2 + .../c/packages.config | 4 + .../c/projectc.csproj | 9 + .../obj/Debug/net7.0/project.AssemblyInfo.cs | 22 ++ .../net7.0/project.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 ++ 55 files changed, 1607 insertions(+), 22 deletions(-) create mode 100644 nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs create mode 100644 nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache create mode 100644 nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/packages.config create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/projecta.csproj create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/packages.config create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/projectb.csproj create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.assets.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.csproj.AssemblyReference.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.csproj.CoreCompileInputs.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.csproj.FileListAbsolute.txt create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.sourcelink.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.assets.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/packages.config create mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config create mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj create mode 100644 nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs create mode 100644 nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache create mode 100644 nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig diff --git a/nuget/helpers/lib/NuGet.Client b/nuget/helpers/lib/NuGet.Client index 5469bd0d9de8..623fde83a3cd 160000 --- a/nuget/helpers/lib/NuGet.Client +++ b/nuget/helpers/lib/NuGet.Client @@ -1 +1 @@ -Subproject commit 5469bd0d9de8108f15f21644759773b85471366c +Subproject commit 623fde83a3cd73cb479ec7fa03866c6116894dbf diff --git a/nuget/lib/dependabot/nuget/file_fetcher.rb b/nuget/lib/dependabot/nuget/file_fetcher.rb index 331b0a32c04d..2fa7c1168d20 100644 --- a/nuget/lib/dependabot/nuget/file_fetcher.rb +++ b/nuget/lib/dependabot/nuget/file_fetcher.rb @@ -121,15 +121,11 @@ def raise_dependency_file_not_found def packages_config_files return @packages_config_files if @packages_config_files - candidate_paths = - [*project_files.map { |f| File.dirname(f.name) }, "."].uniq + imported_project_files = imported_property_files.filter { |f| f.name.match?(/\.(cs|vb|fs)proj$/) } - @packages_config_files = - candidate_paths.filter_map do |dir| - file = repo_contents(dir: dir) - .find { |f| f.name.casecmp("packages.config").zero? } - fetch_file_from_host(File.join(dir, file.name)) if file - end + @packages_config_files = [*project_files, *imported_project_files].filter_map do |f| + named_file_next_to_project_file(f, "packages.config") + end end sig { returns(T::Array[Dependabot::DependencyFile]) } @@ -312,6 +308,32 @@ def named_file_up_tree_from_project_file(project_file, expected_file_name) found_expected_file end + sig do + params( + project_file: Dependabot::DependencyFile, + expected_file_name: String + ) + .returns(T.nilable(Dependabot::DependencyFile)) + end + def named_file_next_to_project_file(project_file, expected_file_name) + found_expected_file = T.let(nil, T.nilable(Dependabot::DependencyFile)) + directory_path = Pathname.new(directory) + full_project_dir = Pathname.new(project_file.directory).join(project_file.name).dirname + + candidate_file_path = Pathname.new(full_project_dir).join(expected_file_name).cleanpath.to_path + candidate_directory = Pathname.new(File.dirname(candidate_file_path)) + relative_candidate_directory = candidate_directory.relative_path_from(directory_path) + candidate_file = repo_contents(dir: relative_candidate_directory).find do |f| + f.name.casecmp?(expected_file_name) + end + if candidate_file + found_expected_file = fetch_file_from_host(File.join(relative_candidate_directory, + candidate_file.name)) + end + + found_expected_file + end + sig { returns(T.nilable(Dependabot::DependencyFile)) } def global_json @global_json ||= T.let(fetch_file_if_present("global.json"), T.nilable(Dependabot::DependencyFile)) @@ -355,6 +377,7 @@ def imported_property_files end def fetch_imported_property_files(file:, previously_fetched_files:) file_id = file.directory + "/" + file.name + if @fetched_files[file_id] T.must(@fetched_files[file_id]) else @@ -363,23 +386,36 @@ def fetch_imported_property_files(file:, previously_fetched_files:) ImportPathsFinder.new(project_file: file).project_reference_paths + ImportPathsFinder.new(project_file: file).project_file_paths - paths.filter_map do |path| + # Initialize a set to hold fetched files temporarily to avoid duplicates + fetched_files_set = Set.new([file]) + + paths.each do |path| next if previously_fetched_files.map(&:name).include?(path) next if file.name == path next if path.include?("$(") - fetched_file = fetch_file_from_host(path) - grandchild_property_files = fetch_imported_property_files( - file: fetched_file, - previously_fetched_files: previously_fetched_files + [file] - ) - @fetched_files[file_id] = [fetched_file, *grandchild_property_files] - @fetched_files[file_id] - rescue Dependabot::DependencyFileNotFound - # Don't worry about missing files too much for now (at least - # until we start resolving properties) - nil - end.flatten + begin + fetched_file = fetch_file_from_host(path) + grandchild_property_files = fetch_imported_property_files( + file: fetched_file, + previously_fetched_files: previously_fetched_files + [file] + ) + + # Add fetched file and grandchild property files to the set + fetched_files_set << fetched_file + fetched_files_set.merge(grandchild_property_files) + rescue Dependabot::DependencyFileNotFound + # Don't worry about missing files, just skip them for now + nil + end + end + + # Convert the set to an array and cache the fetched files + fetched_files = fetched_files_set.to_a + @fetched_files[file_id] = fetched_files + + # Return the fetched files + fetched_files end end end diff --git a/nuget/spec/dependabot/nuget/file_fetcher_spec.rb b/nuget/spec/dependabot/nuget/file_fetcher_spec.rb index 95c0e0b01890..33ddb3d6f43f 100644 --- a/nuget/spec/dependabot/nuget/file_fetcher_spec.rb +++ b/nuget/spec/dependabot/nuget/file_fetcher_spec.rb @@ -369,6 +369,90 @@ end end + context "when each project has a projects.config" do + let(:directory) { "/src/a/" } + + before do + GitHubHelpers.stub_requests_for_directory( + ->(a, b) { stub_request(a, b) }, + File.join(__dir__, "..", "..", "fixtures", "github", "multiple_packages_config"), + "", + url, + "token token", + "gocardless", + "bump", + "main" + ) + + # these files explicitly don't exist + ["src/a/.config", "src/a/Directory.Packages.props"].each do |file| + stub_request(:get, File.join(url, "#{file}?ref=sha")) + .with(headers: { "Authorization" => "token token" }) + .to_return( + status: 404, + body: "{}", + headers: { "content-type" => "application/json" } + ) + end + end + + it "fetches all relevant files" do + expect(file_fetcher_instance.files.map(&:name)) + .to match_array( + %w( + ../b/projectb.csproj + ../b/packages.config + ../c/projectc.csproj + ../c/packages.config + projecta.csproj + packages.config + ) + ) + end + end + + # context "when each project has a projects.config and has multiple refrences to the same project" do + # let(:directory) { "/src/a/" } + + # before do + # GitHubHelpers.stub_requests_for_directory( + # ->(a, b) { stub_request(a, b) }, + # File.join(__dir__, "..", "..", "fixtures", "github", "multiple_packages_config_multiple_references"), + # "", + # url, + # "token token", + # "gocardless", + # "bump", + # "main" + # ) + + # # these files explicitly don't exist + # ["src/a/.config", "src/a/Directory.Packages.props"].each do |file| + # stub_request(:get, File.join(url, "#{file}?ref=sha")) + # .with(headers: { "Authorization" => "token token" }) + # .to_return( + # status: 404, + # body: "{}", + # headers: { "content-type" => "application/json" } + # ) + # end + # end + + # it "fetches all relevant files" do + # expect(file_fetcher_instance.files.map(&:name)) + # .to match_array( + # %w( + # ../c/projectc.csproj + # ../c/packages.config + # ../b/projectb.csproj + # ../b/packages.config + # projecta.csproj + # packages.config + # ) + # ) + # end + # end + context "with a dirs.proj" do before do GitHubHelpers.stub_requests_for_directory( diff --git a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs new file mode 100644 index 000000000000..545da68f11db --- /dev/null +++ b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("some-project")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] +[assembly: System.Reflection.AssemblyProductAttribute("some-project")] +[assembly: System.Reflection.AssemblyTitleAttribute("some-project")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache new file mode 100644 index 000000000000..e4ece975ef7a --- /dev/null +++ b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +7c5394bfb68c8088b028cbd3269c1cb87481e73b65fbf95f79c18e17f63b6875 diff --git a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 000000000000..2c606040e5d9 --- /dev/null +++ b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = some-project +build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs new file mode 100644 index 000000000000..25a75fa87478 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("projecta")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] +[assembly: System.Reflection.AssemblyProductAttribute("projecta")] +[assembly: System.Reflection.AssemblyTitleAttribute("projecta")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache new file mode 100644 index 000000000000..42b6e351e4d6 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +95948b0aa36070fc14fbce43ccf2409250b533381708ccc4175bb80d4a8907e7 diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 000000000000..57ce989346d0 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = projecta +build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/a/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/packages.config b/nuget/spec/fixtures/github/multiple_packages_config/src/a/packages.config new file mode 100644 index 000000000000..2e095693177e --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/a/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/projecta.csproj b/nuget/spec/fixtures/github/multiple_packages_config/src/a/projecta.csproj new file mode 100644 index 000000000000..d91c218b3b09 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/a/projecta.csproj @@ -0,0 +1,13 @@ + + + Exe + net8.0 + + + + + + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs new file mode 100644 index 000000000000..55b75357b476 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("projectb")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] +[assembly: System.Reflection.AssemblyProductAttribute("projectb")] +[assembly: System.Reflection.AssemblyTitleAttribute("projectb")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache new file mode 100644 index 000000000000..3410ff33238e --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +0668fb16cafe9c51de73e4d4444e5cec3f62633fbf6526c73ef4fd9a75b8f8ae diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 000000000000..5929de294ff6 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = projectb +build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/b/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/packages.config b/nuget/spec/fixtures/github/multiple_packages_config/src/b/packages.config new file mode 100644 index 000000000000..f93889f5529d --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/b/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/projectb.csproj b/nuget/spec/fixtures/github/multiple_packages_config/src/b/projectb.csproj new file mode 100644 index 000000000000..b1e270c92e7f --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/b/projectb.csproj @@ -0,0 +1,12 @@ + + + Exe + net8.0 + + + + + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs new file mode 100644 index 000000000000..b079ba80ffcd --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("projectc")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] +[assembly: System.Reflection.AssemblyProductAttribute("projectc")] +[assembly: System.Reflection.AssemblyTitleAttribute("projectc")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache new file mode 100644 index 000000000000..870772809883 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +f940eb10b6833a4605aae20f1584b27473166f9f4de4a706fe2ce48f100e1db2 diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 000000000000..0c7b7d7fad67 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = projectc +build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.assets.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..9ff7651a28517a67d49655f251d8f19fb50741f4 GIT binary patch literal 827 zcmcIi&n^Q&7%#TARV`X42Z>0WWT$umjYhMfn?}n~GVOk9nVoHRW~H-^$7`vO8i1hlD;9_7U1Q5PiX(atIDg7SnO3%X?8S}R*+!n`)& zAcdsdrJ;*f(i}!uE@Kmk(uzsx1|qHPKZW{&sq>Xj=>@H8MwL3LT_#FZGK0t>rVu%V z>O7B7=}RL!!l19nzwG_oXYpj!C*t1!g9^v2<`I{Usp2sg&@qFUMa&_Jh!P_C=20m) zQ4M5cxMtgpw@^x&5AZa+fKLv0pKnlkY;&Em`1>Uo4)wv*1xmKC{T}l=o@D(h9C;kv z^fqMzGJ7Bbb_TA|3L`KS0~xu%?e)-O&?N-QqPOw7~Q%PUP!EzvJXOwLYBPX);oW#;6k>l^7A z8t575=VT`7=cSeumn7z;Bo?IrMfHOrD)drva=?Z%%x&g32))6<$jHbJm1ATAT80cj zmV*FeJ&<5&05X6y1LFb^sR9w10%Wp*^a1%n!H$LuEFe{k48MDY|C)HoT31!j8Uh{s++kd}bF`XwxE!yBV=XWdKSJAdxPG0QYpBtsRKISE3zJ`Fv^|^<) zC`cW1I}+H;fBc!0?%!lvlf(1dcSuZ;6brf^b= 2.10.0" + ] + }, + "packageFolders": { + "/Users/sebastian/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", + "projectName": "projectc", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache new file mode 100644 index 000000000000..a447ba9d4f24 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache @@ -0,0 +1,10 @@ +{ + "version": 2, + "dgSpecHash": "gw9zO5zwaH0=", + "success": true, + "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", + "expectedPackageFiles": [ + "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json new file mode 100644 index 000000000000..d1bfbf5031e5 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json @@ -0,0 +1,72 @@ +{ + "format": 1, + "restore": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj": {} + }, + "projects": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", + "projectName": "projectc", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props new file mode 100644 index 000000000000..6a788a12bd64 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /Users/sebastian/.nuget/packages/ + /Users/sebastian/.nuget/packages/ + PackageReference + 6.11.0 + + + + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets new file mode 100644 index 000000000000..3dc06ef3cc40 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/packages.config b/nuget/spec/fixtures/github/multiple_packages_config/src/c/packages.config new file mode 100644 index 000000000000..f93889f5529d --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj b/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj new file mode 100644 index 000000000000..6750fe29a9ee --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj @@ -0,0 +1,9 @@ + + + Exe + net8.0 + + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json new file mode 100644 index 000000000000..9ae87e866d5f --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json @@ -0,0 +1,204 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Newtonsoft.Json/13.0.1": { + "type": "package", + "compile": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "Serilog/2.10.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Serilog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Serilog.dll": { + "related": ".xml" + } + } + }, + "projectb/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Serilog": "2.10.0", + "projectc": "1.0.0" + }, + "compile": { + "bin/placeholder/projectb.dll": {} + }, + "runtime": { + "bin/placeholder/projectb.dll": {} + } + }, + "projectc/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Serilog": "2.10.0" + }, + "compile": { + "bin/placeholder/projectc.dll": {} + }, + "runtime": { + "bin/placeholder/projectc.dll": {} + } + } + } + }, + "libraries": { + "Newtonsoft.Json/13.0.1": { + "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "type": "package", + "path": "newtonsoft.json/13.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.1.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "Serilog/2.10.0": { + "sha512": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==", + "type": "package", + "path": "serilog/2.10.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net45/Serilog.dll", + "lib/net45/Serilog.xml", + "lib/net46/Serilog.dll", + "lib/net46/Serilog.xml", + "lib/netstandard1.0/Serilog.dll", + "lib/netstandard1.0/Serilog.xml", + "lib/netstandard1.3/Serilog.dll", + "lib/netstandard1.3/Serilog.xml", + "lib/netstandard2.0/Serilog.dll", + "lib/netstandard2.0/Serilog.xml", + "lib/netstandard2.1/Serilog.dll", + "lib/netstandard2.1/Serilog.xml", + "serilog.2.10.0.nupkg.sha512", + "serilog.nuspec" + ] + }, + "projectb/1.0.0": { + "type": "project", + "path": "../b/projectb.csproj", + "msbuildProject": "../b/projectb.csproj" + }, + "projectc/1.0.0": { + "type": "project", + "path": "../c/projectc.csproj", + "msbuildProject": "../c/projectc.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "Newtonsoft.Json >= 13.0.1", + "projectb >= 1.0.0", + "projectc >= 1.0.0" + ] + }, + "packageFolders": { + "/Users/sebastian/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", + "projectName": "projecta", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj" + }, + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Newtonsoft.Json": { + "target": "Package", + "version": "[13.0.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache new file mode 100644 index 000000000000..eaabdcb08cc1 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache @@ -0,0 +1,11 @@ +{ + "version": 2, + "dgSpecHash": "xRcI654zFXA=", + "success": true, + "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", + "expectedPackageFiles": [ + "/Users/sebastian/.nuget/packages/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg.sha512", + "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json new file mode 100644 index 000000000000..a4d7a117d164 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json @@ -0,0 +1,211 @@ +{ + "format": 1, + "restore": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj": {} + }, + "projects": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", + "projectName": "projecta", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj" + }, + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Newtonsoft.Json": { + "target": "Package", + "version": "[13.0.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + }, + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", + "projectName": "projectb", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + }, + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "projectName": "projectc", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props new file mode 100644 index 000000000000..6a788a12bd64 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /Users/sebastian/.nuget/packages/ + /Users/sebastian/.nuget/packages/ + PackageReference + 6.11.0 + + + + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets new file mode 100644 index 000000000000..3dc06ef3cc40 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config new file mode 100644 index 000000000000..2e095693177e --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj new file mode 100644 index 000000000000..d91c218b3b09 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj @@ -0,0 +1,13 @@ + + + Exe + net8.0 + + + + + + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json new file mode 100644 index 000000000000..f462c31a3e5c --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json @@ -0,0 +1,141 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Serilog/2.10.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Serilog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Serilog.dll": { + "related": ".xml" + } + } + }, + "projectc/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Serilog": "2.10.0" + }, + "compile": { + "bin/placeholder/projectc.dll": {} + }, + "runtime": { + "bin/placeholder/projectc.dll": {} + } + } + } + }, + "libraries": { + "Serilog/2.10.0": { + "sha512": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==", + "type": "package", + "path": "serilog/2.10.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net45/Serilog.dll", + "lib/net45/Serilog.xml", + "lib/net46/Serilog.dll", + "lib/net46/Serilog.xml", + "lib/netstandard1.0/Serilog.dll", + "lib/netstandard1.0/Serilog.xml", + "lib/netstandard1.3/Serilog.dll", + "lib/netstandard1.3/Serilog.xml", + "lib/netstandard2.0/Serilog.dll", + "lib/netstandard2.0/Serilog.xml", + "lib/netstandard2.1/Serilog.dll", + "lib/netstandard2.1/Serilog.xml", + "serilog.2.10.0.nupkg.sha512", + "serilog.nuspec" + ] + }, + "projectc/1.0.0": { + "type": "project", + "path": "../c/projectc.csproj", + "msbuildProject": "../c/projectc.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "Serilog >= 2.10.0", + "projectc >= 1.0.0" + ] + }, + "packageFolders": { + "/Users/sebastian/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", + "projectName": "projectb", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache new file mode 100644 index 000000000000..bd653a35c331 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache @@ -0,0 +1,10 @@ +{ + "version": 2, + "dgSpecHash": "lEWtsdzuSNU=", + "success": true, + "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", + "expectedPackageFiles": [ + "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json new file mode 100644 index 000000000000..be0fb8da5e45 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json @@ -0,0 +1,140 @@ +{ + "format": 1, + "restore": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": {} + }, + "projects": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", + "projectName": "projectb", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + }, + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "projectName": "projectc", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props new file mode 100644 index 000000000000..6a788a12bd64 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /Users/sebastian/.nuget/packages/ + /Users/sebastian/.nuget/packages/ + PackageReference + 6.11.0 + + + + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets new file mode 100644 index 000000000000..3dc06ef3cc40 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config new file mode 100644 index 000000000000..2e095693177e --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj new file mode 100644 index 000000000000..b1e270c92e7f --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj @@ -0,0 +1,12 @@ + + + Exe + net8.0 + + + + + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json new file mode 100644 index 000000000000..b6df801d06b2 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json @@ -0,0 +1,118 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Serilog/2.10.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Serilog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Serilog.dll": { + "related": ".xml" + } + } + } + } + }, + "libraries": { + "Serilog/2.10.0": { + "sha512": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==", + "type": "package", + "path": "serilog/2.10.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net45/Serilog.dll", + "lib/net45/Serilog.xml", + "lib/net46/Serilog.dll", + "lib/net46/Serilog.xml", + "lib/netstandard1.0/Serilog.dll", + "lib/netstandard1.0/Serilog.xml", + "lib/netstandard1.3/Serilog.dll", + "lib/netstandard1.3/Serilog.xml", + "lib/netstandard2.0/Serilog.dll", + "lib/netstandard2.0/Serilog.xml", + "lib/netstandard2.1/Serilog.dll", + "lib/netstandard2.1/Serilog.xml", + "serilog.2.10.0.nupkg.sha512", + "serilog.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "Serilog >= 2.10.0" + ] + }, + "packageFolders": { + "/Users/sebastian/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "projectName": "projectc", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache new file mode 100644 index 000000000000..40f53a138d00 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache @@ -0,0 +1,10 @@ +{ + "version": 2, + "dgSpecHash": "4OKPbLTuJnk=", + "success": true, + "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "expectedPackageFiles": [ + "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json new file mode 100644 index 000000000000..4532660d2419 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json @@ -0,0 +1,72 @@ +{ + "format": 1, + "restore": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": {} + }, + "projects": { + "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "projectName": "projectc", + "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", + "packagesPath": "/Users/sebastian/.nuget/packages/", + "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/Users/sebastian/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Serilog": { + "target": "Package", + "version": "[2.10.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props new file mode 100644 index 000000000000..6a788a12bd64 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /Users/sebastian/.nuget/packages/ + /Users/sebastian/.nuget/packages/ + PackageReference + 6.11.0 + + + + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets new file mode 100644 index 000000000000..3dc06ef3cc40 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config new file mode 100644 index 000000000000..f93889f5529d --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config @@ -0,0 +1,4 @@ + + + + diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj new file mode 100644 index 000000000000..78852e9f71c8 --- /dev/null +++ b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj @@ -0,0 +1,9 @@ + + + Exe + net8.0 + + + + + diff --git a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs new file mode 100644 index 000000000000..b5c3e619e404 --- /dev/null +++ b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("project")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] +[assembly: System.Reflection.AssemblyProductAttribute("project")] +[assembly: System.Reflection.AssemblyTitleAttribute("project")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache new file mode 100644 index 000000000000..5c173033167d --- /dev/null +++ b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +bd690fb61a32cb77378fa6fb173dd0da3c71be652d3534befd52b78fbed5ab1c diff --git a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 000000000000..ba48be40367a --- /dev/null +++ b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net7.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = project +build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/props_file_in_parent_directory/src/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = From eb039e23a2c70d4fa452145bff577194fd8e1b3b Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Wed, 16 Oct 2024 17:04:36 -0400 Subject: [PATCH 14/20] Delete unused test files from initial commit. --- .../a/obj/project.assets.json | 204 ----------------- .../a/obj/project.nuget.cache | 11 - .../a/obj/projecta.csproj.nuget.dgspec.json | 211 ------------------ .../a/obj/projecta.csproj.nuget.g.props | 15 -- .../a/obj/projecta.csproj.nuget.g.targets | 2 - .../a/packages.config | 4 - .../a/projecta.csproj | 13 -- .../b/obj/project.assets.json | 141 ------------ .../b/obj/project.nuget.cache | 10 - .../b/obj/projectb.csproj.nuget.dgspec.json | 140 ------------ .../b/obj/projectb.csproj.nuget.g.props | 15 -- .../b/obj/projectb.csproj.nuget.g.targets | 2 - .../b/packages.config | 4 - .../b/projectb.csproj | 12 - .../c/obj/project.assets.json | 118 ---------- .../c/obj/project.nuget.cache | 10 - .../c/obj/projectc.csproj.nuget.dgspec.json | 72 ------ .../c/obj/projectc.csproj.nuget.g.props | 15 -- .../c/obj/projectc.csproj.nuget.g.targets | 2 - .../c/packages.config | 4 - .../c/projectc.csproj | 9 - 21 files changed, 1014 deletions(-) delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json deleted file mode 100644 index 9ae87e866d5f..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.assets.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "version": 3, - "targets": { - "net8.0": { - "Newtonsoft.Json/13.0.1": { - "type": "package", - "compile": { - "lib/netstandard2.0/Newtonsoft.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Newtonsoft.Json.dll": { - "related": ".xml" - } - } - }, - "Serilog/2.10.0": { - "type": "package", - "compile": { - "lib/netstandard2.1/Serilog.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Serilog.dll": { - "related": ".xml" - } - } - }, - "projectb/1.0.0": { - "type": "project", - "framework": ".NETCoreApp,Version=v8.0", - "dependencies": { - "Serilog": "2.10.0", - "projectc": "1.0.0" - }, - "compile": { - "bin/placeholder/projectb.dll": {} - }, - "runtime": { - "bin/placeholder/projectb.dll": {} - } - }, - "projectc/1.0.0": { - "type": "project", - "framework": ".NETCoreApp,Version=v8.0", - "dependencies": { - "Serilog": "2.10.0" - }, - "compile": { - "bin/placeholder/projectc.dll": {} - }, - "runtime": { - "bin/placeholder/projectc.dll": {} - } - } - } - }, - "libraries": { - "Newtonsoft.Json/13.0.1": { - "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", - "type": "package", - "path": "newtonsoft.json/13.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.md", - "lib/net20/Newtonsoft.Json.dll", - "lib/net20/Newtonsoft.Json.xml", - "lib/net35/Newtonsoft.Json.dll", - "lib/net35/Newtonsoft.Json.xml", - "lib/net40/Newtonsoft.Json.dll", - "lib/net40/Newtonsoft.Json.xml", - "lib/net45/Newtonsoft.Json.dll", - "lib/net45/Newtonsoft.Json.xml", - "lib/netstandard1.0/Newtonsoft.Json.dll", - "lib/netstandard1.0/Newtonsoft.Json.xml", - "lib/netstandard1.3/Newtonsoft.Json.dll", - "lib/netstandard1.3/Newtonsoft.Json.xml", - "lib/netstandard2.0/Newtonsoft.Json.dll", - "lib/netstandard2.0/Newtonsoft.Json.xml", - "newtonsoft.json.13.0.1.nupkg.sha512", - "newtonsoft.json.nuspec", - "packageIcon.png" - ] - }, - "Serilog/2.10.0": { - "sha512": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==", - "type": "package", - "path": "serilog/2.10.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "icon.png", - "lib/net45/Serilog.dll", - "lib/net45/Serilog.xml", - "lib/net46/Serilog.dll", - "lib/net46/Serilog.xml", - "lib/netstandard1.0/Serilog.dll", - "lib/netstandard1.0/Serilog.xml", - "lib/netstandard1.3/Serilog.dll", - "lib/netstandard1.3/Serilog.xml", - "lib/netstandard2.0/Serilog.dll", - "lib/netstandard2.0/Serilog.xml", - "lib/netstandard2.1/Serilog.dll", - "lib/netstandard2.1/Serilog.xml", - "serilog.2.10.0.nupkg.sha512", - "serilog.nuspec" - ] - }, - "projectb/1.0.0": { - "type": "project", - "path": "../b/projectb.csproj", - "msbuildProject": "../b/projectb.csproj" - }, - "projectc/1.0.0": { - "type": "project", - "path": "../c/projectc.csproj", - "msbuildProject": "../c/projectc.csproj" - } - }, - "projectFileDependencyGroups": { - "net8.0": [ - "Newtonsoft.Json >= 13.0.1", - "projectb >= 1.0.0", - "projectc >= 1.0.0" - ] - }, - "packageFolders": { - "/Users/sebastian/.nuget/packages/": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", - "projectName": "projecta", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj" - }, - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" - } - } - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Newtonsoft.Json": { - "target": "Package", - "version": "[13.0.1, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache deleted file mode 100644 index eaabdcb08cc1..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/project.nuget.cache +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "xRcI654zFXA=", - "success": true, - "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", - "expectedPackageFiles": [ - "/Users/sebastian/.nuget/packages/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg.sha512", - "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" - ], - "logs": [] -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json deleted file mode 100644 index a4d7a117d164..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.dgspec.json +++ /dev/null @@ -1,211 +0,0 @@ -{ - "format": 1, - "restore": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj": {} - }, - "projects": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", - "projectName": "projecta", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj" - }, - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" - } - } - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Newtonsoft.Json": { - "target": "Package", - "version": "[13.0.1, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - }, - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", - "projectName": "projectb", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" - } - } - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - }, - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "projectName": "projectc", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props deleted file mode 100644 index 6a788a12bd64..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - /Users/sebastian/.nuget/packages/ - /Users/sebastian/.nuget/packages/ - PackageReference - 6.11.0 - - - - - \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets deleted file mode 100644 index 3dc06ef3cc40..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/obj/projecta.csproj.nuget.g.targets +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config deleted file mode 100644 index 2e095693177e..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj deleted file mode 100644 index d91c218b3b09..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/a/projecta.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - net8.0 - - - - - - - - - diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json deleted file mode 100644 index f462c31a3e5c..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.assets.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "version": 3, - "targets": { - "net8.0": { - "Serilog/2.10.0": { - "type": "package", - "compile": { - "lib/netstandard2.1/Serilog.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Serilog.dll": { - "related": ".xml" - } - } - }, - "projectc/1.0.0": { - "type": "project", - "framework": ".NETCoreApp,Version=v8.0", - "dependencies": { - "Serilog": "2.10.0" - }, - "compile": { - "bin/placeholder/projectc.dll": {} - }, - "runtime": { - "bin/placeholder/projectc.dll": {} - } - } - } - }, - "libraries": { - "Serilog/2.10.0": { - "sha512": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==", - "type": "package", - "path": "serilog/2.10.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "icon.png", - "lib/net45/Serilog.dll", - "lib/net45/Serilog.xml", - "lib/net46/Serilog.dll", - "lib/net46/Serilog.xml", - "lib/netstandard1.0/Serilog.dll", - "lib/netstandard1.0/Serilog.xml", - "lib/netstandard1.3/Serilog.dll", - "lib/netstandard1.3/Serilog.xml", - "lib/netstandard2.0/Serilog.dll", - "lib/netstandard2.0/Serilog.xml", - "lib/netstandard2.1/Serilog.dll", - "lib/netstandard2.1/Serilog.xml", - "serilog.2.10.0.nupkg.sha512", - "serilog.nuspec" - ] - }, - "projectc/1.0.0": { - "type": "project", - "path": "../c/projectc.csproj", - "msbuildProject": "../c/projectc.csproj" - } - }, - "projectFileDependencyGroups": { - "net8.0": [ - "Serilog >= 2.10.0", - "projectc >= 1.0.0" - ] - }, - "packageFolders": { - "/Users/sebastian/.nuget/packages/": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", - "projectName": "projectb", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" - } - } - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache deleted file mode 100644 index bd653a35c331..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/project.nuget.cache +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "lEWtsdzuSNU=", - "success": true, - "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", - "expectedPackageFiles": [ - "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" - ], - "logs": [] -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json deleted file mode 100644 index be0fb8da5e45..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.dgspec.json +++ /dev/null @@ -1,140 +0,0 @@ -{ - "format": 1, - "restore": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": {} - }, - "projects": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", - "projectName": "projectb", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj" - } - } - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - }, - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "projectName": "projectc", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props deleted file mode 100644 index 6a788a12bd64..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - /Users/sebastian/.nuget/packages/ - /Users/sebastian/.nuget/packages/ - PackageReference - 6.11.0 - - - - - \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets deleted file mode 100644 index 3dc06ef3cc40..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/obj/projectb.csproj.nuget.g.targets +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config deleted file mode 100644 index 2e095693177e..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj deleted file mode 100644 index b1e270c92e7f..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/b/projectb.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - Exe - net8.0 - - - - - - - - diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json deleted file mode 100644 index b6df801d06b2..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.assets.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "version": 3, - "targets": { - "net8.0": { - "Serilog/2.10.0": { - "type": "package", - "compile": { - "lib/netstandard2.1/Serilog.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Serilog.dll": { - "related": ".xml" - } - } - } - } - }, - "libraries": { - "Serilog/2.10.0": { - "sha512": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==", - "type": "package", - "path": "serilog/2.10.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "icon.png", - "lib/net45/Serilog.dll", - "lib/net45/Serilog.xml", - "lib/net46/Serilog.dll", - "lib/net46/Serilog.xml", - "lib/netstandard1.0/Serilog.dll", - "lib/netstandard1.0/Serilog.xml", - "lib/netstandard1.3/Serilog.dll", - "lib/netstandard1.3/Serilog.xml", - "lib/netstandard2.0/Serilog.dll", - "lib/netstandard2.0/Serilog.xml", - "lib/netstandard2.1/Serilog.dll", - "lib/netstandard2.1/Serilog.xml", - "serilog.2.10.0.nupkg.sha512", - "serilog.nuspec" - ] - } - }, - "projectFileDependencyGroups": { - "net8.0": [ - "Serilog >= 2.10.0" - ] - }, - "packageFolders": { - "/Users/sebastian/.nuget/packages/": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "projectName": "projectc", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache deleted file mode 100644 index 40f53a138d00..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/project.nuget.cache +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "4OKPbLTuJnk=", - "success": true, - "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "expectedPackageFiles": [ - "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" - ], - "logs": [] -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json deleted file mode 100644 index 4532660d2419..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.dgspec.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "format": 1, - "restore": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": {} - }, - "projects": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "projectName": "projectc", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props deleted file mode 100644 index 6a788a12bd64..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - /Users/sebastian/.nuget/packages/ - /Users/sebastian/.nuget/packages/ - PackageReference - 6.11.0 - - - - - \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets deleted file mode 100644 index 3dc06ef3cc40..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/obj/projectc.csproj.nuget.g.targets +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config deleted file mode 100644 index f93889f5529d..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj b/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj deleted file mode 100644 index 78852e9f71c8..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config_multiple_references/c/projectc.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - Exe - net8.0 - - - - - From 99985a84a7a0324630713c9646cdb1808b3fcf38 Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Wed, 16 Oct 2024 17:05:31 -0400 Subject: [PATCH 15/20] Remove unused test. --- .../dependabot/nuget/file_fetcher_spec.rb | 42 ------------------- 1 file changed, 42 deletions(-) diff --git a/nuget/spec/dependabot/nuget/file_fetcher_spec.rb b/nuget/spec/dependabot/nuget/file_fetcher_spec.rb index 33ddb3d6f43f..324daffbc754 100644 --- a/nuget/spec/dependabot/nuget/file_fetcher_spec.rb +++ b/nuget/spec/dependabot/nuget/file_fetcher_spec.rb @@ -411,48 +411,6 @@ end end - # context "when each project has a projects.config and has multiple refrences to the same project" do - # let(:directory) { "/src/a/" } - - # before do - # GitHubHelpers.stub_requests_for_directory( - # ->(a, b) { stub_request(a, b) }, - # File.join(__dir__, "..", "..", "fixtures", "github", "multiple_packages_config_multiple_references"), - # "", - # url, - # "token token", - # "gocardless", - # "bump", - # "main" - # ) - - # # these files explicitly don't exist - # ["src/a/.config", "src/a/Directory.Packages.props"].each do |file| - # stub_request(:get, File.join(url, "#{file}?ref=sha")) - # .with(headers: { "Authorization" => "token token" }) - # .to_return( - # status: 404, - # body: "{}", - # headers: { "content-type" => "application/json" } - # ) - # end - # end - - # it "fetches all relevant files" do - # expect(file_fetcher_instance.files.map(&:name)) - # .to match_array( - # %w( - # ../c/projectc.csproj - # ../c/packages.config - # ../b/projectb.csproj - # ../b/packages.config - # projecta.csproj - # packages.config - # ) - # ) - # end - # end - context "with a dirs.proj" do before do GitHubHelpers.stub_requests_for_directory( From 2baa809f30a0b71fc7605553b9091485eaefff70 Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Wed, 16 Oct 2024 18:22:15 -0400 Subject: [PATCH 16/20] update git submodules --- nuget/helpers/lib/NuGet.Client | 2 +- .../src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs | 2 +- .../src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache | 2 +- .../src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs | 2 +- .../src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nuget/helpers/lib/NuGet.Client b/nuget/helpers/lib/NuGet.Client index 623fde83a3cd..5469bd0d9de8 160000 --- a/nuget/helpers/lib/NuGet.Client +++ b/nuget/helpers/lib/NuGet.Client @@ -1 +1 @@ -Subproject commit 623fde83a3cd73cb479ec7fa03866c6116894dbf +Subproject commit 5469bd0d9de8108f15f21644759773b85471366c diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs index 25a75fa87478..8a31b281d2e1 100644 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs @@ -13,7 +13,7 @@ [assembly: System.Reflection.AssemblyCompanyAttribute("projecta")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2ceeee663dddd6ba50fdc3b82004931fed0393fd")] [assembly: System.Reflection.AssemblyProductAttribute("projecta")] [assembly: System.Reflection.AssemblyTitleAttribute("projecta")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache index 42b6e351e4d6..183cbebcd9ed 100644 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache @@ -1 +1 @@ -95948b0aa36070fc14fbce43ccf2409250b533381708ccc4175bb80d4a8907e7 +876409fd0276c786b7666d574dea0fbe249d617970270e2699b7d4162cd0103c diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs index 55b75357b476..e8fd6aa96b05 100644 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs @@ -13,7 +13,7 @@ [assembly: System.Reflection.AssemblyCompanyAttribute("projectb")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2ceeee663dddd6ba50fdc3b82004931fed0393fd")] [assembly: System.Reflection.AssemblyProductAttribute("projectb")] [assembly: System.Reflection.AssemblyTitleAttribute("projectb")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache index 3410ff33238e..87f776d50e30 100644 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache +++ b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache @@ -1 +1 @@ -0668fb16cafe9c51de73e4d4444e5cec3f62633fbf6526c73ef4fd9a75b8f8ae +1f33a09a24a5c791a57f67d79deba97409b933557d172c80ff156361a4f9bbe5 From 937c4aa727d625ba42e71f9a2bd46a1b6580c427 Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Thu, 17 Oct 2024 09:30:33 -0400 Subject: [PATCH 17/20] Add /bin and /obj to .gitignore --- nuget/.gitignore | 2 + .../obj/Debug/net8.0/projecta.AssemblyInfo.cs | 22 ---- .../net8.0/projecta.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 13 -- .../obj/Debug/net8.0/projectb.AssemblyInfo.cs | 22 ---- .../net8.0/projectb.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 13 -- .../obj/Debug/net8.0/projectc.AssemblyInfo.cs | 22 ---- .../net8.0/projectc.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 13 -- .../c/obj/Debug/net8.0/projectc.assets.cache | Bin 827 -> 0 bytes .../projectc.csproj.AssemblyReference.cache | Bin 411 -> 0 bytes .../projectc.csproj.CoreCompileInputs.cache | 1 - .../projectc.csproj.FileListAbsolute.txt | 6 - .../obj/Debug/net8.0/projectc.sourcelink.json | 1 - .../src/c/obj/project.assets.json | 118 ------------------ .../src/c/obj/project.nuget.cache | 10 -- .../c/obj/projectc.csproj.nuget.dgspec.json | 72 ----------- .../src/c/obj/projectc.csproj.nuget.g.props | 15 --- .../src/c/obj/projectc.csproj.nuget.g.targets | 2 - 20 files changed, 2 insertions(+), 333 deletions(-) delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.assets.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.csproj.AssemblyReference.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.csproj.CoreCompileInputs.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.csproj.FileListAbsolute.txt delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.sourcelink.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.assets.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props delete mode 100644 nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets diff --git a/nuget/.gitignore b/nuget/.gitignore index 072483d1e79f..e7256be2e6aa 100644 --- a/nuget/.gitignore +++ b/nuget/.gitignore @@ -4,3 +4,5 @@ /tmp /dependabot-*.gem Properties/ +bin/ +obj/ diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs deleted file mode 100644 index 8a31b281d2e1..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("projecta")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2ceeee663dddd6ba50fdc3b82004931fed0393fd")] -[assembly: System.Reflection.AssemblyProductAttribute("projecta")] -[assembly: System.Reflection.AssemblyTitleAttribute("projecta")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache deleted file mode 100644 index 183cbebcd9ed..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -876409fd0276c786b7666d574dea0fbe249d617970270e2699b7d4162cd0103c diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 57ce989346d0..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/a/obj/Debug/net8.0/projecta.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -is_global = true -build_property.TargetFramework = net8.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = projecta -build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/a/ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs deleted file mode 100644 index e8fd6aa96b05..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("projectb")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2ceeee663dddd6ba50fdc3b82004931fed0393fd")] -[assembly: System.Reflection.AssemblyProductAttribute("projectb")] -[assembly: System.Reflection.AssemblyTitleAttribute("projectb")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache deleted file mode 100644 index 87f776d50e30..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -1f33a09a24a5c791a57f67d79deba97409b933557d172c80ff156361a4f9bbe5 diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 5929de294ff6..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/b/obj/Debug/net8.0/projectb.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -is_global = true -build_property.TargetFramework = net8.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = projectb -build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/b/ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs deleted file mode 100644 index b079ba80ffcd..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("projectc")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] -[assembly: System.Reflection.AssemblyProductAttribute("projectc")] -[assembly: System.Reflection.AssemblyTitleAttribute("projectc")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache deleted file mode 100644 index 870772809883..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -f940eb10b6833a4605aae20f1584b27473166f9f4de4a706fe2ce48f100e1db2 diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 0c7b7d7fad67..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -is_global = true -build_property.TargetFramework = net8.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = projectc -build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.assets.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/Debug/net8.0/projectc.assets.cache deleted file mode 100644 index 9ff7651a28517a67d49655f251d8f19fb50741f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmcIi&n^Q&7%#TARV`X42Z>0WWT$umjYhMfn?}n~GVOk9nVoHRW~H-^$7`vO8i1hlD;9_7U1Q5PiX(atIDg7SnO3%X?8S}R*+!n`)& zAcdsdrJ;*f(i}!uE@Kmk(uzsx1|qHPKZW{&sq>Xj=>@H8MwL3LT_#FZGK0t>rVu%V z>O7B7=}RL!!l19nzwG_oXYpj!C*t1!g9^v2<`I{Usp2sg&@qFUMa&_Jh!P_C=20m) zQ4M5cxMtgpw@^x&5AZa+fKLv0pKnlkY;&Em`1>Uo4)wv*1xmKC{T}l=o@D(h9C;kv z^fqMzGJ7Bbb_TA|3L`KS0~xu%?e)-O&?N-QqPOw7~Q%PUP!EzvJXOwLYBPX);oW#;6k>l^7A z8t575=VT`7=cSeumn7z;Bo?IrMfHOrD)drva=?Z%%x&g32))6<$jHbJm1ATAT80cj zmV*FeJ&<5&05X6y1LFb^sR9w10%Wp*^a1%n!H$LuEFe{k48MDY|C)HoT31!j8Uh{s++kd}bF`XwxE!yBV=XWdKSJAdxPG0QYpBtsRKISE3zJ`Fv^|^<) zC`cW1I}+H;fBc!0?%!lvlf(1dcSuZ;6brf^b= 2.10.0" - ] - }, - "packageFolders": { - "/Users/sebastian/.nuget/packages/": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", - "projectName": "projectc", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache deleted file mode 100644 index a447ba9d4f24..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/project.nuget.cache +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "gw9zO5zwaH0=", - "success": true, - "projectFilePath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", - "expectedPackageFiles": [ - "/Users/sebastian/.nuget/packages/serilog/2.10.0/serilog.2.10.0.nupkg.sha512" - ], - "logs": [] -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json deleted file mode 100644 index d1bfbf5031e5..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.dgspec.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "format": 1, - "restore": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj": {} - }, - "projects": { - "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", - "projectName": "projectc", - "projectPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/projectc.csproj", - "packagesPath": "/Users/sebastian/.nuget/packages/", - "outputPath": "/Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/Users/sebastian/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Serilog": { - "target": "Package", - "version": "[2.10.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.400/PortableRuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props deleted file mode 100644 index 6a788a12bd64..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - /Users/sebastian/.nuget/packages/ - /Users/sebastian/.nuget/packages/ - PackageReference - 6.11.0 - - - - - \ No newline at end of file diff --git a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets b/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets deleted file mode 100644 index 3dc06ef3cc40..000000000000 --- a/nuget/spec/fixtures/github/multiple_packages_config/src/c/obj/projectc.csproj.nuget.g.targets +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file From c3a72809c005e4ae569e2eff053c7f9b36fdb564 Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Thu, 17 Oct 2024 09:35:01 -0400 Subject: [PATCH 18/20] Remove unwanted generated files. --- .../obj/Debug/net7.0/project.AssemblyInfo.cs | 22 ------------------- .../net7.0/project.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 13 ----------- 3 files changed, 36 deletions(-) delete mode 100644 nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs delete mode 100644 nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache delete mode 100644 nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig diff --git a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs deleted file mode 100644 index b5c3e619e404..000000000000 --- a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("project")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] -[assembly: System.Reflection.AssemblyProductAttribute("project")] -[assembly: System.Reflection.AssemblyTitleAttribute("project")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache deleted file mode 100644 index 5c173033167d..000000000000 --- a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -bd690fb61a32cb77378fa6fb173dd0da3c71be652d3534befd52b78fbed5ab1c diff --git a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index ba48be40367a..000000000000 --- a/nuget/spec/fixtures/github/props_file_in_parent_directory/src/obj/Debug/net7.0/project.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -is_global = true -build_property.TargetFramework = net7.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = project -build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/props_file_in_parent_directory/src/ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = From 8b1b78ef3df5aa2e1cb540213d6dcd8d7f31c68f Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Thu, 17 Oct 2024 12:19:18 -0400 Subject: [PATCH 19/20] Remove unwanted files. --- .../Debug/net8.0/some-project.AssemblyInfo.cs | 22 ------------------- .../some-project.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 13 ----------- 3 files changed, 36 deletions(-) delete mode 100644 nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs delete mode 100644 nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache delete mode 100644 nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig diff --git a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs deleted file mode 100644 index 545da68f11db..000000000000 --- a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("some-project")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6cf42a1a8e048f8caba5ed8a0ab1c34013415282")] -[assembly: System.Reflection.AssemblyProductAttribute("some-project")] -[assembly: System.Reflection.AssemblyTitleAttribute("some-project")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache deleted file mode 100644 index e4ece975ef7a..000000000000 --- a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -7c5394bfb68c8088b028cbd3269c1cb87481e73b65fbf95f79c18e17f63b6875 diff --git a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig b/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 2c606040e5d9..000000000000 --- a/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/obj/Debug/net8.0/some-project.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -is_global = true -build_property.TargetFramework = net8.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = some-project -build_property.ProjectDir = /Users/sebastian/Desktop/repos/dependabot-core/nuget/spec/fixtures/github/csproj_in_subdirectory/src/some-project/ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = From db6a80199fd1c218216e363efc93d0cdca57078b Mon Sep 17 00:00:00 2001 From: Sebastian Gomez Date: Thu, 17 Oct 2024 13:52:39 -0400 Subject: [PATCH 20/20] Log when file isn't found. --- nuget/lib/dependabot/nuget/file_fetcher.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/nuget/lib/dependabot/nuget/file_fetcher.rb b/nuget/lib/dependabot/nuget/file_fetcher.rb index 2fa7c1168d20..aeb0c617490d 100644 --- a/nuget/lib/dependabot/nuget/file_fetcher.rb +++ b/nuget/lib/dependabot/nuget/file_fetcher.rb @@ -406,6 +406,7 @@ def fetch_imported_property_files(file:, previously_fetched_files:) fetched_files_set.merge(grandchild_property_files) rescue Dependabot::DependencyFileNotFound # Don't worry about missing files, just skip them for now + Dependabot.logger.info("unable to find expected file #{file.name}") nil end end