Skip to content
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

[R] CRAN packaging checklist for version 12.0.0 #35216

Closed
36 of 44 tasks
paleolimbot opened this issue Apr 18, 2023 · 9 comments
Closed
36 of 44 tasks

[R] CRAN packaging checklist for version 12.0.0 #35216

paleolimbot opened this issue Apr 18, 2023 · 9 comments

Comments

@paleolimbot
Copy link
Member

paleolimbot commented Apr 18, 2023

Describe the enhancement requested

Packaging checklist for CRAN release

For a high-level overview of the release process see the
Apache Arrow Release Management Guide.

Before the release candidate is cut:

  • Create a GitHub issue
    entitled [R] CRAN packaging checklist for version X.X.X
    and copy this checklist to the issue.
  • Evaluate the status of any failing
    nightly tests and nightly packaging builds. These checks
    replicate most of the checks that CRAN runs, so we need them all to be passing
    or to understand that the failures may (though won't necessarily) result in a rejection from CRAN.
  • Check current CRAN check results
  • Ensure the contents of the README are accurate and up to date
  • Run urlchecker::url_check() on the R directory at the release candidate
    commit. Ignore any errors with badges as they will be removed in the CRAN release branch.
  • Polish NEWS but do not update version numbers (this is done automatically later).
  • For major releases, prepare tweet thread highlighting new features

Wait for the release candidate to be cut:

  • Release candidate!
  • Create a CRAN-release branch from the release candidate commit

Make pull requests into the autobrew and
rtools-packages repositories
used by the configure script on MacOS and Windows. These pull requests will
use the release candidate as the source.

Prepare and check the .tar.gz that will be released to CRAN.

  • git fetch upstream && git checkout release-X.X.X-rcXX && git clean -f -d
  • Run make build. This copies Arrow C++ into tools/cpp, prunes some
    unnecessary components, and runs R CMD build to generate the source tarball.
    Because this will install the package, you will need to ensure that the version
    of Arrow C++ available to the configure script is the same as the version
    that is vendored into the R package (e.g., you may need to unset ARROW_HOME).
  • devtools::check_built("arrow_X.X.X.tar.gz") locally
  • Run reverse dependency checks. Currently this is a
    manual process;
    however, in the future it may be a crossbow nightly job.

Wait for the official release...

Create new autobrew and r-windows PRs such that they use the release
instead of the release candidate; ensure linux binary packages are available:

Check binary Arrow C++ distributions specific to the R package:

  • Upload the .tar.gz to win-builder (r-devel only)
    and confirm (with Nic, who will automatically receive an email about the results) that the check is clean.
    This step cannot be completed before Jeroen has put the binaries in the MinGW repository, i.e. here, here, and here.
  • Upload the .tar.gz to MacBuilder
    and confirm that the check is clean
    https://mac.r-project.org/macbuilder/results/1683287726-628f7ff77aab0dd5/
  • Check install.packages("arrow_X.X.X.tar.gz") on Ubuntu and ensure that the
    hosted binaries are used
  • devtools::check_built("arrow_X.X.X.tar.gz") locally one more time (for luck)

Submit!

  • Upload arrow_X.X.X.tar.gz to the
    CRAN submit page
  • Confirm the submission email

Wait for CRAN...

  • Accepted!
  • Tag the tip of the CRAN-specific release branch
  • Add a new line to the matrix in the backwards compatability job
  • (patch releases only) Update the package version in ci/scripts/PKGBUILD, dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb, r/DESCRIPTION, and r/NEWS.md
  • (CRAN-only releases) Rebuild the docs with pkgdown::build_site(examples = FALSE, lazy = TRUE, install = FALSE) and submit a PR to the asf-site branch of the docs site with the contents of r/docs/news/index.html.
  • (CRAN-only releases) Bump the version number in r/pkgdown/assets/versions.json, and update this on the the asf-site branch of the docs site too.
  • Update the packaging checklist template to reflect any new realities of the
    packaging process.
  • Wait for CRAN-hosted binaries on the CRAN package page to reflect the
    new version
  • Tweet!

Component(s)

R

@paleolimbot
Copy link
Member Author

For the first bit:

  • Our nightlies are in good shape! 🤞 There's still the reported valgrind failure that I haven't gotten around to diagnosing.
  • We don't have any CRAN package check issues that need fixing

We will need a fix for #35131 merged before CRAN submission. These are just test changes and so I'm not concerned if it does not merge before the RC vote. I will tackle that tomorrow.

@assignUser
Copy link
Member

As a reminder: The relatively large acero changes need to be upstreamed to auto/homebrew: #34844

@paleolimbot
Copy link
Member Author

Our reverse dependencies as of a few days ago were 💯 according to the archery job! The only mandatory fix that will need to be done/picked into the CRAN packaging branch is #35131 .

@thisisnic
Copy link
Member

We also want #35401 adding in

@thisisnic
Copy link
Member

Added #35407 too

@paleolimbot
Copy link
Member Author

I ran another reverse dependency check with the release branch...all clean!

The coolest thing is...we're up 10 reverse dependencies! (32 -> 42)

@thisisnic
Copy link
Member

@paleolimbot That's excellent; what are our new ones?

@paleolimbot
Copy link
Member Author

Totally hacked together summary:

1          analogsea TRUE TRUE
2              arkdb TRUE TRUE
3       CDMConnector TRUE TRUE
4     ClickHouseHTTP TRUE TRUE
5       dataversionr TRUE TRUE
6            diffdfs TRUE TRUE
7         disk.frame TRUE TRUE
8             duckdb TRUE TRUE
9          fastverse TRUE TRUE
10            gbifdb TRUE TRUE
11 MolgenisArmadillo TRUE TRUE
12   mrgsim.parallel TRUE TRUE
13          nflreadr TRUE TRUE
14            noctua TRUE TRUE
15           opencpu TRUE TRUE
16             parqr TRUE TRUE
17        parquetize TRUE TRUE
18              pins TRUE TRUE
19           plumber TRUE TRUE
20        pointblank TRUE TRUE
21           RAthena TRUE TRUE
22            raveio TRUE TRUE
23       receptiviti TRUE TRUE
24               rio TRUE TRUE
25           sfarrow TRUE TRUE
26          sparklyr TRUE TRUE
27            starvz TRUE TRUE
28            strand TRUE TRUE
29           targets TRUE TRUE
30         tidyquery TRUE TRUE
31   tradestatistics TRUE TRUE
32           vetiver TRUE TRUE
33         Andromeda   NA TRUE
34           brclimr   NA TRUE
35 CodelistGenerator   NA TRUE
36       dataverifyr   NA TRUE
37           foundry   NA TRUE
38            IGoRRR   NA TRUE
39            matric   NA TRUE
40         nanoarrow   NA TRUE
41                nc   NA TRUE
42               SQL   NA TRUE

@thisisnic
Copy link
Member

All the 12.0.0-relevant bits here are done, so I'm closing this now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants