Skip to contents

Overview

Start here. The package-level help topic summarises what checktor checks and how the pieces fit together.

checktor-package
checktor: Extra CRAN Submission Checks

Top-level orchestrator

Functions you call directly to diagnose a package.

checktor()
Diagnose Package for CRAN Submission Issues
checkup()
Quick Health Check
prescribe()
Treatment Recommendations
health_report()
Comprehensive Health Report
ci_report()
Report Findings in the Format Your CI Understands
configure_doctor()
Configure Package Doctor Defaults

Category diagnostics

One per category. Each runs the panel of lab_*() checks below it and returns them together, which is what checktor() calls.

diagnose_code_issues()
Diagnose Code Health Issues
diagnose_description_issues()
Diagnose DESCRIPTION File Issues
diagnose_documentation_issues()
Diagnose Documentation Issues
diagnose_general_issues()
Diagnose General Package Issues
diagnose_policy_violations()
Check for Common CRAN Policy Violations

Code checks

Individual checks on R source, run against the parsed syntax tree. The name after lab_ is the check name that tidy() reports.

lab_tf_usage()
Diagnose T/F Usage in R Code
lab_seed_setting()
Diagnose Hardcoded Seed Setting
lab_print_cat_usage()
Diagnose Print/Cat Usage in Functions
lab_detect_cores_robustness()
Diagnose Unguarded detectCores()
lab_option_changes()
Diagnose Unrestored Option Changes
lab_home_writing()
Diagnose Writes to the User's Home Directory
lab_temp_cleanup()
Diagnose Missing Temp-File Cleanup
lab_globalenv_mod()
Diagnose Writes to the Global Environment
lab_installed_packages()
Diagnose installed.packages() Usage
lab_warn_option()
Diagnose Changes to options(warn=)
lab_software_install()
Diagnose Package Installation From Package Code
lab_core_usage()
Diagnose Parallel Core Usage
lab_library_in_pkg()
Diagnose library() in Package Code
lab_sys_setenv()
Diagnose Unrestored Environment Variables
lab_hardcoded_credentials()
Diagnose Hardcoded Credentials in Package Code
lab_internal_ns()
Diagnose ::: in Package Code

DESCRIPTION checks

Individual checks on the DESCRIPTION file, parsed via base::read.dcf().

lab_software_names()
Diagnose Unquoted Software Names in DESCRIPTION
lab_language_names()
Diagnose Programming-Language Names in DESCRIPTION
lab_acronyms()
Diagnose Unexplained Acronyms in DESCRIPTION
lab_license()
Diagnose the License Field
lab_license_year()
Diagnose an Unfilled LICENSE Template
lab_title_case()
Diagnose Title Case in DESCRIPTION
lab_title_length()
Diagnose Title Length
lab_title_starts_with_article()
Diagnose Title Starting With an Article
lab_title_redundant_phrases()
Diagnose Redundant Phrases in Title
lab_description_function_quotes()
Diagnose Single-Quoted Function Names
lab_authors()
Diagnose the Authors@R Field
lab_identifier_format()
Diagnose Author Identifier Formatting
lab_cph_role()
Diagnose a Missing Copyright-Holder Role
lab_references()
Diagnose Reference Formatting in DESCRIPTION
lab_date_format()
Diagnose the DESCRIPTION Date Field
lab_encoding_utf8()
Diagnose a Non-Portable DESCRIPTION Encoding
lab_version_format()
Diagnose the DESCRIPTION Version Field
lab_spelling()
Diagnose Possibly Misspelled Words in DESCRIPTION
lab_description_length()
Diagnose Description Length
lab_description_starts_with()
Diagnose the Description Opening
lab_description_quoted_quotes()
Diagnose Double-Quoted Software Names

Documentation checks

Individual checks on .Rd files, walked via tools::parse_Rd().

lab_value_tags()
Diagnose Missing Value Tags in Documentation
lab_missing_examples()
Diagnose Exported Functions Missing Examples
lab_roxygen_usage()
Diagnose Stale Generated Documentation
lab_example_structure()
Diagnose Example Structure
lab_unexported_example_ns()
Diagnose Bare Calls to Unexported Functions in Examples
lab_commented_examples()
Diagnose Examples That Run Nothing
lab_donttest_vs_dontrun()
Diagnose dontrun Where donttest Belongs
lab_suggested_in_examples()
Diagnose Suggested Packages Used in Examples Without a Guard

Example, vignette and demo checks

Individual checks on the code CRAN reads outside R/: the examples in .Rd files, vignette chunks, and demos.

lab_example_interactive()
Diagnose Interactive Examples Wrapped in \\dontrun{}
lab_example_installs()
Diagnose Installs in Examples, Vignettes and Demos
lab_example_writes()
Diagnose Writes Outside the Temporary Directory in Examples
lab_example_state()
Diagnose Session State Left Changed by Examples
lab_example_internal_ns()
Diagnose ::: in Examples

General checks

Package-level checks covering size, URLs, NEWS and README links.

lab_package_size()
Diagnose Package Size
lab_urls()
Diagnose URL Issues in Package Files
lab_url_liveness()
Diagnose Broken and Redirecting URLs
lab_news_file()
Diagnose a Missing NEWS File
lab_readme_links()
Diagnose Relative Links in the README
lab_cran_comments_file()
Diagnose a Missing cran-comments.md File

CRAN policy checks

Individual checks for common CRAN policy violations, covering debugging leftovers, raw shell calls, and file and network access.

lab_browser_calls()
Diagnose Leftover browser() Calls
lab_system_calls()
Diagnose System Calls
lab_file_operations()
Diagnose Writes to the User's Filespace
lab_network_operations()
Diagnose Unguarded Network Access

Result classes

S3 constructors and print methods for diagnostic result objects. You typically don’t construct these by hand - use the diagnostic functions instead.

checktor_check_result()
Create a Standard Diagnostic Check Result Object
checktor_category_result()
Create a Multi-Category Diagnostic Result Object
print(<checktor_check_result>)
Print Method for checktor_check_result Objects
print(<checktor_category_result>)
Print Method for checktor_category_result Objects
print(<checktor_results>)
Print Method for checktor_results Objects

Result accessors

Plain accessors over diagnostic results so you never navigate nested sublists. Work on a full checktor() result, a single category, or a single check.

issues()
Extract issues, checks, or a per-category summary from checktor results
tidy(<checktor_results>) tidy(<checktor_category_result>) as.data.frame(<checktor_results>) as.data.frame(<checktor_category_result>)
Tidy a checktor result into a per-check data frame
summary(<checktor_category_result>) summary(<checktor_results>)
Per-category summary of checktor results
passed() is_healthy() n_issues() n_failed_checks() failed_checks()
Status predicates for checktor results
reexports tidy
Objects exported from other packages

Example scenarios

Helpers for building temporary packages with canned bad-pattern code, used in the @examples of individual diagnostics.

example_diagnose_scenario()
Create Example Diagnostic Scenario
show_example_files()
Show Available Example Files

Extending checktor

Register a custom check with checktor(), plus the AST toolkit the built-in checks use to inspect parsed sources and .Rd files.

register_check()
Register a Custom Check with checktor()
unregister_check()
Remove Registered Checks
registered_checks()
List Registered Checks
find_package_root()
Find the Root of the Package Containing a Path
read_r_xml()
Parse a Package's R Sources into Queryable XML
xpath_lints()
Collect XPath Matches as file:line Strings
xpath_per_file()
Summarise XPath Matches per File
undesirable_function_check()
Flag Every Call to a Named Function
not_under_fn_with_call_xpath()
XPath Predicate: Not Guarded by a Sibling Call
extract_rd_section()
Extract One Section from a Parsed .Rd File
collect_rd_text()
Flatten a Parsed .Rd Node to Text