Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`.

We answer common questions about [changesets here](https://github.com/changesets/changesets/blob/main/docs/common-questions.md).

You can find the [full documentation for changesets here](https://github.com/changesets/changesets).

## For maintainers

1. On user-facing package changes, run `pnpm changeset` and commit the new file under `.changeset/`.
2. Merging to `main` opens or updates a **Version Packages** PR.
3. Merging that PR bumps versions, updates package changelogs, and publishes to npm (requires `NPM_TOKEN`).
13 changes: 13 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [
["@formsreach/js", "@formsreach/react", "@formsreach/vue"]
],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
67 changes: 67 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Bug report
description: Report a problem with a FormsReach SDK package
title: "[bug]: "
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Description
description: What went wrong?
validations:
required: true
- type: dropdown
id: package
attributes:
label: Package
options:
- "@formsreach/js"
- "@formsreach/react"
- "@formsreach/vue"
- unclear / multiple
validations:
required: true
- type: input
id: version
attributes:
label: Package version
description: e.g. 0.1.0
placeholder: 0.1.0
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: Browser, Node, React/Vue/Next/Nuxt versions as relevant
placeholder: |
Browser: Chrome 131
Framework: Next.js 15 / React 19
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Minimal steps that trigger the bug
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual behavior
validations:
required: true
- type: input
id: repro
attributes:
label: Minimal reproduction (optional)
description: Link to a repo, CodeSandbox, StackBlitz, etc.
validations:
required: false
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: FormsReach product / account help
url: https://formsreach.com
about: Questions about the FormsReach product, dashboard, or account — not SDK bugs.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Feature request
description: Propose an improvement to a FormsReach SDK package
title: "[feat]: "
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem / use case
description: What problem are you trying to solve?
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description: How should this work?
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Other approaches you tried or considered
validations:
required: false
- type: dropdown
id: packages
attributes:
label: Affected packages
multiple: true
options:
- "@formsreach/js"
- "@formsreach/react"
- "@formsreach/vue"
- unclear / multiple
validations:
required: true
10 changes: 10 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## Summary

<!-- What changed and why -->

## Checklist

- [ ] Tests added/updated if behavior changed
- [ ] `pnpm check` passes locally (or CI is green)
- [ ] Changeset added if this affects published packages (`pnpm changeset`)
- [ ] Docs/README updated if public API or usage changed
2 changes: 0 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 22
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Release

on:
push:
branches: [main]

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
registry-url: https://registry.npmjs.org

- run: pnpm install --frozen-lockfile

- name: Create Release Pull Request or Publish
uses: changesets/action@v1
with:
version: pnpm run version-packages
publish: pnpm run release
title: Version Packages
commit: "chore: version packages"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ coverage
.claude/
.grok/
.cursor/

# Git worktrees (local isolation)
.worktrees/
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,25 @@ pnpm format
pnpm check # format:check + lint + typecheck + test + build (also runs on pre-push)
```

## Contributing

- Use the GitHub issue templates for bugs and feature requests.
- Open a PR against `main`. The PR template includes a short checklist.
- For changes that affect published packages (`@formsreach/js`, `@formsreach/react`, `@formsreach/vue`), run `pnpm changeset`, choose a bump type, and commit the new file under `.changeset/`.
- Packages version in **lockstep** (same version across all three).
- See [Changesets](https://github.com/changesets/changesets) for details.

Git hooks (Husky): Conventional Commits on `commit-msg`; lint-staged on `pre-commit`; full `pnpm check` on `pre-push`.

## Releasing

1. Merge PRs that include changesets into `main`.
2. The **Release** workflow opens or updates a **Version Packages** PR (bumps all packages together, updates each package `CHANGELOG.md`).
3. Review and merge the Version Packages PR.
4. The same workflow publishes to npm (`pnpm release` → build + `changeset publish`).

**Maintainer setup (one-time):** add a GitHub Actions secret `NPM_TOKEN` with publish access to the `@formsreach` npm scope. First public ship should use a real changeset (e.g. "Initial public release") via a Version PR — not a tooling-only dummy bump.

## Examples

See [`examples/`](./examples) for HTML, React, Next.js, Vue, and Nuxt.
Expand Down
Loading
Loading