[R-pkg-devel] How do I know if/when my package is fit for CRAN?

2018-06-07 Thread Voeten, C.C.
Dear list,

I have been working on an R package for the past two years. It started as a 
programming exercise for me to get acquainted with R, and because I had some 
issues with lmerTest::step (the aim of my package was to automate the protocol 
I use for performing model comparisons using LRT, also when one of the models 
does not converge or is not an lme4 model; these three things of LRT, 
nonconvergence, and non-lme4 models are not handled by lmerTest::step). Over 
the past two years, I have completely refactored the package multiple times as 
I realized there were better/cleaner ways to do things, and it has now grown 
into something that I use in my day-to-day statistical life.

Now, it occurs to me that my code may be of use to other people. However, at 
the same time, I also feel that the package is nowhere near 'done', in the 
sense of polished code that is free of my personal quirks; here I do not mean 
little things like coding style, but rather more generally my overall approach 
to things. (I also know of a few bugs that need fixing, but that is easy - just 
need to find the time to do it.)
My question is: how do I know (1) if my package belongs on CRAN (it did start 
out as a personal project, after all); and (2) when the code is in good enough 
shape to be submitted without me wasting the time of the people reviewing the 
submissions?  The code is currently at [1], but my question is explicitly not 
for other people to review my code - instead, I am asking how I can do that 
myself!

Thank you for any advice,
Cesko

[1] https://github.com/cvoeten/buildmer 

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] How do I know if/when my package is fit for CRAN?

2018-06-07 Thread Michael Dewey

Comments in-line

On 07/06/2018 11:23, Voeten, C.C. wrote:

Dear list,

I have been working on an R package for the past two years. It started as a 
programming exercise for me to get acquainted with R, and because I had some 
issues with lmerTest::step (the aim of my package was to automate the protocol 
I use for performing model comparisons using LRT, also when one of the models 
does not converge or is not an lme4 model; these three things of LRT, 
nonconvergence, and non-lme4 models are not handled by lmerTest::step). Over 
the past two years, I have completely refactored the package multiple times as 
I realized there were better/cleaner ways to do things, and it has now grown 
into something that I use in my day-to-day statistical life.

Now, it occurs to me that my code may be of use to other people. However, at 
the same time, I also feel that the package is nowhere near 'done', in the 
sense of polished code that is free of my personal quirks; here I do not mean 
little things like coding style, but rather more generally my overall approach 
to things. (I also know of a few bugs that need fixing, but that is easy - just 
need to find the time to do it.)
My question is: how do I know (1) if my package belongs on CRAN (it did start 
out as a personal project, after all)


There are quite a few packages on CRAN which are collections of things 
which people personally found useful so I would have thought your 
package might well be of benefit.


; and (2) when the code is in good enough shape to be submitted without 
me wasting the time of the people reviewing the submissions?  The code 
is currently at [1], but my question is explicitly not for other people 
to review my code - instead, I am asking how I can do that myself!


If it passes the standard checks it should be accepted. There are 
packages which contain stylistic features which I would not write myself 
but that would not matter. If people start using it they will probably 
give you feedback anyway.


One thing which occurs to me though is whether the maintaner of lmerTest 
would accept it into the package? If it has a different philosophy 
probably not but perhaps worth asking?


Michael



Thank you for any advice,
Cesko

[1] https://github.com/cvoeten/buildmer

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel



--
Michael
http://www.dewey.myzen.co.uk/home.html

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] How do I know if/when my package is fit for CRAN?

2018-06-07 Thread Rune Haubo
On 7 June 2018 at 13:00, Michael Dewey  wrote:
>
> One thing which occurs to me though is whether the maintaner of lmerTest
> would accept it into the package? If it has a different philosophy probably
> not but perhaps worth asking?

In the lmerTest-team we are always open to collaborations. A quick
look at buildmer indicates that it takes a different approach than
lmerTest and has a different scope (lmerTest is for LMMs but buildmer
seems to cover GLMs, GLMMs, and GAMMs as well) so perhaps buildmer is
most appropriately kept in a separate package.

@Cesko, you may have noticed that a new almost completely re-written
version of lmerTest (>= 3.0.0) has been out for a couple of months
now? It has a new improved version of step() which should be better
behaved when it comes to convergence failures. If you still encounter
problems please let us know by posting an issue at
https://github.com/runehaubo/lmerTestR. In any case you are always
welcome to reach out privately.

Cheers

Rune
(for the lmerTest authors)

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] How do I know if/when my package is fit for CRAN?

2018-06-07 Thread Voeten, C.C.
Dear Michael and Rune,

Yes, when I started I was hoping that my tinkering might eventually be absorbed 
into lmerTest. Unfortunately, at the time, my knowledge of R and lmerTest was 
not sufficient for me to hack at lmerTest, and once I had achieved what I 
needed for LMMs in my own way (as a small script for personal use), I realized 
that I could easily extend my approach to GLMs and GAMs, at the obvious cost of 
breaking any possibility for upstreaming my code to lmerTest. I think that of 
the code I have now, not much is useful to lmerTest, but when I find the time I 
will certainly take a look if some things could be detached from buildmer into 
lmerTest.

I was aware of the new version of lmerTest (still have to update buildmer to 
work with the new interfaces though), but I have not used its step function in 
a long time. I'm glad to hear that it has gotten better at handling convergence 
failures. Yes, in case of future problems I will definitely get in touch, as I 
should perhaps have done two years ago -- I can only guess that at the time, I 
figured that the problem must have been with my model specification itself; my 
road to learning mixed models has been somewhat rocky!

In any case, I am encouraged by your replies. I will see if I can fix some more 
bugs and get the code to pass the CRAN checks, and maybe eventually I'll 
actually submit the package. Of course, I'll also see if there are things that 
could be of use to lmerTest, since I don't want to needlessly step onto their 
turf. Thank you for your kind feedback!

Best,
Cesko

> -Oorspronkelijk bericht-
> Van: Rune Haubo [mailto:rune.ha...@gmail.com]
> Verzonden: donderdag 7 juni 2018 13:49
> Aan: Michael Dewey 
> CC: Voeten, C.C. ; r-package-devel@r-
> project.org
> Onderwerp: Re: [R-pkg-devel] How do I know if/when my package is fit for
> CRAN?
> 
> On 7 June 2018 at 13:00, Michael Dewey  wrote:
> >
> > One thing which occurs to me though is whether the maintaner of
> > lmerTest would accept it into the package? If it has a different
> > philosophy probably not but perhaps worth asking?
> 
> In the lmerTest-team we are always open to collaborations. A quick look at
> buildmer indicates that it takes a different approach than lmerTest and has a
> different scope (lmerTest is for LMMs but buildmer seems to cover GLMs,
> GLMMs, and GAMMs as well) so perhaps buildmer is most appropriately
> kept in a separate package.
> 
> @Cesko, you may have noticed that a new almost completely re-written
> version of lmerTest (>= 3.0.0) has been out for a couple of months now? It
> has a new improved version of step() which should be better behaved when
> it comes to convergence failures. If you still encounter problems please let 
> us
> know by posting an issue at https://github.com/runehaubo/lmerTestR. In
> any case you are always welcome to reach out privately.
> 
> Cheers
> 
> Rune
> (for the lmerTest authors)
__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] How do I know if/when my package is fit for CRAN?

2018-06-07 Thread Duncan Murdoch

On 07/06/2018 6:23 AM, Voeten, C.C. wrote:

Dear list,

I have been working on an R package for the past two years. It started as a 
programming exercise for me to get acquainted with R, and because I had some 
issues with lmerTest::step (the aim of my package was to automate the protocol 
I use for performing model comparisons using LRT, also when one of the models 
does not converge or is not an lme4 model; these three things of LRT, 
nonconvergence, and non-lme4 models are not handled by lmerTest::step). Over 
the past two years, I have completely refactored the package multiple times as 
I realized there were better/cleaner ways to do things, and it has now grown 
into something that I use in my day-to-day statistical life.

Now, it occurs to me that my code may be of use to other people. However, at 
the same time, I also feel that the package is nowhere near 'done', in the 
sense of polished code that is free of my personal quirks; here I do not mean 
little things like coding style, but rather more generally my overall approach 
to things. (I also know of a few bugs that need fixing, but that is easy - just 
need to find the time to do it.)
My question is: how do I know (1) if my package belongs on CRAN (it did start 
out as a personal project, after all); and (2) when the code is in good enough 
shape to be submitted without me wasting the time of the people reviewing the 
submissions?  The code is currently at [1], but my question is explicitly not 
for other people to review my code - instead, I am asking how I can do that 
myself!




As others have said, if it passes the CRAN checks, it will probably be 
accepted.


But whether you should submit it requires some thought on your end.  Do 
you want people using it and sending you bug reports and requests for 
additional functionality?  I'll assume yes.  Then you need to get people 
using it, and that requires that they can find it and figure out how to 
use it.  Think carefully about putting together your DESCRIPTION file; 
that's what people will find first.  Write good documentation for each 
of the functions, including examples.  Write a vignette giving an overview.


And if you do submit it to CRAN, be prepared to support it for several 
years.  R changes over time, and you need to be ready to make the 
necessary changes to your package so that it still works.  If it breaks 
and you don't fix it, that will cause lots of extra work for others.


Duncan Murdoch

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel