entity_changes
now returns a tibble instead of nested list.submission_export
gains a new parameter deleted_fields
to export all
known fields of a form, including fields that were deleted in the latest form
version. (#129, #161)This release migrates the ruODK
test suite to a new test server
ruodk.getodk.cloud
which was generously sponsored by GetODK.
This release makes ruODK
aware of the new ODK Central semantic version format:
Update your ODK Central version in .Renviron
or in the credential
helper of your choice to the new format ODKC_VERSION="2023.5.1"
(with your
current version). See the updated vignette "setup".
This release fixes a few compatibility issues and bumps dependencies to R (4.1) and imported/suggested packages. Upgrade carefully and revert to 1.3.12 if things go awry.
tidyselect
syntax: Using vectors of names to select makes
tidyselect
complain (WARN, soon ERROR). We wrap all programmatic selections
of variable names in dplyr::all_of()
where we expect a single variable to be
selected, and dplyr::any_of()
where we select using fuzzy matching
(e.g. dplyr::starts_with()
). (#146)ruODK::form_list()
robust against reviewState
missing from outdated
Central versions. (#145, HT @dpagendam and #143, HT @collinschwantes)
There will be more such tripwires - please do submit a bug report if you find
a discrepancy between Central API and ruODK's parsing.project_list
, submission_list
and `` columns to reflect Central 1.5 API output.submission_list
columns to reflect Central 1.5 API output.odata_submission_get
supports parameter expand
to expand all repeat
repetitions.split_geopoint
is now robust against all NULL columns.
split_geotrace
and split_geoshape
are possibly affected.terra
(through mapview
)This release supports ODK Central 1.3.0 and represents an over-due version bump to reflect the supported ODK Central version. The test server is now updated to ODK Central 1.3.0, and all tests pass.
There are still some newer and as yet unsupported API endpoints in ODK Central, which serve administrative purposes of the front-end. Contributions are welcome, get started on these issues and the contributing guide. As ruODK focuses on data retrieval, these administrative endpoints are non-critical to ruODK's purpose.
split_geoshape
adjusted for
odkce_version
>= 1.2. (#131)readr::parse_datetime
stopped supporting timezone "Z". (#130)We are shaping up to a release targetting the ODK Central 1.2 release. ODK Central is undergoing some bug fixes and patches, while ruODK's test server will be migrated to another instance. The latter is required to enable tests which create/update/delete entities in ODK Central.
rversions::r_oldrel()
: 4.0.5 (2021-03-31).rversions::r_release()
: 4.1.1 (2021-08-10).skip
and top
.
ruODK now only supplies non-NULL query parameters and has an additional
seat-belt to drop any query parameter that is an empty string.
(#126, thanks @yanokwa, @mtyszler, @thaliehln)submission_export
now terminates immediately if an incorrect passphrase is
given. ODK Central can exceed memory limits if submission_export
is run
repeatedly with an incorrect passphrase. (#30, thanks @Thaliehln)encryption_key_list
ru_msg_*
conditional to get_ru_verbose()
.published_at
to form_list
and form_detail
, update examples, tests,
test fixtures to show that draft forms can be detected by a NA published_at
in ODK Central versions having form drafts, and by NA hash
and version
in ODK Central versions before form drafts.This is a "everything so far works" release. There are a few ODK Central API endpoints waiting to be implemented still.
submission_export
now supports ODK Central v1.1 features to omit media
attachments (media = FALSE
), and to omit repeat data (include_repeats=FALSE
).
Calling submission_export
on an older version of ODK Central
(as determined through get_default_odkc_version()
) with these new parameters
will emit a (verbose only) "noop" message and not act further on them.submission_export
on encrypted forms with multiple encryption
keys. (Thanks @Thaliehln #117 #30)ru_setup
family (#116)odata_submission_get()
bugfix: handle_ru_attachments()
now finds and downloads media attachments from both main submissions and
nested form groups. (#114)odata_submission_get()
bugfix: missing media attachments (due to upload
error from ODK Collect to ODK Central) are tolerated without interrupting the
batch download. A diagnostic warning message will be emitted for each failed
download. (#114)ruODK
only supports one passphrase. When switching between
multiple encrypted forms, it would make sense to store the different
passphrases in separate environment variables, and refer to these environment
variables explicitly in function calls.se <- submission_export()
t <- tempdir()
f <- unzip(se, exdir = t)
fs::dir_ls(t)
fid <- get_test_fid()
sub <- fs::path(t, glue::glue("Locations.csv")) %>% readr::read_csv()
sub %>% knitr::kable(.)
tests/fixtures
to re-generate the vcr cache, or
enjoy much faster running tests using cached server response.This is a point release to create a new RStudio Server image.
form_schema_ext()
Shows the extended schema of one form, including
(multi-language) labels and choice lists. (#77, thanks @mtyszler for the PR)main
.form_list
now handles draft forms with NA
hash and version (#86,
thanks @dmenne for the PR).tidyselect
in favour of using dplyr::all_of()
.httr::RETRY(times=)
are configurable via setting retries
. (#94)ODK Central versions 0.7 to 0.9 export geotraces and geoshapes via OData with
a trailing empty coordinate. ruODK
removes any trailing empty coordinates from
both GeoJSON and WKT formats. (#88, HT @TimonWeitkamp for the bug report)
A new vignette "Spatial" demonstrates how to parse spatial data into native
formats, such as sf
, and gives pointers on what to do next with them.
This is the release on passing rOpenSci peer review.
Thanks to the rOpenSci editors and reviewers @maelle, @karissawhiting and @jmt2080ad, as well as to @OdiljonQurbon, @dickoa, @arestrom and @dmenne.
A DOI was minted at https://doi.org/10.5281/zenodo.3953159.
This version addresses ROpenSci reviewer comments from @karissawhiting and @jmt2080ad, contributions from @dickoa, as well as ideas and suggestions from @OdiljonQurbon, @arestrom and @dmenne.
This version supports ODK Central 0.9 while providing backwards compatibility for ODK Central <= 0.7.
ODKC_(TEST_)VERSION
allow ruODK
to toggle
between deprecated/removed and new/added API endpoints, e.g. form_schema
. (#61)odata_submission_get(wkt=T)
. (#31 #7 HT @OdiljonQurbon)submission_get
now accepts a vector of (all or selected) submission instance
IDs (iid
), similar to odata_submission_get()
. (#38)httr::GET()
are now replaced with httr::RETRY("GET", ...)
(#48)odata_submission_parse()
into odata_submission_rectangle()
,
handle_ru_{geopoints, geotraces, geoshapes, datetimes, attachments}
. (#54 #69). <- NULL
in favour of utils::globalVariables(".")
. (#35)ru_setup()
now prints settings. (#37)parse_datetime()
renamed to ru_datetime()
to avoid naming conflict with
readr::parse_datetime()
. (#43)httr::modify_url
to build URLs rather than glue::glue
(#66)tibble::as_tibble()
which is called from
odata_submission_rectangle()
. Use ru_verbose
to toggle useful diagnostic
messages. (#79 HT @dmenne)master
branch to main
, updated docs (HT @arestrom #81)rlist
to Imports, as it is now used in odata_submission_get()
. (#6)rlist
dependency in favour of tidyr
/dplyr
. (#85)rlang
, purrr
and lifecycle
to get their
latest bug fixes.make-data.R
) to work with CI-built pkgdown site.
(#52)form_schema_raw
which is only generated from legacy
ODK Central (< 0.8) (#61)odata-api
and restful-api
. (#34)setup
. (#34)rocker/geospatial
with ruODK
and dependencies installed.urODK
to launch a hosted RStudio instance in Binderhub. (#83)odata_submission_get()
now defaults to parse
submissions from nested lists into a tibble, parse dates and datetimes,
download and link attachments. (#6)usethis
. (#29)map_*(.default=NA)
, removing some
internal helpers (thanks to @jennybc){tidyr}
dependency from GitHub master to CRAN version (#27){usethis}
to Suggests, it is used in the setup stepru_setup()
to use OData Service URL.get_default{pid,fid,url,un,pw}()
, partly
moving project ID (pid) and form ID (fid) to kwargs. This changes all examples,
tests, vignettes, READMEs.separate=FALSE
to attachment_get
to prevent separating attachment files
into subfolders named after their submission uuid
(#22)inst/joss/paper.md
to
illustrate ruODK
's intended purpose in the ODK ecosystem (#19)ruODK
tests and build the vignettes (#15 #20)ru_setup()
and ru_settings()
.
Pat down functions for missing credentials and yell loudly but clearly about
httr errors. (#16)@importFrom
to reduce duplication. All external functions are prefixed
with their package name already.attachment_link()
and parse_datetime()
.janitor::clean_names()
on column names over home-grown helpers.submission_detail
is now metadata only, add submission_get
to download
submission data.ruODK
is ready to be used
against ODK Central 0.6.available::available("ruODK")
:codemetar::write_codemeta("ruODK")
.object_verb
.ruODK
uses verb singulars (e.g. submission_list
to
list multiple submissions), while ODK Central's API URLs use verb plurals.ruODK
uses snake_case
.object_verb
:
Functions operating on the OData endpoints are named odata_object_verb
.
Helper functions not related to API endpoints are named verb_object
.styler::style_package()
, see section "Release" in README.md
.ruODK
has a README.Rmd
and has a
website generated by pkgdown
.ruODK
has documentation
generated by roxygen2
.ruODK
does not (but maybe should?) use webmockr
and vcr
.spelling::spell_check_package()
: added technical terms and
function names to inst/WORDLIST
.README
.inst/joss/paper.md
for submission to JOSS.goodpractice
project_list
, project_detail
, form_list
,
form_detail
. Naming scheme is object_verb
.verb_object
, maybe we should rename them to odata_object_verb
.usethis
goodies, test stubs, badges..xml
and .odbbuild
in inst/extdata
.Roadmap: