Skip to content

Commit f818d06

Browse files
committed
Merge branch 'master' into forder_segfault
2 parents 7a9f27b + a9cd0bf commit f818d06

File tree

212 files changed

+40526
-7232
lines changed

Some content is hidden

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

212 files changed

+40526
-7232
lines changed

.Rbuildignore

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
.dir-locals.el
2+
.check.translations.R
23
^\.Rprofile$
34
^data\.table_.*\.tar\.gz$
5+
^config\.log$
46
^vignettes/plots/figures$
57
^\.Renviron$
68
^[^/]+\.R$
@@ -15,8 +17,9 @@
1517
^\.devcontainer$
1618
^\.graphics$
1719
^\.github$
20+
^\.vscode$
21+
^\.zed$
1822

19-
^\.appveyor\.yml$
2023
^\.gitlab-ci\.yml$
2124

2225
^Makefile$
@@ -26,6 +29,7 @@
2629
^src/Makevars$
2730
^CODEOWNERS$
2831
^GOVERNANCE\.md$
32+
^Seal_of_Approval\.md$
2933

3034
^\.RData$
3135
^\.Rhistory$
@@ -45,3 +49,6 @@
4549
^lib$
4650
^library$
4751
^devwd$
52+
53+
# only the inst/po compressed files are needed, not raw .pot/.po
54+
^po$

.appveyor.yml

Lines changed: 0 additions & 71 deletions
This file was deleted.

.ci/.lintr.R

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
dt_linters = new.env()
2+
for (f in list.files('.ci/linters/r', full.names=TRUE)) sys.source(f, dt_linters)
3+
rm(f)
4+
5+
# NB: Could do this inside the linter definition, this separation makes those files more standardized
6+
dt_linters <- eapply(dt_linters, function(linter_factory) linter_factory())
7+
8+
linters = c(dt_linters, all_linters(
9+
packages = "lintr", # TODO(lintr->3.2.0): Remove this.
10+
# eq_assignment_linter(),
11+
brace_linter(allow_single_line = TRUE),
12+
# TODO(michaelchirico): Activate these incrementally. These are the
13+
# parameterizations that match our style guide.
14+
# implicit_assignment_linter(allow_lazy = TRUE, allow_scoped = TRUE),
15+
# implicit_integer_linter(allow_colon = TRUE),
16+
# system_time_linter = undesirable_function_linter(c(
17+
# system.time = "Only run timings in benchmark.Rraw"
18+
# )),
19+
# undesirable_function_linter(modify_defaults(
20+
# default_undesirable_functions,
21+
# ifelse = "Use fifelse instead.",
22+
# Sys.setenv = NULL,
23+
# library = NULL,
24+
# options = NULL,
25+
# par = NULL,
26+
# setwd = NULL
27+
# )),
28+
undesirable_operator_linter(),
29+
# TODO(lintr#2441): Use upstream implementation.
30+
assignment_linter = NULL,
31+
absolute_path_linter = NULL, # too many false positives
32+
# TODO(lintr#2442): Use this once x[ , j, by] is supported.
33+
commas_linter = NULL,
34+
commented_code_linter = NULL,
35+
# TODO(linter->3.2.0): Activate this.
36+
consecutive_assertion_linter = NULL,
37+
cyclocomp_linter = NULL,
38+
function_argument_linter = NULL,
39+
indentation_linter = NULL,
40+
infix_spaces_linter = NULL,
41+
line_length_linter = NULL,
42+
missing_package_linter = NULL,
43+
namespace_linter = NULL,
44+
nonportable_path_linter = NULL,
45+
object_name_linter = NULL,
46+
object_usage_linter = NULL,
47+
quotes_linter = NULL,
48+
semicolon_linter = NULL,
49+
spaces_inside_linter = NULL,
50+
spaces_left_parentheses_linter = NULL,
51+
# TODO(michaelchirico): Only exclude from vignettes, not sure what's wrong.
52+
strings_as_factors_linter = NULL,
53+
# TODO(lintr->3.2.0): Fix on a valid TODO style, enforce it, and re-activate.
54+
todo_comment_linter = NULL,
55+
# TODO(michaelchirico): Enforce these and re-activate them one-by-one.
56+
brace_linter = NULL,
57+
fixed_regex_linter = NULL,
58+
if_not_else_linter = NULL,
59+
implicit_assignment_linter = NULL,
60+
implicit_integer_linter = NULL,
61+
keyword_quote_linter = NULL,
62+
object_overwrite_linter = NULL,
63+
paren_body_linter = NULL,
64+
redundant_equals_linter = NULL,
65+
undesirable_function_linter = NULL,
66+
unnecessary_concatenation_linter = NULL,
67+
unnecessary_nesting_linter = NULL,
68+
unreachable_code_linter = NULL,
69+
unused_import_linter = NULL
70+
))
71+
rm(dt_linters)
72+
73+
# TODO(lintr#2172): Glob with lintr itself.
74+
exclusions = c(local({
75+
exclusion_for_dir <- function(dir, exclusions) {
76+
files = file.path("..", list.files(dir, pattern = "\\.(R|Rmd|Rraw)$", full.names=TRUE))
77+
stats::setNames(rep(list(exclusions), length(files)), files)
78+
}
79+
c(
80+
exclusion_for_dir("tests", list(
81+
quotes_linter = Inf,
82+
# TODO(michaelchirico): Enforce these and re-activate them one-by-one.
83+
implicit_integer_linter = Inf,
84+
infix_spaces_linter = Inf,
85+
undesirable_function_linter = Inf
86+
)),
87+
exclusion_for_dir(c("vignettes", "vignettes/fr"), list(
88+
quotes_linter = Inf,
89+
sample_int_linter = Inf
90+
# strings_as_factors_linter = Inf
91+
# system_time_linter = Inf
92+
)),
93+
exclusion_for_dir("inst/tests", list(
94+
library_call_linter = Inf,
95+
numeric_leading_zero_linter = Inf,
96+
undesirable_operator_linter = Inf, # For ':::', possibly we could be more careful to only exclude ':::'.
97+
# TODO(michaelchirico): Enforce these and re-activate them one-by-one.
98+
comparison_negation_linter = Inf,
99+
condition_call_linter = Inf,
100+
duplicate_argument_linter = Inf,
101+
equals_na_linter = Inf,
102+
missing_argument_linter = Inf,
103+
paste_linter = Inf,
104+
rep_len_linter = Inf,
105+
sample_int_linter = Inf,
106+
seq_linter = Inf,
107+
unnecessary_lambda_linter = Inf
108+
))
109+
)
110+
}),
111+
list(`../inst/tests/froll.Rraw` = list(dt_test_literal_linter = Inf)) # TODO(michaelchirico): Fix these once #5898, #5692, #5682, #5576, #5575, #5441 are merged.
112+
)

.ci/README.md

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# data.table continuous integration and deployment
22

3-
On each Pull Request opened in GitHub we run GitHub Actions test jobs to provide prompt feedback about the status of PR. Our main CI pipeline runs on GitLab CI nightly. GitLab repository automatically mirrors our GitHub repository and runs pipeline on `master` branch every night. It tests more environments and different configurations. It publish variety of artifacts.
3+
On each Pull Request opened in GitHub we run GitHub Actions test jobs to provide prompt feedback about the status of PR. Our more thorough main CI pipeline runs nightly on GitLab CI. GitLab repository automatically mirrors our GitHub repository and runs pipeline on `master` branch every night. It tests more environments and different configurations. It publishes a variety of artifacts such as our [homepage](https://rdatatable.gitlab.io/data.table/) and [CRAN-like website for dev version](https://rdatatable.gitlab.io/data.table/web/packages/data.table/index.html), including windows binaries for the dev version.
44

55
## Environments
66

@@ -35,10 +35,6 @@ Artifacts:
3535

3636
TODO document
3737

38-
### [Appveyor](./../.appveyor.yml)
39-
40-
TODO document
41-
4238
## CI tools
4339

4440
### [`ci.R`](./ci.R)
@@ -48,3 +44,22 @@ Base R implemented helper script, [originally proposed to base R](https://svn.r-
4844
### [`publish.R`](./publish.R)
4945

5046
Base R implemented helper script to orchestrate generation of most artifacts and to arrange them nicely. It is being used only in [_integration_ stage in GitLab CI pipeline](./../.gitlab-ci.yml).
47+
48+
## GitLab Open Source Program
49+
50+
We are currently part of the [GitLab for Open Source Program](https://about.gitlab.com/solutions/open-source/). This gives us 50,000 compute minutes per month for our GitLab CI. Our license needs to be renewed yearly (around July) and is currently managed by @ben-schwen.
51+
52+
## Updating CI pipeline
53+
54+
Basic CI checks are also run on every push to the GitLab repository. This can **and should** be used for PRs changing the CI pipeline before merging them to master.
55+
56+
```shell
57+
# fetch changes from remote (GitHub) and push them to GitLab
58+
git fetch [email protected]:Rdatatable/data.table.git new_branch:new_branch
59+
git push
60+
# after updating on GitHub, pull changes from remote and push to GitLab
61+
git pull [email protected]:Rdatatable/data.table.git new_branch
62+
git push
63+
```
64+
65+
Make sure to include a link to the pipeline results in your PR.

0 commit comments

Comments
 (0)