Skip to content

feat!: modernize rating component - #16

Merged
f0rr0 merged 3 commits into
masterfrom
f0rr0/modernize-rating
Jul 28, 2026
Merged

feat!: modernize rating component#16
f0rr0 merged 3 commits into
masterfrom
f0rr0/modernize-rating

Conversation

@f0rr0

@f0rr0 f0rr0 commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • rebuild the rating control in strict TypeScript for React 19 and React Native 0.86
  • add controlled and uncontrolled values, fractional steps, RTL behavior, reduced-motion animation, accessible native actions, and a dependency-free render slot
  • ship a compact package with React Native source, dual ESM/CommonJS output, separate declarations, strict export auditing, and zero runtime dependencies
  • replace the legacy Yarn/ESLint stack with Bun, TypeScript 7, Oxlint, Oxfmt, Ultracite, mise, a checksummed mise.lock, and hk/Pkl hooks
  • automate coverage, packed-package compatibility, dependency review, changelogs, v* tags, GitHub Releases, and provenance-backed npm publishing

Package and CI

  • 15 behavior, accessibility, RTL, reduced-motion, and native-prop tests
  • enforced coverage floors: 90% statements/functions/lines and 80% branches
  • Bob build plus strict Publint and Are the Types Wrong checks
  • required packed-tarball consumer checks at React Native 0.82.1 and the current pinned release
  • SHA-pinned GitHub Actions, ShellCheck, actionlint, zizmor, Dependency Review, and grouped Dependabot updates

Releases

  • Release Please owns version bumps and CHANGELOG.md from the published 2.0.4 baseline; this breaking change prepares v3.0.0
  • merging a generated release PR creates the v* tag and GitHub Release
  • an unprivileged job verifies and packs the exact tag; a minimal environment-gated job publishes that artifact through npm trusted publishing/OIDC
  • retries reject a mismatched registry tarball instead of silently accepting an existing version
  • one-time repository and npm setup is documented in the release guide

Breaking changes

  • use the named Rating export instead of the default export
  • replace initial with defaultValue
  • use value and onChange for controlled state
  • replace editable={false} with readOnly
  • use the built-in star or renderItem instead of required image props

Validation

  • bun ci --ignore-scripts
  • mise run check
  • hk check --all
  • 15/15 tests; 96.89% statements and 87.77% branches
  • strict consumer compilation and ESM/CommonJS resolution on React Native 0.82.1 and 0.86.2
  • Release Please 17.6 dry-run proposes v3.0.0

bun audit reports one transitive, development-only brace-expansion advisory through the React Native/Jest 29 toolchain. The published package has no runtime dependencies.

@f0rr0
f0rr0 marked this pull request as ready for review July 27, 2026 23:51
@f0rr0
f0rr0 merged commit e577d19 into master Jul 28, 2026
4 checks passed
@f0rr0
f0rr0 deleted the f0rr0/modernize-rating branch July 28, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant