Changes in version 1.4.23 (2025-10-22) - Fix CRAN M1 Mac additional issues related to test failing because we used a library path in un-normalized form for temp test packages, but the unload namespace mechanism uses the normalized form to de-register cached rdb files. Seems this was caused by a MacOS change rather than R, but not 100% sure. Changes in version 1.4.22 (2025-03-18) - Fix unnamed arguments error in a call to deparse that manifested with improvements changes in r-devel. - Fix bad all.equal method NAMESPACE entries (h/t @MichaelChirico), see source issue for details. Changes in version 1.4.21 (2024-05-18) - Suppress test caused to fail by checks added to parent.env<- in r-devel r86545. Changes in version 1.4.20 (2023-10-08) - Add explicit alias for fansi-package now that it is no longer auto-generated by roxgen2 from the @docType package directive. Changes in version 1.4.19 (2023-03-20) - #293: Output all failed tests in non-interactive mode, instead of just the first one. - #292: Clarify warnings about stderr in transcript mode. - Fully unhook the evaluation environment chain prior to storing unitizers. Previously only the portions of the chain part of the unitizer was unhooked, but with some tests it becomes possible to capture environments created during the pre expression evaluations. This could cause warnings about package environments being unavailable on reload of RDSes. Changes in version 1.4.18 (2022-03-23) - #289: Better document pitfalls of non-ASCII in e.g. literals in tests. Related: we no longer attempt to do a parse/deparse round trip when displaying recorded test expressions as the round trip could fail in some cases. - #288: Prevent upgrade prompt in non-interactive mode interrupting result display (regression introduced in 1.4.15). - #286: Add a "transcript" mode where test output can better be interpreted as a log, intended non-interactive mode. - #272: Highlight silently emitted conditions in tests that have otherwise no other output. - #252, #253: Better documentation of feature incompatibility with devtools::load_all, and more graceful recovery from failures caused by the incompatibility. This only affects unitizer sessions run with package search path management enabled (h/t @blset). - #247: Disallow running unitizer without first attaching it to the search path. - #245: Fix re-run bookmarking when reviewing multiple unitizers with unitize_dir. Changes in version 1.4.16-17 - #285: Relax condition call - #284: Handle CTRL+C interrupts while multi-line editing. - #283: Multi-unitizer upgrade regression introduced in 1.4.15. - Address CRAN failures due to path inconsistencies on Windows machines. - #279: Multi-line input parsing works in non-English locales. Changes in version 1.4.15.9000 Non-CRAN release to fix test issues under covr and on older R versions. Changes in version 1.4.15 (2021-08-01) - Test suite switched to aammrtf, removing suggests dependency to testthat. - Upgrade process modified so that old unitizer that pass tests are not required to be upgraded. - show.progress parameter added to control chattiness of progress updates. - Invalid unitizers now prevent review of valid unitizers. Fix the invalid unitizers, or remove them from the review list (e.g. by moving them out of the primary unitizer directory). - review exposes use.diff and show.progress parameters. - #278: Show more context when returning to a test via browser or on re-evaluation. - #277: Handle CTRL+C interrupts so they do not kill the unitizer session (h/t @milesmcbain). Changes in version 1.4.13-14 - unitizer no longer directly accesses .Traceback to set traces in interactive sessions. Instead, traceback() and .traceback() are masked at the interactive prompt. Changes in version 1.4.11-12 - #248: Ensure vignettes can be tested with tools::testInstalledPackage. - #250, #251, #254: Comment parsing improvements (h/t @blset, @kalibera) - #263: Clarify documentation about potential state management issuess. This includes renaming "recommended" state management mode (see ?unitizerState) to "suggested" ("recommended" still works). - #268: options(warn=2) now works at the unitizer prompt in interactive mode. - #265: Bad vignette links in README (h/t @moodymudskipper). - #260: Remove old test error display code. - #246, #243: Assorted documentation updates. #254: Comment parsing. - Fix sprintf unused argument errors in new versions of r-devel (h/t @kalibera). - stringsAsFactors rose from the grave; we put it back. Changes in version 1.4.10 (2020-05-12) - Banish ghosts of stringsAsFactors. Changes in version 1.4.9 (2020-03-02) - #262 Interactive prompt slowness caused by recent R changes to showConnections(). - #261 RDS files are explicitly saved in serialization version 2 for backwards compatibility. - #244 Squash all partial match warnings that unitizer emitted under options(warnPartialMatch*). - Tests explicitly set stringsAsFactors=TRUE so they don't fail with the anticipated changed for R4.0. - Adds the 'unitizer.restarts.ok' option to suppress warnings about being run within withRestart blocks. Changes in version 1.4.8 (2019-03-27) - install.packages calls in tests now use a temporary folder for library. Changes in version 1.4.7 (2019-03-16) - Set RNGversion() in internal tests due to changes to R sampling mechanism. Changes in version 1.4.6 (2019-01-27) - #258 Remove devtools as a suggests dependency (reported by @jimhester). - #257 Ensure all slots in S4 prototypes exist in the class definition (reported by B. Ripley). Changes in version 1.4.5 (2017-11-24) - Colors in test browser working again. - #220 Fix vignette ordering on CRAN. - #225 Inferring file locations when not in pkg top level. - #237 Option to turn off diffs. - #239 Document issues with deparsing doubles in tests. - #242 Correctly parse newlines in prompt input. - #241 q() actually works now. - #231 Report parse warnings at prompt. - #234 Random seed issues. - #220 Re-order vignettes. - Wrap diffObj call in try to avoid killing unitizer section when diffObj errors. - Modify test_dir calls to use wrap on testthat versions greater than 0.1.2. Changes in version 1.4.4 (2017-09-02) - Fix tests broken by R-devel 3.4.1 improvements to S4 deparsing - #232 document that .Last.value does not work - #228 more docs on handling RDS files - README typos (@eddelbuettel) - Improve vignette index Changes in version 1.4.3 (2017-06-08) - #221 Crash on Re-Run due to poor comparison of parsed test file sources - #222 Allow loading of unitizers generated by later versions of the package in earlier version of the packages provided the object validates - #224 Slow re-eval in recommended state mode with lots of files Changes in version 1.4.1-2 Fixing CRAN submission errors. Changes in version 1.4.0 (2017-04-03) First Release to CRAN. - #213: Disable advanced state management by default to comply with CRAN - #203: Better reporting of search path state differences - Assorted bugfixes and enhancements: #214, #215, #208, #201, #208, #199, #197 Changes in version 1.3.0 Interim release to get changes over past year out on the master branch. Improvement / Changes: - #194: Performance improvements - #102: Ability to break out of multi file review with QQ - #186: If you type q() or quit() by mistake you can now cancel that action before unitizer terminates unceremoniously - #142: Ability to run unitize and unitize_dir without specifying any arguments (infer from working directory) - #168: Failing tests now will display all output and conditions - #171: Flush warnings in unitizer REPL - Improved integration of object diffs via .DIFF and .diff - Display improvements, including: - Cleaner separation of unitizer meta-output vs. test or command line - #164, #176: Streamline state difference display - Several other enhancements Bugfixes: - #188: Search path issues in r-devel @richierocks - Fix unintended detaching of tools:rstudio, and many others - base.env now unique for each unitizer Changes in version 1.1.0 Improvement / Changes: - #161: Compare objects with diffobj::diffObj - #166: More systematic handling of library/attach/detach Bugfixes: - Several unitizer prompt issues: - No longer capture prompt evals so debug is usable again - Parse errors reported correctly - #165: Confusing Help Prompt - Reference state properly preserved (previously would incorrectly use new state for reference tests kept in store) - Internal shimming of library/detach/attach more robust - Updated tests for changes in testthat, R Changes in version 1.0.0-1.0.9 Improvement / Changes: - More comprehensive state tracking and resetting: - options, random.seed, and wd are tracked in addition to search path - state is reset when reviewing tests as well as when executing them - you are alerted off state differences between new and reference tests on error - State control parameters are streamlined; API breaking - Whether an expression is ignored or not is now a function of whether the expression returns visibly or not - Pre and post test scripts - 'helper' directory renamed '_pre' - Can now use a '_post' directory to run cleanup - Interactive environment cleanup - Display tweaks - Contextual help tweaks - Vignette updates - Demo update - Added Rdiff_obj to run a tools::Rdiff directly on two R objects Internal: - Reduced storage requirements for the unitizer stores - No longer storing assignments both as test value and object in environment - Calls recorded deparsed instead of as call objects - Shimming used for search path tracking is more lightweight - Text capture much more robust Issues Fixed: 107, 106, 104, 103, 101, 99, 98, 94, 93, 90, 85, 84, 77, 74, 71, 67, 127, 115, 132, 134 Changes in version 0.9.0 Improvements / Changes: - Complete restructure of internal test management to allow for much more robust unitize_dir behavior (#51) - Added testthat -> unitizer translation utilities (see ?testthat_translate_file) - Can now pre-load objects before unitizing; unitize_dir and unitize by default auto-preload files in subdir 'helper' - Renamed arg env.clean to par.env (technically API breaking, but since no one is using this package yet...) - Many usability fixes (#48, #68, #82, #83), and improved text display - Improved path inference to better guess desired unitizer based on partiallly specified file names (#72) Other - unitize_dir works with empty dirs (#78) - Better management of file locations and names (#35, #75) Changes in version 0.8.1 Bugfixes - review now properly infers unitizer locations Changes in version 0.8.0 Improvements: - Added ability to accept multiple tests at once (Issue #45, use wisely...) - unitize can now infer partially specified test file names (in particular, will know to look in pkgname/tests/unitizer; see ?infer_unitizer_location) - parse_with_comments no longer run in non-interactive mode (#63) - Test call now part of output of test object show method (#54) Bugfixes: - Comments inside unitizer_sect preserved (#64) - Ignored tests assigned to first non-ignored test section (#57) - Prompt display issues (#65, #66) Internal: - search_path_cleanup more robust (#59) - get_text_capture tests added (#60) Changes in version 0.7.1 Improvements: - Reduced test execution and parsing overhead - Better handling of call recording for traceback and condition calls - editFunNames becomes editCalls and provides more comprehensive editing of calls (Issue #52) Bufixes: - Comment handling in calls (Issues #56, #58) - Comment deparsing (Issues #39, #47, #52) Changes in version 0.7.0 Improvements: - Failed tests now automatically output a snippet of new and reference objects (Issue #34) - Text handling generally improved (better wrapping, etc. Issue #38) - Parsing speed improved (Issue #15) - Got rid of get* functions, instead, access test details with .NEW/.REF (Issue #29) - Implemented editFunNames to allow user to modify stored calls in unitizer so that tests can be re-used even if function names are changed Changes in version 0.6.5 Doc updates; should have been part of 0.6.4, but was too rushed to push... Changes in version 0.6.4 Improvements: - Comment parsing faster (issue #15) Bugfixes: - Reference section logic improved (assume fixes #36 until there is evidence against) - Several parse errors fixed Other: - Now depends on R 3.1.2 (not really, but that's what we are developing on and don't have bandwidth to test against multiple R versions) Changes in version 0.6.3 Bugfixes: - stderr now show in review mode (issue #43) - package startup messages suppressed (issue #23) - small demo bug Changes in version 0.6.2 Bugfixes: - Better whitespace wrapping in terminal mode (partially addresses #38) - Can now drop all items in review mode (issue #37) - Workaround an R parse bug (issue #41) - traceback() now works for stop(simpleError(...)) type stops Behavior changes: - History is only subbed out if you need to type input (issue #40) v0.6.1 Minor release, no substantive changes. Bugfixes: - Loading a unitizer no longer automatically modifies it through upgrade - upgrade cleaned up and has tests now - calling functions in form pkg::fun or pkg:::fun no longer causes problems when checking for ignoredness Behavior changes: - get no longer warns if unitizer ids don't match Changes in version 0.6.0 New Features: - Added a demo (demo(unitizer)) - Broke up and updated vignettes - unitize_dir allows you to run all tests in a directory (issue #24) - review allows you to review and drop tests from an existing unitizer store (issue #21) - Test navigation mechanism improved (issue #26) - Typing R at the unitizer prompt now allows you to review all tests - You can skip ahead too - unitize(..., force.update=TRUE) will overwrite unitizer even if there were no changes recorded (issue #19) Behavior changes: - unitize now runs with search.path.clean=TRUE by default Bugfixes: - Comparison function warnings not captured (issue #14) - Search path restoration error messages fixed (issue #22) - Navigation regressions fixed (issue #30) Other: Summary titles cleaned up, interative prompts made clearer, package reload warn conflicts quieted (d2fe594c747, #23) Changes in version 0.5.0 New Features: - Can now run tests in clean environment (i.e. objects from .GlobalEnv will not be visible) (issue #13) - Can now run tests with clean search path (i.e. only the basic R libraries are loaded) (also issue #13), use unitize(..., search.path.clean=TRUE) - New vignette "Reproducible Tests" discusses the above features Bugfixes: - Expressions printed as tests evaluated now truncated corretly (issue #4) - Incorrect displaying/hiding of ignored tests in some circumstances fixed Other Improvements: - Summary no longer includes "removed" tests in matrix, since those are section- less - Other minor clean-up of the interactive environment prompting Changes in version 0.4.3 Many interactive use bug fixes: - LBB now parsed properly (issue #5) - Non interactive parse (issue #11) - Review and Back behavior consistent now in interactive use (issue #3) - Other interactive use cleanup (issues #6, 12, 10, 9) - Vignette now done properly Changes in version 0.4.2 - Fixed setOldClass conflicts with RJSONIO (issue #1) - Fixed run_ls not finding base env under certain circumstances (issue #2) - Fixed conditionLists looping issue introduced when fixing issue #1