Skip to content

Commit

Permalink
Add contributing guidelines.
Browse files Browse the repository at this point in the history
Fixes #506.
  • Loading branch information
vgvassilev committed Jan 20, 2023
1 parent 4e7358a commit cb3f2fd
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 1 deletion.
68 changes: 68 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
## Overview <!-- omit in toc -->

Thank you for investing your time in contributing to our project! There are
numbers of ways to contribute to the project and we appreciate all of them. If
you like the project please give Clad a star.

Any contribution to open source makes a difference!

## Are you new to open source, git or GitHub?

To get an overview of the project, read the [README](README.md). Here are some
resources to help you get started with open source contributions:

- [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git)
- [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow)
- [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)

## Are you a contributor looking for a challenging summer project?

Various opportunities such as information about google summer of code is
generally published on [Clad's Wiki page](https://github.com/vgvassilev/clad/wiki).
If you have used Clad and you have particular project proposal please reach out.

## Ways to contribute

### Submit a bug report

If something does not seem right [search if an issue already exists](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments) in [Clads issue tracker](https://github.com/vgvassilev/clad/issues). If a related issue doesn't exist, you can open a new issue using a relevant [issue form](https://github.com/vgvassilev/clad/issues/new/choose).

### Good first issues

Some issues have been marked as ["good first issues"](https://github.com/vgvassilev/clad/labels/good%20first%20issue).
These are intended to be a good place to start contributing.

### Write documentation

Documentation is critical for any open source project, especially for complex
projects such as Clad. We have our documentation in the repository which is then
rendered in the [clad.readthedocs](https://clad.readthedocs.io) website.
Documentation modifications happen by proposing a pull request.

## Creating a successfull pull request

To propose a code modification we use the pull requests. Pull requests which
review quickly and successfully share several common traits:

- Sharp -- intends to fix a concrete problem. Usually the pull request addresses
has an already opened issue;
- Atomic -- has one or more commits that can be reverted without any unwanted
side effects or regressions, aside from what you’d expect based on its
message. [More on atomic commits in git](https://www.aleksandrhovhannisyan.com/blog/atomic-git-commits/).
- Descriptive -- has a good description in what is being solved. This
information is usually published as part of the pull request description and
as part of the commit message. Writing good commit messages are critical. More
[here](https://github.blog/2022-06-30-write-better-commits-build-better-projects/)
and [here](https://cbea.ms/git-commit/).
- Tested -- has a set of tests making sure that the issue will not resurface
without a notice. Usually
- Documented -- has good amount of code comment. The test cases are also a good
source of documentation. [Here](https://stackoverflow.blog/2021/12/23/best-practices-for-writing-code-comments/)
is a guideline about how write good code comments. [Here](https://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered)
are examples of what *not* to write as a code comment.

### Developer Documentation

We have documented several useful hints that usually help when addressing issues
as they come during developement time in our [developer documentation](https://clad.readthedocs.io/en/latest/user/DevelopersDocumentation.html).
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -375,4 +375,7 @@ Please see License.txt for further information.

## How to Contribute

We are always looking for improvements to the tool, as such open-source developers are greatly appreciated! If you are interested in getting started with contributing to clad, make sure you checkout our [contribution guide]().
We are always looking for improvements to the tool, as such open-source
developers are greatly appreciated! If you are interested in getting started
with contributing to clad, make sure you checkout our
[contribution guide](CONTRIBUTING.md).

0 comments on commit cb3f2fd

Please sign in to comment.