{"action":"created","issue":{"url":"https://api.github.com/repos/chef-brigade/meta/issues/7","labels_url":"https://api.github.com/repos/chef-brigade/meta/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/chef-brigade/meta/issues/7/comments","events_url":"https://api.github.com/repos/chef-brigade/meta/issues/7/events","html_url":"https://github.com/chef-brigade/meta/issues/7","id":94726872,"number":7,"title":"[RFC] Unit testing with Kitchen","user":{"login":"rex","id":4247754,"avatar_url":"https://avatars.githubusercontent.com/u/4247754?v=3","gravatar_id":"","url":"https://api.github.com/users/rex","html_url":"https://github.com/rex","followers_url":"https://api.github.com/users/rex/followers","following_url":"https://api.github.com/users/rex/following{/other_user}","gists_url":"https://api.github.com/users/rex/gists{/gist_id}","starred_url":"https://api.github.com/users/rex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rex/subscriptions","organizations_url":"https://api.github.com/users/rex/orgs","repos_url":"https://api.github.com/users/rex/repos","events_url":"https://api.github.com/users/rex/events{/privacy}","received_events_url":"https://api.github.com/users/rex/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/chef-brigade/meta/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-07-13T13:56:36Z","updated_at":"2015-07-13T15:10:37Z","closed_at":null,"body":"Hello team!\r\n\r\nI've been spending some time lately reading up on [Kitchen](https://docs.chef.io/kitchen.html), the cookbook testing solution built right into Chef.\r\n\r\nProposal / RFC\r\n---\r\n\r\nWhenever a new cookbook is \"adopted\" by our team, we **must** implement Kitchen tests before further development resumes. \r\n\r\nReasoning / Thought Process\r\n---\r\n\r\n* Testing would allow us to weed out possible bugs in the cookbook\r\n* Testing would allow us to learn *how* the cookbook was originally implemented by its author (oddities, caveats, internal magic, etc)\r\n* Testing would allow us to implement a strong foundation in each cookbook that would streamline collaborative development and maintenance\r\n* Testing lends more credibility to our efforts (Read: Makes us look damn good to the community)\r\n* Testing would allow us to properly automate deployment of new releases to the Supermarket\r\n\r\nPossible Downsides / Drawbacks\r\n---\r\n\r\n* Testing would take some time to implement initially in a way that satisfies most/all team members due to (possibly) differing opinions on implementation\r\n* Adding testing to each cookbook individually would take some time\r\n* Very likely that there will be urgent outstanding issues in these cookbooks that *we will want* to resolve prior to any other development\r\n\r\nI am **very** eager to hear your thoughts, comments, questions, concerns, and constructive criticism on this, as I know it's not a small undertaking. \r\n\r\nThank you!"},"comment":{"url":"https://api.github.com/repos/chef-brigade/meta/issues/comments/120962262","html_url":"https://github.com/chef-brigade/meta/issues/7#issuecomment-120962262","issue_url":"https://api.github.com/repos/chef-brigade/meta/issues/7","id":120962262,"user":{"login":"rex","id":4247754,"avatar_url":"https://avatars.githubusercontent.com/u/4247754?v=3","gravatar_id":"","url":"https://api.github.com/users/rex","html_url":"https://github.com/rex","followers_url":"https://api.github.com/users/rex/followers","following_url":"https://api.github.com/users/rex/following{/other_user}","gists_url":"https://api.github.com/users/rex/gists{/gist_id}","starred_url":"https://api.github.com/users/rex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rex/subscriptions","organizations_url":"https://api.github.com/users/rex/orgs","repos_url":"https://api.github.com/users/rex/repos","events_url":"https://api.github.com/users/rex/events{/privacy}","received_events_url":"https://api.github.com/users/rex/received_events","type":"User","site_admin":false},"created_at":"2015-07-13T15:10:37Z","updated_at":"2015-07-13T15:10:37Z","body":"@dblessing I agree with this. Re-reading this RFC I realize that the wording is a bit strong in that regard. For the sake of transparency I will leave the original RFC untouched but offer this ideological refactor: (Edits in bold text)\r\n\r\n> Whenever a new cookbook is \"adopted\" by our team, **the assigned maintainers must consider implementing** Kitchen tests before further development resumes. **If a gradual approach is assumed, then development can and should continue with the understanding that the cookbook should eventually be thoroughly tested.**\r\n\r\nI am a fan of the \"eventual consistency\" approach in which all cookbooks we contribute to should ultimately follow the same (or similar) standards of unit testing (that is, to have unit testing at all). I absolutely think it should be the maintainers' responsibility to decide what type of testing is best for each cookbook but I feel strongly that testing of some sort should be in place across the board. That these are problematic cookbooks to begin with underscores the need for testing of some kind."}}