diff --git a/.Rbuildignore b/.Rbuildignore index 2b3483fa0e..ad51ae2da7 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,6 +1,13 @@ ^\.Rprofile$ ^data\.table_.*\.tar\.gz$ ^vignettes/plots/figures$ +^\.Renviron$ +^[^/]+\.R$ +^[^/]+\.csv$ +^[^/]+\.csvy$ +^[^/]+\.RDS$ +^[^/]+\.diff$ +^[^/]+\.patch$ ^\.ci$ ^\.dev$ @@ -13,7 +20,6 @@ ^Makefile$ ^NEWS\.0\.md$ -^README\.md$ ^_pkgdown\.yml$ ^src/Makevars$ @@ -30,3 +36,5 @@ ^bus$ ^pkgdown$ +^lib$ +^library$ diff --git a/.appveyor.yml b/.appveyor.yml index 5d1e2c7149..7cabbb9062 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -32,7 +32,7 @@ environment: - R_VERSION: release # the single Windows.zip binary (both 32bit/64bit) that users following dev version of installation instructions should click -# - R_VERSION: devel # When off it's to speed up dev cycle; R-devel is still checked but by GLCI on a roughly hourly cycle. +# - R_VERSION: devel # Never turn back on. GLCI after merge covers latest daily R-devel very well, so we shouldn't confuse and slow down PR dev cycle by measuring PRs against daily R-devel too. If a change in R-devel yesterday breaks the PR, it's very unlikely to be due to something in the PR. So we should accept the PR if it passes R-release and fix separately anything related to R-devel which we'll see from GLCI. before_build: - cmd: ECHO no Revision metadata added to DESCRIPTION diff --git a/.ci/README.md b/.ci/README.md index ddf76d3d80..72568fd844 100644 --- a/.ci/README.md +++ b/.ci/README.md @@ -1,6 +1,6 @@ # data.table continuous integration and deployment -On each Pull Request opened in GitHub we run Travis CI and Appveyor to provide prompt feedback about the status of PR. Our main CI pipeline runs on GitLab CI. GitLab repository automatically mirrors our GitHub repository and runs pipeline on `master` branch. It tests more environments and different configurations. It publish variety of artifacts. Windows jobs are being run on our private windows CI runner. +On each Pull Request opened in GitHub we run Travis CI and Appveyor to provide prompt feedback about the status of PR. Our main CI pipeline runs on GitLab CI. GitLab repository automatically mirrors our GitHub repository and runs pipeline on `master` branch. It tests more environments and different configurations. It publish variety of artifacts. ## Environments @@ -9,13 +9,14 @@ On each Pull Request opened in GitHub we run Travis CI and Appveyor to provide p Test jobs: - `test-rel-lin` - `r-release` on Linux, most comprehensive test environment, `-O3 -flto -fno-common -Wunused-result`, extra check for no compilation warnings, includes testing [_with other packages_](./../inst/tests/other.Rraw) ([extended suggests](./../inst/tests/tests-DESCRIPTION)) - `test-rel-cran-lin` - `--as-cran` on Linux, `-g0`, extra check for final status of `R CMD check` where we allow one NOTE (_size of tarball_). -- `test-dev-cran-lin` - `r-devel` and `--as-cran` on Linux, `--enable-strict-barrier --disable-long-double` +- `test-dev-cran-lin` - `r-devel` and `--as-cran` on Linux, `--with-recommended-packages --enable-strict-barrier --disable-long-double`, tests for compilation warnings in pkg install and new NOTEs/Warnings in pkg check, and because it is R-devel it is marked as allow_failure - `test-rel-vanilla-lin` - `r-release` on Linux, no suggested deps, no OpenMP, `-O0`, tracks memory usage during tests - `test-310-cran-lin` - R 3.1.0 on Linux - `test-344-cran-lin` - R 3.4.4 on Linux - `test-350-cran-lin` - R 3.5.0 on Linux, no `r-recommended` - `test-rel-win` - `r-release` on Windows - `test-dev-win` - `r-devel` on Windows +- `test-old-win` - `r-oldrel` on Windows - `test-rel-osx` - MacOSX build not yet deployed, see [#3326](https://github.com/Rdatatable/data.table/issues/3326) for status Artifacts: @@ -25,9 +26,9 @@ Artifacts: - [html vignettes](https://rdatatable.gitlab.io/data.table/library/data.table/doc/index.html) - R packages repository for `data.table` and all _Suggests_ dependencies, url: `https://Rdatatable.gitlab.io/data.table` - sources - - Windows binaries for `r-release` and `r-devel` + - Windows binaries for `r-release`, `r-devel` and `r-oldrel` - [CRAN-like homepage](https://rdatatable.gitlab.io/data.table/web/packages/data.table/index.html) -- [CRAN-like checks results](https://rdatatable.gitlab.io/data.table/web/checks/check_results_data.table.html) - note that all artifacts, including this page, are being published only when all test jobs successfully pass, thus one will not see an _ERROR_ status there (unless `allow_failure` option has been used in a job). +- [CRAN-like checks results](https://rdatatable.gitlab.io/data.table/web/checks/check_results_data.table.html) - note that all artifacts, including check results page, are being published only when all test jobs successfully pass, thus one will not see an _ERROR_ status there (unless error happened on a job marked as `allow_failure`). - [docker images](https://gitlab.com/Rdatatable/data.table/container_registry) - copy/paste-able `docker pull` commands can be found at the bottom of our [CRAN-like homepage](https://rdatatable.gitlab.io/data.table/web/packages/data.table/index.html) ### [Travis CI](./../.travis.yml) @@ -64,7 +65,7 @@ Base R implemented helper script to orchestrate generation of most artifacts. It Template file to produce `Dockerfile` for, as of now, three docker images. Docker images are being built and published in [_deploy_ stage in GitLab CI pipeline](./../.gitlab-ci.yml). - `r-base-dev` using `r-release`: publish docker image of `data.table` on R-release - `r-builder` using `r-release`: publish on R-release and OS dependencies for building Rmarkdown vignettes -- `r-devel`: publish docker image of `data.table` on R-devel +- `r-devel`: publish docker image of `data.table` on R-devel built with `--with-recommended-packages --enable-strict-barrier --disable-long-double` ### [`deploy.sh`](./deploy.sh) diff --git a/.ci/publish.R b/.ci/publish.R index 147a397538..526d9bd80d 100644 --- a/.ci/publish.R +++ b/.ci/publish.R @@ -1,12 +1,17 @@ format.deps <- function(file, which) { deps.raw = read.dcf(file, fields=which)[[1L]] if (all(is.na(deps.raw))) return(character()) + deps.raw = gsub("\n", " ", deps.raw, fixed=TRUE) deps.full = trimws(strsplit(deps.raw, ", ", fixed=TRUE)[[1L]]) deps = trimws(sapply(strsplit(deps.full, "(", fixed=TRUE), `[[`, 1L)) + deps.full = gsub(">=", "≥", deps.full, fixed=TRUE) + deps.full = gsub("<=", "≤", deps.full, fixed=TRUE) + if (any(grepl(">", deps.full, fixed=TRUE), grepl("<", deps.full, fixed=TRUE), grepl("=", deps.full, fixed=TRUE))) + stop("formatting dependencies version for CRAN-line package website failed because some dependencies have version defined using operators other than >= and <=") names(deps.full) <- deps base.deps = c("R", unlist(tools:::.get_standard_package_names(), use.names = FALSE)) ans = sapply(deps, function(x) { - if (x %in% base.deps) deps.full[[x]] + if (x %in% base.deps) deps.full[[x]] ## base R packages are not linked else sprintf("%s", x, deps.full[[x]]) }) sprintf("
docker pull %s/%s/%s/%s:%s
docker pull %s/%s/%s/%s:%s
%s
", dcf[,"Description"]), sprintf("