This document provides all the necessary information to get started with the react-runtime monorepo, including installation, testing, and contribution guidelines.
Follow these steps to set up your development environment.
- Clone the project:
git clone <repository-url>
- Open in Dev Container: Open the cloned project folder in a VS Code Dev Container.
- Install Extensions: Install the recommended VS Code extensions when prompted.
To see the project in action, you can run the example application:
cd examples/hello-world
yarn devThis project uses a comprehensive testing suite. You can run tests at the root level or for a specific package.
- Run all tests (UI mode): From the root directory, run
yarn test:ui. - Run all tests (CLI): From the root directory, run
yarn test. - Run package-specific tests: Navigate into a package directory (e.g.,
cd packages/core) and runyarn test.
Within each package, you can run more specific tests:
yarn test:unit: Runs unit tests.yarn test:integration: Runs integration tests.yarn test:e2e: Runs end-to-end tests.
This project adheres to Semantic Versioning (SemVer) and uses Conventional Commits to automate versioning and changelog generation.
All packages follow the MAJOR.MINOR.PATCH versioning scheme:
- MAJOR: Incremented for breaking changes.
- MINOR: Incremented for new, backward-compatible features.
- PATCH: Incremented for backward-compatible bug fixes.
Commit messages must follow this format to streamline the release process:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
- Types:
feat,fix,docs,style,refactor,test,chore, etc. - Scope: The package or area affected (e.g.,
core,react,examples).
Examples:
# A new feature
feat(core): add runtime context proxy
# A bug fix
fix(react): resolve HOC deduplication bug
# A documentation update
docs: update README with testing instructionsWhen your changes are ready, create a changeset by running yarn changeset. This tool will prompt you to specify the version bump and summarize your changes for the changelog.
Contributions are welcome! Please feel free to open an issue or submit a pull request on GitHub.
This project is licensed under the MIT License. See the LICENSE file for details.
A special thanks to the following projects and communities:
- effect-TS for providing the foundation for functional programming in TypeScript.
- The React community for inspiring modular and reusable component design.