Thanks for taking the time to consider contributing to the project. You will find documentation here that will help you get a local environment setup for contributing to the project as well as some helpful guidance on how you can help keep angular-fontawesome
going.
git clone https://github.com/FortAwesome/angular-fontawesome
corepack enable
- to get the globalyarn
commandyarn
- install dependenciesyarn build:watch
(in terminal 1) - build the library and keep watching for changesyarn start
(in terminal 2) - start sample application using library distribution from the previous step- Visit http://localhost:4200 and observe sample application running
- Modify the code. You can use sample application from the previous step to check that your changes behave as intended.
- Once you're done with the implementation add relevant tests and ensure that
yarn lint
andyarn test
pass. - Submit a pull request.
Development tasks are managed as scripts
inside of package.json
. Below are the description of the common tasks:
Command | Purpose |
---|---|
yarn format |
Format codebase using Prettier |
yarn lint |
Verify code style |
yarn test |
Execute unit tests |
yarn test:schematics |
Execute unit tests for schematics |
yarn test:demo |
Execute unit tests of the demo project |
yarn test:integration |
Execute integration tests |
yarn start |
Run development server for the demo application |
yarn build |
Build library |
yarn build:schematics |
Build schematics (should be run after the library build) |
- Bump version in
package.json
- Update versions in
projects/schematics/src/ng-add/versions.ts
to align with the published release. - Add contributors to
README.md
- Update Compatibility table in
README.md
- Update the
CHANGELOG.md
- Update the
UPGRADING.md
if necessary yarn build && yarn build:schematics
cd dist/angular-fontawesome
npm publish
- publish to public registrynpm publish --registry https://npm.fontawesome.com
- publish to Pro registrygit commit -a -m 'Release VERSION'
git tag <version> && git push && git push --tags
- create a tag and push all changes to GitHub- Create a new release with CHANGELOG details
- Update StackBlitz sample projects: one and two