Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test Ruby 3.3, log unknown config types, dependency updates #6

Merged
merged 3 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/lint_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ jobs:
- "3.0"
- "3.1"
- "3.2"
- "3.3"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down
21 changes: 12 additions & 9 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
danger-spm_version_updates (0.2.0)
danger-spm_version_updates (0.2.1)
danger-plugin-api (~> 1.0)
semantic (~> 1.6)
xcodeproj (~> 1.24)
Expand Down Expand Up @@ -101,7 +101,7 @@ GEM
guard-rubocop (1.5.0)
guard (~> 2.0)
rubocop (< 2.0)
json (2.7.1)
json (2.7.2)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
Expand Down Expand Up @@ -137,7 +137,7 @@ GEM
public_suffix (5.0.4)
racc (1.7.3)
rainbow (3.1.1)
rake (13.1.0)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
Expand All @@ -162,7 +162,7 @@ GEM
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.1)
rubocop (1.62.1)
rubocop (1.63.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
Expand All @@ -179,15 +179,18 @@ GEM
rubocop (~> 1.41)
rubocop-factory_bot (2.25.1)
rubocop (~> 1.41)
rubocop-performance (1.20.2)
rubocop-performance (1.21.0)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.30.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rake (0.6.0)
rubocop (~> 1.0)
rubocop-rspec (2.27.1)
rubocop-rspec (2.29.1)
rubocop (~> 1.40)
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
rubocop-rspec_rails (~> 2.28)
rubocop-rspec_rails (2.28.2)
rubocop (~> 1.40)
ruby-progressbar (1.13.0)
sawyer (0.9.2)
addressable (>= 2.3.5)
Expand Down Expand Up @@ -231,10 +234,10 @@ DEPENDENCIES
guard-rubocop (~> 1.2)
listen (= 3.0.7)
pry
rake (~> 13.0)
rake (~> 13.2)
reek
rspec (~> 3.9)
rubocop (~> 1.62)
rubocop (~> 1.63)
rubocop-performance
rubocop-rake
rubocop-rspec
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2023 Harold Martin <harold.martin@gmail.com>
Copyright (c) 2023-2024 Harold Martin <harold.martin@gmail.com>

MIT License

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ spm_version_updates.ignore_repos = ["https://github.com/pointfreeco/swift-snapsh

Swift and the Swift logo are trademarks of Apple Inc.

Copyright (c) 2023 Harold Martin
Copyright (c) 2023-2024 Harold Martin

MIT License

Expand Down
4 changes: 2 additions & 2 deletions danger-spm_version_updates.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Gem::Specification.new do |spec|

# General ruby development
spec.add_development_dependency("bundler", "~> 2.0")
spec.add_development_dependency("rake", "~> 13.0")
spec.add_development_dependency("rake", "~> 13.2")

# Testing support
spec.add_development_dependency("rspec", "~> 3.9")
Expand All @@ -35,7 +35,7 @@ Gem::Specification.new do |spec|

# Linting code and docs
spec.add_development_dependency("reek")
spec.add_development_dependency("rubocop", "~> 1.62")
spec.add_development_dependency("rubocop", "~> 1.63")
spec.add_development_dependency("rubocop-performance")
spec.add_development_dependency("rubocop-rake")
spec.add_development_dependency("rubocop-rspec")
Expand Down
2 changes: 1 addition & 1 deletion lib/spm_version_updates/gem_version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module SpmVersionUpdates
VERSION = "0.2.0"
VERSION = "0.2.1"
end
2 changes: 2 additions & 0 deletions lib/spm_version_updates/plugin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ def check_for_updates(xcodeproj_path)
warn_for_new_versions(:minor, available_versions, name, resolved_version)
elsif kind == "versionRange"
warn_for_new_versions_range(available_versions, name, requirement, resolved_version)
else
$stderr.puts("Not processing dependency rule '#{kind}' for #{name} (#{repository_url})")
end
}
end
Expand Down
8 changes: 4 additions & 4 deletions lib/spm_version_updates/xcode.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ def self.get_packages(xcodeproj_path)
raise(XcodeprojPathMustBeSet) if xcodeproj_path.nil? || xcodeproj_path.empty?

project = Xcodeproj::Project.open(xcodeproj_path)
project.objects.select { |obj|
obj.kind_of?(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference) &&
obj.requirement["kind"] != "commit"
}
project.objects
.select { |obj|
obj.kind_of?(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference)
}
.to_h { |package|
[Git.trim_repo_url(package.repositoryURL), package.requirement]
}
Expand Down
6 changes: 6 additions & 0 deletions spec/spm_version_updates_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,12 @@ module Danger
)
end

it "Does not report when pinned to commit" do
@my_plugin.check_for_updates("#{File.dirname(__FILE__)}/support/fixtures/Commit.xcodeproj")

expect(@dangerfile.status_report[:warnings]).to eq([])
end

it "Does not crash or warn when resolved version is missing from xcodeproj" do
@my_plugin.check_for_updates("#{File.dirname(__FILE__)}/support/fixtures/NoResolvedVersion.xcodeproj")

Expand Down
80 changes: 80 additions & 0 deletions spec/support/fixtures/Commit.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objects = {
/* Begin PBXGroup section */
F1465EF423AA94BF0055F7C3 = {
isa = PBXGroup;
children = (
F1465EFF23AA94BF0055F7C3 /* Demo */,
);
sourceTree = "<group>";
};
F1465EFF23AA94BF0055F7C3 /* Demo */ = {
isa = PBXGroup;
children = ();
path = Demo;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXProject section */
F1465EF523AA94BF0055F7C3 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
LastSwiftUpdateCheck = 1420;
LastUpgradeCheck = 1420;
TargetAttributes = {
F1465EFC23AA94BF0055F7C3 = {
CreatedOnToolsVersion = 11.2.1;
};
};
};
buildConfigurationList = F1465EF823AA94BF0055F7C3 /* Build configuration list for PBXProject "Demo" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
es,
"zh-Hans",
fr,
);
mainGroup = F1465EF423AA94BF0055F7C3;
packageReferences = (
11BBD37629C1571400F7A968 /* XCRemoteSwiftPackageReference "Nuke" */,
);
productRefGroup = F1465EFE23AA94BF0055F7C3 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = ();
};
/* End PBXProject section */

/* Begin XCConfigurationList section */
F1465EF823AA94BF0055F7C3 /* Build configuration list for PBXNativeTarget "Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = ();
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
11BBD37629C1571400F7A968 /* XCRemoteSwiftPackageReference "Nuke" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/kean/Nuke";
requirement = {
kind = revision;
revision = 3f666f120b63ea7de57d42e9a7c9b47f8e7a290b;
};
};
/* End XCRemoteSwiftPackageReference section */
};
rootObject = F1465EF523AA94BF0055F7C3 /* Project object */;
}
Loading