dsHelper Package

Development name


Name of server-side packages


Name of client-side packages


Date this information was late updated/checked


Description of packages purpose

This is a set of functions to automate processes in DataSHIELD to make data manipulation and analysis easier.

How to contact developer institution/team/individual

- Tim Cadman, t.cadman@bristol.ac.uk
- Sido Haakma, s.haakma@rug.nl

LifeCycle Project’s Slack, https://lifecycle-project.slack.com/

Latest version

Type distribution licence

GNU General Public License v3.0

Methods of obtaining package

CRAN Address


GitHub account, repository and branch/tag

What versions of R work with the package?

≥ 3.5.0

What R packages do the packages depend on?


dsBaseClient (≥ 6.0.1)
dplyr (≥ 1.0.2)


Methods are very much a work in progress! This is dependent on how you look at it. It is used for analysis at this stage already. So that would mean the current version is “in production” already. However it would be nice to have junit tests and have a formal process of releasing the package. In this stage we do not have the resources to go through that. It is very much dependent on the time Tim and I can put into it.

I agree with Sido - properly testing this is the next step. At the moment I just fix bugs when people tell me about them, but as I haven’t written a package before I don’t know how to set up the testing. The other thing that I will do over the next month or so is to write vignettes for all of the functions.

Is the package tested?

No, not properly

Is the package documented?

Help files, but no vignettes

Has the package had a disclosure audit?

No, but I think disclosure problems very unlikely as it just calls existing datashield functions

Is the package suitable for deployment in the production environment? (Yes/No)

We need to make a first official release still.

Does your package have features to protect the privacy of data, or does it just provide remote analysis functionality?

It is a client side package which leans on dsBaseClient so it used implicitly the protection methods included in the dsBaseClient

Additional Information