Skip to content

Contributing guide for GSoC students

Avinash Sonawane edited this page Apr 4, 2017 · 22 revisions

This is a quick-start guide for GSoC students. This is not meant to be a git/Github tutorial.

git Setup

You only need to do this once.

  1. Tell git your name:

    git config --global user.name "<Firstname> <Lastname>"

  2. Tell git your email address:

    git config --global user.email <[email protected]>

wget2 Setup

You only need to do this once.

  1. Fork the upstream via Github interface

  2. Clone your fork:

    git clone https://github.com/<your username>/wget2.git

  3. Add upstream repository:

    git remote add upstream https://github.com/rockdaboot/wget2.git

  4. Build wget2 as explained in README

    Sample build:

    ./bootstrap
    ./configure --enable-fsanitize-msan --enable-fsanitize-tsan --enable-fsanitize-ubsan --enable-manywarnings
    make clean
    make check

Development

You'll do this periodically. :)

  1. Pick an issue from Issues or

  2. Create new issue if you want to add a new feature

  3. For said issue/feature create a new branch:

    git checkout -b <branch_name>

  4. Make your changes using IDE/text editor of your choice. We use the kernel coding style here, and so you should. Please, try to stick to it.

  5. git add and git commit your changes:

    git add <modified_file>
    git commit <modified_file>

  6. Push your changes to your fork:

    git push origin <branch_name>

  7. Create a pull request to merge your changes with the upstream

  8. Wait for review.

  9. Repeat steps 4, 5 & 6 if more changes are requested

  10. Delete the local branch and remote branch once your changes get merged:

    git branch -d <branch_name>
    git push origin -d <branch_name>

  11. Go to step 1

Syncing Your Fork

You need to do this periodically.

  1. Fetch code from upstream:

    git fetch upstream

  2. Switch to master branch:

    git checkout master

  3. Merge the code fetched from upstream:

    git merge upstream/master

  4. Push the merged code to your fork:

    git push origin master

Documentation