Changes in version 0.14.1 (2026-03-24) - Stay compatible with Quarto CLI >= 1.9.0. At some point between version 1.6.0 and 1.9.36, quarto inspect started returning relative paths instead of absolute paths under fileInformation$includeMap. This changed the output of quarto::quarto_inspect() in a way that broke tarchetypes::tar_quarto_file(). This version of tarchetypes fixes that issue for newer versions of Quarto while trying to stay compatible with older versions. The cutoff for tarchetypes is 1.9.0. Changes in version 0.14.0 (2026-02-09) - Try different paths to look for output files in tar_quarto_rep() (#217). Hard to tell if Quarto uses the current working directory or the directory of the source file as the destination for the output, and their policy may have changed in a different version of Quarto. - Add tar_tangle() (#226). - Avoid Quarto parallel rendering bug with a workaround in tar_quarto_rep() (#230, @ant-durrant). Changes in version 0.13.2 (2025-09-13) - Disable targets internal processing progress bars in tar_render() and tar_render_rep(). - Add quarto and rmarkdown to packages for targets::tar_renv() (https://github.com/ropensci/targets/issues/1506, @valentingar). - Set deployment = "main" in the batch target of tar_map_rep(). Changes in version 0.13.1 (2025-05-08) - Restore custom output files in tar_quarto_rep() (#217, @arcruz0). For #211, users should write relative paths to output files in the output_file column of execute_params, and they should avoid writing a _quarto.yml with an output-dir field. - Set deployment = targets::tar_option_get("deployment") in tar_render() and tar_quarto(). - Set cli.num_colors = 1L and cli.dynamic = FALSE in R Markdown target factories. Changes in version 0.13.0 (2025-04-10) - Support pattern in tar_skip() (#212, @CorradoLanera). - Allow tar_quarto_rep() to write reports to subdirectories with the help of a project-level _quarto.yml (#211, @lgaborini). - tar_map2*() functions now aggregate dynamic branches in parallel over static branches (#213). - tar_map2*() functions gain an unlist argument. - Call parallel::clusterExport() in make_psock_cluster() to make sure globals carry over to parallel socket clusters. Changes in version 0.12.0 (2025-01-31) - Fix tar_combine() help file examples (#206, @weberse2). - Account for project-level output_dir in non-project tar_quarto() calls (#207, @brndngrhm). - Use name when passing the quiet argument to quarto_inspect() (#208, @yusuke-sasaki-jprep). - Explicitly pass the profile argument to quarto_inspect() and quarto_render(). Requires R package quarto >= 1.4, which is already in the DESCIRPTION. - tar_map_rep() now aggregates dynamic branches in parallel over static branches (#204). - Add tar_rep_index() (#203). Changes in version 0.11.0 (2024-11-15) - Add an output_file argument to tar_quarto() and tar_quarto_raw() for single documents (#198, @mutlusun). - Detect child quarto documents (#199, @mutlusun). - Improve reporting of static branch names from tar_map() and tar_map_rep() (#201, @kkmann). - Ensure compatibility with targets after https://github.com/ropensci/targets/issues/1368. - Improve detection of Quarto files in tar_quarto_inspect() (#200, @multusun). Changes in version 0.10.0 (2024-09-26) - Add a delimiter argument to tar_map() etc. for customizing separators in target names (#177, @psychelzh). - Add "raw" hook functions (#185, @multimeric). - Add tar_assign() (#186, https://github.com/ropensci/targets/issues/1309, @hadley). - Merge help files of "_raw" functions (#191, @hadley). - Supersede tar_format_feather() in favor of tar_arrow_feather() (#190). - Supersede the tar_aws_*() target factories. They are obsolete because of the repository argument in tar_target(). Changes in version 0.9.0 (2024-04-17) Invalidating changes - To align with https://github.com/ropensci/targets/issues/1244 and https://github.com/ropensci/targets/pull/1262, switch the hashing functions from digest::digest() to secretbase::siphash13(). Changes in version 0.8.0 (2024-03-18) - Expose the new description argument of tar_target() in targets 1.5.1.9001. - tar_map() and other static branching target factories now append values to the target descriptions. Use the descriptions argument of those functions to customize. - Ensure consistent repository settings in tar_change() and tar_map_rep(). - tar_knit(), tar_render(), tar_quarto(), and their "rep" and "raw" versions all gain a working_directory argument to change the working directory the report knits from. Users who set working_directory need to supply the store argument of tar_load() and tar_read() relative to the working directory so the report knows where to find the data (#169). - tar_knit(), tar_render(), tar_quarto(), and their "raw" versions all gain an output_file argument to more conveniently set the file path to the rendered output file. - tar_quarto() and its "rep" and "raw" versions all gain a new quarto_args argument for advanced Quarto arguments (#166, @petrbouchal). Changes in version 0.7.12 (2024-02-06) - Adjust tests because group iteration is now explicitly prohibited for dynamic targets. Changes in version 0.7.11 (2024-01-09) - Use tar_seed_create() and tar_seed_set() from targets. - Document limitations of literate programming target factories like tar_render() (#158). - Make tar_rep2() compatible with tar_map() (#165). Changes in version 0.7.10 (2023-12-04) - Prepare to use tar_seed_create() and tar_seed_set() (https://github.com/ropensci/targets/issues/1139). Future versions of tarchetypes should use these package functions, but this version cannot because of the compatibility constraints of the release cycle. - Migrate tests to targets >= 1.3.2.9004 progress statuses ("completed" instead of "built", "dispatched" instead of "started"). Changes in version 0.7.9 (2023-10-04) - Deprecate the packages and library arguments of tar_quarto() and tar_quarto_raw() (#155, @svraka). - Switch to from furrr to parallel for rep_workers in tar_rep() etc. (#251, @solmos). Changes in version 0.7.8 (2023-09-01) - Relax overly strict assertion on R Markdown / Quarto parameter lists (@rmgpanw, #152). - Adjust a test to comply with upcoming targets 1.3.0. Changes in version 0.7.7 (2023-06-15) - Allow format = "file_fast" in target factories. Changes in version 0.7.6 (2023-05-02) - Support Quarto profiles through the QUARTO_PROFILE environment variable (#139, @andrewheiss). - Take the basename of the source file for #129 so the output files land correctly when the source file is in a subdirectory (#129, targets issue 1047, @joelnitta). - Use targets::tar_runtime_object()$store instead of targets::tar_runtime_object()$get_store() to ensure forward compatibility with targets. - Use interactive test for tar_download() to avoid unpredictable network issues outside our control. Changes in version 0.7.5 (2023-03-07) - Implement a new set_deps argument in the hook functions to force modified targets to keep the dependencies they had before applying the hook (#131, @edalfon). - Forward all settings to tar_copy_target() (#131, @edalfon). - Initialize the directory of output files in tar_quarto_rep() and tar_render_rep() (#129, @benzipperer). - Work around https://github.com/quarto-dev/quarto-cli/pull/2456 by writing temporary local files in tar_quarto_rep() (#129, @benzipperer). Changes in version 0.7.4 (2023-01-06) - Implement rep_workers to control inner parallelism in batched replication functions (#117). - Ensure the function passed to furrr functions has environment tar_option_get("envir"). - Allow subdirectories of rendered reports with tar_quarto_rep() (#129, @mglev1n). Changes in version 0.7.3 (2022-11-29) - Support nested futures for parallelism among reps within batches (#117, @kkmann). - Add Quarto troubleshooting section to help files. Changes in version 0.7.2 (2022-10-31) - Migrate away from deprecated targets::tar_path(). - Implement and return resilient seeds in batched replication (#111, #113). Changes in version 0.7.1 (2022-09-07) - Document https://github.com/ropensci/tarchetypes/discussions/105 (@MarekGierlinski). - Adapt tests to changes in tar_manfiest() default output. Changes in version 0.7.0 (2022-08-05) - Add new functions tar_quarto() and tar_quarto_rep() (and "raw" versions) for Quarto documents and projects in pipelines (#89). - Add new function tar_quarto_files() to inspect Quarto projects and documents for important files: source files to inspect for target dependencies, output documents, and Quarto-specific inputs like _quarto.yml. Uses quarto::quarto_inspect() and powers the automatic file detection in tar_quarto() etc. (#89). - Add runtime guardrails to the params argument of tar_render_rep() (must be a data frame with unique rows (or unique elements of output_file)). - Temporarily change root.dir when scanning for dependencies so knitr child documents work (#93, @mutlusun). - Use format = "rds" for target_batch in tar_map_rep_raw() so the global format option does not mess up the pipeline. - Handle non-atomic length-one list columns in tar_append_static_values(). - Allow tar_render() to work with just one row of parameters (#96, #97, @ugoebel73). - Remove dependencies and collect garbage before running reports. - Make sure all the target factories have memory and garbage_collection arguments. Changes in version 0.6.0 (2022-04-19) - Implement tar_file_read() (#84, @petrbouchal). - Suppress warnings for deprecated AWS formats. - Select the correct targets in tar_select_targets() (#92, @arcruz0). - Support the repository argument for targets >= 0.11.0. Changes in version 0.4.1 (2022-01-07) - Select list elements from command1 using [[ and not [ in tar_map2() functions. Changes in version 0.4.0 (2021-12-10) - Implement tar_map_rep() and tar_map_rep_raw() for dynamic batched replication within static branching for data frames (#78). - Implement tar_map2_count(), tar_map2_count_raw(), tar_map2_size(), and tar_map2_size_raw() for batched dynamic-within-static branching for data frames (#78). - Deprecate tar_rep_map() in favor of tar_rep2() to avoid name confusion. Likewise with tar_rep_map_raw() to tar_rep2_raw() (#78). Changes in version 0.3.2 (2021-10-26) - Allow empty / NULL target list in tar_map() (@kkami1115). - Do not claim to support "aws_file" format in tar_files() or related target factories. Changes in version 0.3.1 (2021-09-21) - Relax assertion on language objects. - Explain targets timestamps correctly in the help files of tar_age() and tar_cue_age(). Changes in version 0.3.0 (2021-08-04) Invalidating changes - When names = NULL in tar_map(), use hashes instead of numeric indexes for generated target names (#67). That way, target names are no longer sensitive to the order of values, and so targets will incorrectly invalidate less often. Unfortunately, this is an invalidating change: some targets will automatically rerun after you install this version of tarchetypes. I apologize for the inconvenience this causes. However, we do need this patch in order to solve #67, and targets will incorrectly invalidate less frequently in the future. Enhancements - Migrate to utilities for error handling and metaprogramming exported from targets (#59). Changes in version 0.2.1 (2021-06-21) Bug fixes - Make the *_raw() target factories process command the same way whether it is an expression or ordinary language object. - Ensure compatibility with targets 0.5.0.9000, which logs skipped targets. New features - Add tar_rep_map() and tar_rep_map_raw() to perform batched computation downstream of tar_rep() (#50). - Add tar_select_names() and tar_select_targets() to make certain metaprogramming tasks easier. - In tar_map(), attempt to convert the elements of values into lists of language objects. Changes in version 0.2.0 (2021-05-11) - Allow trailing commas in tar_plan() (#40, @kendonB). - Implement tar_age() based on tar_cue_age() (#39, @petrbouchal). - Implement new cue factories tar_cue_age(), tar_cue_age_raw(), tar_cue_force(), and tar_cue_skip() (#39). - Implement tar_download() (#38, @noamross, @petrbouchal) - Set intermediate temporary directory to remove race condition in tar_render_rep() (#36, @gorgitko). - Prefix internal condition classes with "tar_". - Add new format helpers such as tar_aws_rds() and tar_parquet(). - Support hooks tar_hook_before(), tar_hook_inner(), and tar_hook_outer() (#44). - Deep-copy the cue in tar_map(). Changes in version 0.1.1 (2021-03-28) - Unset crayon.enabled for literate programming. - Switch meaning of %||% and %|||% to conform to historical precedent. Changes in version 0.1.0 (2021-02-27) - Add new functions for easier grouping of data frames for dynamic branching: tar_group_by(), tar_group_select(), tar_group_size(), tar_group_count() (#32, @liutiming). - In tar_render() and related functions, track the *_files/ output directory if it exists (#30). - Implement an external walk_ast() function to make it easier for other developers to extend the static code analysis of tarchetypes (@MilesMcBain). Changes in version 0.0.4 (2021-02-02) - Skip literate programming tests if pandoc is missing or has an insufficient version. - Use explicit temp files in examples even when running inside targets::tar_dir(). (targets::tar_dir() and targets::tar_test() already run code in a temporary directory.) - Add comments in the examples to emphasize that targets::tar_dir() runs code in a temporary directory, which means all ostensibly files created in the enclosed expression will actually be written to temporary storage and not the user's file space. Changes in version 0.0.2 (2021-02-01) - Make sure every function with a help file in man/ has Rd-tags \value and \arguments. - For every function with a help file in man/, describe the return value in the \value Rd tag. For each function that returns a target definition object or list of target definition objects, the \value tag now links to https://books.ropensci.org/targets/, the user manual where the purpose of target definition objects is explained, and https://books.ropensci.org/targets-design/, the design specification which documents the structure and composition of target definition objects. - Ensure that examples, vignettes, and test do not write to the home file space of the user. - Ensure that no function defined in the tarchetypes package writes by default to the home file space of the user. The paths of all output files are controlled by non-tarchetypes functions that invoke tarchetypes. Changes in version 0.0.1 - tar_plan() now returns a list of target definition objects rather than a pipeline object. Related: https://github.com/ropensci/targets/issues/253. Changes in version 0.0.0.9000 - First version. - Implement tar_knitr_deps() and tar_knitr_deps_expr() to accommodate custom multi-file literate programming projects like R Markdown sites and bookdown projects (#23, @tjmahr).