cal/CONTRIBUTING.md
Aldrin 3e08c66888
refactor: Use template literal instead of '+' operator (#11444)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2023-10-03 11:52:19 -07:00

4.6 KiB

Contributing to Cal.com

Contributions are what makes 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 or 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 this repository to your own GitHub account and then clone it to your local device.

  2. Create a new branch:

    git checkout -b MY_BRANCH_NAME
    
  3. Install yarn:

    npm install -g yarn
    
  4. Install the dependencies with:

    yarn
    
  5. Set up your .env file:

    • Duplicate .env.example to .env.
    • Use openssl rand -base64 32 to generate a key and add it under NEXTAUTH_SECRET in the .env file.
    • Use openssl rand -base64 24 to generate a key and add it under CALENDSO_ENCRYPTION_KEY in the .env file.
  6. Setup Node If your Node version does not meet the project's requirements as instructed by the docs, "nvm" (Node Version Manager) allows using Node at the version required by the project:

    nvm use
    

    You first might need to install the specific version and then use it:

    nvm install && nvm use
    

    You can install nvm from here.

  7. Start developing and watch for code changes:

    yarn dev
    

Building

You can build the project with:

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:

yarn test-e2e

Resolving issues

E2E test browsers not installed

Run npx playwright install to download test browsers and resolve the error below when running yarn test-e2e:

Executable doesn't exist at /Users/alice/Library/Caches/ms-playwright/chromium-1048/chrome-mac/Chromium.app/Contents/MacOS/Chromium

Linting

To check the formatting of your code:

yarn lint

If you get errors, be sure to fix them before committing.

Making a Pull Request