R: tests/*.R scripts run by R CMD check are not tests (data.table), sanitizer images (rocker/r-devel-san) are the R way to run ASan/UBSan, styler on issue_comment is not a gate
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 40/100
Direção de pesquisa
The three R rules live in ecosystems/r.py: the _styler check around lines 124-137 (it must consider the workflow trigger, not just the commit), the R_TEST_FILES.path regex (it must also accept tests/*.R scripts), and the sanitizer detection (it must recognise *-san and rocker/r-devel-san images). Start by reading those rules and the corpus entries for testthat, ggplot2 and data.table in corpus/. Done when those expectations match the corpus results without regressing the testthat and tinytest layouts.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
data.table has one of the largest R test suites (inst/tests/*.Rraw driven by tests/*.R, which R CMD check runs by definition) → FAIL "no tests found (testthat or tinytest files)". Its two GitLab jobs run the check under R built with -fsanitize=address,undefined (rocker/r-devel-san) → "no sanitizers found". testthat and ggplot2 PASS "CI enforces the styler style" though styler runs only in a /style issue-comment job that no push or PR triggers.
Evidence from the corpus audit
r-lib/testthat, tidyverse/ggplot2 (and tidyverse/dplyr) / code-formatting
- kind: FALSE_POSITIVE
- actual: PASS (R): "CI enforces the styler style"
- expected: FAIL/WARN for testthat and ggplot2: styler runs only in the
stylejob ofpr-commands.yaml, which is triggered by a maintainer typing/stylein a PR comment (issue_comment), so no push or pull request is ever checked; for dplyr the PASS is right but should creditair(format-suggest.yamlrunsair format .on everypull_request_targetand fails throughreviewdog/action-suggesterwithfail_level: error), not styler. - evidence: testthat
.github/workflows/pr-commands.yaml:52:if: ${{ github.event.issue.pull_request && (github.event.comment.author_association == 'MEMBER' || ...) && startsWith(github.event.comment.body, '/style') }},:73:run: styler::style_pkg(), followed bygit commit -m 'Style'; the workflow's only trigger ison: issue_comment: types: [created]. ggplot2pr-commands.yaml:69,73identical; ggplot2 hasair.tomlbut no job runs air. Validator:ecosystems/r.py:124-137(_styler: "it enforces the style where the job fails on git diff --exit-code or commits the changes") counts the commit without looking at the job's trigger. - repro: the r-lib
pr-commands.yamlexample (onissue_comment,/styleguard,styler::style_pkg()+git commit) as the only workflow touching styler; expect no formatting enforcement. - confidence: medium (the documented rule is applied as written; the rule itself is what is wrong)
Rdatatable/data.table / tests-run
- kind: FALSE_NEGATIVE
- actual: FAIL: R: no tests found (testthat (tests/testthat/test-.R) or tinytest (inst/tinytest/test_.R) files)
- expected: PASS: data.table has one of the largest R test suites (22,016-line
inst/tests/tests.Rrawplus 11 more.Rrawfiles) run bytests/*.Rscripts, whichR CMD checkexecutes by definition (everytests/*.Rfile is a test); CI runsR CMD checkinR-CMD-check-occasional.yamland.gitlab-ci.ymlandcheck-r-packageinR-CMD-check.yaml. - evidence:
tests/main.R:2-4:require(data.table)/test.data.table() # runs the main test suite of 5,000+ tests in /inst/tests/tests.Rraw;tests/also holdsS4.R froll.R nafill.R optimize.R programming.R types.R ...;inst/tests/tests.Rraw(22016 lines). Validatorecosystems/r.pyR_TEST_FILES.path:(?:^|/)(?:tests/testthat/test[-_][^/]+|inst/tinytest/test_[^/]+)\.[Rr]$recognises only testthat and tinytest layouts. - repro:
DESCRIPTION,tests/main.Rcontainingstopifnot(foo::f() == 1), workflow withr-lib/actions/check-r-package@v2; expect tests found (R CMD check runstests/*.R). - confidence: high
Rdatatable/data.table / sanitizers
- kind: UNSUPPORTED
- actual: FAIL: no sanitizers found; enable AddressSanitizer, UndefinedBehaviorSanitizer
- expected: PASS (or at least a mention): two GitLab CI jobs run the whole check under R builds compiled with
-fsanitize=address,undefined(clang and gcc), using the R community's standard approach of a prebuilt sanitizer image (rocker/r-devel-san,rhub/*-san, here the project's ownr-devel-clang-san/r-devel-gcc-san), and fail the job on sanitizer output. - evidence:
.gitlab-ci.yml:220-222:test-lin-dev-clang-san:...image: registry.gitlab.com/rdatatable/dockerfiles/r-devel-clang-san;:227:LSAN_OPTIONS: "suppressions=$CI_PROJECT_DIR/.dev/lsan.supp";:235:# fail if R CMD check had failed or if sanitizer output found;:238-240the gcc twin;.ci/README.md:16-17documents both asclang -fsanitize=address,undefined. The flags live in the image, so only the image name (*-san,rocker/r-devel-san,rocker/r-devel-ubsan-clang) is visible. - repro:
.gitlab-ci.ymljob withimage: rocker/r-devel-sanrunningR CMD check; expect sanitizers recognised (ASan+UBSan) for the R package's native code. - confidence: medium
Found by the regression-corpus audit (235 real repositories, one or more per ecosystem profile; corpus and expected results in corpus/). Evidence is quoted from the audited checkouts at the commits pinned in corpus/projects.toml; <checkouts>/<owner>__<repo> is such a checkout.
🤖 Generated with Claude Code
- Linguagem predominante
- Python
- Estrelas
- 4
- Forks
- 1
- Merge médio
- 10h 41min
- PRs com merge (30d)
- 79
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de cpp-best-practices/project_validator
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
cpp-best-practices/project_validator#267 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
cpp-best-practices/project_validator#263 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
cpp-best-practices/project_validator#260 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
cpp-best-practices/project_validator#259 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
cpp-best-practices/project_validator#255 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de cpp-best-practices/project_validator
Issues semelhantes
-
add entry to blockAberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
StevenBlack/hosts#3299 ·
-
`garak --report` overwrites the input report when its name has no ".report"Talvez já em andamento @0z5a assumiu hoje. Abertaneeds-triage
Dificuldade 2/5 Meio dia Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 2 dias
-
plot_graph crashes when a mesh node has no m2m edgeTalvez já em andamento @tygvi assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
mllam/neural-lam#883 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
future-agi/future-agi#4092 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
transcript analytics: a text whose only protected spans the prose pass redacts is withheld wholeAberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
WingedGuardian/GENesis-AGI#4641 ·
Mantenedores costumam responder em até 1 dia