diff --git a/doc/contributions/introduction.md b/doc/contributions/introduction.md new file mode 100644 index 00000000..8ddd038c --- /dev/null +++ b/doc/contributions/introduction.md @@ -0,0 +1,77 @@ +# Introduction + +## Git and Github + +We recommend you to get familiar with the +[git](https://guides.github.com/introduction/git-handbook) and +[Github](https://guides.github.com) workflows before posting any changes. + +### Set up in a nut shell + +The following steps describe the process in a nut shell to provide you a basic +template: + +* Create an account on [GitHub](https://github.com) +* Fork the [shadow repository](https://github.com/shadow-maint/shadow) +* Clone the shadow repository + +``` +git clone https://github.com/shadow-maint/shadow.git +``` + +* Add your fork as an extra remote + +``` +git remote add $ghusername git@github.com:$ghusername/shadow.git +``` + +* Setup your name contact e-mail that you want to use for the development + +``` +git config user.name "John Smith" +git config user.email "john.smith@home.com" +``` + +**Note**: this will setup the user information only for this repository. You +can also add `--global` switch to the `git config` command to setup these +options globally and thus making them available in every git repository. + +* Create a working branch + +``` +git checkout -b my-changes +``` + +* Commit changes + +``` +vim change-what-you-need +git commit -s +``` + +Check +[the kernel patches guide](https://www.kernel.org/doc/html/v4.14/process/submitting-patches.html#describe-your-changes) +to get an idea on how to write a good commit message. + +* Push your changes to your GitHub repository + +``` +git push $ghusername my-changes --force +``` + +* Open a Pull Request against shadow project by clicking on the link provided +in the output of the previous step + +* Make sure that all Continuous Integration checks are green and wait review + +## Internal guidelines + +Additionally, you should also check the following internal guidelines to +understand the project's development model: + +* [Build & install](build_install.md) +* [Coding style](coding_style.md) +* [Tests](tests.md) +* [Continuous Integration](CI.md) +* [Releases](releases.md) +* [License](license.md)