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

[CRAN Release]: 0.16.0 #1439

Open
10 of 32 tasks
Tracked by #1214
donyunardi opened this issue Jan 3, 2025 · 12 comments · May be fixed by #1492
Open
10 of 32 tasks
Tracked by #1214

[CRAN Release]: 0.16.0 #1439

donyunardi opened this issue Jan 3, 2025 · 12 comments · May be fixed by #1492
Assignees
Labels
core release Pertaining to a software release

Comments

@donyunardi
Copy link
Contributor

donyunardi commented Jan 3, 2025

Pre-release

  • Make sure you adhere to CRAN submission policy:
  • Make sure that high priority bugs (label "priority" + "bug") have been resolved before going into the release.
  • Review old/hanging PRs before going into the release (Optional).
  • Revisit R-package's lifecycle badges (Optional).
  • Make sure that all upstream dependencies of this package that need to be submitted to CRAN were accepted before going into release activities.
  • Make sure integration tests are green 2-3 days before the release. Look carefully through logs (check for warnings and notes).
  • Decide what gets merged in before starting release activities.

Release

Prepare the release

  • Create a new release candidate branch
    git checkout -b release-candidate-vX.Y.Z
  • Update NEWS.md file: make sure it reflects a holistic summary of what has changed in the package.
  • Remove the additional fields (Remotes) from the DESCRIPTION file where applicable.
  • Make sure that the minimum dependency versions are updated in the DESCRIPTION file for the package and its reverse dependencies (Optional).
    • Increase versioned dependency on {package name} to >=X.Y.Z (Optional).
  • Commit your changes and create the PR on GitHub (add "[skip vbump]" in the PR title). Add all updates, commit, and push changes:
    # Make the necessary modifications to your files
    # Stage the changes
    git add <files your modified>
    # Commit the changes
    git commit -m "[skip vbump] <Your commit message>"
    git push origin release-candidate-vX.Y.Z`

Test the release

  • Execute the manual tests on Shiny apps that are deployed on various hosting providers (Posit connect and shinyapps.io) - track the results in GitHub issue (Applicable only for frameworks that use Shiny).
  • Monitor integration tests, if integration fails, create priority issues on the board.
  • Execute UAT tests (Optional).

CRAN submission

  • Tag the update(s) as a release candidate vX.Y.Z-rc (e.g. v0.5.3-rc1) on the release candidate branch (release-candidate-vX.Y.Z).
    # Create rc tag for submission for internal validation
    git tag vX.Y.Z-rc<iteration number>
    git push origin vX.Y.Z-rc<iteration number>
  • Build the package locally using the command:R CMD build . which will generate a .tar.gz file necessary for the CRAN submission.
  • Submit the package to https://win-builder.r-project.org/upload.aspx for testing, for more details please see "Building and checking R source packages for Windows": https://win-builder.r-project.org/.
  • Once tested, send the package that was built in the previous steps to CRAN via this form: https://cran.r-project.org/submit.html.
  • Address CRAN feedback, tag the package vX.Y.Z-rc(n+1) and repeat the submission to CRAN whenever necessary.
  • Get the package accepted and published on CRAN.

Tag the release

  • If the additional fields were removed, add them back in a separate PR, and then merge the PR back to main (add "[skip vbump]" in the PR title). If nothing was removed just merge the PR you created in the "Prepare the release" section to 'main'. Note the commit hash of the merged commit. Note: additional commits might be added to the main branch by a bot or an automation - we do NOT want to tag this commit.
Make sure of the following before continuing
  • CI checks are passing in GH before releasing the package.
  • Shiny apps are deployable and there are no errors/warnings (Applicable only for frameworks that use Shiny).
  • Create a git tag with the final version set to vX.Y.Z on the main branch. In order to do this:
    1. Checkout the commit hash.
      git checkout <commit hash>
    2. Tag the hash with the release version (vX.Y.Z).
      git tag vX.Y.Z
    3. Push the tag to make the final release.
      git push origin vX.Y.Z
  • Update downstream package dependencies to (>=X.Y.Z) in {package name}.
    Note: Once the release tag is created, the package is automatically published to internal repositories.

Post-release

  • Ensure that CRAN checks are passing for the package.
  • Make sure that the package is published to internal repositories.
  • Make sure internal documentation is up to date.
  • Review and update installation instructions for the package wherever needed (Optional).
  • Announce the release on ________.

Decision tree

Click here to see the release decision tree.

@donyunardi
Copy link
Contributor Author

Submitted to CRAN.
Awaiting feedback.

@gogonzo
Copy link
Contributor

gogonzo commented Feb 17, 2025

CRAN Feedback:

* checking for non-standard things in the check directory ... NOTE
Found the following files/directories:
   ‘.renv’ ‘BiocManager’

@vedhav
Copy link
Contributor

vedhav commented Feb 17, 2025

Could this be because of creating the teal.lockfile?

@gogonzo
Copy link
Contributor

gogonzo commented Feb 17, 2025

Could this be because of creating the teal.lockfile?

We create teal_app.lock. It doesn't seem possible that it is our fault. @donyunardi can you confirm that you don't have such directories in your local setup? Maybe you packaged tar.gz containing them? If not maybe adding entries to .Rbuildignore is enough?

@llrs-roche
Copy link
Contributor

llrs-roche commented Feb 17, 2025

I have locally and it is not on the repository, I think it is generated during the R CMD check. In which case adding it to .Rbuildignore won't solve it. I think we need to clean it after its creation or directly only save it on the tempdir() or tools::R_user_dir().

@donyunardi
Copy link
Contributor Author

donyunardi commented Feb 17, 2025

We create teal_app.lock. It doesn't seem possible that it is our fault. @donyunardi can you confirm that you don't have such directories in your local setup? Maybe you packaged tar.gz containing them? If not maybe adding entries to .Rbuildignore is enough?

I unpacked the tar.gz file that I sent and can confirm that I don't have such files or directories in the folder.

Here are the pretests result after the package was submitted to CRAN last week:
https://win-builder.r-project.org/incoming_pretest/teal_0.16.0_20250214_201820/Windows/00check.log
https://win-builder.r-project.org/incoming_pretest/teal_0.16.0_20250214_201820/Debian/00check.log

There are no NOTES, everything is OK.

I replied to the email asking for more clarification.

@donyunardi
Copy link
Contributor Author

I have locally and it is not on the repository, I think it is generated during the R CMD check.

@llrs-roche
How did you do this? I tried R CMD check, devtools::check(), devtools::test(), and none of them generating the files that were mentioned.

@m7pr
Copy link
Contributor

m7pr commented Feb 18, 2025

Maybe they just sent the feedback to the wrong receiver?

@llrs-roche
Copy link
Contributor

@donyunardi Not sure, I see teal_app.lock showing up on the git pane sometimes, I have it on packages folders like the folder containing the teal.modules.general directory. But I haven't seen the .renv folder locally.

@gogonzo
Copy link
Contributor

gogonzo commented Feb 18, 2025

Nobody responded yet. I propose to add these lines to tests/testthat.R at the end of the file. What everybody thinks of it?

# CRAN artifacts
unlink(".renv")
unlink("BiocManager")

@donyunardi
Copy link
Contributor Author

donyunardi commented Feb 18, 2025

Let's do it. I'll resubmit today.

@donyunardi
Copy link
Contributor Author

donyunardi commented Feb 18, 2025

resubmitted to CRAN. Awaiting feedback.

winbuilder result passed with no NOTE:
https://win-builder.r-project.org/JgBIKpG9LkKZ/
https://win-builder.r-project.org/8npQJa27N33s/
https://win-builder.r-project.org/5x5WEGyvx6th/

Submitted tar.gz file can also be downloaded from one of these links.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core release Pertaining to a software release
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants