Changelog
Source:NEWS.md
joinspy 0.8.0
CRAN release: 2026-03-31
Multi-Backend Join Support
- Join wrappers (
left_join_spy(),join_strict(), etc.) now auto-detect input class and dispatch to the native join engine: tibble inputs use dplyr, data.table inputs use data.table, plain data.frames use base Rmerge() - New
backendparameter for explicit override ("base","dplyr","data.table") - Class preserved through the full diagnose-repair-join cycle
- Graceful fallback to base R with a warning if the detected backend package is not installed
Documentation Overhaul
- README reframed around string-level key diagnostics (whitespace, case, encoding, typos) as the primary value proposition
- Three new vignettes: “Why Your Keys Don’t Match” (real-world scenarios), “Joins in Production” (pipelines, logging, guards), “Working with Backends” (tibble/data.table/base R)
- Existing vignettes (quickstart, common-issues) expanded from 850 to 4,500+ prose words
joinspy 0.7.0
Integration & Workflow
-
RStudio addin:
addin_join_inspector()opens an interactive Shiny gadget for exploring join diagnostics -
Logging & audit:
log_report()writes reports to file (text/JSON/RDS format) -
Automatic logging:
set_log_file()/get_log_file()for session-wide logging configuration -
Deferred access:
last_report()retrieves diagnostics after silent joins -
Silent mode:
.quiet = TRUEparameter for all*_join_spy()wrappers
joinspy 0.6.0
Advanced Join Patterns
-
check_cartesian(): Detect and warn about cross-join / Cartesian product explosions -
detect_cardinality(): Determine actual key relationship (1:1, 1:m, m:1, m:m) -
analyze_join_chain(): Analyze cascading joins in multi-table workflows
joinspy 0.5.0
Visualization
-
plot_venn(): Venn diagram of key overlap with PNG/SVG/PDF export -
plot_summary(): Summary tables in text, markdown, or data.frame format -
S3 integration:
plot()method for JoinReport objects
joinspy 0.3.0
Auto-Repair
-
join_repair(): Automatically fix common key issues- Trim leading/trailing whitespace
- Standardize case (to lower/upper)
- Remove invisible characters
- Convert empty strings to NA
-
suggest_repairs(): Generate R code snippets to fix detected issues - Dry-run mode: Preview changes without modifying data
joinspy 0.2.0
Enhanced Detection
Type & Format Issues
- Type coercion warnings (character to factor, numeric-as-string to numeric)
- Factor level mismatches between tables
- Empty string vs NA distinction
- Numeric precision warnings for floating-point keys
joinspy 0.1.0
Initial release.
Core Functions
-
join_spy()- Comprehensive pre-join diagnostic report -
key_check()- Quick key quality assessment -
key_duplicates()- Find and locate duplicate keys -
join_explain()- Explain row count changes post-join -
join_diff()- Before/after state comparison -
join_strict()- Join with cardinality enforcement -
left_join_spy(),right_join_spy(),inner_join_spy(),full_join_spy()- Join wrappers with diagnostics