xref: /openbmc/webui-vue/CONTRIBUTING.md (revision 64a2ee946fe70f708f602fbdddf0789c60c2eeb3)
1828b40d4SGunnar MillsContributing to WebUI-Vue
2828b40d4SGunnar Mills
3828b40d4SGunnar Mills:+1::tada: First off, thanks for taking the time to contribute! :+1::tada:
4828b40d4SGunnar Mills
5dc80f198SDerick MontagueThe following is a set of guidelines for contributing to the OpenBMC Web UI.
6dc80f198SDerick Montague
7dc80f198SDerick Montague## Table of contents
87385e139SPatrick Williams
9dc80f198SDerick Montague- [Project Setup](#project-setup)
10dc80f198SDerick Montague- [Code of Conduct](#code-of-conduct)
11dc80f198SDerick Montague- [Asking Questions](#asking-questions)
12dc80f198SDerick Montague- [Submitting Bugs](#submitting-bugs)
13dc80f198SDerick Montague- [Request a New Feature](#request-a-new-feature)
14dc80f198SDerick Montague- [User Research](#user-research)
15dc80f198SDerick Montague- [Design Reviews](#design-reviews)
16dc80f198SDerick Montague- [Help Wanted](#help-wanted)
17dc80f198SDerick Montague- [Code Reviews](#code-reviews)
18dc80f198SDerick Montague
19dc80f198SDerick Montague## Project Setup
20dc80f198SDerick Montague
21dc80f198SDerick Montague### Set up Gerrit account
227385e139SPatrick Williams
237385e139SPatrick WilliamsThe OpenBMC projects use Gerrit for code review. Use the
247385e139SPatrick Williams[OpenBMC Gerrit Setup/Integration guidelines](https://github.com/openbmc/docs/blob/master/development/gerrit-setup.md)
257385e139SPatrick Williamsto set up your Gerrit account.
26dc80f198SDerick Montague
27dc80f198SDerick Montague### Clone repo from Gerrit
287385e139SPatrick Williams
297385e139SPatrick WilliamsSince we use Gerrit to manage all the code contributions, it is not necessary to
307385e139SPatrick Williamscreate a fork from GitHub. Read more about submitting a code review in the
317385e139SPatrick Williams[Code Reviews section](#code-reviews) below.
32dc80f198SDerick Montague
33dc80f198SDerick Montague1. Visit https://gerrit.openbmc-project.xyz/admin/repos/openbmc/webui-vue
34dc80f198SDerick Montague2. Clone the repo using the `Clone with commit-msg hook` link
357385e139SPatrick Williams   - Windows users may need to separate the two commands depending on if they
367385e139SPatrick Williams     have installed a Bash emulator like `Git for Windows` or `CMDER` or
377385e139SPatrick Williams     installed the `Windows Subsystem for Linux`.
38dc80f198SDerick Montague
39dc80f198SDerick Montague### Install Dependencies
407385e139SPatrick Williams
41dc80f198SDerick Montague```
42dc80f198SDerick Montaguenpm install
43dc80f198SDerick Montague```
44dc80f198SDerick Montague
45dc80f198SDerick Montague### Create a .env file
467385e139SPatrick Williams
47dc80f198SDerick Montague1. Create the following file in the root directory
48dc80f198SDerick Montague   - .env.development.local
49dc80f198SDerick Montague1. Add the following environment variable
50dc80f198SDerick Montague   - BASE_URL="https://<BMC IP address or FQDN>"`
51dc80f198SDerick Montague
52dc80f198SDerick Montague### Compile and hot-reload for development
537385e139SPatrick Williams
54dc80f198SDerick Montague```
55dc80f198SDerick Montaguenpm run serve
56dc80f198SDerick Montague```
57dc80f198SDerick Montague
58dc80f198SDerick Montague### Run Documentation Locally (Vuepress static site generation)
597385e139SPatrick Williams
60dc80f198SDerick Montague```
61656b2ec5SDixsie Wolmersnpm run docs:serve
62dc80f198SDerick Montague```
63dc80f198SDerick Montague
64dc80f198SDerick Montague### Run unit tests
657385e139SPatrick Williams
66dc80f198SDerick Montague```
67dc80f198SDerick Montaguenpm run test:unit
68dc80f198SDerick Montague```
69dc80f198SDerick Montague
70dc80f198SDerick Montague### Lint and fix files
717385e139SPatrick Williams
72dc80f198SDerick Montague```
73dc80f198SDerick Montaguenpm run lint
74dc80f198SDerick Montague```
75dc80f198SDerick Montague
767385e139SPatrick WilliamsThis project and everyone participating are required to follow the
777385e139SPatrick Williams[OpenBMC Code of Conduct](https://github.com/openbmc/docs/blob/master/code-of-conduct.md).
78dc80f198SDerick Montague
79dc80f198SDerick Montague## Asking Questions
807385e139SPatrick Williams
817385e139SPatrick WilliamsThe OpenBMC communicates using a mail list and the Discord channel. Although you
827385e139SPatrick Williamscould create a GitHub issue to ask a question, a better option would be to ask
837385e139SPatrick Williamsyour question using the email list or Discord channel.
84dc80f198SDerick Montague
85dc80f198SDerick Montague- Mail: openbmc@lists.ozlabs.org https://lists.ozlabs.org/listinfo/openbmc
865ad9ab11SBruce Mitchell- Discord: https://discord.gg/69Km47zH98
87dc80f198SDerick Montague
88dc80f198SDerick Montague### Submitting Bugs
89dc80f198SDerick Montague
907385e139SPatrick WilliamsBefore submitting an issue, please search through the
917385e139SPatrick Williams[existing GitHub issues](https://github.com/openbmc/webui-vue/issues) to see if
927385e139SPatrick Williamssomeone already reported the problem. If the issue does not exist, use the
937385e139SPatrick Williams[Bug report template](https://github.com/openbmc/webui-vue/issues/new?assignees=&labels=&template=bug_report.md&title=)
947385e139SPatrick Williamsto report the problem.
957385e139SPatrick Williams
967385e139SPatrick WilliamsBefore submitting a request for a new feature, please search through the
977385e139SPatrick Williams[existing GitHub issues](https://github.com/openbmc/webui-vue/issues). If no one
987385e139SPatrick Williamshas suggested the idea previously, use the
997385e139SPatrick Williams[Feature request template](https://github.com/openbmc/webui-vue/issues/new?assignees=&labels=&template=feature_request.md&title=)
1007385e139SPatrick Williamsto submit a new feature request.
101dc80f198SDerick Montague
102dc80f198SDerick Montague## User Research
1037385e139SPatrick Williams
1047385e139SPatrick WilliamsTo improve the OpenBMC Web UI, we are actively seeking end-user feedback through
1057385e139SPatrick Williamsthe IBM Design Partner program.
106dc80f198SDerick Montague
107dc80f198SDerick Montague### What is an OpenBMC Design Partner?
108dc80f198SDerick Montague
1097385e139SPatrick WilliamsContribute your feedback and bring your domain expertise to help us improve the
1107385e139SPatrick WilliamsOpenBMC GUI. The time commitment is minimal: 1-hour feedback sessions conducted
1117385e139SPatrick Williamsremotely via Webex, 1 to 2 times per month. Activities may include exploratory
1127385e139SPatrick Williamsinterviews, participatory design, periodic surveys, or usability testing
1137385e139SPatrick Williamssessions.
114dc80f198SDerick Montague
1157385e139SPatrick WilliamsNote: IBM requires all user research participants to sign a Feedback Program
1167385e139SPatrick WilliamsAgreement (FPA), describing how IBM complies with the latest GDPR guidelines.
1177385e139SPatrick WilliamsThe FPA only needs to be signed once to cover your company or entity's
1187385e139SPatrick Williamsparticipation.
119dc80f198SDerick Montague
120dc80f198SDerick Montague## Design Reviews
1217385e139SPatrick Williams
1227385e139SPatrick WilliamsWhen making changes to an existing design, we create a design review issue in
123*64a2ee94SGunnar MillsGitHub. We then send an email to the community and review the changes in the
124c45cfe5cSGunnar Mills[OpenBMC GUI Design Workgroup](https://github.com/openbmc/openbmc/wiki/GUI-Design-work-group).
125dc80f198SDerick Montague
126dc80f198SDerick Montague## Help Wanted
1277385e139SPatrick Williams
1287385e139SPatrick WilliamsNew features and bugs ready for development will be tagged with the
1297385e139SPatrick Williams`Help Wanted` tag and added to the
1307385e139SPatrick Williams[Help Wanted Project](https://github.com/openbmc/webui-vue/projects/2). If you
1317385e139SPatrick Williamswant to pick up a story, add a comment stating your interest, and a maintainer
1327385e139SPatrick Williamswill assign the story and move it to the `In Progress` column in the Project
1337385e139SPatrick WilliamsKanban board.
134dc80f198SDerick Montague
135dc80f198SDerick Montague## Code Reviews
136dc80f198SDerick Montague
1377385e139SPatrick WilliamsThe OpenBMC project uses Gerrit for all code reviews. Please do not create a
1387385e139SPatrick WilliamsGitHub pull request.
1397385e139SPatrick Williams
1407385e139SPatrick Williams1. Commit your changes, adding a Signed-off-by line to it:
1417385e139SPatrick Williams   `git commit --signoff`
142dc80f198SDerick Montague1. Write a [good commit message](https://chris.beams.io/posts/git-commit/)
1437385e139SPatrick Williams
144dc80f198SDerick Montague   - Separate subject from the body with a blank line
145dc80f198SDerick Montague   - Limit the subject line to 50 characters
146dc80f198SDerick Montague   - Capitalize the subject line
147dc80f198SDerick Montague   - Do not end the subject line with a period
148dc80f198SDerick Montague   - Use the imperative mood in the subject line
149dc80f198SDerick Montague   - Wrap the body at 72 characters
150dc80f198SDerick Montague   - Use the body to explain what and why vs. how
151dc80f198SDerick Montague
1527385e139SPatrick Williams1. Push your changes to Gerrit for code review:
1537385e139SPatrick Williams   `git push origin HEAD:refs/for/master`
154dc80f198SDerick Montague1. Assign reviewers
155