We want this community to be friendly and respectful to each other. Please read the full text so that you can understand what actions will and will not be tolerated.
- Node 18+
- pnpm 8 (use it via
corepack install
)
All development is done directly on GitHub, and all work is public.
Working on your first pull request? You can learn how from this free series: How to Contribute to an Open Source Project on GitHub.
- Fork the repo and create your branch from default branch (usually
main
) (a guide on how to fork a repository). - Run
pnpm install
to install & set up the development environment. - Do the changes you want and test them out in the TesterApp (
apps/tester-app
) before sending a pull request.
We follow the conventional commits specification for our commit messages:
fix
: bug fixes, e.g. fix Button color on DarkTheme.feat
: new features, e.g. add Snackbar component.refactor
: code refactor, e.g. new folder structure for components.docs
: changes into documentation, e.g. add usage example for Button.test
: adding or updating tests, e.g. unit, snapshot testing.chore
: tooling changes, e.g. change circleci config.BREAKING CHANGE
: for changes that break existing usage, e.g. change API of a component.
When adding new features, fixes or doing any changes to public API, behavior or logic is required to create a changeset explaining what has been modified.
Once code changes are done, run pnpm changeset add
and follow the CLI instructions to write a changeset.
You can learn more about changesets here: https://github.com/changesets/changesets
We use typescript
for type checking and biome
for linting and formatting the code, and jest
/vitest
for testing. You should run the following commands before sending a pull request:
pnpm typecheck
: type-check files withtsc
.pnpm lint
: lint files withbiome
.pnpm test
: run unit tests withjest
/vitest
.
- Prefer small pull requests focused on one change.
- Verify that
typescript
,biome
and all tests are passing. - Verify all in-code documentation is correct (it will be used to generate API documentation).
- Write changeset if necessary.
- Follow the pull request template when opening a pull request.
The example TesterApp uses React Native Community CLI so make sure you have your environment setup to build native apps.
You can then use Xcode/Android Studio/Gradle to build application or run pnpm react-native webpack-start
and pnpm react-native run-ios
/pnpm react-native run-android
to start development server and run applications in development mode.
The documentation is a part of the website, which is stored in website
directory and uses rspress
- an SSG framework that leverages rspack
. To start working on the docs, either run pnpm website:start
from the root of the repository, or pnpm start
from inside of the website
directory.
We use changesets to automate to bump the version, update CHANGELOG.md
files in published packages and publish to NPM registry. If you have publish access to the NPM @callstack
scope, run the following from the default branch (usually main
branch) to publish a new release:
pnpm release
NOTE: You must have a GITHUB_TOKEN
environment variable available. You can create a GitHub access token with the "repo" access here.
You can report issues on our bug tracker. Please follow the issue template when opening an issue.
By contributing to Re.Pack, you agree that your contributions will be licensed under its MIT license.