[R-pkg-devel] Removing packages files
Lluís Revilla
||u|@@rev|||@ @end|ng |rom gm@||@com
Thu Jan 2 22:29:18 CET 2025
Dear Duncan,
Thank you for your answer. I checked again and made a mock package
that removes a file with .onDetach.
The file was not removed upon uninstalling the package.
Lluís
On Thu, 2 Jan 2025 at 17:23, Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
>
> On 2025-01-02 9:55 a.m., Lluís Revilla wrote:
> > Hi list,
> >
> > I am developing a package that will download some data, and I'd like
> > to store it locally to not recalculate it often.
> > The CRAN policy requires tools::R_user_dir to be used and "the
> > contents are actively managed (including removing outdated material)"
> > or using TMPDIR but "such usage should be cleaned up".
> >
> > When loading a package there is .onLoad or .onAttach to fill or check
> > those files and other settings required for a package. Is there
> > something for when a package is removed?
> >
> > I found some related functions like .Last or reg.fnalizer and setHook
> > or packageEvent but they are about closing a session or don't have a
> > specific event for when uninstalling packages via (remove.packages). I
> > appreciate any feedback, thanks in advance.
> >
>
> Yes, those are described in section "1.5.3 Load hooks" of writing R
> extensions:
>
> "Packages can use a .onDetach or .Last.lib function (provided the latter
> is exported from the namespace) when detach is called on the package. It
> is called with a single argument, the full path to the installed
> package. There is also a hook .onUnload which is called when the
> namespace is unloaded (via a call to unloadNamespace, perhaps called by
> detach(unload = TRUE)) with argument the full path to the installed
> package’s directory. Functions .onUnload and .onDetach should be defined
> in the namespace and not exported, but .Last.lib does need to be exported."
>
> Duncan Murdoch
>
More information about the R-package-devel
mailing list