How to update PR to METADATA.jl?

question
package

#1

Scenario:

  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?


#2

I used the Attobot:

I really felt it was easy to use.


#3

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.


#4

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


#5

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>

#6

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


#7

Updated instructions for Julia 1.0/Pkg3 if you used Attobot (the Pkg3 bot to assist with PRs):


#8

Hi Alec, thanks for sending this out. Can we now merge Pkg3 ready packages (e.g. through Attobot)? Until a few weeks ago the JuliaCIBot would fail and it was suggested not to include Project.toml files.


#9

I’m definitely not well versed on the whole process - I had tried to submit a PR for a new package and got pointed in a different direction than what the earlier history of this thread suggested. I wanted to share an updated tip.

That all being said, I think it;s fine to merge Pkg3 ready packages. One of the maintainers suggested I remove the Project.toml file as it was making CI fail as well, though.


#10

Thanks, i’ll ask a broader question on Discourse in a few days.