chore(deps): update dependency nbafrank/uvr to v0.4.5 #148
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/nbafrank-uvr-0.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
v0.4.4→v0.4.5Release Notes
nbafrank/uvr (nbafrank/uvr)
v0.4.5Compare Source
The community release. Four contributors filed thirteen pull requests in
three days, and this ships nearly all of them: shell activation (the first
feature from the uv-parity roadmap), a sysreqs subsystem rebuilt end to
end, binary-repo selection driven by Posit's live catalogue instead of a
table that went stale, and a conformance suite that runs the real release
binary natively on twenty-nine Linux distributions — which promptly found
bugs users had been hitting silently. Three independent adversarial
reviews ran before this tag; the correctness fixes they turned up are
included.
Package names containing dots no longer install the wrong package
(#222).
[dependencies.shiny.i18n]is parsed by TOML as packageshinywith a sub-key, so uvr silently installed
shinyand its 30 dependenciesinstead;
[dependencies.R.utils]silently installed nothing at all; andorg.Hs.eg.dbresolved from CRAN rather than Bioconductor. Every onefailed silently — the wrong thing installed, with no warning. Unexpected
sub-keys are now a parse error that reconstructs the full dotted name by
walking the nested table chain, so multi-segment Bioconductor names
(
org.Hs.eg.db,TxDb.Hsapiens.UCSC.hg38.knownGene) are quoted andsuggested correctly rather than truncated to their first two segments.
One sysreqs API request per sync instead of one per package: a
68-package sync made 68 requests where the batched endpoint answers in
one. The batched response also names transitive requirements as separate
entries, which fixes a pre-existing misattribution (everything
gertpulled in was credited to
gertitself).Bioconductor packages whose declared
SystemRequirementsmatch novendored rule are now reported as unverified. Previously, when the
sysreqs index fetched successfully, a Bioconductor package that took the
local-rules path and matched nothing produced no output at all — neither
missing, nor degraded, nor skipped. A check that never happened read as a
check that passed.
uvr no longer tells zypper, pacman and yum-only hosts to run
apt-get(#226). The sysreqs hint probed for
apkanddnfand then guessedapt-get, so on openSUSE the package name was right and the commanddidn't exist — on the one class of host where uvr can't run the install
itself and the hint is therefore the whole deliverable. Detection now
covers apk, dnf, microdnf, yum, zypper, pacman and apt-get, and when it
recognizes none of them it names the packages and says to use the system
package manager rather than inventing a command.
uvr doctor's C-compileradvice is fixed the same way — it hardcoded a Debian command and a
Debian package name.
TLS failures say they are TLS failures (#227).
Network error: error sending request for url (...)was all a user saw when a certificate wasrejected, because
reqwest::Error's ownDisplayrenders only theoutermost layer and the real cause sits in the
source()chain. Networkerrors now include the underlying cause, and a certificate failure adds a
hint pointing at the system trust store and
SSL_CERT_FILEinstead ofleaving it indistinguishable from being offline.
System dependencies are resolved on distributions Posit's sysreqs API
doesn't cover (#207).
SystemRequirementswas only ever read from theresolved repository's
PACKAGESindex, and CRAN's index doesn't publishthat field — so on Alpine every CRAN package reached the vendored local
rules with nothing to match, and
uvr sync --install-system-depswentstraight into a source build that failed on the missing library (
terra→
gdal-config not found,units→libudunits2.so was not found)without printing a sysreqs warning either. The check now runs after the
tarballs are downloaded and reads
SystemRequirementsfrom each one'sDESCRIPTION, which is where the field is actually published.
Binary package repos are chosen from Posit's live platform catalog, and the
choice now accounts for the host architecture. uvr matched a hardcoded
slug → repo table with no notion of arch, but only
rhel9,rhel10,noble,resoluteandmanylinux_2_28carry arm64 builds — and P3Mdegrades to source when a repo has no build for the caller's architecture.
An arm64 host on Ubuntu 22.04, Debian 12, RHEL 8 or openSUSE was therefore
compiling every package while the portable
manylinux_2_28repo, which doesbuild for arm64, sat unused. uvr now reads
GET /__api__/status(cacheddaily) and picks a repo that actually serves this distro on this
architecture. The compiled-in table still answers when the endpoint is
unreachable, and
--distributionstill wins over both.Oracle Linux gets binary packages, not just system dependencies (#209
follow-up).
ID="ol"was aliased onto RHEL for sysreqs but not for the P3Mslug, so OL hosts resolved their system libraries correctly and then
compiled every package from source.
Rocky/Alma 8 and CentOS Stream 9/10 get authoritative sysreqs answers
instead of the local-rules fallback. Posit's catalogs serve
rockylinuxfrom 9 on and
centosonly through 8, so those hosts fell back to thevendored rules and printed a degraded-check warning for distros Posit does
cover, under their RHEL name. Catalogs are now asked under a name they
publish. The
local rules keep the unaliased name on purpose — they are not
interchangeable there:
rockylinux8 carriesleptonica-develwhereredhat8 carries nothing, andcentos8 wantslibarchive-develwhereredhat8 sayslibarchive.Glibc hosts with musl installed get glibc R builds again.
linux_is_musl()answered yes whenever a musl dynamic loader existed anywhere under
/lib,which is true of any glibc machine that has the
muslpackage — installingRust's
x86_64-unknown-linux-musltarget pulls it in, so this hit developerboxes routinely. Those hosts were handed musllinux R, which dies in the
loader (
Error relocating /lib/libz.so.1: __snprintf_chk: symbol not found),and were also denied P3M binary packages entirely, since that path skips musl
hosts. Detection now asks
ldd --versionfirst — the same questioninstall.shasks when it picks which uvr binary the host gets — and glibcwins when both loaders are present.
A freshly installed R is checked before being called installed. The install
verified that
bin/Rexists but never ran it, so an R that could not startwas reported as a success and failed later somewhere less obvious. On macOS
and Linux
uvr r installnow starts the new R and asks it for its version,then removes the install and says what likely went wrong if that produces
nothing. Windows is exempt:
bin/R.exethere is a front-end that re-spawnsthe real binary, and the probe returns nothing for a freshly unzipped
install that runs perfectly well.
uvr r install develanduvr r install nextwork, and say what they are.The rolling channels are published for every platform and architecture, but
uvr rejected them as invalid versions and hid them from
uvr r list --all.They now install under their own name and are labelled
[unstable]in thelisting and warned about at install time — they are rebuilt continuously, so
pinning one is not reproducible.
Windows can install R 3.6.3 again. Availability was modelled as a single
floor shared by macOS and Windows (
>= 4.1.0), but the two platforms differand Windows is not contiguous: the CDN publishes 3.6.3, nothing from 3.6.4
through 4.0.5, then 4.1.0 onwards. A floor either rejected 3.6.3, which
exists, or advertised thirty versions that do not, so availability is now a
per-platform predicate.
System dependencies are resolved on RHEL and its rebuilds (#209). uvr asked
both sysreqs catalogs under the raw
/etc/os-releaseidentity, which neitherspeaks: Posit's API answers
Unsupported systemforrhel/8.10butanswers normally for
redhat/8, and every vendored rule is written asredhatwithversions: ["8"]. RHEL hosts therefore got nothing from theAPI and nothing from the local fallback either. The
(ID, VERSION_ID)pairis now mapped onto the catalogs' vocabulary —
rhel→redhat,rocky/almalinux→rockylinux,sles→sle, openSUSE variants →opensuse— with the RHEL family truncated to its major release. OracleLinux (
ol) joins them: it is a RHEL rebuild that neither catalog knew.Coverage still varies behind the mapping — the API serves
rockylinux9/10but not 8, and rejects
fedoraandalpineoutright — so the local rulesremain the backstop for those.
Shell activation (#177–#180):
source .uvr/activateputs the project'smanaged R and isolated library into the current shell, so a bare
RorRscriptuses the project with nouvr runprefix;deactivaterestoresit. Shims for bash/zsh/sh, fish, and PowerShell are written by
uvr init(or
uvr activate --write-shim). They hold no paths — each asks uvr torecompute the environment as it is sourced, so
uvr r use/uvr r pincan never leave a stale activation behind. Optionally prefixes the prompt
with the project name via
[activate] prompt = trueorUVR_ACTIVATE_PROMPT; off by default.Configuration
📅 Schedule: (UTC)
* 0-3 * * *)* 0-3 * * *)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.