Skip to content

Commit afcfffc

Browse files
Merge branch 'v6.4.0-dev' into v6.4.0-dev
2 parents fcad7c6 + 5ce26a2 commit afcfffc

36 files changed

Lines changed: 314 additions & 310 deletions

.Rbuildignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@
2020
^dsBase_6.3.1.tar.gz$
2121
^dsBase_6.3.1-permissive.tar.gz$
2222
^dsDanger_6.3.1.tar.gz$
23+
^\.circleci$
24+
^\.circleci/config\.yml$

.circleci/config.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ version: 2.1
55
jobs:
66
dsbaseclient:
77
docker:
8-
- image: cimg/base:current
8+
# - image: cimg/base:current
9+
- image: cimg/base:2024.11
910
resource_class: small
1011
steps:
1112
- checkout
@@ -18,6 +19,10 @@ jobs:
1819
echo " Tag: " $CIRCLE_TAG
1920
- run:
2021
command: |
22+
sudo apt-get install --no-install-recommends software-properties-common dirmngr
23+
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
24+
sudo add-apt-repository -y "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
25+
2126
sudo apt-get update -y
2227
sudo apt-get install -y r-base-core cmake
2328
- run:
@@ -31,20 +36,20 @@ jobs:
3136
sudo apt-get install -y libpng-dev
3237
sudo apt-get install -y libtiff5-dev
3338
sudo apt-get install -y libjpeg-dev
34-
3539
- run:
3640
command: |
3741
sudo Rscript -e "install.packages('devtools', dependencies=TRUE)"
3842
sudo Rscript -e "install.packages('covr', dependencies=TRUE)"
3943
4044
sudo Rscript -e "install.packages('fields', dependencies=TRUE)"
41-
sudo Rscript -e "install.packages('meta', dependencies=TRUE)"
4245
sudo Rscript -e "install.packages('metafor', dependencies=TRUE)"
46+
sudo Rscript -e "install.packages('meta', dependencies=TRUE)"
4347
sudo Rscript -e "install.packages('ggplot2', dependencies=TRUE)"
4448
sudo Rscript -e "install.packages('gridExtra', dependencies=TRUE)"
4549
sudo Rscript -e "install.packages('data.table', dependencies=TRUE)"
4650
sudo Rscript -e "install.packages('panelaggregation', dependencies=TRUE)"
47-
51+
sudo Rscript -e "install.packages('methods', dependencies=TRUE)"
52+
sudo Rscript -e "install.packages('dplyr', dependencies=TRUE)"
4853
sudo Rscript -e "install.packages('DSI', dependencies=TRUE)"
4954
sudo Rscript -e "install.packages('DSOpal', dependencies=TRUE)"
5055
sudo Rscript -e "install.packages('DSLite', dependencies=TRUE)"

DESCRIPTION

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Maintainer: DataSHIELD Developers <datashield@liverpool.ac.uk>
66
Description: DataSHIELD client functions for the client side.
77
License: GPL-3
88
Depends:
9-
R (>= 3.5.0),
10-
DSI (>= 1.3.0)
9+
R (>= 4.0.0),
10+
DSI (>= 1.7.1)
1111
Imports:
1212
fields,
1313
metafor,
@@ -19,6 +19,14 @@ Imports:
1919
methods,
2020
dplyr
2121
Suggests:
22-
testthat
22+
lme4,
23+
httr,
24+
tibble,
25+
testthat,
26+
e1071,
27+
DescTools,
28+
DSOpal,
29+
DSMolgenisArmadillo,
30+
DSLite
2331
RoxygenNote: 7.3.2
2432
Encoding: UTF-8

R/ds.glm.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
#' The \code{data} argument avoids you having to specify the name of the
6464
#' data frame in front of each covariate in the formula.
6565
#' For example, if the data frame is called \code{DataFrame} you
66-
#' avoid having to write: \code{DataFrame$y~DataFrame$a+DataFrame$b+DataFrame$c+DataFrame$d}
66+
#' avoid having to write: \eqn{DataFrame\$y ~ DataFrame\$a + DataFrame\$b + DataFrame\$c + DataFrame\$d}
6767
#'
6868
#' The \code{checks} argument verifies that the variables in the model are all defined (exist)
6969
#' on the server-side at every study

R/ds.glmSLMA.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
#' The \code{dataName} argument avoids you having to specify the name of the
135135
#' data frame in front of each covariate in the formula.
136136
#' For example, if the data frame is called \code{DataFrame} you
137-
#' avoid having to write: \code{DataFrame$y~DataFrame$a+DataFrame$b+DataFrame$c+DataFrame$d}
137+
#' avoid having to write: \eqn{DataFrame\$y ~ DataFrame\$a + DataFrame\$b + DataFrame\$c + DataFrame\$d}
138138
#'
139139
#' The \code{checks} argument verifies that the variables in the model are all defined (exist)
140140
#' on the server-site at every study

R/ds.glmerSLMA.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
#' The \code{dataName} argument avoids you having to specify the name of the
3535
#' data frame in front of each covariate in the formula.
3636
#' For example, if the data frame is called \code{DataFrame} you avoid having to write:
37-
#' \code{DataFrame$y~DataFrame$a+DataFrame$b+(1|DataFrame$c)}.
37+
#' \eqn{DataFrame\$y ~ DataFrame\$a + DataFrame\$b + (1 | DataFrame\$c)}.
3838
#'
3939
#' The \code{checks} argument verifies that the variables in the model are all defined (exist)
4040
#' on the server-site at every study

R/ds.lmerSLMA.R

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@
1818
#'
1919
#' In \code{formula} most shortcut notation allowed by \code{lmer()} function is
2020
#' also allowed by \code{ds.lmerSLMA}. Many LMEs can be fitted very simply using a formula like:
21-
#' \deqn{y~a+b+(1|c)}
21+
#' \deqn{y ~ a + b + (1 | c)}
2222
#' which simply means fit an LME with \code{y} as the outcome variable with \code{a} and \code{b}
2323
#' as fixed effects, and \code{c} as a random effect or grouping factor.
2424
#'
2525
#' It is also possible to fit models with random slopes by specifying a model such as
26-
#' \deqn{y~a+b+(1+b|c)}
26+
#' \deqn{y ~ a + b + (1 + b | c)}
2727
#' where the effect of \code{b} can vary randomly between groups defined by \code{c}.
28-
#' Implicit nesting can be specified with formulae such as \eqn{y~a+b+(1|c/d)}
29-
#' or \eqn{y~a+b+(1|c)+(1|c:d)}.
28+
#' Implicit nesting can be specified with formulae such as \eqn{y ~ a + b + (1 | c / d)}
29+
#' or \eqn{y ~ a + b + (1 | c) + (1 | c : d)}.
3030
#'
3131
#' The \code{dataName} argument avoids you having to specify the name of the
3232
#' data frame in front of each covariate in the formula.
3333
#' For example, if the data frame is called \code{DataFrame} you avoid having to write:
34-
#' \eqn{DataFrame$y~DataFrame$a+DataFrame$b+(1|DataFrame$c)}.
34+
#' \eqn{DataFrame\$y ~ DataFrame\$a + DataFrame\$b + (1 | DataFrame\$c)}.
3535
#'
3636
#' The \code{checks} argument verifies that the variables in the model are all defined (exist)
3737
#' on the server-site at every study
@@ -192,7 +192,7 @@
192192
#'
193193
#' # Fit the lmer
194194
#'
195-
#' ds.lmerSLMA(formula = "BMI ~ incid_rate + diabetes + (1 | Male)",
195+
#' ds.lmerSLMA(formula = "BMI ~ incid_rate + diabetes + (1 | Male)",
196196
#' dataName = "D.comp",
197197
#' datasources = connections)
198198
#'

README.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,6 @@ dsBaseClient
33

44
DataSHIELD client side base R library.
55

6-
| Branch | dsBase status | dsBase tests | dsBaseClient status | dsBaseClient tests |
7-
| -------- | ------------- | ------------ | ------------------- | ------------------ |
8-
| Master | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBase?branchName=master)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=3&branchName=master) | | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBaseClient?branchName=master)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=1&branchName=master) | [Tests](https://datashield.github.io/testStatus/dsBaseClient/master/latest/) |
9-
| 6.0 | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBase?branchName=v6.0)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=3&branchName=v6.0) | | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBaseClient?branchName=v6.0)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=1&branchName=v6.0) | [Tests](https://datashield.github.io/testStatus/dsBaseClient/v6.0/latest/) |
10-
| 6.0.1 | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBase?branchName=v6.0.1)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=3&branchName=v6.0.1) | | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBaseClient?branchName=v6.0.1)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=1&branchName=v6.0.1) | [Tests](https://datashield.github.io/testStatus/dsBaseClient/v6.0.1/latest/) |
11-
| 6.1 | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBase?branchName=v6.1)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=3&branchName=v6.1) | [Tests](https://datashield.github.io/testStatus/dsBase/v6.1/latest/) | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBaseClient?branchName=v6.1)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=1&branchName=v6.1) | [Tests](https://datashield.github.io/testStatus/dsBaseClient/v6.1/latest/) |
12-
| 6.1.1 | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBase?branchName=v6.1.1)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=3&branchName=v6.1.1) | [Tests](https://datashield.github.io/testStatus/dsBase/v6.1.1/latest/) | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBaseClient?branchName=v6.1.1)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=1&branchName=v6.1.1) | [Tests](https://datashield.github.io/testStatus/dsBaseClient/v6.1.1/latest/) |
13-
| 6.2 | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBase?branchName=v6.2)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=3&branchName=v6.2) | [Tests](https://datashield.github.io/testStatus/dsBase/v6.2/latest/) | [![Build Status](https://dev.azure.com/datashield-testing/datashield/_apis/build/status/datashield.dsBaseClient?branchName=v6.2)](https://dev.azure.com/datashield-testing/datashield/_build/latest?definitionId=1&branchName=v6.2) | [Tests](https://datashield.github.io/testStatus/dsBaseClient/v6.2/latest/) |
14-
15-
166
[![License](https://img.shields.io/badge/license-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
177

188
About

armadillo_azure-pipelines.yml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ schedules:
5858
- master
5959
always: true
6060
- cron: "0 2 * * *"
61-
displayName: Nightly build - v6.3.1-dev
61+
displayName: Nightly build - v6.4.0-dev
6262
branches:
6363
include:
64-
- v6.3.1-dev
64+
- v6.4.0-dev
6565
always: true
6666

6767
#########################################################################################
@@ -71,7 +71,7 @@ jobs:
7171
- job: build_and_run_tests
7272
timeoutInMinutes: 360
7373
pool:
74-
vmImage: ubuntu-22.04
74+
vmImage: ubuntu-24.04
7575

7676
steps:
7777
#####################################################################################
@@ -125,11 +125,10 @@ jobs:
125125
# Install R and all the dependencies dsBaseClient requires.
126126
# If previous steps have failed then don't run.
127127
- bash: |
128-
129-
sudo apt-get update -qq
130128
sudo apt-get install --no-install-recommends software-properties-common dirmngr
131129
wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
132130
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
131+
sudo apt-get update -qq
133132
sudo apt-get upgrade -y
134133
135134
sudo apt-get install -qq libxml2-dev libcurl4-openssl-dev libssl-dev libgsl-dev libgit2-dev r-base -y
@@ -186,7 +185,7 @@ jobs:
186185
# If this step fails still mark as failed, but don't stop the rest of the steps running.
187186
- bash: |
188187
189-
R -q -e "library('devtools'); devtools::check(args = c('--no-examples'))" | tee azure-pipelines_check.Rout
188+
R -q -e "library('devtools'); devtools::check(args = c('--no-examples', '--no-tests'))" | tee azure-pipelines_check.Rout
190189
grep --quiet "^0 errors" azure-pipelines_check.Rout && grep --quiet " 0 warnings" azure-pipelines_check.Rout && grep --quiet " 0 notes" azure-pipelines_check.Rout
191190
192191
workingDirectory: $(Pipeline.Workspace)/dsBaseClient
@@ -236,7 +235,7 @@ jobs:
236235
237236
curl -u admin:admin -X GET http://localhost:8080/packages
238237
239-
curl -u admin:admin --max-time 300 -v -H 'Content-Type: multipart/form-data' -F "file=@dsBase_6.3.1-permissive.tar.gz" -X POST http://localhost:8080/install-package
238+
curl -u admin:admin --max-time 300 -v -H 'Content-Type: multipart/form-data' -F "file=@dsBase_6.4.0.9000-permissive.tar.gz" -X POST http://localhost:8080/install-package
240239
sleep 60
241240
242241
docker container restart dsbaseclient_armadillo_1
@@ -264,7 +263,7 @@ jobs:
264263
# best guess is that there is an implicit build or similar that happens. Although
265264
# I cannot replicate that directly with build etc directly.
266265
267-
sudo R --verbose -e 'devtools::check()'
266+
sudo R --verbose -e 'devtools::reload()'
268267
269268
mkdir $(Pipeline.Workspace)/logs
270269
@@ -365,7 +364,7 @@ jobs:
365364
- bash: |
366365
curl -u admin:admin http://localhost:8080/whitelist
367366
368-
curl -u admin:admin -v -H 'Content-Type: multipart/form-data' -F "file=@dsDanger_6.3.1.tar.gz" -X POST http://localhost:8080/install-package
367+
curl -u admin:admin -v -H 'Content-Type: multipart/form-data' -F "file=@dsDanger_6.4.0.9000.tar.gz" -X POST http://localhost:8080/install-package
369368
370369
docker container restart dsbaseclient_armadillo_1
371370
sleep 60
@@ -388,7 +387,7 @@ jobs:
388387
- bash: |
389388
390389
# See, 'Code coverage and JUnit report output' for issues with the approach and improvement needed.
391-
sudo R --verbose -e 'devtools::check()'
390+
sudo R --verbose -e 'devtools::reload()'
392391
393392
pwd
394393
mkdir $(Pipeline.Workspace)/logs

azure-pipelines.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ schedules:
5858
- master
5959
always: true
6060
- cron: "0 2 * * *"
61-
displayName: Nightly build - v6.3.1-dev
61+
displayName: Nightly build - v6.4.0-dev
6262
branches:
6363
include:
64-
- v6.3.1-dev
64+
- v6.4.0-dev
6565
always: true
6666

6767
#########################################################################################
@@ -139,7 +139,7 @@ jobs:
139139
sudo R -q -e "install.packages(c('MolgenisAuth', 'MolgenisArmadillo', 'DSMolgenisArmadillo'), dependencies=TRUE, repos='https://cloud.r-project.org')"
140140
sudo R -q -e "install.packages(c('DescTools','e1071'), dependencies=TRUE, repos='https://cloud.r-project.org')"
141141
142-
sudo R -q -e "library('devtools'); devtools::install_github(repo='datashield/dsDangerClient', ref='6.3.1', dependencies = TRUE)"
142+
sudo R -q -e "library('devtools'); devtools::install_github(repo='datashield/dsDangerClient', ref='6.4.0', dependencies = TRUE)"
143143
144144
# XML grep for coverage report merging
145145
sudo apt-get install -qq xml-twig-tools -y
@@ -185,7 +185,7 @@ jobs:
185185
# If this step fails still mark as failed, but don't stop the rest of the steps running.
186186
- bash: |
187187
188-
R -q -e "library('devtools'); devtools::check(args = c('--no-examples'))" | tee azure-pipelines_check.Rout
188+
R -q -e "library('devtools'); devtools::check(args = c('--no-examples', '--no-tests'))" | tee azure-pipelines_check.Rout
189189
grep --quiet "^0 errors" azure-pipelines_check.Rout && grep --quiet " 0 warnings" azure-pipelines_check.Rout && grep --quiet " 0 notes" azure-pipelines_check.Rout
190190
191191
workingDirectory: $(Pipeline.Workspace)/dsBaseClient
@@ -232,7 +232,7 @@ jobs:
232232
# Install dsBase.
233233
# If previous steps have failed then don't run.
234234
- bash: |
235-
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = '6.3.1'); opal.logout(opal)"
235+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = '6.4.0'); opal.logout(opal)"
236236
237237
sleep 120
238238
@@ -258,7 +258,7 @@ jobs:
258258
# best guess is that there is an implicit build or similar that happens. Although
259259
# I cannot replicate that directly with build etc directly.
260260
261-
sudo R --verbose -e 'devtools::check()'
261+
sudo R --verbose -e 'devtools::reload()'
262262
263263
mkdir $(Pipeline.Workspace)/logs
264264
@@ -374,7 +374,7 @@ jobs:
374374
- bash: |
375375
376376
# See, 'Code coverage and JUnit report output' for issues with the approach and improvement needed.
377-
sudo R --verbose -e 'devtools::check()'
377+
sudo R --verbose -e 'devtools::reload()'
378378
379379
pwd
380380
mkdir $(Pipeline.Workspace)/logs

0 commit comments

Comments
 (0)