feat: uscogdata 0.3.0 — first public release #41

Merged
jared merged 15 commits from feat/public-release-0.3.0 into main 2026-08-08 18:56:15 -04:00
2 changed files with 32 additions and 4 deletions
Showing only changes of commit a67735f121 - Show all commits
+11 -4
View File
@@ -1,14 +1,21 @@
Package: uscogdata Package: uscogdata
Type: Package Type: Package
Title: Curated Reader for the Civilytics US Census of Governments Finance Corpus Title: Curated Reader for the Civilytics US Census of Governments Finance Corpus
Version: 0.2.0 Version: 0.3.0
Authors@R: Authors@R: c(
person("Civilytics", , , "jknowles@gmail.com", role = c("aut", "cre")) person(c("Jared", "E."), "Knowles",
email = "jared@civilytics.com",
role = c("aut", "cre"),
comment = c(ORCID = "0000-0003-0005-9478")),
person("Civilytics Consulting LLC", role = c("cph", "fnd")))
Description: Curated R verbs over the Civilytics US Census of Governments Description: Curated R verbs over the Civilytics US Census of Governments
finance corpus. Provides unit-level financial profiles, geographic finance corpus. Provides unit-level financial profiles, geographic
rollups, and peer comparisons with auditable provenance and built-in rollups, and peer comparisons with auditable provenance and built-in
cross-vintage correctness. cross-vintage correctness.
License: MIT + file LICENSE License: MIT + file LICENSE
URL: https://github.com/civilytics/uscogdata,
https://civilytics.r-universe.dev/uscogdata
BugReports: https://github.com/civilytics/uscogdata/issues
Encoding: UTF-8 Encoding: UTF-8
LazyData: false LazyData: false
Depends: R (>= 4.1) Depends: R (>= 4.1)
@@ -32,4 +39,4 @@ Config/testthat/edition: 3
VignetteBuilder: knitr VignetteBuilder: knitr
RoxygenNote: 7.3.3 RoxygenNote: 7.3.3
MinCorpusSchema: 4 MinCorpusSchema: 4
MaxCorpusSchema: 5 MaxCorpusSchema: 7
+21
View File
@@ -87,3 +87,24 @@ test_that("an explicitly-set sentinel URL still aborts", {
class = "uscogdata_url_not_configured" class = "uscogdata_url_not_configured"
) )
}) })
test_that("DESCRIPTION carries release metadata", {
skip_if_no_source_tree("DESCRIPTION")
d <- read.dcf(source_tree_path("DESCRIPTION"))
fields <- colnames(d)
expect_true(all(c("URL", "BugReports") %in% fields))
expect_match(d[1, "Authors@R"], "Knowles", fixed = TRUE)
expect_match(d[1, "Authors@R"], "0000-0003-0005-9478", fixed = TRUE)
expect_match(d[1, "Authors@R"], "Civilytics Consulting LLC", fixed = TRUE)
# The gate in .validate_schema() accepts up to 7 and the published corpus
# IS 7; DESCRIPTION must not claim otherwise.
expect_equal(as.integer(d[1, "MaxCorpusSchema"]), 7L)
# Authors@R must actually parse -- a malformed person() call is only
# caught at citation()/build time otherwise.
people <- eval(parse(text = d[1, "Authors@R"]))
expect_s3_class(people, "person")
expect_true("cre" %in% unlist(lapply(people, function(p) p$role)))
})