posit-dev / posit-dev/shinyreact
Release shinyreact 0.1.0 (npm → PyPI → CRAN)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 14
- Forks
- 3
- Avg merge
- 9h 12m
- Merged PRs (30d)
- 74
Description
Release chain for the three packages, from branch schloerke/rc-v0.1.0-release-chain (Conductor renamed it). Process: /release-shinyreact (.claude/skills/release-shinyreact/, #284). Order matters: the Python and R packages vendor the built JS, and examples/09-hmr depends on the published npm client, so npm goes first; CRAN is slowest, so it goes last.
0. Prepare the rc-v0.1.0 branch (all packages)
-
git pull/ rebase onmain - Version bumps:
pkg-r/DESCRIPTION→0.1.0,pkg-js/package.json→0.1.1(published),pyproject.tomlalready0.1.0 -
make update-distandmake update-examplesandmake update-skills, confirm no drift -
make js-lint && make js-format-check && cd pkg-js && npx vitest run -
make py-checkandmake py-check-tox -
make r-check -
make py-test-e2e - Confirm
protocol/README.mdversion (1.0) matchesconfig.ts,_protocol.py,protocol.R(parity test) - Write release notes:
pkg-r/NEWS.md,pkg-py/CHANGELOG.md,pkg-js/CHANGELOG.md(first release: summarize the ui.tsx pattern surface) - Merge #309 (
schloerke/rc-v0.1.0-release-chain→main) oncepr-doneis green
1. npm: @posit-dev/shinyreact 0.1.1 — released 2026-09-12 ✅
-
NPM_TOKENrepository secret exists (#218) -
cd pkg-js && npm run build && npm pack --dry-runand inspect the tarball contents (dist-npm/only) - Tag
js/v0.1.1on the merge commit and push;release-js.yamlpublishes with provenance - Verify
npm view @posit/shinyreact version - Examples depend on the published
@posit-dev/shinyreact@^0.1.1(#297 rename, #307 switch)
2. PyPI: shinyreact 0.1.0
- shiny 1.8.0 (py-shiny#2475) is on PyPI;
pyproject.tomlrequiresshiny>=1.8.0, git dep andallow-direct-referencesdropped (#309) - Registered a pending trusted publisher on PyPI: repo
posit-dev/shinyreact, workflowrelease-py.yaml, environment(Any)(the workflow runs in the GitHubpypienvironment) -
uv buildlocally and inspect the wheel (www/and.agents/skills/included;twine checkpasses; sdist trimmed to the Python package; readme/license/URLs metadata in #310) -
py/v0.1.0tagged at c94ae9b;release-py.yamlrun 34730067807 published https://pypi.org/project/shinyreact/0.1.0/ (wheel + sdist,Requires-Dist: shiny>=1.8.0, htmltools>=0.7.0) and created the Python v0.1.0 GitHub release with attestations - Verified: clean
uv venv+uv pip install shinyreact==0.1.0resolves shiny 1.8.0;shiny run examples/01-hello/app.pyservesshinyreact-0.1.1/shinyreact.js,ui.js, and the#shinyreact-configtag
3. CRAN: shinyreact 0.1.0
First release:
-
pkg-r/NEWS.md(#309), tidyverse-style polish (#314) -
pkg-r/cran-comments.md(#311); 0 notes after the wording fix in #313 - README:
install.packages("shinyreact")first, GitHub dev install second (#311) - Title/Description: 'Shiny' and 'React' single-quoted, react.dev linked (#311)
- All 7 exports have
@return;@examplesadded to the 6 that lacked them (#311) -
Authors@R: Posit Software, PBC (cph, fnd) and Meta Platforms, Inc. (cph, bundled React) - Bundled JS licensing: only Meta copyright headers in the bundle (React/ReactDOM, MIT); Meta added as cph, noted in cran-comments.md. shiny-react is Posit's own (#311)
- extrachecks: grep sweep clean (
T/F,\dontrun,.GlobalEnv,http://); full pass through posit-dev/skillsr-lib/cran-extracheckschecklist in #311 (Title 59 chars + title case, 4-sentence Description with UI expanded, no commented-out example code, no relative README links, LICENSE year 2026, method-references note in cran-comments.md)
Prepare for release:
-
urlchecker::url_check(): all 20 URLs correct -
devtools::check(remote = TRUE, manual = TRUE): 0 errors, 0 warnings, 1 note (New submission);make r-checkStatus OK, 325 tests. Local machine has no pdflatex, so the PDF manual was not built — win-devel covers it -
devtools::check_win_devel()submitted from #311's tree (merged as d2a90f0); result: 1 NOTE (New submission; "possibly misspelled" UI, renderer). Fixed the wording instead: Title is nowClient-Side 'React' Interface for 'Shiny', Description says "user interface" / "render function" (#313) - Draft blog post
Submit to CRAN:
- Version is already 0.1.0 (#309); no bump needed
- Submitted shinyreact 0.1.0 to CRAN from main 8e13be8 (2026-09-13); "Package submission successful"
- Approve email
Wait for CRAN...
- Accepted 🎉
- Finish & publish blog post
- Add link to blog post in pkgdown news menu
-
usethis::use_github_release() -
usethis::use_dev_version(push = TRUE) -
usethis::use_news_md() - Share on social media
- Slack link to blog post, bluesky, and linkedin in #open-source-comms
4. After all three
- Bump dev versions:
pyproject.toml→0.1.1.dev0 - Close #218 and update #268 as applicable
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the unchecked items in this issue and the referenced release workflows, including release-js.yaml and release-py.yaml; the npm and PyPI releases are already complete. Track the remaining CRAN acceptance, blog and pkgdown updates, development-version bumps, and follow-up issue updates. Done means all remaining release-chain and post-release checklist items are completed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, python, r, typescript
- Domain
- release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100