Skip to content

Commit

Permalink
fix up on package with no manifest (#257)
Browse files Browse the repository at this point in the history
* fix up on package with no manifest

* add debug stuff

* wut

* sigh

* fixups
  • Loading branch information
KristofferC committed Apr 26, 2018
1 parent 026bd86 commit 2620370
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 9 deletions.
22 changes: 13 additions & 9 deletions stdlib/Pkg3/src/Operations.jl
Original file line number Diff line number Diff line change
Expand Up @@ -961,20 +961,24 @@ function up(ctx::Context, pkgs::Vector{PackageSpec})
pkg.version isa UpgradeLevel || continue
level = pkg.version
info = manifest_info(ctx.env, pkg.uuid)
if haskey(info, "repo-url")
if info !== nothing && haskey(info, "repo-url")
pkg.repo = Types.GitRepo(info["repo-url"], info["repo-rev"])
new = handle_repos_add!(ctx, [pkg]; upgrade_or_add = (level == UPLEVEL_MAJOR))
append!(new_git, new)
else
ver = VersionNumber(info["version"])
if level == UPLEVEL_FIXED
pkg.version = VersionNumber(info["version"])
if info !== nothing
ver = VersionNumber(info["version"])
if level == UPLEVEL_FIXED
pkg.version = VersionNumber(info["version"])
else
r = level == UPLEVEL_PATCH ? VersionRange(ver.major, ver.minor) :
level == UPLEVEL_MINOR ? VersionRange(ver.major) :
level == UPLEVEL_MAJOR ? VersionRange() :
error("unexpected upgrade level: $level")
pkg.version = VersionSpec(r)
end
else
r = level == UPLEVEL_PATCH ? VersionRange(ver.major, ver.minor) :
level == UPLEVEL_MINOR ? VersionRange(ver.major) :
level == UPLEVEL_MAJOR ? VersionRange() :
error("unexpected upgrade level: $level")
pkg.version = VersionSpec(r)
pkg.version = VersionSpec()
end
end
end
Expand Down
15 changes: 15 additions & 0 deletions stdlib/Pkg3/test/pkg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,21 @@ temp_pkg_dir() do project_path
end
end
end

@testset "up in Project without manifest" begin
mktempdir() do dir
cp(joinpath(@__DIR__, "test_packages", "UnregisteredWithProject"), joinpath(dir, "UnregisteredWithProject"))
cd(joinpath(dir, "UnregisteredWithProject")) do
try
pushfirst!(LOAD_PATH, Base.parse_load_path("@"))
Pkg3.up()
@test haskey(Pkg3.installed(), "Example")
finally
popfirst!(LOAD_PATH)
end
end
end
end
end

temp_pkg_dir() do project_path
Expand Down

0 comments on commit 2620370

Please sign in to comment.