Skip to content

Commit 06b2b4e

Browse files
Edit Contributing ReadMe (#1323)
1 parent 3a92683 commit 06b2b4e

File tree

1 file changed

+59
-64
lines changed

1 file changed

+59
-64
lines changed

CONTRIBUTING.md

Lines changed: 59 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,140 @@
1-
# How to contribute
1+
# How to Contribute
2+
3+
Welcome to OCaml.org's contributing guide. Thank you for taking the time to read it! Your help with OCaml.org is extremely welcome. We are particularly motivated to support new contributors and people who are looking to learn and develop their skills. If you get stuck, please don’t hesitate to [ask questions on discuss](https://discuss.ocaml.org/) or [raise an issue](https://github.com/ocaml/ocaml.org/issues/new).
24

3-
Welcome to Ocaml.org's contributing guide.
5+
This guide documents the best way to contribute to the project when adding things listed below in Contributing Content. If you're looking for a guide on how to setup the project and suggest a change to the code, you can refer to our [HACKING](./HACKING.md) guide, which will also give instructions on how to rebuild the website, if necessary, when making changes.
46

5-
This guide documents the best way to contribute to the project. If you're looking for a guide on how to setup the project and submit a contribution, you can refer to our [HACKING](./HACKING.md) guide.
7+
- **Good First Issues**: if you are either new to the repository or still getting started with OCaml in general, issues marked as a `good first issue` are ideal.
8+
- **Suggesting Changes**: most of the site content is stored in the `data` directory as Markdown or YAML. To suggest a change or update this content, you can edit those files directly and rebuild the website, detailed in the [HACKING](./HACKING.md) guide. This will promote the content into their `.ml` counterparts. If you would like to suggest entirely new website content or code, please [open an issue](https://github.com/ocaml/ocaml.org/issues) to discuss it first.
9+
- **Implementing Pages**: most pages are implemented in `src/ocamlorg_frontend/pages` using the [.eml templating preprocessor](https://aantron.github.io/dream/#templates). This is mixture or OCaml and HTML.
610

7-
Thank you for taking the time to read the contributing guide. Your help with Ocaml.org is extremely welcome. If you get stuck, please don’t hesitate to [ask questions on discuss](https://discuss.ocaml.org/) or [raise an issue](https://github.com/ocaml/ocaml.org/issues/new).
11+
## Reporting Bugs
812

9-
We are particularly motivated to support new contributors and people who are looking to learn and develop their skills.
10-
11-
- **Good First Issues**: issues marked as a `good first issue` are ideal for people who are either new to the repository or still getting started with OCaml in general.
12-
- **Fixing or Suggesting Content**: most of the content for the site is stored in the `data` directory as markdown or yaml. To fix this content you can edit those files directly and rebuild the website. This will promote the content into their `.ml` counterparts. If you would like to suggest entirely new content please open an issue to discuss it first.
13-
- **Implementing pages**: most pages are implemented in `src/ocamlorg_frontend/pages` using the [.eml templating preprocessor](https://aantron.github.io/dream/#templates). This is mixture or OCaml and HTML.
14-
- **Translating content or pages**: for now we are focusing on getting OCaml.org ready for launch and will add more information about translation later.
15-
16-
## Reporting bugs
17-
18-
We use GitHub issues to track all bugs and feature requests; feel free to open an issue over [here](https://github.com/ocaml/ocaml.org/issues/new) if you have found a bug or wish to see a feature implemented.
13+
We use GitHub issues to track all bugs and feature requests. Feel free to open an issue over [here](https://github.com/ocaml/ocaml.org/issues/new) if you have found a bug or wish to see a feature implemented.
1914

2015
Please include images and browser-specific information if the bug is related to some visual aspect of the site. This tends to make it easier to reproduce and fix.
2116

22-
## Contributing content
17+
## Contributing Content
2318

24-
Here's a list of the content that is community driven and how you can contribute to it:
19+
We've provided a list of community-driven content below. When adding content to any of these sections, it's best to fork the repo, add your file, and open a pull request (PR).
2520

26-
- [The blog](#content-blog)
27-
- [The job board](#content-job)
28-
- [The success stories](#content-success-story)
29-
- [The academic and industrial users](#content-user)
30-
- [The OCaml books](#content-book)
31-
- [The community events](#content-event)
32-
- [The featured packages](#content-package)
21+
- [The Blog](#content-blog)
22+
- [Job Board](#content-job)
23+
- [Success Stories](#content-success-story)
24+
- [Academic and Industrial Users](#content-user)
25+
- [OCaml Books](#content-book)
26+
- [Community Events](#content-event)
27+
- [Featured Packages](#content-package)
3328
- [The OCaml Changelog](#content-package)
3429

35-
### <a name="content-blog"></a> Add an RSS feed to the blog
30+
The following sections give more details on how to contribute to each.
31+
32+
### <a name="content-blog"></a> Add an RSS Feed to the Blog
3633

3734
> Contribute to the [OCaml Blog](https://ocaml.org/blog).
3835
3936
The blog is composed of two type of content:
4037

41-
- Community blog posts fetched from RSS feeds.
42-
- Original blog posts.
38+
- Community blog posts fetched from RSS feeds
39+
- Original blog posts
4340

4441
If you write about OCaml and have an RSS or Atom feed, you can add your feed to [`data/planet-sources.yml`](data/planet-sources.yml).
4542

46-
When compiling, the entries of the feed will be downloaded and markdown files for each item of the feed will be created in [`data/rss`](data/rss/). For instance: [building-ahrefs-codebase-with-melange.md`](data/rss/ahrefs/building-ahrefs-codebase-with-melange.md).
43+
When compiling, the feed entries will be downloaded, and Markdown files for each item will be created in [`data/rss`](data/rss/). For instance: [building-ahrefs-codebase-with-melange.md`](data/rss/ahrefs/building-ahrefs-codebase-with-melange.md).
4744

4845
Please, make sure your feed only contains articles about OCaml.
4946

50-
To contribute an original blog post (refer to as News on the site), you can add a new markdown file in [`data/news/`](/data/news/). For instance: [`multicore-2021-12.md`](data/news/multicore/multicore-2021-12.md).
47+
To contribute an original blog post (under [OCaml Community Blog](https://ocaml.org/blog) on the site), you can add a new Markdown file in [`/data/planet/ocamlorg`](/data/planet/ocamlorg/). For instance: [`about-utop.md`](data/planet/ocamlorg/about-utop.md).
5148

52-
If you want to re-publish an blog post you previously posted on Discuss, you can fetch it using Discuss API:
49+
If you want to republish an blog post you previously posted on Discuss, you can fetch it using the Discuss API:
5350

5451
```
5552
curl https://discuss.ocaml.org/raw/<id> > data/news/<fname>.md
5653
```
5754

5855
Where `<id>` is the ID of the Discuss post.
5956

60-
### <a name="content-job"></a> Add an entry to the job board
57+
### <a name="content-job"></a> Add an Entry to the Job Board
6158

6259
> Contribute to the [Job Board](https://ocaml.org/jobs).
6360
6461
The job board displays OCaml job opportunities.
6562

6663
To add a new entry to the job board, you can add it to [`data/jobs.yml`](data/jobs.yml).
6764

68-
Please make sure that the job involves mostly writing OCaml. Contributions to add jobs unrelated to OCaml, or where OCaml is a negligible part of the job won't be accepted.
65+
Please make sure that the job involves mostly writing OCaml. Contributions to add jobs unrelated to OCaml, or where OCaml is a negligible part of the job, won't be accepted.
6966

70-
If you notice that a job opportunity is outdated (e.g. already fulfilled, or not opened anymore), PRs to remove it are welcome as well.
67+
If you notice that a job opportunity is outdated (e.g., already fulfilled or not open anymore), PRs to remove it are welcome as well.
7168

72-
### <a name="content-success-story"></a> Add a success story
69+
### <a name="content-success-story"></a> Add a Success Story
7370

7471
> Contribute to the [Success Stories](https://ocaml.org/success-stories).
7572
76-
You can contribute a new success story by adding a markdown file in [data/success_stories/](data/success_stories/). For instance: [janestreet.md](data/success_stories/en/janestreet.md).
73+
You can contribute a new success story by adding a Markdown file in [data/success_stories/](data/success_stories/). For instance: [janestreet.md](data/success_stories/en/janestreet.md).
7774

7875
The success stories should be structured in the following way:
7976

80-
- An overview of your company.
81-
- The challenge you faced and solved.
82-
- The solution you implemented, which should describe the role OCaml played in solving the challenge.
83-
- A post-mortem describing the results you had after implementing the solution.
77+
- An overview of your company
78+
- The challenge you faced and solved
79+
- The solution you implemented, which should describe the role OCaml played in solving the challenge
80+
- A post-mortem describing the results you had after implementing the solution
8481

8582
You can read [Ahref's success story](https://ocaml.org/success-stories/peta-byte-scale-web-crawler) for an examplary success story.
8683

87-
### <a name="content-user"></a> Add an academic or industrial user
84+
### <a name="content-user"></a> Add an Academic or Industrial User
8885

8986
> Contribute to the [Academic Users](https://ocaml.org/academic-users) and [Industrial Users](https://ocaml.org/industrial-users).
9087
91-
You can add a new academic user by creating a new markdown file in [data/industrial_users/](data/industrial_users/). For instance: [cryptosense.md](data/industrial_users/en/cryptosense.md).
88+
You can add a new academic user by creating a new Markdown file in [data/industrial_users/](data/industrial_users/). For instance: [cryptosense.md](data/industrial_users/en/cryptosense.md).
9289

93-
You can add a new industrial user by creating a new markdown file in [data/academic_institutions/](data/academic_institutions). For instance: [cornell.md](data/academic_institutions/en/cornell.md).
90+
You can add a new industrial user by creating a new Markdown file in [data/academic_institutions/](data/academic_institutions). For instance: [cornell.md](data/academic_institutions/en/cornell.md).
9491

95-
### <a name="content-book"></a> Add a book
92+
### <a name="content-book"></a> Add a Book
9693

9794
> Contribute to the [OCaml Books](https://ocaml.org/books).
9895
99-
You can add a new OCaml book by creating a new markdown file in [data/books/](data/books/). For instance: [ocaml-from-the-very-beginning.md](data/industrial_users/en/ocaml-from-the-very-beginning.md).
96+
You can add a new OCaml book by creating a new Markdown file in [data/books/](data/books/). For instance: [ocaml-from-the-very-beginning.md](data/industrial_users/en/ocaml-from-the-very-beginning.md).
10097

101-
### <a name="content-event"></a> Add an event
98+
### <a name="content-event"></a> Add an Event
10299

103100
> Contribute to the [Community Events](https://ocaml.org/community).
104101
105-
You can add a new community event by creating a new markdown file in [data/meetups.yml](data/meetups.yml).
102+
You can add a new community event by creating a new Markdown file in [data/meetups.yml](data/meetups.yml).
106103

107-
### <a name="content-package"></a> Add a featured packages
104+
### <a name="content-package"></a> Add a Featured Package
108105

109106
> Contribute to the [Featured Packages](https://ocaml.org/packages).
110107
111-
To update the list of Featured Packages in the Packages page, you can update [data/packages.yml](data/packages.yml)
108+
To update the list of Featured Packages on the Packages page, you can update [data/packages.yml](data/packages.yml)
112109

113110
### <a name="ocaml-changelog"></a> OCaml Changelog
114111

115112
The [OCaml Changelog](https://ocaml.org/changelog) is a feed of the latest releases and feature highlights for official OCaml projects. As of today, it features the following projects:
116113

117-
- [The OCaml compiler](https://github.com/ocaml/ocaml)
118-
- [The OCaml Platform tools](https://ocaml.org/docs/platform)
119-
- [Ppxlib](https://github.com/ocaml-ppx/ppxlib)
120-
- [OMP](https://github.com/ocaml-ppx/ocaml-migrate-parsetree) (that has been deprecated in favour of Ppxlib)
114+
- [The OCaml Compiler](https://github.com/ocaml/ocaml)
115+
- [OCaml Platform Tools](https://ocaml.org/docs/platform)
121116

122-
Before a release of the above tools land on the opam-repository, the release manager of the project opens a Pull Request on OCaml.org with an announcement for the release.
117+
Before a release of the above tools land on the `opam-repository`, the release manager of the project opens a pull request (PR) on OCaml.org with an announcement for the release.
123118

124-
The announcement is proofread by the OCaml.org team, who will also suggest highlighting features from the release.
119+
The announcement is proofread by the OCaml.org team, who will also suggest highlighting release features.
125120

126-
To contribute to a new release announcement or feature highlight, add a markdown file in `data/changelog/`.
121+
To contribute to a new release announcement or feature highlight, add a Markdown file in `data/changelog/`.
127122

128-
## Git and GitHub workflow
123+
## Git and GitHub Workflow
129124

130125
The preferred workflow for contributing to a repository is to fork the main repository on GitHub, clone, and develop on a new branch.
131126

132127
If you aren't familiar with how to work with Github or would like to learn it, here is [a great tutorial](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github).
133128

134-
Feel free to use any approach while creating a pull request. Here are a few suggestions from the dev team:
129+
Feel free to use any approach while creating a PR. Here are a few suggestions from the dev team:
135130

136-
- If you are not sure whether your changes will be accepted or want to discuss the method before delving into it, please create an issue and ask it.
137-
- Clone the repo locally (or continue editing directly in github if the change is small). Checkout
131+
- If you are not sure whether your changes will be accepted or want to discuss the method before delving into it, please create an issue and ask.
132+
- Clone the repo locally (or continue editing directly in GitHub if the change is small). Checkout
138133
out the branch that you created.
139-
- Create a draft pull request with a small initial commit. Here's how you can [create a draft pull request.](https://github.blog/2019-02-14-introducing-draft-pull-requests/)
140-
- Continue developing, feel free to ask questions in the PR, if you run into obstacles or uncertainty as you make changes
141-
- Review your implementation according to the checks noted in the PR template
142-
- Once you feel your branch is ready, change the PR status to "ready to review"
143-
- Consult the tasks noted in the PR template
144-
- When merging, consider cleaning up the commit body
134+
- Create a draft PR with a small initial commit. Here's how you can [create a draft pull request.](https://github.blog/2019-02-14-introducing-draft-pull-requests/).
135+
- Continue developing and feel free to ask questions in the PR if you run into obstacles or uncertainty as you make changes
136+
- Review your implementation according to the checks noted in the PR template.
137+
- Once you feel your branch is ready, change the PR status to "ready to review."
138+
- Consult the tasks noted in the PR template.
139+
- When merging, consider cleaning up the commit body.
145140
- Close any issues that were addressed by this PR.

0 commit comments

Comments
 (0)