JosiahParry / rsgeo

R bindings to the geo Rust crate
https://rsgeo.josiahparry.com/
Other
47 stars 5 forks source link

Back to CRAN? #48

Closed atsyplenkov closed 2 months ago

atsyplenkov commented 2 months ago

Hey, what's up with {rsgeo} on CRAN? Need any help getting it back there?

JosiahParry commented 2 months ago

The required version of Rust to use current versions of geo is 1.75 which is far newer than CRAN will likely permit.

Robinlovelace commented 2 months ago

Update here, have got it working locally for our networkmerge project, with the following (installing the stable version fails):

# Update rust to unstable latest version:
# rustup update stable # fails
rustup update nightly # works
#| name: python-setup
# Install remotes if not already:
if (!requireNamespace("remotes")) {
  install.packages("remotes")
}
remotes::install_github("josiahparry/rsgeo")
install.packages(
  'rsgeo', 
  repos = c('https://josiahparry.r-universe.dev', 'https://cloud.r-project.org')
)
Robinlovelace commented 2 months ago

Out of interest, why did geo switch to relying on nightly not stable version of Rust? Would have saved some people (well at least me and @wangzhao0217) some time if we didn't have to go to nightly rust for this to work.

Robinlovelace commented 2 months ago

See upstream fix here: https://github.com/geocompx/docker/issues/81

JosiahParry commented 2 months ago

@Robinlovelace you probably needed to run cargo clean and not actually change to a nightly distribution. Or the tooling you were using is out of date.

I was not able to reproduce the issue.

See

image

and

image

The version of geo that rsgeo relies on requires a minimum version of rust that is 1.74.

They have a very relaxed MSRV position since the library is still solidifying its API.

JosiahParry commented 2 months ago

I am going to close this because I do not foresee CRAN bumping their MSRV for a while.

As of today these are their rust versions:

flavor rustc cargo
r-devel-linux-x86_64-fedora-clang 1.69.0 1.69.0
r-devel-linux-x86_64-fedora-gcc 1.69.0 1.69.0
r-devel-linux-x86_64-fedora-clang 1.69.0 1.69.0
r-release-macos-arm64 1.70.0 1.70.0
r-release-macos-x86_64 1.70.0 1.70.0
r-oldrel-macos-arm64 1.70.0 1.70.0
r-oldrel-macos-x86_64 1.70.0 1.70.0
r-release-macos-arm64 1.70.0 1.70.0
r-release-macos-x86_64 1.70.0 1.70.0
r-oldrel-macos-arm64 1.70.0 1.70.0
r-oldrel-macos-x86_64 1.70.0 1.70.0
r-devel-windows-x86_64 1.76.0 1.76.0
r-release-windows-x86_64 1.76.0 1.76.0
r-oldrel-windows-x86_64 1.76.0 1.76.0
r-devel-linux-x86_64-debian-clang 1.80.1 1.80.1
r-devel-linux-x86_64-debian-gcc 1.80.1 1.80.1
r-patched-linux-x86_64 1.80.1 1.80.1
r-release-linux-x86_64 1.80.1 1.80.1

I got {arcpbf} published with an MSRV of 1.70 but that was not easy and required 2 weeks of review.

Robinlovelace commented 2 months ago

Hopefully CRAN update their stuff before too long!

JosiahParry commented 2 months ago

@Robinlovelace it might be worth being a voice at https://github.com/extendr/extendr/discussions/849 even if it is as simple as "we need rust in our R packages. not having modern tooling available in rust is a hinderance to the language as a whole"

Robinlovelace commented 2 months ago

:+1: done