Thank you for your interest in contributing to Forge Angular! This document provides guidelines and information for contributors.
- Development Setup
- Building the Library
- Running the Demo Application
- Testing
- Release Process
- Commit Message Guidelines
-
Clone the repository
git clone https://github.com/tyler-technologies-oss/forge-angular.git cd forge-angular -
Install dependencies
npm install
-
Verify your setup
npm run build npm test
Build the @tylertech/forge-angular library for production:
npm run buildThis compiles the library located in projects/forge-angular/ and outputs the distributable files to dist/forge-angular/.
For development with watch mode:
npm run watchThe repository includes a demo application that showcases the Forge Angular components. To run it:
npm startThis will:
- Build the library
- Start the Angular development server
- Open your browser to the demo application
The demo app is useful for:
- Testing components during development
- Seeing live examples of component usage
- Manual testing of new features
Run the test suite:
npm testThis executes the Jasmine/Karma test suite for the library.
This repository uses auto to manage releases automatically. Releases are triggered when a pull request is merged into the main branch with the appropriate semantic versioning label.
-
Semantic Versioning Labels: Add one of these labels to your pull request:
major- Breaking changes (e.g., 6.0.0 → 7.0.0)minor- New features, backward compatible (e.g., 6.0.0 → 6.1.0)patch- Bug fixes, backward compatible (e.g., 6.0.0 → 6.0.1)
-
Skip Release: To prevent a release, add the
skip-releaselabel alongside any semantic version label. -
Automatic Publishing: When the PR is merged to
main,autowill:- Calculate the new version based on the label
- Update the changelog
- Create a git tag
- Publish to npm
- Create a GitHub release
Important: This library follows Angular's support policy and maintains compatibility with the current and current-1 versions of Angular.
For example:
- When Angular 21 is the current version, the library supports Angular 20 and 21
- When Angular 22 is released, the library will drop support for Angular 20 and support Angular 21 and 22
When releasing a new major version that drops support for an older Angular version:
autoautomatically creates a version branch for the previous major version (e.g.,v6branch when releasingv7.0.0)- This allows critical bug fixes to be backported to the older version if needed
- Create your pull request with your changes
- In the GitHub UI, add the
patchlabel to your PR (found in the right-hand sidebar) - Do not include the
skip-releaselabel if you want this PR to trigger a release - Get your PR reviewed and approved
- Merge the PR into
main autowill automatically publish the new version
- Create your pull request with breaking changes
- Add the
majorlabel to your PR - Ensure your PR description clearly documents the breaking changes
- Get your PR reviewed and approved
- Merge the PR into
main autowill:- Create a version branch for the previous major version (e.g.,
v6) - Publish the new major version (e.g.,
v7.0.0)
- Create a version branch for the previous major version (e.g.,
This project uses Conventional Commits for commit messages. This standard is enforced via commitlint.
<type>(<scope>): <subject>
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that don't affect code meaning (white-space, formatting, etc.)refactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementstest: Adding or correcting testschore: Changes to build process or auxiliary tools
feat(button): add support for icon-only buttons
fix(text-field): resolve focus state issue
docs(readme): update installation instructions
chore(deps): update to forge 3.12.0
- Conventional commits enable
autoto automatically generate changelogs - They help determine the semantic version bump automatically
- They provide a clear, standardized project history
If you have questions or encounter issues:
- Check existing GitHub Issues
- Create a new issue with a detailed description
- Reach out to the maintainers
Thank you for contributing to Forge Angular!