-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CRAN Release? #80
Comments
Cool :) For mac this issue will trigger a warning or error with CRAN check. I likely have to bundle some shared macOS tool or include as a requirement in DESCRIPTION. Is it allowed on CRAN, not to release on all OS, e.g. skip mac in first round? Regarding #29 |
I'm sorry I don't understand the whole issue, but are you saying that due to the issue, rpolars can's update polars?
Yes, this must be |
r-lib/rcmdchek does not support to filter errors. Many projects get the same warning on large binary size, which CRAN is not enforcing anyways. Best advice I could find in issue track is to ignore any warnings in R CMD Check to avoid builds flagged as failed. I found the practice sub-optimal, as I would not notice my own newly introduced warnings. Currently I ignore the binary size warning and the mac dependency warning/error.I don't know how to fix it yet. However, I have never heard of any mac installation except cran Check, where it was actually a problem. |
@eitsupi Oh sorry I did not reply well to your question.
We can update polars just fine. The Mac DLL warning just started at a certain commit when rust-polars introduced some new system calls. I have not solved the warning yet. I suspect that any Mac does support these system calls. I could immediately try to submit a build to the cran windows test build system and see what we get back. I wonder if there are any limitations on build time. |
Thanks for the reply. |
@eitsupi |
Grad to hear that! Debian's Rust version is still 1.63, so we will not be able to do a CRAN release any time soon. I hope to have the Debian Rust version up by summer and we can get the tasks for the CRAN release done by then. |
Actually I think we can get away with using Required Rust version >=1.62 |
ohh now I remember that namespace thing that required >= 1.64 |
Out of interest, I just peeked at the Debian rustc logs and 1.64 was accepted into the unstable branch earlier this week. See News here: https://packages.qa.debian.org/r/rustc.html Last time it only took a week for 1.63 to migrate to the testing branch (which is what CRAN uses) after acceptance on unstable. So hopefully not too long now... |
Debian Rust has been completely stuck for the last six months, and it makes little sense to base the schedule on anything earlier than that..... |
Migration to Rust 1.65 seems to be going well as far as the progress status is seen. @sorhawell Any thoughts on submitting to CRAN?
|
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
FYI, I sent the latest version to R-hub builder and gets the following notes.
|
Debian testing's rustc is now 1.66! @sorhawell I am going to work on the Makevars modifications and document updates, is it possible for you to make a submission to CRAN within the next few days? |
Does Testing mean CRAN supports it now? Or does Testing mean in a few days 1.66 will be stable on Debian? I can do a submission tomorrow e.g. ? :) |
Debian "testing" is one of Debian's release channels for rolling releases.
Wonderful! |
This comment was marked as outdated.
This comment was marked as outdated.
@eitsupi I was kidnapped into a meeting+follow 6 hours ago. What should I start on now towards cran release? |
You're right @sorhawell, I misread the guidelines for Rust. However, as @mrwunderbar666 said above, the CRAN policies say
but AFAICT nowhere in CRAN policies do they mention Zenodo. So I think before anything we should ask them directly if this would be acceptable to them (and if they agree with this submitting strategy overall). |
I believe this is where Zenodo's name came up. (It is truly surprising that they equate Crates.io with GitHub.) https://stat.ethz.ch/pipermail/r-package-devel/2023q3/009332.html
|
@mrwunderbar666 I'm sorry to say when bump r-polars dependency to rust-polars to 0.32.1 the minimal required version of rustc is now 1.70 for without SIMD and rust nightly-2023-07-27 for with. CRAN only supports 1.65 or 1.66 or something like that. I think we have hit another hard wall. rust-polars have made no promise of only using the about 2 years older rustc versions released via debian as CRAN uses. Thank you for looking into alternatives, but I think this is show stopper for now. |
To Debian's honor: Rust 1.66 was released in December 2022, which is still less than a year old. |
Thanks for looking into this, I haven't considered the version of rustc :/ I'll be looking around for other ways of getting polars to CRAN, but I guess for now this should not be a priority for package development. As a Linux user, I could install the package from r-universe without problems, so it would suffice for now EDIT: should not be a priority |
I would like to agree with that, but I think we did our best (see #308 for example) and as a result it looks impossible. CRAN says #80 (comment)
Checking in R-universe, the |
For example, Edit: I think the arrow package is installed almost completely by default now. |
@eitsupi Sorry, mistyped! I meant it should not be a priority |
CRAN has approved 12MB of Since Debian may soon reach Rust 1.70, it may be worthwhile to try again to submit to CRAN in a few months. My concern is that the build time is too long... |
It seems that the initial arrow package on CRAN did not include libarrow. In fact, we can confirm that nothing works when this version is installed. > remotes::install_version("arrow", version = "0.14.1")
Downloading package from url: https://packagemanager.posit.co/cran/__linux__/jammy/latest/src/contrib/Archive/arrow/arrow_0.14.1.tar.gz
These packages have more recent versions available.
It is recommended to update all of them.
Which would you like to update?
1: All
2: CRAN packages only
3: None
4: withr (2.5.0 -> 2.5.1) [CRAN]
Enter one or more numbers, or an empty line to skip updates: 1
withr (2.5.0 -> 2.5.1) [CRAN]
bit (NA -> 4.0.5) [CRAN]
tidyselect (NA -> 1.2.0) [CRAN]
bit64 (NA -> 4.0.5) [CRAN]
assertthat (NA -> 0.2.1) [CRAN]
Installing 5 packages: withr, bit, tidyselect, bit64, assertthat
Installing packages into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'https://packagemanager.posit.co/cran/__linux__/jammy/latest/src/contrib/withr_2.5.1.tar.gz'
Content type 'binary/octet-stream' length 228097 bytes (222 KB)
==================================================
downloaded 222 KB
trying URL 'https://packagemanager.posit.co/cran/__linux__/jammy/latest/src/contrib/bit_4.0.5.tar.gz'
Content type 'binary/octet-stream' length 1130781 bytes (1.1 MB)
==================================================
downloaded 1.1 MB
trying URL 'https://packagemanager.posit.co/cran/__linux__/jammy/latest/src/contrib/tidyselect_1.2.0.tar.gz'
Content type 'binary/octet-stream' length 219931 bytes (214 KB)
==================================================
downloaded 214 KB
trying URL 'https://packagemanager.posit.co/cran/__linux__/jammy/latest/src/contrib/bit64_4.0.5.tar.gz'
Content type 'binary/octet-stream' length 475413 bytes (464 KB)
==================================================
downloaded 464 KB
trying URL 'https://packagemanager.posit.co/cran/__linux__/jammy/latest/src/contrib/assertthat_0.2.1.tar.gz'
Content type 'binary/octet-stream' length 52457 bytes (51 KB)
==================================================
downloaded 51 KB
* installing *binary* package ‘withr’ ...
* DONE (withr)
* installing *binary* package ‘bit’ ...
* DONE (bit)
* installing *binary* package ‘assertthat’ ...
* DONE (assertthat)
* installing *binary* package ‘tidyselect’ ...
* DONE (tidyselect)
* installing *binary* package ‘bit64’ ...
* DONE (bit64)
The downloaded source packages are in
‘/tmp/RtmpcEbl7u/downloaded_packages’
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
* installing *binary* package ‘arrow’ ...
* DONE (arrow)
> library(arrow)
Attaching package: ‘arrow’
The following object is masked from ‘package:utils’:
timestamp
The following objects are masked from ‘package:base’:
array, table
> set.seed(24)
> tab <- arrow::table(x = 1:10, y = rnorm(10))
Error in Table__from_dots(dots, schema) :
Cannot call Table__from_dots(). Please use arrow::install_arrow() to install required runtime libraries. Similarly, it may be worthwhile here to reduce functionality from the default feature to the bare minimum to reduce build time on CRAN...... |
I'm still considering the possibility of a CRAN release, but given the frequency of breaking changes with frequent breaking changes upstream, maybe it's better to avoid CRAN releases for a while? |
I don't see why this is a problem as long as we advertise well that there are still a lot of breaking changes upstream. The way I see it, releasing on CRAN is just a way to make it easier for people to install the package. We should emphasize that it shouldn't be used in other packages for now, but I don't see the number of breaking changes as a blocker. If you still prefer to wait for upstream |
My intention was that it would take a lot of effort to fix with reverse dependency checking. |
I think almost all the issues have been resolved, so if Rust on CRAN catches up to MSRV of polars, I would like to submit to CRAN again. However, Rust on CRAN has been stagnant for more than half a year due to the outdated Fedora server becoming a bottleneck, so we don't know when that will happen. |
Supposing that the Rust version of CRAN matches the MSRV of polars, would we actually be ready to submit? If I remember correctly one of the main issues was also the package size, do we have a clear strategy for this? |
I think the package size issue has now been resolved. |
Wasn't |
The point here is that packages larger than 5MB are usually not allowed. I don't think there is any difference between 15MB and 34MB in the sense that it exceeds 5MB. (Maybe there is, but we won't know until we ask CRAN) |
Not sure if this is applicable to rust packages, but if e.g. header files are required from other libraries and they make up substantial space, one potential workaround could be to create multiple packages containing only those headers under |
Thank you for your comment. Cargo supports vendoring very well and the CRAN team is aware of the package size issue, so it's probably OK for Rust to just include all the source code in the package. |
Given the low update frequency of Rust on CRAN (they are currently using Fedora 36 from EOL for almost a year now, and they are at Rust 1.69 with no plans to be updated in the future) and the high update frequency of MSRV on (Rust) Polars, I don't know if we should submit polars to CRAN even if they temporarily meet the MSRV requirements. One option would be to start CRAN releases after the infrastructure on CRAN has improved and there is a guarantee that Rust will be regularly updated. |
I don't see any discussion on Rust on this repo, am I missing something or do you mean that we should initiate the discussion there? |
@etiennebacher This is a problem with the current CRAN infrastructure, not with Rust support. In other words, the current CRAN may be stuck with the Rust version 1.69 forever because it does not know if Fedora 36 will be used until a week, a year, or 10 years from now. If updated to container-based IaC, at least it will not happen that Linux distributions that have reached EOL will remain in use for years to come. |
I think we should close this issue. The main blocker is the Rust version on the current CRAN infrastructure and there's nothing we can do about this. We can reopen when there's some news about this. @eitsupi do you agree? |
Update in 2024: I don't think we will make a CRAN release, please install from R-multiverse.
The Rust version of Debian testing will soon be 1.65, which may allow us to build rpolars tuned to build in the R-universe.
(Note that the macOS builder's Rust version may be older than Debian's. PRQL/prqlc-r#94)
https://tracker.debian.org/pkg/rustc
https://qa.debian.org/excuses.php?experimental=1&package=rustc
@sorhawell Could you potentially do a CRAN release?
Probably need to modify build scripts (like #29) and documentation (Of course I would like to contribute to that.).
The text was updated successfully, but these errors were encountered: