Skip to content

Commit 6ded1e9

Browse files
committed
Fix: outdated command may solve pre-releases
1 parent 40358cc commit 6ded1e9

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/commands/outdated.cr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module Shards
1313

1414
Shards.logger.info { "Resolving dependencies" }
1515

16-
solver = Solver.new(spec)
16+
solver = Solver.new(spec, @prereleases)
1717
solver.prepare(development: !Shards.production?)
1818

1919
if packages = solver.solve

src/solver.cr

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module Shards
88
setter locks : Array(Dependency)?
99
@solution : Array(Package)?
1010

11-
def initialize(@spec : Spec)
11+
def initialize(@spec : Spec, @prereleases = false)
1212
@graph = Graph.new
1313
@sat = SAT.new
1414
@solution = nil
@@ -46,16 +46,18 @@ module Shards
4646
# pre-releases are opt-in, so we must check that the solution didn't
4747
# select one unless at least one requirement in the selected graph asked
4848
# for it:
49-
packages.each do |package|
50-
next unless Versions.prerelease?(package.version)
49+
unless @prereleases
50+
packages.each do |package|
51+
next unless Versions.prerelease?(package.version)
5152

52-
if dependency = @spec.dependencies.find { |d| d.name == package.name }
53-
break if Versions.prerelease?(dependency.version)
54-
end
53+
if dependency = @spec.dependencies.find { |d| d.name == package.name }
54+
break if Versions.prerelease?(dependency.version)
55+
end
5556

56-
return unless packages.any? do |pkg|
57-
if dependency = pkg.spec.dependencies.find { |d| d.name == package.name }
58-
Versions.prerelease?(dependency.version)
57+
return unless packages.any? do |pkg|
58+
if dependency = pkg.spec.dependencies.find { |d| d.name == package.name }
59+
Versions.prerelease?(dependency.version)
60+
end
5961
end
6062
end
6163
end

0 commit comments

Comments
 (0)