Skip to content

Is using devtools::release no longer allowed?

17 messages · Richard Cotton, Duncan Murdoch, Carl Boettiger +9 more

#
I recently tried to submit a package to CRAN using the release
function in the devtools package and got the response:
I think that the relevant line in the policies are:
As far as I know, the release function uses the second method, so I
don't quite understand what the problem is.

Has that method of submission been banned?
#
On 19/08/2014 9:28 AM, Richard Cotton wrote:
Presumably the second method is less convenient for the CRAN maintainers 
than the first, so you should only use it if the first method fails.  As 
the policy says.

Duncan Murdoch
#
Hi Richie,
On 19 August 2014 at 16:28, Richard Cotton wrote:
| I recently tried to submit a package to CRAN using the release
| function in the devtools package and got the response:
| 
| > The policies asked you to use the webform: do so in future.
| 
| I think that the relevant line in the policies are:
| 
| > When submitting a package to CRAN you should use the submission form at
| > http://CRAN.R-project.org/submit.html (and not send an email). You will be sent
| > a confirmation email which needs to be accepted.
| 
| > If this fails, upload by anonymous ftp to ftp://CRAN.R-project.org/incoming/ and
| > send a (plain text ASCII) email at the same time, with subject line as specified below.
| 
| As far as I know, the release function uses the second method, so I
| don't quite understand what the problem is.
| 
| Has that method of submission been banned?

i)   AFAICT devtools is just one package by one very talented and prolific
     author -- but it was never blessed by R Core or CRAN, so the first error here
     may just be your assumptions.  Then again, I presume devtools 'just' used
     ftp and the issue may be that ftp might be deprecated. 

ii)  CRAN Policies change, but to our chagrin changes are (were?) somewhat
     infrequently communicated. However, just this weekend I (and presumably
     a larger number of other package author, so I assume you were included)
     received an email by Kurt Hornik with a changeset over the last few
     months. So as of today the preference for the webform must count as
     announced.

iii) Because of ii) and the lack of communication, I created a cronjob based
     on code in and writing to a github repo [1] and posting via twitter [2]
     so you have options for remaining informed if you so desire.

iv)  I haven't had an upload in a few days, but I must have upload well in
     excess of one hundred times via ftp [3] so if it really is frowned upon
     now per i) I am sure to miss it.

Hope this helps,  Dirk


[1] https://github.com/eddelbuettel/crp

[2] https://twitter.com/CRANPolicyWatch

[3] ncftp has a ~/.ncftp/ directory which makes this quasi-stateful and trivial
#
On 19.08.2014 15:54, Duncan Murdoch wrote:
Right, we receive lots of mails with insufficient information, hence we 
introduced the webform.
If there is something else we complain about (like in your case) or the 
mail is insufficient, we will mention that the webform should be the way 
to submit unless that fails for some reason. That way we get better 
prepared information for the manual part of our checks.

So to all listeners: Future submission by means of the webform, please.

Thank you and best wishes,
Uwe Ligges
#
On 19 August 2014 at 19:51, Uwe Ligges wrote:
| So to all listeners: Future submission by means of the webform, please.

I hereby offer one beer to the first person who shows me how to use RSelenium
to drive the webform from a script.

Dirk 
(who used the webform in textmode earlier today over a ssh connection)
#
Dirk, listeners,

Perhaps you would consider using omegahat's RHTMLForms instead?

    library("RHTMLForms")
    forms <- getHTMLFormDescription("http://xmpalantir.wu.ac.at/cransubmit/
")
    submit_to_cran <- createFunction(forms[[1]])

Should create a function called "submit_to_cran" with arguments
corresponding to the webform blanks, e.g.

submit_to_cran(name = "packagename", email = "youremail", uploaded_file =
"package.tar.gz", comment = "the optional comment")

(clearly you could fill those details in from the submitting package
description).  I haven't tested this.


Cheers,

Carl
On Tue, Aug 19, 2014 at 11:14 AM, Dirk Eddelbuettel <edd at debian.org> wrote:

            

  
    
#
On 19/08/2014 2:40 PM, Carl Boettiger wrote:
If you use this, make sure you test it well enough to get it perfect the 
very first time you use it.  If I were a CRAN administrator and received 
a series of bad submissions from someone who was working out the bugs, I 
would not find it difficult either technically or morally to permanently 
ban that user from ever submitting anything again.

Duncan Murdoch
#
Given the seeming need for automated submission to CRAN, perhaps the repos
maintainers could consider making a function available that allows one to
do so, for example
  source("http://www.cran.r-project.org/submit_to_cran.R")
  submit_to_cran("PACKAGE.TARBALL", REQUIRED_ARGUMENTS)
or perhaps be interested in a community developed script?  Although I
recognize how easy it is for me to suggest work for others, it seems like
such a script would cut down on everyones work, long-term.

Best,
Kasper




On Tue, Aug 19, 2014 at 2:53 PM, Duncan Murdoch <murdoch.duncan at gmail.com>
wrote:

  
  
#
Isn't the source for CRAN itself open source? One option is to run a test server that can respond with a success or failure message based on the submission. 

?????
Brian Lee Yung Rowe
Founder, Zato Novo
Professor, M.S. Data Analytics, CUNY

  
  
#
On Tue, Aug 19, 2014 at 8:14 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
Below is a simple script that simulates the form. No crazy RSelenium
browser interactions; I just reverse engineered the HTML form. Tested
and it works.

https://gist.github.com/jeroenooms/48be418e87100d7ea1a2

Not sure if CRAN maintainers will appreciate this, though. The "I have
read the CRAN policies" confirmation page is probably there for a
reason. Also the script will obviously break if CRAN decides to change
the form parameters. However I do agree with many others that some way
to automate the submission process is useful. Perhaps Uwe can comment.
#
On 20 August 2014 at 00:05, Jeroen Ooms wrote:
| On Tue, Aug 19, 2014 at 8:14 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
| >
| > I hereby offer one beer to the first person who shows me how to use RSelenium
| > to drive the webform from a script.
| 
| Below is a simple script that simulates the form. 

I presume Heineken will be ok?  

I may double this up to two beers as your solution avoids Java.

Dirk
#
On Tue, Aug 19, 2014 at 3:05 PM, Jeroen Ooms <jeroenooms at gmail.com> wrote:

            
I agree. I think we've entered the realm of "yes, it would be easy to do,
but don't". An arms race with CRAN re: automating submission doesn't seem
like a good way forward.

~G
#
On 20.08.2014 00:05, Jeroen Ooms wrote:
Indeed! And we want people to actively think about that for each 
submission. Hence I'd appreciate if people take the time to think about 
a submission in advance, e.g. while tackling the cumbersome task to open 
the webbrowser. ;-)
The form may change and we do not guarantee back compatibility. More 
parts of the submission / check procedure will be automated (as also 
happened in the past) and this is work in progress.


Please note that CRAN is not intended as a development platform but for 
more or less stable package releases that won't change too frequently, 
hence we expect that for the not so frequent event of a package 
submission, it is *not too much work for the package maintainer* to use 
the webbrowsr for a submission. It is *much more work for the CRAN 
mintainers* telling 40 people each day that they forgot to read the 
policies and that they submit without thinking about the submission 
carefully in advance - with an update few hours later or asking to 
rename a package .....

Best,
Uwe
1 day later
#
On Tue, Aug 19, 2014 at 8:28 AM, Richard Cotton <richierocks at gmail.com> wrote:
The development version of devtools uses the web form method. I will
endeavour to track changes to the CRAN release process as closely as
possible, but as noted elsewhere in this thread, those changes are not
always well communicated. The devtools philosophy is "anything that
can be automated, should be automated".

You may also be eligible for the devtools guarantee: "if because of a
bug in devtools a member of R-core gets angry with you, I will send
you a handwritten apology note. Just forward me the email and your
address, and I'll get a card in the mail."

Hadley
#
On Tue, 19 Aug 2014, Duncan Murdoch wrote:
I think what Duncan is saying here is to make sure to log in as Dirk 
before testing your potentially buggy CRAN webform submitter.
#
On Thu, 21 Aug 2014, Hadley Wickham wrote:

            
I think I'm seeing the Rcaptcha package on the horizon ...

luke
#
Devtools actually makes you perform a cognitively challenge set of
tasks before submitting. One of them is:

Have you read and do you agree to the the CRAN policies?
(http://cran.r-project.org/web/packages/policies.html)
1: No way
2: No
3: For sure

Each time the function is run both the answers are randomised so the
next time you might get

Have you read and do you agree to the the CRAN policies?
(http://cran.r-project.org/web/packages/policies.html)
1: Not yet
2: Definitely
3: Nope

The goal is to force you (as much as possible) to actually read the
question and think about the answer.

Hadley