[Rd] R-Forge > GitHub?
Spencer Graves
@pencer@gr@ve@ @end|ng |rom prod@y@e@com
Sun Jul 14 20:08:04 CEST 2019
Thanks to Ott and others, I now have separate GitHub
repositories, one for each of the packages combined in the Ecdat R-Forge
project. In case it might help others in the future, I will summarize
here key things I did to make this transition:
1. I first copied the "Ecfun" package into its own
directory on my local computer and created a separate GitHub repository
for that. I lost the history in doing so, but I can live without that
history.
2. I moved the contents of "~Ecdat/pkg/Ecdat" to "~Ecdat"
and deleted the now-empty ""pkg/Ecdat" subdirectory. I first tried to
do this in RStudio, but wasn't sure it was done correctly. So I used
"“git reset --hard HEAD” to revert all that. Then I copied the material
in Finder on my Mac, so I could see what I was doing. Then I did "git
add" of the individual files and folders in a Terminal plus "git rm -r
pkg" to delete
3. Then I set up automatic checking for both packages
using Travis CI as described by Hadley's "R Packages"
(http://r-pkgs.had.co.nz/check.html). [GitHub complained that
".travis.yml" didn't belong there. Danny Smith on Rd told me to add it
to ".Rbuildignore". I found it was already there, but ".Rbuildignore"
was not part of the repository. Now it is.]
4. Along the way, GitHub kept asking for my username and
password, even though I had established SSH authentication. I traced
the problem to the ".git/config" that said, "url =
https://github.com/sbgraves237/Ecdat". I changed that line to read "url
= https://sbgraves237:password@github.com/sbgraves237/Ecdat" (where
"password" is my GitHub password, which I had to change to make it work
there, because it included "@" ;-) oops.
5. I also had problems with "Warning: ‘inst/doc’ files":
Those had not existed in the R-Forge versions but appeared somehow in
migrating them to GitHub. I deleted them in a Terminal with "git rm -r
inst/doc". After "git commit" and "git push", I found they had been
deleted from the GitHub repository but not my local computer, so I
deleted them locally -- without any apparent side effects.
Thanks again,
Spencer Graves
On 2019-07-03 23:30, Spencer Graves wrote:
> Thanks so much for your help.
>
>
> Now your "git push -u origin master" was "![rejected]", after
> creating a new SSH and after your "git clone" and other "git remote
> rename ..." commands seemed to work:
>
>
> $ git clonegit using github.com:joshuaulrich/tmp-ecfun.git Ecdat
> # Cloning into 'Ecdat'...<snip> done.
>
> $ cd Ecdat/
> $ git remote rename origin tmp
> $ git remote add originhttps://github.com/sbgraves237/Ecdat
> $ git push -u origin master
> #[Username & password OK]
> Tohttps://github.com/sbgraves237/Ecdat
> ! [rejected] master -> master (fetch first)
> error: failed to push some refs to 'https://github.com/sbgraves237/Ecdat'
> hint: Updates were rejected because the remote contains work that you do
> hint: not have locally. This is usually caused by another repository pushing
> hint: to the same ref. You may want to first integrate the remote changes
> hint: (e.g., 'git pull ...') before pushing again.
> hint: See the 'Note about fast-forwards' in 'git push --help' for details.
> SpenceravessMBP:Ecdat sbgraves$
>
>
> Suggestions?
> Thanks again,
> Spencer Graves
>
>
> On 2019-07-01 01:05, Ott Toomet wrote:
>> Apparently you created id_rsa key pair with a passphrase. Passphrase
>> is like an additional password protection layer on your ssh key. I
>> don't know how did you create it. But you can always create a new one
>> (you should delete the old one before you create a new one) using the
>> shell command 'ssh-keygen'. It asks for a passphrase, just push enter
>> for an empty passphrase (twice). You also have to update the ssh
>> public key (id_rsa.pub) on github by supplying the new public key
>> (id_rsa.pub).
>>
>> There are some implications you should be aware of:
>> * if you delete id_rsa*, you cannot use any ssh authorization that
>> relies on this key any more (that's why you have to update on GH).
>> >From the what you write (... created 2 days ago) I guess you do not
>> use these keys elsewhere but I may be wrong.
>> * if you supply empty passphrase, you bypass the optional extra
>> security layer. I think this is OK for open source software
>> development on your personal computer but your preferences/situation
>> may differ.
>> * You cannot use the same keys with passphrase if they are created
>> without one. This is likely not an issue, but if it turns out to be a
>> problem, you can either add passphrase to the default keys, or create
>> another set of keys, passphrase protected.
>>
>> Cheers,
>> Ott
>>
>>
>> On Sun, Jun 30, 2019 at 9:51 PM Spencer Graves
>> <spencer.graves using prodsyse.com <mailto:spencer.graves using prodsyse.com>> wrote:
>>
>>
>>
>> On 2019-06-30 06:58, Joshua Ulrich wrote:
>> <snip>
>>
>> > I imported both packages into separate repositories:
>> >https://github.com/joshuaulrich/tmp-ecdat
>> >https://github.com/joshuaulrich/tmp-ecfun
>> >
>> > I changed your email address on your R-Forge commits to match your
>> > GitHub email address, so R-Forge commits would be associated
>> with your
>> > GitHub account. I also omitted the "move" commit from Ecdat,
>> and the
>> > "obsolete > GitHub" commits from both packages. I've attached a
>> file
>> > with the commands I used, if anyone is interested.
>> >
>> > You can use my repos by cloning them to your local machine, adding
>> > your repos as new remotes, and pushing to them. You would need
>> to run
>> > these commands (untested):
>> >
>> > ### clone my GitHub repo to your machine
>> > git clonegit using github.com:joshuaulrich/tmp-ecfun.git Ecdat
>>
>>
>> Thanks so much. Sadly, I'm still having troubles. This "git
>> clone ..."
>> generates:
>>
>>
>> Enter passphrase for key '/Users/sbgraves/.ssh/id_rsa':
>>
>>
>> Sadly, I don't know the passphrase it's looking for here,
>> and I
>> don't know how to find what it's looking for. Under GitHub >
>> Settings >
>> "SSH and GPG keys", I see an SSH key dated two days ago, when I
>> cloned
>> Ecdat from within RStudio. And in "~.ssh" I see files id_rsa and
>> id_rsa.pub, both created two days ago.
>>
>>
>> What do you suggest I try to get past this?
>>
>>
>> Thanks again for all your help.
>>
>>
>> Spencer Graves
>>
>> > cd Ecdat
>> > ### rename my GitHub repo remote from 'origin' to 'tmp'
>> > git remote rename origin tmp
>> > ### add your GitHub repo remote as 'origin'
>> > ### NOTE: this should be a new, clean repo.
>> > ### Rename your existing 'Ecdat' so you don't overwrite it
>> > git remote add originhttps://github.com/sbgraves237/Ecdat
>> > ### push to your GitHub repo
>> > git push -u origin master
>> >
>> > Then you need to run similar commands for Ecfun.
>> >
>> > Best,
>> > Josh
>> >
>> >>> Thanks,
>> >>> Spencer
>> >>>
>> >>>
>> >>> On 2019-06-29 14:09, Henrik Bengtsson wrote:
>> >>>> On Sat, Jun 29, 2019 at 9:43 AM Spencer Graves
>> >>>> <spencer.graves using prodsyse.com
>> <mailto:spencer.graves using prodsyse.com>> wrote:
>> >>>>> Hi, Ott et al.:
>> >>>>>
>> >>>>>
>> >>>>> What's the best way to get "Travis CI" to build and
>> test the two
>> >>>>> packages, Ecdat and Ecfun, that have long been combined in
>> the Ecdat
>> >>>>> project?
>> >>>>>
>> >>>>>
>> >>>>> Following Ott's advice and studying studying
>> Wickham's "R
>> >>>>> Packages" (http://r-pkgs.had.co.nz/), I was able to
>> configure RStudio so
>> >>>>> it would sync using git with
>> "GitHub.com/sbgraves237/Ecdat". However,
>> >>>>> when I tried to configure "Travis CI", it said, "No
>> DESCRIPTION file
>> >>>>> found, user must supply their own install and script steps".
>> >>>>>
>> >>>>>
>> >>>>> Earlier in this thread, I think someone suggested I
>> make the
>> >>>>> Ecdat and Ecfun packages separate projects on GitHub (though
>> I can't
>> >>>>> find that suggestion now). This would not be an issue if it
>> were all
>> >>>>> local without version control. With RStudio managing my
>> interface with
>> >>>>> GitHub, it now seems quite tricky.
>> >>>> I'm 99.999% confident that your life will be much much easier
>> if you
>> >>>> keep one R package per repository. If you don't, you'll
>> probably be
>> >>>> very lonely when it comes to tools etc. There are built-in 'git'
>> >>>> commands, but also git utility tools, for extracting a subset of
>> >>>> folders/files from git repository into new git repositories.
>> You'll
>> >>>> still preserve the commit history. I would deal with this in the
>> >>>> terminal, using the 'git' client and possible some extraction
>> tool.
>> >>>>
>> >>>> Also, while you spend time on this, have a look at the commit
>> >>>> authorship that I mentioned previously. It's nice to have
>> that in
>> >>>> place later.
>> >>>>
>> >>>> After you got the above in place, then .travis.yml and
>> appveyor.yml is
>> >>>> pretty straightforward (might even be a copy'n'paste).
>> >>>>
>> >>>> Finally, I saw you put your credentials in the URL when you
>> cloned. I
>> >>>> don't think that's safe, your GitHub credentials will be
>> stored in the
>> >>>> ./.git/config file. Instead, just clone with:
>> >>>>
>> >>>> git clonehttps://github.com/sbgraves237/Ecdat.git
>> >>>>
>> >>>> You can then configure git to cache your HTTPS credentials for a
>> >>>> certain time, e.g. 120 minutes, so you don't have to enter
>> them each
>> >>>> time you pull/push. See
>> https://git-scm.com/docs/git-credential-cache
>> >>>> for details. That's what I tell new-comers to
>> Git(Hub|Lab|...) to
>> >>>> use. Personally, I add my public SSH key to GitHub and then
>> clone
>> >>>> with the ssh protocol:
>> >>>>
>> >>>> git clonegit using github.com:sbgraves237/Ecdat.git
>> >>>>
>> >>>> That way my I never have to worry entering my credentials.
>> >>>>
>> >>>> /Henrik
>> >>>>
>> >>>>> Suggestions?
>> >>>>> Thanks again to all who have offered suggestions so
>> far. This
>> >>>>> migration from R-Forge to GitHub seems complete except for
>> the automatic
>> >>>>> tests provided via "Travis CI".
>> >>>>>
>> >>>>>
>> >>>>> Spencer
>> >>>>>
>> >>>>>
>> >>>>> On 2019-06-28 22:25, Ott Toomet wrote:
>> >>>>>> Apparently your username/password are wrong. Can you
>> clone/push from
>> >>>>>> other repos?
>> >>>>>>
>> >>>>>> You do not need authorization when cloning a public repo,
>> so even
>> >>>>>> incorrect credentials may work (haven't tested this
>> though). But for
>> >>>>>> push you have to have that in order.
>> >>>>>>
>> >>>>>> I suggest you create ssh keys, upload those to GH, and use ssh
>> >>>>>> authorization instead of https.
>> >>>>>>
>> >>>>>> Cheers,
>> >>>>>> Ott
>> >>>>>>
>> >>>>>> On Fri, Jun 28, 2019 at 8:18 PM Spencer Graves
>> >>>>>> <spencer.graves using prodsyse.com
>> <mailto:spencer.graves using prodsyse.com>
>> <mailto:spencer.graves using prodsyse.com
>> <mailto:spencer.graves using prodsyse.com>>> wrote:
>> >>>>>>
>> >>>>>> Thanks to Duncan, Henrik and Henrik, Brian, and Gábor:
>> >>>>>>
>> >>>>>>
>> >>>>>> I created a local copy of the new GitHub
>> version using the
>> >>>>>> following:
>> >>>>>>
>> >>>>>> git clone
>> >>>>>>https://sbgraves237:mypassword@github.com/sbgraves237/Ecdat.git
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> That worked in the sense that I got a local
>> copy. However,
>> >>>>>> after
>> >>>>>> I rolled the version number and did "git commit" on
>> the DESCRIPTION
>> >>>>>> files, my "git push" command generated the following:
>> >>>>>>
>> >>>>>>
>> >>>>>> remote: Invalid username or password.
>> >>>>>> fatal: Authentication failed for
>> >>>>>>
>> 'https://sbgraves237:mypassword@github.com/sbgraves237/Ecdat.git/'
>> >>>>>>
>> >>>>>>
>> >>>>>> What am I missing? [Note: I used my actual GitHub
>> >>>>>> password in
>> >>>>>> place of "mypassword" here, and this "Authentication
>> failed" message
>> >>>>>> reported the GitHub password I used here.]
>> >>>>>>
>> >>>>>>
>> >>>>>> Thanks,
>> >>>>>> Spencer
>> >>>>>>
>> >>>>>>
>> >>>>>> p.s. I'm doing this under macOS Mojave 10.14.5.
>> Also, I added
>> >>>>>> ".onAttach" functions to the R-Forge versions as
>> Brian G. Peterson
>> >>>>>> suggested. That seemed to work fine.
>> >>>>>>
>> >>>>>>
>> >>>>>> On 2019-06-28 07:13, Duncan Murdoch wrote:
>> >>>>>> > On 28/06/2019 6:26 a.m., Gábor Csárdi wrote:
>> >>>>>> >
>> >>>>>> >> Instead, you can do as Duncan suggested, and put a
>> README in your
>> >>>>>> >> R-Forge
>> >>>>>> >> repository, that points to *your* GitHub
>> repositor(y/ies). Then the
>> >>>>>> >>https://github.com/rforge/ecdat read only mirror
>> will pick this up
>> >>>>>> >> and will
>> >>>>>> >> point there as well.
>> >>>>>> >
>> >>>>>> > Just for the record: that was Henrik Singmann's
>> suggestion, I just
>> >>>>>> > agreed with it.
>> >>>>>> >
>> >>>>>> > Duncan Murdoch
>> >>>>>> >
>> >>>>>>
>> >>>>>>
>> >>>>>> [[alternative HTML version deleted]]
>> >>>>>>
>> >>>>>> ______________________________________________
>> >>>>>>R-devel using r-project.org <mailto:R-devel using r-project.org>
>> <mailto:R-devel using r-project.org <mailto:R-devel using r-project.org>>
>> mailing list
>> >>>>>>https://stat.ethz.ch/mailman/listinfo/r-devel
>> >>>>>>
>> >>>>> [[alternative HTML version deleted]]
>> >>>>>
>> >>>>> ______________________________________________
>> >>>>>R-devel using r-project.org <mailto:R-devel using r-project.org> mailing
>> list
>> >>>>>https://stat.ethz.ch/mailman/listinfo/r-devel
>> >>> ______________________________________________
>> >>>R-devel using r-project.org <mailto:R-devel using r-project.org> mailing list
>> >>>https://stat.ethz.ch/mailman/listinfo/r-devel
>> >>
>> >>
>> >> --
>> >> Joshua Ulrich | about.me/joshuaulrich
>> <http://about.me/joshuaulrich>
>> >> FOSS Trading |www.fosstrading.com <http://www.fosstrading.com>
>> >
>> >
>>
>> ______________________________________________
>> R-devel using r-project.org <mailto:R-devel using r-project.org> mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
More information about the R-devel
mailing list