Skip to content

Fix CRAN R CMD check issues by 2026-02-01 #7587

Description

@github-actions

This package is failing CRAN checks and is at risk of archival.

https://cran.r-project.org/web/checks/check_results_data.table.html

This issue was opened by https://github.com/Rdatatable/data.table/actions/runs/20909842626.

Activity

  1. TysonStanley commented on Jan 12, 2026

    @TysonStanley
    Member

    Can confirm, received the email earlier today. Have until February 1. No additional details were provided by CRAN team. I created the patch-1.18.2 branch based on the 1.18.0 release for us to work with.

  2. added this to the 1.18.2 milestone on Jan 12, 2026
  3. ben-schwen commented on Jan 12, 2026

    @ben-schwen
    Member

    What does the email say? Is it about ATTRIB, rchk or valgrind?

  4. TysonStanley commented on Jan 12, 2026

    @TysonStanley
    Member

    ATTRIB specifically:

    Specifically, please see the NOTE in the compiled code check about
    using ATTRIB or SET_ATTRIB.  These are from
    
          \item Packages using the non-API functions \code{ATTRIB} and
          \code{SET_ATTRIB} will now receive check \samp{NOTE}s.
          See \sQuote{Writing R Extensions} for alternatives to use.
    
    where "Working with attributes" in R-exts has details on alternatives.
    
    
  5. MichaelChirico commented on Jan 12, 2026

    @MichaelChirico
    Member

    Great! I pushed as cherry-pick all the issues on master I think can be submitted in the patch:

    https://github.com/Rdatatable/data.table/compare/1.18.0..patch-1.18.2

    @ben-schwen should we include #7538?

  6. MichaelChirico commented on Jan 12, 2026

    @MichaelChirico
    Member

    Is there anything else we should put into the patch? IMO it's ready to submit whenever you have time.

    https://rcdata.nau.edu/genomic-ml/data.table-revdeps/analyze/2026-01-12/ is clean too (though there's still the issue of ~1000 packages not installing: tdhock/data.table-revdeps#37)

    cc @Rdatatable/committers.

  7. aitap commented on Jan 12, 2026

    @aitap
    Member

    I think we'll be asked about the "Additional issues" anyway, so if #7589 is the right fix for #7546, I'd like to make it part of the release too. Definitely in favour of small, early patch in response to a CRAN deadline.

  8. TysonStanley commented on Jan 12, 2026

    @TysonStanley
    Member

    This is great, I'll have time this upcoming weekend to get this submitted. I'll notify when I start the process for this patch in case there are any other small fixes we want to include.

  9. ben-schwen commented on Jan 13, 2026

    @ben-schwen
    Member

    Would definitely pick #7589
    #7538 seems also like a good choice since it should also make set more robust

  10. jangorecki commented on Jan 14, 2026

    @jangorecki
    Member

    Please also use assignment of issues to 1.18.2 milestone, so it is very clear to browse through. Thank for looking after patch release.

  11. aitap commented on Jan 19, 2026

    @aitap
    Member
  12. aitap commented on Jan 20, 2026

    @aitap
    Member

    c54ae16 passes R CMD check --as-cran with nothing worse than URL issues and I didn't see any more problems from the 20 reverse dependencies.

  13. TysonStanley commented on Jan 21, 2026

    @TysonStanley
    Member

    Thanks, @aitap. I'll start the release process tonight and likely get this off to CRAN tomorrow.

  14. 4 remaining items

  15. MichaelChirico commented on Jan 23, 2026

    @MichaelChirico
    Member

    strange that this started with 1.18.2, does this happen with 1.18.0? did something change in r-devel?

  16. aitap commented on Jan 24, 2026

    @aitap
    Member
  17. TysonStanley commented on Jan 25, 2026

    @TysonStanley
    Member

    My previous setup for testing under valgrind was a little messed up but now testing on r-devel in docker looks like this is now passing (and can be used for future releases). Will amend the version to 1.18.2-1 for CRAN and resubmit.

  18. TysonStanley commented on Jan 25, 2026

    @TysonStanley
    Member

    As a heads up, packageVersion() normalized 1.18.2-1 to 1.18.2.1, which is called during onLoad() and so using anything other than dots will give us an error there (unless we want to adjust our onLoad function to avoid that normalization to all dots). I'll update the release docs as long as we are ok with 1.18.2.1 as the resubmitted version of 1.18.2.

  19. TysonStanley commented on Jan 25, 2026

    @TysonStanley
    Member

    I'm not sure I understand this NOTE and why it would be considered a failed pretest. Anyone understand it? It is the test under valgrind.

    Package check result: NOTE
    
    Check: tests, Result: NOTE
        Running ‘S4.R’ [13s/13s]
        Running ‘autoprint.R’ [10s/10s]
        Comparing ‘autoprint.Rout’ to ‘autoprint.Rout.save’ ...
      1,5d0
      < ==773278== Memcheck, a memory error detector
      < ==773278== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al.
      < ==773278== Using Valgrind-3.25.1 and LibVEX; rerun with -h for copyright info
      < ==773278== Command: /home/hornik/tmp/R-d-gcc-valg/bin/exec/R -f autoprint.R --restore --save --no-readline --vanilla
      < ==773278== 
      187,204d181
      < > proc.time()
      <    user  system elapsed 
      <   9.202   0.232   8.611 
      < ==773278== 
      < ==773278== HEAP SUMMARY:
      < ==773278==     in use at exit: 58,125,770 bytes in 10,720 blocks
      < ==773278==   total heap usage: 30,910 allocs, 20,190 frees, 89,635,873 bytes allocated
      < ==773278== 
      < ==773278== LEAK SUMMARY:
      < ==773278==    definitely lost: 0 bytes in 0 blocks
      < ==773278==    indirectly lost: 0 bytes in 0 blocks
      < ==773278==      possibly lost: 0 bytes in 0 blocks
      < ==773278==    still reachable: 58,125,770 bytes in 10,720 blocks
      < ==773278==         suppressed: 0 bytes in 0 blocks
      < ==773278== Rerun with --leak-check=full to see details of leaked memory
      < ==773278== 
      < ==773278== For lists of detected and suppressed errors, rerun with: -s
      < ==773278== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
        Running ‘froll.R’ [54s/54s]
        Running ‘knitr.R’ [12s/12s]
        Comparing ‘knitr.Rout’ to ‘knitr.Rout.save’ ...
      1,5d0
      < ==773575== Memcheck, a memory error detector
      < ==773575== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al.
      < ==773575== Using Valgrind-3.25.1 and LibVEX; rerun with -h for copyright info
      < ==773575== Command: /home/hornik/tmp/R-d-gcc-valg/bin/exec/R -f knitr.R --restore --save --no-readline --vanilla
      < ==773575== 
      60,77d54
      < > proc.time()
      <    user  system elapsed 
      <  10.644   0.221  10.026 
      < ==773575== 
      < ==773575== HEAP SUMMARY:
      < ==773575==     in use at exit: 66,029,518 bytes in 12,589 blocks
      < ==773575==   total heap usage: 41,416 allocs, 28,827 frees, 106,364,631 bytes allocated
      < ==773575== 
      < ==773575== LEAK SUMMARY:
      < ==773575==    definitely lost: 0 bytes in 0 blocks
      < ==773575==    indirectly lost: 0 bytes in 0 blocks
      < ==773575==      possibly lost: 0 bytes in 0 blocks
      < ==773575==    still reachable: 66,027,670 bytes in 12,568 blocks
      < ==773575==         suppressed: 0 bytes in 0 blocks
      < ==773575== Rerun with --leak-check=full to see details of leaked memory
      < ==773575== 
      < ==773575== For lists of detected and suppressed errors, rerun with: -s
      < ==773575== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
        Running ‘main.R’ [25m/25m]
        Running ‘mergelist.R’ [59s/59s]
        Running ‘nafill.R’ [16s/16s]
        Running ‘other.R’ [9s/9s]
        Running ‘programming.R’ [38s/37s]
        Running ‘types.R’ [13s/13s]
    

    I can argue that this shouldn't stop the patch from being published if this isn't important.

  20. MichaelChirico commented on Jan 25, 2026

    @MichaelChirico
    Member

    It looks like this is just Rout.save differing die to the valgrind output. valgrind itself is not showing any issues.

    strange for this to produce a NOTE since this must happen on all Rout.save golden tests?

  21. aitap commented on Jan 25, 2026

    @aitap
    Member
  22. aitap commented on Jan 26, 2026

    @aitap
    Member

    Judging by data.table_1.18.2.tar.gz having moved from recheck to archive, I suppose we'll have to resubmit with #7632 cherry-picked?

    Edit: I see, data.table_1.18.2.1.tar.gz is now in the waiting directory.

  23. TysonStanley commented on Jan 26, 2026

    @TysonStanley
    Member

    The resubmitted version is 1.18.2.1 and is passing checks except Kurt just brought up the fact our README link to governance isn't working. Any ideas why that is? If we have to resubmit to fix that, we can cherry-pick #7632.

  24. TysonStanley commented on Jan 26, 2026

    @TysonStanley
    Member

    Actually, since this is something we can fix in master without a resubmission, I can let him know that that is just a web issue and we should be good to publish 1.18.2.1

  25. MichaelChirico commented on Jan 26, 2026

    @MichaelChirico
    Member

    Yes, I guess it was slightly imprudent to be messing around with the website in the middle of submission 😅

  26. TysonStanley commented on Jan 26, 2026

    @TysonStanley
    Member

    Not a big deal I think, it had to be manually reviewed anyway (hope eventually they can find a better way of handling valgrind outputs) but just another thing to keep in mind during this process.

  27. ben-schwen commented on Jan 26, 2026

    @ben-schwen
    Member

    FWIW Ivan and I fixed the governance homepage thingy 😅

  28. TysonStanley commented on Jan 27, 2026

    @TysonStanley
    Member

    1.18.2.1 on CRAN and tagged on GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions