From 68a02402816b2af748231c3f423fffd688b3b108 Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Fri, 9 Sep 2016 16:44:42 +0800 Subject: Add CONTRIBUTING.md to guide contributions. This contribution guidelines largely based on the guidelines of the following two projects: * [bootstrap](https://github.com/twbs/bootstrap) * [caffe](https://github.com/BVLC/caffe) Thanks them! --- CONTRIBUTING.md | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4936447 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,130 @@ +Contributing +================ + +Issues +-------- +The GitHub Issues is used to track the development progress, issues, +bugs, feature requests. + +However, the installation and usage related problems should NOT go to +the Issues, and the Wiki (TODO) or mailing lists (TODO) can be adopted +for those purposes. + + +Pull Requests +---------------- +So you already have a patch, an improvement, or even a new feature? +It's GREAT! And let's have it! + +To make a nice pull request (PR), the following things should be noted: + +* Please adhere to the [Code Guidelines](#code-guidelines) used + throughout the project, and other requirements (e.g., test). +* The PR should generally go to the ``master`` branch; + the ``gh-pages`` branch should be generated from the documentation + source files. +* It is recommended to use *topic/feature branch* for a PR. +* A PR should focus on one clear thing, so making multiple smaller PRs + is better than making one large PR. +* A PR should be made of many commits where appropriate, with each commit + be a small, atomic change representing one step in the development. + +The following procedure is the recommended way to get your work +incorporated in the project: + +1. [Fork](https://help.github.com/fork-a-repo/) the project, clone your + fork, and configure the remotes: + + ```sh + # Clone your fork of the repo into the current directory + git clone https://github.com//fg21sim.git + # Navigate to the newly cloned directory + cd fg21sim + # Assign the original repo to a remote called "upstream" + git remote add upstream https://github.com/liweitianux/fg21sim.git + ``` + +2. If you cloned a while ago, get the latest changes from upstream: + + ```sh + git checkout master + git pull upstream master + ``` + +3. Create a new topic branch (off the main project development branch) + to contain your feature, change, or fix: + + ```sh + git checkout -b + ``` + +4. Commit your changes in logical chunks. Please adhere to these + [git commit message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). + Use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase) + feature to tidy up your commits before making them public. + +5. Locally merge (or rebase) the upstream development branch into your + topic branch: + + ```sh + git pull [--rebase] upstream master + ``` + +6. Push your topic branch up to your fork: + + ```sh + git push origin + ``` + +7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) + with a clear title and description against the `master` branch. + + +Code Guidelines +------------------- + +### Python + +Adhere to the [PEP 8](https://www.python.org/dev/peps/pep-0008) code style +and also take a look at this +[code style](http://docs.python-guide.org/en/latest/writing/style/) from +[The Hitchhiker's Guide to Python](http://docs.python-guide.org/). + +It is strongly recommended to check the code with [``flake8``](https://gitlab.com/pycqa/flake8) which wraps ``pep8``, ``pyflakes``, and other checkers together. +So make sure it is installed before carrying on. + +* Vim users: + + 1. Recommend to install the [``spf13-vim``](https://github.com/spf13/spf13-vim) + configuration distribution, which already integrates the great + [``syntastic``](https://github.com/scrooloose/syntastic) syntax checking + plugin; + + 2. Add the following recommended settings to ``~/.vimrc.local``: + + ```vim + let g:syntastic_always_populate_loc_list = 1 + let g:syntastic_auto_loc_list = 1 + let g:syntastic_check_on_open = 1 + let g:syntastic_check_on_wq = 0 + ``` + 3. Check syntax manually with command ``:SyntasticCheck``, then browse + the found errors/warnings in a subwindow with command ``:Errors``, + and jump using commands ``:lnext`` and ``:lprev``. + +* Emacs users: + + 1. The [``spacemacs``](https://github.com/syl20bnr/spacemacs) is a great + configuration distribution to use. + + 2. Enable the [``syntax-checking``](https://github.com/syl20bnr/spacemacs/blob/master/layers/syntax-checking/README.org) layer, + and you're ready to go. + + +License +------- +By contributing your code, you agree to license your contribution under +the [MIT License](LICENSE). + +By contributing to the documentation, you agree to license your contribution +under the [Creative Commons Attribution 3.0 license](https://creativecommons.org/licenses/by/3.0/us/deed.en_US). -- cgit v1.2.2