diff --git a/DESCRIPTION b/DESCRIPTION index 13617ca..ee35ba8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: autosync Title: 'Automerge' Sync Server and Client -Version: 0.0.1.9000 +Version: 0.1.0 Authors@R: c( person("Charlie", "Gao", , "charlie.gao@posit.co", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0750-061X")), @@ -33,6 +33,6 @@ Suggests: testthat (>= 3.0.0) Config/Needs/website: tidyverse/tidytemplate Config/roxygen2/markdown: TRUE -Config/roxygen2/version: 8.0.0 +Config/roxygen2/version: 8.0.0.9000 Config/testthat/edition: 3 Encoding: UTF-8 diff --git a/NAMESPACE b/NAMESPACE index d699a83..12e9494 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -12,46 +12,58 @@ export(sync_client) export(sync_fetch) export(sync_server) export(sync_token) -importFrom(automerge,AM_ROOT) -importFrom(automerge,am_create) -importFrom(automerge,am_get) -importFrom(automerge,am_keys) -importFrom(automerge,am_length) -importFrom(automerge,am_load) -importFrom(automerge,am_save) -importFrom(automerge,am_sync_decode) -importFrom(automerge,am_sync_encode) -importFrom(automerge,am_sync_state) -importFrom(automerge,am_sync_state_decode) -importFrom(automerge,am_sync_state_encode) -importFrom(httr2,oauth_client) -importFrom(httr2,oauth_flow_auth_code) -importFrom(httr2,oauth_redirect_uri) -importFrom(httr2,oauth_server_metadata) -importFrom(jose,jwt_decode_sig) -importFrom(jose,read_jwk) -importFrom(later,later) -importFrom(later,run_now) -importFrom(nanonext,handler_ws) -importFrom(nanonext,http_server) -importFrom(nanonext,is_error_value) -importFrom(nanonext,ncurl) -importFrom(nanonext,random) -importFrom(nanonext,recv) -importFrom(nanonext,recv_aio) -importFrom(nanonext,send) -importFrom(nanonext,stop_aio) -importFrom(nanonext,stream) -importFrom(nanonext,tls_config) -importFrom(nanonext,unresolved) -importFrom(nanonext,write_cert) +importFrom(automerge, + AM_ROOT, + am_create, + am_get, + am_keys, + am_length, + am_load, + am_save, + am_sync_decode, + am_sync_encode, + am_sync_state, + am_sync_state_decode, + am_sync_state_encode +) +importFrom(httr2, + oauth_client, + oauth_flow_auth_code, + oauth_redirect_uri, + oauth_server_metadata +) +importFrom(jose, + jwt_decode_sig, + read_jwk +) +importFrom(later, + later, + run_now +) +importFrom(nanonext, + handler_ws, + http_server, + is_error_value, + ncurl, + random, + recv, + recv_aio, + send, + stop_aio, + stream, + tls_config, + unresolved, + write_cert +) importFrom(promises,then) -importFrom(secretbase,base58dec) -importFrom(secretbase,base58enc) -importFrom(secretbase,base64dec) -importFrom(secretbase,base64enc) -importFrom(secretbase,cbordec) -importFrom(secretbase,cborenc) -importFrom(secretbase,jsondec) -importFrom(secretbase,jsonenc) +importFrom(secretbase, + base58dec, + base58enc, + base64dec, + base64enc, + cbordec, + cborenc, + jsondec, + jsonenc +) importFrom(utils,str) diff --git a/NEWS.md b/NEWS.md index 447650e..7003091 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,3 @@ -# autosync (development version) +# autosync 0.1.0 * Initial CRAN release. - -# autosync 0.0.1 - -* Initial version. diff --git a/R/autosync-package.R b/R/autosync-package.R index d469656..b8a1807 100644 --- a/R/autosync-package.R +++ b/R/autosync-package.R @@ -45,12 +45,17 @@ #' @name autosync-package #' @aliases autosync #' -#' @importFrom automerge am_create am_get am_keys am_length am_load am_save am_sync_decode am_sync_encode am_sync_state am_sync_state_decode am_sync_state_encode AM_ROOT -#' @importFrom httr2 oauth_client oauth_flow_auth_code oauth_redirect_uri oauth_server_metadata +#' @importFrom automerge am_create am_get am_keys am_length am_load am_save +#' am_sync_decode am_sync_encode am_sync_state am_sync_state_decode +#' am_sync_state_encode AM_ROOT +#' @importFrom httr2 oauth_client oauth_flow_auth_code oauth_redirect_uri +#' oauth_server_metadata #' @importFrom jose jwt_decode_sig read_jwk #' @importFrom later later run_now -#' @importFrom nanonext handler_ws http_server is_error_value ncurl random recv recv_aio send stop_aio stream tls_config unresolved write_cert +#' @importFrom nanonext handler_ws http_server is_error_value ncurl random recv +#' recv_aio send stop_aio stream tls_config unresolved write_cert #' @importFrom promises then -#' @importFrom secretbase base64enc base64dec base58enc base58dec cborenc cbordec jsondec jsonenc +#' @importFrom secretbase base64enc base64dec base58enc base58dec cborenc +#' cbordec jsondec jsonenc #' @importFrom utils str "_PACKAGE" diff --git a/R/server.R b/R/server.R index 0608410..480039b 100644 --- a/R/server.R +++ b/R/server.R @@ -8,7 +8,9 @@ #' @param port Port to listen on. Default 0 (binds to a random available port). #' The actual URL is retrieved via `server$url`. #' @param host Host address to bind to. Default "127.0.0.1" (localhost). -#' @param data_dir Directory for persistent document storage. Default ".automerge". +#' @param data_dir Directory for document storage. Defaults to a +#' session-temporary directory, so documents do not persist across R +#' sessions. Supply an explicit path to persist documents across sessions. #' @param auto_create_docs Logical, whether to auto-create documents when #' clients request unknown document IDs. Default TRUE. #' @param storage_id Optional storage ID for this server. If NULL (default), @@ -77,7 +79,7 @@ sync_server <- function( port = 0L, host = "127.0.0.1", - data_dir = ".automerge", + data_dir = tempfile("autosync"), auto_create_docs = TRUE, storage_id = NULL, tls = NULL, diff --git a/cran-comments.md b/cran-comments.md index 97b8211..fdec4bd 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -4,8 +4,27 @@ * This is a new release. -## Method references +## Re-submission Responses -There are no published references describing the methods in this package. It -implements the publicly documented 'automerge-repo' WebSocket synchronization -protocol (). +If there are references describing the methods in your package, please +add these in the description field of your DESCRIPTION file in the form +authors (year) +authors (year, ISBN:...) +or if those are not available: +with no space after 'doi:', 'https:' and angle brackets for +auto-linking. (If you want to add a title as well please put it in +quotes: "Title") +For more details: + + +There are no published references describing the methods in this package. + +Please ensure that your functions do not write by default or in your +examples/vignettes/tests in the user's home filespace (including the +package directory and getwd()). This is not allowed by CRAN policies. +Please omit any default path in writing functions. In your +examples/vignettes/tests you can write to tempdir(). +For more details: + + +The default `data_dir` parameter to the `sync_server()` function now points to a temp file and not `getwd()`. \ No newline at end of file diff --git a/man/sync_server.Rd b/man/sync_server.Rd index db37ea3..942ca28 100644 --- a/man/sync_server.Rd +++ b/man/sync_server.Rd @@ -7,7 +7,7 @@ sync_server( port = 0L, host = "127.0.0.1", - data_dir = ".automerge", + data_dir = tempfile("autosync"), auto_create_docs = TRUE, storage_id = NULL, tls = NULL, @@ -21,7 +21,9 @@ The actual URL is retrieved via \code{server$url}.} \item{host}{Host address to bind to. Default "127.0.0.1" (localhost).} -\item{data_dir}{Directory for persistent document storage. Default ".automerge".} +\item{data_dir}{Directory for document storage. Defaults to a +session-temporary directory, so documents do not persist across R +sessions. Supply an explicit path to persist documents across sessions.} \item{auto_create_docs}{Logical, whether to auto-create documents when clients request unknown document IDs. Default TRUE.}