We are very happy to welcome you into this project! Your contribution is very appreciated and will help development and stability of the project. Contribution is in fact open to anyone, developer or not, in order to guide you during this process here are some guidelines.
Ultraviolet UI has adopted Contributor Covenant, please read code of conduct file to understand what is tolerated and what is not.
ultraviolet/
package.json
...
src/
components/
Button/
__stories__/
__tests__/
index.tsx
helper.ts
...
helpers/
theme/
The project is composed of components, each of them is composed of a story folder plus a test folder.
Helper files contains functions that are used multiple times, they are useful in order to make a functionalities work.
You have an issue with Ultraviolet UI or you want to propose a new creative feature? First things first: check that this issue hasn't been already opened or solved. 🔎
You found a closed issue about a bug, but it's still here?
Please open an issue mentioning closed issue with all details: how to reproduce it, screenshots and videos if you can.
You didn't find any corresponding issue?
You can now open an issue and choose most fitting template! Collect and describe as much information as possible. If you're opening an issue about a bug or a fix please describe how to reproduce, put some screenshots and even videos if you can.
You are a developer and wants to play part in this project? Lucky us!
In order to publish your changes here is what you need to do:
- Fork the repository.
- Clone your fork on your local machine:
git clone https://github.com/<your username>/ultraviolet.git
cd ultraviolet
git remote add upstream https://github.com/scaleway/ultraviolet.git
- Synchronize your local main branch with the upstream one:
git checkout main
git pull upstream main
- Create a new branch:
git checkout -b fix/my-branch
- Install dependencies and start storybook to test your modifications:
pnpm install && pnpm build && pnpm run start
- Make your code modifications and test them locally:
pnpm run test:unit
If you have an error with unit test please check corresponding test and try to resolve the issue. Generating snapshot might be required depending on modification.
- Commit using conventional commit and push your changes:
pnpm run commit
and then:
git push -u origin HEAD
- Come back on our repository and create a pull request.
Congratulation! Now you just need to wait reviews from our core team, your pull request will either be merged, request changes or closed with an explanation.
We have specific rules on how to structure of our commit messages to make them easy to read.
Here is simple structure:
type(scope): commit message
Where types are defined just below, scope defines the subject and commit message should be a more precise definition of what has been changed.
Example: I'm working on a fix on Button component by changing behavior on click event. Commit message & pull request title will be:
fix(button): fade in animation on click
Must be one of the following:
- build: Changes that affect the build system or external dependencies
- ci: Changes to our CI configuration files and scripts
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- test: Adding missing tests or correcting existing tests
- revert: If the commit revert a previous commit
By contributing your code to the scaleway/ultraviolet GitHub repository, you agree to license your contribution under the Apache License 2.0.