Please make sure you have installed node 14 or higher (check by running node -v) and yarn v1 (check by running yarn -v).
First, you need to clone the git repository by running
# this git url points to the original repository, you can exchange it with the address of your fork
git clone https://github.com/SAP/ui5-webcomponents-react.gitThen, go into that cloned directory and run yarn install. At this point, you are ready to start local development. You can now run:
yarn start
This starts the local storybook, so you can check if your components are rendered correctly. If the storybook doesn't open automatically after executing the command, you can use this link: http://localhost:6006/yarn test
This command is running all tests in the project. You can pass additional parameters according to the jest documentation. Most probably you will only need the--updatecli parameter when you have changed tests and want to update the snapshots.yarn build
This command executes the full build of the project.
Please use TypeScript to write your components. A good introduction to TypeScript in React can be found here.
- All Event handlers must start with
on.
e.g.onClick,onSelect,onSelectionChange, .etc
All Events must pass an instance of theEvent-Class as single parameter. - When passing additional elements into a component, a slot should be used. This prop should contain a
ReactNodeor an array of ReactNodes (ReactNode[]orReactNodeArray)
You must follow the coding style as best you can when submitting code. Take note of naming conventions, separation of concerns, and formatting rules. You can use the code formatter Prettier to handle some of this for you automatically.
All components should have associated unit tests created with a code coverage score of at least 85%. Be an overachiever and shoot for 100% :)
We adhere to the Conventional Commits specification.
The commit message consists of three parts:
- header
- body (optional)
- footer (optional)
The commit header is the first line of the commit message. It consists of three parts: type, scope and description.
- It must be one of the following:
fix- a bug fix (note: this will indicate a release)feat- a new feature (note: this will indicate a release)docs- documentation only changesstyle- changes that do not affect the meaning of the coderefactor- a code change that neither fixes a bug nor adds a featureperf- a code change that improves performancetest- adding missing testschore- changes to the build process or auxiliary tools and libraries such as documentation generationrevert- revert to a commitWIP- work in progress
- It points to a specific component which is affected by the change. For example, ui5-button, ui5-card and ui5-table.
- Use the imperative present tense. Instead of "I added feature xy" or "Adding tests for" use "Add feature xy" or "Add tests for".
- It should be no more than 100 characters long.
After the commit header, there should be an empty line followed by the optional commit body.
- Describe the intention and reasoning of the change.
After the optional commit body, there should be an empty line followed by the optional footer.
- If the change introduces a breaking change, it should start with BREAKING CHANGE: followed by a description of the change.
BREAKING CHANGE: remove press event
- If the change fixes an issue reported on GitHub, add the following line to the commit message:
Fixes #<issueNumber>(e.g.Fixes #42)
fix(text): correct focus with 'tab' key
The text should receive a correct focus outline
when the 'tab' key is pressed.
Fixes #42