To contribute to this project, we ask all contributors to understand some of the features of GitHub to make it easier for maintainers to review all contributions made by contributors.
All developments in this project use issues as the basis for all contributions made. Everyone can provide an issue for discussion. You can search for available issues on the issues tab of this repository. Contributors can contribute to open issues. Contributors are free to choose which issues will be taken and worked on by themselves. Otherwise, closed issues are issues that have been resolved and do not need to be followed up unless there are problems related to the issue in the future.
It was previously explained that this project was developed based on the available issues, now it will be explained how to work with the issues themselves.
Before starting, make sure you have done the following:
- Fork the
untukkita.sda
repository properly. - Check the Pull Request and make sure no one is working on the issue you are going to work on.
- Create a new branch from the main branch with name format:
<issuesnumber>-<type>-issuesshortname
Example:
1-feat-ssgrendering
It is important to note that the branch name should be unique.
After doing these checks, communicate to the maintainer about the issue that you will be working on. That way, the maintainer will assign the issue to you and everyone can know if you're working on the issue.
Not only that, you can also use the Draft Pull Request as a sign that you are working on the issue, regardless of the status in progress or the review process.
That said, communicate with the maintainer either through issue cards or Draft Pull Requests. The maintainer will be happy to review all of your contributions.
Issues can be opened by anyone, you can open an issue easily. We recommend using the provided template so that each issue has a description and it is easy to categorize the issue.
Currently, there are two kinds of issue templates that anyone can create, namely Bug Reports and Feature Requests & Changes.
In creating an issue, please pay attention to the format for naming the issue to make it easier for contributors and maintainers to find and categorize issues.
type: Issues Title
Example:
feat: Add new feature
fix: Fix bug
docs: Add documentation
style: Fix style
refactor: Refactor code
perf: Improve performance
test: Add tests
- Commit and push the changes you made to your fork repository. Make sure you are following the Conventional Commits guidelines.
- Create a new Draft Pull Request.
- Give a clear title and description using the project PR template.
- Pick Create Draft Pull Request as the action.
- Don't forget to change your PR as Ready to review when you're done.
To make it easier to structure a good pull request description, use the Pull Request Template format provided when creating a Pull Request. A basic example can be seen below.
# Description
Closes #
## Finished Task
## Screenshots (if appropriate)
## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.
Please read more at Conventional Commits.
The commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Below are the types of commit that can be made:
Type | Description |
---|---|
feat | A new feature |
fix | A bug fix |
docs | Documentation only changes |
style | Changes that do not affect the meaning of the code. |
refactor | A code change that neither fixes a bug nor adds a feature |
perf | A code change that improves performance |
test | Adding missing or correcting tests |
chore | Changes to the build process or auxiliary tools and libraries |
revert | Revert to a commit |
ci | Changes to CI configuration files |
build | Changes to the build system itself |
Below are the scopes that can be used:
Type | Description |
---|---|
page | Changes to the page |
seo | Changes to the SEO |
ui | Changes to the UI |
dx | Changes to the DX |
deps | Changes to the deps |
assets | Changes to the assets |
Issue labeling is intended to categorize issues and pull requests to make it easier for maintainers to document and create project milestones.
Label | Description |
---|---|
status-open | Open issue |
status-close | Closed issue |
status-merge | Merged issue |
status-duplicate | Duplicate issue |
status-invalid | Invalid issue |
status-wip | Work in progress issue |
status-wontfix | Won't fix issue |
status-needs-review | Needs review issue |
status-needs-discussion | Needs discussion issue |
status-verified | Verified issue |
status-other | Other issue |
Label | Description |
---|---|
type-bug | Bug report |
type-feature | Feature request |
type-improvement | Improvement request |
type-documentation | Documentation change |
type-style | Style change |
type-refactor | Refactor change |
type-testing | Test change |
type-other | Other change |
type-question | Question |
Label | Description |
---|---|
priority-critical | Must be resolved immediately |
priority-high | Need more attention and effort |
priority-medium | Issues can be resolved with peace |
priority-low | Issues can be ignored when everything in heat |
priority-trivial | We don't know exactly |
priority-other | It must be resolved, when? |
Label | Description |
---|---|
scope-ux | UX related |
scope-ui | UI related |
scope-security | Security related |
scope-performance | Performance related |
scope-accessibility | Accessibility related |
scope-other | Other |
scope-dx | DX related |
scope-ci-cd | CI/CD related |
scope-seo | SEO related |
Any problems could be reported to @untukkita Sidoarjo Discussion Tab.
Happy Contributing ❤️