Skip to content

Scaffold the owdata package with washr 1.1.0 #1

Description

@larnsce

Goal

Scaffold the owdata R package on main: the index metapackage for the openwashdata R data packages. Skeleton only; parsers, harvest, data model and exports are #3 to #6.

Rewritten 2026-09-04 per dev/decisions-2026-09.md.

Target layout

owdata/
├── DESCRIPTION            # Package owdata, License CC BY 4.0, Imports tibble + utils
├── CLAUDE.md              # #16
├── R/
│   ├── sysdata.rda        # internal catalog snapshot written by the harvest (#5)
│   ├── owd_accessors.R    # owd_packages(), owd_datasets(), owd_variables()
│   ├── owd_search.R
│   ├── owd_install.R
│   ├── parsers.R          # #3, in R/ so the tests run against the built tarball
│   └── zzz.R              # .onAttach startup message only
├── inst/extdata/          # owd_packages.csv, owd_datasets.csv, owd_variables.csv
├── data-raw/
│   ├── harvest.R          # #4
│   ├── harvest_helpers.R  # local and GitHub backends
│   ├── exclude_repos.csv  # denylist backstop
│   ├── packages.json      # r-universe registry draft, generated
│   └── harvest_report.md  # generated
├── tests/testthat/        # test-parsers.R, test-schema.R, fixtures/
├── .github/workflows/     # R-CMD-check.yaml, pkgdown.yaml, test-coverage.yaml, harvest.yaml (#9)
└── _pkgdown.yml           # written by washr::setup_website(), branded by washr::use_brand()

The catalog tables are internal data behind accessor functions, not lazydata: a lazydata object and an exported function cannot both be called owd_packages. There is no data/ directory and no R/data.R.

Tasks

  • usethis::create_package(), then washr::setup_ci(), washr::update_description(), washr::setup_website(), washr::use_brand(). owdata is built with the tool it indexes.
  • DESCRIPTION: Title "Index of openwashdata R Data Packages", Authors@R with ORCID, License CC BY 4.0, URL and BugReports, Config/Needs/website: rmarkdown.
  • testthat 3 setup; copy test-coverage.yaml from washr (coverage in the job summary, no Codecov).
  • Commit the workflows by hand. Session tokens cannot write .github/workflows/, which is why PR feat: implement the owdata index metapackage at v0.0.0.9000 #15 parked them.
  • CLAUDE.md per Write CLAUDE.md #16.
  • README: purpose, the three accessors, owd_search(), owd_install(), and one paragraph on how a package gets listed: publish with washr, mint the Zenodo DOI, the weekly harvest picks it up.

Acceptance criteria

  • devtools::check() passes on the skeleton
  • R-CMD-check, pkgdown and test-coverage workflows green on main
  • A second run of every washr function above changes no file

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions