Changelog
Source:NEWS.md
rextendr 0.4.2
CRAN release: 2025-08-26
- Sets the
extendr-apiversion to the latest stable version instead of"*"when creating a new package. This is fetched from https://crates.io/api/v1/crates/extendr-api and will fall back to"*"if not available https://github.com/extendr/rextendr/pull/467 - Adds
xztoSystemRequirementsto ensure extendr based packages build on Posit Package Manager https://github.com/extendr/rextendr/pull/467 - Sets the release profile to use
lto=trueandcodegen-units=1to ensure compatible builds with WebR as well as reduce the overall compiled package size https://github.com/extendr/rextendr/pull/465. - Fixes compatibility with WebR by adding
CARGO_PROFILE_DEV_PANIC="abort" CARGO_PROFILE_RELEASE_PANIC="abort"when targetingwasm32-unknown-emsacriptentarget https://github.com/extendr/rextendr/pull/461
rextendr 0.4.1
CRAN release: 2025-06-19
Fix tests executed on CRAN (#449)
Added
use_vscode()and its aliasuse_positron()to create.vscode/settings.json, enhancing therextendrexperience in VSCode/Positron. Additionally,use_extendr()now automatically callsuse_vscode()when VSCode or Positron is detected as the IDE (#441).
rextendr 0.4.0
CRAN release: 2025-05-02
- Adds WebR support out of the box for all extendr packages.
- Note that not all Rust crates are wasm compatible. This change only enables the package to build in the
wasm32-unknown-emscriptentarget. It does not guarantee all dependencies will compile.
- Note that not all Rust crates are wasm compatible. This change only enables the package to build in the
- Addresses new CRAN check in R 4.5+ adding warning for
_abortusage -
use_extendr_badge()has been added to add an extendr-specific badge to aREADME.Rmdviausethis::use_badge()https://github.com/extendr/rextendr/pull/417 - Removes
Makevars.ucrtas R versions < 4.1 are not supported by extendr https://github.com/extendr/rextendr/pull/414 -
purrrhas been replaced withR/standalone-purrr.RremovingpurrrfromImportshttps://github.com/extendr/rextendr/pull/408 -
document()will no longer try to save all open files using rstudioapi https://github.com/extendr/rextendr/issues/404 https://github.com/extendr/rextendr/issues/407 -
use_cran_default()has been removed as the default package template is CRAN compatible https://github.com/extendr/rextendr/pull/394 -
use_extendr()now createstools/msrv.R,configureandconfigure.win. These have been moved out ofuse_cran_defaults()https://github.com/extendr/rextendr/pull/393 -
Makevarsnow prints linked static libraries at compile time by adding--print=native-static-libstoRUSTFLAGShttps://github.com/extendr/rextendr/pull/393 -
use_extendr()sets theDESCRIPTION’sSystemRequirementsfield according to CRAN policy toCargo (Rust's package manager), rustc(#329) - Introduces new functions
use_cran_defaults()andvendor_pkgs()to ease the publication of extendr-powered packages on CRAN. See the new article CRAN compliant extendr packages on how to use these (#320). -
rust_sitrep()now better communicates the status of the Rust toolchain and available targets. It also guides the user through necessary installation steps to fix Rust setup (#318). -
use_extendr()anddocument()now set theSystemRequirementsfield of theDESCRIPTIONfile toCargo (rustc package manager)if the field is empty (#298). -
use_extendr()gets a new ability to overwrite existing rextendr templates (#292). -
use_extendr()setspublish = falsein the[package]section of theCargo.toml(#297). -
use_extendr()correctly handles calls withpathnot equal to"."(current folder), or when there is no active usethis project (#323). - Fixes an issue in pre-defined set of known features: added
either(#338) -
create_extendr_package()allows user to create project directory using RStudio’s Project Command. (#321) - Support
RTOOLS44(#347) - Removed
use_try_fromas an option inrust_function, and addeduse_rng(#354) - Added
use_crate()function to make adding dependencies to Cargo.toml easier within R, similar tousethis::use_package()(#361) - Fixed an issue in
rust_source()family of functions that prevented usage ofr#escape sequences in Rust function names (#374) -
use_cran_defaults()now checks theSystemRequirementsfield in theDESCRIPTIONfile for cargo and rustc. It will display installation instructions if either is missing or provide the minimum required version if the installed version is outdated. - Added
use_msrv()to aid in specifying the minimum supported rust version (MSRV) for an R package - Added
read_cargo_metadata()to retrieve Cargo metadata for packages and workspaces. (#389) -
rustup_sitrep()now checks if a default toolchain has been set. https://github.com/extendr/rextendr/pull/416 - Minimum R version is set to
4.1(#435) - tibble is no longer a dependency (#435)
rextendr 0.3.0
CRAN release: 2023-05-30
Ilia Kosenkov is now the official maintainer.
Josiah Parry is now a contributor.
Support Rtools43 (#231).
rextendrhas migrated to the use ofclifor raising errors and warnings.Developer note: new helper function
local_quiet_cli()introduced inR/utils.Rto simplify silencing cli output.
New features
A new function
rust_sitrep()that prints out a short report on the currently installed Rust toolchain (#274).A new function
write_license_note()to generateLICENSE.notefile fromCargo.toml(#271).extendr_fn_optionsparameter ofrust_source()controls what type of options are emitted to#[extendr()]attribute (#252).use_dev_extendrflag makesrust_source()family of functions compile code using development version ofextendr. Development configuration is stored as an option namedrextendr.extendr_dev_deps(#251).featuresparameter ofrust_source()now correctly enables features inextendr-apiand references required crates.featuresnot available in release version ofextendrraises a warning (#249).A
<pkg_name>-win.deffile containing DLL exports is created byrextendr::use_extendr(). It is used during linking phase on Windows and solves the problem of compiling very large projects, such aspolars(#212)Support extendr macro with options (#128).
rust_source()gotfeaturesargument to specify Cargo features to activate (#140).rextendr::document()now sets the envvars thatdevtools::document()sets, e.g.NOT_CRAN(#135).