[R] CRAN packaging checklist for version 13.0.0 #36802

Description

@thisisnic

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).
  • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
  • For major releases, prepare tweet thread highlighting new features.

Wait for the release candidate to be cut:

After release candidate has been cut

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

Optional: PRs for autobrew and rtools (release candidate)

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 using archery docker run r-revdepcheck.

Release vote

  • Release vote passed!

PRs for autobrew and rtools (official release)

Create new autobrew and r-windows PRs such that they use the release
instead of the release candidate:

  • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
  • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
  • PR into autobrew/scripts
  • PR into r-windows/rtools-packages

Generate R package to submit to CRAN

  • If the release candidate commit updated, rebase the CRAN release branch
    on that commit.
  • Pick any commits that were made to main since the release commit that
    were needed to fix CRAN-related submission issues identified in the above
    steps.
  • Remove badges from README.md
  • Run urlchecker::url_check() on the R directory
  • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
    a comment @github-actions crossbow submit --group r to run all R crossbow
    jobs against the CRAN-specific release branch.
  • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

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/1693354381-aed8fd0fff067774/
  • 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)

CRAN submission

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!

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content

    [R] CRAN packaging checklist for version 13.0.0 #36802

    Description

    @thisisnic

    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).
    • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
    • For major releases, prepare tweet thread highlighting new features.

    Wait for the release candidate to be cut:

    After release candidate has been cut

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

    Optional: PRs for autobrew and rtools (release candidate)

    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 using archery docker run r-revdepcheck.

    Release vote

    • Release vote passed!

    PRs for autobrew and rtools (official release)

    Create new autobrew and r-windows PRs such that they use the release
    instead of the release candidate:

    • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
    • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
    • PR into autobrew/scripts
    • PR into r-windows/rtools-packages

    Generate R package to submit to CRAN

    • If the release candidate commit updated, rebase the CRAN release branch
      on that commit.
    • Pick any commits that were made to main since the release commit that
      were needed to fix CRAN-related submission issues identified in the above
      steps.
    • Remove badges from README.md
    • Run urlchecker::url_check() on the R directory
    • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
      a comment @github-actions crossbow submit --group r to run all R crossbow
      jobs against the CRAN-specific release branch.
    • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

    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/1693354381-aed8fd0fff067774/
    • 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)

    CRAN submission

    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!

    Metadata

    Metadata

    Assignees

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content

      [R] CRAN packaging checklist for version 13.0.0 #36802

      Description

      @thisisnic

      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).
      • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
      • For major releases, prepare tweet thread highlighting new features.

      Wait for the release candidate to be cut:

      After release candidate has been cut

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

      Optional: PRs for autobrew and rtools (release candidate)

      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 using archery docker run r-revdepcheck.

      Release vote

      • Release vote passed!

      PRs for autobrew and rtools (official release)

      Create new autobrew and r-windows PRs such that they use the release
      instead of the release candidate:

      • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
      • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
      • PR into autobrew/scripts
      • PR into r-windows/rtools-packages

      Generate R package to submit to CRAN

      • If the release candidate commit updated, rebase the CRAN release branch
        on that commit.
      • Pick any commits that were made to main since the release commit that
        were needed to fix CRAN-related submission issues identified in the above
        steps.
      • Remove badges from README.md
      • Run urlchecker::url_check() on the R directory
      • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
        a comment @github-actions crossbow submit --group r to run all R crossbow
        jobs against the CRAN-specific release branch.
      • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

      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/1693354381-aed8fd0fff067774/
      • 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)

      CRAN submission

      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!

      Metadata

      Metadata

      Assignees

      Type

      No type

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content

        [R] CRAN packaging checklist for version 13.0.0 #36802

        Description

        @thisisnic

        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).
        • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
        • For major releases, prepare tweet thread highlighting new features.

        Wait for the release candidate to be cut:

        After release candidate has been cut

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

        Optional: PRs for autobrew and rtools (release candidate)

        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 using archery docker run r-revdepcheck.

        Release vote

        • Release vote passed!

        PRs for autobrew and rtools (official release)

        Create new autobrew and r-windows PRs such that they use the release
        instead of the release candidate:

        • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
        • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
        • PR into autobrew/scripts
        • PR into r-windows/rtools-packages

        Generate R package to submit to CRAN

        • If the release candidate commit updated, rebase the CRAN release branch
          on that commit.
        • Pick any commits that were made to main since the release commit that
          were needed to fix CRAN-related submission issues identified in the above
          steps.
        • Remove badges from README.md
        • Run urlchecker::url_check() on the R directory
        • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
          a comment @github-actions crossbow submit --group r to run all R crossbow
          jobs against the CRAN-specific release branch.
        • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

        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/1693354381-aed8fd0fff067774/
        • 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)

        CRAN submission

        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!

        Metadata

        Metadata

        Assignees

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content

          [R] CRAN packaging checklist for version 13.0.0 #36802

          Description

          @thisisnic

          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).
          • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
          • For major releases, prepare tweet thread highlighting new features.

          Wait for the release candidate to be cut:

          After release candidate has been cut

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

          Optional: PRs for autobrew and rtools (release candidate)

          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 using archery docker run r-revdepcheck.

          Release vote

          • Release vote passed!

          PRs for autobrew and rtools (official release)

          Create new autobrew and r-windows PRs such that they use the release
          instead of the release candidate:

          • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
          • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
          • PR into autobrew/scripts
          • PR into r-windows/rtools-packages

          Generate R package to submit to CRAN

          • If the release candidate commit updated, rebase the CRAN release branch
            on that commit.
          • Pick any commits that were made to main since the release commit that
            were needed to fix CRAN-related submission issues identified in the above
            steps.
          • Remove badges from README.md
          • Run urlchecker::url_check() on the R directory
          • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
            a comment @github-actions crossbow submit --group r to run all R crossbow
            jobs against the CRAN-specific release branch.
          • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

          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/1693354381-aed8fd0fff067774/
          • 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)

          CRAN submission

          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!

          Metadata

          Metadata

          Assignees

          Type

          No type

          Projects

          No projects

            Milestone

            No milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content

            [R] CRAN packaging checklist for version 13.0.0 #36802

            Description

            @thisisnic

            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).
            • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
            • For major releases, prepare tweet thread highlighting new features.

            Wait for the release candidate to be cut:

            After release candidate has been cut

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

            Optional: PRs for autobrew and rtools (release candidate)

            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 using archery docker run r-revdepcheck.

            Release vote

            • Release vote passed!

            PRs for autobrew and rtools (official release)

            Create new autobrew and r-windows PRs such that they use the release
            instead of the release candidate:

            • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
            • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
            • PR into autobrew/scripts
            • PR into r-windows/rtools-packages

            Generate R package to submit to CRAN

            • If the release candidate commit updated, rebase the CRAN release branch
              on that commit.
            • Pick any commits that were made to main since the release commit that
              were needed to fix CRAN-related submission issues identified in the above
              steps.
            • Remove badges from README.md
            • Run urlchecker::url_check() on the R directory
            • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
              a comment @github-actions crossbow submit --group r to run all R crossbow
              jobs against the CRAN-specific release branch.
            • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

            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/1693354381-aed8fd0fff067774/
            • 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)

            CRAN submission

            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!

            Metadata

            Metadata

            Assignees

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              [R] CRAN packaging checklist for version 13.0.0 #36802

              Description

              @thisisnic

              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).
              • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
              • For major releases, prepare tweet thread highlighting new features.

              Wait for the release candidate to be cut:

              After release candidate has been cut

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

              Optional: PRs for autobrew and rtools (release candidate)

              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 using archery docker run r-revdepcheck.

              Release vote

              • Release vote passed!

              PRs for autobrew and rtools (official release)

              Create new autobrew and r-windows PRs such that they use the release
              instead of the release candidate:

              • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
              • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
              • PR into autobrew/scripts
              • PR into r-windows/rtools-packages

              Generate R package to submit to CRAN

              • If the release candidate commit updated, rebase the CRAN release branch
                on that commit.
              • Pick any commits that were made to main since the release commit that
                were needed to fix CRAN-related submission issues identified in the above
                steps.
              • Remove badges from README.md
              • Run urlchecker::url_check() on the R directory
              • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
                a comment @github-actions crossbow submit --group r to run all R crossbow
                jobs against the CRAN-specific release branch.
              • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

              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/1693354381-aed8fd0fff067774/
              • 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)

              CRAN submission

              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!

              Metadata

              Metadata

              Assignees

              Type

              No type

              Projects

              No projects

                Milestone

                No milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content

                [R] CRAN packaging checklist for version 13.0.0 #36802

                Description

                @thisisnic

                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).
                • Run preliminary reverse dependency checks using archery docker run r-revdepcheck.
                • For major releases, prepare tweet thread highlighting new features.

                Wait for the release candidate to be cut:

                After release candidate has been cut

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

                Optional: PRs for autobrew and rtools (release candidate)

                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 using archery docker run r-revdepcheck.

                Release vote

                • Release vote passed!

                PRs for autobrew and rtools (official release)

                Create new autobrew and r-windows PRs such that they use the release
                instead of the release candidate:

                • PR into autobrew/homebrew-core (apache-arrow autobrew formula)
                • PR into autobrew/homebrew-core (apache-arrow-static autobrew formula)
                • PR into autobrew/scripts
                • PR into r-windows/rtools-packages

                Generate R package to submit to CRAN

                • If the release candidate commit updated, rebase the CRAN release branch
                  on that commit.
                • Pick any commits that were made to main since the release commit that
                  were needed to fix CRAN-related submission issues identified in the above
                  steps.
                • Remove badges from README.md
                • Run urlchecker::url_check() on the R directory
                • Create a PR entitled WIP: [R] Verify CRAN release-10.0.1-rc0. Add
                  a comment @github-actions crossbow submit --group r to run all R crossbow
                  jobs against the CRAN-specific release branch.
                • Regenerate arrow_X.X.X.tar.gz (i.e., make build)

                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/1693354381-aed8fd0fff067774/
                • 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)

                CRAN submission

                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!

                Metadata

                Metadata

                Assignees

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions