Release 7/11: tag v0.4.0 and register with r-universe #47
Closed
opened 2026-08-08 18:43:41 -04:00 by jared
·
4 comments
No Branch/Tag Specified
main
ci/mirror-canonical-tags
chore/release-47-badges-mirror-pr
docs/readme-perf-remeasure-56
feat/pagination-search-balances-57
feat/duckdb-threads-60
feat/cohort-predicates-58
fix/windows-backslash-paths
ci/mirror-to-github
ci/github-actions-matrix
feat/public-release-0.3.0
chore/fixture-sb203
ci/apt-https
fix/pushdown-pagination
feat/all-categories-37
fix/partial-coverage-signposting-9
fix/schema-v7
fix/cog-categories-balance-subtype
feat/cog-balances-25
feat/revenue-concepts-12
feat/expenditure-concepts-11
feat/coverage-disclosure-13
feat/complete-argument-18
fix/kodor-batch-14-15-16
fix/all-scoped-series-breaks-19
fix/regen-fixture-corpus-18
test/walkthrough-findings
feat/expenditure-concept
fix/3-url-trailing-slash
feat/phase-r3-signposting
fix/fixture-option-b-aggregates
feat/phase-r2-harmonization
feat/phase-r1-forward
feat/cog-gov-search-basket-mode
v0.4.0
Labels
Clear labels
kodor
kodor/feature-proposal
kodor/fix
kodor/needs-review
kodor/triaged
madison-walkthrough
severity/high
severity/low
severity/medium
south-guide
verdict/defect
verdict/definitional
kodor
kodor/feature-proposal
kodor/fix
kodor/needs-review
kodor/triaged
Kodor should process this issue
Kodor has written a feature proposal
Kodor should implement a fix (assigned to Kodor)
Kodor's work or failure needs Jared's review
Kodor has already triaged this issue (skip)
Surfaced while building the client-facing Southern API guide
needs
human
Cannot move without a person -- a decision, a check an agent cannot make, something outside the repo
origin
client
Came from a client ask
origin
obligation
Created by a change elsewhere
origin
review
Came from human review
origin
roborev
Promoted from a roborev finding
type
chore
Maintenance with no behaviour change
type
debt
Owed work -- docs, tests, cleanup a change obligated
type
decision
Needs a decision before work can proceed
type
defect
Something is wrong
type
feature
New capability
ws
api
Query verbs and results
ws
corpus
Corpus, mirror, provenance
ws
docs
Vignettes and guides
Assign a task to kodor
Kodor thinks this needs a feature.
Kodor should fix this
Kodor thinks the user is ready to review this.
Kodor is done with this issue.
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Civilytics/uscogdata#47
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Blocked on #56 (performance pass). Everything mechanical below is ready; this is the go-live gate and it waits for tuning.
Why the ordering matters
r-universe publishes check results the moment a package is registered, and a tag is a durable pointer. Registering before the performance pass means the first thing anyone sees is a version we already intend to improve.
Everything else is green:
R CMD check --as-cran0/0/0, 972 tests offline, 974 against the live corpus, 4/4 platforms on the mirror matrix, cog-api unbroken.Steps
v0.3.0on Giteamain, confirm the mirror workflow carries the tag to GitHub — this is also the first clean end-to-end run of that workflowgithub.com/civilytics/civilytics.r-universe.dev— the name must be exactly<org>.r-universe.devpackages.jsonpinned to the tag:json [ { "package": "uscogdata", "url": "https://github.com/civilytics/uscogdata", "branch": "v0.3.0" } ]Point at the GitHub mirror, not Gitea: it keeps clone traffic off the origin and gets webhook-speed rebuilds via the app.
civilyticsorgr install.packages("uscogdata", repos = c("https://civilytics.r-universe.dev", "https://cloud.r-project.org"))Absorbed from other issues
CONTRIBUTING.md.Reusable
packages.jsonlists many repos. The rest of the R package backlog is one line each — which is why it is worth setting up properly once.Release 6/11: tag v0.3.0 and register with r-universeto Release 7/11: tag v0.3.0 and register with r-universeRelease 7/11: tag v0.3.0 and register with r-universeto Release 7/11: tag v0.3.0 and register with r-universe (blocked on #56)The version in this issue's title is stale: it is v0.4.0, not v0.3.0
mainmoved past 0.3.0 while this issue sat blocked.DESCRIPTIONreadsVersion: 0.4.0and
NEWS.mdopens at# uscogdata 0.4.0— the bump landed with the cohort-predicatemerge (#61 / #58). Tagging
v0.3.0now would put a tag on a tree that already callsitself something else, and r-universe would register the mismatch.
Retitling accordingly. Nothing else about this issue changes.
What 0.4.0 contains, for the release notes
state/typepredicate instead of a 40k-idINlist.4.8x, and at the no-filter floor.
limit/offsetoncog_gov_search()andcog_balances(), completing thepagination surface started in #39. Also fixes
cog_gov_search()'sORDER BY, which wasnot a total order and made a paged sweep unsound.
USCOGDATA_DUCKDB_THREADS/USCOGDATA_DUCKDB_MEMORY_LIMIT, replacing aconsumer's
getFromNamespace()reach into package internals.Release 7/11: tag v0.3.0 and register with r-universe (blocked on #56)to Release 7/11: tag v0.4.0 and register with r-universe (blocked on #56)Release 7/11: tag v0.4.0 and register with r-universe (blocked on #56)to Release 7/11: tag v0.4.0 and register with r-universeUnblocked. #56 closed — all three gating PRs (#62, #63, #65) are merged and
mainis atd2caa6d, verified 1084 tests passing andR CMD check --as-cranclean apart from the pre-existing NOTE (whose r-universe 404 is this issue, and clears on registration).The version to tag is v0.4.0, not v0.3.0 — see the comment above.
Tagged. Two steps left, and both need you.
Done
v0.4.0tagged on Gitea and mirrored. Annotated tag ond2caa6d, pushed toorigin. The mirror workflow fired on the tag and this is its first clean end-to-endrun, which this issue wanted verified:
Tag present, HEADs identical, no force push needed. The non-force design held.
Absorbed items — PR #66: the R-CMD-check badge (pointing at the mirror's workflow,
where the 4-platform matrix actually runs) and the
pull_request_targetexplainer thattells contributors a self-closing "Merged" PR is the successful outcome, not a rejection.
Also added to
CONTRIBUTING.md's release checklist: the tag goes on Gitea and the mirrorcarries it, and r-universe will not pick up a release until
packages.json's pin isedited —
"*release"would automate that but needs a GitHub Release object, and themirror pushes tags only, so it would silently never update. Worth one sentence now.
Blocked on you — step 1: create the registry repo
gh repo createwas refused by my sandbox's permission policy, so I have not created it.Contents are ready; this is two commands:
with
packages.json:Note this is
v0.4.0, not thev0.3.0in the checklist above —mainmoved past0.3.0 with the cohort-predicate merge.
I also drafted a README for that repo explaining the two conventions worth not
re-deriving (point at the mirror not Gitea; pin to a tag, and why
*releasecannot workhere). Staged locally at
scratchpad/r-universe-registry/— say the word and I will paste it into a PR once therepo exists.
Blocked on you — step 2: install the r-universe GitHub app
Inherently interactive (browser OAuth on the
civilyticsorg). Nothing I can do fromhere.
Then the last checkbox
Once both are done, r-universe builds within ~15 minutes and this verifies:
Until then the r-universe badge in the README and the
Docslink on the /r-packages cardboth 404 — expected, and they resolve the moment the registry is live. That is also the
NOTE
R CMD check --as-cranreports.Still deferred, correctly
Disabling Gitea issues stays deferred: this tracker holds #50, #51 and #52, and
disabling it now hides the list still being worked. Do it when those close.
Registered and published. Verified end to end.
civilytics.r-universe.devis live anduscogdata 0.4.0is on it. Registry repoand GitHub app were both done by @jared; everything below is verification of the
result, not of the setup.
Built from the tag, on every platform
r-universe built the tagged commit, not a moving
main— confirming the pindid its job:
8/8 builds green: linux R 4.7.0 / 4.6.1, mac R 4.6.1 / 4.5.3, win R 4.7.0 /
4.6.1 / 4.5.3, wasm R 4.6.0.
The last checkbox — install from a clean library
Installed into a scratch
libwith the user library left untouched, so this is areal resolve-and-build from the repo, not a local package being found first:
Both badges resolve, and both are green
They were 404 until the registry existed; they now render:
r-universe: 0.4.0— note the badge URL in the README 301-redirects to/uscogdata/badges/version. Harmless (GitHub's image proxy follows it), justdon't be surprised by the redirect when testing it with
curland no-L.R-CMD-check: passing— title string is literallyR-CMD-check - passing.Docs, and why #49 stays closed
_pkgdownisnullin the build metadata, which looks at first glance like thedocs did not render. It is not — r-universe builds its own doc pages rather
than a pkgdown site, and both vignettes are there:
So the
Docslink on the /r-packages card resolves, and #49's reasoning — thatr-universe renders docs from the tag, so a second branded site is redundant —
holds up against the actual build rather than against the plan.
One step left, and it needs you
PR #66 is CI-green and unmerged. My sandbox refused the merge. It carries the
R-CMD-check badge, the
pull_request_targetmirror-PR explainer, and theCONTRIBUTING note that r-universe will not pick up a release until this
registry's
branchpin is edited by hand.Worth knowing: v0.4.0 was tagged before #66, so the README that r-universe
renders on the package page is the pre-badge one. That corrects itself at the
next release and is not worth re-tagging for.
Still deferred, still deliberately
Disabling the Gitea issue tracker stays deferred while #50, #51 and #52 are open
on it. Do it when they close, not now.