Skip to content

R-Forge > GitHub?

24 messages · Duncan Murdoch, Henrik Bengtsson, Lionel Henry +6 more

#
Hello, All:


 ????? What's the status and future plans for R-Forge?


 ????? I ask primarily because a problem I reported May 15 and 17 via 
two different channels has yet to be fixed, and it prevents my 
development versions of the Ecdat and Ecfun packages from building -- 
because the Windows version cannot find "Matrix";? see below. 
Secondarily, the version of R that R-Forge tried to use earlier today 
was 3.5.3 -- NOT the current version.


 ????? Assuming you recommend migrating to GitHub, do you have a 
preferred procedure?? I found 
"https://gist.github.com/friendly/7269490".? This says it was "Last 
active 2 years ago" but seems to be the most current advice I can find 
on this right now.? That looks complicated, but I assume it preserves 
the edit history on R-Forge. ???


 ??? ? Thanks,
 ??? ? Spencer Graves


-------- Forwarded Message --------
Subject: 	Error : package 'Ecfun' could not be loaded
Date: 	Fri, 17 May 2019 18:41:12 -0500
From: 	Spencer Graves <spencer.graves at prodsyse.com>
To: 	r-forge at r-project.org



Hello:


 ????? Your Windows platform cannot find "Matrix" and other packages.? See:


https://r-forge.r-project.org/R/?group_id=1439&add_log=check_x86_64_windows&pkg=Ecdat&flavor=patched&type=00install.out


 ????? I reported this to your Support tracker two days ago:


https://r-forge.r-project.org/tracker/?atid=194&group_id=34&func=browse


 ????? Can someone please fix this?


 ????? Or is it now the official policy of R-Forge to ask people to go 
someplace else, e.g., GitHub?


 ????? From what I know, the basic design of R-Forge is vastly superior 
to GitHub for packages submitted to CRAN.? However, I've encountered 
numerous reliability problems with R-Forge in recent years.


 ????? Thanks,
 ????? Spencer Graves
#
On 26/06/2019 10:34 a.m., Spencer Graves wrote:
R-Forge is mirrored on Github; see https://github.com/rforge/ecdat, for 
example.  That shows 418 commits in its history; presumably that's the 
full R-forge history.  I think that's newer than Michael Friendly's gist.

So I suspect (but haven't tried to do this) that migration now is as 
simple as doing a Github fork to your own Github account, and then 
basically forgetting about the R-forge stuff, or deleting it (and I 
don't know how to do that).

Duncan Murdoch
#
I think it's better to avoid the Fork button in this case, because forks are
treated specially in the Github UI. In this case you'll want your repo to
appear as a main repo, and not a fork. AFAIK the only way to unfork a repo
is to ask the Github staff to do it.

So instead of forking, use the "+" button on github.com and select
"Import a repository". This supports both git and svn repos.

Best,
Lionel
#
One thing that needs manual work is making each SVN username mP to a Git
(username, email address). This often involved asking contributors what
their preferred endless Git address is.

The email address is what for instance GitHub uses to associate a commit
authorship with a user account. You can register multiple emails addresses
per GitHub account. As far as I remember, this also how GitLab and
Bitbucket work. AFAIK, the Git username is not really used, but I might be
wrong.

You can rewrite the authorship in the Git history to get this correct, but
you want to get that right before going public v if you rewrite the history
and "force" push you'll make life hard for anyone who already cloned.

/Henrik
#
????? Thanks to Duncan, Lionel and Henrik for their quick replies. I 
have further questions:


 ??? ?? ???? 1.? Will GitHub automatically transfer the commits I made 
to R-Forge in the past couple of days?? R-Forge is now at Rev. 420, and 
GitHub is still at 418.? Will 419 and 420 be automatically mirrored onto 
"https://github.com/rforge/ecdat" sometime in the next 24 hours or so?? 
Is there something easy I can do to force that update?


 ??? ?? ???? 2.? Is there a way to make this GitHub version the master?? 
It currently says it is a 'Read-only mirror of "ecdat" from r-forge 
SVN.'? I can probably change "r-forge.r-project.org/projects/ecdat" so 
I'm the only one authorized to make changes there and then stop 
committing changes there.? However, before I do that, I'd want to make 
sure I can commit directly to the GitHub version, etc.


 ??? ?? ???? 3.? How can I make myself the owner and a contributor for 
the GitHub version?? I'm a "Project Admin" on the R-Forge version, but 
currently no one can make any changes to the GitHub version except via 
R-Forge.? There must be a recommended migration process.


 ????? I could create a separate version of this package on GitHub, but 
all the history would be lost.


 ????? Thanks again,
 ????? Spencer Graves
On 2019-06-26 10:35, Lionel Henry wrote:
#
I think all 3 issues are solved by:

1. Use the "+" button on github.com <http://github.com/> and select "Import a repository".
2. Pass the URL of your SVN repo.

Lionel

  
  
#
????? Thanks.? I'm still having problems:


 ??? ??????? 1.? I went to "github.com" and logged in with my standard 
GitHub account


 ??? ??????? 2.? Then I clicked "+" in the upper right, just left of my 
GitHub ID icon, and selected "Import a repository", as Lionel suggested.


 ??? ??????? 3.? " Your old repository?s clone URL" = 
"https://r-forge.r-project.org/projects/ecdat/" with "Name" = "Ecdat".


 ??? ?? ?? ??????? ** >> This failed, first giving me a 500 failure 
code, then reporting " Repository creation failed."? When I tried it 
again, I got, "The repository Ecdat already exists on this account."


 ????? What do you suggest I try next?


 ????? Thanks,
 ????? Spencer
On 2019-06-26 12:02, Lionel Henry wrote:

  
  
#
On 26/06/2019 1:38 p.m., Spencer Graves wrote:
How complicated is your R-forge repository?  Are you hosting more than 
one package there?  Are you using branches and tags?

If it's really simple, I'd recommend importing from the Github read-only 
copy, rather than from R-forge.  R-forge has a non-standard setup for 
repositories, and you probably don't want to import that to Github. (A 
few years ago devtools didn't even work properly on R-forge because of 
the non-standard setup.  I don't know if Github will be able to handle 
it.)  The creator of "https://github.com/rforge/ecdat" simplified things 
a lot, ignoring branches, tags, etc.  For most repositories, this is fine.

Your first step will probably be to delete the existing ecdat repository 
which showed up in your second error message. Instructions for that are 
here:  https://help.github.com/en/articles/deleting-a-repository.

Duncan Murdoch
#
Whereas it is true that one has to contact GitHub to detach a GitHub
repository, it really is no problem (or at least was no problem in 2016). I
wanted to do so when I took over the maintainer role of LaplacesDemon which
only remained on GitHub as a fork on some other person's private account.
So I forked and then contacted GitHub support and simply asked them to
remove the "forked form" reference on my new repository. They then quickly
detached my repository. As you can see, the "forked from" is gone:
https://github.com/LaplacesDemonR/LaplacesDemon

In their response to my request they used the phrasing "Fork is detached."
which suggests that this is their preferred term for this step.

Best,
Henrik



Am Mi., 26. Juni 2019 um 16:38 Uhr schrieb Lionel Henry <lionel at rstudio.com

  
    
1 day later
#
Hi, Henrik Singmann et al.:


 ????? Thanks for the suggestions.? I tried again to pull 
"https://github.com/sbgraves237/Ecdat" from R-Forge, with the same 
"Error 500" as before.? Then I tried pulling from 
"https://github.com/rforge/ecdat", which seemed to work ... AND the copy 
I pulled was at the latest revisions I had posted to R-Forge (520), so 
that makes it easier going forward.


 ????? What do you suggest I do next?? I'm thinking of the following:


 ??? ??????? 1.? Clone a copy of "https://github.com/sbgraves237/Ecdat" 
to my local computer and confirm that it works.


 ??? ??????? 2.? Modify "https://r-forge.r-project.org/projects/ecdat/" 
to make me the only remaining project member, if I can.


 ??? ??????? 3.? Contact GitHub support and ask them if they can delete 
"https://github.com/rforge/ecdat", because it is an orphan with 0 
contributors, and anyone who might want it should be referred to 
"https://github.com/sbgraves237/Ecdat".


 ???? ??????? 4.? Email all the previous project members on 
"https://r-forge.r-project.org/projects/ecdat/" to tell them what I've 
done, in case they want to do anything more with this in the future.


 ????? I believe I know how to do 1, 2, and 4, and I can probably figure 
out 3.? However, before I start on this, I felt a need to thank everyone 
who contributed to this thread and invite comments, especially if 
someone thinks I might be better off doing something different.


 ????? Spencer Graves
On 2019-06-26 16:34, Henrik Singmann wrote:

  
  
#
Re your point 3: Because you have managed to create a GitHub version of
your repository that is not a fork of https://github.com/rforge/ecdat, but
its own independent repository, contacting GitHub support might not be the
right way forward. Note that https://github.com/rforge is simply a
read-only mirror of the complete R-Forge repository (and at least to me it
is unclear of whether GitHub itself or some independent party is
responsible for it, but I would assume it is not GitHub). So the easiest
way to change something in https://github.com/rforge/ecdat would be to make
the corresponding change in your R-forge repository and wait until it
propagates to GitHub.

So either delete the R-forge repository or make a final commit replacing
its content with a README pointing towards the new GitHub repo at
https://github.com/sbgraves237/Ecdat. Together with emailing all  previous
project members this should ensure that interested party will know about
the new place where your package is being developed/hosted.

You might also want to add a new README to the new GitHub repository which
replaces the current R-forge one and provides installation instructions.

Best,
Henrik



Am Fr., 28. Juni 2019 um 06:01 Uhr schrieb Spencer Graves <
spencer.graves at prodsyse.com>:

  
    
#
Henrik's advice is all good.  I would say his idea of the final commit 
of a README pointer is better than deleting things at R-forge; there is 
likely old information out there somewhere pointing to R-forge as a 
location for Ecdat development, and any bug reports or discussion on 
R-forge will not have been copied over to Github.

Duncan Murdoch
On 28/06/2019 4:14 a.m., Henrik Singmann wrote:
#
On Fri, Jun 28, 2019 at 6:01 AM Spencer Graves <spencer.graves at prodsyse.com>
wrote:
[...]
I suggest you put each package in its own repository, because our R tooling
(e.g. Travis CI, etc.) works best if you do that. This is quite easy to do
nowadays: https://stackoverflow.com/a/17864475/604364
You don't need do that. It is unlikely that they would remove *someone
else's* repository, anyway, unless the repository has some copyright or
license problems. Which it does not, since your packages are GPL.

GitHub as a company does not manage https://github.com/rforge. This read
only mirror was set up by a fellow GitHub user, and it is best if it is
kept as a read-only mirror.

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.

Gabor

[...]
#
Spencer, on your point 3. below, we took a different path in migrating 
several packages.

After we migrated to github as the new master copy, we made new commits 
to the now orphaned R-Forge copies to include a new .onAttach function 
as so:

.onAttach <- function(libname, pkgname) {
   repo <- "https://github.com/sbgraves237/Ecdat  <https://github.com/braverock/quantstrat>"
   packageStartupMessage(
     "WARNING: this package was installed from R-Forge, but development has\n",
     "moved to GitHub. Please re-install the package using the GitHub repo at:\n",
     repo, ".")
}



And to update the README in the main pkg/ dir on R-Forge.

So all the old references in talks, papers, StackOverflow, whatever will 
point to the R-Forge version, but the R-Forge version will point anyone 
to github.

Regards,

Brian
On 6/28/19 12:00 AM, Spencer Graves wrote:

  
    
#
On 28/06/2019 6:26 a.m., G?bor Cs?rdi wrote:

            
Just for the record:  that was Henrik Singmann's suggestion, I just 
agreed with it.

Duncan Murdoch
#
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 at 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 at 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:

  
  
#
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 at 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.


 ????? 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:

  
  
#
On Sat, Jun 29, 2019 at 9:43 AM Spencer Graves
<spencer.graves at prodsyse.com> wrote:
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 clone https://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 clone git at github.com:sbgraves237/Ecdat.git

That way my I never have to worry entering my credentials.

/Henrik
#
Hi, Henrik et al.:


 ????? What's your favorite documentation on how to make two GitHub 
projects from one containing two packages?


 ????? Currently, "github.com/sbgraves237/Ecdat" consists primarily of a 
directory "pkg" with subdirectories "Ecdat" and "Ecfun" containing the 
two packages.? I need to know how to do the following:


 ??? ??????? 1.? Extract "github.com/sbgraves237/Ecdat/pkg/Ecfun" to 
create? "github.com/sbgraves237/Ecfun".


 ???? ??????? 2.? Elevate "github.com/sbgraves237/Ecdat/pkg/Ecdat" to 
"github.com/sbgraves237/Ecdat", discarding the other files in the 
original "github.com/sbgraves237/Ecdat/".


 ????? This sounds like it could be accomplished relatively easily by 
someone with sufficient understanding of "git" and GitHub.? I could use 
suggestions on how to do this -- or at least on how to find 
documentation on how to do this.


 ????? Thanks,
 ????? Spencer
On 2019-06-29 14:09, Henrik Bengtsson wrote:
#
On Sat, Jun 29, 2019 at 6:06 PM Spencer Graves
<spencer.graves at prodsyse.com> wrote:
This is straightforward if the two packages have always been in the
same directory structure.  But it doesn't look like that's the case
for your repository, since Ecfun was added around r125.  So Ecdat's
history is split and would need to be grafted together.  I've done
this for other packages.  So it's possible, but it took me some trial
and error.

I'm giving that a go right now.  I'll report back tomorrow morning, at
the latest.

  
    
#
On Sat, Jun 29, 2019 at 9:46 PM Joshua Ulrich <josh.m.ulrich at gmail.com> wrote:
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 clone git at github.com:joshuaulrich/tmp-ecfun.git Ecdat
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 origin https://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

  
    
#
On 2019-06-30 06:58, Joshua Ulrich wrote:
<snip>
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
#
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 at prodsyse.com>
wrote: