)]}'
{"specs/tempest/reintegrate-tempest-lib.rst":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"123a7241d91ba64f4ddcf99c8c8401b5e430dc6f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"For several releases we\u0027ve had tempest-lib which is a separate python repo"},{"line_number":21,"context_line":"and python package that contains a stable library interface suitable for"},{"line_number":22,"context_line":"external consumption. The idea behind the project is to migrate common pieces"},{"line_number":23,"context_line":"from tempest into the new repo. However, this migration process and having"},{"line_number":24,"context_line":"code which once lived in tempest be somewhere else adds a lot of friction to"},{"line_number":25,"context_line":"the process."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"},{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_a918351f","line":25,"range":{"start_line":23,"start_character":32,"end_line":25,"end_character":12},"updated":"2016-02-05 03:45:43.000000000","message":"Yeah, this is the same as my feeling.\n\nnice point.","commit_id":"89b6fe77bf8443dc4ac29d4948d0e2d173f9d9bf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"123a7241d91ba64f4ddcf99c8c8401b5e430dc6f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"repo. We then will declare all public interface under that directory as stable"},{"line_number":33,"context_line":"interfaces, just like we did in tempest-lib."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"The tempest-lib repository will stay around, but instead of holding code"},{"line_number":36,"context_line":"directly it\u0027ll just be a passthrough to tempest.lib. This is done for 2"},{"line_number":37,"context_line":"reasons, backwards compatibility for current tempest-lib users and to enable"},{"line_number":38,"context_line":"using semver versioning of the library interface."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"This reintegration of tempest-lib should change our release cadence for tempest"},{"line_number":41,"context_line":"a bit. Previously we\u0027ve pushed tempest releases on every start of a new"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_29a9a590","line":38,"range":{"start_line":35,"start_character":0,"end_line":38,"end_character":49},"updated":"2016-02-05 03:45:43.000000000","message":"The above is fine for me, thanks","commit_id":"89b6fe77bf8443dc4ac29d4948d0e2d173f9d9bf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"123a7241d91ba64f4ddcf99c8c8401b5e430dc6f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"reasons, backwards compatibility for current tempest-lib users and to enable"},{"line_number":38,"context_line":"using semver versioning of the library interface."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"This reintegration of tempest-lib should change our release cadence for tempest"},{"line_number":41,"context_line":"a bit. Previously we\u0027ve pushed tempest releases on every start of a new"},{"line_number":42,"context_line":"OpenStack release, a major new feature lands in tempest, and when we EOL"},{"line_number":43,"context_line":"a stable branch. However, since we\u0027ll likely be more frequently adding things"},{"line_number":44,"context_line":"to the library interface bumping the version"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_499c215d","line":44,"range":{"start_line":40,"start_character":0,"end_line":44,"end_character":44},"updated":"2016-02-05 03:45:43.000000000","message":"Now Tempest is branchless and we are not tagging Tempest, right?\n\nSo I am guessing tags of Tempest will mean tempest-lib versions now.\n\nOne question is that our infra can release the part of tempest as a new tempest-lib?","commit_id":"89b6fe77bf8443dc4ac29d4948d0e2d173f9d9bf"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6352a940c34faf1c04c0f56aae7d4147cb506f4e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"reasons, backwards compatibility for current tempest-lib users and to enable"},{"line_number":38,"context_line":"using semver versioning of the library interface."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"This reintegration of tempest-lib should change our release cadence for tempest"},{"line_number":41,"context_line":"a bit. Previously we\u0027ve pushed tempest releases on every start of a new"},{"line_number":42,"context_line":"OpenStack release, a major new feature lands in tempest, and when we EOL"},{"line_number":43,"context_line":"a stable branch. However, since we\u0027ll likely be more frequently adding things"},{"line_number":44,"context_line":"to the library interface bumping the version"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a57f1b5_b5f44a87","line":44,"range":{"start_line":40,"start_character":0,"end_line":44,"end_character":44},"in_reply_to":"5a5ae5dd_499c215d","updated":"2016-02-10 19:05:52.000000000","message":"I\u0027m not sure I understand the question. We do push tag tempest now: http://tarballs.openstack.org/tempest/\n\nWhat do you mean release part of tempest as a new tempest-lib?","commit_id":"89b6fe77bf8443dc4ac29d4948d0e2d173f9d9bf"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"123a7241d91ba64f4ddcf99c8c8401b5e430dc6f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"----------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":" * Take ownership of tempest on pypi [1]"},{"line_number":74,"context_line":" * Start publishing tempest"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_890bf98d","line":74,"range":{"start_line":74,"start_character":2,"end_line":74,"end_character":27},"updated":"2016-02-05 03:45:43.000000000","message":"After migrating, we need to separate the tempest-lib\u0027s git logs from all git logs and write the release note according to that.\n\nSo if we have some script for collecting tempest-lib\u0027s git logs, we can easily write the release notes.","commit_id":"89b6fe77bf8443dc4ac29d4948d0e2d173f9d9bf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b30e217862baac692b8109f561c2a74935daf64a","unresolved":false,"context_lines":[{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This shouldn\u0027t be dependent on any other effors, however it may cause conflicts"},{"line_number":82,"context_line":"with other BPs in progress, especially with efforts to do lib migrations "},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"References"},{"line_number":85,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_3a73a517","line":82,"range":{"start_line":82,"start_character":72,"end_line":82,"end_character":73},"updated":"2016-02-09 00:56:28.000000000","message":"I hope it does not mean we should stop migration work :). But we should clear on that here.","commit_id":"89b6fe77bf8443dc4ac29d4948d0e2d173f9d9bf"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"2eda5dc2fe5cc59c00b45a59766cfd4b4e9f82cb","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_1d19c622","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"updated":"2016-02-17 07:50:11.000000000","message":"I just have to outline that it\u0027s very hard for project not in core to keep their gate stable. Changes in tempest/devstack broke the gate of those projects several times and caused also headaches for much more people. I would like to see more details how the public interface can be kept stable. Version tags doesn\u0027t really work I guess.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"131605df1b0de80c647a28d358b1670555797e3e","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_1bdcb345","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_135b45f7","updated":"2016-02-19 02:58:52.000000000","message":"@Matthew,\n\nYeah, reviewers should catch all backward-incompatible changes basically. However, it is hard burden as you said because sometimes we want to change/extend the interfaces but we can miss unexpected backward-incompatible changes during reviews. Maybe the high coverage of unit tests is necessary for avoiding this kind of situation anyway.\n\n \u003e I actually think having the lib and a consumer of the\n \u003e lib live in the same tree makes this easier to catch.\n\nThat is a nice point. I also sometimes had similar concerns when releasing a new tempest-lib which contains new interfaces which are not used in Tempest at all.\n\nWhen doing the above, I was not sure the interfaces/features works actually fine because Tempest didn\u0027t use at all. In addition, it is difficult to change interfaces after releasing. So if re-integrating tempest-lib again, we can verify the interfaces work fine on the same time before releasing. That is a strong point of this proposal for me.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7500289969dc8a0d946bba640a22ae23edffc6f6","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_4c952731","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_135b45f7","updated":"2016-02-18 00:57:31.000000000","message":"Yea that\u0027s true. Current case also same as pointed by Matt. With review and UT only we make sure backward compatibility till release.\n\nI have one idea but that may be silly or very bad-\n As tempest is consumer of all most all of the lib interface, How about running a new job in tempest-\n\n - gate-tempest-dsvm-full-stable-interface\n   -  Run only when changes in tempest/lib folder\n   -  Use tempest code from previous master not current patch   \n      master (I mean in this job tempest code will be     \n      immediate previous master )\n   -  Replace tempest/lib folder with the current proposed patch\u0027s tempest/lib in above checkout tempest.\n\n\nSo in that job we will make sure none of the stable interface change break existing usage. \nBut do not know how good or feasible it will be to prepare such tempest repo as mentioned in job definition.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6cef675bec3f013be70a38267dd17efd7fcf4051","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_d8bc5abd","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_1d19c622","updated":"2016-02-17 22:26:49.000000000","message":"I can see some points from Marc`s comment.\n\nIf re-integrating the code of tempest-lib into tempest again, tempest can use the code directly like:\n\n from tempest.lib import abc\n\nSo I am imaging tempest will use the code as local modules and we(qa team) can break the interfaces of tempest-lib *without* breaking tempest gates.\nThat means we can break non-core gates which are using the code as library without breaking tempest gates.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"56acd65f0c680d1ce9c00702e5268fbeb29a54b3","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_b69c1dc1","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_1d19c622","updated":"2016-02-17 16:11:55.000000000","message":"It\u0027s very hard for anyone to keep a gate stable. That\u0027s not different because a project is core or not.\n\nSo has a project been broken because of tempest-lib changes? Or because against recommendations they import code straight from tempest? Almost every breakage I can think of has been because a project isn\u0027t using tempest-lib for something (likely because it can\u0027t) or it\u0027s implicitly relying on something in devstack which isn\u0027t a guarantee either. I\u0027m not saying slip ups don\u0027t happen, to err is to be human, but in my experience most of the breakages you\u0027re referring to are caused because people aren\u0027t using the stable interfaces and things are changing on them in places where we say they will.\n\nFor example, the most recent example I can think of relating to all this is when I removed the use of the deprecated user and alt_user creds config options from devstack\u0027s configuration of tempest. The lib/* files in devstack are not a stable interface and a few projects (especially those that copied parts of their tempest-plugin from manila) had hard coded the use of these options. (which was bad on several fronts including that those options will be going away, but that\u0027s a separate thing) But, if they depending on having those options configured they should have been doing that in their devstack plugin then. Instead of implicitly relying on something in a file which has been declared an unstable interface and will be changing.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"22c7c50a174d5050cbf4ad4bdbab49996e69afc0","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_fae49fac","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_2fad3588","updated":"2016-02-18 09:33:47.000000000","message":"Having a CI job would at least give a certain kind of stability. But the main question is what the term \"stable interface\" really means. The tempest consumers except more than just lib stability. They also demand stability in config files and internal tempest classes. For sure this is something where we can say it\u0027s simply wrong usage but IMHO tempest is lacking a well defined interface (also with tempest plugin in place). And I hoped that tempest-lib would solve it but unfortunately it doesn\u0027t.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"613c52012a0e3c02f134f32ca954045b93d16814","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_6f29fd89","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_4c952731","updated":"2016-02-18 01:17:20.000000000","message":"@Ghanshyam I\u0027m not sure what the point of that job would be. Git commits are atomic, if we change an interface in a non-backwards compatible manner then we will have to update the tempest side in the same commit. Otherwise it won\u0027t pass the regular jobs. (for interfaces tempest actually uses, nothing is changing for those that aren\u0027t) That should stick out like a sore thumb to reviewers as something not good. Going through the headache to setup an additional job to do a partial checkout of HEAD^ doesn\u0027t make much sense. Especially when you can just look at what\u0027s being changed...","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3d089e73eb8a57f9c0a0cfe406b42b8d931b19a0","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_2fad3588","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_6f29fd89","updated":"2016-02-18 01:34:20.000000000","message":"Yea i agree that backward in-comp changes can be caught up during review. If we want to make sure those we can always run on local. \n\nIf really needed then we can think about such job so +1 on current approach.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0ee2dd9b9442b95672093da67fa5e04c7bf0c87a","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The proposed change is to copy all the library code that currently exists in"},{"line_number":34,"context_line":"the tempest-lib repo and migrate it to tempest/lib in the tempest repo. We then"},{"line_number":35,"context_line":"will declare all public interface under that directory as stable interfaces,"},{"line_number":36,"context_line":"just like we did in tempest-lib. Any public interface that lands in tempest.lib"},{"line_number":37,"context_line":"will be assumed to be a stable interface once it lives in the namespace."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_135b45f7","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":34},"in_reply_to":"dae33548_d8bc5abd","updated":"2016-02-17 22:44:32.000000000","message":"@Ken\u0027ichi This hasn\u0027t changed at all. We can land a change to tempest-lib today and we\u0027ll only find out about a breakage when we push a release. The burden has always been on the reviewers (and unit testing) to ensure backwards compatibility. If we see a change that breaks an interface we shouldn\u0027t merge it. Again, are there an actual examples of us doing this in practice? I think as a whole we\u0027ve been very good about ensuring stable interfaces in tempest-lib. I feel the bad here is just hypothetical and most of the actual examples of breakages are people not doing the right thing or having unrealistic expectations. I\u0027m not sure how moving where the code lives will change any of that.\n\nI actually think having the lib and a consumer of the lib live in the same tree makes this easier to catch. If the consumer side has to be updated at the same time that\u0027s probably a pretty good indication that we\u0027re breaking an interface. With the current tempest-lib as a separate repo we\u0027re relying solely on the existing unit test coverage to provide this indication to reviewers.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"3502156a0c31868bc455cbb8bf6b00f8d57be72a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"a stable branch. However, since we\u0027ll likely be more frequently adding things"},{"line_number":48,"context_line":"to the library interface bumping the version will likely happen more frequently."},{"line_number":49,"context_line":"The release versioning scheme for tempest will not change, meaning we\u0027ll still"},{"line_number":50,"context_line":"have a monotonically increasing integer, just more releases during a cycle."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Tempest-lib will become a library with a shim passthrough to tempest.lib for"},{"line_number":53,"context_line":"all the modules exposed via the library interface. We\u0027ll start the 1.x.x"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a57f1b5_03c4c88e","line":50,"range":{"start_line":50,"start_character":7,"end_line":50,"end_character":39},"updated":"2016-02-11 17:47:51.000000000","message":"I\u0027ve been thinking about this some more. I think maybe we should augment our release versioning a bit. I\u0027m thinking it would be better to still use the major version to work the way we\u0027ve been using it now (OpenStack releases, EOLs, and major feature changes) but we add a minor version which is a bump in the stable interface living in \u0027tempest.lib\u0027, with the minor version resets at each major version.\n\nThoughts?","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"42ac6dffb45ea280a932a0b7cf12254dc17638f2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"a stable branch. However, since we\u0027ll likely be more frequently adding things"},{"line_number":48,"context_line":"to the library interface bumping the version will likely happen more frequently."},{"line_number":49,"context_line":"The release versioning scheme for tempest will not change, meaning we\u0027ll still"},{"line_number":50,"context_line":"have a monotonically increasing integer, just more releases during a cycle."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Tempest-lib will become a library with a shim passthrough to tempest.lib for"},{"line_number":53,"context_line":"all the modules exposed via the library interface. We\u0027ll start the 1.x.x"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_b3f8104b","line":50,"range":{"start_line":50,"start_character":7,"end_line":50,"end_character":39},"in_reply_to":"3a57f1b5_03c4c88e","updated":"2016-02-16 06:48:53.000000000","message":"+1 for that.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"131605df1b0de80c647a28d358b1670555797e3e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"a stable branch. However, since we\u0027ll likely be more frequently adding things"},{"line_number":48,"context_line":"to the library interface bumping the version will likely happen more frequently."},{"line_number":49,"context_line":"The release versioning scheme for tempest will not change, meaning we\u0027ll still"},{"line_number":50,"context_line":"have a monotonically increasing integer, just more releases during a cycle."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Tempest-lib will become a library with a shim passthrough to tempest.lib for"},{"line_number":53,"context_line":"all the modules exposed via the library interface. We\u0027ll start the 1.x.x"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_7b8fbfcc","line":50,"range":{"start_line":50,"start_character":7,"end_line":50,"end_character":39},"in_reply_to":"3a57f1b5_03c4c88e","updated":"2016-02-19 02:58:52.000000000","message":"I am not sure my understanding is right of this versioning.\n\nAfter re-integrating, the versioning tags become the following, right?\n\n Tempest: X.0.0\n tempest-lib: 1.y.z\n\nThen, new tempest-libs will be released when tagging 1.y.z on tempest repo, right?","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"13c89d7d16552e029685cc4dc99edb5bfd7cb6b5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"a stable branch. However, since we\u0027ll likely be more frequently adding things"},{"line_number":48,"context_line":"to the library interface bumping the version will likely happen more frequently."},{"line_number":49,"context_line":"The release versioning scheme for tempest will not change, meaning we\u0027ll still"},{"line_number":50,"context_line":"have a monotonically increasing integer, just more releases during a cycle."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Tempest-lib will become a library with a shim passthrough to tempest.lib for"},{"line_number":53,"context_line":"all the modules exposed via the library interface. We\u0027ll start the 1.x.x"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bae84128_2eb770d9","line":50,"range":{"start_line":50,"start_character":7,"end_line":50,"end_character":39},"in_reply_to":"dae33548_7b8fbfcc","updated":"2016-02-21 11:34:00.000000000","message":"+1 Having a minor version to play with will give us more flexibility.\n\n@Ken\u0027ichi, currently we have Tempest 7, Tempest 8, Tempest 9, so we just issue \"major\" release. Matthew\u0027s proposal it to also have \"minor\" release, so Tempest 9.1, Tempest 9.2 etc. The minor \u0027number\u0027 will change each time we change the interface in \u0027tempest/lib\u0027.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"c570a0a785d1c146965ce345529d194a83875261","unresolved":false,"context_lines":[{"line_number":100,"context_line":"described above. However, instead of maintaining a passthrough layer with"},{"line_number":101,"context_line":"semver versioning in the tempest-lib repo we could instead just mark it as"},{"line_number":102,"context_line":"deprecated recommend users directly use tempest.lib. (and maybe one day remove"},{"line_number":103,"context_line":"tempest-lib, altthough likely never) The advantage with this is that we avoid"},{"line_number":104,"context_line":"the maintanence overhead with having to add and keep the passthrough layer."},{"line_number":105,"context_line":"However, the downside with this is we are essentially break our contract with"},{"line_number":106,"context_line":"users. We had said we would maintain tempest-lib\u0027s interfaces moving forward"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bae84128_c3b548d1","line":103,"range":{"start_line":103,"start_character":13,"end_line":103,"end_character":22},"updated":"2016-02-19 09:05:53.000000000","message":"typo: although","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"c570a0a785d1c146965ce345529d194a83875261","unresolved":false,"context_lines":[{"line_number":101,"context_line":"semver versioning in the tempest-lib repo we could instead just mark it as"},{"line_number":102,"context_line":"deprecated recommend users directly use tempest.lib. (and maybe one day remove"},{"line_number":103,"context_line":"tempest-lib, altthough likely never) The advantage with this is that we avoid"},{"line_number":104,"context_line":"the maintanence overhead with having to add and keep the passthrough layer."},{"line_number":105,"context_line":"However, the downside with this is we are essentially break our contract with"},{"line_number":106,"context_line":"users. We had said we would maintain tempest-lib\u0027s interfaces moving forward"},{"line_number":107,"context_line":"but doing this would be a hard stop on all that and force users to update all"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bae84128_e3b4ccd2","line":104,"range":{"start_line":104,"start_character":4,"end_line":104,"end_character":15},"updated":"2016-02-19 09:05:53.000000000","message":"typo: maintenance","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"42ac6dffb45ea280a932a0b7cf12254dc17638f2","unresolved":false,"context_lines":[{"line_number":106,"context_line":"users. We had said we would maintain tempest-lib\u0027s interfaces moving forward"},{"line_number":107,"context_line":"but doing this would be a hard stop on all that and force users to update all"},{"line_number":108,"context_line":"their imports in code everywhere from tempest_lib to tempest.lib to maintain"},{"line_number":109,"context_line":"using that."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Implementation"},{"line_number":112,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_f33458fc","line":109,"range":{"start_line":109,"start_character":10,"end_line":109,"end_character":11},"updated":"2016-02-16 06:48:53.000000000","message":"I like idea to deprecate and for existing user, may be we can have long deprecation period till they all move to new import.\n\nBecause if we keep maintaining the tempest-lib then we might need to end up keep releasing tempest-lib for changes in interfaces in tempest/lib for the user which want to use tempest-lib always.\n or\nwe stop tempest-lib on say 0.14.0? and maintain passthrough layer only for interfaces till 0.14.0 not new one.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"13c89d7d16552e029685cc4dc99edb5bfd7cb6b5","unresolved":false,"context_lines":[{"line_number":106,"context_line":"users. We had said we would maintain tempest-lib\u0027s interfaces moving forward"},{"line_number":107,"context_line":"but doing this would be a hard stop on all that and force users to update all"},{"line_number":108,"context_line":"their imports in code everywhere from tempest_lib to tempest.lib to maintain"},{"line_number":109,"context_line":"using that."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Implementation"},{"line_number":112,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bae84128_8ef4bc87","line":109,"range":{"start_line":109,"start_character":10,"end_line":109,"end_character":11},"in_reply_to":"bae84128_83f22099","updated":"2016-02-21 11:34:00.000000000","message":"Do we have an idea on \"who is importing tempest-lib\" ? Maybe if it\u0027s only 3/4 projects we can work with them quickly to help them migrate from tempest-lib to tempest.lib ?","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"c570a0a785d1c146965ce345529d194a83875261","unresolved":false,"context_lines":[{"line_number":106,"context_line":"users. We had said we would maintain tempest-lib\u0027s interfaces moving forward"},{"line_number":107,"context_line":"but doing this would be a hard stop on all that and force users to update all"},{"line_number":108,"context_line":"their imports in code everywhere from tempest_lib to tempest.lib to maintain"},{"line_number":109,"context_line":"using that."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Implementation"},{"line_number":112,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bae84128_83f22099","line":109,"range":{"start_line":109,"start_character":10,"end_line":109,"end_character":11},"in_reply_to":"dae33548_f33458fc","updated":"2016-02-19 09:05:53.000000000","message":"I\u0027m in favour of the deprecation of tempest-lib as well.","commit_id":"c74d010fe82dbf506dd912b8edf40676ffe6ea4e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3a349e2f9a5b17e5d642659de5e0d00de7e7eeca","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The tempest-lib repository will stay around, however, instead of continuing to"},{"line_number":40,"context_line":"push migrated pieces into it or maintaining a passthrough layer with"},{"line_number":41,"context_line":"semver versioning in the tempest-lib repo we\u0027ll just push a final 1.0.0 release"},{"line_number":42,"context_line":"and mark the it as deprecated. We\u0027ll add a python deprecation warning which will"},{"line_number":43,"context_line":"be emitted when tempest-lib is used to recommend users directly use"},{"line_number":44,"context_line":"tempest.lib. This will mean users will continue to have tempest-lib work the way"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_2caf5582","line":41,"range":{"start_line":41,"start_character":58,"end_line":41,"end_character":79},"updated":"2016-02-22 15:00:31.000000000","message":"nit: This ways seems interesting for me. In general 1.0.0 means mature, but here we will mark it as deprecated.","commit_id":"2d70762692fc82687f377b51c40249309fae6426"}]}
