{"action":"created","comment":{"url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments/289204499","pull_request_review_id":244069418,"id":289204499,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI4OTIwNDQ5OQ==","diff_hunk":"@@ -0,0 +1,243 @@\n+---\n+layout: post\n+title: \"The journey of becoming a Jenkins contributor: Newbie-friendly tickets\"\n+tags:\n+- jenkins\n+- community\n+- developer\n+- contributing\n+- newcomer\n+author: romenrg\n+---\n+\n+Two months ago I published an https://jenkins.io/blog/2019/03/29/becoming-contributor-intro/[introductory article] on\n+the journey of becoming a Jenkins contributor. In that first article, the jenkins.io site was reviewed, learning about\n+the multiple ways in which we can participate and contribute. Then, a first--basic--contribution I made to the site\n+repository was described.\n+\n+Now, in this new article we will be exploring more advanced contributions, commiting code to the actual Jenkins core.\n+\n+== Getting started with tickets and processes\n+\n+=== Beginners guide to contributing and Jenkins Jira\n+\n+The https://wiki.jenkins.io/display/JENKINS/Beginners+Guide+to+Contributing[beginners guide to contributing to Jenkins]\n+is probably the best starting point, and a reference link to keep handy. It points to different repositories, tools\n+(such as the issue tracker) and to governance documents. It also describes best practices for commit messages, code style\n+conventions, PR guidelines, etc.\n+\n+Once we get a general understanding of the former and want to actually start coding, we may get stuck trying to come up\n+with something to work on.\n+\n+Visiting the https://issues.jenkins-ci.org/projects/JENKINS/issues[Jenkins issue tracker], feels like the natural next\n+step, since it is full of potential bugs and enhancements that have already been reported by the community. However, it\n+is quite easy to feel overwhelmed by the possibilities listed there. Bear in mind that in a 10+-year-old project like\n+this, most of the things that are reported are tricky for a newcomer to work on. For that reason, filtering by\n+https://issues.jenkins-ci.org/browse/WEBSITE-625?jql=labels%20%3D%20newbie-friendly[newbie-friendly tickets] is probably\n+the best idea.\n+\n+.Screenshot displaying the list of newbie-friendly tickets in the Jenkins Jira\n+image::/images/post-images/2019-05-30-becoming-contributor/list-newbie-tickets.png[]\n+\n+=== Selecting a ticket\n+\n+In my case, I spent some time reviewing the `newbie-friendly` tickets, until https://issues.jenkins-ci.org/browse/JENKINS-56477[I found one]\n+that seemed interesting to me and also looked like something I would be able to fix:\n+\n+.Screenshot of the ticket I decided to work on\n+image::/images/post-images/2019-05-30-becoming-contributor/jenkins-newbie-jira-ticket-selected.png[]\n+\n+=== Processes\n+\n+At this stage, when we have decided to take ownership of a ticket, it’s a good practice to let the rest of the community\n+know that we are planning to start working on it. We can do so easily, by assigning the ticket to ourselves (see the\n+“_Assign_” button below the ticket summary).\n+\n+Assigning the ticket to ourselves in the Jenkins Jira will allow any other contributors to know that we are planning to\n+take care of the ticket; and in case they are also interested in contributing to it, they will know who to reach if they\n+want to coordinate work or ask for status. That said, it is worth mentioning that assigning a ticket to yourself does\n+not mean that other contributors cannot work on it from then onwards. Jenkins is an open-source project and anyone is\n+welcome to create their own PRs, so anybody can propose their own solution to the ticket. But as you can guess, if the\n+ticket is assigned to somebody, most people will probably reach the assignee before starting to work on it.\n+\n+Related to the former, it is also important to bear in mind that we should not postpone work on the ticket for too long\n+once we have assigned the ticket to ourselves. Other potential contributors might be discarding the ticket because they","path":"content/blog/2019/05/2019-05-30-becoming-contributor-newbie-tickets.adoc","position":64,"original_position":64,"commit_id":"3d9923e7badbaac28f4977d715a190c57a89a19d","original_commit_id":"3d9923e7badbaac28f4977d715a190c57a89a19d","user":{"login":"MarkEWaite","id":156685,"node_id":"MDQ6VXNlcjE1NjY4NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/156685?v=4","gravatar_id":"","url":"https://api.github.com/users/MarkEWaite","html_url":"https://github.com/MarkEWaite","followers_url":"https://api.github.com/users/MarkEWaite/followers","following_url":"https://api.github.com/users/MarkEWaite/following{/other_user}","gists_url":"https://api.github.com/users/MarkEWaite/gists{/gist_id}","starred_url":"https://api.github.com/users/MarkEWaite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarkEWaite/subscriptions","organizations_url":"https://api.github.com/users/MarkEWaite/orgs","repos_url":"https://api.github.com/users/MarkEWaite/repos","events_url":"https://api.github.com/users/MarkEWaite/events{/privacy}","received_events_url":"https://api.github.com/users/MarkEWaite/received_events","type":"User","site_admin":false},"body":"I think you mean \"ignoring\" or possibly \"disregarding\" rather than \"discarding\".\r\n\r\n```suggestion\r\nonce we have assigned the ticket to ourselves. Other potential contributors might be ignoring the ticket because they\r\n```","created_at":"2019-05-30T23:02:10Z","updated_at":"2019-05-30T23:29:19Z","html_url":"https://github.com/jenkins-infra/jenkins.io/pull/2300#discussion_r289204499","pull_request_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments/289204499"},"html":{"href":"https://github.com/jenkins-infra/jenkins.io/pull/2300#discussion_r289204499"},"pull_request":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300"}}},"pull_request":{"url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300","id":283815685,"node_id":"MDExOlB1bGxSZXF1ZXN0MjgzODE1Njg1","html_url":"https://github.com/jenkins-infra/jenkins.io/pull/2300","diff_url":"https://github.com/jenkins-infra/jenkins.io/pull/2300.diff","patch_url":"https://github.com/jenkins-infra/jenkins.io/pull/2300.patch","issue_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/2300","number":2300,"state":"open","locked":false,"title":"Second post on becoming a Jenkins contributor (newbie-friendly ticket solved)","user":{"login":"romenrg","id":1831480,"node_id":"MDQ6VXNlcjE4MzE0ODA=","avatar_url":"https://avatars2.githubusercontent.com/u/1831480?v=4","gravatar_id":"","url":"https://api.github.com/users/romenrg","html_url":"https://github.com/romenrg","followers_url":"https://api.github.com/users/romenrg/followers","following_url":"https://api.github.com/users/romenrg/following{/other_user}","gists_url":"https://api.github.com/users/romenrg/gists{/gist_id}","starred_url":"https://api.github.com/users/romenrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romenrg/subscriptions","organizations_url":"https://api.github.com/users/romenrg/orgs","repos_url":"https://api.github.com/users/romenrg/repos","events_url":"https://api.github.com/users/romenrg/events{/privacy}","received_events_url":"https://api.github.com/users/romenrg/received_events","type":"User","site_admin":false},"body":"This blog post is the second one I'm writing describing my journey to become a more engaged Jenkins contributor, contributing to different parts of the project; hoping this posts help others start contributing too.\r\n\r\nI have built and run the website locally (`make run`) and everything looked good. Also reviewed the text, links and images; but any suggestion is welcome, including spelling, grammar or wording.\r\n\r\nAlso, I'm mentioning here @daniel-beck as a desired reviewer, as he asked me to do so the last time we spoke about this new post I was planning to write. I'm also mentioning @MarkEWaite and @vilacides, in case they are also interested in taking a look at this.","created_at":"2019-05-30T21:14:16Z","updated_at":"2019-05-30T23:29:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"537c703afd2d9d5f5a14a49c88cf592d1f20cad8","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300/commits","review_comments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300/comments","review_comment_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/2300/comments","statuses_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/statuses/3d9923e7badbaac28f4977d715a190c57a89a19d","head":{"label":"romenrg:blog-becoming-contributor-2","ref":"blog-becoming-contributor-2","sha":"3d9923e7badbaac28f4977d715a190c57a89a19d","user":{"login":"romenrg","id":1831480,"node_id":"MDQ6VXNlcjE4MzE0ODA=","avatar_url":"https://avatars2.githubusercontent.com/u/1831480?v=4","gravatar_id":"","url":"https://api.github.com/users/romenrg","html_url":"https://github.com/romenrg","followers_url":"https://api.github.com/users/romenrg/followers","following_url":"https://api.github.com/users/romenrg/following{/other_user}","gists_url":"https://api.github.com/users/romenrg/gists{/gist_id}","starred_url":"https://api.github.com/users/romenrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romenrg/subscriptions","organizations_url":"https://api.github.com/users/romenrg/orgs","repos_url":"https://api.github.com/users/romenrg/repos","events_url":"https://api.github.com/users/romenrg/events{/privacy}","received_events_url":"https://api.github.com/users/romenrg/received_events","type":"User","site_admin":false},"repo":{"id":177287736,"node_id":"MDEwOlJlcG9zaXRvcnkxNzcyODc3MzY=","name":"jenkins.io","full_name":"romenrg/jenkins.io","private":false,"owner":{"login":"romenrg","id":1831480,"node_id":"MDQ6VXNlcjE4MzE0ODA=","avatar_url":"https://avatars2.githubusercontent.com/u/1831480?v=4","gravatar_id":"","url":"https://api.github.com/users/romenrg","html_url":"https://github.com/romenrg","followers_url":"https://api.github.com/users/romenrg/followers","following_url":"https://api.github.com/users/romenrg/following{/other_user}","gists_url":"https://api.github.com/users/romenrg/gists{/gist_id}","starred_url":"https://api.github.com/users/romenrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romenrg/subscriptions","organizations_url":"https://api.github.com/users/romenrg/orgs","repos_url":"https://api.github.com/users/romenrg/repos","events_url":"https://api.github.com/users/romenrg/events{/privacy}","received_events_url":"https://api.github.com/users/romenrg/received_events","type":"User","site_admin":false},"html_url":"https://github.com/romenrg/jenkins.io","description":"A static site for the Jenkins automation server","fork":true,"url":"https://api.github.com/repos/romenrg/jenkins.io","forks_url":"https://api.github.com/repos/romenrg/jenkins.io/forks","keys_url":"https://api.github.com/repos/romenrg/jenkins.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/romenrg/jenkins.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/romenrg/jenkins.io/teams","hooks_url":"https://api.github.com/repos/romenrg/jenkins.io/hooks","issue_events_url":"https://api.github.com/repos/romenrg/jenkins.io/issues/events{/number}","events_url":"https://api.github.com/repos/romenrg/jenkins.io/events","assignees_url":"https://api.github.com/repos/romenrg/jenkins.io/assignees{/user}","branches_url":"https://api.github.com/repos/romenrg/jenkins.io/branches{/branch}","tags_url":"https://api.github.com/repos/romenrg/jenkins.io/tags","blobs_url":"https://api.github.com/repos/romenrg/jenkins.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/romenrg/jenkins.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/romenrg/jenkins.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/romenrg/jenkins.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/romenrg/jenkins.io/statuses/{sha}","languages_url":"https://api.github.com/repos/romenrg/jenkins.io/languages","stargazers_url":"https://api.github.com/repos/romenrg/jenkins.io/stargazers","contributors_url":"https://api.github.com/repos/romenrg/jenkins.io/contributors","subscribers_url":"https://api.github.com/repos/romenrg/jenkins.io/subscribers","subscription_url":"https://api.github.com/repos/romenrg/jenkins.io/subscription","commits_url":"https://api.github.com/repos/romenrg/jenkins.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/romenrg/jenkins.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/romenrg/jenkins.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/romenrg/jenkins.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/romenrg/jenkins.io/contents/{+path}","compare_url":"https://api.github.com/repos/romenrg/jenkins.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/romenrg/jenkins.io/merges","archive_url":"https://api.github.com/repos/romenrg/jenkins.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/romenrg/jenkins.io/downloads","issues_url":"https://api.github.com/repos/romenrg/jenkins.io/issues{/number}","pulls_url":"https://api.github.com/repos/romenrg/jenkins.io/pulls{/number}","milestones_url":"https://api.github.com/repos/romenrg/jenkins.io/milestones{/number}","notifications_url":"https://api.github.com/repos/romenrg/jenkins.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/romenrg/jenkins.io/labels{/name}","releases_url":"https://api.github.com/repos/romenrg/jenkins.io/releases{/id}","deployments_url":"https://api.github.com/repos/romenrg/jenkins.io/deployments","created_at":"2019-03-23T12:44:44Z","updated_at":"2019-05-24T14:40:28Z","pushed_at":"2019-05-30T21:49:58Z","git_url":"git://github.com/romenrg/jenkins.io.git","ssh_url":"git@github.com:romenrg/jenkins.io.git","clone_url":"https://github.com/romenrg/jenkins.io.git","svn_url":"https://github.com/romenrg/jenkins.io","homepage":"https://jenkins.io","size":307454,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"jenkins-infra:master","ref":"master","sha":"0404f296bc8175cee28aa5963a0bfdb54ca8de59","user":{"login":"jenkins-infra","id":7422698,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc0MjI2OTg=","avatar_url":"https://avatars2.githubusercontent.com/u/7422698?v=4","gravatar_id":"","url":"https://api.github.com/users/jenkins-infra","html_url":"https://github.com/jenkins-infra","followers_url":"https://api.github.com/users/jenkins-infra/followers","following_url":"https://api.github.com/users/jenkins-infra/following{/other_user}","gists_url":"https://api.github.com/users/jenkins-infra/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkins-infra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkins-infra/subscriptions","organizations_url":"https://api.github.com/users/jenkins-infra/orgs","repos_url":"https://api.github.com/users/jenkins-infra/repos","events_url":"https://api.github.com/users/jenkins-infra/events{/privacy}","received_events_url":"https://api.github.com/users/jenkins-infra/received_events","type":"Organization","site_admin":false},"repo":{"id":44886691,"node_id":"MDEwOlJlcG9zaXRvcnk0NDg4NjY5MQ==","name":"jenkins.io","full_name":"jenkins-infra/jenkins.io","private":false,"owner":{"login":"jenkins-infra","id":7422698,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc0MjI2OTg=","avatar_url":"https://avatars2.githubusercontent.com/u/7422698?v=4","gravatar_id":"","url":"https://api.github.com/users/jenkins-infra","html_url":"https://github.com/jenkins-infra","followers_url":"https://api.github.com/users/jenkins-infra/followers","following_url":"https://api.github.com/users/jenkins-infra/following{/other_user}","gists_url":"https://api.github.com/users/jenkins-infra/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkins-infra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkins-infra/subscriptions","organizations_url":"https://api.github.com/users/jenkins-infra/orgs","repos_url":"https://api.github.com/users/jenkins-infra/repos","events_url":"https://api.github.com/users/jenkins-infra/events{/privacy}","received_events_url":"https://api.github.com/users/jenkins-infra/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/jenkins-infra/jenkins.io","description":"A static site for the Jenkins automation server","fork":false,"url":"https://api.github.com/repos/jenkins-infra/jenkins.io","forks_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/forks","keys_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/teams","hooks_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/hooks","issue_events_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/events{/number}","events_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/events","assignees_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/assignees{/user}","branches_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/branches{/branch}","tags_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/tags","blobs_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/statuses/{sha}","languages_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/languages","stargazers_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/stargazers","contributors_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/contributors","subscribers_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/subscribers","subscription_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/subscription","commits_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/contents/{+path}","compare_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/merges","archive_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/downloads","issues_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues{/number}","pulls_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls{/number}","milestones_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/milestones{/number}","notifications_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/labels{/name}","releases_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/releases{/id}","deployments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/deployments","created_at":"2015-10-24T22:02:57Z","updated_at":"2019-05-30T03:13:41Z","pushed_at":"2019-05-30T21:50:00Z","git_url":"git://github.com/jenkins-infra/jenkins.io.git","ssh_url":"git@github.com:jenkins-infra/jenkins.io.git","clone_url":"https://github.com/jenkins-infra/jenkins.io.git","svn_url":"https://github.com/jenkins-infra/jenkins.io","homepage":"https://jenkins.io","size":303826,"stargazers_count":127,"watchers_count":127,"language":"HTML","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":503,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":10,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":503,"open_issues":10,"watchers":127,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300"},"html":{"href":"https://github.com/jenkins-infra/jenkins.io/pull/2300"},"issue":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/2300"},"comments":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/2300/comments"},"review_comments":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300/comments"},"review_comment":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/2300/commits"},"statuses":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/statuses/3d9923e7badbaac28f4977d715a190c57a89a19d"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"MarkEWaite"}}