Contributions are always welcome, no matter how large or small!
We aspire to build a community that is friendly and respectful to each other. Please adhere to this spirit in all your interactions within the project.
To get started with the project, run npm install
in the root directory to
install the required dependencies:
npm install
Then, setup Husky to run pre-commit hooks:
npx husky
Ensure your code passes TypeScript, ESLint and formatter checks by running the following commands:
npm run build:check
npm run lint:check
npm run format:check
To lint and format your code, use the following commands:
npm run lint
npm run format
For other scripts, refer to package.json.
We utilize TypeScript for type checking, ESLint for linting, and Prettier for formatting the code.
We employ Playwright to run End-to-End (E2E) tests.
You can use the npm run test:e2e
command to run these tests. However, you may
need to first install the browsers using this command:
npx playwright install --with-deps
.
E2E tests initiate a Fishjam instance using Docker and Testcontainers.
If you are a Colima user, you will need to run the following commands first:
export DOCKER_HOST=unix://${HOME}/.colima/default/docker.sock
export TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock
To learn about known issues, refer to the Testcontainers' documentation.
Working on your first pull request? Get started with this free series: How to Contribute to an Open Source Project on GitHub.
When you're sending a pull request:
- Focus on one change and try to keep pull requests small.
- Make sure that formatter, linter and test checks are passing.
- Review the documentation to make sure it looks good.
- Follow the pull request template when opening a pull request.
- If your pull request changes the API or implementation, first discuss the changes with the maintainers by opening an issue.
To release a new version of the package, navigate to Actions
>
Release package
workflow and trigger it with the chosen release type. The
workflow will update the package version in package.json
, release the package
to NPM, create a new git tag and a GitHub release.