Issue 1:
I just accepted a pull required for the Hwloc package to make it compatible with Julia 0.6. I now want to tag a new minor release, so that people can depend on this change. Unfortunately, I see error messages when trying to publish this tag. I tried this both from a 0.6 and 0.5 Julia release.

I did this:

Pkg.update()
using PkgDev
PkgDev.tag("Hwloc", :minor)
PkgDev.publish()

The last step -- Pkg.publish() -- fails (see below). The first step -- Pkg.update() -- probably reported some warning or errors at some point. It often does this, since I have some experimental packages. When I run Pkg.update() or Pkg.status() now, there are no errors or warnings reported.

This is the error I see (with Julia 0.5):

julia> PkgDev.publish()
INFO: Validating METADATA
ERROR: packages with unsatisfiable requirements found:
EEG v0.0.3 – no valid versions exist for package ImageFiltering

in check_metadata(::Set{String}) at /Users/eschnett/.julia/v0.5/PkgDev/src/entry.jl:301
in (::PkgDev.Entry.##4#9{String,Dict{String,Array{String,1}},String})(::Base.LibGit2.GitRepo) at /Users/eschnett/.julia/v0.5/PkgDev/src/entry.jl:93
in with(::PkgDev.Entry.##4#9{String,Dict{String,Array{String,1}},String}, ::Base.LibGit2.GitRepo) at ./libgit2/types.jl:701
in publish(::String, ::String) at /Users/eschnett/.julia/v0.5/PkgDev/src/entry.jl:64
in publish() at /Users/eschnett/.julia/v0.5/PkgDev/src/PkgDev.jl:70

I have several suggestions here.

I just want to publish a new tag. This should not require me to debug my full package layout. It's easy to get stuck in the woods with packages, in particular if you develop packages yourself or look at the head of other packages. It's at the same time very difficult to work around this since Julia packages are installed globally, i.e. I can't simply install a new, separate version of Julia where I would only check out, tag, and publish Hwloc. (These guys http://haskellstack.org solved the same problem for Haskell.)

The error message is a mouthful. The package manager should be mature enough to give a clear error message and not dump a full stack trace from libgit2 onto me; I don't care how PkgDev communicates with git servers.

Both Pkg.status() or Pkg.update() should complain as well. Since they don't it's difficult to debug this.

When I re-tried a few days later, Pkg.update() got stuck even worse since there were other upstream changes to METADATA in the mean time, and Julia told me to "resolve things manually". I did (git checkout -- . to overwrite all local uncommitted changes that shouldn't have been there in the first place, and then a git pull --rebase). Unfortunately, this just brought me back to the original problem.

There are no instructions for working around this. I would be happy to issue some manual git commands if Julia is getting too confused -- a pointer to instructions would be much appreciated. This page https://docs.julialang.org/en/stable/manual/packages/#package-development is already quite details; I think it should also list the errors people can receive, and how to resolve or work around them. In this case, pointing to instructions for manually cloning, pushing, and creating a pull request would be good. I think these instructions would be similar to those for package development proper, including creating a branch after the fact.

Issue 2:
Ref JuliaLang/METADATA.jl#8838