Skip to content

Commit f4b087a

Browse files
committed
Fix: GitResolver must report all available versions
GitResolver#available_versions must no longer filter versions based on the Git refs on the nitial dependency that created it. It must always report all versions, which are filtered later by the solver.
1 parent 588261b commit f4b087a

File tree

2 files changed

+2
-12
lines changed

2 files changed

+2
-12
lines changed

src/resolvers/git.cr

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,7 @@ module Shards
6464
def available_versions
6565
update_local_cache
6666

67-
versions = if refs = dependency.refs
68-
[version_at(refs)].compact
69-
else
70-
versions_from_tags
71-
end
67+
versions = versions_from_tags
7268

7369
if versions.any?
7470
Shards.logger.debug { "versions: #{versions.reverse.join(", ")}" }
@@ -103,7 +99,7 @@ module Shards
10399

104100
def install(version = nil)
105101
update_local_cache
106-
refs = version && git_refs(version) || dependency.refs || "HEAD"
102+
refs = version && git_refs(version) || "HEAD"
107103

108104
cleanup_install_directory
109105
Dir.mkdir_p(install_path)

test/git_resolver_test.cr

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@ module Shards
1616
def test_available_versions
1717
assert_equal ["HEAD"], resolver("empty").available_versions
1818
assert_equal ["0.0.1", "0.1.0", "0.1.1", "0.1.2", "0.2.0"], resolver("library").available_versions
19-
20-
refs = git_commits("library")
21-
assert_equal ["0.0.1"], resolver("library", {"commit" => refs.last}).available_versions
22-
assert_equal ["0.2.0"], resolver("library", {"commit" => refs.first}).available_versions
23-
assert_equal ["0.1.2"], resolver("library", {"tag" => "v0.1.2"}).available_versions
24-
assert_equal ["0.2.0"], resolver("library", {"branch" => "master"}).available_versions
2519
end
2620

2721
def test_read_spec

0 commit comments

Comments
 (0)