Files
hyperframes/CONTRIBUTING.md
T
Vance Ingalls 20be2ea1c2 style: apply oxfmt baseline formatting across all source files (#25)
## Summary
- Run `oxfmt .` across the entire codebase to establish formatted baseline
- 299 files changed — mechanical formatting only, no logic changes
- Double quotes, semicolons, 2-space indent, trailing commas, 100 print width

Part 3/4 of [VA-851](https://linear.app/heygen/issue/VA-851/pre-migration-configure-eslint-prettier-and-conventional-commits)

## Test plan
- [x] `pnpm format:check` — all 426 files pass
- [x] `pnpm -r typecheck` — all packages pass
- [x] `pnpm build` — all packages build
- [x] All 348 tests pass
2026-03-23 17:15:14 -07:00

2.8 KiB

Contributing to Hyperframes

Thanks for your interest in contributing to Hyperframes! This guide will help you get started.

Getting Started

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/hyperframes.git
  3. Install dependencies: pnpm install
  4. Create a branch: git checkout -b my-feature

Development

pnpm install        # Install all dependencies
pnpm dev            # Run the studio (composition editor)
pnpm build          # Build all packages
pnpm -r typecheck   # Type-check all packages

Running Tests

pnpm --filter @hyperframes/core test          # Core unit tests (vitest)
pnpm --filter @hyperframes/engine test        # Engine unit tests (vitest)
pnpm --filter @hyperframes/core test:hyperframe-runtime-ci  # Runtime contract tests

Pull Requests

  • Use conventional commit format for PR titles (e.g., feat: add timeline export, fix: resolve seek overflow)
  • CI must pass before merge (build, typecheck, tests, semantic PR title)
  • PRs require at least 1 approval

Packages

Package Description
@hyperframes/core Types, HTML generation, runtime, linter
@hyperframes/engine Seekable page-to-video capture engine
@hyperframes/producer Full rendering pipeline (capture + encode)
@hyperframes/studio Composition editor UI
hyperframes CLI for creating, previewing, and rendering

Releasing (Maintainers)

All packages use fixed versioning — every release bumps all packages to the same version.

  1. Go to ActionsPrepare ReleaseRun workflow
  2. Enter the version (e.g., 0.2.0)
  3. Click Run workflow — this creates a release PR
  4. Review and merge the PR
  5. Merging auto-creates the v0.2.0 tag, which triggers npm publish and a GitHub Release

Via CLI

# Bump versions, commit to a branch, create PR
pnpm set-version 0.2.0
git checkout -b release/v0.2.0
git add packages/*/package.json
git commit -m "chore: release v0.2.0"
git push origin release/v0.2.0
gh pr create --title "chore: release v0.2.0" --base main
# After merge, the tag + publish happen automatically

Reporting Issues

  • Use GitHub Issues for bug reports and feature requests
  • Search existing issues before creating a new one
  • Include reproduction steps for bugs

Code of Conduct

This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.

License

By contributing, you agree that your contributions will be licensed under the MIT License.