)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"5c0cba5960e3950d6d65cced4c4c027c66a60c8c","unresolved":true,"context_lines":[{"line_number":27,"context_line":"### Notes"},{"line_number":28,"context_line":"- Tests: Existing tests for Eventlet components remain applicable as the logic"},{"line_number":29,"context_line":"  in the core files has not been modified."},{"line_number":30,"context_line":"- Documentation: This change completes the migration of Eventlet-specific"},{"line_number":31,"context_line":"  logic and prepares the codebase for alternative backend implementations in the future."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: Ieba0109491c37f260163fe2eb1ed2e03ecc6b15d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"904a6d1d_90bf7e3b","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":88},"updated":"2024-12-05 17:14:30.000000000","message":"Should we not start to adapt the documentation now?\n\nI mean, the many logic will be duplicated in both modules (the eventlet one and the threading one), to offer a switchable implementation of the same features, meaning that the existing documentation will be duplicated if we didn\u0027t decide how to manage that point.\n\nMost of the docstrings will remains the same as they are more focused on the logic offered by oslo.service than on the technology behind the scene to implement these logics (for now eventlet).\n\nWhat is your plan?","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"163a71a13ccaf1caa2c59c4236fc23bbfdbd53ee","unresolved":false,"context_lines":[{"line_number":27,"context_line":"### Notes"},{"line_number":28,"context_line":"- Tests: Existing tests for Eventlet components remain applicable as the logic"},{"line_number":29,"context_line":"  in the core files has not been modified."},{"line_number":30,"context_line":"- Documentation: This change completes the migration of Eventlet-specific"},{"line_number":31,"context_line":"  logic and prepares the codebase for alternative backend implementations in the future."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: Ieba0109491c37f260163fe2eb1ed2e03ecc6b15d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1c210677_825f9aab","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":88},"in_reply_to":"604f0e8e_e5830059","updated":"2024-12-17 11:31:26.000000000","message":"Done","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"abbf4cf29d32484b65ef8f658ddc27fa637815a7","unresolved":true,"context_lines":[{"line_number":27,"context_line":"### Notes"},{"line_number":28,"context_line":"- Tests: Existing tests for Eventlet components remain applicable as the logic"},{"line_number":29,"context_line":"  in the core files has not been modified."},{"line_number":30,"context_line":"- Documentation: This change completes the migration of Eventlet-specific"},{"line_number":31,"context_line":"  logic and prepares the codebase for alternative backend implementations in the future."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: Ieba0109491c37f260163fe2eb1ed2e03ecc6b15d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"e9f6710a_8ad9a8ea","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":88},"in_reply_to":"904a6d1d_90bf7e3b","updated":"2024-12-11 16:53:52.000000000","message":"I think we can do it in a follow up commit if it\u0027s ok for you?","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"8cf79cbdb96afe7493b965c7bdf2a65155033f4b","unresolved":true,"context_lines":[{"line_number":27,"context_line":"### Notes"},{"line_number":28,"context_line":"- Tests: Existing tests for Eventlet components remain applicable as the logic"},{"line_number":29,"context_line":"  in the core files has not been modified."},{"line_number":30,"context_line":"- Documentation: This change completes the migration of Eventlet-specific"},{"line_number":31,"context_line":"  logic and prepares the codebase for alternative backend implementations in the future."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change-Id: Ieba0109491c37f260163fe2eb1ed2e03ecc6b15d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"604f0e8e_e5830059","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":88},"in_reply_to":"e9f6710a_8ad9a8ea","updated":"2024-12-12 09:21:46.000000000","message":"Yeah no problem to do it through a follow up, just want to ensure that we have a plan for that.","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"c64c4ef80becaabc1dec9b9f8d5b425f1f41c74d","unresolved":true,"context_lines":[{"line_number":10,"context_line":"backend system, isolating their implementation within the `oslo_service.backend.eventlet`"},{"line_number":11,"context_line":"module. The following changes have been made:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- **Eventlet Components**:"},{"line_number":14,"context_line":"  - Moved Eventlet-specific implementations of `service`, `loopingcall`, and `threadgroup`"},{"line_number":15,"context_line":"    into `oslo_service/backend/eventlet/`."},{"line_number":16,"context_line":"  - Introduced an `EventletBackend` class with `get_service_components()` to expose"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"270168fd_74072c74","line":13,"range":{"start_line":13,"start_character":23,"end_line":13,"end_character":25},"updated":"2024-12-17 16:42:42.000000000","message":"Just a cosmetic remark.That\u0027s a markdown syntaxe, I don\u0027t think is it useful to have it in commit message.","commit_id":"51891e8a3faecb2e257605a31c32e823711f5863"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"7092a964900db1c2d95b9cc5a37638cd3695339f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"backend system, isolating their implementation within the `oslo_service.backend.eventlet`"},{"line_number":11,"context_line":"module. The following changes have been made:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- **Eventlet Components**:"},{"line_number":14,"context_line":"  - Moved Eventlet-specific implementations of `service`, `loopingcall`, and `threadgroup`"},{"line_number":15,"context_line":"    into `oslo_service/backend/eventlet/`."},{"line_number":16,"context_line":"  - Introduced an `EventletBackend` class with `get_service_components()` to expose"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"4ebe84e6_e1f6dddd","line":13,"range":{"start_line":13,"start_character":23,"end_line":13,"end_character":25},"in_reply_to":"270168fd_74072c74","updated":"2024-12-18 10:52:21.000000000","message":"Done","commit_id":"51891e8a3faecb2e257605a31c32e823711f5863"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f475633238aa7c2a7bb74b2f825aee0cd6cf7751","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Migrate Eventlet components to the new backend system"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit migrates Eventlet-specific components to the newly introduced"},{"line_number":10,"context_line":"backend system, isolating their implementation within the `oslo_service.backend.eventlet`"},{"line_number":11,"context_line":"module. The following changes have been made:"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"9bb56fa1_e33a9b4c","line":9,"updated":"2024-12-20 22:41:45.000000000","message":"please wrap liens at 72 chars.\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"32e69a00a0df2a7ad2ed0731338138ddb8d0dc8e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Migrate Eventlet components to the new backend system"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit migrates Eventlet-specific components to the newly introduced"},{"line_number":10,"context_line":"backend system, isolating their implementation within the `oslo_service.backend.eventlet`"},{"line_number":11,"context_line":"module. The following changes have been made:"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"af66a993_f9977277","line":9,"in_reply_to":"9bb56fa1_e33a9b4c","updated":"2025-01-13 13:03:53.000000000","message":"Done","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"862c86dbb9e03c692c76c06e7a47645820cf0731","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c4ed8be8_d8e49b7c","updated":"2024-12-04 15:11:17.000000000","message":"Nice work, thanks Daniel.\nDo we want to deprecate the useless modules (wsgi, backdoor, etc)[1][2] inside this patch or with a follow up?\n\n[1] https://specs.openstack.org/openstack/oslo-specs/specs/epoxy/remove-eventlet-from-oslo-service.html#how-to-proceed\n[2] https://specs.openstack.org/openstack/oslo-specs/specs/epoxy/remove-eventlet-from-oslo-service.html#removed-sub-modules","commit_id":"91daa2d858db0cb6e3e6310b845680c93fc3928e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"e1dbd4316fd81b58e05d616821012501c3409ab8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c8ab0bcb_3659931a","in_reply_to":"c4ed8be8_d8e49b7c","updated":"2024-12-04 17:38:59.000000000","message":"I think it can be in a follow up commit if it\u0027s ok?","commit_id":"91daa2d858db0cb6e3e6310b845680c93fc3928e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"fb30eddf53d75c39856c9d59beb35a0ea90d6b7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d8aa5341_593504e9","in_reply_to":"c8ab0bcb_3659931a","updated":"2024-12-05 08:51:08.000000000","message":"Yes, I think we can do that.","commit_id":"91daa2d858db0cb6e3e6310b845680c93fc3928e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5efd936cb94d70a8c94600afdf6434b20729a985","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f0858e64_145e4505","in_reply_to":"d8aa5341_593504e9","updated":"2024-12-05 16:04:46.000000000","message":"Ok that sounds good.","commit_id":"91daa2d858db0cb6e3e6310b845680c93fc3928e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"fb30eddf53d75c39856c9d59beb35a0ea90d6b7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"382a8d44_ffdbc520","updated":"2024-12-05 08:51:08.000000000","message":"Do you mind if we move the topic to `eventlet-removal`?\nThis way this patch will appear with all the other ones.","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5efd936cb94d70a8c94600afdf6434b20729a985","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"cf084a15_272df24d","in_reply_to":"382a8d44_ffdbc520","updated":"2024-12-05 16:04:46.000000000","message":"Yes we can do it you\u0027re right.","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"ea550a762697f5a47014fcc1594a7642b77c8397","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ad155e1b_bf155a49","updated":"2024-12-10 13:42:38.000000000","message":"recheck","commit_id":"44a2396084f0c706bee7a0cab2bb9bd0de28e47e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"465788a8c280292bb1fa8c308ca9a6f550834568","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4c6b8bec_b1083ae4","updated":"2024-12-11 09:04:26.000000000","message":"something went wrong with the configuration of zuul... https://zuul.opendev.org/t/openstack/build/71c9afb584df43b19421b58a36b93d73\n\nI think the error is legit but I don\u0027t think it is related to this patch or to the parent one...","commit_id":"44a2396084f0c706bee7a0cab2bb9bd0de28e47e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"32f6a82c7328d439b6421c1cdda09a5479d20f78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3e97db34_8c2c3760","in_reply_to":"4c6b8bec_b1083ae4","updated":"2024-12-11 11:50:43.000000000","message":"Yes the error seems legit, but I have not changed the zuul configuration.","commit_id":"44a2396084f0c706bee7a0cab2bb9bd0de28e47e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"8cf79cbdb96afe7493b965c7bdf2a65155033f4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"17922f2a_c558889b","updated":"2024-12-12 09:21:46.000000000","message":"Before going further in the merging process of this series of patch, I think we need 2 more items:\n1. we need the deprecation of the useless modules (wsgi, backdoor, etc.);\n2. we need a release note (I think at the end of this series of patches) where we socialize:\n    - the creation of the backend mechanism;\n    - the defaulting to the eventlet backend;\n    - the deprecation of the useless modules (I think this part of the release note could be done directly into the patch).","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"34168fd9d820eaa722f07b74babe7307dabbc312","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"f10dc21f_cb446c61","updated":"2024-12-11 22:39:49.000000000","message":"recheck","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"db4a8d924d150e75e3674a49cd02a248f37aae2f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"82736629_3f5f9104","in_reply_to":"17922f2a_c558889b","updated":"2024-12-12 10:01:55.000000000","message":"I believe the deprecation can be addressed in a separate patch or as part of the threading backend implementation. \n\nRegarding the release note, I will include it at the end of this series, covering:\n\n* The introduction of the backend mechanism,\n* Defaulting to the eventlet backend,\n* Deprecation details (to be included in the separate deprecation patch).","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"af5c10296577fcfd5167364bf7eb1eb42f19e92b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"bfcf6bd5_5807d6ff","in_reply_to":"82736629_3f5f9104","updated":"2024-12-13 08:34:33.000000000","message":"The deprecation could be addressed in a follow up patch, but IMO, semantically, the deprecation of the eventelt modules (wsgi, etc...) is more related to the eventlet part of this global refactor, than to its threading part.","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"163a71a13ccaf1caa2c59c4236fc23bbfdbd53ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fce1ed48_264a7197","in_reply_to":"a325f74a_0eb3841e","updated":"2024-12-17 11:31:26.000000000","message":"Done","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"970ebf7db568fb55f2f641329f8e4c3e8f97b235","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a325f74a_0eb3841e","in_reply_to":"bfcf6bd5_5807d6ff","updated":"2024-12-13 10:07:20.000000000","message":"Ok I will do it.","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d107fe385b93babe74b7b60d22d44ba5e9c8e9ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"049292e8_f99ffdd2","updated":"2024-12-16 14:59:53.000000000","message":"Do you plan to add the release note within this patch or into a follow up? Just to be sure.","commit_id":"4f1e3b40572fc77eb9182d3e1ae199dedec9a9a2"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"961b077966df405ac45efb6121e6c1f92ad4f738","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"72d6f2a9_9b257844","in_reply_to":"049292e8_f99ffdd2","updated":"2024-12-17 11:30:44.000000000","message":"Thanks a lot for the feedback! I have now added the release note to this patch.","commit_id":"4f1e3b40572fc77eb9182d3e1ae199dedec9a9a2"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"9cf5461076bce7701db45598627a5c493fe0808d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"226a45d8_1bd75f69","updated":"2024-12-17 16:38:39.000000000","message":"From a global perspective I think that all the items needed to generate a first transient release are there:\n- the backend engine\n- the eventlet backend\n- the deprecation of the modules which will be removed\n- the release note.\n\nAFAICS the functional tests requested by Mike in the parent patches are still missing. I\u0027ll let you discuss that point with Mike. IMO it would be better to them landed within this first series of patches, but I\u0027m not against having them in follow up neither. In all the case they will have to be implemented at some points.","commit_id":"51891e8a3faecb2e257605a31c32e823711f5863"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"47dc176076d7e1ecf27c6b2680829940d6337f9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"96eef791_e8a1e47a","updated":"2024-12-17 16:31:03.000000000","message":"Thanks","commit_id":"51891e8a3faecb2e257605a31c32e823711f5863"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"164c36220929ad4a9230e33c6cd62629f3889d75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"c37451ef_54f6b7d9","in_reply_to":"226a45d8_1bd75f69","updated":"2024-12-17 16:39:36.000000000","message":"s/to them landed/to land them/","commit_id":"51891e8a3faecb2e257605a31c32e823711f5863"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"0eed267daf3f6c682da11cb452bb1f53e9e96de0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"cc090443_71cb505e","in_reply_to":"c37451ef_54f6b7d9","updated":"2024-12-18 10:58:30.000000000","message":"Thanks a lot for the feedback! I agree that we can proceed with merging the patches related to the backend engine, the Eventlet backend, and the unit test fixes. Regarding the unit and functional tests, I believe Mike was referring specifically to unit tests for the backend. With the implementation of the Eventlet backend, we already have strong coverage. For instance, we now utilize the get_backend function, test the configuration, and many Eventlet-related tests are already closer to functional tests than pure unit tests.","commit_id":"51891e8a3faecb2e257605a31c32e823711f5863"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"21f4815e8d3b6cf017abd8c10b36381b937c1447","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"04acb94d_aecc8996","updated":"2024-12-19 12:44:54.000000000","message":"I believe this patch is in a good state and ready to be merged. Let me know if there are any additional concerns or suggestions.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d14d158df0700895bc4e9ed1099cedabdb19c733","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"09b63012_0951ba23","updated":"2024-12-20 22:39:35.000000000","message":"adding -1 to highlight my comments.","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"2ad096c22f2ffd1d9c7c950900cdde075d9bf0e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"2dba8bc0_f8e32efb","updated":"2025-01-13 17:00:39.000000000","message":"recheck","commit_id":"63f341623a22c24cb50d0b90637b5d201b2b81ef"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bcb377eefb8f08fffc1b6988fe8a25f1a1a2b647","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"09145100_0b5f1083","updated":"2025-01-15 05:39:20.000000000","message":"just a minor formatting nit, unrelated to Takashi\u0027s concerns, which do seem valid to me","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"f3385c6b56a227ee68ce25d69cf95839aba3c9bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"2eb1fd04_672e7704","updated":"2025-01-29 13:34:22.000000000","message":"I globally agree with the latest patch set. I left an inline comment in response of Jens is initial remark.","commit_id":"32b2b8a46fa1253eeda23f5e41a1ea067a23edaf"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"a8ea13c9591f027b778eadda58660cde038fac68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"283a61c8_60d0c5f1","in_reply_to":"2eb1fd04_672e7704","updated":"2025-01-30 08:31:47.000000000","message":"Done.","commit_id":"32b2b8a46fa1253eeda23f5e41a1ea067a23edaf"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"79d383069a17293a08b4b7fe9b76dd22afe9391d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"38492b17_aa53b9f5","updated":"2025-01-30 09:09:01.000000000","message":"see my inline comment","commit_id":"2eb2c0165311f726b6b73ab007007b481491ed87"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"484c7084f6deb3e75cc4e30ca904827e82876f6c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":36,"id":"7e6af251_bc0a053c","updated":"2025-02-02 14:41:27.000000000","message":"I\u0027m still concerned with that fact that we haven\u0027t seen any actual PoC code for threading backend and deprecating the eventlet backend before we provide any alternative is not ideal but that may not really block the whole intention to get rid of eventlet.","commit_id":"861e8d6677df63660268376fcf4a78b2838d5ad9"}],"oslo_service/backend/__init__.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"8973d2438a229cdd4607c3c2a61a8f5fa937cc49","unresolved":true,"context_lines":[{"line_number":49,"context_line":"        return _cached_backend"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    backend_name \u003d CONF.backend"},{"line_number":52,"context_line":"    module_name \u003d f\"oslo_service.backend.{backend_name}\""},{"line_number":53,"context_line":"    LOG.info(f\"Attempting to load backend: {backend_name} from {module_name}\")"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ae37eecd_48cb4a22","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":2},"updated":"2024-12-05 17:00:28.000000000","message":"All the changes applied to this files do not seems related to the Eventlet backend, and seems more closer to the intent behind the parent patch, for this reason wouldn\u0027t be better to attach this part of this patch to the parent patch?","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"73de9140652decd82678000ca167f314b4edb826","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        return _cached_backend"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    backend_name \u003d CONF.backend"},{"line_number":52,"context_line":"    module_name \u003d f\"oslo_service.backend.{backend_name}\""},{"line_number":53,"context_line":"    LOG.info(f\"Attempting to load backend: {backend_name} from {module_name}\")"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"f4afbb0e_04ec4985","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":2},"in_reply_to":"ae37eecd_48cb4a22","updated":"2024-12-11 16:53:06.000000000","message":"Done","commit_id":"77caf2af7ca79c536d75903203695f4d596c9dea"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a496c4dbb87bed6d343dbd8729d6755ba3abbeeb","unresolved":true,"context_lines":[{"line_number":33,"context_line":"def list_opts():"},{"line_number":34,"context_line":"    \"\"\"Entry point for oslo-config-generator."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        This function provides the backend options for oslo-config-generator"},{"line_number":37,"context_line":"        to include them in the generated configuration file templates."},{"line_number":38,"context_line":"        \"\"\""},{"line_number":39,"context_line":"    return [(None, copy.deepcopy(_options.backend_opts))]"}],"source_content_type":"text/x-python","patch_set":25,"id":"808c14d8_21f353fc","side":"PARENT","line":36,"updated":"2024-12-20 22:39:00.000000000","message":"the change sould be in parent.","commit_id":"cfba6bc3c948455c76f1474e34aa46b5ba77b5f5"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"7894503976e7254a8445c35a1ca2e6fed7ab0af4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def list_opts():"},{"line_number":34,"context_line":"    \"\"\"Entry point for oslo-config-generator."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        This function provides the backend options for oslo-config-generator"},{"line_number":37,"context_line":"        to include them in the generated configuration file templates."},{"line_number":38,"context_line":"        \"\"\""},{"line_number":39,"context_line":"    return [(None, copy.deepcopy(_options.backend_opts))]"}],"source_content_type":"text/x-python","patch_set":25,"id":"9bdce57e_f94bd7db","side":"PARENT","line":36,"in_reply_to":"808c14d8_21f353fc","updated":"2025-01-13 13:05:12.000000000","message":"Done","commit_id":"cfba6bc3c948455c76f1474e34aa46b5ba77b5f5"}],"oslo_service/backend/eventlet/__init__.py":[{"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":"cd13e9d12bdac467d0c137dfc278b4f88bc9371d","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    \"\"\"Backend implementation for Eventlet.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @staticmethod"},{"line_number":26,"context_line":"    def get_service_components():"},{"line_number":27,"context_line":"        \"\"\"Return the components provided by the Eventlet backend.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":9,"id":"b354df26_7151ab6b","line":26,"updated":"2024-12-12 21:41:38.000000000","message":"It feels really weird to me that we\u0027re essentially making a pluggable interface, but not having any of the bits I\u0027d expect -- like a specific Object class defining the components to return instead of a dict here, and/or an ABC modelling out what methods exist/look like for other implementations","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"163a71a13ccaf1caa2c59c4236fc23bbfdbd53ee","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"\"\"Backend implementation for Eventlet.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @staticmethod"},{"line_number":26,"context_line":"    def get_service_components():"},{"line_number":27,"context_line":"        \"\"\"Return the components provided by the Eventlet backend.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":9,"id":"4964c347_3bc70945","line":26,"in_reply_to":"840a2b13_9af3f8eb","updated":"2024-12-17 11:31:26.000000000","message":"Done","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"e8469e1952f3a34f175d9c3744aac275a915c951","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    \"\"\"Backend implementation for Eventlet.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @staticmethod"},{"line_number":26,"context_line":"    def get_service_components():"},{"line_number":27,"context_line":"        \"\"\"Return the components provided by the Eventlet backend.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":9,"id":"840a2b13_9af3f8eb","line":26,"in_reply_to":"b354df26_7151ab6b","updated":"2024-12-13 08:02:16.000000000","message":"Thank a lot for the feedback! You’re absolutely right, the use of BackendBase was missed, and this has now been corrected. As for using a dataclass instead of returning a dictionary, I believe it’s not necessary at this stage, given that we will only have two backends. However, if we decide to change our approach in the future, this can always be adjusted without any issues.","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"}],"oslo_service/backend/eventlet/loopingcall.py":[{"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":"cd13e9d12bdac467d0c137dfc278b4f88bc9371d","unresolved":true,"context_lines":[{"line_number":24,"context_line":"#    a copy of the License at"},{"line_number":25,"context_line":"#"},{"line_number":26,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":27,"context_line":"#"},{"line_number":28,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":29,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":30,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"}],"source_content_type":"text/x-python","patch_set":9,"id":"546ac726_bc8bed06","line":27,"updated":"2024-12-12 21:41:38.000000000","message":"Please correct the duplicated license text.","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"648b4ed9566a69e33fdd916b0b8cd15107c20d8b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"#    a copy of the License at"},{"line_number":25,"context_line":"#"},{"line_number":26,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":27,"context_line":"#"},{"line_number":28,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":29,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":30,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"}],"source_content_type":"text/x-python","patch_set":9,"id":"d5c3f7bd_6d3bc16d","line":27,"in_reply_to":"546ac726_bc8bed06","updated":"2024-12-13 08:03:08.000000000","message":"Done","commit_id":"11cd77ecc7dc176253bd822e3721928cb3af184e"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2024 Red Hat, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":19,"id":"800dc76e_b40d69d3","line":1,"range":{"start_line":1,"start_character":1,"end_line":1,"end_character":34},"updated":"2024-12-19 15:21:49.000000000","message":"Most of the codes were just copied from the base file and I don\u0027t know it\u0027s really appropriate to insist copyright by Red Hat about these files.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"bea80e8fe30ac39a34cfed3770bb9e331583a640","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2024 Red Hat, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":19,"id":"31159d96_8ed92fbf","line":1,"range":{"start_line":1,"start_character":1,"end_line":1,"end_character":34},"in_reply_to":"800dc76e_b40d69d3","updated":"2024-12-20 15:29:45.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class LoopingCallDone(Exception):"},{"line_number":36,"context_line":"    \"\"\"Exception to break out and stop a LoopingCallBase."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    The poll-function passed to LoopingCallBase can raise this exception to"}],"source_content_type":"text/x-python","patch_set":19,"id":"24371208_9e9e35fd","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":21},"updated":"2024-12-19 15:21:49.000000000","message":"Some of these implementations don\u0027t look specific to eventlet. Should we move these to separate files (such as base/loppingcall) if these are expected to be used by threading implementation ?","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"e0058218cfb2631f0cdb215d2f3acaa8ecba962c","unresolved":true,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class LoopingCallDone(Exception):"},{"line_number":36,"context_line":"    \"\"\"Exception to break out and stop a LoopingCallBase."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    The poll-function passed to LoopingCallBase can raise this exception to"}],"source_content_type":"text/x-python","patch_set":19,"id":"bcb21c7a_13ee3c19","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":21},"in_reply_to":"24371208_9e9e35fd","updated":"2024-12-20 08:00:02.000000000","message":"Thank you for the feedback! I think it would make sense to address this in a future commit, especially when implementing the new threading backend. At that point, we can identify which parts are truly shared and refactor them accordingly. For now, keeping this as-is helps to keep the current changes focused.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"508f5512e69605e0443f0e589c20a41d69574935","unresolved":true,"context_lines":[{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class LoopingCallDone(Exception):"},{"line_number":36,"context_line":"    \"\"\"Exception to break out and stop a LoopingCallBase."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    The poll-function passed to LoopingCallBase can raise this exception to"}],"source_content_type":"text/x-python","patch_set":19,"id":"d9bda118_51ab8614","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":21},"in_reply_to":"bcb21c7a_13ee3c19","updated":"2025-01-16 15:52:15.000000000","message":"whichever of us does the threaded versions, I agree we will likely move a lot of this code to be \"common\". I would propose a new package oslo_service.common","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"}],"oslo_service/backend/eventlet/threadgroup.py":[{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"508f5512e69605e0443f0e589c20a41d69574935","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        self.thread.cancel(*throw_args)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class ThreadGroup:"},{"line_number":77,"context_line":"    \"\"\"A group of greenthreads and timers."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    The point of the ThreadGroup class is to:"}],"source_content_type":"text/x-python","patch_set":30,"id":"f05733cd_8503eb2f","line":76,"updated":"2025-01-16 15:52:15.000000000","message":"most of these two classes can be placed in a proposed oslo_service.common.    The few places where eventlet is referenced, as well as constructors for looping call classes, can be in a small subclass (loopingcall also can likely be refactored to be like this too):\n\n    oslo_service.common.AbstractThread\n    oslo_service.common.AbstractThreadGroup\n\nThese classes have small overrides for eventlet/loopingcall classes / constructions:\n\n    oslo_service.backend.eventlet.Thread(AbstractThread)\n    oslo_service.backend.eventlet.ThreadGroup(AbstractThreadGroup)\n\n    oslo_service.backend.threading.Thread(AbstractThread)\n    oslo_service.backend.threading.ThreadGroup(AbstractThreadGroup)","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"c115e27c0686ec51418dbca73af2f80f9d3d5c16","unresolved":true,"context_lines":[{"line_number":73,"context_line":"        self.thread.cancel(*throw_args)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"class ThreadGroup:"},{"line_number":77,"context_line":"    \"\"\"A group of greenthreads and timers."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    The point of the ThreadGroup class is to:"}],"source_content_type":"text/x-python","patch_set":30,"id":"c08f871d_18caa8be","line":76,"in_reply_to":"f05733cd_8503eb2f","updated":"2025-01-22 17:43:29.000000000","message":"I will check that.","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"}],"oslo_service/eventlet_backdoor.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from debtcollector import removals"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"removals.removed_module("},{"line_number":37,"context_line":"    __name__,"},{"line_number":38,"context_line":"    replacement\u003dNone,"},{"line_number":39,"context_line":"    removal_version\u003d\"2026.2\","}],"source_content_type":"text/x-python","patch_set":19,"id":"5398ba0f_ce413973","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":8},"updated":"2024-12-19 15:21:49.000000000","message":"Please also deprecate options related to eventlet backdoor feature.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"734ce2c319ee0a2ef0f4d474bf61f20e4e3e9cc2","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from debtcollector import removals"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"removals.removed_module("},{"line_number":37,"context_line":"    __name__,"},{"line_number":38,"context_line":"    replacement\u003dNone,"},{"line_number":39,"context_line":"    removal_version\u003d\"2026.2\","}],"source_content_type":"text/x-python","patch_set":19,"id":"511f4573_a0c2db1f","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":8},"in_reply_to":"5398ba0f_ce413973","updated":"2024-12-20 15:15:42.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"}],"oslo_service/service.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"793c2dd2805fb4e3d67aa7c80e59396dab41b0a1","unresolved":true,"context_lines":[{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d _components[\"ServiceBase\"]"},{"line_number":30,"context_line":"ServiceLauncher \u003d _components[\"ServiceLauncher\"]"},{"line_number":31,"context_line":"Launcher \u003d _components[\"ServiceLauncher\"]"},{"line_number":32,"context_line":"ProcessLauncher \u003d _components[\"ProcessLauncher\"]"},{"line_number":33,"context_line":"Service \u003d _components[\"Service\"]"},{"line_number":34,"context_line":"Services \u003d _components[\"Services\"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"0f0f12b1_e5ab7c44","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":41},"updated":"2024-12-11 12:47:27.000000000","message":"Is not a duplication of the line above (line 30)?\nIs not rather `Launcher \u003d _components[\"Launcher\"]`?","commit_id":"de619ab6fce197e3c9c899b85d8112e52cde678f"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"5bcc558be9a1aa46d0dfdfc3c3053a5703534ce7","unresolved":true,"context_lines":[{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d _components[\"ServiceBase\"]"},{"line_number":30,"context_line":"ServiceLauncher \u003d _components[\"ServiceLauncher\"]"},{"line_number":31,"context_line":"Launcher \u003d _components[\"ServiceLauncher\"]"},{"line_number":32,"context_line":"ProcessLauncher \u003d _components[\"ProcessLauncher\"]"},{"line_number":33,"context_line":"Service \u003d _components[\"Service\"]"},{"line_number":34,"context_line":"Services \u003d _components[\"Services\"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"f4537f28_d5ff6911","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":41},"in_reply_to":"0f0f12b1_e5ab7c44","updated":"2024-12-11 12:48:47.000000000","message":"In the other file you declared:\n\n```\n\"ServiceLauncher\": service.ServiceLauncher,\n\"Launcher\": service.Launcher,\n\"ProcessLauncher\": service.ProcessLauncher,\n```","commit_id":"de619ab6fce197e3c9c899b85d8112e52cde678f"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"4364d34757ca40a8048580eb215fd604852741ed","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d _components[\"ServiceBase\"]"},{"line_number":30,"context_line":"ServiceLauncher \u003d _components[\"ServiceLauncher\"]"},{"line_number":31,"context_line":"Launcher \u003d _components[\"ServiceLauncher\"]"},{"line_number":32,"context_line":"ProcessLauncher \u003d _components[\"ProcessLauncher\"]"},{"line_number":33,"context_line":"Service \u003d _components[\"Service\"]"},{"line_number":34,"context_line":"Services \u003d _components[\"Services\"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"d90761e9_6a979d25","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":41},"in_reply_to":"13a648fa_db7370b9","updated":"2024-12-11 12:54:37.000000000","message":"thanks","commit_id":"de619ab6fce197e3c9c899b85d8112e52cde678f"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"877e163243afb9557d1165d7c276302a3c791fc7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d _components[\"ServiceBase\"]"},{"line_number":30,"context_line":"ServiceLauncher \u003d _components[\"ServiceLauncher\"]"},{"line_number":31,"context_line":"Launcher \u003d _components[\"ServiceLauncher\"]"},{"line_number":32,"context_line":"ProcessLauncher \u003d _components[\"ProcessLauncher\"]"},{"line_number":33,"context_line":"Service \u003d _components[\"Service\"]"},{"line_number":34,"context_line":"Services \u003d _components[\"Services\"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"13a648fa_db7370b9","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":41},"in_reply_to":"f4537f28_d5ff6911","updated":"2024-12-11 12:53:36.000000000","message":"Done","commit_id":"de619ab6fce197e3c9c899b85d8112e52cde678f"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f2853ebbb9a1d265fff68addce1da51becb576f4","unresolved":true,"context_lines":[{"line_number":21,"context_line":"from oslo_service.backend import get_backend"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Load the backend dynamically"},{"line_number":24,"context_line":"_backend \u003d get_backend()"},{"line_number":25,"context_line":"_components \u003d _backend.get_service_components()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# Dynamically expose components from the backend"}],"source_content_type":"text/x-python","patch_set":19,"id":"c1991a30_6009789b","line":24,"range":{"start_line":24,"start_character":11,"end_line":24,"end_character":22},"updated":"2024-12-19 15:24:19.000000000","message":"What happens if the oslo_service.service module is imported before CONF(...) is called and options are loaded ? (I don\u0027t think we have enforced the order of these calls) I believe we should not call the selection at the import time and it should be delayed.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"ca79b5b8bc91bb7d19414c4741a90e2aafb1e422","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from oslo_service.backend import get_backend"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Load the backend dynamically"},{"line_number":24,"context_line":"_backend \u003d get_backend()"},{"line_number":25,"context_line":"_components \u003d _backend.get_service_components()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"# Dynamically expose components from the backend"}],"source_content_type":"text/x-python","patch_set":19,"id":"78d7830e_95d7eef4","line":24,"range":{"start_line":24,"start_character":11,"end_line":24,"end_character":22},"in_reply_to":"c1991a30_6009789b","updated":"2024-12-19 18:01:01.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":39,"context_line":"launch \u003d _components[\"launch\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Utility functions"},{"line_number":42,"context_line":"_is_daemon \u003d _components[\"_is_daemon\"]"},{"line_number":43,"context_line":"_is_sighup_and_daemon \u003d _components[\"_is_sighup_and_daemon\"]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"}],"source_content_type":"text/x-python","patch_set":19,"id":"6334e105_b1007172","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":60},"updated":"2024-12-19 15:21:49.000000000","message":"These are private fuctions so there is no need to define these here.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"492a6a90ef5558e85c53fbed5a63e78c9e0fd910","unresolved":false,"context_lines":[{"line_number":39,"context_line":"launch \u003d _components[\"launch\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Utility functions"},{"line_number":42,"context_line":"_is_daemon \u003d _components[\"_is_daemon\"]"},{"line_number":43,"context_line":"_is_sighup_and_daemon \u003d _components[\"_is_sighup_and_daemon\"]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"}],"source_content_type":"text/x-python","patch_set":19,"id":"511d936b_3bdf2f67","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":60},"in_reply_to":"0c0a3811_51c1bf7f","updated":"2025-01-29 13:24:28.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"1f2e3bdd6b04bb7142020745d317425b70ff073b","unresolved":true,"context_lines":[{"line_number":39,"context_line":"launch \u003d _components[\"launch\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Utility functions"},{"line_number":42,"context_line":"_is_daemon \u003d _components[\"_is_daemon\"]"},{"line_number":43,"context_line":"_is_sighup_and_daemon \u003d _components[\"_is_sighup_and_daemon\"]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"}],"source_content_type":"text/x-python","patch_set":19,"id":"0c0a3811_51c1bf7f","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":60},"in_reply_to":"20fb657f_cc2fa026","updated":"2025-01-13 13:05:50.000000000","message":"If it\u0027s ok I prefer to keep them.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5c9a1df04da0d517b054ab89571f93d21190d767","unresolved":true,"context_lines":[{"line_number":39,"context_line":"launch \u003d _components[\"launch\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Utility functions"},{"line_number":42,"context_line":"_is_daemon \u003d _components[\"_is_daemon\"]"},{"line_number":43,"context_line":"_is_sighup_and_daemon \u003d _components[\"_is_sighup_and_daemon\"]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"}],"source_content_type":"text/x-python","patch_set":19,"id":"67a8da39_7a38762b","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":60},"in_reply_to":"6334e105_b1007172","updated":"2024-12-20 15:36:25.000000000","message":"Thanks a lot for your feedback! You’re absolutely right that these are private functions. However, I decided to expose them because they are used in the tests. Changing the tests to import both versions of service.py (from the backend and the main module) felt less clean. Exposing the private functions avoids this complexity and keeps the tests straightforward. Let me know if you think there’s a better approach!","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a496c4dbb87bed6d343dbd8729d6755ba3abbeeb","unresolved":true,"context_lines":[{"line_number":39,"context_line":"launch \u003d _components[\"launch\"]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Utility functions"},{"line_number":42,"context_line":"_is_daemon \u003d _components[\"_is_daemon\"]"},{"line_number":43,"context_line":"_is_sighup_and_daemon \u003d _components[\"_is_sighup_and_daemon\"]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"}],"source_content_type":"text/x-python","patch_set":19,"id":"20fb657f_cc2fa026","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":60},"in_reply_to":"67a8da39_7a38762b","updated":"2024-12-20 22:39:00.000000000","message":"I\u0027m unsure if it is straightforward if we need different set of private utilities for different backend (the change may be needed anyway)  but I\u0027m ok with leaving it for follow up.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"},{"line_number":47,"context_line":"def list_opts():"},{"line_number":48,"context_line":"    \"\"\"Entry point for oslo-config-generator.\"\"\""},{"line_number":49,"context_line":"    return _components[\"list_opts\"]()"}],"source_content_type":"text/x-python","patch_set":19,"id":"63776a37_f0494da3","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":37},"updated":"2024-12-19 15:21:49.000000000","message":"list_opts should show all available parameters. It should not change the options according to the backend actually used.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"bea80e8fe30ac39a34cfed3770bb9e331583a640","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"},{"line_number":47,"context_line":"def list_opts():"},{"line_number":48,"context_line":"    \"\"\"Entry point for oslo-config-generator.\"\"\""},{"line_number":49,"context_line":"    return _components[\"list_opts\"]()"}],"source_content_type":"text/x-python","patch_set":19,"id":"e277103f_d51a83f2","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":37},"in_reply_to":"63776a37_f0494da3","updated":"2024-12-20 15:29:45.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5d23da1e4bff6184126a3de2f039301ac26749a8","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"# Config generation"},{"line_number":47,"context_line":"def list_opts():"},{"line_number":48,"context_line":"    \"\"\"Entry point for oslo-config-generator.\"\"\""},{"line_number":49,"context_line":"    return _components[\"list_opts\"]()"}],"source_content_type":"text/x-python","patch_set":19,"id":"d43c7e77_b2d03a97","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":37},"in_reply_to":"e277103f_d51a83f2","updated":"2024-12-20 15:40:28.000000000","message":"I agree, and I’ve moved the logic to the main module. However, the backend/eventlet/service.py includes an option (eventlet_backdoor_opts) that is only applicable to the eventlet backend. For this reason, I think it’s better to keep the list_opts function implemented by the backend itself. What do you think?","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a496c4dbb87bed6d343dbd8729d6755ba3abbeeb","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d get_component(\"ServiceBase\")"},{"line_number":30,"context_line":"ServiceLauncher \u003d get_component(\"ServiceLauncher\")"},{"line_number":31,"context_line":"Launcher \u003d get_component(\"Launcher\")"},{"line_number":32,"context_line":"ProcessLauncher \u003d get_component(\"ProcessLauncher\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"74d02f6e_bc9b7bf6","line":29,"updated":"2024-12-20 22:39:00.000000000","message":"so this means that the backend is determined when the module is imported. I wonder if this can break any of the existing usage which loads config files (by calling `cfg.CONF(...)` ) AFTER the service module is imported.","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"260a51d22a642547fedbaed23878d0c3720dd0be","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d get_component(\"ServiceBase\")"},{"line_number":30,"context_line":"ServiceLauncher \u003d get_component(\"ServiceLauncher\")"},{"line_number":31,"context_line":"Launcher \u003d get_component(\"Launcher\")"},{"line_number":32,"context_line":"ProcessLauncher \u003d get_component(\"ProcessLauncher\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"f71b4f8b_a92fc42f","line":29,"in_reply_to":"5f1b4ba6_01b9bb00","updated":"2025-01-14 15:57:12.000000000","message":"So if you look at nova-compute as an example\n\n* All config options are loaded within parse_args which is called here https://github.com/openstack/nova/blob/master/nova/cmd/compute.py#L46\n* However it imports nova.service BEFORE loading the config files  https://github.com/openstack/nova/blob/master/nova/cmd/compute.py#L37\n* nova.service imports oslo_service.service https://github.com/openstack/nova/blob/master/nova/service.py#L33\n\nSo based on these orders I expect you backend is NOT selected according to the value written in config files. We can test this scenario by creating eventlet2 backend which has the same code as eventlet with additional logging and which backend is selected when execution_backend\u003deventlet2 is added to config.","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"0f530514dec341c8a7917ddd49477641d0e78210","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d get_component(\"ServiceBase\")"},{"line_number":30,"context_line":"ServiceLauncher \u003d get_component(\"ServiceLauncher\")"},{"line_number":31,"context_line":"Launcher \u003d get_component(\"Launcher\")"},{"line_number":32,"context_line":"ProcessLauncher \u003d get_component(\"ProcessLauncher\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"d073ed54_88846ffa","line":29,"in_reply_to":"74d02f6e_bc9b7bf6","updated":"2025-01-14 14:06:52.000000000","message":"Is won\u0027t be shown by unit tests?\nIf not, maybe we could one test to ensure that this scenario do not arise.\n@Daniel what do you think of that?","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a18d7ba0fc92f758f1d9c7e4dbb1ba144b6b7fe6","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d get_component(\"ServiceBase\")"},{"line_number":30,"context_line":"ServiceLauncher \u003d get_component(\"ServiceLauncher\")"},{"line_number":31,"context_line":"Launcher \u003d get_component(\"Launcher\")"},{"line_number":32,"context_line":"ProcessLauncher \u003d get_component(\"ProcessLauncher\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"5f1b4ba6_01b9bb00","line":29,"in_reply_to":"a5583279_4c249f76","updated":"2025-01-14 14:19:41.000000000","message":"Curret unit tests use the default value so it does not show how this may work when a different backend is configured.","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"16a24195285d8f02c4502fc9044bf90be8b21e1d","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d get_component(\"ServiceBase\")"},{"line_number":30,"context_line":"ServiceLauncher \u003d get_component(\"ServiceLauncher\")"},{"line_number":31,"context_line":"Launcher \u003d get_component(\"Launcher\")"},{"line_number":32,"context_line":"ProcessLauncher \u003d get_component(\"ProcessLauncher\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"a5583279_4c249f76","line":29,"in_reply_to":"d073ed54_88846ffa","updated":"2025-01-14 14:07:18.000000000","message":"*could add","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"6272a2d31ad4717012df9e99775cf30d0824d2ec","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Dynamically expose components from the backend"},{"line_number":29,"context_line":"ServiceBase \u003d get_component(\"ServiceBase\")"},{"line_number":30,"context_line":"ServiceLauncher \u003d get_component(\"ServiceLauncher\")"},{"line_number":31,"context_line":"Launcher \u003d get_component(\"Launcher\")"},{"line_number":32,"context_line":"ProcessLauncher \u003d get_component(\"ProcessLauncher\")"}],"source_content_type":"text/x-python","patch_set":25,"id":"697962ef_96be0a07","line":29,"in_reply_to":"f71b4f8b_a92fc42f","updated":"2025-01-22 17:39:08.000000000","message":"Done","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"}],"oslo_service/sslutils.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from debtcollector import removals"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"removals.removed_module("},{"line_number":25,"context_line":"    __name__,"},{"line_number":26,"context_line":"    replacement\u003dNone,"},{"line_number":27,"context_line":"    removal_version\u003d\"2026.2\","}],"source_content_type":"text/x-python","patch_set":19,"id":"42dfc293_1c521dcb","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":8},"updated":"2024-12-19 15:21:49.000000000","message":"Please also deprecate the related options","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"734ce2c319ee0a2ef0f4d474bf61f20e4e3e9cc2","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from debtcollector import removals"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"removals.removed_module("},{"line_number":25,"context_line":"    __name__,"},{"line_number":26,"context_line":"    replacement\u003dNone,"},{"line_number":27,"context_line":"    removal_version\u003d\"2026.2\","}],"source_content_type":"text/x-python","patch_set":19,"id":"bcc9b2dd_00816a0f","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":8},"in_reply_to":"42dfc293_1c521dcb","updated":"2024-12-20 15:15:42.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"}],"oslo_service/wsgi.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from debtcollector import removals"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"removals.removed_module("},{"line_number":41,"context_line":"    __name__,"},{"line_number":42,"context_line":"    replacement\u003d\"uwsgi\","},{"line_number":43,"context_line":"    removal_version\u003d\"2026.2\","}],"source_content_type":"text/x-python","patch_set":19,"id":"f359492b_07b41938","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":8},"updated":"2024-12-19 15:21:49.000000000","message":"Please also deprecate the related options","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"734ce2c319ee0a2ef0f4d474bf61f20e4e3e9cc2","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from debtcollector import removals"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"removals.removed_module("},{"line_number":41,"context_line":"    __name__,"},{"line_number":42,"context_line":"    replacement\u003d\"uwsgi\","},{"line_number":43,"context_line":"    removal_version\u003d\"2026.2\","}],"source_content_type":"text/x-python","patch_set":19,"id":"643dc3fd_7813bb2f","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":8},"in_reply_to":"f359492b_07b41938","updated":"2024-12-20 15:15:42.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"}],"releasenotes/notes/add-backend-system-eventlet-migration-deprecations-da46d5a70d7f057d.yaml":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"ababdaa2cacbd2d7c0a0ab6d9a87b6a3a7632d8c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new backend system has been introduced to modularize and improve "},{"line_number":5,"context_line":"    the flexibility of the service implementation. This system allows "},{"line_number":6,"context_line":"    developers to choose or implement alternative backends. "},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"44c739af_34d84ec7","line":4,"range":{"start_line":4,"start_character":70,"end_line":4,"end_character":71},"updated":"2024-12-17 13:43:26.000000000","message":"Some white space should be removed. Could be done with a follow up patch to avoid back and forth just for blank spaces.","commit_id":"72f788b1a61a5f2a3c9e84883880815526e34ce8"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"a47e4fc169a9ea2c682c5cd8a8c340dc41ad21e4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new backend system has been introduced to modularize and improve "},{"line_number":5,"context_line":"    the flexibility of the service implementation. This system allows "},{"line_number":6,"context_line":"    developers to choose or implement alternative backends. "},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"e35e8ed6_11dc4140","line":4,"range":{"start_line":4,"start_character":70,"end_line":4,"end_character":71},"in_reply_to":"44c739af_34d84ec7","updated":"2024-12-17 13:45:23.000000000","message":"Well, in all the case our pep8 jobs failure is related to these blank spaces, so if we want to see this patch merged, we have to remove all these blank spaces first.\n\nhttps://zuul.opendev.org/t/openstack/build/69a924b345434362afb071a62f27a849","commit_id":"72f788b1a61a5f2a3c9e84883880815526e34ce8"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"adbc9021bdedbeaa740d3b43c47da0b94ffa23a4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new backend system has been introduced to modularize and improve "},{"line_number":5,"context_line":"    the flexibility of the service implementation. This system allows "},{"line_number":6,"context_line":"    developers to choose or implement alternative backends. "},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"a639e7a9_384cf44a","line":4,"range":{"start_line":4,"start_character":70,"end_line":4,"end_character":71},"in_reply_to":"e35e8ed6_11dc4140","updated":"2024-12-17 13:49:07.000000000","message":"Done","commit_id":"72f788b1a61a5f2a3c9e84883880815526e34ce8"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"ababdaa2cacbd2d7c0a0ab6d9a87b6a3a7632d8c","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    The following modules are now deprecated and will be removed in a "},{"line_number":24,"context_line":"    future release:"},{"line_number":25,"context_line":"    "},{"line_number":26,"context_line":"    - `oslo_service.wsgi`: Users are advised to migrate to `uwsgi` for "},{"line_number":27,"context_line":"      serving WSGI applications. Migration details can be found here:"},{"line_number":28,"context_line":"      https://docs.openstack.org/oslo.service/latest/migration/wsgi.html"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    - `oslo_service.eventlet_backdoor`: This module has been deprecated and "},{"line_number":31,"context_line":"      will be removed in version `2026.2`. It is no longer maintained."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Users should remove any dependencies on these modules as soon as possible."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"03ec7292_763d2727","line":31,"range":{"start_line":26,"start_character":4,"end_line":31,"end_character":70},"updated":"2024-12-17 13:43:26.000000000","message":"Should we not also mention sslutils and fixtures?","commit_id":"72f788b1a61a5f2a3c9e84883880815526e34ce8"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"adbc9021bdedbeaa740d3b43c47da0b94ffa23a4","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    The following modules are now deprecated and will be removed in a "},{"line_number":24,"context_line":"    future release:"},{"line_number":25,"context_line":"    "},{"line_number":26,"context_line":"    - `oslo_service.wsgi`: Users are advised to migrate to `uwsgi` for "},{"line_number":27,"context_line":"      serving WSGI applications. Migration details can be found here:"},{"line_number":28,"context_line":"      https://docs.openstack.org/oslo.service/latest/migration/wsgi.html"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    - `oslo_service.eventlet_backdoor`: This module has been deprecated and "},{"line_number":31,"context_line":"      will be removed in version `2026.2`. It is no longer maintained."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Users should remove any dependencies on these modules as soon as possible."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"594439ad_f892447d","line":31,"range":{"start_line":26,"start_character":4,"end_line":31,"end_character":70},"in_reply_to":"03ec7292_763d2727","updated":"2024-12-17 13:49:07.000000000","message":"Done","commit_id":"72f788b1a61a5f2a3c9e84883880815526e34ce8"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"fdea59948a03efa56d14917573bedaab8cbf7834","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - `oslo_service.wsgi`: Users are advised to migrate to `uwsgi` for"},{"line_number":25,"context_line":"      serving WSGI applications. Migration details can be found here:"},{"line_number":26,"context_line":"      https://docs.openstack.org/oslo.service/latest/migration/wsgi.html"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    - `oslo_service.eventlet_backdoor`: This module has been deprecated and"},{"line_number":29,"context_line":"      will be removed in version `2026.2`. It is no longer maintained."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"4e3d54d1_44e4ad2b","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":72},"updated":"2024-12-17 14:04:27.000000000","message":"This page do not currently exist and as far as I can see there is no doc updates in your patches, so I do not see how this page will be generated.\n\nIf your intent is to create this patch later, then, we should not mention this link now as the release note will be published once we will merge this patch and so this link will lead to a 404.","commit_id":"59f1f65250d909ba8d0dfd12337ca8adbe1b18b0"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"361446a3041452602c3e6b6a05ce3f2a1e2f78f1","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - `oslo_service.wsgi`: Users are advised to migrate to `uwsgi` for"},{"line_number":25,"context_line":"      serving WSGI applications. Migration details can be found here:"},{"line_number":26,"context_line":"      https://docs.openstack.org/oslo.service/latest/migration/wsgi.html"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    - `oslo_service.eventlet_backdoor`: This module has been deprecated and"},{"line_number":29,"context_line":"      will be removed in version `2026.2`. It is no longer maintained."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"540dc8e9_a76eea5d","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":72},"in_reply_to":"4e3d54d1_44e4ad2b","updated":"2024-12-17 14:33:09.000000000","message":"I\u0027d rather suggest to drop the link from this release note, and to add it again once you start working on the documentation aspects related to the migration of oslo.service","commit_id":"59f1f65250d909ba8d0dfd12337ca8adbe1b18b0"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"b6911339e81c8037983d3235137d08eba2ffd27b","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - `oslo_service.wsgi`: Users are advised to migrate to `uwsgi` for"},{"line_number":25,"context_line":"      serving WSGI applications. Migration details can be found here:"},{"line_number":26,"context_line":"      https://docs.openstack.org/oslo.service/latest/migration/wsgi.html"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    - `oslo_service.eventlet_backdoor`: This module has been deprecated and"},{"line_number":29,"context_line":"      will be removed in version `2026.2`. It is no longer maintained."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"b4e3bf4d_719ed16e","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":72},"in_reply_to":"540dc8e9_a76eea5d","updated":"2024-12-17 16:30:23.000000000","message":"Done","commit_id":"59f1f65250d909ba8d0dfd12337ca8adbe1b18b0"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":12,"context_line":"    To configure a different backend (if applicable in the future),"},{"line_number":13,"context_line":"    refer to the `backend` option in the configuration file."},{"line_number":14,"context_line":"upgrade:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The current implementation of threading and looping calls has been"},{"line_number":17,"context_line":"    migrated to use the new `eventlet` backend. This change is transparent"},{"line_number":18,"context_line":"    for existing deployments and requires no configuration updates."},{"line_number":19,"context_line":"deprecations:"},{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    The following modules are now deprecated and will be removed in a"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"b7aa999e_0107a5c4","line":18,"range":{"start_line":15,"start_character":5,"end_line":18,"end_character":67},"updated":"2024-12-19 15:21:49.000000000","message":"If there is no upgrade impact then what\u0027s the point of having this note ?","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"ca79b5b8bc91bb7d19414c4741a90e2aafb1e422","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    To configure a different backend (if applicable in the future),"},{"line_number":13,"context_line":"    refer to the `backend` option in the configuration file."},{"line_number":14,"context_line":"upgrade:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The current implementation of threading and looping calls has been"},{"line_number":17,"context_line":"    migrated to use the new `eventlet` backend. This change is transparent"},{"line_number":18,"context_line":"    for existing deployments and requires no configuration updates."},{"line_number":19,"context_line":"deprecations:"},{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    The following modules are now deprecated and will be removed in a"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"25cfb170_5e1cdde3","line":18,"range":{"start_line":15,"start_character":5,"end_line":18,"end_character":67},"in_reply_to":"b7aa999e_0107a5c4","updated":"2024-12-19 18:01:01.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c816622bcc0341c56b5f64c8d66cf444f72a735b","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    Users should remove any dependencies on these modules as soon as possible."},{"line_number":37,"context_line":"critical:"},{"line_number":38,"context_line":"  - |"},{"line_number":39,"context_line":"    Developers relying on deprecated modules should ensure migration to"},{"line_number":40,"context_line":"    supported alternatives before the deprecation window closes."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"6ff78b69_da9fabbb","line":40,"range":{"start_line":38,"start_character":4,"end_line":40,"end_character":64},"updated":"2024-12-19 15:21:49.000000000","message":"Critical section should explain the problems which may cause critical problems in running deployments, but this is not really critical for running deployments. I believe the note is critical section is red-herring and deprecation notes should be enough.","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"ca79b5b8bc91bb7d19414c4741a90e2aafb1e422","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    Users should remove any dependencies on these modules as soon as possible."},{"line_number":37,"context_line":"critical:"},{"line_number":38,"context_line":"  - |"},{"line_number":39,"context_line":"    Developers relying on deprecated modules should ensure migration to"},{"line_number":40,"context_line":"    supported alternatives before the deprecation window closes."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"467311bb_33e72f02","line":40,"range":{"start_line":38,"start_character":4,"end_line":40,"end_character":64},"in_reply_to":"6ff78b69_da9fabbb","updated":"2024-12-19 18:01:01.000000000","message":"Done","commit_id":"2e4daebec362ce182250af05f15929ab45296e16"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bcb377eefb8f08fffc1b6988fe8a25f1a1a2b647","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    the flexibility of the service implementation. This system allows"},{"line_number":6,"context_line":"    developers to choose or implement alternative backends."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    By default, the `eventlet` backend is used, preserving the previous"},{"line_number":9,"context_line":"    behavior. The backend is dynamically loaded through the new"},{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"0b559f3e_1a46e321","line":8,"range":{"start_line":8,"start_character":21,"end_line":8,"end_character":29},"updated":"2025-01-15 05:39:20.000000000","message":"please use double backticks to quote code-like words, like ``eventlet``\n\n```suggestion\n    By default, the ``eventlet`` backend is used, preserving the previous\n```\n\nthe current version has them just as italics, see the formatted result at https://411deec051d768e42c33-554a55c2926ce345d8a8f0805ecfe993.ssl.cf5.rackcdn.com/937010/30/check/build-openstack-releasenotes/a9a52c7/docs/unreleased.html","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"c115e27c0686ec51418dbca73af2f80f9d3d5c16","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    the flexibility of the service implementation. This system allows"},{"line_number":6,"context_line":"    developers to choose or implement alternative backends."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    By default, the `eventlet` backend is used, preserving the previous"},{"line_number":9,"context_line":"    behavior. The backend is dynamically loaded through the new"},{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"bd1c9a22_a4a73ac1","line":8,"range":{"start_line":8,"start_character":21,"end_line":8,"end_character":29},"in_reply_to":"0b559f3e_1a46e321","updated":"2025-01-22 17:43:29.000000000","message":"Thanks a lot for the feedback! I will change it yes.","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"013f0aafb48621c9f437432fe31363c9329b78f1","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    the flexibility of the service implementation. This system allows"},{"line_number":6,"context_line":"    developers to choose or implement alternative backends."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    By default, the `eventlet` backend is used, preserving the previous"},{"line_number":9,"context_line":"    behavior. The backend is dynamically loaded through the new"},{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"f41e85cf_52d6a6c5","line":8,"range":{"start_line":8,"start_character":21,"end_line":8,"end_character":29},"in_reply_to":"bd1c9a22_a4a73ac1","updated":"2025-01-29 13:23:59.000000000","message":"Done","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"ecada1c84a5112139580842b5e013ec8c72311e2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    the flexibility of the service implementation. This system allows"},{"line_number":6,"context_line":"    developers to choose or implement alternative backends."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    By default, the `eventlet` backend is used, preserving the previous"},{"line_number":9,"context_line":"    behavior. The backend is dynamically loaded through the new"},{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":30,"id":"f2b7dcbc_2320a1b0","line":8,"range":{"start_line":8,"start_character":21,"end_line":8,"end_character":29},"in_reply_to":"f41e85cf_52d6a6c5","updated":"2025-01-29 13:32:04.000000000","message":"The same is true for the modules listed below, not just the word pointed previously by Jens.","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d7dead0a516c75e41c7035b916d9c07834962d3e","unresolved":true,"context_lines":[{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    To configure a different backend (if applicable in the future),"},{"line_number":13,"context_line":"    refer to the `backend` option in the configuration file."},{"line_number":14,"context_line":"deprecations:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The following modules are now deprecated and will be removed in a"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"13f0d161_5f3cedff","line":13,"range":{"start_line":13,"start_character":18,"end_line":13,"end_character":25},"updated":"2025-01-14 15:20:30.000000000","message":"This should be updated according to the renaming.","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"013f0aafb48621c9f437432fe31363c9329b78f1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    To configure a different backend (if applicable in the future),"},{"line_number":13,"context_line":"    refer to the `backend` option in the configuration file."},{"line_number":14,"context_line":"deprecations:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The following modules are now deprecated and will be removed in a"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"6303d99f_3ec59f49","line":13,"range":{"start_line":13,"start_character":18,"end_line":13,"end_character":25},"in_reply_to":"13f0d161_5f3cedff","updated":"2025-01-29 13:23:59.000000000","message":"Done","commit_id":"579ab007c1f5663264ffe60b2af81be77911f91a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"71b079f7ba9a495939492a787d89038c04b22031","unresolved":true,"context_lines":[{"line_number":9,"context_line":"    behavior. The backend is dynamically loaded through the new"},{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    To configure a different backend (if applicable in the future),"},{"line_number":13,"context_line":"    refer to the `backend` option in the configuration file."},{"line_number":14,"context_line":"deprecations:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The following modules are now deprecated and will be removed in a"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"fc9ec171_5f70701c","line":13,"range":{"start_line":12,"start_character":4,"end_line":13,"end_character":60},"updated":"2025-01-28 15:17:13.000000000","message":"Not anymore available","commit_id":"d653943c54a55de87f7426adbbc423bc9a2b93c3"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"624d46a0c54307fd8c21f0c58408fb81d8f1e11c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    behavior. The backend is dynamically loaded through the new"},{"line_number":10,"context_line":"    backend mechanism."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    To configure a different backend (if applicable in the future),"},{"line_number":13,"context_line":"    refer to the `backend` option in the configuration file."},{"line_number":14,"context_line":"deprecations:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    The following modules are now deprecated and will be removed in a"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"72c39492_050b908a","line":13,"range":{"start_line":12,"start_character":4,"end_line":13,"end_character":60},"in_reply_to":"fc9ec171_5f70701c","updated":"2025-01-29 13:21:11.000000000","message":"Done","commit_id":"d653943c54a55de87f7426adbbc423bc9a2b93c3"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"79d383069a17293a08b4b7fe9b76dd22afe9391d","unresolved":true,"context_lines":[{"line_number":13,"context_line":"    The following modules are now deprecated and will be removed in a"},{"line_number":14,"context_line":"    future release:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    - ``oslo_service.wsgi``: Users are advised to migrate to `uwsgi` for"},{"line_number":17,"context_line":"      serving WSGI applications."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    - ``oslo_service.eventlet_backdoor``: This module has been deprecated and"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"c261ce5b_fa62dbbf","line":16,"range":{"start_line":16,"start_character":62,"end_line":16,"end_character":67},"updated":"2025-01-30 09:09:01.000000000","message":"You forgot this one.","commit_id":"2eb2c0165311f726b6b73ab007007b481491ed87"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"b1efd036d94d06d621bb894f427aa1f04bd02c84","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    The following modules are now deprecated and will be removed in a"},{"line_number":14,"context_line":"    future release:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    - ``oslo_service.wsgi``: Users are advised to migrate to `uwsgi` for"},{"line_number":17,"context_line":"      serving WSGI applications."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    - ``oslo_service.eventlet_backdoor``: This module has been deprecated and"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"4a3641a6_8299ecaa","line":16,"range":{"start_line":16,"start_character":62,"end_line":16,"end_character":67},"in_reply_to":"c261ce5b_fa62dbbf","updated":"2025-01-30 10:14:37.000000000","message":"Done","commit_id":"2eb2c0165311f726b6b73ab007007b481491ed87"}],"setup.cfg":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a496c4dbb87bed6d343dbd8729d6755ba3abbeeb","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    oslo.service.sslutils \u003d oslo_service.sslutils:list_opts"},{"line_number":34,"context_line":"    oslo.service.wsgi \u003d oslo_service.wsgi:list_opts"},{"line_number":35,"context_line":"    oslo.service.backend \u003d oslo_service.backend:list_opts"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[upload_sphinx]"},{"line_number":38,"context_line":"upload-dir \u003d doc/build/html"}],"source_content_type":"text/x-ttcn-cfg","patch_set":25,"id":"5e70a24d_013d582e","line":36,"updated":"2024-12-20 22:39:00.000000000","message":"this sould be in the parent change. also I wonder if we really need the new entry point, which needs update in every config file for oslo-config-generator. Can we use the existing .service?","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"04cadd96cc51b2c6d28065eb76f2156190dd2a55","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    oslo.service.sslutils \u003d oslo_service.sslutils:list_opts"},{"line_number":34,"context_line":"    oslo.service.wsgi \u003d oslo_service.wsgi:list_opts"},{"line_number":35,"context_line":"    oslo.service.backend \u003d oslo_service.backend:list_opts"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[upload_sphinx]"},{"line_number":38,"context_line":"upload-dir \u003d doc/build/html"}],"source_content_type":"text/x-ttcn-cfg","patch_set":25,"id":"c9ad6016_577a52c4","line":36,"in_reply_to":"5e70a24d_013d582e","updated":"2025-01-13 12:37:49.000000000","message":"Ok if you think it\u0027s better we use the service for the options.","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"7894503976e7254a8445c35a1ca2e6fed7ab0af4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    oslo.service.sslutils \u003d oslo_service.sslutils:list_opts"},{"line_number":34,"context_line":"    oslo.service.wsgi \u003d oslo_service.wsgi:list_opts"},{"line_number":35,"context_line":"    oslo.service.backend \u003d oslo_service.backend:list_opts"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[upload_sphinx]"},{"line_number":38,"context_line":"upload-dir \u003d doc/build/html"}],"source_content_type":"text/x-ttcn-cfg","patch_set":25,"id":"82059907_e471b41f","line":36,"in_reply_to":"c9ad6016_577a52c4","updated":"2025-01-13 13:05:12.000000000","message":"Done","commit_id":"90df004125b0fa08055edb35548eeea449d218d2"}]}
