{"action":"created","comment":{"url":"https://api.github.com/repos/quattor/quattor.github.com/pulls/comments/55586955","id":55586955,"diff_hunk":"@@ -0,0 +1,118 @@\n+---\n+layout: article\n+title: Quattor development basics\n+author: Stijn De Weirdt\n+category: documentation\n+---\n+\n+[devel_unittests]: {% post_url 2016-03-09-development-unittests %}\n+\n+# git / github\n+\n+All quattor git repositories are part of the [quattor organisation on GitHub][quattor_gh]\n+\n+[quattor_gh]: https://github.com/quattor\n+\n+\n+## Prerequisites\n+\n+1. An account on [GitHub][github]\n+2. Join the quattor organisation and `developer` team \n+ * TODO: this is how [current admin can add/invite new people][join_quattor]\n+3. Join the [`quattor-devel` mailing list][quattor_devel_ml]\n+\n+[github]: https://github.com\n+[join_quattor]: https://help.github.com/articles/adding-or-inviting-members-to-a-team-in-an-organization/\n+[quattor_devel_ml]: https://lists.sourceforge.net/lists/listinfo/quattor-devel\n+\n+### Getting started with git\n+\n+TODO: add urls to git tutorials\n+\n+## Workflow\n+\n+1. Fork the repository you want to work on\n+2. Clone the repository locally using the `ssh` URL\n+ * Your fork is known as `origin`\n+3. Add the `upstream` repository using the `https` URL\n+4. Start with a new branch\n+ * Do not work in `master` branch\n+5. Make modifications, add and commit them\n+ * Try to use meaningfull messages\n+  * For the the `configuration-modules-core` (and other `configuration-modules`) repository, set the\n+    component name in the commit message when working on more then one component in same branch.\n+6. Push you changes to your fork (i.e. to `origin`)\n+ * Do not push to `upstream`\n+7. Run the unittests\n+ * Add new ones to cover your changes (or refine existing ones)\n+8. Open a pull request (PR)\n+ * Meaningful title; title will be part of the relase notes\n+  * For `configuration-modules` repository: start the title with the component that is being modified\n+   * When more then one component is modified, describe the general work in the title;\n+     the commit messages should have the component names.\n+ * Set `milestone` (i.e. the release you want this merged in)\n+  * Set a realistic milestone, e.g. if the PR is not urgent or not finished\n+    or you have no time to follow up, you might want to pick later milestone.","path":"_posts/2016-03-08-development-basics.md","position":55,"original_position":55,"commit_id":"d9567635dcfb23701c76bb979bc1f31654a7055f","original_commit_id":"d9567635dcfb23701c76bb979bc1f31654a7055f","user":{"login":"jouvin","id":1511937,"avatar_url":"https://avatars.githubusercontent.com/u/1511937?v=3","gravatar_id":"","url":"https://api.github.com/users/jouvin","html_url":"https://github.com/jouvin","followers_url":"https://api.github.com/users/jouvin/followers","following_url":"https://api.github.com/users/jouvin/following{/other_user}","gists_url":"https://api.github.com/users/jouvin/gists{/gist_id}","starred_url":"https://api.github.com/users/jouvin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jouvin/subscriptions","organizations_url":"https://api.github.com/users/jouvin/orgs","repos_url":"https://api.github.com/users/jouvin/repos","events_url":"https://api.github.com/users/jouvin/events{/privacy}","received_events_url":"https://api.github.com/users/jouvin/received_events","type":"User","site_admin":false},"body":"**a** later milestone","created_at":"2016-03-09T20:53:01Z","updated_at":"2016-03-09T20:53:01Z","html_url":"https://github.com/quattor/quattor.github.com/pull/166#discussion_r55586955","pull_request_url":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166","_links":{"self":{"href":"https://api.github.com/repos/quattor/quattor.github.com/pulls/comments/55586955"},"html":{"href":"https://github.com/quattor/quattor.github.com/pull/166#discussion_r55586955"},"pull_request":{"href":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166"}}},"pull_request":{"url":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166","id":62279762,"html_url":"https://github.com/quattor/quattor.github.com/pull/166","diff_url":"https://github.com/quattor/quattor.github.com/pull/166.diff","patch_url":"https://github.com/quattor/quattor.github.com/pull/166.patch","issue_url":"https://api.github.com/repos/quattor/quattor.github.com/issues/166","number":166,"state":"open","locked":false,"title":"Posts on quattor development","user":{"login":"stdweird","id":1517606,"avatar_url":"https://avatars.githubusercontent.com/u/1517606?v=3","gravatar_id":"","url":"https://api.github.com/users/stdweird","html_url":"https://github.com/stdweird","followers_url":"https://api.github.com/users/stdweird/followers","following_url":"https://api.github.com/users/stdweird/following{/other_user}","gists_url":"https://api.github.com/users/stdweird/gists{/gist_id}","starred_url":"https://api.github.com/users/stdweird/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stdweird/subscriptions","organizations_url":"https://api.github.com/users/stdweird/orgs","repos_url":"https://api.github.com/users/stdweird/repos","events_url":"https://api.github.com/users/stdweird/events{/privacy}","received_events_url":"https://api.github.com/users/stdweird/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-03-09T19:12:09Z","updated_at":"2016-03-09T20:53:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9627c74889a083da34ef1d92ff1481ac46a0993e","assignee":null,"milestone":{"url":"https://api.github.com/repos/quattor/quattor.github.com/milestones/2","html_url":"https://github.com/quattor/quattor.github.com/milestones/16.4","labels_url":"https://api.github.com/repos/quattor/quattor.github.com/milestones/2/labels","id":1383529,"number":2,"title":"16.4","description":null,"creator":{"login":"jrha","id":323309,"avatar_url":"https://avatars.githubusercontent.com/u/323309?v=3","gravatar_id":"","url":"https://api.github.com/users/jrha","html_url":"https://github.com/jrha","followers_url":"https://api.github.com/users/jrha/followers","following_url":"https://api.github.com/users/jrha/following{/other_user}","gists_url":"https://api.github.com/users/jrha/gists{/gist_id}","starred_url":"https://api.github.com/users/jrha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrha/subscriptions","organizations_url":"https://api.github.com/users/jrha/orgs","repos_url":"https://api.github.com/users/jrha/repos","events_url":"https://api.github.com/users/jrha/events{/privacy}","received_events_url":"https://api.github.com/users/jrha/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2015-10-29T14:13:33Z","updated_at":"2016-03-09T19:12:09Z","due_on":"2016-04-29T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166/commits","review_comments_url":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166/comments","review_comment_url":"https://api.github.com/repos/quattor/quattor.github.com/pulls/comments{/number}","comments_url":"https://api.github.com/repos/quattor/quattor.github.com/issues/166/comments","statuses_url":"https://api.github.com/repos/quattor/quattor.github.com/statuses/d9567635dcfb23701c76bb979bc1f31654a7055f","head":{"label":"stdweird:unittestig","ref":"unittestig","sha":"d9567635dcfb23701c76bb979bc1f31654a7055f","user":{"login":"stdweird","id":1517606,"avatar_url":"https://avatars.githubusercontent.com/u/1517606?v=3","gravatar_id":"","url":"https://api.github.com/users/stdweird","html_url":"https://github.com/stdweird","followers_url":"https://api.github.com/users/stdweird/followers","following_url":"https://api.github.com/users/stdweird/following{/other_user}","gists_url":"https://api.github.com/users/stdweird/gists{/gist_id}","starred_url":"https://api.github.com/users/stdweird/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stdweird/subscriptions","organizations_url":"https://api.github.com/users/stdweird/orgs","repos_url":"https://api.github.com/users/stdweird/repos","events_url":"https://api.github.com/users/stdweird/events{/privacy}","received_events_url":"https://api.github.com/users/stdweird/received_events","type":"User","site_admin":false},"repo":{"id":42802366,"name":"quattor.github.com","full_name":"stdweird/quattor.github.com","owner":{"login":"stdweird","id":1517606,"avatar_url":"https://avatars.githubusercontent.com/u/1517606?v=3","gravatar_id":"","url":"https://api.github.com/users/stdweird","html_url":"https://github.com/stdweird","followers_url":"https://api.github.com/users/stdweird/followers","following_url":"https://api.github.com/users/stdweird/following{/other_user}","gists_url":"https://api.github.com/users/stdweird/gists{/gist_id}","starred_url":"https://api.github.com/users/stdweird/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stdweird/subscriptions","organizations_url":"https://api.github.com/users/stdweird/orgs","repos_url":"https://api.github.com/users/stdweird/repos","events_url":"https://api.github.com/users/stdweird/events{/privacy}","received_events_url":"https://api.github.com/users/stdweird/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stdweird/quattor.github.com","description":"External Website and Project Documentation","fork":true,"url":"https://api.github.com/repos/stdweird/quattor.github.com","forks_url":"https://api.github.com/repos/stdweird/quattor.github.com/forks","keys_url":"https://api.github.com/repos/stdweird/quattor.github.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stdweird/quattor.github.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stdweird/quattor.github.com/teams","hooks_url":"https://api.github.com/repos/stdweird/quattor.github.com/hooks","issue_events_url":"https://api.github.com/repos/stdweird/quattor.github.com/issues/events{/number}","events_url":"https://api.github.com/repos/stdweird/quattor.github.com/events","assignees_url":"https://api.github.com/repos/stdweird/quattor.github.com/assignees{/user}","branches_url":"https://api.github.com/repos/stdweird/quattor.github.com/branches{/branch}","tags_url":"https://api.github.com/repos/stdweird/quattor.github.com/tags","blobs_url":"https://api.github.com/repos/stdweird/quattor.github.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stdweird/quattor.github.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stdweird/quattor.github.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/stdweird/quattor.github.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stdweird/quattor.github.com/statuses/{sha}","languages_url":"https://api.github.com/repos/stdweird/quattor.github.com/languages","stargazers_url":"https://api.github.com/repos/stdweird/quattor.github.com/stargazers","contributors_url":"https://api.github.com/repos/stdweird/quattor.github.com/contributors","subscribers_url":"https://api.github.com/repos/stdweird/quattor.github.com/subscribers","subscription_url":"https://api.github.com/repos/stdweird/quattor.github.com/subscription","commits_url":"https://api.github.com/repos/stdweird/quattor.github.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/stdweird/quattor.github.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/stdweird/quattor.github.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/stdweird/quattor.github.com/issues/comments{/number}","contents_url":"https://api.github.com/repos/stdweird/quattor.github.com/contents/{+path}","compare_url":"https://api.github.com/repos/stdweird/quattor.github.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stdweird/quattor.github.com/merges","archive_url":"https://api.github.com/repos/stdweird/quattor.github.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stdweird/quattor.github.com/downloads","issues_url":"https://api.github.com/repos/stdweird/quattor.github.com/issues{/number}","pulls_url":"https://api.github.com/repos/stdweird/quattor.github.com/pulls{/number}","milestones_url":"https://api.github.com/repos/stdweird/quattor.github.com/milestones{/number}","notifications_url":"https://api.github.com/repos/stdweird/quattor.github.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stdweird/quattor.github.com/labels{/name}","releases_url":"https://api.github.com/repos/stdweird/quattor.github.com/releases{/id}","deployments_url":"https://api.github.com/repos/stdweird/quattor.github.com/deployments","created_at":"2015-09-20T06:11:56Z","updated_at":"2015-09-20T06:11:59Z","pushed_at":"2016-03-09T19:11:29Z","git_url":"git://github.com/stdweird/quattor.github.com.git","ssh_url":"git@github.com:stdweird/quattor.github.com.git","clone_url":"https://github.com/stdweird/quattor.github.com.git","svn_url":"https://github.com/stdweird/quattor.github.com","homepage":"www.quattor.org","size":1558,"stargazers_count":0,"watchers_count":0,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"quattor:master","ref":"master","sha":"eb6c50cc049cb9b629b8aa3e7d7fc75196aa646b","user":{"login":"quattor","id":1557169,"avatar_url":"https://avatars.githubusercontent.com/u/1557169?v=3","gravatar_id":"","url":"https://api.github.com/users/quattor","html_url":"https://github.com/quattor","followers_url":"https://api.github.com/users/quattor/followers","following_url":"https://api.github.com/users/quattor/following{/other_user}","gists_url":"https://api.github.com/users/quattor/gists{/gist_id}","starred_url":"https://api.github.com/users/quattor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quattor/subscriptions","organizations_url":"https://api.github.com/users/quattor/orgs","repos_url":"https://api.github.com/users/quattor/repos","events_url":"https://api.github.com/users/quattor/events{/privacy}","received_events_url":"https://api.github.com/users/quattor/received_events","type":"Organization","site_admin":false},"repo":{"id":3776935,"name":"quattor.github.com","full_name":"quattor/quattor.github.com","owner":{"login":"quattor","id":1557169,"avatar_url":"https://avatars.githubusercontent.com/u/1557169?v=3","gravatar_id":"","url":"https://api.github.com/users/quattor","html_url":"https://github.com/quattor","followers_url":"https://api.github.com/users/quattor/followers","following_url":"https://api.github.com/users/quattor/following{/other_user}","gists_url":"https://api.github.com/users/quattor/gists{/gist_id}","starred_url":"https://api.github.com/users/quattor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quattor/subscriptions","organizations_url":"https://api.github.com/users/quattor/orgs","repos_url":"https://api.github.com/users/quattor/repos","events_url":"https://api.github.com/users/quattor/events{/privacy}","received_events_url":"https://api.github.com/users/quattor/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/quattor/quattor.github.com","description":"External Website and Project Documentation","fork":false,"url":"https://api.github.com/repos/quattor/quattor.github.com","forks_url":"https://api.github.com/repos/quattor/quattor.github.com/forks","keys_url":"https://api.github.com/repos/quattor/quattor.github.com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/quattor/quattor.github.com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/quattor/quattor.github.com/teams","hooks_url":"https://api.github.com/repos/quattor/quattor.github.com/hooks","issue_events_url":"https://api.github.com/repos/quattor/quattor.github.com/issues/events{/number}","events_url":"https://api.github.com/repos/quattor/quattor.github.com/events","assignees_url":"https://api.github.com/repos/quattor/quattor.github.com/assignees{/user}","branches_url":"https://api.github.com/repos/quattor/quattor.github.com/branches{/branch}","tags_url":"https://api.github.com/repos/quattor/quattor.github.com/tags","blobs_url":"https://api.github.com/repos/quattor/quattor.github.com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/quattor/quattor.github.com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/quattor/quattor.github.com/git/refs{/sha}","trees_url":"https://api.github.com/repos/quattor/quattor.github.com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/quattor/quattor.github.com/statuses/{sha}","languages_url":"https://api.github.com/repos/quattor/quattor.github.com/languages","stargazers_url":"https://api.github.com/repos/quattor/quattor.github.com/stargazers","contributors_url":"https://api.github.com/repos/quattor/quattor.github.com/contributors","subscribers_url":"https://api.github.com/repos/quattor/quattor.github.com/subscribers","subscription_url":"https://api.github.com/repos/quattor/quattor.github.com/subscription","commits_url":"https://api.github.com/repos/quattor/quattor.github.com/commits{/sha}","git_commits_url":"https://api.github.com/repos/quattor/quattor.github.com/git/commits{/sha}","comments_url":"https://api.github.com/repos/quattor/quattor.github.com/comments{/number}","issue_comment_url":"https://api.github.com/repos/quattor/quattor.github.com/issues/comments{/number}","contents_url":"https://api.github.com/repos/quattor/quattor.github.com/contents/{+path}","compare_url":"https://api.github.com/repos/quattor/quattor.github.com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/quattor/quattor.github.com/merges","archive_url":"https://api.github.com/repos/quattor/quattor.github.com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/quattor/quattor.github.com/downloads","issues_url":"https://api.github.com/repos/quattor/quattor.github.com/issues{/number}","pulls_url":"https://api.github.com/repos/quattor/quattor.github.com/pulls{/number}","milestones_url":"https://api.github.com/repos/quattor/quattor.github.com/milestones{/number}","notifications_url":"https://api.github.com/repos/quattor/quattor.github.com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/quattor/quattor.github.com/labels{/name}","releases_url":"https://api.github.com/repos/quattor/quattor.github.com/releases{/id}","deployments_url":"https://api.github.com/repos/quattor/quattor.github.com/deployments","created_at":"2012-03-20T15:50:40Z","updated_at":"2015-07-01T12:31:00Z","pushed_at":"2016-03-09T19:12:09Z","git_url":"git://github.com/quattor/quattor.github.com.git","ssh_url":"git@github.com:quattor/quattor.github.com.git","clone_url":"https://github.com/quattor/quattor.github.com.git","svn_url":"https://github.com/quattor/quattor.github.com","homepage":"www.quattor.org","size":1587,"stargazers_count":9,"watchers_count":9,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":13,"mirror_url":null,"open_issues_count":8,"forks":13,"open_issues":8,"watchers":9,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166"},"html":{"href":"https://github.com/quattor/quattor.github.com/pull/166"},"issue":{"href":"https://api.github.com/repos/quattor/quattor.github.com/issues/166"},"comments":{"href":"https://api.github.com/repos/quattor/quattor.github.com/issues/166/comments"},"review_comments":{"href":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166/comments"},"review_comment":{"href":"https://api.github.com/repos/quattor/quattor.github.com/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/quattor/quattor.github.com/pulls/166/commits"},"statuses":{"href":"https://api.github.com/repos/quattor/quattor.github.com/statuses/d9567635dcfb23701c76bb979bc1f31654a7055f"}}}}