--- title: "Introduction" icon: "github" --- Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. - Before jumping into a PR be sure to search [existing PRs](https://github.com/calcom/cal.com/pulls) or [issues](https://github.com/calcom/cal.com/issues) for an open or closed item that relates to your submission. ### Priorities | Type of issue | Priority | | :-------------------------------------------------------------- | :-------------------------------------------------- | | Minor improvements, non-core feature requests | | | Confusing UX (... but working) | | | Core Features (Booking page, availability, timezone calculation)| | | Core Bugs (Login, Booking page, Emails are not working) | | ### Developing The development branch is `main`. This is the branch that all pull requests should be made against. The changes on the `main` branch are tagged into a release monthly. To develop locally: 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device. 2. Create a new branch: ```bash git checkout -b MY_BRANCH_NAME ``` 3. Install yarn: ```bash npm install -g yarn ``` 4. Install the dependencies with: ```bash yarn ``` 5. Start developing and watch for code changes: ```bash yarn dev ``` ### Building You can build the project with: ```bash yarn build ``` Please be sure that you can make a full production build before pushing code. ### Testing More info on how to add new tests coming soon. ### Running tests This will run and test all flows in multiple Chromium windows to verify that no critical flow breaks: ```bash yarn test-e2e ``` ### Linting To check the formatting of your code: ```bash yarn lint ``` If you get errors, be sure to fix them before committing. ### Making a Pull Request - Be sure to [check the "Allow edits from maintainers" option](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) while creating you PR. - If your PR refers to or fixes an issue, be sure to add `refs #XXX` or `fixes #XXX` to the PR description. Replacing `XXX` with the respective issue number. See more about [Linking a pull request to an issue ](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue). - Be sure to fill the PR Template accordingly. ### Guidelines for committing yarn lockfile Do not commit your `yarn.lock` unless you've made changes to the `package.json`. If you've already committed `yarn.lock` unintentionally, follow these steps to undo: If your last commit has the `yarn.lock` file alongside other files and you only wish to uncommit the `yarn.lock`: ```git git checkout HEAD~1 yarn.lock git commit -m "Revert yarn.lock changes" ``` If you've pushed the commit with the `yarn.lock`: 1. Correct the commit locally using the above method. 2. Carefully force push: ```git git push origin --force ``` If `yarn.lock` was committed a while ago and there have been several commits since, you can use the following steps to revert just the `yarn.lock` changes without impacting the subsequent changes: 1. **Checkout a Previous Version**: - Find the commit hash before the `yarn.lock` was unintentionally committed. You can do this by viewing the Git log: ```git git log yarn.lock ``` - Once you have identified the commit hash, use it to checkout the previous version of `yarn.lock`: ```git git checkout yarn.lock ``` 2. **Commit the Reverted Version**: - After checking out the previous version of the `yarn.lock`, commit this change: ```git git commit -m "Revert yarn.lock to its state before unintended changes" ``` 3. **Proceed with Caution**: - If you need to push this change, first pull the latest changes from your remote branch to ensure you're not overwriting other recent changes: ```git git pull origin ``` - Then push the updated branch: ```git git push origin ```