843 lines
20 KiB
Markdown
843 lines
20 KiB
Markdown
# Contributing to Cal.com
|
|
|
|
Contributions are what make the open source community such an amazing place to be 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.
|
|
|
|
## Areas of expertise
|
|
|
|
### Legend
|
|
|
|
✅ = has knowledge
|
|
|
|
🥇 = is their main priority
|
|
|
|
⚠️ = is the only one with knowledge
|
|
|
|
👀 = has no knowledge but wants to be onboarded
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Core Team</th>
|
|
<th>
|
|
<span title="Availability">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Availability?text=Availability&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Availability?text=Availability&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Timezones">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Timezones?text=Timezones&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Timezones?text=Timezones&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="App Store">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/App Store?text=App Store&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/App Store?text=App Store&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Teams">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Teams?text=Teams&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Teams?text=Teams&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Booking Page">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Booking Page?text=Booking Page&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Booking Page?text=Booking Page&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Turbo Repo">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Turbo Repo?text=Turbo Repo&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Turbo Repo?text=Turbo Repo&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Testing">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Testing?text=Testing&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Testing?text=Testing&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Webhooks">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Webhooks?text=Webhooks&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Webhooks?text=Webhooks&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Event-Types">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Event-Types?text=Event-Types&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Event-Types?text=Event-Types&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Prisma">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Prisma?text=Prisma&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Prisma?text=Prisma&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Stripe Billing">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Stripe Billing?text=Stripe Billing&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Stripe Billing?text=Stripe Billing&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Auth">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Auth?text=Auth&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Auth?text=Auth&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Stripe App">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Stripe App?text=Stripe App&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Stripe App?text=Stripe App&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Google Cal">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Google Cal?text=Google Cal&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Google Cal?text=Google Cal&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="tRPC">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/tRPC?text=tRPC&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/tRPC?text=tRPC&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="SSO SAML">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/SSO SAML?text=SSO SAML&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/SSO SAML?text=SSO SAML&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="CalDAV">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/CalDAV?text=CalDAV&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/CalDAV?text=CalDAV&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Outlook App">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Outlook App?text=Outlook App&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Outlook App?text=Outlook App&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Slack App">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Slack App?text=Slack App&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Slack App?text=Slack App&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Public API">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Public API?text=Public API&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Public API?text=Public API&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Recurring Events">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Recurring Events?text=Recurring Events&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Recurring Events?text=Recurring Events&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Seats">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Seats?text=Seats&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Seats?text=Seats&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Zapier">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Zapier?text=Zapier&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Zapier?text=Zapier&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Embeds">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Embeds?text=Embeds&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Embeds?text=Embeds&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Console">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Console?text=Console&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Console?text=Console&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
<th>
|
|
<span title="Workflows">
|
|
<picture>
|
|
<source
|
|
media="(prefers-color-scheme: dark)"
|
|
srcset="
|
|
https://rotate-svg-text-agu.vercel.app/api/Workflows?text=Workflows&color=dark&size=12
|
|
"
|
|
/>
|
|
<img
|
|
src="https://rotate-svg-text-agu.vercel.app/api/Workflows?text=Workflows&color=white&size=12"
|
|
/>
|
|
</picture>
|
|
</span>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>@PeerRich</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@baileypumfleet</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@zomars</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>🥇✅</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@emrysal</td>
|
|
<td>🥇✅</td>
|
|
<td>🥇✅</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@alannnc</td>
|
|
<td>✅</td>
|
|
<td>🥇✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>🥇✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@agustif</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>🥇✅</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>🥇✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>🥇✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@leog</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅⚠️</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@joeauyeung</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅👀</td>
|
|
<td>✅👀</td>
|
|
<td>✅👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅⚠️</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@alishaz-polymath</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td>✅👀</td>
|
|
<td></td>
|
|
<td>✅👀</td>
|
|
<td>👀</td>
|
|
<td>👀</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@hariombalhara</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅⚠️</td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>@CarinaWolli</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅⚠️</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅⚠️</td>
|
|
</tr>
|
|
<tr>
|
|
<td>@sean-brydon</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td></td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td>✅</td>
|
|
<td>👀</td>
|
|
<td>👀</td>
|
|
<td></td>
|
|
<td>🥇✅⚠️</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
|
|
|
|
## 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:
|
|
|
|
```sh
|
|
git checkout -b MY_BRANCH_NAME
|
|
```
|
|
|
|
3. Install yarn:
|
|
|
|
```sh
|
|
npm install -g yarn
|
|
```
|
|
|
|
4. Install the dependencies with:
|
|
|
|
```sh
|
|
yarn
|
|
```
|
|
|
|
5. Start developing and watch for code changes:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
yarn test-e2e
|
|
```
|
|
|
|
## Linting
|
|
|
|
To check the formatting of your code:
|
|
|
|
```sh
|
|
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. Se 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.
|