This project uses pnpm version 8 for package management. If you don't have it installed, you can install it with npm i -g pnpm@8
.
We also use Node version 16, 18 or 20. You can use nvm to manage your node versions.
This project was created with Nx. You can install it with pnpm i -g nx
. There is also an NX Console plugin available for VS Code and WebStorm that you might find handy.
Once you've setup your environment, you can install the dependencies with:
pnpm i
You can run the unit tests with:
pnpm test
You can run the linter with:
pnpm lint
We are very careful to not duplicate our code. You can run the duplicate code checker with:
pnpm dupcheck
We use Prettier for code formatting. You can run the formatter with:
pnpm format
Please follow these basic steps to simplify pull request reviews. If you don't you'll probably just be asked to anyway.
- Please rebase your branch against the current main.
- Run the
Setup
command to make sure your development dependencies are up-to-date. - Please ensure the CI suite passes before submitting a PR. You can create a draft pull request if you'd like the CI system to run the checks for you.
- If you've added new functionality, please include tests which validate its behavior. We currently have a 100% branch coverage policy.
- Make reference to possible issues on PR comment.
- Search through issues to see if a previous issue has already been reported and/or fixed.
- Provide a small reproduction using a StackBlitz project or a GitHub repository.
- Please detail the affected browser(s) and operating system(s).
- Please be sure to state which version of Angular, node, and pnpm you're using.
- We value keeping the API surface small and concise, which factors into whether new features are accepted.
- Submit an issue with the label 'feature request' with your feature request.
- The feature will be discussed and considered.
- Once the PR is submitted, it will be reviewed and merged once approved.
Questions and requests for support should not be opened as issues and should be handled in the following ways:
- Start a new Q&A Discussion on GitHub.
Must be one of the following:
- build: Changes that affect the build system or external dependencies
- ci: Changes to our CI configuration files and scripts
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)
- tests: Adding missing tests or correcting existing tests
The subject contains a succinct description of the change:
- use the imperative, present tense: "change" not "changed" nor "changes"
- don't capitalize the first letter
- no dot (.) at the end
Just as in the subject, use the imperative, present tense: "change" not "changed" nor "changes". The body should include the motivation for the change and contrast this with previous behavior.
The footer should contain any information about Breaking Changes and is also the place to reference GitHub issues that this pull request Closes.
Breaking Changes should start with the word BREAKING CHANGE:
with a space or two newlines. The rest of the commit message is then used for this.
Example:
feat: PR message
BREAKING CHANGES:
Describe breaking changes here
BEFORE:
Previous code example here
AFTER:
New code example here