{"action":"created","comment":{"url":"https://api.github.com/repos/ansible/ansible/pulls/comments/55037482","id":55037482,"diff_hunk":"@@ -0,0 +1,107 @@\n+# Proposal: Proposals - have a process and documentation\n+\n+*Author*: Robyn Bergeron <@robynbergeron>\n+\n+*Date*: 04/03/2016\n+\n+- Status: New\n+- Proposal type: community development process\n+- Targeted Release: Forever, until we improve it more at a later date.\n+- PR for Comments: https://github.com/ansible/ansible/pull/14802#\n+- Estimated time to implement: 2 weeks at most\n+\n+Comments on this proposal prior to acceptance are accepted in the comments section of the pull request linked above.\n+\n+## Motivation\n+Define light process for how proposals are created and accepted, and document the process permanently in community.html somewhere.\n+\n+The following suggested process was created with the following ideas in mind:\n+- Transparency: notifications, decisions made in public meetings, etc. helps people to know what is going on.\n+- Avoid proliferation of multiple comments in multiple places; keep everything in the PR.\n+- Action is being taken: Knowing when and where decisions are made, and knowing who is the final authority, gives people the sense that things are moving.\n+- Ensure that new features or enhancements are added to the roadmap and release notes.\n+\n+### Problems\n+Proposals are confusing. Should I write one? Where do I put it? Why can’t I find any documentation about this? Who approves things? This is why we should have a light and unbureaucratic process.\n+\n+## Solution proposal\n+This proposal has multiple parts:\n+- Proposed process for submitting / accepting proposals\n+- Suggested proposal template\n+\n+Once the process and template are approved, a PR will be submitted for documenting the process permanently in documentation, as well as a PR to ansible/docs/proposals for the proposal template.\n+\n+### Proposed Process\n+1: PROPOSAL CREATION\n+- Person making the proposal creates the proposal document in ansible/docs/proposals via PR, following the proposal template.\n+- Author of proposal PR updates the proposal with the PR # / link.\n+- Notify the community that this proposal exists.\n+- Author notifies ansible-devel mailing list for transparency, providing link to PR.\n+- Author includes commentary indicating that comments should *not* be in response to this email, but rather, community members should add comments or feedback to the pull request.\n+\n+2: KEEP THE PROPOSAL MOVING TOWARDS A DECISION.\n+- Proposals use public meetings as a mechanism to keep them moving.\n+- All proposals are decided on in a public meeting by a combination of folks with commit access to Ansible and any interested parties / users, as well as the author of the proposal. Time for approvals will be a portion of the overall schedule; proposals will be reviewed in the order received and may occasionally be deferred to the next meeting. If we are overwhelmed, a separate meeting may be scheduled.\n+\n+(Note: ample feedback in the comments of the proposal PR should allow for folks to come to broad consensus in one way or another in the meeting rather rapidly, generally without an actual counted vote. However, the decision should be made *in the meeting*, so as to avoid any questions around whether or not the approval of one Ansible maintain / committer reflects the opinions or decision of everyone.)\n+\n+- *New* proposals are explicitly added to the public IRC meeting agenda for each week by the meeting organizer for for acknowledgement of ongoing discussion and existence, and/or easy approval/rejection. (Either via a separate issue somewhere tracking any meeting items, or by adding a “meeting” label to the PR.)\n+- Existing new, not-yet-approved proposals are reviewed weekly by meeting organizer to check for slow-moving/stalled proposals, or for flags from the proposal owner indicating that they'd like to have it addressed in the weeks meeting\n+\n+3: PROPOSAL APPROVED\n+- Amendments needed to the proposal after IRC discussion should be made immediately.\n+- The proposal status should be changed to Approved / In Progress in the document.\n+- The proposal should be moved from /docs/proposals to a docs/roadmap folder (or similar).\n+- The proposal PR comments should be updated with a note by the meeting organizer that the proposal has been accepted, and further commentary should be in the PRs implementing the code itself.\n+- Proposals can also be PENDING (waiting on something), or DECLINED. \n+\n+4: CODE IN PROGRESS\n+- Approved proposals should be periodically checked for progress, especially if tied to a release and/or is noted as release blocking.\n+- PRs implementing the proposal are recommended to link to the original proposal PR or document for context.\n+5: CODE COMPLETE\n+- Proposal document, which should be in docs/roadmap, should have their status updated to COMPLETE.\n+- The release notes file for the targeted release should be updated with a small note regarding the feature or enhancement; completed proposals for community processes should have a follow-up mail sent to the mailing list providing information and links to the new process.\n+- Hooray! Buy your friend a tasty beverage of their choosing.\n+\n+### Suggested Proposal Template Outline\n+Following the .md convention, a proposal template should go in the docs/proposals repository. This is a suggested outline; the template will provide more guidance / context and will be submitted as a PR upon approval of this proposal.\n+\n+Please note that, in line with the above guidance that some processes will require fine-tuning over time, that the suggested template outline below, as well as the final submitted template to the docs/proposals repo has wiggle room in terms of description, and that what makes sense may vary from one proposal to another. The expectation is that people will simply do what seems right, and over time we’ll figure out what works best — but in the meantime, guidance is nice.\n+\n+#### TEMPLATE OUTLINE\n+- Proposal Title\n+- Author (w/github ID linked)\n+- Date:\n+\n+- Status: New, Approved, Pending, Complete","path":"docs/proposals/proposals_process_proposal.MD","position":76,"original_position":76,"commit_id":"69a144bfbe15bcbec21561bf22293a603102158b","original_commit_id":"69a144bfbe15bcbec21561bf22293a603102158b","user":{"login":"gregdek","id":252125,"avatar_url":"https://avatars.githubusercontent.com/u/252125?v=3","gravatar_id":"","url":"https://api.github.com/users/gregdek","html_url":"https://github.com/gregdek","followers_url":"https://api.github.com/users/gregdek/followers","following_url":"https://api.github.com/users/gregdek/following{/other_user}","gists_url":"https://api.github.com/users/gregdek/gists{/gist_id}","starred_url":"https://api.github.com/users/gregdek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregdek/subscriptions","organizations_url":"https://api.github.com/users/gregdek/orgs","repos_url":"https://api.github.com/users/gregdek/repos","events_url":"https://api.github.com/users/gregdek/events{/privacy}","received_events_url":"https://api.github.com/users/gregdek/received_events","type":"User","site_admin":false},"body":"Again, we need some kind of bucket for \"rejected\". ","created_at":"2016-03-04T14:44:15Z","updated_at":"2016-03-04T14:44:15Z","html_url":"https://github.com/ansible/ansible/pull/14802#discussion_r55037482","pull_request_url":"https://api.github.com/repos/ansible/ansible/pulls/14802","_links":{"self":{"href":"https://api.github.com/repos/ansible/ansible/pulls/comments/55037482"},"html":{"href":"https://github.com/ansible/ansible/pull/14802#discussion_r55037482"},"pull_request":{"href":"https://api.github.com/repos/ansible/ansible/pulls/14802"}}},"pull_request":{"url":"https://api.github.com/repos/ansible/ansible/pulls/14802","id":61718169,"html_url":"https://github.com/ansible/ansible/pull/14802","diff_url":"https://github.com/ansible/ansible/pull/14802.diff","patch_url":"https://github.com/ansible/ansible/pull/14802.patch","issue_url":"https://api.github.com/repos/ansible/ansible/issues/14802","number":14802,"state":"open","locked":false,"title":"Proposal for a proposals process & documentation of the process.","user":{"login":"robynbergeron","id":3236604,"avatar_url":"https://avatars.githubusercontent.com/u/3236604?v=3","gravatar_id":"","url":"https://api.github.com/users/robynbergeron","html_url":"https://github.com/robynbergeron","followers_url":"https://api.github.com/users/robynbergeron/followers","following_url":"https://api.github.com/users/robynbergeron/following{/other_user}","gists_url":"https://api.github.com/users/robynbergeron/gists{/gist_id}","starred_url":"https://api.github.com/users/robynbergeron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robynbergeron/subscriptions","organizations_url":"https://api.github.com/users/robynbergeron/orgs","repos_url":"https://api.github.com/users/robynbergeron/repos","events_url":"https://api.github.com/users/robynbergeron/events{/privacy}","received_events_url":"https://api.github.com/users/robynbergeron/received_events","type":"User","site_admin":false},"body":"##### Issue Type:\r\n\r\n - New Proposal Pull Request\r\n\r\n##### Summary:\r\n\r\nProposal for a process for proposals, and create documentation of that process..  Inception!\r\n\r\n(Note: I would like to test if the proposed proposal process works by following the proposed process in this proposal. Plz 2 merge, guidance will be in a follow-up email saying \"this proposal exists, please add comments to the PR (w/pr link)\"","created_at":"2016-03-04T14:25:09Z","updated_at":"2016-03-04T14:44:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b7046b00989ee7218958d4385302bcfd44955dcb","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ansible/ansible/pulls/14802/commits","review_comments_url":"https://api.github.com/repos/ansible/ansible/pulls/14802/comments","review_comment_url":"https://api.github.com/repos/ansible/ansible/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ansible/ansible/issues/14802/comments","statuses_url":"https://api.github.com/repos/ansible/ansible/statuses/69a144bfbe15bcbec21561bf22293a603102158b","head":{"label":"robynbergeron:devel","ref":"devel","sha":"69a144bfbe15bcbec21561bf22293a603102158b","user":{"login":"robynbergeron","id":3236604,"avatar_url":"https://avatars.githubusercontent.com/u/3236604?v=3","gravatar_id":"","url":"https://api.github.com/users/robynbergeron","html_url":"https://github.com/robynbergeron","followers_url":"https://api.github.com/users/robynbergeron/followers","following_url":"https://api.github.com/users/robynbergeron/following{/other_user}","gists_url":"https://api.github.com/users/robynbergeron/gists{/gist_id}","starred_url":"https://api.github.com/users/robynbergeron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robynbergeron/subscriptions","organizations_url":"https://api.github.com/users/robynbergeron/orgs","repos_url":"https://api.github.com/users/robynbergeron/repos","events_url":"https://api.github.com/users/robynbergeron/events{/privacy}","received_events_url":"https://api.github.com/users/robynbergeron/received_events","type":"User","site_admin":false},"repo":{"id":53137652,"name":"ansible","full_name":"robynbergeron/ansible","owner":{"login":"robynbergeron","id":3236604,"avatar_url":"https://avatars.githubusercontent.com/u/3236604?v=3","gravatar_id":"","url":"https://api.github.com/users/robynbergeron","html_url":"https://github.com/robynbergeron","followers_url":"https://api.github.com/users/robynbergeron/followers","following_url":"https://api.github.com/users/robynbergeron/following{/other_user}","gists_url":"https://api.github.com/users/robynbergeron/gists{/gist_id}","starred_url":"https://api.github.com/users/robynbergeron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robynbergeron/subscriptions","organizations_url":"https://api.github.com/users/robynbergeron/orgs","repos_url":"https://api.github.com/users/robynbergeron/repos","events_url":"https://api.github.com/users/robynbergeron/events{/privacy}","received_events_url":"https://api.github.com/users/robynbergeron/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/robynbergeron/ansible","description":"Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.","fork":true,"url":"https://api.github.com/repos/robynbergeron/ansible","forks_url":"https://api.github.com/repos/robynbergeron/ansible/forks","keys_url":"https://api.github.com/repos/robynbergeron/ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/robynbergeron/ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/robynbergeron/ansible/teams","hooks_url":"https://api.github.com/repos/robynbergeron/ansible/hooks","issue_events_url":"https://api.github.com/repos/robynbergeron/ansible/issues/events{/number}","events_url":"https://api.github.com/repos/robynbergeron/ansible/events","assignees_url":"https://api.github.com/repos/robynbergeron/ansible/assignees{/user}","branches_url":"https://api.github.com/repos/robynbergeron/ansible/branches{/branch}","tags_url":"https://api.github.com/repos/robynbergeron/ansible/tags","blobs_url":"https://api.github.com/repos/robynbergeron/ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/robynbergeron/ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/robynbergeron/ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/robynbergeron/ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/robynbergeron/ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/robynbergeron/ansible/languages","stargazers_url":"https://api.github.com/repos/robynbergeron/ansible/stargazers","contributors_url":"https://api.github.com/repos/robynbergeron/ansible/contributors","subscribers_url":"https://api.github.com/repos/robynbergeron/ansible/subscribers","subscription_url":"https://api.github.com/repos/robynbergeron/ansible/subscription","commits_url":"https://api.github.com/repos/robynbergeron/ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/robynbergeron/ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/robynbergeron/ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/robynbergeron/ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/robynbergeron/ansible/contents/{+path}","compare_url":"https://api.github.com/repos/robynbergeron/ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/robynbergeron/ansible/merges","archive_url":"https://api.github.com/repos/robynbergeron/ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/robynbergeron/ansible/downloads","issues_url":"https://api.github.com/repos/robynbergeron/ansible/issues{/number}","pulls_url":"https://api.github.com/repos/robynbergeron/ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/robynbergeron/ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/robynbergeron/ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/robynbergeron/ansible/labels{/name}","releases_url":"https://api.github.com/repos/robynbergeron/ansible/releases{/id}","deployments_url":"https://api.github.com/repos/robynbergeron/ansible/deployments","created_at":"2016-03-04T13:35:38Z","updated_at":"2016-03-04T13:35:44Z","pushed_at":"2016-03-04T14:27:28Z","git_url":"git://github.com/robynbergeron/ansible.git","ssh_url":"git@github.com:robynbergeron/ansible.git","clone_url":"https://github.com/robynbergeron/ansible.git","svn_url":"https://github.com/robynbergeron/ansible","homepage":"http://ansible.com/","size":39273,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"devel"}},"base":{"label":"ansible:devel","ref":"devel","sha":"7f34705b0c0cd39daaa46e53bf64401e9590d8b3","user":{"login":"ansible","id":1507452,"avatar_url":"https://avatars.githubusercontent.com/u/1507452?v=3","gravatar_id":"","url":"https://api.github.com/users/ansible","html_url":"https://github.com/ansible","followers_url":"https://api.github.com/users/ansible/followers","following_url":"https://api.github.com/users/ansible/following{/other_user}","gists_url":"https://api.github.com/users/ansible/gists{/gist_id}","starred_url":"https://api.github.com/users/ansible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ansible/subscriptions","organizations_url":"https://api.github.com/users/ansible/orgs","repos_url":"https://api.github.com/users/ansible/repos","events_url":"https://api.github.com/users/ansible/events{/privacy}","received_events_url":"https://api.github.com/users/ansible/received_events","type":"Organization","site_admin":false},"repo":{"id":3638964,"name":"ansible","full_name":"ansible/ansible","owner":{"login":"ansible","id":1507452,"avatar_url":"https://avatars.githubusercontent.com/u/1507452?v=3","gravatar_id":"","url":"https://api.github.com/users/ansible","html_url":"https://github.com/ansible","followers_url":"https://api.github.com/users/ansible/followers","following_url":"https://api.github.com/users/ansible/following{/other_user}","gists_url":"https://api.github.com/users/ansible/gists{/gist_id}","starred_url":"https://api.github.com/users/ansible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ansible/subscriptions","organizations_url":"https://api.github.com/users/ansible/orgs","repos_url":"https://api.github.com/users/ansible/repos","events_url":"https://api.github.com/users/ansible/events{/privacy}","received_events_url":"https://api.github.com/users/ansible/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ansible/ansible","description":"Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.","fork":false,"url":"https://api.github.com/repos/ansible/ansible","forks_url":"https://api.github.com/repos/ansible/ansible/forks","keys_url":"https://api.github.com/repos/ansible/ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ansible/ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ansible/ansible/teams","hooks_url":"https://api.github.com/repos/ansible/ansible/hooks","issue_events_url":"https://api.github.com/repos/ansible/ansible/issues/events{/number}","events_url":"https://api.github.com/repos/ansible/ansible/events","assignees_url":"https://api.github.com/repos/ansible/ansible/assignees{/user}","branches_url":"https://api.github.com/repos/ansible/ansible/branches{/branch}","tags_url":"https://api.github.com/repos/ansible/ansible/tags","blobs_url":"https://api.github.com/repos/ansible/ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ansible/ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ansible/ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/ansible/ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ansible/ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/ansible/ansible/languages","stargazers_url":"https://api.github.com/repos/ansible/ansible/stargazers","contributors_url":"https://api.github.com/repos/ansible/ansible/contributors","subscribers_url":"https://api.github.com/repos/ansible/ansible/subscribers","subscription_url":"https://api.github.com/repos/ansible/ansible/subscription","commits_url":"https://api.github.com/repos/ansible/ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/ansible/ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/ansible/ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/ansible/ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/ansible/ansible/contents/{+path}","compare_url":"https://api.github.com/repos/ansible/ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ansible/ansible/merges","archive_url":"https://api.github.com/repos/ansible/ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ansible/ansible/downloads","issues_url":"https://api.github.com/repos/ansible/ansible/issues{/number}","pulls_url":"https://api.github.com/repos/ansible/ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/ansible/ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/ansible/ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ansible/ansible/labels{/name}","releases_url":"https://api.github.com/repos/ansible/ansible/releases{/id}","deployments_url":"https://api.github.com/repos/ansible/ansible/deployments","created_at":"2012-03-06T14:58:02Z","updated_at":"2016-03-04T14:18:32Z","pushed_at":"2016-03-04T14:27:29Z","git_url":"git://github.com/ansible/ansible.git","ssh_url":"git@github.com:ansible/ansible.git","clone_url":"https://github.com/ansible/ansible.git","svn_url":"https://github.com/ansible/ansible","homepage":"http://ansible.com/","size":54108,"stargazers_count":15664,"watchers_count":15664,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":4624,"mirror_url":null,"open_issues_count":1252,"forks":4624,"open_issues":1252,"watchers":15664,"default_branch":"devel"}},"_links":{"self":{"href":"https://api.github.com/repos/ansible/ansible/pulls/14802"},"html":{"href":"https://github.com/ansible/ansible/pull/14802"},"issue":{"href":"https://api.github.com/repos/ansible/ansible/issues/14802"},"comments":{"href":"https://api.github.com/repos/ansible/ansible/issues/14802/comments"},"review_comments":{"href":"https://api.github.com/repos/ansible/ansible/pulls/14802/comments"},"review_comment":{"href":"https://api.github.com/repos/ansible/ansible/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ansible/ansible/pulls/14802/commits"},"statuses":{"href":"https://api.github.com/repos/ansible/ansible/statuses/69a144bfbe15bcbec21561bf22293a603102158b"}}}}