Thanks for willing to contribute to Beyond 👌
Here are the folllowing guidelines to contribute to Beyond
-
Fork the repo (click the Fork button at the top right of this page)
-
Clone your fork
git clone https://github.com/<your_github_username>/Beyond.git
cd Beyond
- Setup all the dependencies and packages by running
yarn bootstrap
. This command will install dependencies and bootstrap the repo usinglerna
If you run into any issues during this step, kindly create a Github issue for help
To improve our development process, we've set up tooling and systems. Beyond uses a monorepo structure and we treat each package as independent and can be used on it own.
- Lerna to manage the monorepo structure
- Storybook for UI component development and testing
- Jest for testing components and hooks
- Docusaurus for a blazing fast documentation website. versioning and changelogs
yarn bootstrap
: bootstraps the entire project and symlinks all
dependencies for cross-component development.
yarn storybook
: starts storybook server and loads stories in files that
end with .stories.tsx
.
yarn docs:start
: run the documentation site locally.
yarn build
: run build for all packages.
yarn test
: run all tests in individual packages.
yarn workspace @beyond-ui/[package] run <cmd>
: Run a command on the specific package you're
working on. You can run build
, test
commands.
Since we're using lerna monorepo + yarn workspaces by default, this enables us to run commands within packages directly from the root.
Each package is named this way: @beyond-ui/[component]
. Let's assume we want to
run the test in the theme package. Here's how to do it:
yarn workspace @beyond-ui/react build
# or
lerna run build --scope @beyond-ui/react
The documentation site is built with Docusaurus. If you'd like to contribute to the
docs, simply run yarn start:docs
to start and yarn build:docs
to build.
Build components in isolation with Storybook using yarn storybook
Please conform to the issue template and provide a clear path to reproduction with a code example.
Please provide thoughtful comments and some sample API code. Proposals that don't line up with our roadmap or don't have a thoughtful explanation will be closed.
Pull requests need only the 👍 of two or more collaborators to be merged; when the PR author is a collaborator, that counts as one.
Before you create a Pull Request, please check whether your commits comply with the commit conventions used in this repository.
When you create a commit we kindly ask you to follow the convention
subject(scope or module): message
in your commit message while using one of
the following subjects:
feat / feature
: all changes that introduce completely new code or new featuresfix
: changes that fix a bug (ideally you will additionally reference an issue if present)refactor
: any code related change that is not a fix nor a featuredocs
: changing existing or creating new documentation (i.e. README, docs for usage of a lib or cli usage)build
: all changes regarding the build of the software, changes to dependencies or the addition of new dependenciestest
: all changes regarding tests (adding new tests or changing existing ones)ci
: all changes regarding the configuration of continuous integration (i.e. github actions, ci system)chore
: all changes to the repository that do not fit into any of the above categories
If you are interested in the detailed specification you can visit https://www.conventionalcommits.org/ or check out What is Commitlint.
-
Fork of the Beyond repository and clone your fork
-
Create a new branch out of the
master
branch. We follow the convention[type/scope]
. For examplefix/accordion-hook
ordocs/menu-typo
.type
can be eitherdocs
,fix
,feat
,build
, or any other conventional commit type.scope
is just a short id that describes the scope of work. -
Make and commit your changes following the commit convention. As you develop, you can run
yarn workspace <module> build
andyarn workspace <module> test
to make sure everything works as expected. Please note that you might have to runyarn bootstrap
first in order to install all dependencies.
All commits that fix bugs or add features need a test.
By contributing your code to the Beyond GitHub repository, you agree to license your contribution under the MIT license.