Skip to content

Releases: ehrlinger/hvtiR

hvtiR 1.3.5

Choose a tag to compare

@ehrlinger ehrlinger released this 01 Nov 16:23
16478a9
  • When restoring a study's lockfile fails because a package does not compile,
    setup() now names the packages that failed and gives the renv::record()
    call that moves the pin while keeping its locked source: a GitHub record
    stays on GitHub. Under upgrade = FALSE it gives no such call, since that
    mode keeps a revision's locked versions. It used to lead with "A GitHub
    token is needed" whenever an authentication message appeared anywhere in
    the output, which sent users after a token when the real cause was a locked
    version (vctrs 0.7.2) that no longer builds under R 4.6.

  • After a compile failure, setup()'s renv::record() hint now covers every
    package that failed, in one call, each keeping its locked source. A package
    whose source has no safe one-line spec is named apart. Previously the call
    named only the first, so each further package cost another run.

  • setup() no longer says "A GitHub token is needed" when renv's restore
    fails only on packages locked from a repository. renv prints its
    authentication note even when a retried GitHub download then succeeds, so
    the hint now needs a GitHub-locked package in renv's failed list (or a list
    too long to read in full), and names that package.

  • Catalog versions refreshed from main: TemporalHazard dev 1.2.16 to
    1.2.17; hvtiPlotR dev 2.8.18 to 2.8.21; hvtiRbootstrap dev 0.9.6 to
    0.9.7; hvtiRlifetables dev 0.1.5 to 0.1.6; hvtiRpropensity dev 0.2.1
    to 0.2.2; hvtiRtables dev 1.0.11 to 1.0.12; hvtiRtemplates dev 1.5.2
    to 1.5.4; hvtiRutilities dev 1.5.15 to 1.5.18. The catalog ships in the
    package and is published as members.json, so its recorded versions are
    content rather than bookkeeping.

  • Family floors refreshed from main: hvtiRtemplates Imports
    hvtiRutilities (>= 1.5.15) to (>= 1.5.17); hvtiRtemplates Suggests
    TemporalHazard (>= 1.2.12) to (>= 1.2.17); hvtiRtemplates Suggests
    hvtiPlotR (>= 2.8.18) to (>= 2.8.20); hvtiRtemplates Suggests
    hvtiRdatabuild (>= 0.3.0) to (>= 0.3.3). family-floors.csv ships in
    the package and records the version floors members declare on one another.

hvtiR 1.3.4

Choose a tag to compare

@ehrlinger ehrlinger released this 27 Oct 20:14
0be7414
  • Catalog versions refreshed from CRAN and main: ggRandomForests CRAN
    3.5.4 to 3.5.5; hvtiPlotR dev 2.8.16 to 2.8.18; hvtiRdatabuild dev
    0.3.2 to 0.3.3; hvtiRtemplates dev 1.5.0 to 1.5.1; hvtiRutilities dev
    1.5.11 to 1.5.13. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiRdatabuild Imports
    hvtiRutilities (>= 1.5.2) to (>= 1.5.3); hvtiRtemplates Imports
    hvtiRutilities (>= 1.5.11) to (>= 1.5.13); hvtiRtemplates Suggests
    hvtiPlotR (>= 2.8.9) to (>= 2.8.18). family-floors.csv ships in the
    package and records the version floors members declare on one another.

  • setup() run from a session inside a different study's renv project now
    says so and names that project. It used to say the session had loaded
    packages setup() would replace, which was not the reason. RStudio reopens
    the last project on restart, so this is the usual way to hit it.

  • The warning install() and update() raise for debris in a study's
    library now prints the study's real paths, so each repair command can be
    pasted as it is, where it used to print placeholders such as
    <library>/_cache. It no longer says pak cannot replace _cache: that is
    pak's staging directory, left by a failed install, which pak works around
    and renv's library scan fails on. A leftover _cache alone now gets its
    one removal step; links into a cache the user cannot read still get the
    full repair, which now says the renv steps fail until _cache is gone and
    ends by restoring only the removed packages: the bare renv::restore() it
    used to end with reverted every package to the lockfile, undoing the
    install or update that raised the warning. The numbered steps are
    indented under the warning.

  • setup() removes pak's leftover _cache from a study library by its exact
    path. It used to pass the path to unlink() as a pattern, so a study path
    containing [, * or ? could delete a sibling study's _cache and leave
    its own.

  • setup() no longer upgrades a standard analysis package, such as arrow,
    that is already in the study's library but missing from its renv.lock.
    It named every unlocked package to pak, which installs the newest release
    of a package it is named; on a server that could not build that release,
    setup stopped. A family member missing from renv.lock is still named, so
    it moves to main even when already installed.

  • setup() reports a removed _cache as what it is, pak's staging folder
    left by a failed install, rather than counting it among the unreadable
    cache links it removed and reinstalled.

  • setup() no longer stops when arrow cannot be installed. It installs
    arrow last, on its own, and on a failure warns, names pak's message and
    the saved log, and sets the study up without it. Some servers cannot build
    current arrow (C++20, and OpenSSL 3 for its prebuilt library), and no
    older release compiles on R 4.6. A failure installing any other package
    still stops setup.

  • Catalog versions refreshed from main: hvtiRtemplates dev 1.5.1 to
    1.5.2; hvtiRutilities dev 1.5.13 to 1.5.15. The catalog ships in the
    package and is published as members.json, so its recorded versions are
    content rather than bookkeeping.

  • Family floors refreshed from main: hvtiRtemplates Imports
    hvtiRutilities (>= 1.5.13) to (>= 1.5.15). family-floors.csv ships in
    the package and records the version floors members declare on one another.

hvtiR 1.3.3

Choose a tag to compare

@ehrlinger ehrlinger released this 23 Oct 18:05
f4444f1
  • Catalog versions refreshed from CRAN and main: hvtiRtables dev 1.0.10
    to 1.0.11; hvtiRtemplates dev 1.4.2 to 1.5.0; hvtiRutilities dev 1.5.9
    to 1.5.11. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiRtemplates Imports
    hvtiRutilities (>= 1.5.7) to (>= 1.5.11); hvtiRtemplates Suggests
    hvtiRtables (>= 1.0.9) to (>= 1.0.11). family-floors.csv ships in the
    package and records the version floors members declare on one another.

hvtiR 1.3.2

Choose a tag to compare

@ehrlinger ehrlinger released this 23 Oct 17:50
8e03679
  • setup() declares a standard set of analysis packages in every study,
    alongside the family: tidyverse, haven, gtsummary, flextable,
    survival, survminer, randomForestSRC, varPro and pacman. They are
    the packages the team Quick Start used to install by hand. renv runs in
    explicit mode, so declaring them is what puts them in the lockfile; a study
    no longer needs a separate install step for them.

  • setup() declares the quarto R package in every study. hvtiRtemplates
    renders jobs through it, and render_job() and submit_job() stop without
    it, but no member imports it, so a study that installed it by hand still
    left it out of renv.lock and a fresh renv::restore() could not render a
    job. It also declares ggiraph, which gives the dc-eda template its hover
    figures; without it the template quietly falls back to static ones. Rerun
    setup() in an existing study to record both.

  • Catalog versions refreshed from CRAN and main: ggBoostedTrees dev
    0.9.3 to 0.10.0; hvtiPlotR dev 2.8.14 to 2.8.16; hvtiRtables dev 1.0.8
    to 1.0.10; hvtiRtemplates dev 1.4.1 to 1.4.2; hvtiRutilities dev 1.5.8
    to 1.5.9. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiRtemplates Suggests
    hvtiRtables (>= 1.0.8) to (>= 1.0.9). family-floors.csv ships in the
    package and records the version floors members declare on one another.

hvtiR 1.3.1

Choose a tag to compare

@ehrlinger ehrlinger released this 23 Oct 17:50
128786a
  • Catalog versions refreshed from CRAN and main: hvtiRutilities dev
    1.5.7 to 1.5.8. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiRtemplates Suggests
    hvtiRtables (>= 1.0.7) to (>= 1.0.8). family-floors.csv ships in the
    package and records the version floors members declare on one another.

  • setup() now checks that it is not running inside the study before it does anything that can install. With a renv project active, or the session library under the study root, it stops and names the command to run from a session started outside the project, hvtiR::setup(root = "<study>", ...). Before, resolving the root could install hvtiRutilities into the study's own library first.

  • setup() finds the study root without installing anything: it uses RENV_PROJECT when set, and asks hvtiRutilities only when it is already installed.

  • setup() stops the study using renv's per-user cache (renv::settings$use.cache(FALSE), stored in renv/settings.json so it applies to the whole team) and runs renv::isolate() before restoring. It removes, and so reinstalls, any library link whose target the user cannot read, and pak's leftover _cache staging directory, and reports what it removed. This fixes "Unable to move package" failures in a library shared by several users.

  • install() and update() warn, with the fix, when run from an active study project whose library holds links the user cannot read or a leftover _cache directory.

  • setup() reports a failed install without crashing. The child's output is cleaned (carriage returns, colour codes, invalid bytes, braces) before it reaches the message, and the full raw output is saved to hvtiR-setup-<time>.log in the session's temporary directory, which the message names.

  • setup() no longer needs a personal GitHub token. It installs the family with pak into the study's library (pak carries a shared token, so a server's shared IP does not exhaust GitHub's anonymous API limit) and keeps renv for the environment: restore, then the pak install, then the lockfile snapshot, in explicit mode. The LinkingTo packages pak skips are installed from the configured repositories, which the snapshot's validation needs. With no token it now warns instead of stopping, since only restoring a package the lockfile pins on GitHub can need one. A token held only in the git credential store is still passed on as GITHUB_PAT for the run.

  • setup() no longer installs subdirectory remotes ahead of the rest to work around a renv 1.2.4 unpack bug: pak handles them, so the workaround and its Remotes parsing are removed.

  • setup() finds the study root without loading hvtiRutilities: loading it left its namespace in use and blocked the upgrade that follows. It uses RENV_PROJECT, else the nearest _study.yml at or above the working directory, else the working directory.

  • A link in the study's library whose target is readable but whose DESCRIPTION is not is now treated as unreadable and removed (the link only). A real package directory whose DESCRIPTION the user cannot read is never deleted: setup() stops before changing anything, names the packages, and says their owner or an administrator must fix the permissions (chmod -R g+rX <library>/<pkg>) or remove them.

  • The install() and update() warning now gives the manual repair in the order that works: remove _cache, remove each broken link, then renv::settings$use.cache(FALSE), renv::isolate() and renv::restore().

  • The check that no locked package moved now runs after the LinkingTo fill, immediately before the snapshot, because the fill installs through renv and can move a locked package.

  • That check now compares RemoteSha as well as Version, so a GitHub package locked at one commit and rebuilt from another is caught even when its version is unchanged.

  • When the check trips, setup() first removes the packages this run added to the study's library, then restores the moved locked packages, so the library matches the lockfile again. If that restore fails (restoring a GitHub-locked package needs a personal token), the message names the packages that could not be restored and the token steps. The lockfile is unchanged either way.

  • The pak install now uses the repositories the study's renv.lock records, falling back to the session's, instead of the session's alone.

  • setup() runs its child R processes from a script file instead of an -e argument. R truncated a long -e argument, so a study with about 155 locked packages ran half a script and stopped with "The install did not report the study's library path".

  • setup() installs from the binary form of a Posit Package Manager source URL. When the study's renv.lock records .../cran/latest and the session has .../cran/__linux__/<distro>/latest (same host, path and snapshot), pak, the restore and the LinkingTo fill use the binary URL and renv.lock is rewritten to record it, so installs no longer compile from source (arrow failed on RHEL 8's default compiler). No other repository is changed.

  • setup() no longer reports false moves from its lock guard. It compares versions as versions (1.2-5 is 1.2.5) and looks packages up across every library on the path, so recommended packages in R's system library (mgcv, nlme, survival, ...) are found.

  • New upgrade argument to setup(). The default, TRUE, lets the install move locked versions the declared family needs, lists each move and records it in renv.lock. upgrade = FALSE keeps a study in revision on its locked versions: the guard rolls back as before, and its message now says how to move them.

  • setup() now resolves unmet version requirements before it snapshots. It reads Depends, Imports and LinkingTo of every package in the study library and finds packages that are absent or below a floor (>=, >, ==), as renv's snapshot validation would. With upgrade = TRUE (the default) it installs them through renv from the binary repositories and checks again; the lock guard then reports any locked package those installs moved, and a moved package it raised is listed under "Other unmet requirements resolved". What stays unmet, or anything at all with upgrade = FALSE, stops setup() before the snapshot with each requirement listed and renv.lock unchanged.

hvtiR 1.3.0

Choose a tag to compare

@ehrlinger ehrlinger released this 23 Oct 17:50
b100360
  • Catalog versions refreshed from CRAN and main: hvtiRtables dev 1.0.5
    to 1.0.7. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiRtemplates Suggests
    hvtiRtables (>= 1.0.5) to (>= 1.0.7). family-floors.csv ships in the
    package and records the version floors members declare on one another.

  • New setup() sets up a study's environment in one command: it cleans up template copies before renv,
    declares the family and the packages it needs, installs them into the study's library, and snapshots.
    renv runs in explicit mode, so the lockfile records what the study declares.
    A study with a renv.lock keeps its locked versions, and every package that lockfile recorded is declared on first conversion.

  • doctor() reports a member whose dependencies are not on the library path, and a study lockfile made
    under a different R.

  • setup() installs the subdirectory remotes that members pin (read from their DESCRIPTIONs, such as boostmtree)
    in a first renv::install() call, which works around a renv 1.2.4 failure ("target file ... already exists") on a cold cache.

  • setup() warns before it writes anything when no GitHub credentials are found, and says how to create them,
    and a failed install that reports missing authentication credentials says so too.

  • setup() never upgrades a locked package: if declaring a new package would move a locked dependency, it restores the locked versions, leaves renv.lock unchanged and stops, naming the change; update() is the way to move versions.

  • Catalog versions refreshed from CRAN and main: ggBoostedTrees dev
    0.9.2 to 0.9.3; hvtiPlotR dev 2.8.11 to 2.8.14; hvtiRdatabuild dev
    0.3.1 to 0.3.2; hvtiRtables dev 1.0.7 to 1.0.8; hvtiRutilities dev
    1.5.5 to 1.5.7. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiRdatabuild Imports
    hvtiRutilities (>= 1.5.1) to (>= 1.5.2); hvtiRtemplates Imports
    hvtiRutilities (>= 1.5.1) to (>= 1.5.7). family-floors.csv ships in
    the package and records the version floors members declare on one another.

hvtiR 1.2.9

Choose a tag to compare

@ehrlinger ehrlinger released this 16 Oct 10:42
31131be
  • Catalog versions refreshed from CRAN and main: hvtiPlotR dev 2.8.10 to
    2.8.11; hvtiRbootstrap dev 0.9.5 to 0.9.6; hvtiRtemplates dev 1.4.0 to
    1.4.1; hvtiRutilities dev 1.5.4 to 1.5.5. The catalog ships in the
    package and is published as members.json, so its recorded versions are
    content rather than bookkeeping.

hvtiR 1.2.8

Choose a tag to compare

@ehrlinger ehrlinger released this 15 Oct 10:45
e92d18d
  • update() now says at once that it installed nothing when a member it needs
    is already loaded, naming the loaded members. Until now the only signal was
    a warning, which prints after the call returns and vanishes under
    suppressWarnings() or options(warn = -1), so update() could stop after
    "hvtiR is current" without a word about the members it skipped.

  • Catalog versions refreshed from CRAN and main: TemporalHazard dev
    1.2.15 to 1.2.16; hvtiPlotR dev 2.8.6 to 2.8.10; hvtiRdatabuild dev
    0.3.0 to 0.3.1; hvtiRpropensity dev 0.1.11 to 0.2.1; hvtiRtables dev
    1.0.3 to 1.0.5; hvtiRtemplates dev 1.3.1 to 1.4.0; hvtiRutilities dev
    1.5.2 to 1.5.4. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiPlotR Suggests
    hvtiRpropensity added; hvtiRpropensity Suggests hvtiPlotR added;
    hvtiRtemplates Suggests hvtiPlotR (>= 2.8.0) to (>= 2.8.9);
    hvtiRtemplates Suggests hvtiRpropensity (>= 0.1.10) to (>= 0.2.0);
    hvtiRtemplates Suggests hvtiRtables (>= 1.0.1) to (>= 1.0.5).
    family-floors.csv ships in the package and records the version floors
    members declare on one another.

hvtiR 1.2.7

Choose a tag to compare

@ehrlinger ehrlinger released this 12 Oct 20:59
8d32846

1.2.7

  • Catalog versions refreshed from CRAN and main: TemporalHazard dev
    1.2.12 to 1.2.14. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • New inst/extdata/family-floors.csv records every version floor one family
    member declares on another, read from each member's DESCRIPTION on main
    by the weekly catalog-versions job. A floor main does not meet in
    Depends, Imports or LinkingTo would break install(), which resolves
    members from main in one call, so that job now fails on one; a Suggests
    floor is reported only.

  • Catalog versions refreshed from CRAN and main: TemporalHazard dev
    1.2.14 to 1.2.15; ggBoostedTrees dev 0.9.1 to 0.9.2; hvtiPlotR dev
    2.8.5 to 2.8.6; hvtiRbootstrap dev 0.9.4 to 0.9.5; hvtiRdatabuild dev
    0.2.4 to 0.3.0; hvtiRimputation dev 0.1.2 to 0.1.3; hvtiRlifetables
    dev 0.1.4 to 0.1.5; hvtiRtemplates dev 1.3.0 to 1.3.1; hvtiRutilities
    dev 1.5.1 to 1.5.2. The catalog ships in the package and is published as
    members.json, so its recorded versions are content rather than
    bookkeeping.

  • Family floors refreshed from main: hvtiRtemplates Suggests
    hvtiRdatabuild (>= 0.2.3) to (>= 0.3.0). family-floors.csv ships in
    the package and records the version floors members declare on one another.

hvtiR 1.2.5

Choose a tag to compare

@ehrlinger ehrlinger released this 02 Oct 22:20
06d27ae
  • Catalog versions refreshed from CRAN and main: ggBoostedTrees dev
    0.9.0 to 0.9.1; hvtiPlotR dev 2.8.3 to 2.8.4; hvtiRtemplates dev 1.2.2
    to 1.2.4; hvtiRutilities dev 1.4.3 to 1.4.4. The catalog ships in the
    package and is published as members.json, so its recorded versions are
    content rather than bookkeeping.