Skip to content

Commit b783be3

Browse files
Merge pull request #68 from StuartWheater/6.4.0-6.3.6_update
Updates to v6.4.0 from v6.3.6 in 04/06/2026
2 parents 1780750 + 3edd081 commit b783be3

51 files changed

Lines changed: 916 additions & 197 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/dsBaseClient_test_suite.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ jobs:
138138
- name: Install dsBase to Armadillo
139139
run: |
140140
curl -u admin:admin -X GET http://localhost:8080/packages
141-
curl -u admin:admin -H 'Content-Type: multipart/form-data' -F "file=@dsBase_6.3.5-permissive.tar.gz" -X POST http://localhost:8080/install-package
141+
curl -u admin:admin -H 'Content-Type: multipart/form-data' -F "file=@dsBase_6.3.6-permissive.tar.gz" -X POST http://localhost:8080/install-package
142142
sleep 60
143143
docker restart dsbaseclient-armadillo-1
144144
sleep 30

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,6 @@ Suggests:
8181
DSOpal,
8282
DSMolgenisArmadillo,
8383
DSLite
84-
RoxygenNote: 7.3.3
8584
Encoding: UTF-8
8685
Language: en-GB
86+
Config/roxygen2/version: 8.0.0

R/ds.glm.R

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,8 @@ ds.glm <- function(formula=NULL, data=NULL, family=NULL, offset=NULL, weights=NU
565565
# Sum participants only during first iteration.
566566
nsubs.total<-Reduce(f="+", .select(study.summary, 'numsubs'))
567567
# Save family
568-
f <- study.summary[[1]]$family
568+
family.value <- study.summary[[1]]$family
569+
f <- if (is.list(family.value) && "family" %in% names(family.value)) family.value$family else family.value
569570
}
570571

571572
#Create variance covariance matrix as inverse of information matrix
@@ -640,7 +641,7 @@ ds.glm <- function(formula=NULL, data=NULL, family=NULL, offset=NULL, weights=NU
640641
beta.vect.final<-beta.vect.next
641642

642643
scale.par <- 1
643-
if(f$family== 'gaussian') {
644+
if(f == 'gaussian') {
644645
scale.par <- dev.total / (nsubs.total-length(beta.vect.next))
645646
}
646647

azure-pipelines.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,13 +215,13 @@ jobs:
215215
# Install dsBase.
216216
# If previous steps have failed then don't run.
217217
- bash: |
218-
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
218+
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
219219
220-
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 = 'v6.3.5-dev'); opal.logout(opal)"
220+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = 'v6.4.0-dev'); opal.logout(opal)"
221221
222222
sleep 60
223223
224-
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
224+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
225225
226226
workingDirectory: $(Pipeline.Workspace)/dsBaseClient/tests/testthat/data_files
227227
displayName: 'Install dsBase to Opal, as set disclosure test options'
@@ -344,9 +344,9 @@ jobs:
344344
# If previous steps have failed then don't run
345345
- bash: |
346346
347-
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
347+
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080/'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
348348
349-
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, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"
349+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"
350350
351351
workingDirectory: $(Pipeline.Workspace)/dsBaseClient
352352
displayName: 'Install dsDanger package on Opal server'

docker-compose_opal.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ services:
33
image: datashield/opal_citest:latest
44
ports:
55
- 8443:8443
6+
- 8080:8080
67
links:
78
- mongo
89
- rock
@@ -15,7 +16,7 @@ services:
1516
- ROCK_HOSTS=rock:8085
1617
- ROCK_ADMINISTRATOR_PASSWORD=foobar
1718
mongo:
18-
image: mongo:6.0.27
19+
image: mongo:8.0
1920
environment:
2021
- MONGO_INITDB_ROOT_USERNAME=root
2122
- MONGO_INITDB_ROOT_PASSWORD=foobar

opal_azure-pipelines.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,13 +215,13 @@ jobs:
215215
# Install dsBase.
216216
# If previous steps have failed then don't run.
217217
- bash: |
218-
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
218+
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
219219
220-
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 = 'v6.3.5-dev'); opal.logout(opal)"
220+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = 'v6.4.0-dev'); opal.logout(opal)"
221221
222222
sleep 60
223223
224-
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
224+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.set_option(opal, 'default.datashield.privacyControlLevel', 'permissive'); opal.logout(opal)"
225225
226226
workingDirectory: $(Pipeline.Workspace)/dsBaseClient/tests/testthat/data_files
227227
displayName: 'Install dsBase to Opal, as set disclosure test options'
@@ -344,9 +344,9 @@ jobs:
344344
# If previous steps have failed then don't run
345345
- bash: |
346346
347-
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
347+
R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'http://localhost:8080/'); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)"
348348
349-
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, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"
349+
R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='http://localhost:8080/'); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)"
350350
351351
workingDirectory: $(Pipeline.Workspace)/dsBaseClient
352352
displayName: 'Install dsDanger package on Opal server'

tests/docker/armadillo/standard/config/application.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,13 @@ stdout.log.path: '/logs/armadillo.log'
6767

6868
logging:
6969
level:
70-
root: INFO
70+
root: "warn"
7171
## change to DEBUG to have more details, typically when developing
72-
org.molgenis: INFO
72+
org.molgenis: "warn"
7373
## Don't log upload data
74-
org.apache.coyote.http11.Http11InputBuffer: INFO
74+
org.apache.coyote.http11.Http11InputBuffer: "warn"
75+
## SpringFramework
76+
org.springframework.boot: "warn"
77+
org.springframework.web: "warn"
78+
org.springframework.core: "warn"
79+
org.springframework.codex: "warn"

tests/testthat/connection_to_datasets/init_discordant_datasets.R

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ init.discordant.dataset.simple <- function(variables)
55
if (ds.test_env$driver == "OpalDriver")
66
{
77
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
8-
builder$append(server = "discordant1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "DISCORDANT.DISCORDANT_STUDY1", options=ds.test_env$options_1)
9-
builder$append(server = "discordant2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "DISCORDANT.DISCORDANT_STUDY2", options=ds.test_env$options_2)
10-
builder$append(server = "discordant3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "DISCORDANT.DISCORDANT_STUDY3", options=ds.test_env$options_3)
8+
builder$append(server = "discordant1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "DISCORDANT.DISCORDANT_STUDY1", options=ds.test_env$options_1)
9+
builder$append(server = "discordant2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "DISCORDANT.DISCORDANT_STUDY2", options=ds.test_env$options_2)
10+
builder$append(server = "discordant3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "DISCORDANT.DISCORDANT_STUDY3", options=ds.test_env$options_3)
1111
ds.test_env$login.data <- builder$build()
1212
}
1313
else if (ds.test_env$driver == "ArmadilloDriver")
1414
{
1515
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
16-
builder$append(server = "discordant1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/discordant/DISCORDANT_STUDY1", driver = "ArmadilloDriver")
17-
builder$append(server = "discordant2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/discordant/DISCORDANT_STUDY2", driver = "ArmadilloDriver")
18-
builder$append(server = "discordant3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/discordant/DISCORDANT_STUDY3", driver = "ArmadilloDriver")
16+
builder$append(server = "discordant1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "datashield/discordant/DISCORDANT_STUDY1", driver = "ArmadilloDriver")
17+
builder$append(server = "discordant2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "datashield/discordant/DISCORDANT_STUDY2", driver = "ArmadilloDriver")
18+
builder$append(server = "discordant3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "datashield/discordant/DISCORDANT_STUDY3", driver = "ArmadilloDriver")
1919
ds.test_env$login.data <- builder$build()
2020
}
2121
else
Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
1-
#this file stores some settings for the continuous integration and local testing.
1+
#
2+
# The file "connection_to_datasets/local_settings.csv" (within the directory "tests/testthat") contains, if present,
3+
# values which can be used to affect the behavious of the continuous integration.
4+
#
5+
# The server URL is in a CVS file, being the value of the first column, first row.
6+
#
27

3-
init.ip.address <- function()
8+
init.server.url <- function()
49
{
510
file.name <- init.local.settings()
611
if (file.exists(file.name))
712
{
8-
content <- read.csv(file.name, header = FALSE)
9-
ip.address <- as.character(content[[1]][1])
13+
content <- read.csv(file.name, header = FALSE)
14+
server.url <- as.character(content[[1]][1])
1015
}
1116
else
1217
{
13-
# ip.address <- "127.0.0.1"
14-
ip.address <- "localhost"
18+
# server.url <- "http://127.0.0.1:8080/"
19+
server.url <- "http://localhost:8080/"
1520
}
16-
return (ip.address)
21+
return (server.url)
1722
}
1823

1924

2025

2126
init.local.settings <- function()
2227
{
23-
path <- getwd()
28+
path <- getwd()
2429
sub.folder.name <- "/connection_to_datasets/"
25-
file.name <- "local_settings.csv"
26-
return(paste(path, sub.folder.name,file.name, sep=""))
27-
30+
file.name <- "local_settings.csv"
31+
32+
return(paste(path, sub.folder.name, file.name, sep=""))
2833
}

tests/testthat/connection_to_datasets/init_mediation_datasets.R

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ init.mediation.dataset.upb <- function(variables)
55
if (ds.test_env$driver == "OpalDriver")
66
{
77
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
8-
builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.UPBdata1", options=ds.test_env$options_1)
9-
builder$append(server = "study2", url = ds.test_env$ip_address_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "MEDIATION.UPBdata2", options=ds.test_env$options_2)
10-
builder$append(server = "study3", url = ds.test_env$ip_address_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "MEDIATION.UPBdata3", options=ds.test_env$options_3)
8+
builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.UPBdata1", options=ds.test_env$options_1)
9+
builder$append(server = "study2", url = ds.test_env$server_url_2, user = ds.test_env$user_2, password = ds.test_env$password_2, table = "MEDIATION.UPBdata2", options=ds.test_env$options_2)
10+
builder$append(server = "study3", url = ds.test_env$server_url_3, user = ds.test_env$user_3, password = ds.test_env$password_3, table = "MEDIATION.UPBdata3", options=ds.test_env$options_3)
1111
ds.test_env$login.data <- builder$build()
1212
}
1313
else
@@ -25,7 +25,7 @@ init.mediation.dataset.student <- function(variables)
2525
if (ds.test_env$driver == "OpalDriver")
2626
{
2727
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
28-
builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.student", options=ds.test_env$options_1)
28+
builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.student", options=ds.test_env$options_1)
2929
ds.test_env$login.data <- builder$build()
3030
}
3131
else
@@ -43,7 +43,7 @@ init.mediation.dataset.framing <- function(variables)
4343
if (ds.test_env$driver == "OpalDriver")
4444
{
4545
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
46-
builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.framing", options=ds.test_env$options_1)
46+
builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.framing", options=ds.test_env$options_1)
4747
ds.test_env$login.data <- builder$build()
4848
}
4949
else
@@ -61,7 +61,7 @@ init.mediation.dataset.vv2015 <- function(variables)
6161
if (ds.test_env$driver == "OpalDriver")
6262
{
6363
builder <- DSI::newDSLoginBuilder(.silent = TRUE)
64-
builder$append(server = "study1", url = ds.test_env$ip_address_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.vv2015", options=ds.test_env$options_1)
64+
builder$append(server = "study1", url = ds.test_env$server_url_1, user = ds.test_env$user_1, password = ds.test_env$password_1, table = "MEDIATION.vv2015", options=ds.test_env$options_1)
6565
ds.test_env$login.data <- builder$build()
6666
}
6767
else

0 commit comments

Comments
 (0)