Filenames must follow the kebab-case
.
This project follows conventional commits to standardize commit messages. Therefore, all commit messages should be formatted using the following scheme:
type(optional scope): subject
The available types are:
feat
: a new featurefix
: a bug fixrefactor
: changes that neither fix a bug nor add a featuretest
: adding or fixing testsperf
: changes improving performancebuild
: changes affecting the build systemci
: changes to CI configuration files and scriptsdocs
: documentation changesstyle
: a linting or formatting commitrevert
: a reversion of a previous commitrelease
: a commit that updates the version of the project, preparing it to a new releasechore
: a commit that does not fit any of the types above
Pull requests must target canary
. As with commit messages, pull request titles must follow the conventional commits convention:
type(optional scope): subject (#<task-id>)
Example:
feat(parser): add ability to parse arrays (#47)
-
After creating a pull request, the CI action will configure a remote testing environment and run unit and integration tests. It's a good practice to wait until all checks have passed before requesting a review.
-
After your pull request is reviewed and you've made the necessary changes, click "Mark as resolved" on the resolved discussions and ask the reviewer(s) to re-review your pull request.
main
as the production branch, containing the production version of the projectcanary
as the default and development branch, containing the latest version of the project
<task-id>-<subject-in-kebab-case>
Example:
82-session-persistence
-
Before adding a commit, Husky is configured to automatically format your code.
-
Before pushing to GitHub, Husky will automatically perform a static analysis and run unit and integration tests.
The recommended file structure is as follows, to keep local resources and tests closer to the main file:
{filename}
├─ {filename}.ts
├─ constants.ts
├─ types.ts
├─ __tests__
│ ├─ {filename}.test.ts
│ └─ **/*.test.ts
└─ **/*.ts // local files, utilities and other abstractions