)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"12a03aece3db61e2cd5736a32b1634141f9cbba9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"da7042de_d76bfa3c","updated":"2024-08-29 13:04:50.000000000","message":"Alternative proposal to https://review.opendev.org/c/openstack/oslo-specs/+/922597","commit_id":"07ac24951cdc15a1b64e41ea2834298d03425403"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"fd9f60c66460c7ba09359f6204d2499e6137e2c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"98bb21d8_fc079c35","updated":"2024-08-29 16:45:18.000000000","message":"I\u0027m not sure the doc error is legit... it seems related to warnings not related to this patch. I need to analyze that problem more deeply.","commit_id":"395e371b327ea44112cc8b4c7c2f3cb050a2e8d4"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"83c0dc2dc1be38bec5cfdcc88bbc25ddbc1c48d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b2fecf5f_b6e99a32","updated":"2024-10-09 09:28:19.000000000","message":"Seems good for me and I would like to work on the implementation.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"0d7ffb487f042f790ef4746e2fe7ad7d7f1b6f7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4e4917ac_f7f9d107","updated":"2024-10-22 13:47:57.000000000","message":"I think now the spec is good to be merge. We have a good idea of what we want.","commit_id":"50edcf8b4cd096cbfe63ab7f3d6886748eeadc77"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d632c6921cd516836ebec3461d1bbfc4d0f477c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"348a8462_f7e21963","updated":"2024-10-18 10:33:40.000000000","message":"Ok to this spec, in particular with the removal of some features, heavily based in eventlet, and the soft migration providing a configurable backend. The configurable backend will allow, to the different projects, to add experimental jobs using and testing it.","commit_id":"50edcf8b4cd096cbfe63ab7f3d6886748eeadc77"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53bbbf0f945acdae7ef1fd9a0b3409612fbb0e25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"707fb1c7_d40cb35a","updated":"2024-10-31 17:35:27.000000000","message":"I added a few comments/questions.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ebc6aac31277fe5bf72c60bfeb2b9de09aef7982","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3c9c61fd_1534ff70","updated":"2024-11-13 13:44:16.000000000","message":"I went through the latest version and it looks good to me as a baseline to start implementations. We can adjust minor items later when needed.\n\nLeaving a few minor comments. I\u0027m ok if you want to address these in follow-up. The dependency management may need discussion in actual implementation phase.(then count my +1 as +2 )","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"f4082da38768942bdb8577447ea5cedeb43f0f70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4beac3bb_13f6e93b","updated":"2024-11-14 09:47:21.000000000","message":"follow up: https://review.opendev.org/c/openstack/oslo-specs/+/935054/","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"9add353ba07ec3e8cc752ce35841cba1c92b9a61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9a20fed0_8d0816a1","updated":"2024-11-14 09:51:36.000000000","message":"recheck","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"abe8c7f05518c4aaccc8322b56331e6139419c09","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"78dd97ce_6a3dc052","in_reply_to":"3c9c61fd_1534ff70","updated":"2024-11-14 09:46:28.000000000","message":"I agree with you we can merge this patch and continue some part of the discussion in a parallel patch/reviews. It would allow to start to work on it while allowing defining the bit and bytes of some specific aspects.\n\nI especially think about having or not eventlet extra requirements. By example.","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"914a64c0a213429ecea181d0c570e389983c9f46","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f5616b56_33102621","in_reply_to":"9a20fed0_8d0816a1","updated":"2024-11-14 10:16:11.000000000","message":"the error was a valid doc build error","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"bac3a6709b2f026fdb1b1260e4375c080396c26b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9c045e6c_1f71e2d3","in_reply_to":"f5616b56_33102621","updated":"2024-11-14 10:25:36.000000000","message":"Ok, thanks a lot for the fix!","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"177f4f5aa9abd9585bd2fddc8bde5f66807406f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9e5969ca_d1c01215","updated":"2024-11-18 19:12:49.000000000","message":"As specified in the email[1], I will proceed with merging this patch. I have not received any objections in response to the email, nor have there been additional code reviews. Given that the deadline is today, I am treating this as implicit approval.\n\n[1] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/thread/Q5NWQ2TDFC5QQREWCBLDLOGAAMW2YEJ2/","commit_id":"c458c22c333cc6076501c70dff92177e0685cbf1"}],"specs/epoxy/remove-eventlet-from-oslo-service.rst":[{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"83c0dc2dc1be38bec5cfdcc88bbc25ddbc1c48d1","unresolved":true,"context_lines":[{"line_number":42,"context_line":"\u003chttps://review.opendev.org/c/openstack/governance/+/902585\u003e`_."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Removing Eventlet from oslo.service is now mandatory."},{"line_number":45,"context_line":"This removing will be like an open heart surgery for oslo.service."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This specification aims to design the removal of eventlet from oslo.service."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"d14dbbbc_0bcc2164","line":45,"updated":"2024-10-09 09:28:19.000000000","message":"I don\u0027t know if that sentence is really necessary.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"78f6eded232c9d6c67a0036976a481c1c979ee4d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"\u003chttps://review.opendev.org/c/openstack/governance/+/902585\u003e`_."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Removing Eventlet from oslo.service is now mandatory."},{"line_number":45,"context_line":"This removing will be like an open heart surgery for oslo.service."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This specification aims to design the removal of eventlet from oslo.service."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"2dadb7ff_2a90666c","line":45,"in_reply_to":"be599f54_a502af71","updated":"2024-10-21 12:28:08.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"af117e33a731d09eb5edc329f6692ee1dbaa6910","unresolved":true,"context_lines":[{"line_number":42,"context_line":"\u003chttps://review.opendev.org/c/openstack/governance/+/902585\u003e`_."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Removing Eventlet from oslo.service is now mandatory."},{"line_number":45,"context_line":"This removing will be like an open heart surgery for oslo.service."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This specification aims to design the removal of eventlet from oslo.service."},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"be599f54_a502af71","line":45,"in_reply_to":"d14dbbbc_0bcc2164","updated":"2024-10-10 07:07:21.000000000","message":"Indeed, will remove it. Thanks","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"c20d9a0f85c5b232be0041b895b8f8bc545e0fa5","unresolved":true,"context_lines":[{"line_number":49,"context_line":"The goal of this document is:"},{"line_number":50,"context_line":"1. to identify alternatives to the Eventlet features currently used by oslo.service;"},{"line_number":51,"context_line":"2. to define how to put in place those alternatives;"},{"line_number":52,"context_line":"4. to define the various milestone needed to properly remove Eventlet"},{"line_number":53,"context_line":"3. to minimize the impact for oslo.service\u0027s users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"50d34c16_8fe15fba","line":52,"updated":"2024-10-10 07:29:59.000000000","message":"Here is dot 3.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"c20d9a0f85c5b232be0041b895b8f8bc545e0fa5","unresolved":true,"context_lines":[{"line_number":49,"context_line":"The goal of this document is:"},{"line_number":50,"context_line":"1. to identify alternatives to the Eventlet features currently used by oslo.service;"},{"line_number":51,"context_line":"2. to define how to put in place those alternatives;"},{"line_number":52,"context_line":"4. to define the various milestone needed to properly remove Eventlet"},{"line_number":53,"context_line":"3. to minimize the impact for oslo.service\u0027s users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8a196534_2dbbbc0c","line":52,"updated":"2024-10-10 07:29:59.000000000","message":"You forget the comma here.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"78f6eded232c9d6c67a0036976a481c1c979ee4d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"The goal of this document is:"},{"line_number":50,"context_line":"1. to identify alternatives to the Eventlet features currently used by oslo.service;"},{"line_number":51,"context_line":"2. to define how to put in place those alternatives;"},{"line_number":52,"context_line":"4. to define the various milestone needed to properly remove Eventlet"},{"line_number":53,"context_line":"3. to minimize the impact for oslo.service\u0027s users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"a423b517_8fffb515","line":52,"in_reply_to":"50d34c16_8fe15fba","updated":"2024-10-21 12:28:08.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"78f6eded232c9d6c67a0036976a481c1c979ee4d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"The goal of this document is:"},{"line_number":50,"context_line":"1. to identify alternatives to the Eventlet features currently used by oslo.service;"},{"line_number":51,"context_line":"2. to define how to put in place those alternatives;"},{"line_number":52,"context_line":"4. to define the various milestone needed to properly remove Eventlet"},{"line_number":53,"context_line":"3. to minimize the impact for oslo.service\u0027s users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"6ebc035c_736a3aa4","line":52,"in_reply_to":"8a196534_2dbbbc0c","updated":"2024-10-21 12:28:08.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"c20d9a0f85c5b232be0041b895b8f8bc545e0fa5","unresolved":true,"context_lines":[{"line_number":50,"context_line":"1. to identify alternatives to the Eventlet features currently used by oslo.service;"},{"line_number":51,"context_line":"2. to define how to put in place those alternatives;"},{"line_number":52,"context_line":"4. to define the various milestone needed to properly remove Eventlet"},{"line_number":53,"context_line":"3. to minimize the impact for oslo.service\u0027s users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Problem description"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"60f84929_eccbb5d0","line":53,"updated":"2024-10-10 07:29:59.000000000","message":"Here is dot 5.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"78f6eded232c9d6c67a0036976a481c1c979ee4d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"1. to identify alternatives to the Eventlet features currently used by oslo.service;"},{"line_number":51,"context_line":"2. to define how to put in place those alternatives;"},{"line_number":52,"context_line":"4. to define the various milestone needed to properly remove Eventlet"},{"line_number":53,"context_line":"3. to minimize the impact for oslo.service\u0027s users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Problem description"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"a585ccce_4007dbb7","line":53,"in_reply_to":"1ea31b9a_bdb655b4","updated":"2024-10-21 12:28:08.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"8bb79acd3d0cd091e6611bb4f714dfbe1f9aee39","unresolved":true,"context_lines":[{"line_number":50,"context_line":"1. to identify alternatives to the Eventlet features currently used by oslo.service;"},{"line_number":51,"context_line":"2. to define how to put in place those alternatives;"},{"line_number":52,"context_line":"4. to define the various milestone needed to properly remove Eventlet"},{"line_number":53,"context_line":"3. to minimize the impact for oslo.service\u0027s users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Problem description"},{"line_number":56,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ea31b9a_bdb655b4","line":53,"in_reply_to":"60f84929_eccbb5d0","updated":"2024-10-10 07:32:00.000000000","message":"Or I mean item 4 sorry and the previous is 3 not 4.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"f4adeedabd9f2bfcf38f43736cbcbda468b3906c","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* we cannot abruptly remove Eventlet, so, for all the previously described"},{"line_number":129,"context_line":"  oslo.service features, both implementations will have to cohabit, the"},{"line_number":130,"context_line":"  Eventlet version, and the new one;"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* at the oslo.service\u0027s customer level, the transition must be as smooth as"},{"line_number":133,"context_line":"  possible. Meaning that customer should not have to rewrite all their imports"}],"source_content_type":"text/x-rst","patch_set":3,"id":"89cb6668_af91e047","line":130,"updated":"2024-10-10 07:40:03.000000000","message":"Yes I agree with that.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"717f18b2be96a158eb72ea403ed140ad20b86bb5","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* we cannot abruptly remove Eventlet, so, for all the previously described"},{"line_number":129,"context_line":"  oslo.service features, both implementations will have to cohabit, the"},{"line_number":130,"context_line":"  Eventlet version, and the new one;"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* at the oslo.service\u0027s customer level, the transition must be as smooth as"},{"line_number":133,"context_line":"  possible. Meaning that customer should not have to rewrite all their imports"}],"source_content_type":"text/x-rst","patch_set":3,"id":"eb19822a_971c167c","line":130,"in_reply_to":"89cb6668_af91e047","updated":"2024-10-22 12:25:09.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"f4adeedabd9f2bfcf38f43736cbcbda468b3906c","unresolved":true,"context_lines":[{"line_number":135,"context_line":"  Some oslo.service modules may be abandoned, only those imports would have"},{"line_number":136,"context_line":"  to be removed if imported at the customers level;"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"* customers must decide when to switch from an implementation to an other;"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* the removal of the Eventlet implementation should not impact the customer"},{"line_number":141,"context_line":"  in a random way. If a feature is explicitly removed from oslo.service, then"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7c232224_518c495c","line":138,"updated":"2024-10-10 07:40:03.000000000","message":"Agree.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"717f18b2be96a158eb72ea403ed140ad20b86bb5","unresolved":false,"context_lines":[{"line_number":135,"context_line":"  Some oslo.service modules may be abandoned, only those imports would have"},{"line_number":136,"context_line":"  to be removed if imported at the customers level;"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"* customers must decide when to switch from an implementation to an other;"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* the removal of the Eventlet implementation should not impact the customer"},{"line_number":141,"context_line":"  in a random way. If a feature is explicitly removed from oslo.service, then"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c10f3703_cca59e34","line":138,"in_reply_to":"7c232224_518c495c","updated":"2024-10-22 12:25:09.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"f4adeedabd9f2bfcf38f43736cbcbda468b3906c","unresolved":true,"context_lines":[{"line_number":182,"context_line":"The ``wsgi`` module is based on a the `Eventlet wsgi server"},{"line_number":183,"context_line":"\u003chttps://eventlet.readthedocs.io/en/latest/examples.html#wsgi-server\u003e`_ for"},{"line_number":184,"context_line":"this reason, we also propose to remove that module from the new"},{"line_number":185,"context_line":"implementation."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"The following modules will remains and would have to be transitioned:"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"64d78fee_0f1fa721","line":185,"updated":"2024-10-10 07:40:03.000000000","message":"Ok, sounds good.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"78f6eded232c9d6c67a0036976a481c1c979ee4d","unresolved":true,"context_lines":[{"line_number":182,"context_line":"The ``wsgi`` module is based on a the `Eventlet wsgi server"},{"line_number":183,"context_line":"\u003chttps://eventlet.readthedocs.io/en/latest/examples.html#wsgi-server\u003e`_ for"},{"line_number":184,"context_line":"this reason, we also propose to remove that module from the new"},{"line_number":185,"context_line":"implementation."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"The following modules will remains and would have to be transitioned:"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3b8c6ec5_cd1590a0","line":185,"in_reply_to":"2901ccbb_97f4fb0a","updated":"2024-10-21 12:28:08.000000000","message":"That\u0027s a good question, I think we have at least the following options:\n- uwsgi\n- uvicorn (if we need async behaviors)\n\nIMO, it would be better ton restrain our usages to one solution, to avoid to have a patchwork of different servers, the less the better.\n\nUsing too many option would increase the complexity for developers of understanding each components.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7492fca361440dd672b2cdb2931112257ff63d62","unresolved":false,"context_lines":[{"line_number":182,"context_line":"The ``wsgi`` module is based on a the `Eventlet wsgi server"},{"line_number":183,"context_line":"\u003chttps://eventlet.readthedocs.io/en/latest/examples.html#wsgi-server\u003e`_ for"},{"line_number":184,"context_line":"this reason, we also propose to remove that module from the new"},{"line_number":185,"context_line":"implementation."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"The following modules will remains and would have to be transitioned:"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"78386cac_5e4b0c4a","line":185,"in_reply_to":"3b8c6ec5_cd1590a0","updated":"2024-11-07 15:34:31.000000000","message":"Added some more details, I think this point is now solved.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d632c6921cd516836ebec3461d1bbfc4d0f477c","unresolved":true,"context_lines":[{"line_number":182,"context_line":"The ``wsgi`` module is based on a the `Eventlet wsgi server"},{"line_number":183,"context_line":"\u003chttps://eventlet.readthedocs.io/en/latest/examples.html#wsgi-server\u003e`_ for"},{"line_number":184,"context_line":"this reason, we also propose to remove that module from the new"},{"line_number":185,"context_line":"implementation."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"The following modules will remains and would have to be transitioned:"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"2901ccbb_97f4fb0a","line":185,"in_reply_to":"64d78fee_0f1fa721","updated":"2024-10-18 10:33:40.000000000","message":"What alternatives would we have here?\n\nUpdate: I saw it in the ``Documentation Impact`` section.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"f4adeedabd9f2bfcf38f43736cbcbda468b3906c","unresolved":true,"context_lines":[{"line_number":193,"context_line":"- ``systemd``;"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"The implementation of the ``systemd`` module seems to be a CPython vanilla"},{"line_number":196,"context_line":"implementation, so it may remains untouched."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"How to proceed?"},{"line_number":199,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfb51532_b81601f7","line":196,"updated":"2024-10-10 07:40:03.000000000","message":"Agree.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"717f18b2be96a158eb72ea403ed140ad20b86bb5","unresolved":false,"context_lines":[{"line_number":193,"context_line":"- ``systemd``;"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"The implementation of the ``systemd`` module seems to be a CPython vanilla"},{"line_number":196,"context_line":"implementation, so it may remains untouched."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"How to proceed?"},{"line_number":199,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b1d655bc_46fef9a5","line":196,"in_reply_to":"dfb51532_b81601f7","updated":"2024-10-22 12:25:09.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"f4adeedabd9f2bfcf38f43736cbcbda468b3906c","unresolved":true,"context_lines":[{"line_number":312,"context_line":"        from oslo_service.next_gen import service"},{"line_number":313,"context_line":"    else"},{"line_number":314,"context_line":"        from oslo_service.eventlet import service"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If a sub-module do not exists in the new implementation, then the root level"},{"line_number":317,"context_line":"sub-module will use debtcollector `to emit a deprecation warning"},{"line_number":318,"context_line":"\u003chttps://docs.openstack.org/debtcollector/latest/user/usage.html#deprecating-anything-else\u003e`_"}],"source_content_type":"text/x-rst","patch_set":3,"id":"cffeeaf5_6245f292","line":315,"updated":"2024-10-10 07:40:03.000000000","message":"I think it will be better if the user do the right import and not add that part.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"0d7ffb487f042f790ef4746e2fe7ad7d7f1b6f7e","unresolved":true,"context_lines":[{"line_number":312,"context_line":"        from oslo_service.next_gen import service"},{"line_number":313,"context_line":"    else"},{"line_number":314,"context_line":"        from oslo_service.eventlet import service"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If a sub-module do not exists in the new implementation, then the root level"},{"line_number":317,"context_line":"sub-module will use debtcollector `to emit a deprecation warning"},{"line_number":318,"context_line":"\u003chttps://docs.openstack.org/debtcollector/latest/user/usage.html#deprecating-anything-else\u003e`_"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0aa3e16d_12956308","line":315,"in_reply_to":"04539a3d_35d8c928","updated":"2024-10-22 13:47:57.000000000","message":"Ok after a discussion with Herve I agree with you.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"da147e05c9b6213d7be98f0dc1d1078f40120f39","unresolved":true,"context_lines":[{"line_number":312,"context_line":"        from oslo_service.next_gen import service"},{"line_number":313,"context_line":"    else"},{"line_number":314,"context_line":"        from oslo_service.eventlet import service"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If a sub-module do not exists in the new implementation, then the root level"},{"line_number":317,"context_line":"sub-module will use debtcollector `to emit a deprecation warning"},{"line_number":318,"context_line":"\u003chttps://docs.openstack.org/debtcollector/latest/user/usage.html#deprecating-anything-else\u003e`_"}],"source_content_type":"text/x-rst","patch_set":3,"id":"04539a3d_35d8c928","line":315,"in_reply_to":"04b81808_a42752e2","updated":"2024-10-18 10:56:15.000000000","message":"i would perfer to keep the backend concept.\nyes applciations can all copy this if into every place we need it but if you dont put this in oslo we will put this in nova and likely every other proejct as managing import liek this is very error prone.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53bbbf0f945acdae7ef1fd9a0b3409612fbb0e25","unresolved":true,"context_lines":[{"line_number":312,"context_line":"        from oslo_service.next_gen import service"},{"line_number":313,"context_line":"    else"},{"line_number":314,"context_line":"        from oslo_service.eventlet import service"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If a sub-module do not exists in the new implementation, then the root level"},{"line_number":317,"context_line":"sub-module will use debtcollector `to emit a deprecation warning"},{"line_number":318,"context_line":"\u003chttps://docs.openstack.org/debtcollector/latest/user/usage.html#deprecating-anything-else\u003e`_"}],"source_content_type":"text/x-rst","patch_set":3,"id":"950581d8_2fe7d185","line":315,"in_reply_to":"0aa3e16d_12956308","updated":"2024-10-31 17:35:27.000000000","message":"I also support the backend model. This could help us in the future as well.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6ab921b9695d1898852a3ca12705076db1f408fc","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        from oslo_service.next_gen import service"},{"line_number":313,"context_line":"    else"},{"line_number":314,"context_line":"        from oslo_service.eventlet import service"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If a sub-module do not exists in the new implementation, then the root level"},{"line_number":317,"context_line":"sub-module will use debtcollector `to emit a deprecation warning"},{"line_number":318,"context_line":"\u003chttps://docs.openstack.org/debtcollector/latest/user/usage.html#deprecating-anything-else\u003e`_"}],"source_content_type":"text/x-rst","patch_set":3,"id":"166d61bf_c147d8ce","line":315,"in_reply_to":"950581d8_2fe7d185","updated":"2024-11-04 10:43:46.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"9fa76c48124d6b1329cd8db95b5660d700ba55e5","unresolved":true,"context_lines":[{"line_number":312,"context_line":"        from oslo_service.next_gen import service"},{"line_number":313,"context_line":"    else"},{"line_number":314,"context_line":"        from oslo_service.eventlet import service"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"If a sub-module do not exists in the new implementation, then the root level"},{"line_number":317,"context_line":"sub-module will use debtcollector `to emit a deprecation warning"},{"line_number":318,"context_line":"\u003chttps://docs.openstack.org/debtcollector/latest/user/usage.html#deprecating-anything-else\u003e`_"}],"source_content_type":"text/x-rst","patch_set":3,"id":"04b81808_a42752e2","line":315,"in_reply_to":"cffeeaf5_6245f292","updated":"2024-10-14 09:39:04.000000000","message":"This sample describe how oslo.service sub-module should behave, if we don\u0027t do that and if we ask users to manage imports, this proposal have no meaning and the removal of eventlet in oslo.service would be really impactful for users...\n\nUsers would have to modify their imports each time we do adjustment in oslo.service which, in my opinion is not acceptable and simply removing oslo.service would be more easier.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"f4adeedabd9f2bfcf38f43736cbcbda468b3906c","unresolved":true,"context_lines":[{"line_number":524,"context_line":"- ``oslo_service.service.ServiceLauncher`` will delegate to ``cotyledon.ServiceManager``;"},{"line_number":525,"context_line":"- ``oslo_service.service.Service`` will delegate to ``cotyledon.Service``;"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"And the ``oslo_service.service.launch`` and "},{"line_number":528,"context_line":"``oslo_service.service.ProcessLauncher`` will remains more or less with"},{"line_number":529,"context_line":"the same logic that is currently implemented, less the monkey patching of"},{"line_number":530,"context_line":"Eventlet."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9b1547e7_39b1690b","line":527,"updated":"2024-10-10 07:40:03.000000000","message":"It\u0027s seems you have blank space here.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"78f6eded232c9d6c67a0036976a481c1c979ee4d","unresolved":false,"context_lines":[{"line_number":524,"context_line":"- ``oslo_service.service.ServiceLauncher`` will delegate to ``cotyledon.ServiceManager``;"},{"line_number":525,"context_line":"- ``oslo_service.service.Service`` will delegate to ``cotyledon.Service``;"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"And the ``oslo_service.service.launch`` and "},{"line_number":528,"context_line":"``oslo_service.service.ProcessLauncher`` will remains more or less with"},{"line_number":529,"context_line":"the same logic that is currently implemented, less the monkey patching of"},{"line_number":530,"context_line":"Eventlet."}],"source_content_type":"text/x-rst","patch_set":3,"id":"c46f046e_a30f37dc","line":527,"in_reply_to":"9b1547e7_39b1690b","updated":"2024-10-21 12:28:08.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"f4adeedabd9f2bfcf38f43736cbcbda468b3906c","unresolved":true,"context_lines":[{"line_number":586,"context_line":".. code-block:: ini"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    [DEFAULT]"},{"line_number":589,"context_line":"    oslo_service_backend \u003d eventlet"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"This new option will named ``oslo_service_backend`` and it will be a"},{"line_number":592,"context_line":"``cfg.StrOpt``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"4248b196_a23aaac6","line":589,"updated":"2024-10-10 07:40:03.000000000","message":"I don\u0027t think we need to add that type of option.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"717f18b2be96a158eb72ea403ed140ad20b86bb5","unresolved":false,"context_lines":[{"line_number":586,"context_line":".. code-block:: ini"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    [DEFAULT]"},{"line_number":589,"context_line":"    oslo_service_backend \u003d eventlet"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"This new option will named ``oslo_service_backend`` and it will be a"},{"line_number":592,"context_line":"``cfg.StrOpt``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9194cba2_5579ebcb","line":589,"in_reply_to":"35485f56_2eec9d25","updated":"2024-10-22 12:25:09.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"0d7ffb487f042f790ef4746e2fe7ad7d7f1b6f7e","unresolved":true,"context_lines":[{"line_number":586,"context_line":".. code-block:: ini"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    [DEFAULT]"},{"line_number":589,"context_line":"    oslo_service_backend \u003d eventlet"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"This new option will named ``oslo_service_backend`` and it will be a"},{"line_number":592,"context_line":"``cfg.StrOpt``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5bcc67fe_189c27f5","line":589,"in_reply_to":"35485f56_2eec9d25","updated":"2024-10-22 13:47:57.000000000","message":"Ok after a discussion with you I understand you point of view and now I agree with you. Better to have a new system backend even if it\u0027s temporary and add a bit of complexity.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"9fa76c48124d6b1329cd8db95b5660d700ba55e5","unresolved":true,"context_lines":[{"line_number":586,"context_line":".. code-block:: ini"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    [DEFAULT]"},{"line_number":589,"context_line":"    oslo_service_backend \u003d eventlet"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"This new option will named ``oslo_service_backend`` and it will be a"},{"line_number":592,"context_line":"``cfg.StrOpt``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"35485f56_2eec9d25","line":589,"in_reply_to":"4248b196_a23aaac6","updated":"2024-10-14 09:39:04.000000000","message":"Again, if we do not introduce the backend notion, users would have to back and forth between their imports each time we will transition things on oslo.service. This would be really impactful for users and it would create many transient state on services and it would surely increase the migration difficulty of oslo.service.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6ab921b9695d1898852a3ca12705076db1f408fc","unresolved":false,"context_lines":[{"line_number":586,"context_line":".. code-block:: ini"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"    [DEFAULT]"},{"line_number":589,"context_line":"    oslo_service_backend \u003d eventlet"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"This new option will named ``oslo_service_backend`` and it will be a"},{"line_number":592,"context_line":"``cfg.StrOpt``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"69c271c7_d5a87f78","line":589,"in_reply_to":"5bcc67fe_189c27f5","updated":"2024-11-04 10:43:46.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4b1c56396b6bfb1a3ef8ae23135d1635c04ec13","unresolved":true,"context_lines":[{"line_number":701,"context_line":""},{"line_number":702,"context_line":"This specific migration guide should at least document the"},{"line_number":703,"context_line":"removals of ``oslo_service.wsgi`` and give tracks to follow (uwsgi, flask,"},{"line_number":704,"context_line":"...)."},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"The other removed sub-modules which are specific to Eventlet ("},{"line_number":707,"context_line":"eventlet_backdoor, fixture, etc...) won\u0027t have to be documented."}],"source_content_type":"text/x-rst","patch_set":3,"id":"f9728134_4fb9d22e","line":704,"updated":"2024-09-16 15:47:17.000000000","message":"++ This is an important thing for folks to coordinate on if we don\u0027t want projects looking / running different.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7492fca361440dd672b2cdb2931112257ff63d62","unresolved":false,"context_lines":[{"line_number":701,"context_line":""},{"line_number":702,"context_line":"This specific migration guide should at least document the"},{"line_number":703,"context_line":"removals of ``oslo_service.wsgi`` and give tracks to follow (uwsgi, flask,"},{"line_number":704,"context_line":"...)."},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"The other removed sub-modules which are specific to Eventlet ("},{"line_number":707,"context_line":"eventlet_backdoor, fixture, etc...) won\u0027t have to be documented."}],"source_content_type":"text/x-rst","patch_set":3,"id":"563aed14_64a515af","line":704,"in_reply_to":"43650307_32ce2148","updated":"2024-11-07 15:34:31.000000000","message":"Done","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"e077b9b509f33d94cd5dd4fbe937a2a6dba672cd","unresolved":true,"context_lines":[{"line_number":701,"context_line":""},{"line_number":702,"context_line":"This specific migration guide should at least document the"},{"line_number":703,"context_line":"removals of ``oslo_service.wsgi`` and give tracks to follow (uwsgi, flask,"},{"line_number":704,"context_line":"...)."},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"The other removed sub-modules which are specific to Eventlet ("},{"line_number":707,"context_line":"eventlet_backdoor, fixture, etc...) won\u0027t have to be documented."}],"source_content_type":"text/x-rst","patch_set":3,"id":"43650307_32ce2148","line":704,"in_reply_to":"f9728134_4fb9d22e","updated":"2024-10-22 13:52:16.000000000","message":"I put some lines related to your comment into the new patch set (patch set 5) https://review.opendev.org/c/openstack/oslo-specs/+/927503/4..5\n\nIf we remove the wsgi module from oslo.service these proposal are a bit out of context, but this spec could constitute a kind of entry point for a more general discussion.During the PTG many people expressed comments about WSGI this point should be addressed at some point.","commit_id":"9598051a3e8cab8ee930a37e84c236af4f63edc1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7d632c6921cd516836ebec3461d1bbfc4d0f477c","unresolved":true,"context_lines":[{"line_number":176,"context_line":"- ``sslutils``: specific Eventlet wrapper for ssl."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"For this reason, the new implementation won\u0027t re-implement these modules."},{"line_number":179,"context_line":"These modules will be simply removed from the new implementation."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"The ``wsgi`` module is based on a the `Eventlet wsgi server"},{"line_number":182,"context_line":"\u003chttps://eventlet.readthedocs.io/en/latest/examples.html#wsgi-server\u003e`_ for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"936dad1d_9b85ff93","line":179,"range":{"start_line":179,"start_character":30,"end_line":179,"end_character":64},"updated":"2024-10-18 10:33:40.000000000","message":"I guess that will done once the migration is complete and eventlet is completely removed.\n\nAnd if a project adopts the new implementation, it should need to remove these calls, I think.","commit_id":"50edcf8b4cd096cbfe63ab7f3d6886748eeadc77"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"78f6eded232c9d6c67a0036976a481c1c979ee4d","unresolved":true,"context_lines":[{"line_number":176,"context_line":"- ``sslutils``: specific Eventlet wrapper for ssl."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"For this reason, the new implementation won\u0027t re-implement these modules."},{"line_number":179,"context_line":"These modules will be simply removed from the new implementation."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"The ``wsgi`` module is based on a the `Eventlet wsgi server"},{"line_number":182,"context_line":"\u003chttps://eventlet.readthedocs.io/en/latest/examples.html#wsgi-server\u003e`_ for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a0ef666b_5a499c1f","line":179,"range":{"start_line":179,"start_character":30,"end_line":179,"end_character":64},"in_reply_to":"936dad1d_9b85ff93","updated":"2024-10-21 12:28:08.000000000","message":"Only the old implementation served from the backend mechanism will provide these features.\n\nThe next gen version served from the backend mechanism will simply raise an error if these features are called, by example a classic import error. IMO, I don\u0027t think we need to wrap something in the next gen version... these feature will be deprecated in the older version of the backend. So yeah, a project that adopt the new implementation must remove these calls.. \n\nThese features will be removed with the removal of the old implementation.\n\nDoes this approach looks good to you?\nI can update this part to give more details about this approach, it will help us during the implementation stage. Opinion?","commit_id":"50edcf8b4cd096cbfe63ab7f3d6886748eeadc77"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7492fca361440dd672b2cdb2931112257ff63d62","unresolved":true,"context_lines":[{"line_number":176,"context_line":"- ``sslutils``: specific Eventlet wrapper for ssl."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"For this reason, the new implementation won\u0027t re-implement these modules."},{"line_number":179,"context_line":"These modules will be simply removed from the new implementation."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"The ``wsgi`` module is based on a the `Eventlet wsgi server"},{"line_number":182,"context_line":"\u003chttps://eventlet.readthedocs.io/en/latest/examples.html#wsgi-server\u003e`_ for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0731825f_5e7611dc","line":179,"range":{"start_line":179,"start_character":30,"end_line":179,"end_character":64},"in_reply_to":"a0ef666b_5a499c1f","updated":"2024-11-07 15:34:31.000000000","message":"I added some specification related to the removal of these modules, let me know if they make sense.","commit_id":"50edcf8b4cd096cbfe63ab7f3d6886748eeadc77"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"86357d2e448b6d45d1a1d12f83998c5c9ee43721","unresolved":true,"context_lines":[{"line_number":240,"context_line":"- 2025.1: move the current implementation into an eventlet backend (the"},{"line_number":241,"context_line":"  default backend in the config);"},{"line_number":242,"context_line":"- 2025.1: implement the next gen backend;"},{"line_number":243,"context_line":"- 2025.2: deprecate the eventlet backend and make next gen the default;"},{"line_number":244,"context_line":"- 2026.1: remove eventlet implementation and move the next gen implementation"},{"line_number":245,"context_line":"  at the root level, and remove the backend notion."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Actually oslo.service is a flatten module. All its sub-modules are"},{"line_number":248,"context_line":"at the root level. Meaning that users imports the features they needs from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b24fb574_c077fa97","line":245,"range":{"start_line":243,"start_character":0,"end_line":245,"end_character":51},"updated":"2024-11-05 16:24:39.000000000","message":"Doesn\u0027t this violate the SLURP policy ?\n\nAFAIK there are some discussions (especially in nova) to allow switching between eventlet and non-eventlet. This is something we tried to get out of the scope but if people seek for this direction then removal has external impact.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7492fca361440dd672b2cdb2931112257ff63d62","unresolved":true,"context_lines":[{"line_number":240,"context_line":"- 2025.1: move the current implementation into an eventlet backend (the"},{"line_number":241,"context_line":"  default backend in the config);"},{"line_number":242,"context_line":"- 2025.1: implement the next gen backend;"},{"line_number":243,"context_line":"- 2025.2: deprecate the eventlet backend and make next gen the default;"},{"line_number":244,"context_line":"- 2026.1: remove eventlet implementation and move the next gen implementation"},{"line_number":245,"context_line":"  at the root level, and remove the backend notion."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Actually oslo.service is a flatten module. All its sub-modules are"},{"line_number":248,"context_line":"at the root level. Meaning that users imports the features they needs from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"949961f1_aa0e30c2","line":245,"range":{"start_line":243,"start_character":0,"end_line":245,"end_character":51},"in_reply_to":"4c72dbcc_808020ac","updated":"2024-11-07 15:34:31.000000000","message":"@Takashi: I think I addressed your comment in my latest patch sets, let me know if it correspond to what you had in mind when you wrote your comments.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ebc6aac31277fe5bf72c60bfeb2b9de09aef7982","unresolved":false,"context_lines":[{"line_number":240,"context_line":"- 2025.1: move the current implementation into an eventlet backend (the"},{"line_number":241,"context_line":"  default backend in the config);"},{"line_number":242,"context_line":"- 2025.1: implement the next gen backend;"},{"line_number":243,"context_line":"- 2025.2: deprecate the eventlet backend and make next gen the default;"},{"line_number":244,"context_line":"- 2026.1: remove eventlet implementation and move the next gen implementation"},{"line_number":245,"context_line":"  at the root level, and remove the backend notion."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Actually oslo.service is a flatten module. All its sub-modules are"},{"line_number":248,"context_line":"at the root level. Meaning that users imports the features they needs from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2605c3a8_378126af","line":245,"range":{"start_line":243,"start_character":0,"end_line":245,"end_character":51},"in_reply_to":"949961f1_aa0e30c2","updated":"2024-11-13 13:44:16.000000000","message":"Done","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"12680641c340faf68f273949f35ff39aeed88b94","unresolved":true,"context_lines":[{"line_number":240,"context_line":"- 2025.1: move the current implementation into an eventlet backend (the"},{"line_number":241,"context_line":"  default backend in the config);"},{"line_number":242,"context_line":"- 2025.1: implement the next gen backend;"},{"line_number":243,"context_line":"- 2025.2: deprecate the eventlet backend and make next gen the default;"},{"line_number":244,"context_line":"- 2026.1: remove eventlet implementation and move the next gen implementation"},{"line_number":245,"context_line":"  at the root level, and remove the backend notion."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Actually oslo.service is a flatten module. All its sub-modules are"},{"line_number":248,"context_line":"at the root level. Meaning that users imports the features they needs from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4c72dbcc_808020ac","line":245,"range":{"start_line":243,"start_character":0,"end_line":245,"end_character":51},"in_reply_to":"ab0710e4_70d2f79c","updated":"2024-11-06 12:38:35.000000000","message":"Good question.\n\nConcerning the SLURP aspect:\n\n- 2025.2 is a non-SLURP release, so IMO breaking changes are allowed, like making the next gen as default backend. In all the case, services will be able to select the appropriate backend on their side through config.\n- about 2026.1, indeed I think you are right, this will be SLURP release, so, yes, I think we won\u0027t be able to remove the backend notion during this series. The clean up will happen during 2026.2.\n\nPlease confirm that\u0027s what you had in mind and please confirm if I answered your question.\n\nConcerning \"This is something we tried to get out of the scope...\", please, can you detail that point? I\u0027m not sure to see which aspects of all that story are related to that sentence.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ef0de8499a6a1874f21d9add3305e5ef1f8e8429","unresolved":true,"context_lines":[{"line_number":240,"context_line":"- 2025.1: move the current implementation into an eventlet backend (the"},{"line_number":241,"context_line":"  default backend in the config);"},{"line_number":242,"context_line":"- 2025.1: implement the next gen backend;"},{"line_number":243,"context_line":"- 2025.2: deprecate the eventlet backend and make next gen the default;"},{"line_number":244,"context_line":"- 2026.1: remove eventlet implementation and move the next gen implementation"},{"line_number":245,"context_line":"  at the root level, and remove the backend notion."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Actually oslo.service is a flatten module. All its sub-modules are"},{"line_number":248,"context_line":"at the root level. Meaning that users imports the features they needs from"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ab0710e4_70d2f79c","line":245,"range":{"start_line":243,"start_character":0,"end_line":245,"end_character":51},"in_reply_to":"b24fb574_c077fa97","updated":"2024-11-05 16:30:24.000000000","message":"OK the latest spec already mentioned the option, so switch/removal has user impact. So we should really follow the SLURP policy.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53bbbf0f945acdae7ef1fd9a0b3409612fbb0e25","unresolved":true,"context_lines":[{"line_number":396,"context_line":"Impact on Existing APIs"},{"line_number":397,"context_line":"-----------------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"The temporary backends"},{"line_number":400,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"The existing API will be modified to introduce the temporary backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"f3a6999b_be53a4b1","line":399,"updated":"2024-10-31 17:35:27.000000000","message":"Is there a way, maybe through \"extras\" that we don\u0027t end up needing to import all of eventlet and the alternate backend libraries?\nThere are places in other oslo libraries that the existence of eventlet triggers a behavior change and I would like to avoid doubling the on disk and/or packaging size. For example, building a container that doesn\u0027t require eventlet to be in it.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"8c144cccab8fb20dd59a4a1b58d10becf3691fcf","unresolved":true,"context_lines":[{"line_number":396,"context_line":"Impact on Existing APIs"},{"line_number":397,"context_line":"-----------------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"The temporary backends"},{"line_number":400,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"The existing API will be modified to introduce the temporary backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5c14093a_c892da72","line":399,"in_reply_to":"0fa0c763_8b72b293","updated":"2024-11-12 10:13:00.000000000","message":"Thanks for your explanations. Shall we to update this spec proposal to give more details or is the current state is enough?","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"1dd59cb82c38f86e7dea75f446dedc70410186ed","unresolved":true,"context_lines":[{"line_number":396,"context_line":"Impact on Existing APIs"},{"line_number":397,"context_line":"-----------------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"The temporary backends"},{"line_number":400,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"The existing API will be modified to introduce the temporary backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"d590a7e9_0b26c1a7","line":399,"in_reply_to":"85adc332_aea08a15","updated":"2024-11-07 14:43:35.000000000","message":"We definitely would need to structure the imports of \"backends\" to be runtime-level imports, not import-level imports.   This is a standard approach which we use in related libraries like SQLAlchemy, dogpile.cache, alembic.    The non-eventlet backend will definitely be fully usable without eventlet installed and I would even argue that the eventlet dependency itself not be a required dependency for installation of oslo.service, it could be an optional dependency, e.g. `pip install oslo.service[eventlet]` (to the extent that current openstack packaging tools support this notion).","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"63f8d5fa3037278a62759e2a3c9a76710162f9f4","unresolved":true,"context_lines":[{"line_number":396,"context_line":"Impact on Existing APIs"},{"line_number":397,"context_line":"-----------------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"The temporary backends"},{"line_number":400,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"The existing API will be modified to introduce the temporary backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"0fa0c763_8b72b293","line":399,"in_reply_to":"b49877bb_b0f8c446","updated":"2024-11-07 16:29:49.000000000","message":"an import level import means, when you import the top level thing, it imports the sub-level things at that moment.  like this:\n\n    # oslo.messaging/service.py\n\n\n    from backends import eventlet\n    from backends import threading\n\n\n\nwe all agree that won\u0027t work.    runtime level imports means once objects are being constructed (or some other phase in the startup of the application), you import from the module you want only when requested, which could look like this:\n\n    # oslo.messaging/service.py\n\n    def _init_backend(conf):\n        if conf[\u0027backend\u0027] \u003d\u003d \u0027eventlet\u0027:\n            from backends.eventlet import EventletService as svc_backend_cls\n        elif conf[\u0027backend\u0027] \u003d\u003d \u0027threading\u0027:\n            from backends.eventlet import ThreadedService as svc_backend_cls\n        else:\n            raise Exception(....)\n        \n        return svc_backend_cls(**kw)\n\n\n\n    class OsloService:\n        def __init__(self, ..., **kw):\n            self.backend \u003d _init_backend(CONF, **kw)\n\n\nExamples of runtime imports:\n\nsqlalchemy: https://github.com/sqlalchemy/sqlalchemy/blob/3e5e8069850dd8335898b07c293319ffafe135c5/lib/sqlalchemy/dialects/mysql/mysqldb.py#L146   and we call into that when create_engine is called: https://github.com/sqlalchemy/sqlalchemy/blob/3e5e8069850dd8335898b07c293319ffafe135c5/lib/sqlalchemy/engine/create.py#L596C1-L601C34\n\ndogpile.cache, the backend is loaded when you construct a Region: https://github.com/sqlalchemy/dogpile.cache/blob/4155447b115eeba7c17d1ce8ac40100b0c2e2d26/dogpile/cache/region.py#L493C1-L498C14  and that uses the PluginLoader, which is a regsitry that also pulls from setuptools entrypoints: https://github.com/sqlalchemy/dogpile.cache/blob/4155447b115eeba7c17d1ce8ac40100b0c2e2d26/dogpile/util/langhelpers.py#L32C1-L61C36  the built in backends are registered at the top level of \"backends\": https://github.com/sqlalchemy/dogpile.cache/blob/main/dogpile/cache/backends/__init__.py\n\n\nwe might want to look into something like what dogpile does to make this a little bit cleaner than just having an \"if x\u003d\u003dy\" in every file","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6e0dbd0a5162c2f2fd11ce154a071b6c5d4e42e2","unresolved":true,"context_lines":[{"line_number":396,"context_line":"Impact on Existing APIs"},{"line_number":397,"context_line":"-----------------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"The temporary backends"},{"line_number":400,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"The existing API will be modified to introduce the temporary backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"b49877bb_b0f8c446","line":399,"in_reply_to":"d590a7e9_0b26c1a7","updated":"2024-11-07 15:30:38.000000000","message":"What do you mean by \"runtime-level imports\" and \"import-level imports\"?\nThat we should select the backend if eventlet is installed and to not have the config backend option?\n\nPlease give us more details.\n\nSee my patch set 6 and my proposal about extra environment markers. Let me know if this is what you have in mind.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5599b14c5e3c377e1030f7b9973537f3ff3a2574","unresolved":true,"context_lines":[{"line_number":396,"context_line":"Impact on Existing APIs"},{"line_number":397,"context_line":"-----------------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"The temporary backends"},{"line_number":400,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"The existing API will be modified to introduce the temporary backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"85adc332_aea08a15","line":399,"in_reply_to":"e1fdcfff_f7442f96","updated":"2024-11-04 12:03:22.000000000","message":"Thanks a lot for your question. If I understand correctly, you’re asking whether it’s possible to only require the specific libraries used according to the backend chosen, to avoid importing all of Eventlet and alternate backend libraries unnecessarily.\n\nYes, it is feasible to structure it this way. As Hervé mentioned, this approach seems beneficial in this context, as it would help minimize the on-disk and packaging size, especially for container builds that don’t need Eventlet included.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6ab921b9695d1898852a3ca12705076db1f408fc","unresolved":true,"context_lines":[{"line_number":396,"context_line":"Impact on Existing APIs"},{"line_number":397,"context_line":"-----------------------"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"The temporary backends"},{"line_number":400,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"The existing API will be modified to introduce the temporary backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"e1fdcfff_f7442f96","line":399,"in_reply_to":"f3a6999b_be53a4b1","updated":"2024-11-04 10:43:46.000000000","message":"Are you suggesting that we create extra environment markers [1] like the ones in oslo.messaging [2]?\n\n```\n[extras]\n# package dependencies for optional (non-rabbitmq) messaging drivers.\n# projects can test-depend on oslo.messaging[\u003cdrivers\u003e]\n# e.g.: oslo.messaging[kafka,amqp1]\namqp1 \u003d\n    pyngus\u003e\u003d2.2.0 # Apache-2.0\nkafka \u003d\n    confluent-kafka\u003e\u003d1.3.0 # Apache-2.0\n```\n\nWith by example, one for the eventlet backend and one for the next-gen backend?\n\nIf yes, indeed, that could be a good idea in that context. So, in this case, that mean that services would have to:\n1. install oslo.service with the right environment markers [1] corresponding to their context and environment;\n2. setup the right backend to use, like currently proposed in this spec, and also depending on services contexts.\n\n[1] https://docs.openstack.org/pbr/latest/user/using.html#environment-markers\n[2] https://opendev.org/openstack/oslo.messaging/src/branch/master/setup.cfg#L25","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"1dd59cb82c38f86e7dea75f446dedc70410186ed","unresolved":false,"context_lines":[{"line_number":591,"context_line":"threading model. Eventlet is based on cooperative coroutines provided by"},{"line_number":592,"context_line":"greenlet, when cotyledon, or even futurist, uses threads, who are preemptive."},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"Threads tend to be more expensive and slower than coroutines because they"},{"line_number":595,"context_line":"involve context switching. OS will continue to share CPU operations with"},{"line_number":596,"context_line":"all the threads even if they are not ready to works (network IO, etc)."},{"line_number":597,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"40d306bd_b61d89ed","line":594,"updated":"2024-11-07 14:43:35.000000000","message":"debatable.  the expense is in memory overhead and initial creation.   context switching in both approaches are comparable","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53bbbf0f945acdae7ef1fd9a0b3409612fbb0e25","unresolved":true,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"It will propose the following choices as valid settings::"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    choices\u003d[\u0027eventlet\u0027, \u0027next-gen\u0027]"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"And it will defaulted to ``eventlet``, and users"},{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"}],"source_content_type":"text/x-rst","patch_set":5,"id":"c31a4c63_4601bcb9","line":623,"updated":"2024-10-31 17:35:27.000000000","message":"next-get is a bit vague, since it seems like this is going down a thread path, should this be \"threading\"?\nThis leaves things clear should some aspirational person come along and create an asyncio backend in the future.\nWe got into this problem with the RBAC changes that kind of became the \"new-new-defaults\".","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7492fca361440dd672b2cdb2931112257ff63d62","unresolved":false,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"It will propose the following choices as valid settings::"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    choices\u003d[\u0027eventlet\u0027, \u0027next-gen\u0027]"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"And it will defaulted to ``eventlet``, and users"},{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a2b18b98_75699d31","line":623,"in_reply_to":"5bc49751_263f5624","updated":"2024-11-07 15:34:31.000000000","message":"renamed","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6ab921b9695d1898852a3ca12705076db1f408fc","unresolved":true,"context_lines":[{"line_number":620,"context_line":""},{"line_number":621,"context_line":"It will propose the following choices as valid settings::"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    choices\u003d[\u0027eventlet\u0027, \u0027next-gen\u0027]"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"And it will defaulted to ``eventlet``, and users"},{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5bc49751_263f5624","line":623,"in_reply_to":"c31a4c63_4601bcb9","updated":"2024-11-04 10:43:46.000000000","message":"Indeed, renaming `next-gen` to `threading` better reflect our intention. I agree with that proposal.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53bbbf0f945acdae7ef1fd9a0b3409612fbb0e25","unresolved":true,"context_lines":[{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"},{"line_number":627,"context_line":"of oslo.service deprecated sub-modules from their code base."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"This option will be removed once the deprecation period will be over."},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"As said previously, using the backend notion, and so this option will allow"},{"line_number":632,"context_line":"internal transients states within oslo.service, allowing us to swap the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6926eacc_de2ce704","line":629,"updated":"2024-10-31 17:35:27.000000000","message":"Should we remove this or leave it to support future backends?","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6e0dbd0a5162c2f2fd11ce154a071b6c5d4e42e2","unresolved":true,"context_lines":[{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"},{"line_number":627,"context_line":"of oslo.service deprecated sub-modules from their code base."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"This option will be removed once the deprecation period will be over."},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"As said previously, using the backend notion, and so this option will allow"},{"line_number":632,"context_line":"internal transients states within oslo.service, allowing us to swap the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"87ac9073_f70f7f61","line":629,"in_reply_to":"4f9ce05b_a0ea3c47","updated":"2024-11-07 15:30:38.000000000","message":"indeed, its a good observation.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"1dd59cb82c38f86e7dea75f446dedc70410186ed","unresolved":true,"context_lines":[{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"},{"line_number":627,"context_line":"of oslo.service deprecated sub-modules from their code base."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"This option will be removed once the deprecation period will be over."},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"As said previously, using the backend notion, and so this option will allow"},{"line_number":632,"context_line":"internal transients states within oslo.service, allowing us to swap the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4f9ce05b_a0ea3c47","line":629,"in_reply_to":"5ed30b00_25635fc1","updated":"2024-11-07 14:43:35.000000000","message":"what if we wanted to switch off of cotyledon to some other approach some day? this introduces the concept of backends per oslo.service component, in fact.\n\noverall maybe it\u0027s a good idea to have the option be per sub-unit?   that way if a service is still working out issues that are preventing one of the non-eventlet sub-components from working, they can still move forward with the others.    Or if for one of the sub-components, we learn it\u0027s better to have more than one alternative option, based on concerns from client projects.\n\nThese are things that can be added later if we wanted, but somehting to keep in mind.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6ab921b9695d1898852a3ca12705076db1f408fc","unresolved":true,"context_lines":[{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"},{"line_number":627,"context_line":"of oslo.service deprecated sub-modules from their code base."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"This option will be removed once the deprecation period will be over."},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"As said previously, using the backend notion, and so this option will allow"},{"line_number":632,"context_line":"internal transients states within oslo.service, allowing us to swap the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"db5fb28c_ba32b871","line":629,"in_reply_to":"6926eacc_de2ce704","updated":"2024-11-04 10:43:46.000000000","message":"I understand your point, that\u0027s a good question.\n\nTo decide we should weight-in the following points:\n- keeping config which only offer one option is a bit misleading;\n- no new other backends seems to be looming on the horizon;\n- but keeping config backend available would keep the door opened for new backends.\n- re-introducing backends mechanisms with an option selected by default is transparent for users, at least while no environment markers [1] are not required.\n\nConcerning myself, for now I\u0027m more inclined to reduce the complexity and so I\u0027m more inclined to remove useless config.\n\nWould be good to have other opinions here.\n\n[1] https://docs.openstack.org/pbr/latest/user/using.html#environment-markers","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"abe8c7f05518c4aaccc8322b56331e6139419c09","unresolved":true,"context_lines":[{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"},{"line_number":627,"context_line":"of oslo.service deprecated sub-modules from their code base."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"This option will be removed once the deprecation period will be over."},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"As said previously, using the backend notion, and so this option will allow"},{"line_number":632,"context_line":"internal transients states within oslo.service, allowing us to swap the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"25978598_e696d852","line":629,"in_reply_to":"87ac9073_f70f7f61","updated":"2024-11-14 09:46:28.000000000","message":"I\u0027ll let you design it in parallel.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5599b14c5e3c377e1030f7b9973537f3ff3a2574","unresolved":true,"context_lines":[{"line_number":626,"context_line":"will move this value to ``next-gen`` when they will have cleaned-up the usage"},{"line_number":627,"context_line":"of oslo.service deprecated sub-modules from their code base."},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"This option will be removed once the deprecation period will be over."},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"As said previously, using the backend notion, and so this option will allow"},{"line_number":632,"context_line":"internal transients states within oslo.service, allowing us to swap the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ed30b00_25635fc1","line":629,"in_reply_to":"db5fb28c_ba32b871","updated":"2024-11-04 12:03:22.000000000","message":"Yes, we should remove it. We do not plan to support or maintain additional new backends in the future. The current backend system is intended to be temporary to facilitate the transition.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53bbbf0f945acdae7ef1fd9a0b3409612fbb0e25","unresolved":true,"context_lines":[{"line_number":751,"context_line":"Service"},{"line_number":752,"context_line":"-------"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"`Cotyledon \u003chttps://github.com/sileht/cotyledon\u003e`_ was created years ago"},{"line_number":755,"context_line":"to offer an alternative to the Service module of oslo.service. An alternative"},{"line_number":756,"context_line":"free from Eventlet. We propose to use cotyledon as underlying library for"},{"line_number":757,"context_line":"the new implementation of the Service module of oslo.service."}],"source_content_type":"text/x-rst","patch_set":5,"id":"d6647c20_46af4673","line":754,"updated":"2024-10-31 17:35:27.000000000","message":"Octavia has used this with great success since Pike. However, this is an external library to OpenStack (though it clearly targets OpenStack services). Have we had any discussion of moving this into Oslo?","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7492fca361440dd672b2cdb2931112257ff63d62","unresolved":false,"context_lines":[{"line_number":751,"context_line":"Service"},{"line_number":752,"context_line":"-------"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"`Cotyledon \u003chttps://github.com/sileht/cotyledon\u003e`_ was created years ago"},{"line_number":755,"context_line":"to offer an alternative to the Service module of oslo.service. An alternative"},{"line_number":756,"context_line":"free from Eventlet. We propose to use cotyledon as underlying library for"},{"line_number":757,"context_line":"the new implementation of the Service module of oslo.service."}],"source_content_type":"text/x-rst","patch_set":5,"id":"a70289f3_d6530cd8","line":754,"in_reply_to":"57029f31_98d40547","updated":"2024-11-07 15:34:31.000000000","message":"Done","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5599b14c5e3c377e1030f7b9973537f3ff3a2574","unresolved":true,"context_lines":[{"line_number":751,"context_line":"Service"},{"line_number":752,"context_line":"-------"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"`Cotyledon \u003chttps://github.com/sileht/cotyledon\u003e`_ was created years ago"},{"line_number":755,"context_line":"to offer an alternative to the Service module of oslo.service. An alternative"},{"line_number":756,"context_line":"free from Eventlet. We propose to use cotyledon as underlying library for"},{"line_number":757,"context_line":"the new implementation of the Service module of oslo.service."}],"source_content_type":"text/x-rst","patch_set":5,"id":"57029f31_98d40547","line":754,"in_reply_to":"c93edab7_d6074a2f","updated":"2024-11-04 12:03:22.000000000","message":"As Hervé mentioned, I don’t think Cotyledon is an issue. The library was created by an OpenStack developer specifically to replace Eventlet, and it has been used effectively in various projects. Although it is technically external to OpenStack, its origins and purpose align well with OpenStack’s architecture and goals.","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"6ab921b9695d1898852a3ca12705076db1f408fc","unresolved":true,"context_lines":[{"line_number":751,"context_line":"Service"},{"line_number":752,"context_line":"-------"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"`Cotyledon \u003chttps://github.com/sileht/cotyledon\u003e`_ was created years ago"},{"line_number":755,"context_line":"to offer an alternative to the Service module of oslo.service. An alternative"},{"line_number":756,"context_line":"free from Eventlet. We propose to use cotyledon as underlying library for"},{"line_number":757,"context_line":"the new implementation of the Service module of oslo.service."}],"source_content_type":"text/x-rst","patch_set":5,"id":"c93edab7_d6074a2f","line":754,"in_reply_to":"d6647c20_46af4673","updated":"2024-11-04 10:43:46.000000000","message":"We use cotyledon as a third party lib since years now, I\u0027m not convinced that having cotyledon under our umbrella would change something for us.  \n\nThat\u0027s also the case for hundred of third parties Python libraries which are not part of OpenStack.\n\nBut, IIRC, at the beginning of that topic Daniel (@damani) started a discussion with Mehdi (@sileht) the creator of cotyledon around that point. I do not know what is the status of that discussion.\n\nWhat would that change for us to own Cotyledon?","commit_id":"4ea4c0fa657edc6ab4b7c84b0fdf5d70dc387dea"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ebc6aac31277fe5bf72c60bfeb2b9de09aef7982","unresolved":true,"context_lines":[{"line_number":110,"context_line":"these features or if we should remove some of them in the process."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"If we decide to remove existing feature, then we must decide how transition"},{"line_number":113,"context_line":"our customers."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"In all the case, at some point will would have to release major version of"},{"line_number":116,"context_line":"oslo.service where the backward compatibility will be definitely broken."}],"source_content_type":"text/x-rst","patch_set":8,"id":"8e20111c_6f50292b","line":113,"range":{"start_line":113,"start_character":4,"end_line":113,"end_character":13},"updated":"2024-11-13 13:44:16.000000000","message":"As an upstream project we have no customers. I\u0027d suggest rephrasing it by \"consumers\".","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"0e2fa58bbd0a22408fbaaf1eaf5a861f067e9a24","unresolved":true,"context_lines":[{"line_number":110,"context_line":"these features or if we should remove some of them in the process."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"If we decide to remove existing feature, then we must decide how transition"},{"line_number":113,"context_line":"our customers."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"In all the case, at some point will would have to release major version of"},{"line_number":116,"context_line":"oslo.service where the backward compatibility will be definitely broken."}],"source_content_type":"text/x-rst","patch_set":8,"id":"28c13683_f75b474c","line":113,"range":{"start_line":113,"start_character":4,"end_line":113,"end_character":13},"in_reply_to":"8e20111c_6f50292b","updated":"2024-11-14 09:19:27.000000000","message":"ack","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ebc6aac31277fe5bf72c60bfeb2b9de09aef7982","unresolved":true,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    debtcollector.deprecate("},{"line_number":353,"context_line":"        \"\"\""},{"line_number":354,"context_line":"        The WSGI module is no longer supported\\n"},{"line_number":355,"context_line":"        You see this deprecation warning because you are importing\\n"},{"line_number":356,"context_line":"        the oslo.service wsgi module. This module is deprecated and will\\n"},{"line_number":357,"context_line":"        be soon removed. Please consider using uwsgi and consider following"}],"source_content_type":"text/x-rst","patch_set":8,"id":"393a699f_a12a82bb","line":354,"range":{"start_line":354,"start_character":46,"end_line":354,"end_character":48},"updated":"2024-11-13 13:44:16.000000000","message":"We may discuss this later but I\u0027m against adding \\n explicitly to the warning message because these appear as multi line message in logs which breaks log parsing in some cases.","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"0e2fa58bbd0a22408fbaaf1eaf5a861f067e9a24","unresolved":true,"context_lines":[{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    debtcollector.deprecate("},{"line_number":353,"context_line":"        \"\"\""},{"line_number":354,"context_line":"        The WSGI module is no longer supported\\n"},{"line_number":355,"context_line":"        You see this deprecation warning because you are importing\\n"},{"line_number":356,"context_line":"        the oslo.service wsgi module. This module is deprecated and will\\n"},{"line_number":357,"context_line":"        be soon removed. Please consider using uwsgi and consider following"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dade8438_b8ca5cd5","line":354,"range":{"start_line":354,"start_character":46,"end_line":354,"end_character":48},"in_reply_to":"393a699f_a12a82bb","updated":"2024-11-14 09:19:27.000000000","message":"I\u0027ll update it in a following patch","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ebc6aac31277fe5bf72c60bfeb2b9de09aef7982","unresolved":true,"context_lines":[{"line_number":768,"context_line":".. code-block:: cfg"},{"line_number":769,"context_line":"   [extras]"},{"line_number":770,"context_line":"   eventlet \u003d"},{"line_number":771,"context_line":"       eventlet\u003e\u003d0.36.1 # MIT"},{"line_number":772,"context_line":"   threading \u003d"},{"line_number":773,"context_line":"       futurist\u003e\u003d3.0.0 # Apache-2.0"},{"line_number":774,"context_line":"       cotyledon\u003e\u003d1.7.3 # Apache-2.0"}],"source_content_type":"text/x-rst","patch_set":8,"id":"a90f8dfa_848feacd","line":771,"range":{"start_line":771,"start_character":7,"end_line":771,"end_character":15},"updated":"2024-11-13 13:44:16.000000000","message":"Should we also move greenlet ? Also, please be aware that moving eventlet to extras is basically a breaking change and the other projects and deployment tools may need to install the extra dependencies according to their need. I wonder if we just keep eventlet in requirements if we aim to remove it soon.","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"abe8c7f05518c4aaccc8322b56331e6139419c09","unresolved":true,"context_lines":[{"line_number":768,"context_line":".. code-block:: cfg"},{"line_number":769,"context_line":"   [extras]"},{"line_number":770,"context_line":"   eventlet \u003d"},{"line_number":771,"context_line":"       eventlet\u003e\u003d0.36.1 # MIT"},{"line_number":772,"context_line":"   threading \u003d"},{"line_number":773,"context_line":"       futurist\u003e\u003d3.0.0 # Apache-2.0"},{"line_number":774,"context_line":"       cotyledon\u003e\u003d1.7.3 # Apache-2.0"}],"source_content_type":"text/x-rst","patch_set":8,"id":"1a93da01_459b64fa","line":771,"range":{"start_line":771,"start_character":7,"end_line":771,"end_character":15},"in_reply_to":"7bffd137_a3f223c5","updated":"2024-11-14 09:46:28.000000000","message":"However, one remark made by Michael was that the existence of Eventlet triggers a behavioral change, and avoiding to install Eventlet will reduce the chance of facing this kind of situation.\n\nHere is an example with oslo.messaging: https://opendev.org/openstack/oslo.messaging/src/branch/master/oslo_messaging/_utils.py#L24\n\nThe condition rely on 2 aspects:\n1. the possibility to import eventlet\n2. the monkey patching of some modules\n\nIn the case of oslo.messaging I think it is safe because we also check the monkey patching, but I\u0027ve no idea for the plenty other case like that.\n\nEventlet should have be named haystack... :)\n\n@kajinamit@oss.nttdata.com: Thoughts?","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"0e2fa58bbd0a22408fbaaf1eaf5a861f067e9a24","unresolved":true,"context_lines":[{"line_number":768,"context_line":".. code-block:: cfg"},{"line_number":769,"context_line":"   [extras]"},{"line_number":770,"context_line":"   eventlet \u003d"},{"line_number":771,"context_line":"       eventlet\u003e\u003d0.36.1 # MIT"},{"line_number":772,"context_line":"   threading \u003d"},{"line_number":773,"context_line":"       futurist\u003e\u003d3.0.0 # Apache-2.0"},{"line_number":774,"context_line":"       cotyledon\u003e\u003d1.7.3 # Apache-2.0"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7bffd137_a3f223c5","line":771,"range":{"start_line":771,"start_character":7,"end_line":771,"end_character":15},"in_reply_to":"a90f8dfa_848feacd","updated":"2024-11-14 09:19:27.000000000","message":"Greenlet is already a requirement of Eventlet so, I don\u0027t think need to have explicitly listed here. That was not the case when we used `requirements.txt`.\n\nhttps://github.com/eventlet/eventlet/blob/master/pyproject.toml#L43\n\nIndeed, moving eventlet to extra is a breaking change. Users will be impacted by that and as our goal is to keep the backend introduction as smooth as possible I think you are right, and, hence, I think we should eventlet as a default in requirements and just \"extraify\" the threading environment.\n\nIn all the case you are right eventlet will be removed soon.","commit_id":"8d26fe8b995daf6e85e1f9e4e37cb116d87d8bec"}]}
