Skip to content

Commit 463bb61

Browse files
authored
Merge pull request #637 from dannycolin/update-readme
Update readme
2 parents 593e44c + 845ed07 commit 463bb61

File tree

1 file changed

+80
-46
lines changed

1 file changed

+80
-46
lines changed

README.md

Lines changed: 80 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,23 @@
22

33
[![Known Vulnerabilities][snyk-image]][snyk-url]
44

5-
Codetribute is a site that guides contributors to
6-
their first contribution. It helps new contributors
7-
find a project they want to work with, learn about
8-
that project, and then find a task that is suitable
9-
to their skills and interests and not already assigned to
10-
someone else.
5+
Codetribute is a site that guides contributors to their first contribution. It
6+
helps new contributors find a project they want to work with, learn about that
7+
project, and then find a task that is suitable to their skills and interests and
8+
not already assigned to someone else.
119

1210
## Development
1311

1412
### Prerequisites
1513

16-
- Node version v16.18.1
14+
- Node version v16.18.1 (We recommend `nvm` to install multiple Node version in
15+
parallele)
1716
- [Yarn](https://www.npmjs.com/package/yarn)
1817

1918
### Building
2019

21-
First, fork this repository to another GitHub account (your account).
22-
Then you can clone and install:
20+
First, fork this repository to another GitHub account (your account). Then you
21+
can clone and install:
2322

2423
```
2524
git clone https://github.com/<YOUR_ACCOUNT>/codetribute.git
@@ -28,36 +27,42 @@ yarn
2827
```
2928

3029
### Web Server
31-
Codetribute relies on two servers, namely, GitHub’s GraphQL API v4 (managed by GitHub) and
32-
[bugzilla-graphql-gateway](https://github.com/mozilla-frontend-infra/bugzilla-graphql-gateway).
33-
The latter is required to perform queries to the Bugzilla API. For a local setup, clone the repo
34-
and follow the instruction for starting it prior to launching this application. You will need to
35-
launch the bugzilla-graphql-gateway in a terminal instance separate from this application in order
36-
to run both simultaneously.
30+
31+
Codetribute relies on two servers, namely, GitHub’s GraphQL API v4 (managed by
32+
GitHub) and [bugzilla-graphql-gateway][bz-gateway].
33+
34+
The latter is required to perform queries to the Bugzilla API. For a local setup,
35+
clone the repo and follow the instruction for starting it prior to launching this
36+
application. You will need to launch the bugzilla-graphql-gateway in a terminal
37+
instance separate from this application in order to run both simultaneously.
3738

3839
### Environment variables
3940

40-
To get started with local development, create a file in the root of the repo named
41-
`.env` with the following content. You can also set the variables in your shell environment.
41+
To get started with local development, create a file in the root of the repo
42+
named `.env` with the following content. You can also set the variables in your
43+
shell environment.
4244

4345
```bash
4446
GITHUB_PERSONAL_API_TOKEN=<your_github_api_token>
4547
BUGZILLA_ENDPOINT=http://localhost:3090
4648
PORT=5000
4749
```
4850

49-
Generate a GitHub personal access token [here](https://github.com/settings/tokens). When prompted
50-
about scopes, access to public repositories is the only one required.
51+
Generate a GitHub personal access token
52+
[here](https://github.com/settings/tokens). When prompted about scopes, access to
53+
public repositories is the only one required.
5154

5255
### Code Organization
5356

5457
- `src/`: source code
5558
- `src/App`: top-level component
56-
- `src/components`: generic components that can be used in any view (not view-specific)
59+
- `src/components`: generic components that can be used in any view (not
60+
view-specific)
5761

5862
### Tasks and Configuration
5963

60-
Building this project uses [Neutrino](https://github.com/mozilla-neutrino/neutrino-dev),
64+
Building this project uses
65+
[Neutrino](https://github.com/mozilla-neutrino/neutrino-dev),
6166
[neutrino-preset-mozilla-frontend-infra](https://github.com/mozilla-frontend-infra/neutrino-preset-mozilla-frontend-infra)
6267

6368
### Testing changes
@@ -70,14 +75,19 @@ Install npm dependencies and start it up:
7075
This will start a local development server on port 5000 (http://localhost:5000).
7176

7277
Additionally if you wish to query the Bugzilla GraphQL API locally instead of
73-
the production instance, you'll need to clone and run
74-
[mozilla-frontend-infra/bugzilla-graphql-gateway](https://github.com/mozilla-frontend-infra/bugzilla-graphql-gateway).
78+
the production instance, you'll need to clone and run an instance of
79+
[bugzilla-graphql-gateway][bz-gateway].
7580

7681
## Adding a project
7782

78-
Codetribute can read from both GitHub and Bugzilla. Regarding the latter, bugs with the `good-first-bug` keyword and mentored bugs will appear in the list.
79-
To add a new entry to the site, create a file `<project-name>.yml` in `src/data` using the [template example](#template-example) as the initial setup.
80-
For inspiration, check out the [Taskcluster](https://github.com/mozilla-frontend-infra/codetribute/blob/main/src/data/taskcluster.yaml) yaml file.
83+
Codetribute can read from both GitHub and Bugzilla. Regarding the latter, bugs
84+
with the `good-first-bug` keyword and mentored bugs will appear in the list.
85+
86+
To add a new entry to the site, create a file `<project-name>.yml` in `src/data`
87+
using the [template example](#template-example) as the initial setup.
88+
For inspiration, check out the [Taskcluster][taskcluster-example] yaml file.
89+
90+
[taskcluster-example]: https://github.com/mozilla-frontend-infra/codetribute/blob/main/src/data/taskcluster.yaml
8191

8292
### Template Example
8393

@@ -96,75 +106,92 @@ introduction: |
96106
97107
## How Do I Get Started?
98108
99-
<General advice - tutorials to learn about the project, development setup, repo to clone if there is only one>
109+
<General advice - tutorials to learn about the project, development setup, repo
110+
to clone if there is only one>
100111
101112
### How Do I Write the Code?
102113
103-
<Summary of the development and patch-submission process -- pull requests? patches on bugzilla? tests?>
114+
<Summary of the development and patch-submission process -- pull requests?
115+
patches on bugzilla? tests?>
104116
105117
## How Do I Get Help?
106118
107-
<Suggestions for how, and when, to ask for help -- mailing lists, irc channels, bug or issue comments, etc.>
119+
<Suggestions for how, and when, to ask for help -- mailing lists, irc channels,
120+
bug or issue comments, etc.>
108121
109122
products:
110123
- <Bugzilla Product>
111124
- <Bugzilla Product>: ['<Bugzilla Component 1>', '<Bugzilla Component 2>']
112-
# to include multiple products or components under a single label in the "Projects" menu, or customize the label:
113-
- label: <Project Label shown in the dropdown, to change/group the label from the default value which is the component name>
125+
# to include multiple products or components under a single label in the
126+
# "Projects" menu, or customize the label:
127+
- label: <Project Label shown in the dropdown, to change/group the label from the
128+
default value which is the component name>
114129
products:
115130
- <Bugzilla Product>
116-
- <Bugzilla Product>: ['<Bugzilla Component 1>', '<Bugzilla Component 2>']
131+
- <Bugzilla Product>: ['<Bugzilla Component 1>', '<Bugzilla Component 2>']
117132
repositories:
118133
- <Organization Name>/<Repository Name> : <Github Label>
119134
- <Organization Name>/<Repository Name> : ['<Github Label 1>', '<Github Label 2>']
120135

121136
```
122-
_Note: The `summary` and `introduction` fields are to be rendered as markdown, allowing for bullet points, links and other simple formatting._
137+
138+
_Note: The `summary` and `introduction` fields are to be rendered as markdown,
139+
allowing for bullet points, links and other simple formatting._
123140

124141
#### Project Icons
125142

126-
Each project should have an icon associated to it to be displayed on the home page. To pick an icon, you could either:
127-
1. Include an icon in `src/images/projectIcons`. The icon should have the same name as its configuration file
128-
and have the image extension set as `.svg`.
129-
2. Pick an icon from [materialdesignicons](https://materialdesignicons.com) and include its name in the `icon` field of the yaml file.
143+
Each project should have an icon associated to it to be displayed on the home
144+
page. To pick an icon, you could either:
145+
146+
1. Include an icon in `src/images/projectIcons`. The icon should have the same
147+
name as its configuration file and have the image extension set as `.svg`.
148+
2. Pick an icon from [materialdesignicons](https://materialdesignicons.com) and
149+
include its name in the `icon` field of the yaml file.
130150

131151
### Best Practices
132152

133153
Below is information about how to get a bug or issue appear on the site.
134154

135155
#### GitHub
136156

137-
Codetribute will read the `repositories` field from the yaml file and will take extract the issues that match the repository labels.
157+
Codetribute will read the `repositories` field from the yaml file and will take
158+
extract the issues that match the repository labels.
138159

139160
_Example: Display servo issues tagged with the label *E-easy*_
140161

141162
```yaml
142-
repositories:
163+
repositories:
143164
- servo/servo: E-easy
144165
```
145166

146-
_Example: Display telemetry-dashboard issues tagged with either the *mentored* or *good first issue* label_
167+
_Example: Display telemetry-dashboard issues tagged with either the *mentored* or
168+
*good first issue* label_
147169

148170
```yaml
149171
repositories:
150172
- mozilla/telemetry-dashboard: ['mentored', 'good first issue']
151173
```
152174

153-
For the `/languages/:language` route, we get issues from repositories whose primary language is the language selected & tagged with labels specified in yaml files
154-
or any issues across Github repositories with the language lowercased as the label (e.g., `javascript`).
175+
For the `/languages/:language` route, we get issues from repositories whose
176+
primary language is the language selected & tagged with labels specified in yaml
177+
files or any issues across Github repositories with the language lowercased as
178+
the label (e.g., `javascript`).
155179

156180
#### Bugzilla
157181

158-
Codetribute will read the `products` field from the yaml file and will extract bugs with keyword `good-first-bug`. Here are some ways to display bugs on the site.
182+
Codetribute will read the `products` field from the yaml file and will extract
183+
bugs with keyword `good-first-bug`. Here are some ways to display bugs on the
184+
site.
159185

160186
_Example: Display all Taskcluster bugs with keyword *good-first-bug*_
161187

162188
```yaml
163-
products:
189+
products:
164190
- Taskcluster
165191
```
166192

167-
_Example: Display Taskcluster bugs that are under either the Tools component or the Queue component with keyword *good-first-bug*_
193+
_Example: Display Taskcluster bugs that are under either the Tools component or
194+
the Queue component with keyword *good-first-bug*_
168195

169196
```yaml
170197
products:
@@ -178,7 +205,14 @@ products:
178205
## Contributing
179206

180207
This project welcomes contributors. If you are interested, please feel free to
181-
join [the mailing list](https://mail.mozilla.org/listinfo/bugsahoy-devel)
208+
join [#codetribute:mozilla.org][codetribute-matrix] on Mozilla Matrix server.
209+
210+
If you're new to Matrix, you can [read our how-to guide][matrix-howto] on Mozilla
211+
Wiki.
182212

213+
<!-- links -->
214+
[bz-gateway]: https://github.com/mozilla-frontend-infra/bugzilla-graphql-gateway
215+
[matrix-howto]: https://wiki.mozilla.org/Matrix:Join
216+
[codetribute-matrix]: https://matrix.to/#/#codetribute:mozilla.org
183217
[snyk-image]: https://snyk.io/test/github/mozilla-frontend-infra/codetribute/badge.svg
184218
[snyk-url]: https://snyk.io/test/github/mozilla-frontend-infra/codetribute?targetFile=package.json

0 commit comments

Comments
 (0)