| 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:
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.
Git Workflow
Branch Creation
- Fork and clone the repository
- Create branch from
develop (not main):
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 number
fix/dropdown-position - If no issue number
For features:
feature/456-new-component - Include GitHub issue number
feature/new-component - If no issue number
For other changes:
refactor/component-structure
docs/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:
Commit Messages
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
-
Update Property Explorer:
- Location:
app/src/docs/explorerConfigs
- Add/update explorer config for component
-
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
develop branch
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 start or yarn build-server && yarn start-server)
- Check
.env file for UUI_APP_BASE_URL if using non-standard URL
- Update screenshots if intentional:
yarn test-e2e-update
App Won't Start
- Run
yarn and cd server && yarn to install all dependencies
- Run
yarn build-server before yarn start
- Ensure port 9009 is free. If occupied, set
PORT env 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