Skip to content

Discussion: Migration to roxygen2 8.x #4031

Description

@S1DDHEY

Background

While reviewing a recent pull request, I noticed that regenerating documentation with roxygen2 8.x automatically replaces

RoxygenNote: 7.3.3

with

Config/roxygen2/version: 8.0.0

in package DESCRIPTION files.

This is an intentional change introduced by roxygen2 8.x, where package configuration is now stored using Config/roxygen2/* fields instead of RoxygenNote.

Previously, issue #3811 coordinated the repository-wide migration from roxygen2 7.3.2 to 7.3.3. Since roxygen version changes affect generated files across the repository, it may be worth considering a similar coordinated migration for roxygen2 8.x

Current impact

During review, I found that the current PEcAn tooling still assumes the presence of RoxygenNote.

Confirmed

  • scripts/generate_dependencies.R currently reads the RoxygenNote field from package DESCRIPTION files.
  • Regenerating documentation with roxygen2 8.x removes this field, causing the dependency generation workflow to fail with:
Field 'RoxygenNote' not found

As a result, the current CI is not compatible with packages documented using roxygen2 8.x.

Potential migration work

A repository-wide migration would likely involve:

  • Updating all package DESCRIPTION files to the new roxygen2 metadata format.
  • Updating scripts that currently read RoxygenNote to instead support Config/roxygen2/version (or both formats during migration).
  • Updating CI workflows.
  • Updating the docs
  • Regenerating documentation (DESCRIPTION, NAMESPACE, .Rd, and any other generated files) across all PEcAn packages using the new version.

As with the previous roxygen version update (#3811), it would also be useful to estimate how many generated files change and identify any open PRs that may be affected before performing the migration.

Discussion

If there is interest in moving forward with this migration, I'd be happy to test it locally first, identify all the required changes (including any affected scripts, generated files, and CI workflows), and report the findings back here. Once the scope has been agreed upon, I can then work on preparing a migration PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions