How to update PR to METADATA.jl?




  1. Tag a new version of a package and run PkgDev.publish() to create a PR to METADATA.jl.
  2. Collect comments and do changes to your package.
  3. Add a new commit to your package.
  4. Update PR.

Steps 1 to 3 are clear, but what is the supposed way to perform step 4? So far the best approach I came with is to:

  1. Run PkgDev.tag("MyPackage", v"<same-version>"; force=true) to replace the tag locally.
  2. Run git push -f origin v<same-version> to push updated tag to GitHub.
  3. Run PkgDev.publish() to create a new PR with renewed tag.

But I suspect posting a new PR each time I have changes is time-consuming for maintainers.

An alternative way is to:

  1. Go to PR’s page on GitHub.
  2. Manually modify sha1 file to include new git hash.

But this creates a new commit each time an edit is done.

So what is the intended way to update an existing PR?


I used the Attobot:

I really felt it was easy to use.


If you look at the PR, it will tell you which branch of your METADATA fork the PR is for. Check out that branch and make the edits.


Looks promising! I’ll definitely give it a try for my next package!


Maybe you have an example of how to checkout & push back the branch of that PR? In particular, I’m having a hard time fixing this PR and here’s what I have tried so far (from METADATA.jl directory):

git fetch origin  
git fetch dfdx

git checkout pull-request/2daecf74
# error: pathspec 'pull-request/2daecf74' did not match any file(s) known to git.

git checkout dfdx/pull-request/2daecf74
# error: pathspec 'dfdx/pull-request/2daecf74' did not match any file(s) known to git.

git checkout remotes/dfdx/pull-request/2daecf74
# error: pathspec 'remotes/dfdx/pull-request/2daecf74' did not match any file(s) known to git.

git checkout origin/pull-request/2daecf74
# HEAD is now at 6ba76c45c... Update sha1
<do edits>
git push origin/pull-request/2daecf74
# fatal: You are not currently on a branch.
# To push the history leading to the current (detached HEAD)
# state now, use

     git push origin/pull-request/2daecf74 HEAD:<name-of-remote-branch>


This is why I use GitKraken. You set it up with your remotes and it will be visually way to find the branch.