)]}'
{"reference/new-language-requirements.rst":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"47fdd825be50940f978a225688c176c8bf5df8e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. NOTE(flaper87): This document sets the bar high on purpose. The idea is to"},{"line_number":2,"context_line":"   list all the possible things that may be needed/useful when adding a new"},{"line_number":3,"context_line":"   language and reduce it. I\u0027d like this cleaning process to happen during the"},{"line_number":4,"context_line":"   review of the document. Therefore, before it lands."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":" Requirements for language additions to the  OpenStack Ecosystem"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_18ef12b1","line":4,"updated":"2016-11-25 11:16:26.000000000","message":"✔","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2a6ae78ac0ca2ed46de936d35cfed7c5adf53f0d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"   review of the document. Therefore, before it lands."},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":" Requirements for language additions to the  OpenStack Ecosystem"},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"New programming languages in OpenStack can be added under specific circumstances"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_81addd8a","line":7,"updated":"2016-11-28 05:37:34.000000000","message":"nit: you have two spaces here between \"the\" and \"OpenStack\"","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"96afecd8696cd3a58e3ceade0ae53eeb5ae80cab","unresolved":false,"context_lines":[{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":" Requirements for language additions to the  OpenStack Ecosystem"},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"New programming languages in OpenStack can be added under specific circumstances"},{"line_number":11,"context_line":"where the existing, already accepted, languages have been proven to fall short."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_ec7a59f0","line":9,"updated":"2016-11-28 12:37:44.000000000","message":"I would love to include a discussion on why we worry about adding additional languages, like the community cost, etc, and what to consider.\n\nI would also like to set context a little better, so its clear this happens after a project has discovered the need, and has been innovating. This process is to help that project understand the wider impact that choice might have on the community, and helping them \"productise\" or rethink their current innovations. Its not a process to slow down the innovation.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1cc0f8b777d7558ac65a4d5b732c1a5ccd115bdd","unresolved":false,"context_lines":[{"line_number":6,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":7,"context_line":" Requirements for language additions to the  OpenStack Ecosystem"},{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"New programming languages in OpenStack can be added under specific circumstances"},{"line_number":11,"context_line":"where the existing, already accepted, languages have been proven to fall short."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a71b18c_e2043616","line":9,"in_reply_to":"5a74a57a_ec7a59f0","updated":"2016-12-12 08:21:48.000000000","message":"I\u0027ve added a couple of extra lines. By all means, don\u0027t hesitate to propose something better :)","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2a6ae78ac0ca2ed46de936d35cfed7c5adf53f0d","unresolved":false,"context_lines":[{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"New programming languages in OpenStack can be added under specific circumstances"},{"line_number":11,"context_line":"where the existing, already accepted, languages have been proven to fall short."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":".. NOTE(flaper87): Is the 2-steps process good or just too complex? I like it"},{"line_number":14,"context_line":"   because it allows for separating discussions (which was a problem in previous"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_f2a7a508","line":11,"range":{"start_line":11,"start_character":68,"end_line":11,"end_character":78},"updated":"2016-11-28 05:37:34.000000000","message":"\"fall short\" has the potential to become vague. what constitutes something falling short?\n\nthough i do like (or maybe i\u0027m reading between the lines incorrectly) the implied statement\n\n- new project !\u003d new language of choice","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1cc0f8b777d7558ac65a4d5b732c1a5ccd115bdd","unresolved":false,"context_lines":[{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"New programming languages in OpenStack can be added under specific circumstances"},{"line_number":11,"context_line":"where the existing, already accepted, languages have been proven to fall short."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":".. NOTE(flaper87): Is the 2-steps process good or just too complex? I like it"},{"line_number":14,"context_line":"   because it allows for separating discussions (which was a problem in previous"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a71b18c_c2ff3aff","line":11,"range":{"start_line":11,"start_character":68,"end_line":11,"end_character":78},"in_reply_to":"5a74a57a_2b70760a","updated":"2016-12-12 08:21:48.000000000","message":"Done","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"de8d84c8bbcf896fb684d42c6b0fcb9678a31a86","unresolved":false,"context_lines":[{"line_number":8,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"New programming languages in OpenStack can be added under specific circumstances"},{"line_number":11,"context_line":"where the existing, already accepted, languages have been proven to fall short."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":".. NOTE(flaper87): Is the 2-steps process good or just too complex? I like it"},{"line_number":14,"context_line":"   because it allows for separating discussions (which was a problem in previous"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_2b70760a","line":11,"range":{"start_line":11,"start_character":68,"end_line":11,"end_character":78},"in_reply_to":"5a74a57a_f2a7a508","updated":"2016-11-29 14:31:24.000000000","message":"how about \"proven to not meet technical requirements\".","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":15,"context_line":"   proposals) and it also allows for organizing the work. Teams should not worry"},{"line_number":16,"context_line":"   about doing any of the up-front work until phase 1 is over. Once phase1 is"},{"line_number":17,"context_line":"   passed, teams can work on addressing the requirements and move their projects"},{"line_number":18,"context_line":"   forward in parallel."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"   Other processes that would allow for some separation like the one I mentioned"},{"line_number":21,"context_line":"   above are worth evaluating too."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_d37ab287","line":18,"updated":"2016-11-17 16:06:02.000000000","message":"I agree that breaking down the things that need to be discussed is beneficial. One of the troubles we have had surrounding the golang discussions is getting caught up in rehashing things in the wrong context.  Having a framework for this gives us something to reference and point toward in focusing our thoughts and energy.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"db6c658f8ef72916dbe0161b3102e1f941bc7199","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   Other processes that would allow for some separation like the one I mentioned"},{"line_number":21,"context_line":"   above are worth evaluating too."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The process for adding a new language consists in two separate steps that"},{"line_number":24,"context_line":"require some work up-front. The first step involves the analysis of the need for"},{"line_number":25,"context_line":"a new language and the second one the support for the new language in the"},{"line_number":26,"context_line":"OpenStack ecosystem."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_da70ce74","line":23,"range":{"start_line":23,"start_character":47,"end_line":23,"end_character":49},"updated":"2016-11-28 23:49:49.000000000","message":"s/in/of/","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1cc0f8b777d7558ac65a4d5b732c1a5ccd115bdd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   Other processes that would allow for some separation like the one I mentioned"},{"line_number":21,"context_line":"   above are worth evaluating too."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The process for adding a new language consists in two separate steps that"},{"line_number":24,"context_line":"require some work up-front. The first step involves the analysis of the need for"},{"line_number":25,"context_line":"a new language and the second one the support for the new language in the"},{"line_number":26,"context_line":"OpenStack ecosystem."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a71b18c_0206921b","line":23,"range":{"start_line":23,"start_character":47,"end_line":23,"end_character":49},"in_reply_to":"5a74a57a_da70ce74","updated":"2016-12-12 08:21:48.000000000","message":"Done","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"30785b48f93952c7b95ae04b4dfe647251d1d8a5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"The process for adding a new language consists in two separate steps that"},{"line_number":24,"context_line":"require some work up-front. The first step involves the analysis of the need for"},{"line_number":25,"context_line":"a new language and the second one the support for the new language in the"},{"line_number":26,"context_line":"OpenStack ecosystem."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"After reviewing and agreeing on the need for a new language, the team driving"},{"line_number":29,"context_line":"this effort should start working on the second phase. The needs of a new"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_f9fb0f79","line":26,"updated":"2016-11-17 16:20:24.000000000","message":"as I noted below, OpenStack ecosystem is too vague. Could we start thinking of the components as a separate parts from the very beginning?","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"40d3ac9400fee5d20ef81450292f47d1fa86bdf9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"After reviewing and agreeing on the need for a new language, the team driving"},{"line_number":29,"context_line":"this effort should start working on the second phase. The needs of a new"},{"line_number":30,"context_line":"language should not be questioned during the evaluation of the second phase,"},{"line_number":31,"context_line":"unless the team working on it decides the language is not needed anymore."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Step 1: Use case analysis"},{"line_number":34,"context_line":"#########################"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_84f40488","line":31,"updated":"2016-11-21 13:14:00.000000000","message":"@Dean yeah, I agree. Probably my wording is wrong here but what I wanted to highlight are 2 things:\n\n1. Doing phase 2 before 1 does not mean 1 is going to be approved. It\u0027s ok for people to do it if they want.\n2. Once 1 is approved, the TC won\u0027t go back to check #1 when #2 is submitted for evaluation. Of course, common sense applies.\n\nI\u0027ll amend this section to express this better.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":28,"context_line":"After reviewing and agreeing on the need for a new language, the team driving"},{"line_number":29,"context_line":"this effort should start working on the second phase. The needs of a new"},{"line_number":30,"context_line":"language should not be questioned during the evaluation of the second phase,"},{"line_number":31,"context_line":"unless the team working on it decides the language is not needed anymore."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Step 1: Use case analysis"},{"line_number":34,"context_line":"#########################"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_f3a88e8e","line":31,"updated":"2016-11-17 16:06:02.000000000","message":"I like the expectations being set that doing the step 2 work before step 1 is complete will avoid unnecessary investments of time and resources should step 1 not be approved, however, there are probably still times that beginning step 2 is worthwhile.\n\nI am thinking about some of the discussions re golang where the idea that getting the CI support started is worthwhile as it can/would still be used in unofficial repos.  This does have the side-effect of making the Infrastructure team (in this case) the gatekeeper, for example to prevent me from setting up Lua support just because I think it is cool. (which it is :)","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":37,"context_line":"community interested in this addition are expected to have started a discussion"},{"line_number":38,"context_line":"on the mailing list before presenting the request to the TC."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The discussion should evolve around the needs of the language, the technical"},{"line_number":41,"context_line":"difficulties at hand and the reasons why existing languages are not good enough"},{"line_number":42,"context_line":"for the task. Adding a new language should not be the norm. Projects should"},{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_731e3ebc","line":40,"updated":"2016-11-17 16:06:02.000000000","message":"\u0027needs of the language\u0027:  do you mean \u0027needs of the project that motivate the consideration of a new language\u0027?  Or the consequences of the addition of the new language on the rest of the community?  Both are important, but both may not belong here.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"40d3ac9400fee5d20ef81450292f47d1fa86bdf9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"community interested in this addition are expected to have started a discussion"},{"line_number":38,"context_line":"on the mailing list before presenting the request to the TC."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The discussion should evolve around the needs of the language, the technical"},{"line_number":41,"context_line":"difficulties at hand and the reasons why existing languages are not good enough"},{"line_number":42,"context_line":"for the task. Adding a new language should not be the norm. Projects should"},{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_a4f10098","line":40,"updated":"2016-11-21 13:14:00.000000000","message":"@Dean, I mean the needs of the language for this project (and others that apply). For example, there was a quite good discussion on the ML about why Swift needs golang. It was a technical discussion and it was useful, I believe. I\u0027ll be more explicit here but please, don\u0027t hesitate to propose a better wording :D\n\n@Bogdan, as a TC member, I believe I must evaluate community wide decisions with the entire community in mind. I agree the need of a language will likely start from a single project but adding a new language impacts the entire community. If we focus only on the single project teams, we might end up just adding a bunch of other languages that we don\u0027t really need. I think I know what you mean and I agree but I also wanted to highlight this POV.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"30785b48f93952c7b95ae04b4dfe647251d1d8a5","unresolved":false,"context_lines":[{"line_number":37,"context_line":"community interested in this addition are expected to have started a discussion"},{"line_number":38,"context_line":"on the mailing list before presenting the request to the TC."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The discussion should evolve around the needs of the language, the technical"},{"line_number":41,"context_line":"difficulties at hand and the reasons why existing languages are not good enough"},{"line_number":42,"context_line":"for the task. Adding a new language should not be the norm. Projects should"},{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_59cde383","line":40,"in_reply_to":"7a77a97e_731e3ebc","updated":"2016-11-17 16:20:24.000000000","message":"It is important to think of OpenStack components as a separate services (microservices, eventually and hopefully, some day...) from the very 1st stage. Therefore, there should be *no* such a concept to consider for TC as \"new language for OpenStack\", but \"new language for the particular component or library\" instead.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"a85865c1bb8939214f6e582987a7db2aeb6e9f75","unresolved":false,"context_lines":[{"line_number":37,"context_line":"community interested in this addition are expected to have started a discussion"},{"line_number":38,"context_line":"on the mailing list before presenting the request to the TC."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The discussion should evolve around the needs of the language, the technical"},{"line_number":41,"context_line":"difficulties at hand and the reasons why existing languages are not good enough"},{"line_number":42,"context_line":"for the task. Adding a new language should not be the norm. Projects should"},{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_aafb8946","line":40,"in_reply_to":"7a77a97e_a4f10098","updated":"2016-11-21 13:56:55.000000000","message":"I unerstand your point and TC role in community, although I wish someday entire community concerns to unblock the need of particular projects in innovations. I hoped this spec could be a nice starting point.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"40d3ac9400fee5d20ef81450292f47d1fa86bdf9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"on the mailing list before presenting the request to the TC."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The discussion should evolve around the needs of the language, the technical"},{"line_number":41,"context_line":"difficulties at hand and the reasons why existing languages are not good enough"},{"line_number":42,"context_line":"for the task. Adding a new language should not be the norm. Projects should"},{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_c4eefcb3","line":41,"updated":"2016-11-21 13:14:00.000000000","message":"@Bogdan, I like it, thanks","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"30785b48f93952c7b95ae04b4dfe647251d1d8a5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"on the mailing list before presenting the request to the TC."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"The discussion should evolve around the needs of the language, the technical"},{"line_number":41,"context_line":"difficulties at hand and the reasons why existing languages are not good enough"},{"line_number":42,"context_line":"for the task. Adding a new language should not be the norm. Projects should"},{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_f9adcf84","line":41,"updated":"2016-11-17 16:20:24.000000000","message":"Let\u0027s put it in a positive tension: \" at hand and how the new language may benefit *the particular component* (see my comment above) better than the \"old\" language does.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"96afecd8696cd3a58e3ceade0ae53eeb5ae80cab","unresolved":false,"context_lines":[{"line_number":40,"context_line":"The discussion should evolve around the needs of the language, the technical"},{"line_number":41,"context_line":"difficulties at hand and the reasons why existing languages are not good enough"},{"line_number":42,"context_line":"for the task. Adding a new language should not be the norm. Projects should"},{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Once the discussion has matured, the request should be brought up to the TC for"},{"line_number":46,"context_line":"further discussion, evaluation and voting in the form of :ref:`resolutions`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_20f1b501","line":43,"updated":"2016-11-28 12:37:44.000000000","message":"I agree with this, I just think we should give more context on why we think that.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"25cc826ba7a36e0c498380953d83dadba0421262","unresolved":false,"context_lines":[{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Once the discussion has matured, the request should be brought up to the TC for"},{"line_number":46,"context_line":"further discussion, evaluation and voting in the form of :ref:`resolutions`."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Step 2: Requirements evaluation"},{"line_number":49,"context_line":"###############################"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_cd3544a9","line":46,"updated":"2016-11-29 20:19:20.000000000","message":"This step 1 is too vague, IMO. The potential for religious wars is high here, almost catastrophically high. Arguments of what is *technically* still possible in existing languages versus just easier in others is one example, so where is that line drawn?  Can we list some concrete positives that must exist for this step to be considered?  Such as:\n\n- Faster dev time\n- Better scaling\n- More testable\n- Interpreter/compiler has compatible license\n\n... that\u0027s quick to list in the first step, and heads towards objective criteria from which to judge, not \"vi vs emacs\" (modal editors should die, btw, keyboards have arrow keys now.)","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1cc0f8b777d7558ac65a4d5b732c1a5ccd115bdd","unresolved":false,"context_lines":[{"line_number":43,"context_line":"strive for consuming the existing languages in the ecosystem."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Once the discussion has matured, the request should be brought up to the TC for"},{"line_number":46,"context_line":"further discussion, evaluation and voting in the form of :ref:`resolutions`."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Step 2: Requirements evaluation"},{"line_number":49,"context_line":"###############################"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a71b18c_2211ce04","line":46,"in_reply_to":"5a74a57a_cd3544a9","updated":"2016-12-12 08:21:48.000000000","message":"You make a good point here, Doug. However, this is one of the points I didn\u0027t want to expand too much on, mainly because of what you just said.\n\nFor example, adding \"Better scaling\" or \"More Testable\" is not very descriptive either. People could argue that a language with a stronger type system than python is more testable because the type system itself checks for things that python doesn\u0027t, therefore we should probably use language X.\n\nWhat I think this phase should be about is a discussion like Swift had on the mailing list. Teams would present a case explaining why Python (or other existing languages in the community) are not good enough for their use case and what problems they are facing. It could be scalability, performance, etc.\n\nDo you think explicitly mentioning the topics would make this better? Note that this discussions must happen on the mailing list before they are discussed as part of the TC","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"40d3ac9400fee5d20ef81450292f47d1fa86bdf9","unresolved":false,"context_lines":[{"line_number":51,"context_line":"If the need of a new language is agreed on, the members interested in it are"},{"line_number":52,"context_line":"expected to work with the rest of the community on meeting the following minimum"},{"line_number":53,"context_line":"requirements:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Setup the CI pipelines for the new language"},{"line_number":56,"context_line":"-------------------------------------------"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_e42938f4","line":54,"updated":"2016-11-21 13:14:00.000000000","message":"Good points, Dean. I\u0027ll add them","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":51,"context_line":"If the need of a new language is agreed on, the members interested in it are"},{"line_number":52,"context_line":"expected to work with the rest of the community on meeting the following minimum"},{"line_number":53,"context_line":"requirements:"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Setup the CI pipelines for the new language"},{"line_number":56,"context_line":"-------------------------------------------"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_702d54a7","line":54,"updated":"2016-11-17 16:06:02.000000000","message":"Missing in the list below:\n* documentation publishing\n  * what combination of language-native and our current Sphinx standards are acceptable?\n* dependency management\n  * we have stuff to deal with this in Python, will likely have to do so for every other language to fit our current state","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":63,"context_line":"* CI templates for functional tests"},{"line_number":64,"context_line":"* CI jobs for documentation builds"},{"line_number":65,"context_line":"* Ensure the jobs for meeting the :doc:`project-testing-interface`"},{"line_number":66,"context_line":"  requirements exist."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Define how the deliverables are distributed"},{"line_number":69,"context_line":"-------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_d0f4685c","line":66,"updated":"2016-11-17 16:06:02.000000000","message":"* subunit-formatted output from tests","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"40d3ac9400fee5d20ef81450292f47d1fa86bdf9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"* CI templates for functional tests"},{"line_number":64,"context_line":"* CI jobs for documentation builds"},{"line_number":65,"context_line":"* Ensure the jobs for meeting the :doc:`project-testing-interface`"},{"line_number":66,"context_line":"  requirements exist."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Define how the deliverables are distributed"},{"line_number":69,"context_line":"-------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_042f14f7","line":66,"updated":"2016-11-21 13:14:00.000000000","message":"++","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"40d3ac9400fee5d20ef81450292f47d1fa86bdf9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"questions:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Should the deliverables be shipped in binary format? or is the source code"},{"line_number":76,"context_line":"  enough?"},{"line_number":77,"context_line":"* How can the release of the new deliverables be automated?"},{"line_number":78,"context_line":"* Where should the deliverables be published? Is there a PyPi equivalent for the"},{"line_number":79,"context_line":"  new language?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_24341049","line":76,"updated":"2016-11-21 13:14:00.000000000","message":"I agree and I think this is mostly a no-op. I wonder if it\u0027s documented somewhere that we only ship source code (I recall seeing written down but I could be wrong).","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":73,"context_line":"questions:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Should the deliverables be shipped in binary format? or is the source code"},{"line_number":76,"context_line":"  enough?"},{"line_number":77,"context_line":"* How can the release of the new deliverables be automated?"},{"line_number":78,"context_line":"* Where should the deliverables be published? Is there a PyPi equivalent for the"},{"line_number":79,"context_line":"  new language?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_ea6b33b7","line":76,"updated":"2016-11-17 16:06:02.000000000","message":"I think the discussions already had around golang are representative for compiled languages and we should consider OpenStack shipped \u0027product\u0027 to be source code.  To even consider binaries to be part of OpenStack deliverables gets us into a much larger conversation that is language-independent.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":106,"context_line":"* What team owns the shared code? Should this code fall under the Oslo team"},{"line_number":107,"context_line":"  umbrella?"},{"line_number":108,"context_line":"* How are the produced libraries going to be delivered?"},{"line_number":109,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Work on a basic set of libraries for OpenStack base services"},{"line_number":112,"context_line":"------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_3e156d3f","line":109,"updated":"2016-11-17 16:06:02.000000000","message":"The dependency stuff I mentioned above may fall in here.  Adding some specifics would be helpful, such as defining how reproducible builds will be handled, etc.\n\nAlso, the external dependencies may need to be addressed for situations where the existing language ecosystem does not include clear practices that meet our needs.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1cc0f8b777d7558ac65a4d5b732c1a5ccd115bdd","unresolved":false,"context_lines":[{"line_number":106,"context_line":"* What team owns the shared code? Should this code fall under the Oslo team"},{"line_number":107,"context_line":"  umbrella?"},{"line_number":108,"context_line":"* How are the produced libraries going to be delivered?"},{"line_number":109,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Work on a basic set of libraries for OpenStack base services"},{"line_number":112,"context_line":"------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a71b18c_dda0fbf6","line":109,"in_reply_to":"7a77a97e_3e156d3f","updated":"2016-12-12 08:21:48.000000000","message":"I wrote a specific section for the dependency management. Mostly to answer wether the language needs something like the requirements repo or not","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"96afecd8696cd3a58e3ceade0ae53eeb5ae80cab","unresolved":false,"context_lines":[{"line_number":108,"context_line":"* How are the produced libraries going to be delivered?"},{"line_number":109,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Work on a basic set of libraries for OpenStack base services"},{"line_number":112,"context_line":"------------------------------------------------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_cc7cbdb7","line":111,"updated":"2016-11-28 12:37:44.000000000","message":"I am not sure this should be a requirement, I would rather make sure that any emergent patterns can easily be shared, as you discuss on ln99. I am thinking about using these rules for adding javascript. We didn\u0027t require a full node.js plugin style, as that just wasn\u0027t the context it was needed for.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"277b19650694ce70856a1c1217711bc25ac15c37","unresolved":false,"context_lines":[{"line_number":109,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Work on a basic set of libraries for OpenStack base services"},{"line_number":112,"context_line":"------------------------------------------------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"},{"line_number":115,"context_line":"   Should this be a requirement at all?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_1efd9f6e","line":112,"updated":"2016-11-21 15:07:06.000000000","message":"You need to distinguish \"base services\" from \"base common libraries\". Libraries for base services currently include integration with Keystone, database and message queue. Those do not necessarily need to be developed up-front, but the first service which needs them should develop them as a shared library to avoid duplicating effort.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"48da1802dce14ae94efff2e72138ccc5c3ba1820","unresolved":false,"context_lines":[{"line_number":109,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Work on a basic set of libraries for OpenStack base services"},{"line_number":112,"context_line":"------------------------------------------------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"},{"line_number":115,"context_line":"   Should this be a requirement at all?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_f447141b","line":112,"in_reply_to":"7a77a97e_1efd9f6e","updated":"2016-11-21 21:26:32.000000000","message":"LoL, I actually meant base common libraries (as you can tell below). This is just a freudian slip, will fix.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"40d3ac9400fee5d20ef81450292f47d1fa86bdf9","unresolved":false,"context_lines":[{"line_number":112,"context_line":"------------------------------------------------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"},{"line_number":115,"context_line":"   Should this be a requirement at all?"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Develop counterpart implementations for the following libraries:"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_44390c41","line":115,"updated":"2016-11-21 13:14:00.000000000","message":"@Dean I think this perspective is fine for several cases but not all. For example, I\u0027d assume there\u0027s a library somewhere in golang to read INI files but I don\u0027t know (I\u0027d assume not) if it\u0027s capable of parsing these files as we do with oslo.config. In the golang specific case, we could say that it doesn\u0027t requires operators for changing their config files BUT it does add extra burden to teams using the language since they\u0027ll have to parse the config file themselves in their service.\n\nThis kinda used to be true for OpenStack services in the past and that\u0027s why we come up with oslo.config. I\u0027d expect this to happen for any new language at some point.\n\nThe key of the discussion here is the end of my previous paragraph. Is this phase just too early for requesting this? Or should we just let the language evolve naturally in the ecosystem?","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":112,"context_line":"------------------------------------------------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"},{"line_number":115,"context_line":"   Should this be a requirement at all?"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Develop counterpart implementations for the following libraries:"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_0deb2979","line":115,"updated":"2016-11-17 16:06:02.000000000","message":"Rather than defining the implementation I think we should define the operator/user requirements/expectations. The existence of Oslo libraries  implies that we think common implementations are important. In cases where the new language stdlib has a capable equivalent we may only need to define how it is configured/used to get the expected results.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"277b19650694ce70856a1c1217711bc25ac15c37","unresolved":false,"context_lines":[{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"},{"line_number":115,"context_line":"   Should this be a requirement at all?"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Develop counterpart implementations for the following libraries:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* oslo.config"},{"line_number":120,"context_line":"* oslo.log"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_fe15439b","line":117,"updated":"2016-11-21 15:07:06.000000000","message":"Those are base common libraries -- it would not be completely crazy to require up-front development here (everyone is configured and everyone logs).","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1d7bc1a8a9de34ebe6cce570d17b20344a0a18ef","unresolved":false,"context_lines":[{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"},{"line_number":115,"context_line":"   Should this be a requirement at all?"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Develop counterpart implementations for the following libraries:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* oslo.config"},{"line_number":120,"context_line":"* oslo.log"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_ab8ac618","line":117,"in_reply_to":"5a74a57a_ec32590f","updated":"2016-11-29 14:28:45.000000000","message":"I think it\u0027d be fair to say this requirement applies for languages that would be used for developing services. Arguably you could use javascript for developing new services and I guess these requirements would apply to js too.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"96afecd8696cd3a58e3ceade0ae53eeb5ae80cab","unresolved":false,"context_lines":[{"line_number":114,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive? Is it too much work?"},{"line_number":115,"context_line":"   Should this be a requirement at all?"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Develop counterpart implementations for the following libraries:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* oslo.config"},{"line_number":120,"context_line":"* oslo.log"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_ec32590f","line":117,"in_reply_to":"7a77a97e_fe15439b","updated":"2016-11-28 12:37:44.000000000","message":"I am thinking about when we added javascript, we don\u0027t really have logging and config in that context, as I understand it.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"df07e5190e72fff8827ca05ce83e0f0038f81159","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Develop counterpart implementations for the following libraries:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* oslo.config"},{"line_number":120,"context_line":"* oslo.log"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":".. NOTE(flaper87): Could this be an amend of the previous resolution?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a77a97e_306f5c2c","line":120,"updated":"2016-11-17 16:06:02.000000000","message":"We need a bit more description of what a counterpart implementation must do.  Can we say that it is the external interface (not necessarily the library API itself) that is important?  ie, config files must use the kind if INI files oslo.config defines, logging needs to have these specific output characteristics, etc.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"47fdd825be50940f978a225688c176c8bf5df8e6","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Develop counterpart implementations for the following libraries:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"* oslo.config"},{"line_number":120,"context_line":"* oslo.log"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":".. NOTE(flaper87): Could this be an amend of the previous resolution?"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_d8211ab6","line":120,"in_reply_to":"7a77a97e_306f5c2c","updated":"2016-11-25 11:16:26.000000000","message":"+1 to dean\u0027s comment\n\nIn this context the part that is critical is what a human can do (can continue to use files formatted in the OpenStack INI way, can continue to parse logs formatted in the OpenStack way) rather than how the code supports that.\n\nIdeally there would be some bi-directionality in that process too: openstack config files and logs ought to evolve (slowly) to a more generic and more global format over time (if such formats exist).","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"dec3d941ef0bf005f5d851a8cf86ab146cfaf8f5","unresolved":false,"context_lines":[{"line_number":123,"context_line":".. NOTE(flaper87): Could this be an amend of the previous resolution?"},{"line_number":124,"context_line":"Once the above requirements have been addressed, a final resolution should be"},{"line_number":125,"context_line":"brought up to the TC. This resolution will mark the language as an official"},{"line_number":126,"context_line":"language in the ecosystem. The language can be used by other projects from this"},{"line_number":127,"context_line":"moment on."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_451a2d18","line":127,"range":{"start_line":126,"start_character":27,"end_line":127,"end_character":10},"updated":"2016-11-28 18:08:36.000000000","message":"This is one area this document should clarify further. If a language is approved because project \"A\" showed how Python \"fell short\" for a specific use case they had, is this new language now approved for any other project that wants to use that language and for any use case? Could a new project be started under the Big Tent that completely uses only the new language for example? or should every use of such new language also be approved by the TC?","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"3667bfd9ac4f6a076773229d67560522e00f9a97","unresolved":false,"context_lines":[{"line_number":123,"context_line":".. NOTE(flaper87): Could this be an amend of the previous resolution?"},{"line_number":124,"context_line":"Once the above requirements have been addressed, a final resolution should be"},{"line_number":125,"context_line":"brought up to the TC. This resolution will mark the language as an official"},{"line_number":126,"context_line":"language in the ecosystem. The language can be used by other projects from this"},{"line_number":127,"context_line":"moment on."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_54caa56f","line":127,"range":{"start_line":126,"start_character":27,"end_line":127,"end_character":10},"in_reply_to":"5a74a57a_2bdeb6dc","updated":"2016-11-29 19:06:17.000000000","message":"@Flavio thanks for the quick response, my concern with this approach is that it is creating an initial hurdle, but only for the very first use of a new language. I think Chris` word take even more meaning given this: \n\n\"In part this is because it feels like process in advance of change rather than process added later to adapt to change. We\u0027re building up some rules to make sure that new languages are appropriate to standards of the community in advance of \"accepting\" those languages.\"\n\nTo use the example from the requirements listed above, let\u0027s say project A proposed language X, that project will need to come up with a very convincing use case to use such language (phase 1), plus develop counterparts for oslo.config and oslo.log (phase 2), and let\u0027s suppose after all this the language gets approved.\n\nNow any other team will be able to use that language (for whatever reason), and even if one of them has a need for something like oslo.messaging, there\u0027s nothing that says that they must create that first, we as a community will just need to trust that they would do the right thing, which is great! \n\nThe question that remains thou is: isn\u0027t it contradictory to ask \"so much\" of the first team that wants to use language X (which really says that that team is not be trusted to do the right thing) only so that every other team after can use language X without any requirements for any reason they choose, because they are trusted to do the right thing?\n\nI can understand the intent of this process, but if after the first hurdle there\u0027s no more process, why create one in the first place? Are we really gaining anything from it?","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"1d7bc1a8a9de34ebe6cce570d17b20344a0a18ef","unresolved":false,"context_lines":[{"line_number":123,"context_line":".. NOTE(flaper87): Could this be an amend of the previous resolution?"},{"line_number":124,"context_line":"Once the above requirements have been addressed, a final resolution should be"},{"line_number":125,"context_line":"brought up to the TC. This resolution will mark the language as an official"},{"line_number":126,"context_line":"language in the ecosystem. The language can be used by other projects from this"},{"line_number":127,"context_line":"moment on."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a74a57a_2bdeb6dc","line":127,"range":{"start_line":126,"start_character":27,"end_line":127,"end_character":10},"in_reply_to":"5a74a57a_451a2d18","updated":"2016-11-29 14:28:45.000000000","message":"This is a good point. What I meant above is that projects can use the new language and new projects can also be created.\n\nIn other words, I\u0027d read the completion of this process as OpenStack\u0027s community accepting language X as it has accepted Python.","commit_id":"2cfffb187daf81179713e883349949c4019ef0c5"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"a263e167c1f39c78312e9b68c44a1706d80109af","unresolved":false,"context_lines":[{"line_number":11,"context_line":"process described below. Every new language addition goes through careful"},{"line_number":12,"context_line":"consideration on both, technical and community, aspects. When considering a new"},{"line_number":13,"context_line":"programming language addition, the community must consider whether this language"},{"line_number":14,"context_line":"may or may not fragment the community, what the impact is on the infrasctructure"},{"line_number":15,"context_line":"team and systems, how this language impact the release model, etc."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Innovation is highly encouraged. However, teams experimenting with new languages"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a6eadb0_25c79113","line":14,"updated":"2016-12-13 12:16:39.000000000","message":"infrastructure*","commit_id":"6cc5fe2afcd8fbb966368f5f2815f1566726b292"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"a263e167c1f39c78312e9b68c44a1706d80109af","unresolved":false,"context_lines":[{"line_number":12,"context_line":"consideration on both, technical and community, aspects. When considering a new"},{"line_number":13,"context_line":"programming language addition, the community must consider whether this language"},{"line_number":14,"context_line":"may or may not fragment the community, what the impact is on the infrasctructure"},{"line_number":15,"context_line":"team and systems, how this language impact the release model, etc."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Innovation is highly encouraged. However, teams experimenting with new languages"},{"line_number":18,"context_line":"should keep under consideration the points mentioned above and the process"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a6eadb0_45cc8d35","line":15,"updated":"2016-12-13 12:16:39.000000000","message":"impacts*","commit_id":"6cc5fe2afcd8fbb966368f5f2815f1566726b292"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"a263e167c1f39c78312e9b68c44a1706d80109af","unresolved":false,"context_lines":[{"line_number":19,"context_line":"explained in this document. New programming languages in OpenStack are added"},{"line_number":20,"context_line":"under specific circumstances where the existing, already accepted, languages"},{"line_number":21,"context_line":"have been proven to not meet the technical requirements and the concerns"},{"line_number":22,"context_line":"at the point evaluation are overcome."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":".. NOTE(flaper87): Is the 2-steps process good or just too complex? I like it"},{"line_number":25,"context_line":"   because it allows for separating discussions (which was a problem in previous"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a6eadb0_659fc903","line":22,"updated":"2016-12-13 12:16:39.000000000","message":"Not sure what that last line means","commit_id":"6cc5fe2afcd8fbb966368f5f2815f1566726b292"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"851fc1bb63a423c29accc56ed76c9dd2923586b9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"explained in this document. New programming languages in OpenStack are added"},{"line_number":20,"context_line":"under specific circumstances where the existing, already accepted, languages"},{"line_number":21,"context_line":"have been proven to not meet the technical requirements and the concerns"},{"line_number":22,"context_line":"at the point evaluation are overcome."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":".. NOTE(flaper87): Is the 2-steps process good or just too complex? I like it"},{"line_number":25,"context_line":"   because it allows for separating discussions (which was a problem in previous"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a6eadb0_cce7e5e2","line":22,"in_reply_to":"1a6eadb0_659fc903","updated":"2016-12-13 12:55:26.000000000","message":"bad ninja-edit. will fix","commit_id":"6cc5fe2afcd8fbb966368f5f2815f1566726b292"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4100856d96f5c79a1704b79e2becdf1751ee2aac","unresolved":false,"context_lines":[{"line_number":78,"context_line":"* CI jobs for documentation builds"},{"line_number":79,"context_line":"* Ensure the jobs for meeting the :doc:`project-testing-interface`"},{"line_number":80,"context_line":"  requirements exist."},{"line_number":81,"context_line":"* subunit-formatted output from tests"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Define how the deliverables are distributed"},{"line_number":84,"context_line":"-------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_b7cf45af","line":81,"updated":"2016-12-13 17:10:47.000000000","message":"Note: The CTI for Python and Javascript also mention test coverage, but omit functional tests, we should reconcile these two things, probably by adding the missing ones to the respective documents?","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"9f2df1e4662ffca37a8653f7732b2be941506a0d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"* CI jobs for documentation builds"},{"line_number":79,"context_line":"* Ensure the jobs for meeting the :doc:`project-testing-interface`"},{"line_number":80,"context_line":"  requirements exist."},{"line_number":81,"context_line":"* subunit-formatted output from tests"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Define how the deliverables are distributed"},{"line_number":84,"context_line":"-------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_a0442a1b","line":81,"in_reply_to":"1a6eadb0_b7cf45af","updated":"2016-12-20 20:26:41.000000000","message":"There is also a very important thing - related to this and/or dependency management - we need a mechanism to pre-cache and to mirror dependencies for the gate. This is one of the harder and more time-consuming things. For instance, cloning directly from github in gate jobs is a non-starter, and installing directly from PyPI without going through the infra mirrors leads to death.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"eb915fe755c610dacec36e3cd73739507fc8a11a","unresolved":false,"context_lines":[{"line_number":118,"context_line":"publishing and maintaining the documentation for projects using the new"},{"line_number":119,"context_line":"language."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* Provide tools and jobs for generating documentation"},{"line_number":122,"context_line":"* Adopt OpenStack\u0027s themes and documentation standards."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Define how dependencies will be managed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_a840cc08","line":121,"updated":"2016-12-19 20:12:53.000000000","message":"Should we give preference for using the existing tools?","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"0f8b56a46816e935eef095ed98398b4390baa915","unresolved":false,"context_lines":[{"line_number":118,"context_line":"publishing and maintaining the documentation for projects using the new"},{"line_number":119,"context_line":"language."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* Provide tools and jobs for generating documentation"},{"line_number":122,"context_line":"* Adopt OpenStack\u0027s themes and documentation standards."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Define how dependencies will be managed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_b770f2dd","line":121,"in_reply_to":"1a6eadb0_a840cc08","updated":"2016-12-20 19:36:49.000000000","message":"Yup, I\u0027ll make these more explicit and reference sphinx, rst, etc. There shouldn\u0027t be anything preventing a project written in another language to use rst, sphinx and other tools that we\u0027re already familiar with.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"9f2df1e4662ffca37a8653f7732b2be941506a0d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"publishing and maintaining the documentation for projects using the new"},{"line_number":119,"context_line":"language."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* Provide tools and jobs for generating documentation"},{"line_number":122,"context_line":"* Adopt OpenStack\u0027s themes and documentation standards."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Define how dependencies will be managed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_e507141b","line":121,"in_reply_to":"1a6eadb0_b770f2dd","updated":"2016-12-20 20:26:41.000000000","message":"There is a two-step dance we talked about for both go and javascript - that narrative docs should be written in sphinx (and API docs, should they exist, should use the api-ref stuff) but in-line developer docs should use the language specific tools - like godoc.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"eb915fe755c610dacec36e3cd73739507fc8a11a","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* Describe how the dependencies for the new language are consumed"},{"line_number":131,"context_line":"* Define how the dependencies for the new language can be managed, pinned, etc,"},{"line_number":132,"context_line":"  if necessary"},{"line_number":133,"context_line":"* Define whether a process like the existing `requirements` repo is necessary."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Define a way to share code/libraries for projects using the language"},{"line_number":136,"context_line":"--------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_e8f804c7","line":133,"updated":"2016-12-19 20:12:53.000000000","message":"This last point needs to be refined a bit. \n\nDepending on the language\u0027s deployment characteristics, we may not need to review for co-installability but at the very least we would want a way to review dependencies for license compatibility, support, etc. So we need to establish the requirements list, and gate against projects adding dependencies that haven\u0027t been vetted, even if we don\u0027t sync or manage versions.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"9f2df1e4662ffca37a8653f7732b2be941506a0d","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* Describe how the dependencies for the new language are consumed"},{"line_number":131,"context_line":"* Define how the dependencies for the new language can be managed, pinned, etc,"},{"line_number":132,"context_line":"  if necessary"},{"line_number":133,"context_line":"* Define whether a process like the existing `requirements` repo is necessary."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Define a way to share code/libraries for projects using the language"},{"line_number":136,"context_line":"--------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_609e92b9","line":133,"in_reply_to":"1a6eadb0_1707e61c","updated":"2016-12-20 20:26:41.000000000","message":"I\u0027d go further than ttx an dhellman. We should affirm globally that it is a desire that all of OpenStack be able to be co-installable and that coordinated single versions of dependencies is important. The thing that needs to be defined is the mechanism to do that. (as in, we\u0027re not asking people to decide if our strictness around co-installable dependencies is a valid thing in their language ecosystem - there are plenty of people who would argue it\u0027s crazy for python too)","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"0f8b56a46816e935eef095ed98398b4390baa915","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* Describe how the dependencies for the new language are consumed"},{"line_number":131,"context_line":"* Define how the dependencies for the new language can be managed, pinned, etc,"},{"line_number":132,"context_line":"  if necessary"},{"line_number":133,"context_line":"* Define whether a process like the existing `requirements` repo is necessary."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Define a way to share code/libraries for projects using the language"},{"line_number":136,"context_line":"--------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_1707e61c","line":133,"in_reply_to":"1a6eadb0_5307c01b","updated":"2016-12-20 19:36:49.000000000","message":"I must admit I had not considered the license check and other points considered in the requirements repo. Thanks for bringing this up, I\u0027ll include these points in the next revision","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7fc8df5223507676565b4358bc98eed3351f0f8b","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* Describe how the dependencies for the new language are consumed"},{"line_number":131,"context_line":"* Define how the dependencies for the new language can be managed, pinned, etc,"},{"line_number":132,"context_line":"  if necessary"},{"line_number":133,"context_line":"* Define whether a process like the existing `requirements` repo is necessary."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Define a way to share code/libraries for projects using the language"},{"line_number":136,"context_line":"--------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_5307c01b","line":133,"in_reply_to":"1a6eadb0_626236da","updated":"2016-12-20 15:04:48.000000000","message":"ttx\u0027s suggestion almost could include the second bullet as a sub-point:\n\n Define how global dependencies are tracked and vetted (similar to how Python uses the existing `requirements` repo):\n * Track and review license compatibility.\n * Converge dependencies to reduce security footprint and migrate away from non-actively-maintained dependencies.\n * Track versions of dependencies used in testing and when necessary for reproducible builds.\n\nI think the reproducible builds will be desirable should we ever start shipping linked binaries.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"817b2c5e5983489996a79aba6b96a9a2a8cde688","unresolved":false,"context_lines":[{"line_number":130,"context_line":"* Describe how the dependencies for the new language are consumed"},{"line_number":131,"context_line":"* Define how the dependencies for the new language can be managed, pinned, etc,"},{"line_number":132,"context_line":"  if necessary"},{"line_number":133,"context_line":"* Define whether a process like the existing `requirements` repo is necessary."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Define a way to share code/libraries for projects using the language"},{"line_number":136,"context_line":"--------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_626236da","line":133,"in_reply_to":"1a6eadb0_e8f804c7","updated":"2016-12-20 10:26:48.000000000","message":"Also I think beyond co-installability, we should affirm that dependency convergence is a generally-worthy goal (to reduce the security footprint and favoring actively-maintained libraries)\n\nSo maybe something like \"Define a mechanism to globally track dependencies. Even if the language deployment\u0027s characteristics do not create constraints around co-installability, we want to be able to track and review license compatibility. We also want to be able to generally converge dependencies to reduce security footprint and migrate away from non-actively-maintained dependencies.\"","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d8cddd568fdc67ccd9829335d1c5ec9999898d05","unresolved":false,"context_lines":[{"line_number":143,"context_line":"  umbrella?"},{"line_number":144,"context_line":"* How are the produced libraries going to be delivered?"},{"line_number":145,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Guarantee compatible functionality for the base common libraries"},{"line_number":148,"context_line":"----------------------------------------------------------------"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_8893104f","line":146,"updated":"2016-12-19 20:14:42.000000000","message":"We should add a section for development environment setup and QA integration by using devstack. New languages may need new common bits (like functions for building $foolang binaries).","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"0f8b56a46816e935eef095ed98398b4390baa915","unresolved":false,"context_lines":[{"line_number":143,"context_line":"  umbrella?"},{"line_number":144,"context_line":"* How are the produced libraries going to be delivered?"},{"line_number":145,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Guarantee compatible functionality for the base common libraries"},{"line_number":148,"context_line":"----------------------------------------------------------------"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_7a9e3fb9","line":146,"in_reply_to":"1a6eadb0_4e30f701","updated":"2016-12-20 19:36:49.000000000","message":"We could probably incorporate the devstack/QA bits in the CI section.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7fc8df5223507676565b4358bc98eed3351f0f8b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"  umbrella?"},{"line_number":144,"context_line":"* How are the produced libraries going to be delivered?"},{"line_number":145,"context_line":"* How are the produced libraries going to be consumed?"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Guarantee compatible functionality for the base common libraries"},{"line_number":148,"context_line":"----------------------------------------------------------------"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_4e30f701","line":146,"in_reply_to":"1a6eadb0_8893104f","updated":"2016-12-20 15:04:48.000000000","message":"FWIW, I think DevStack is in decent shape for this, a while back we had someone implement building libvirt from sources as a DevStack plugin, although we didn\u0027t merge it no changes to DevStack itself were required and I think the process is very similar to what I expect to follow for golang.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c708bbc571a803fcb1d52e23ca43c3b96a1f6f29","unresolved":false,"context_lines":[{"line_number":147,"context_line":"Guarantee compatible functionality for the base common libraries"},{"line_number":148,"context_line":"----------------------------------------------------------------"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Most OpenStack projects relies on a set of base common libraries that provide a"},{"line_number":151,"context_line":"seamless experience to operators and users of OpenStack. Any new language must"},{"line_number":152,"context_line":"provide a compatible behavior with these libraries either by developing a"},{"line_number":153,"context_line":"counterpart version of the library in the language or proving that the language"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_e1cd7f87","line":150,"updated":"2016-12-19 22:02:58.000000000","message":"/relies/rely/","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"4100856d96f5c79a1704b79e2becdf1751ee2aac","unresolved":false,"context_lines":[{"line_number":157,"context_line":"therefore their behavior is considered critical and it must be guaranteed by any"},{"line_number":158,"context_line":"new language:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive?"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* oslo.config"},{"line_number":163,"context_line":"* oslo.log"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_17c9d978","line":160,"updated":"2016-12-13 17:10:47.000000000","message":"No, these are the common examples...","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8ded84da6efe01c4c2df7bb7f6ab4b6c800e344c","unresolved":false,"context_lines":[{"line_number":160,"context_line":".. NOTE(flaper87): Is the list of libraries exhaustive?"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* oslo.config"},{"line_number":163,"context_line":"* oslo.log"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":".. NOTE(flaper87): Could this be an amend of the previous resolution?"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a6eadb0_c50cd844","line":163,"updated":"2016-12-20 20:21:43.000000000","message":"FWIW, I much prefer this direction. We really need to have configuration and logging integrate in a similar way. Its better than requiring oslo libs as such.","commit_id":"6316708a6692f4b67f1e041b589d6ea1dd4afdfa"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"74b685fb7c0ad8a9f3ce995313cbf6ac3f5b419e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"----------------------------------------------------------------"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Most OpenStack projects rely on a set of base common libraries that provide a"},{"line_number":162,"context_line":"seamless experience to operators and users of OpenStack. Any new language must"},{"line_number":163,"context_line":"provide a compatible behavior with these libraries either by developing a"},{"line_number":164,"context_line":"counterpart version of the library in the language or proving that the language"},{"line_number":165,"context_line":"itself (or any existing library) is capable of guaranteeing compatibility."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba5201f7_028b561f","line":162,"range":{"start_line":162,"start_character":57,"end_line":162,"end_character":73},"updated":"2017-01-10 14:51:35.000000000","message":"nit: this should probably read \"The team proposing any new language...\"","commit_id":"6220ccc179eeb8c3b6ea8d62be9abd2196acf9f2"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"74b685fb7c0ad8a9f3ce995313cbf6ac3f5b419e","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Most OpenStack projects rely on a set of base common libraries that provide a"},{"line_number":162,"context_line":"seamless experience to operators and users of OpenStack. Any new language must"},{"line_number":163,"context_line":"provide a compatible behavior with these libraries either by developing a"},{"line_number":164,"context_line":"counterpart version of the library in the language or proving that the language"},{"line_number":165,"context_line":"itself (or any existing library) is capable of guaranteeing compatibility."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"The following libraries have an impact on the operator\u0027s and user\u0027s experience,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba5201f7_42447e1a","line":164,"updated":"2017-01-10 14:51:35.000000000","message":"If a new library is required, does that need to be released before the second resolution (below) permits the language? Or is it sufficient for the capability to be demonstrated in principle?","commit_id":"6220ccc179eeb8c3b6ea8d62be9abd2196acf9f2"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"bb2d2b66cd294c203999df7d041e9edc141dd779","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Most OpenStack projects rely on a set of base common libraries that provide a"},{"line_number":162,"context_line":"seamless experience to operators and users of OpenStack. Any new language must"},{"line_number":163,"context_line":"provide a compatible behavior with these libraries either by developing a"},{"line_number":164,"context_line":"counterpart version of the library in the language or proving that the language"},{"line_number":165,"context_line":"itself (or any existing library) is capable of guaranteeing compatibility."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"The following libraries have an impact on the operator\u0027s and user\u0027s experience,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba5201f7_39fec86b","line":164,"in_reply_to":"ba5201f7_42447e1a","updated":"2017-01-10 16:55:44.000000000","message":"I believe demonstrating the capability is enough. I\u0027d prefer to act on good faith here than forcing premature releases of libraries.\n\nThat being said, the library is needed by the project consuming it anyway so I\u0027d expect some of these new libraries (when needed) to be release in advanced anyway.","commit_id":"6220ccc179eeb8c3b6ea8d62be9abd2196acf9f2"},{"author":{"_account_id":8099,"name":"Graham Hayes","email":"gr@ham.ie","username":"graham"},"change_message_id":"9b0ee64475ff787f435c18a78472ed785a1b2cfd","unresolved":false,"context_lines":[{"line_number":168,"context_line":"therefore their behavior is considered critical and it must be guaranteed by any"},{"line_number":169,"context_line":"new language:"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* oslo.config"},{"line_number":172,"context_line":"* oslo.log"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Once the above requirements have been addressed, a final resolution should be"},{"line_number":175,"context_line":"brought up to the TC. This resolution will mark the language as an official"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba5201f7_7472157e","line":172,"range":{"start_line":171,"start_character":0,"end_line":172,"end_character":10},"updated":"2017-01-10 17:06:17.000000000","message":"We don\u0027t require current python projects to even use these.\n\nDo they have to be one to one replacements? Have similar outputs / parsing abilities?\n\nA lot of the value from oslo.logging is the integration with oslo.context, which allows for request tracing, and other advantages. \n\nDo we have to actually implement olso.context as well then?\n\nIf we are going to call out 2 specific libraries, we should be detailed in the set of requirements for them, or we should have the library requirements set out when the team is implementing the new language.","commit_id":"6220ccc179eeb8c3b6ea8d62be9abd2196acf9f2"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"74b685fb7c0ad8a9f3ce995313cbf6ac3f5b419e","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Once the above requirements have been addressed, a final resolution should be"},{"line_number":175,"context_line":"brought up to the TC. This resolution will mark the language as an official"},{"line_number":176,"context_line":"language in the ecosystem. The language can be used by other projects from this"},{"line_number":177,"context_line":"moment on."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba5201f7_4271dea7","line":176,"range":{"start_line":176,"start_character":55,"end_line":176,"end_character":69},"updated":"2017-01-10 14:51:35.000000000","message":"At what point in this process is it ok for the project team pioneering the new language to release code using the new language?\n\nThe use of \"other\" in this sentence implies that the requirement to wait for this second TC resolution only applies to other projects, which is reasonable given the level of investment made by the pioneering project, but might be worth clarifying.","commit_id":"6220ccc179eeb8c3b6ea8d62be9abd2196acf9f2"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"bb2d2b66cd294c203999df7d041e9edc141dd779","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Once the above requirements have been addressed, a final resolution should be"},{"line_number":175,"context_line":"brought up to the TC. This resolution will mark the language as an official"},{"line_number":176,"context_line":"language in the ecosystem. The language can be used by other projects from this"},{"line_number":177,"context_line":"moment on."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba5201f7_b9771801","line":176,"range":{"start_line":176,"start_character":55,"end_line":176,"end_character":69},"in_reply_to":"ba5201f7_4271dea7","updated":"2017-01-10 16:55:44.000000000","message":"I\u0027ll clarify this but the intent is that releases using the new language should happen after the second resolution has been approved.","commit_id":"6220ccc179eeb8c3b6ea8d62be9abd2196acf9f2"}]}
