Thanks for contributing!
- Fork & clone:
git clone https://github.com/LukasNiessen/ArchUnitTS.git - Install:
npm install - Test:
npm test - Build:
npm run build
- Code Style: Run
npm run lintandnpm run formatbefore committing - Commits: Use Conventional Commits (see below)
- PRs: Use feature branches, clear descriptions, ensure CI passes
- Tests: Maintain high coverage
We use Conventional Commits to automate versioning and changelog generation via semantic-release. Your commit messages determine the next version number:
| Commit prefix | Version bump | Example |
|---|---|---|
fix: |
Patch (2.1.63 -> 2.1.64) | fix: handle empty tsconfig in graph extraction |
feat: |
Minor (2.1.63 -> 2.2.0) | feat: add support for JS file analysis |
feat!: or BREAKING CHANGE: in footer |
Major (2.1.63 -> 3.0.0) | feat!: remove deprecated matchFilename API |
Other prefixes like chore:, docs:, refactor:, test:, ci: do not trigger a release.
Releases are fully automated. When a PR is merged to main:
- CI runs lint + tests
- If CI passes, semantic-release analyzes commit messages since the last release
- If there are
fix:orfeat:commits, it automatically:- Bumps the version in
package.json - Updates
CHANGELOG.md - Publishes to npm
- Creates a GitHub release with release notes
- Bumps the version in
No manual version bumping or publishing is needed.
Documentation is automatically generated from TypeScript code using TypeDoc and deployed to GitHub Pages.
- Generate docs:
npm run docs - Watch mode:
npm run docs:watch - Serve locally:
npm run docs:serve
- Add JSDoc comments to all public APIs
- Use
@exampletags for code examples - Use
@paramand@returnsfor functions - Use
@sincefor version information - Group related functionality with
@grouptags
- Documentation is automatically deployed to GitHub Pages on push to
main - Documentation validation runs on all PRs
- Configuration is in
typedoc.json
Bugs: Include environment, expected/actual behavior, steps, errors Features: Check existing issues, provide use case
Be respectful and inclusive. Happy coding!