name: uui-pr-contributing description: Guides the UUI pull request process including branch naming, pre-PR checklist, changelog updates, and quality requirements. Use when preparing a pull request, writing commit messages, or following UUI PR requirements.
UUI Pull Request Process
Follow this checklist when preparing a pull request for UUI.
Pre-PR Checklist
Before opening a PR, ensure all items are complete:
- All tests pass - Run
yarn test - Snapshots updated - If UI changed, run
yarn test-update - E2E tests pass - If UI changed, run
yarn test-e2e - ESLint passes - Run
yarn eslint(oryarn eslint-fix) - Stylelint passes - Run
yarn stylelint(oryarn stylelint-fix)
Note: Husky runs lint-staged on commit, which auto-fixes ESLint and Stylelint for staged files. You can still run lint manually to catch issues before committing.
- Bundle size check passes - Run
yarn track-bundle-size - TypeScript type checking passes - Run
yarn test-typecheck - Documentation updated - If API changed, add examples and update Property Explorer
- Changelog updated - Add entry to
changelog.md
Git Workflow
Branch Creation
- Fork and clone the repository
- Create branch from
develop(notmain):git checkout develop git pull origin develop git checkout -b fix/123-description
Branch Naming
Use descriptive branch names following these patterns:
For bug fixes:
fix/123-dropdown-position- Include GitHub issue numberfix/dropdown-position- If no issue number
For features:
feature/456-new-component- Include GitHub issue numberfeature/new-component- If no issue number
For other changes:
refactor/component-structuredocs/update-readme
Important: When working on features or bugs from GitHub issues, include the issue number in the branch name (e.g., fix/123-description, feature/456-new-component).
Avoid generic names:
- ❌
update - ❌
fix - ❌
changes
Commit Messages
- Use clear, descriptive commit messages
- Reference issue numbers when applicable:
fix: resolve dropdown positioning issue (#123) - Follow conventional commit format when possible:
feat: add new componentfix: correct date formattingdocs: update READMErefactor: simplify component logic
- Before committing: Always show the proposed commit message to the user and wait for approval before running
git commit. Do not commit automatically. - Shell compatibility: Do not use bash-only syntax (heredoc
<<'EOF',&&chaining). Use multiple-mflags for multi-line commits:git commit -m "subject line" -m "body line 1" -m "body line 2"
PR Requirements
Code Quality
- All tests must pass (
yarn test) - Bundle size check must pass (
yarn track-bundle-size) - E2E tests must pass (if UI changes)
- Code must be linted (
yarn eslint,yarn stylelint)
Documentation
If making API changes or adding functionality:
Add example to documentation:
- Location:
app/src/docs/_examples - Add link in page config:
app/src/docs/pages
- Location:
Update Property Explorer:
- Location:
app/src/docs/explorerConfigs - Add/update explorer config for component
- Location:
Generate API (usually done in deployment):
yarn generate-components-api
Changelog
Add entry to the top (unreleased) section of changelog.md:
# 6.x.x - xx.xx.2026
**What's New**
* [ComponentName]: description of new feature ([#456](https://github.com/epam/UUI/issues/456))
**What's Fixed**
* [ComponentName]: description of fix ([#123](https://github.com/epam/UUI/issues/123))
Format:
- Use
**What's New**for features/enhancements,**What's Fixed**for bug fixes - Prefix with
[ComponentName]:to identify the affected component - Include issue link in markdown format:
([#123](https://github.com/epam/UUI/issues/123)) - Add to the existing top section; do not create a new version header
PR Process Steps
- Fork and clone the repository
- Create branch from
develop(include GitHub issue number if applicable) - Make changes following development guides
- Add tests (unit and E2E where appropriate)
- Ensure test suite passes (
yarn test), update snapshots if needed - Run E2E/screenshot tests if making UI changes
- If making API changes:
- Add example to documentation
- Update Property Explorer
- Add short description to
changelog.md - Commit and push to your fork
- Open PR targeting
developbranch
PR Description Template
When opening a PR, include:
- Summary - Brief description of changes
- Issue - Link to GitHub issue (if applicable)
- Type - Bug fix, Feature, Refactor, Docs, etc.
- Testing - How to test the changes
- Checklist - Confirm all PR requirements met
Quality Gates
PRs must pass these quality checks:
- ✅ All tests pass
- ✅ Bundle size check passes
- ✅ E2E tests pass (if UI changes)
- ✅ Code is linted
- ✅ Documentation updated (if API changes)
- ✅ Changelog updated
Common Issues
Bundle Size Check Fails
If bundle size increased intentionally:
yarn track-bundle-size-override
Warning: Only use if sizes are expected to increase. This overrides the baseline.
Tests Fail on Windows
Use reduced worker count:
yarn test --maxWorkers=2 --testTimeout=10000
You can increase maxWorkers up to 4 if needed.
E2E Tests Fail
- Ensure server is running (
yarn startoryarn build-server && yarn start-server) - Check
.envfile forUUI_APP_BASE_URLif using non-standard URL - Update screenshots if intentional:
yarn test-e2e-update
App Won't Start
- Run
yarnandcd server && yarnto install all dependencies - Run
yarn build-serverbeforeyarn start - Ensure port 9009 is free. If occupied, set
PORTenv var or stop the conflicting process
Run Single Test File
yarn test -- --testPathPattern="Button"
Use --testNamePattern="should render" to match test names. See unit-testing for more.
References
- Main guidelines: AGENTS.md Section 7
- Contributing guide: CONTRIBUTING.md
- E2E testing: .cursor/skills/e2e-testing/SKILL.md
- Unit testing: .cursor/skills/unit-testing/SKILL.md