Error: could not find function "as.person"


I am trying to create a new universe for the public R packages in Akoya Biosciences · GitHub. It is failing the “sync registry” step with this error (repeated for each package in my repo):
ERROR updating phenoptr from (could not find function "as.person")

Example failure: Sync registry · r-universe/akoyabio@fd44da4 · GitHub

I don’t use as.person in my code so this error seems to be coming from the sync code. How can I proceed?

Kent Johnson
Akoya Biosciences

PS I’m very excited about the possibility of hosting binary versions of non-CRAN packages! Thanks for this work!

We have seen this with a dependency dragged in via Remotes, in your case tiff (see tiff/DESCRIPTION at 9904d236ba18664caaa4594654edd39fbd7a820c · akoyabio/tiff · GitHub)

@jeroenooms - is this something that could be relaxed, or if not the offending package made clearer?

Thanks, I’l try updating the tiff package. Does utils::person also have to be fully qualified?

Both person and as.person are allowed as unqualified names by R CMD CHECK. It would be nice if r-universe did not have more stringent requirements than CMD CHECK…


@AB-Kent the problem appears in the DESCRIPTION of the tiff package, which is listed under ‘remotes’ in phenoptr. Perhaps you can simply remove the remote, because a newer version of tiff is already on CRAN.

@richfitz Thanks I’ll try to make this more clear.

The issue here is that the maintainer email address gets parsed from the description in an unsafe place where secret tokens are in the environment, so we have to prevent code injection. So I am evaluating authors@R in a little sandbox with only c() and person() but not as.person(). I have to study as.person() a bit to see if it is safe against code injection.

@jeroenooms OK, I didn’t realize that {tiff} had made it to CRAN, that’s great news and I’ll update the dependency. {rtree} uses person() so that should be OK.

Thank you!

OK I have now also added as.person to the allow list for Authors@R. Thanks for letting me know!