)]}'
{"specs/requirements-management.rst":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"81d82f912432a02e6f5c75eb1cddbb5df134f8f7","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":87,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":88,"context_line":"any new releases that aren\u0027t already listed in upper-constraints."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"During releases we\u0027ll gate any requirements changes on both master and any"},{"line_number":91,"context_line":"branched projects, branching openstack/requirements last when we\u0027re finally"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a016987_ded537e5","line":88,"updated":"2015-05-29 03:47:30.000000000","message":"New releases and new deps right? May be worth explicitly calling out that this process can expand the freeze files size too.","commit_id":"417335a25955497c18dd907919c94d986491f982"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"928862797a5821bf01106cf809d3bf75a56383df","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":87,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":88,"context_line":"any new releases that aren\u0027t already listed in upper-constraints."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"During releases we\u0027ll gate any requirements changes on both master and any"},{"line_number":91,"context_line":"branched projects, branching openstack/requirements last when we\u0027re finally"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a016987_3e60cb00","line":88,"in_reply_to":"7a016987_ded537e5","updated":"2015-05-29 03:56:08.000000000","message":"Done","commit_id":"417335a25955497c18dd907919c94d986491f982"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"445686784e7b64f5a153442ab2eacd7b03705aa5","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"https://blueprints.launchpad.net//+spec/example"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Our current requirements management policy is causing signficant gate"},{"line_number":10,"context_line":"downtime, developer issues and packaging headaches. We can do better."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_8b43fc12","line":7,"updated":"2015-05-29 05:14:00.000000000","message":"Nit: The above URL is wrong","commit_id":"f4b75cfb1293f00ec679569ed4e5c017b2bf0e01"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"78c460b0de849d977450705aa02c800ee3858e37","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"https://blueprints.launchpad.net//+spec/example"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Our current requirements management policy is causing signficant gate"},{"line_number":10,"context_line":"downtime, developer issues and packaging headaches. We can do better."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_1987ed62","line":7,"in_reply_to":"7a016987_8b43fc12","updated":"2015-06-01 23:50:38.000000000","message":"There is no launchpad blueprint yet. I\u0027ll make one soon.","commit_id":"f4b75cfb1293f00ec679569ed4e5c017b2bf0e01"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"8e9e0dbdd650452d8a71eea2ad99aeeed94aad6d","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"1. “Some” expression to downstream packagers/users"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":42,"context_line":"non-devstack)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"3. Encourage convergence/maintain co-installability"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_d7405ca7","line":41,"updated":"2015-05-30 14:35:51.000000000","message":"This renders funny. Since \"non-devstack)\" is on a new line, it needs to be indented 3 spaces","commit_id":"f4b75cfb1293f00ec679569ed4e5c017b2bf0e01"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"78c460b0de849d977450705aa02c800ee3858e37","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"1. “Some” expression to downstream packagers/users"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":42,"context_line":"non-devstack)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"3. Encourage convergence/maintain co-installability"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_19792d94","line":41,"in_reply_to":"7a016987_d7405ca7","updated":"2015-06-01 23:50:38.000000000","message":"Done","commit_id":"f4b75cfb1293f00ec679569ed4e5c017b2bf0e01"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"e62135f747fea56d793c4523154f252310107325","unresolved":false,"context_lines":[{"line_number":83,"context_line":"existing requirements sync job will continue to propose converged requirements"},{"line_number":84,"context_line":"for projects that have opted into convergened dependency management."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":87,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":88,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":89,"context_line":"implies) as a patch to upper-constraints."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_e8b5b2ec","line":86,"updated":"2015-05-29 23:41:13.000000000","message":"How does the expanding work without a resolver? Couldn\u0027t the expansion end up being invalid (due to lack of correct resolution)?","commit_id":"f4b75cfb1293f00ec679569ed4e5c017b2bf0e01"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"78c460b0de849d977450705aa02c800ee3858e37","unresolved":false,"context_lines":[{"line_number":83,"context_line":"existing requirements sync job will continue to propose converged requirements"},{"line_number":84,"context_line":"for projects that have opted into convergened dependency management."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":87,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":88,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":89,"context_line":"implies) as a patch to upper-constraints."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5afe65bd_d9a955e1","line":86,"in_reply_to":"7a016987_e8b5b2ec","updated":"2015-06-01 23:50:38.000000000","message":"No more invalid than our current global-requirements.txt file which is manually managed and has no resolution. It doesn\u0027t matter though - since we know that everything will have passed a gate job with an exact set of requirements, if the expansion is wrong, the job will fail (and a human can submit a working set).","commit_id":"f4b75cfb1293f00ec679569ed4e5c017b2bf0e01"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"e62135f747fea56d793c4523154f252310107325","unresolved":false,"context_lines":[{"line_number":93,"context_line":"ready to decouple the release from master. This is aimed at the changes"},{"line_number":94,"context_line":"involved in using new releases of oslo etc."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Lastly, the pip resolver work will increase the accuracy of our constraints"},{"line_number":97,"context_line":"pinning, but this spec is not dependent on that."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_68eb02dd","line":96,"updated":"2015-05-29 23:41:13.000000000","message":"Won\u0027t it do more than increase, hopefully it will resolve them ;)","commit_id":"f4b75cfb1293f00ec679569ed4e5c017b2bf0e01"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"e58613c664db842197b673812d877eb1369d374c","unresolved":false,"context_lines":[{"line_number":2,"context_line":" Requirements management"},{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Our current requirements management policy is causing signficant gate"},{"line_number":6,"context_line":"downtime, developer issues and packaging headaches. We can do better."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_6e3da8ba","line":5,"updated":"2015-06-03 13:49:53.000000000","message":"-\u003e significant","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"e58613c664db842197b673812d877eb1369d374c","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Additionally we have some constraints on solutions:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"1. “Some” expression to downstream packagers/users"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":38,"context_line":"   non-devstack)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_eeecf82a","line":35,"updated":"2015-06-03 13:49:53.000000000","message":"-\u003e Provide \"some\" expression of dependencies to...","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"1. “Some” expression to downstream packagers/users"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":38,"context_line":"   non-devstack)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Encourage convergence/maintain co-installability"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_15865e65","line":37,"updated":"2015-06-07 15:04:50.000000000","message":"I don\u0027t know what this means.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":48,"context_line":"7. Don’t make library release management painful"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Finally there are plenty of things that could be done that aren\u0027t addressed in"},{"line_number":51,"context_line":"this specification: its the minimal self consistent set of improvements to"},{"line_number":52,"context_line":"address the ongoing firedrills we currently suffer."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_d57fa664","line":51,"updated":"2015-06-07 15:04:50.000000000","message":"\"its\" to \"it\u0027s\"","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":58,"context_line":"install_requires."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Globally we need to maintain global-requirements as we do today. This remains"},{"line_number":61,"context_line":"our policy control for which libraries are acceptable in OpenStack projects."},{"line_number":62,"context_line":"As we start using extras, we\u0027ll need to track extras in global-requirements as"},{"line_number":63,"context_line":"well. We want to preserve an axiom: that projects have wider-or-equal"},{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_b5de6a6b","line":61,"updated":"2015-06-07 15:04:50.000000000","message":"global-requirements also defines the min level and the skips (releases we know don\u0027t work).","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"install_requires."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Globally we need to maintain global-requirements as we do today. This remains"},{"line_number":61,"context_line":"our policy control for which libraries are acceptable in OpenStack projects."},{"line_number":62,"context_line":"As we start using extras, we\u0027ll need to track extras in global-requirements as"},{"line_number":63,"context_line":"well. We want to preserve an axiom: that projects have wider-or-equal"},{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_09276665","line":61,"in_reply_to":"3afb71cf_b5de6a6b","updated":"2015-06-08 05:45:58.000000000","message":"Yes it does; I don\u0027t think that detail is relevant - the key is that its maintained as we do today, and that we\u0027re not shifting our policy control point.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Globally we need to maintain global-requirements as we do today. This remains"},{"line_number":61,"context_line":"our policy control for which libraries are acceptable in OpenStack projects."},{"line_number":62,"context_line":"As we start using extras, we\u0027ll need to track extras in global-requirements as"},{"line_number":63,"context_line":"well. We want to preserve an axiom: that projects have wider-or-equal"},{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_95d92e86","line":62,"updated":"2015-06-07 15:04:50.000000000","message":"what\u0027s extras?","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Globally we need to maintain global-requirements as we do today. This remains"},{"line_number":61,"context_line":"our policy control for which libraries are acceptable in OpenStack projects."},{"line_number":62,"context_line":"As we start using extras, we\u0027ll need to track extras in global-requirements as"},{"line_number":63,"context_line":"well. We want to preserve an axiom: that projects have wider-or-equal"},{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_a9f5f2cb","line":62,"in_reply_to":"3afb71cf_95d92e86","updated":"2015-06-08 05:45:58.000000000","message":"https://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"e58613c664db842197b673812d877eb1369d374c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We\u0027ll add a new freeze file to global-requirements, `upper-constraints.txt`."},{"line_number":68,"context_line":"This will contain a pinned list of the entire set of transitive requirements"},{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_aeb9607b","line":67,"updated":"2015-06-03 13:49:53.000000000","message":"You mean \"add a new pip-freeze file to openstack/requirements\" ?","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We\u0027ll add a new freeze file to global-requirements, `upper-constraints.txt`."},{"line_number":68,"context_line":"This will contain a pinned list of the entire set of transitive requirements"},{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_e929aa38","line":67,"in_reply_to":"5afe65bd_aeb9607b","updated":"2015-06-08 05:45:58.000000000","message":"yes.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"e58613c664db842197b673812d877eb1369d374c","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We\u0027ll add a new freeze file to global-requirements, `upper-constraints.txt`."},{"line_number":68,"context_line":"This will contain a pinned list of the entire set of transitive requirements"},{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"},{"line_number":71,"context_line":"be tested by running a subset of the same jobs that would consume it, as well"},{"line_number":72,"context_line":"as a policy checker that checks it is compatible with global-requirements."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_ce581cfd","line":69,"updated":"2015-06-03 13:49:53.000000000","message":"Maybe define \"openstack\" here: is that all projects in projects.txt ?","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We\u0027ll add a new freeze file to global-requirements, `upper-constraints.txt`."},{"line_number":68,"context_line":"This will contain a pinned list of the entire set of transitive requirements"},{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"},{"line_number":71,"context_line":"be tested by running a subset of the same jobs that would consume it, as well"},{"line_number":72,"context_line":"as a policy checker that checks it is compatible with global-requirements."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_a91cd213","line":69,"in_reply_to":"5afe65bd_ce581cfd","updated":"2015-06-08 05:45:58.000000000","message":"sure, that definition is as good as any :)","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"},{"line_number":71,"context_line":"be tested by running a subset of the same jobs that would consume it, as well"},{"line_number":72,"context_line":"as a policy checker that checks it is compatible with global-requirements."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"We\u0027ll tighten up the policy checks on projects to require that there be no"},{"line_number":75,"context_line":"dependencies outside of those listed in global-requirements. This is needed to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_f5caa2a0","line":72,"updated":"2015-06-07 15:04:50.000000000","message":"Does the job include gate-keystone-python27? I\u0027d like to know that keystone has the responsibilty and ability to prevent problems with dep updates.\n\nAlso, how are we going to find out that we need to fix something in keystone so that the pin can be moved? I assume there will be a bug raised.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"e58613c664db842197b673812d877eb1369d374c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"},{"line_number":71,"context_line":"be tested by running a subset of the same jobs that would consume it, as well"},{"line_number":72,"context_line":"as a policy checker that checks it is compatible with global-requirements."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"We\u0027ll tighten up the policy checks on projects to require that there be no"},{"line_number":75,"context_line":"dependencies outside of those listed in global-requirements. This is needed to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_ced13ccf","line":72,"updated":"2015-06-03 13:49:53.000000000","message":"The relationship between global-requirements and upper-contraints is a bit unclear. We test that upper-contraints changes are compatible with global-requirements. But do we need to test that changes to global-requirements is compatible with upper-contraints.txt ?","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"},{"line_number":71,"context_line":"be tested by running a subset of the same jobs that would consume it, as well"},{"line_number":72,"context_line":"as a policy checker that checks it is compatible with global-requirements."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"We\u0027ll tighten up the policy checks on projects to require that there be no"},{"line_number":75,"context_line":"dependencies outside of those listed in global-requirements. This is needed to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_c9cf0e7e","line":72,"in_reply_to":"3afb71cf_f5caa2a0","updated":"2015-06-08 05:45:58.000000000","message":"This is a knob we can adjust. My initial suggestion was to run every job that can be affected by changes in deps; sdague was particularly concerned about the aggregate spurious failure rate building up to make such an aggregrate always fail. So - yes, I\u0027d be delighted for gate-keystone-python27 to be in the set of jobs used to detect such failures. The quid pro quo is that it shouldn\u0027t spuriously fail :)","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"for that branch of OpenStack. All CI jobs will use this to constrain the"},{"line_number":70,"context_line":"versions of Python projects that can be tested with. Changes to that file will"},{"line_number":71,"context_line":"be tested by running a subset of the same jobs that would consume it, as well"},{"line_number":72,"context_line":"as a policy checker that checks it is compatible with global-requirements."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"We\u0027ll tighten up the policy checks on projects to require that there be no"},{"line_number":75,"context_line":"dependencies outside of those listed in global-requirements. This is needed to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_6916daf2","line":72,"in_reply_to":"5afe65bd_ced13ccf","updated":"2015-06-08 05:45:58.000000000","message":"A change to either will run the same test which will flag a failure on either side.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"e58613c664db842197b673812d877eb1369d374c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"calculations. We\u0027ll change the check from \u0027identical line to global-requires\u0027"},{"line_number":78,"context_line":"to be \u0027compatible with both global-requires and upper-constraints\u0027. The"},{"line_number":79,"context_line":"existing requirements sync job will continue to propose converged requirements"},{"line_number":80,"context_line":"for projects that have opted into convergened dependency management."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":83,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_4ec9cc77","line":80,"updated":"2015-06-03 13:49:53.000000000","message":"-\u003e converged or convergent, not both :)","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"calculations. We\u0027ll change the check from \u0027identical line to global-requires\u0027"},{"line_number":78,"context_line":"to be \u0027compatible with both global-requires and upper-constraints\u0027. The"},{"line_number":79,"context_line":"existing requirements sync job will continue to propose converged requirements"},{"line_number":80,"context_line":"for projects that have opted into convergened dependency management."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":83,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_29a582b4","line":80,"in_reply_to":"5afe65bd_4ec9cc77","updated":"2015-06-08 05:45:58.000000000","message":"well, depending on situation, but certainly not in just one word :)","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"e58613c664db842197b673812d877eb1369d374c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":83,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":84,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":85,"context_line":"implies) as a patch to upper-constraints."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"During releases we\u0027ll gate any requirements changes on both master and any"},{"line_number":88,"context_line":"branched projects, branching openstack/requirements last when we\u0027re finally"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5afe65bd_2e8fb0cd","line":85,"updated":"2015-06-03 13:49:53.000000000","message":"I don\u0027t understand \"proposes a merge to global-requirements as a patch to upper-contraints\". You mean \"propose a openstack/requirements change to update upper-contraints\" ? Something else ?","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":83,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":84,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":85,"context_line":"implies) as a patch to upper-constraints."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"During releases we\u0027ll gate any requirements changes on both master and any"},{"line_number":88,"context_line":"branched projects, branching openstack/requirements last when we\u0027re finally"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_c996ee4b","line":85,"in_reply_to":"5afe65bd_2e8fb0cd","updated":"2015-06-08 05:45:58.000000000","message":"yes that.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":84,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":85,"context_line":"implies) as a patch to upper-constraints."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"During releases we\u0027ll gate any requirements changes on both master and any"},{"line_number":88,"context_line":"branched projects, branching openstack/requirements last when we\u0027re finally"},{"line_number":89,"context_line":"ready to decouple the release from master. This is aimed at the changes"},{"line_number":90,"context_line":"involved in using new releases of oslo etc."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_d55b26f5","line":87,"updated":"2015-06-07 15:04:50.000000000","message":"I don\u0027t know what \"During releases\" means. Maybe \"When creating a release\"?","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":85,"context_line":"implies) as a patch to upper-constraints."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"During releases we\u0027ll gate any requirements changes on both master and any"},{"line_number":88,"context_line":"branched projects, branching openstack/requirements last when we\u0027re finally"},{"line_number":89,"context_line":"ready to decouple the release from master. This is aimed at the changes"},{"line_number":90,"context_line":"involved in using new releases of oslo etc."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_4989de25","line":87,"in_reply_to":"3afb71cf_d55b26f5","updated":"2015-06-08 05:45:58.000000000","message":"Same thing: releases in OpenStack are not atomic. It takes a few weeks to do :/. I\u0027ll add words to explain this detail.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":142,"context_line":"- Turn that script into a periodic job. [fungi]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- Debug and fix as needed until we get reasonably reliable passes on"},{"line_number":145,"context_line":"  the non-voting g-r jobs."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"- Flip the constraints using jobs to voting on g-r, and non-voting"},{"line_number":148,"context_line":"  everywhere else. [fungi]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_1509bedd","line":145,"updated":"2015-06-07 15:04:50.000000000","message":"who\u0027s doing this?","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":142,"context_line":"- Turn that script into a periodic job. [fungi]"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"- Debug and fix as needed until we get reasonably reliable passes on"},{"line_number":145,"context_line":"  the non-voting g-r jobs."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"- Flip the constraints using jobs to voting on g-r, and non-voting"},{"line_number":148,"context_line":"  everywhere else. [fungi]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_0983e605","line":145,"in_reply_to":"3afb71cf_1509bedd","updated":"2015-06-08 05:45:58.000000000","message":"Everyone I can rope into it, but mainly me.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":153,"context_line":"- Update release documentation to branch openstack/requirements last, and"},{"line_number":154,"context_line":"  setup the job that will validate requirements changes against the projects"},{"line_number":155,"context_line":"  that have branched already, as well as master itself. [fungi]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Dependencies"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_d5120609","line":156,"updated":"2015-06-07 15:04:50.000000000","message":"Just making sure -- it looks like there\u0027s no changes required in all the projects? (e.g., keystone).","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":153,"context_line":"- Update release documentation to branch openstack/requirements last, and"},{"line_number":154,"context_line":"  setup the job that will validate requirements changes against the projects"},{"line_number":155,"context_line":"  that have branched already, as well as master itself. [fungi]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Dependencies"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_e9852a07","line":156,"in_reply_to":"3afb71cf_d5120609","updated":"2015-06-08 05:45:58.000000000","message":"The addition of the use of constraints, higher up, will hit all the projects.","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6a8a80fd7370396da318448f9d83f250f5e09bae","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   * - Release Name"},{"line_number":170,"context_line":"     - Description"},{"line_number":171,"context_line":"   * - Kilo"},{"line_number":172,"context_line":"     - Introduced"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_95f5aecc","line":171,"updated":"2015-06-07 15:04:50.000000000","message":"Liberty","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"a6f30667ec1109198a6669c01239a61796b8511c","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   * - Release Name"},{"line_number":170,"context_line":"     - Description"},{"line_number":171,"context_line":"   * - Kilo"},{"line_number":172,"context_line":"     - Introduced"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_c97dce1d","line":171,"in_reply_to":"3afb71cf_95f5aecc","updated":"2015-06-08 05:45:58.000000000","message":"Done","commit_id":"9fe886096fdf752cbe88ea8ad7229cf996a37da8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b2df393c454b24b32ca11ecdc842fb894e89fc75","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"1. Provide “some” expression to downstream packagers/users"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":38,"context_line":"   non-devstack)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Encourage convergence/maintain co-installability"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_5db8d810","line":37,"updated":"2015-06-11 02:16:41.000000000","message":"I don\u0027t know what this means.","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"7131415ce8af4e5f556a88b21b5312625b0eb453","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"1. Provide “some” expression to downstream packagers/users"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":38,"context_line":"   non-devstack)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Encourage convergence/maintain co-installability"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_0aefcae9","line":37,"in_reply_to":"3afb71cf_3ef060c8","updated":"2015-06-23 21:07:45.000000000","message":"ugh, stuck in draft.\n\"Neither do I; it was written on the board while I ducked into the toilet... could be anything. I think it refers to the set of test jobs we run that can break due to requirements issues.\"","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"85cf50ce259ee14e2861eae1959c18e25c56f924","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"1. Provide “some” expression to downstream packagers/users"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":38,"context_line":"   non-devstack)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Encourage convergence/maintain co-installability"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_6c4d1dc3","line":37,"in_reply_to":"3afb71cf_5db8d810","updated":"2015-06-11 10:00:49.000000000","message":"I answered as best I could in the prior iteration; we\u0027ll need to get sdague/dhellman etc to elucidate.","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4e7f4b6476b2ab0a09e915cb2aa9f7e6d6b96f21","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"1. Provide “some” expression to downstream packagers/users"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"2. Configure test jobs (unit, integration, \u0026 functional) (devstack \u0026"},{"line_number":38,"context_line":"   non-devstack)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Encourage convergence/maintain co-installability"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_3ef060c8","line":37,"in_reply_to":"3afb71cf_6c4d1dc3","updated":"2015-06-11 13:19:22.000000000","message":"I don\u0027t see a response on patch set 4?","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":979,"name":"Dave Walker","email":"email@daviey.com","username":"davewalker"},"change_message_id":"1a1f43430d562efeb9c860522b01f895cd126ea2","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Encourage convergence/maintain co-installability"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"4. Not be fiction"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"5. pip install python-novaclient works"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_61052612","line":42,"updated":"2015-06-11 09:39:16.000000000","message":"Perhaps this could be more verbose?","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"85cf50ce259ee14e2861eae1959c18e25c56f924","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"3. Encourage convergence/maintain co-installability"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"4. Not be fiction"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"5. pip install python-novaclient works"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_4c4821b3","line":42,"in_reply_to":"3afb71cf_61052612","updated":"2015-06-11 10:00:49.000000000","message":"Similarly.","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b2df393c454b24b32ca11ecdc842fb894e89fc75","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Globally we need to maintain global-requirements as we do today. This remains"},{"line_number":61,"context_line":"our policy control for which libraries are acceptable in OpenStack projects."},{"line_number":62,"context_line":"As we start using extras, we\u0027ll need to track extras in global-requirements as"},{"line_number":63,"context_line":"well. We want to preserve an axiom: that projects have wider-or-equal"},{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_9d49b033","line":62,"updated":"2015-06-11 02:16:41.000000000","message":"Making \"extras\" a hyperlink to https://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies would make this easier to understand.","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"1a778c4697b0b49cfb03ba67713f3a294cd0afb6","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Globally we need to maintain global-requirements as we do today. This remains"},{"line_number":61,"context_line":"our policy control for which libraries are acceptable in OpenStack projects."},{"line_number":62,"context_line":"As we start using extras, we\u0027ll need to track extras in global-requirements as"},{"line_number":63,"context_line":"well. We want to preserve an axiom: that projects have wider-or-equal"},{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_aaad7e9c","line":62,"in_reply_to":"3afb71cf_9d49b033","updated":"2015-06-23 21:11:42.000000000","message":"Done","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b2df393c454b24b32ca11ecdc842fb894e89fc75","unresolved":false,"context_lines":[{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We\u0027ll add a new pip freeze file to openstack/requirements,"},{"line_number":68,"context_line":"`upper-constraints.txt`.  This will contain a pinned list of the entire set of"},{"line_number":69,"context_line":"transitive requirements for that branch of OpenStack (defined by the projects"},{"line_number":70,"context_line":"within the projects.txt file in openstack/requirements). All CI jobs will use"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_bd758c64","line":67,"updated":"2015-06-11 02:16:41.000000000","message":"suggest change , to \"called\" since the way it is now it reads like `upper-constraints.txt` is another name for openstack/requirements.","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"1a778c4697b0b49cfb03ba67713f3a294cd0afb6","unresolved":false,"context_lines":[{"line_number":64,"context_line":"requirements than the coordinated release which has wider-or-equal"},{"line_number":65,"context_line":"requirements to the test pinned list."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"We\u0027ll add a new pip freeze file to openstack/requirements,"},{"line_number":68,"context_line":"`upper-constraints.txt`.  This will contain a pinned list of the entire set of"},{"line_number":69,"context_line":"transitive requirements for that branch of OpenStack (defined by the projects"},{"line_number":70,"context_line":"within the projects.txt file in openstack/requirements). All CI jobs will use"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_4a971248","line":67,"in_reply_to":"3afb71cf_bd758c64","updated":"2015-06-23 21:11:42.000000000","message":"Done","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b2df393c454b24b32ca11ecdc842fb894e89fc75","unresolved":false,"context_lines":[{"line_number":71,"context_line":"this to constrain the versions of Python projects that can be tested with."},{"line_number":72,"context_line":"Changes to that file will be tested by running a subset of the same jobs that"},{"line_number":73,"context_line":"would consume it, as well as a policy checker that checks it is compatible"},{"line_number":74,"context_line":"with global-requirements. Changes to either `global-requirements.txt` or"},{"line_number":75,"context_line":"`upper-constraints.txt` will have to be compatible with each other."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"We\u0027ll tighten up the policy checks on projects to require that there be no"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_fd0d44e8","line":74,"updated":"2015-06-11 02:16:41.000000000","message":"this line refers to global-requirements.txt in 2 different ways, pick one to be consistent. e.g., change \"global-requirements\" to \"`global-requirements.txt`\"","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"1a778c4697b0b49cfb03ba67713f3a294cd0afb6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"this to constrain the versions of Python projects that can be tested with."},{"line_number":72,"context_line":"Changes to that file will be tested by running a subset of the same jobs that"},{"line_number":73,"context_line":"would consume it, as well as a policy checker that checks it is compatible"},{"line_number":74,"context_line":"with global-requirements. Changes to either `global-requirements.txt` or"},{"line_number":75,"context_line":"`upper-constraints.txt` will have to be compatible with each other."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"We\u0027ll tighten up the policy checks on projects to require that there be no"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_8a7f5a16","line":74,"in_reply_to":"3afb71cf_fd0d44e8","updated":"2015-06-23 21:11:42.000000000","message":"Done","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":979,"name":"Dave Walker","email":"email@daviey.com","username":"davewalker"},"change_message_id":"1a1f43430d562efeb9c860522b01f895cd126ea2","unresolved":false,"context_lines":[{"line_number":85,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":86,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":87,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":88,"context_line":"implies) as a patch to upper-constraints."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Releases are a multi week process in OpenStack as different servers fork and"},{"line_number":91,"context_line":"setup their branches one at a time. During that period we\u0027ll gate any"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_c13cdae2","line":88,"updated":"2015-06-11 09:39:16.000000000","message":"As I understand it, this means there will be a periodic job that will check PyPI for new releases of each package declared in requirements.txt, run it through the gate - if it passes, then we can adopt the newer upper-constraint.\n\nIf this is correct (then the paragraph probably needs to be clearer):\n\n1) If an upstream has released more than 1 release in that period, do we test each one or just the highest?\n\n2) Will each periodic job test 1 new release of an upstream project at a time, or all changes on that scan?\n\n3) Will we have a reporting mechanism for the data of known bad upstream releases (other than digging through gerrit)?  Do we need a known-bad.txt ?\n\n4) If an upstream release was previously bad, will it be re-tested at a later date (if we adjust our usage for newer API\u0027s)? \n\n5) Will we have a mechanism to human override upper-constraints? (without fighting with a bot)\n\n6) *CAN* pbr be tested as a library part of this? :)\n\nThanks","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"85cf50ce259ee14e2861eae1959c18e25c56f924","unresolved":false,"context_lines":[{"line_number":85,"context_line":"We\u0027ll create a periodic job that takes global-requirements, expands it out"},{"line_number":86,"context_line":"transitively, and then proposes a merge to global-requirements bringing in"},{"line_number":87,"context_line":"any new releases (and any new or removed transitive-only dependencies that that"},{"line_number":88,"context_line":"implies) as a patch to upper-constraints."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Releases are a multi week process in OpenStack as different servers fork and"},{"line_number":91,"context_line":"setup their branches one at a time. During that period we\u0027ll gate any"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_8c75f9cb","line":88,"in_reply_to":"3afb71cf_c13cdae2","updated":"2015-06-11 10:00:49.000000000","message":"1) The job is in review in project-config now, using generate-constraints which is landed in openstack/requirements. We don\u0027t try to walk monotonically, we just take what pip finds and try it.\n\n2) All changes.\n\n3) global-requirements.txt is that mechanism - see something bad, blacklist it.\n\n4) no. See 3.\n\n5) We have that, infra can force-push on need to any repo.\n\n6) pbr has a small library interface, which is tested, but isn\u0027t primarily a library, I\u0027m not sure what you\u0027re asking about here.","commit_id":"a111a835ff3ddbadec548f9003537a357bde5519"}]}
