How to submit a contribution for Root updates to documentation

Hello,
I am trying to figure out how to contribute to this issue: Updates to RooFit tutorials necessary before the next release · Issue #8808 · root-project/root · GitHub, but I am completely new to Github and have no idea how to submit a pull request. I tried once and Eguiraud said I did it wrong. I was wondering if someone had an easy step-by-step way to do it? I tried looking at this link: Creating a Pull Request - ROOT
but I can’t figure out how to create a new branch.
Sorry if this comes across as trivial, any help/guidance is appreciated.

Yes that page is the one to follow to create a PR in ROOT. Just follow the steps described in the paragraph Making your Change. The fist command create the branch.

1 Like

Hello, thanks. I am still running into problems. I have done the following:

git clone https://github.com/edfink234/root.git
cp  rf204_extrangefit.cxx root/
cd root
git checkout -b RootUpdates8808
git add rf204_extrangefit.cxx
git commit -m "Updates to RooFit tutorials necessary before the next release #8808"
git push --set-upstream origin RootUpdates8808

After entering my username and password, I get this message:

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/edfink234/root.git/'

So I then created a personal access token and checked all permissions, then I did

git remote set-url origin https://toke @github.com/edfink234/RootUpdates8808

Then I did

git push --set-upstream origin RootUpdates8808

and then I got the error

remote: Repository not found.
fatal: repository 'https://github.com/edfink234/RootUpdates8808/' not found

Any suggestions?

should it be:

cp rf204_extrangefit.cxx root/roofit/roofitcore/test/

?

1 Like

Hi @Edward_Finkelstein ,
the errors are more related to git and GitHub than ROOT per se – you will find many good resources around the web about submitting pull requests.

As the first error message says, GitHub removed support for password authentication, and the blog post they link to has links that explain what to use instead and how to set it up (SSH authentication is probably the simplest to set up if you already use SSH).

You can create your test repository on GitHub and try things out with it, e.g. you can try opening a PR and merge changes into your own test repo to practice the workflow, it’s anyway good to learn because it’s how most open source software gets developed these days.

Cheers,
Enrico

1 Like

I can see you’ve included your Github Personal Token in the post above, I’d highly recommend you delete the token and generate a new one so that people can’t use it to access your account and manipulate your repositories.

The token is meant to be entered instead of your password when Git is asking for your password, if it’s burdensome to type it in repeatedly I do believe there’s ways to configure caching of the token, as well as projects like Git Credential Manager Core, or the option to just use SSH authentication. I’ve not seen the format you’ve used above for Github tokens as if they were usernames so there’s a chance this is contributing to your problems, but I couldn’t be 100% sure with that statement.

But the token should never be shared, it’s a secret only you should know and is meant to be treated like a password!

Please also note that on Github unlike Gitlab, a repository must be manually created on the website first before it can be used. You can’t just make the repository from the command line by pushing to it implicitly.

2 Likes

Thank you @couet @eguiraud and @James-Carroll for the help. I think I finally managed to configure ssh, and I submitted my first pull request (and I removed all personal access tokens). @couet how do you (in general) find out what subdirectory to copy the file into?

The file you are working on already existed. It was not a new file. You should change it where it is not create a new instance of it in a random place of the ROOT folders hierarchy.