Conversation
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 13, 2026 16:17
5680d2b to
23ede3e
Compare
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 13, 2026 16:31
23ede3e to
34a03b4
Compare
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 13, 2026 16:59
34a03b4 to
fb68cda
Compare
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 13, 2026 18:26
fb68cda to
aa2c4fd
Compare
krlmlr
force-pushed
the
claude/readme-rmd
branch
2 times, most recently
from
September 13, 2026 20:30
7e03121 to
fc9461c
Compare
krlmlr
added this pull request to stack #611
September 13, 2026 21:05
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 13, 2026 21:06
fc9461c to
41364bf
Compare
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 13, 2026 21:42
f1edeb5 to
34d50ec
Compare
One of the items `usethis::use_tidy_upkeep_issue()` prescribes for 2023.
`pak::pak()` resolves system requirements and installs binaries where they exist,
so it does not need a compiler for pure-R dependencies the way `install_github()` does.
The `# install.packages("pak")` comment is kept, matching what the packages in this fleet that already use pak do.
Both usethis and devtools import pak, so most readers already have it,
but a reader with neither of those installed still needs the line.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
Closes #599. The badge image was pinned to `branch/master`, which has not existed since the rename to `main`. Codecov kept serving that branch's last recorded figure while `main` moved on, so the image disagreed with the link beside it, which already pointed at `main`. The branch is dropped from the image URL rather than corrected to `main`. A branch-pinned badge goes stale silently the next time a branch is renamed, which is exactly what happened here; without one, codecov reports the default branch and the badge follows a rename on its own. The link becomes `app.codecov.io/gh/r-dbi/RPostgres/tree/main`: the `app.` host is the UI (the bare host serves the badge image), `/gh/` is the canonical short form, and `/tree/main` is the branch view rather than the `?branch=` query that redirects to it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
Reformatting only, no wording changes: prose in README.md, the vignette and the roxygen and inline comments under R/ now breaks at sentence and clause boundaries rather than wrapping to a fixed width. The payoff is sentence-level diffs. A reworded sentence touches one line instead of reflowing the paragraph around it, so review sees the change and not the rewrap. man/*.Rd is regenerated because roxygen2 passes source line breaks through to the .Rd. The rendered help is byte-identical -- checked with tools::Rd2txt() over every topic -- as is the rendered README. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
A sentence that spans more than one line now starts at the beginning of a line, and so does the sentence after it. Line breaks only, no wording changes. Where two sentences are separated by two spaces, the pair stays on one long line: roxygen2 strips leading and trailing whitespace from continuation lines, so a break at that gap would drop a space from the rendered help. man/*.Rd is regenerated because roxygen2 passes source line breaks through to the .Rd. The rendered help is byte-identical -- checked with tools::Rd2txt() over every topic. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
Inside a roxygen block the first line of a paragraph, and every tag line, keeps one space after `#'`; every continuation line of that paragraph now has two. The paragraph structure of the source becomes visible without reading ahead, and in packages that do not enable roxygen2 markdown the extra space is what carries a sentence gap across a line break. RPostgres enables markdown (`Roxygen: list(markdown = TRUE)`), and commonmark strips leading whitespace from a paragraph's continuation lines, so here the indent reaches neither `man/*.Rd` nor the rendered help. Nothing is regenerated: roxygen2 writes no file, and `tools::Rd2txt()` is unchanged for every topic. That also means the one long line this pass created cannot come apart again. `R/dbConnect_PqDriver.R` keeps the sentence pair that the previous commit joined on a single line, because under markdown no leading-space, trailing-space or hard-break form survives into the `.Rd`, so breaking there would drop a space from the rendered help. The generated `R/cpp11.R` is left untouched. Reformatting only, no wording changes: the words either side of the diff are identical once comment markers and whitespace are collapsed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
The two-space continuation indent never reached the `.Rd`. RPostgres sets `Roxygen: list(markdown = TRUE)`, and commonmark strips the leading whitespace of a continuation line before roxygen2 writes the topic, so the indent changed no rendered output -- `man/` was byte-identical with it and without it. The sentence gap it was meant to carry now comes from roxygen2 itself (krlmlr/roxygen2#8), which indents the line break after a sentence at the point where the break is emitted. The source-level indent is redundant, so it comes out. This is `git revert` of the indent commit, not a substitution: that pass also normalised pre-existing three-space tag continuations down to two, and the revert puts them back at three. The long joined lines the sembr pass created stay as they are. Undoing those is a separate decision, and the roxygen2 fix is what will eventually let them come apart. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
The long joined lines existed to protect a sentence gap: two spaces after a sentence period are content, Rd2txt() renders them literally, and a line break there drops one of them. Joining the sentences onto one line was the only way to keep the gap. The joins come out, so every sentence starts its own line again. Reformatting only, no wording changes. man/ is left to CI, which regenerates it from these sources. A line break which follows the end of a sentence currently renders as one space rather than two. Restoring that gap needs a patched roxygen2, which is a separate decision and a separate pull request, so it is deliberately not part of this change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
Scope drawn from the README's own opening and its "Design notes" section
("This turns out to be too general: a driver has no real state, for PostgreSQL
each connection can only have one result set ... the driver class is just a
dummy class with no contents"), the DESCRIPTION (Imports DBI, bit64, blob, hms,
lubridate; SystemRequirements names libpq >= 9.0), the exported
PostgreSQL-specific helpers in NAMESPACE (postgresWaitForNotify(),
postgresImportLargeObject(), Redshift()), and tests/testthat/test-DBItest.R,
which runs DBItest::test_all().
The type-mapping goal claims a best fit rather than a lossless one.
src/PqResultImpl.cpp maps NUMERIC and MONEY to double, and INTERVAL and UUID to character,
so "without losing information" would not hold.
The Redshift non-goal names BLOBs only, which tests/testthat/helper-DBItest.R
still records as `omit_blob_tests = TRUE` in its Redshift context.
NEWS.md 1.4.0 also reported limitations enumerating temporary and persistent tables,
but 1.4.3 supersedes that entry: "Temporary tables are now discovered correctly
for `Redshift()` connections, all DBItest tests pass".
The "does not bundle a client library" non-goal says that no libpq source ships with the package,
rather than that the build relies on the system libpq.
The latter holds on Unix only: tools/winlibs.R downloads a prebuilt libpq on Windows,
and configure falls back to autobrew on macOS.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
The hand-written `README.md` keeps the package out of the shared rendering pipeline, so this adds a `README.Rmd` copied from it verbatim, prefixed with the `cynkratemplate::readme_document` front matter and the canonical generated-file comment. Rendering with `cynkratemplate::render_readme()` also writes `index.md` for pkgdown, which is the `README.md` without the code-of-conduct footer. Both `README.Rmd` and `index.md` are added to `.Rbuildignore` so neither ships in the tarball. The rendered `README.md` differs from the hand-written one only in pandoc's gfm normalisations: the generated-file comment, `*` bullets written as `-`, ` ```R ` written as ` ``` r `, blank lines inserted around headings and `<!-- badges: start -->`, trailing whitespace stripped, and `---` written as a full-width row of hyphens. No word, URL, or code-block content changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 14, 2026 05:27
34d50ec to
5e87678
Compare
The hand-written `README.md` keeps the package out of the shared rendering pipeline, so this adds a `README.Rmd` copied from it verbatim, prefixed with the `cynkratemplate::readme_document` front matter and the canonical generated-file comment. Rendering with `cynkratemplate::render_readme()` also writes `index.md` for pkgdown, which is the `README.md` without the code-of-conduct footer. Both `README.Rmd` and `index.md` are added to `.Rbuildignore` so neither ships in the tarball. The rendered `README.md` differs from the hand-written one only in pandoc's gfm normalisations: the generated-file comment, `*` bullets written as `-`, ` ```R ` written as ` ``` r `, blank lines inserted around headings and `<!-- badges: start -->`, trailing whitespace stripped, and `---` written as a full-width row of hyphens. No word, URL, or code-block content changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
krlmlr
force-pushed
the
claude/readme-rmd
branch
from
September 14, 2026 14:37
5e87678 to
1587ada
Compare
The format from cynkratemplate#135 now links inline code in prose to its reference page, and this branch was rendered before that landed, so the committed README.md no longer matched a fresh render. With the README rendered in CI by default, the first run would have committed the links itself; this commits exactly what that run produces, so the pull request stays a faithful render. Only README.md changes: the links are added to prose and nothing else moves. index.md is untouched, because pkgdown links the front page itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The hand-written
README.mdkept this package out of the shared rendering pipeline. This PR adds aREADME.Rmdcopied from it verbatim, prefixed with theoutput: cynkratemplate::readme_documentfront matter and the canonical generated-file comment, and re-renders withcynkratemplate::render_readme().Rendering also writes
index.mdfor pkgdown — theREADME.mdwithout the code-of-conduct footer. BothREADME.Rmdandindex.mdare added to.Rbuildignore;R CMD buildplustar tzfconfirms the tarball ships onlyREADME.md.The rendered
README.mddiffers from the hand-written one only in pandoc's gfm normalisations:*bullets written as-;```Rwritten as``` r;<!-- badges: start -->, after## Installation, and before## Connecting to a specific Postgres instance;---written as a full-width row of hyphens;Redshift(),postgresImportLargeObject()andpostgresWaitForNotify(), all under https://rpostgres.r-dbi.org/reference/.I checked this mechanically: the multiset of words in the old and new
README.mdis identical apart from the added comment and the markup tokens above, and every URL that was there is unchanged. No evaluated chunks were added — this is a faithful derivation, not new content.The README contains no evaluated chunks, so rendering needs no database server. Rendered twice with the current cynkratemplate, the second time in a differently named directory with another time zone and locale, both outputs are byte-identical to the committed file, and a further render changes nothing. With README rendering in CI becoming the default, this is what CI will produce.
Stacking
This derivation logically belongs below the line-break work, but it is stacked on top of
claude/readme-goalsto avoid rewriting and force-pushing every branch in the open chain across four repositories.🤖 Generated with Claude Code
https://claude.ai/code/session_01WWhverMTZZKgEpUuTK117m