xref: /openbmc/webui-vue/CONTRIBUTING.md (revision 511650a9)
1Contributing to WebUI-Vue
2
3:+1::tada: First off, thanks for taking the time to contribute! :+1::tada:
4
5The following is a set of guidelines for contributing to the OpenBMC Web UI.
6
7## Table of contents
8
9- [Project Setup](#project-setup)
10- [Code of Conduct](#code-of-conduct)
11- [Asking Questions](#asking-questions)
12- [Submitting Bugs](#submitting-bugs)
13- [Request a New Feature](#request-a-new-feature)
14- [User Research](#user-research)
15- [Design Reviews](#design-reviews)
16- [Help Wanted](#help-wanted)
17- [Code Reviews](#code-reviews)
18
19## Project Setup
20
21### Set up Gerrit account
22
23The OpenBMC projects use Gerrit for code review. Use the
24[OpenBMC Gerrit Setup/Integration guidelines](https://github.com/openbmc/docs/blob/master/development/gerrit-setup.md)
25to set up your Gerrit account.
26
27### Clone repo from Gerrit
28
29Since we use Gerrit to manage all the code contributions, it is not necessary to
30create a fork from GitHub. Read more about submitting a code review in the
31[Code Reviews section](#code-reviews) below.
32
331. Visit https://gerrit.openbmc-project.xyz/admin/repos/openbmc/webui-vue
342. Clone the repo using the `Clone with commit-msg hook` link
35   - Windows users may need to separate the two commands depending on if they
36     have installed a Bash emulator like `Git for Windows` or `CMDER` or
37     installed the `Windows Subsystem for Linux`.
38
39### Install Dependencies
40
41```
42npm install
43```
44
45### Create a .env file
46
471. Create the following file in the root directory
48   - .env.development.local
491. Add the following environment variable
50   - BASE_URL="https://<BMC IP address or FQDN>"`
51
52### Compile and hot-reload for development
53
54```
55npm run serve
56```
57
58### Run Documentation Locally (Vuepress static site generation)
59
60```
61npm run docs:serve
62```
63
64### Run unit tests
65
66```
67npm run test:unit
68```
69
70### Lint and fix files
71
72```
73npm run lint
74```
75
76This project and everyone participating are required to follow the
77[OpenBMC Code of Conduct](https://github.com/openbmc/docs/blob/master/code-of-conduct.md).
78
79## Asking Questions
80
81The OpenBMC communicates using a mail list and the Discord channel. Although you
82could create a GitHub issue to ask a question, a better option would be to ask
83your question using the email list or Discord channel.
84
85- Mail: openbmc@lists.ozlabs.org https://lists.ozlabs.org/listinfo/openbmc
86- Discord: https://discord.gg/69Km47zH98
87
88### Submitting Bugs
89
90Before submitting an issue, please search through the
91[existing GitHub issues](https://github.com/openbmc/webui-vue/issues) to see if
92someone already reported the problem. If the issue does not exist, use the
93[Bug report template](https://github.com/openbmc/webui-vue/issues/new?assignees=&labels=&template=bug_report.md&title=)
94to report the problem.
95
96Before submitting a request for a new feature, please search through the
97[existing GitHub issues](https://github.com/openbmc/webui-vue/issues). If no one
98has suggested the idea previously, use the
99[Feature request template](https://github.com/openbmc/webui-vue/issues/new?assignees=&labels=&template=feature_request.md&title=)
100to submit a new feature request.
101
102## User Research
103
104To improve the OpenBMC Web UI, we are actively seeking end-user feedback through
105the IBM Design Partner program.
106
107### What is an OpenBMC Design Partner?
108
109Contribute your feedback and bring your domain expertise to help us improve the
110OpenBMC GUI. The time commitment is minimal: 1-hour feedback sessions conducted
111remotely via Webex, 1 to 2 times per month. Activities may include exploratory
112interviews, participatory design, periodic surveys, or usability testing
113sessions.
114
115Note: IBM requires all user research participants to sign a Feedback Program
116Agreement (FPA), describing how IBM complies with the latest GDPR guidelines.
117The FPA only needs to be signed once to cover your company or entity's
118participation.
119
120## Design Reviews
121
122When making changes to an existing design, we create a design review issue in
123GitHub and add it to the Design Reviews
124Project](https://github.com/openbmc/webui-vue/projects/1). We then send an email
125to the community and review the changes in the [OpenBMC GUI Design
126Workgroup](https://github.com/openbmc/openbmc/wiki/GUI-Design-work-group.
127
128## Help Wanted
129
130New features and bugs ready for development will be tagged with the
131`Help Wanted` tag and added to the
132[Help Wanted Project](https://github.com/openbmc/webui-vue/projects/2). If you
133want to pick up a story, add a comment stating your interest, and a maintainer
134will assign the story and move it to the `In Progress` column in the Project
135Kanban board.
136
137## Code Reviews
138
139The OpenBMC project uses Gerrit for all code reviews. Please do not create a
140GitHub pull request.
141
1421. Commit your changes, adding a Signed-off-by line to it:
143   `git commit --signoff`
1441. Write a [good commit message](https://chris.beams.io/posts/git-commit/)
145
146   - Separate subject from the body with a blank line
147   - Limit the subject line to 50 characters
148   - Capitalize the subject line
149   - Do not end the subject line with a period
150   - Use the imperative mood in the subject line
151   - Wrap the body at 72 characters
152   - Use the body to explain what and why vs. how
153
1541. Push your changes to Gerrit for code review:
155   `git push origin HEAD:refs/for/master`
1561. Assign reviewers
157