You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+69-2Lines changed: 69 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -314,10 +314,77 @@ Type of change labels are only used for pull requests. They give information abo
314
314
315
315
## CONTRIBUTING.md
316
316
317
+
Every GitHub repository must have a CONTRIBUTING.md file. It allows maintainers to expose the project's context and contributing guidelines.
318
+
319
+
### Before I Get Started
320
+
321
+
A good CONTRIBUTING.md should make any contributor feel comfortable to get his hands on the project. Therefore, it is imperative to give an overview of your project. The first thing that should appear in this file is a `Before I Get Started` section. This section aims at exposing the project's scope, its files organisation, dependencies and information about design.
322
+
323
+
First, the scope should be about how the project was defined, meaning what kind of project you have to deal with. Is it a regular application? Is it an SDK? Is it using a specific technology? etc.
324
+
325
+
The section should desribe briefly the files organisation to help the contributor understand where to look for what he wants or where to add a file.
326
+
327
+
Then, it should explain to the contributor the dependencies the project has. It means that is should describe all external dependencies that are imported into the project, but also if the project is meant to be used by others.
328
+
329
+
Finally, it should give some information about the design decisions and link to the `Architectural Decision Records` section of your project.
330
+
331
+
### How To Contribute
332
+
333
+
Once the context and scope of the projects are clear, the reader should have information about how to contribute to the project, depending on the type of task he wants to do. Each type of tasks needs to have a context, some information about what to do before that type of thask and finally how to contribute to such task.
334
+
335
+
There are three types of contribution possible: bug report, suggesting a new feature, suggesting a technical enhancement.
336
+
337
+
338
+
#### Before Contributing
339
+
340
+
Before anything else a contributor must be told to do at least two things :
341
+
342
+
- Determine which repository the task should be done in
343
+
- Check if a an issue is already open about this task
344
+
345
+
#### Contributing
346
+
347
+
For any contribution to be efficient, guidelines need to be set in order to always have the needed informations.
348
+
349
+
A contribution should always be tracked as a GitHub issue. Those issues should be created using a [Template](https://github.com/ExcelsiorFamily/github-guidelines/blob/master/Templates/ISSUE_TEMPLATE/).
350
+
351
+
#### Pull Requests
352
+
353
+
Contributors should be informed and guided by templates on how to create pull requests for their work. See [Pull Requests Template](#issue--pull-request-template) section for more information about this.
354
+
355
+
### Styleguides
356
+
357
+
The Styleguides section should give information about the project's overall styleguide. This means it should give styling recommendations about :
358
+
- Git commits
359
+
- Coding
360
+
- Documentation
361
+
362
+
It should contain clear guidelines and link to more complete documention and/or examples.
363
+
364
+
365
+
### Issue And Pull Request Labels
366
+
367
+
The final section to be in the CONTRIBUTING.md should be about issues and pull requests labels to allow anyone to use them properly when contributing but also to identify them properly when looking for information. It should be stored inside a table for more readability.
368
+
369
+
370
+
**Preferred:**
371
+
```markdown
372
+
| Label name | Description |
373
+
| --- | --- |
374
+
| `Type: Feature` | The issue is the development of a new feature of your project |
375
+
| `Type: Bug` | The issue is an identified bug that needs to be fixed |
376
+
```
377
+
378
+
**Not Preferred:**
379
+
```markdown
380
+
- `Feature`: new feature of a project
381
+
- `Bugs`: identified bug that needs to be fixed
382
+
```
383
+
384
+
317
385
## Resources
318
386
319
387
-[The Official raywenderlich.com Swift Style Guide](https://github.com/raywenderlich/swift-style-guide/blob/master/README.markdown).
0 commit comments