On 27/09/2022 9:37 p.m., Rolf Turner wrote:

On Tue, 27 Sep 2022 07:43:03 +0000
Georgi Boshnakov <georgi.boshna...@manchester.ac.uk> wrote:

...functions, that are not meant to be called directly by users,
should be documented in a file named <pkgnm>-internal.Rd.

This is one option, convenient in the use-case of the question. But
why export a function that you actively don't want the users to know
about?

<SNIP>

Why would you not want users to know about functions?  This strikes me
as being overly authoritarian. Of course, to export or not to export
is the choice of the package author.  It is also sensible to try to
protect users from shooting themselves in the foot.  However if they
really want to shoot themselves in the foot, that's their call. >
Anyway, users can always get at non-exported functions using ":::".


There are (at least) two kinds of users. The more common kind writes scripts that use your package. I think your argument is valid for that group, though many of them are never going to read your warning about functions being intended for internal use.

However, some users are package writers. Once their package is on CRAN, it can be really inconvenient for you to change the behaviour of internal functions that they use, because CRAN will object if your change breaks their tests. That makes it harder to write those internal functions, because you have to get them "right" the first time, or support the bad behaviour if someone relied on it.

Duncan Murdoch

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

Reply via email to