)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3c01a00c4bb528d3fb61354718eca74b84bd53e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f576aee1_f85ccbd5","updated":"2026-07-29 16:20:32.000000000","message":"I\u0027ll vote my +2 once my comments are addressed.","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"30608948d8fdd44b4d0b632eb6a825106e776512","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ff0bf9d0_f0819674","updated":"2026-07-29 17:34:41.000000000","message":"this lgtm as overall except for the versioning fix commented by Takashi","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b5e70e60f3a0da7e541f9323daad6e921c4b2911","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6738623b_a88a790e","updated":"2026-07-30 17:35:16.000000000","message":"thanks, lgtm","commit_id":"64d526ef59633d874800098fef1a3234cf99ade2"}],"oslo_config/cfg.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0bee5be4dc4f68df146ce2a87f54dbc82daa017b","unresolved":true,"context_lines":[{"line_number":1165,"context_line":"       Added *min* and *max* parameters."},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":""},{"line_number":1168,"context_line":"    .. versionchanged:: 9.3.0"},{"line_number":1169,"context_line":""},{"line_number":1170,"context_line":"       Added *choices* parameter."},{"line_number":1171,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"4107c842_8b781da8","line":1168,"range":{"start_line":1168,"start_character":7,"end_line":1168,"end_character":21},"updated":"2026-07-01 15:20:56.000000000","message":"Please add versionchanged for the new options (this needs to be fixed in a few other places too)","commit_id":"8f16e9b9cd4af31fdb148dca83e5134bd4e60de1"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e8dbb93fe9054f00f12e29a72c1dd9714a2f4dcd","unresolved":false,"context_lines":[{"line_number":1165,"context_line":"       Added *min* and *max* parameters."},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":""},{"line_number":1168,"context_line":"    .. versionchanged:: 9.3.0"},{"line_number":1169,"context_line":""},{"line_number":1170,"context_line":"       Added *choices* parameter."},{"line_number":1171,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7c0fe004_416e24d4","line":1168,"range":{"start_line":1168,"start_character":7,"end_line":1168,"end_character":21},"in_reply_to":"4107c842_8b781da8","updated":"2026-07-02 07:25:59.000000000","message":"Done","commit_id":"8f16e9b9cd4af31fdb148dca83e5134bd4e60de1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0bee5be4dc4f68df146ce2a87f54dbc82daa017b","unresolved":true,"context_lines":[{"line_number":1177,"context_line":"        max: int | None \u003d None,"},{"line_number":1178,"context_line":"        choices: Any \u003d None,"},{"line_number":1179,"context_line":"        sample_min: str | None \u003d None,"},{"line_number":1180,"context_line":"        sample_max: int | None \u003d None,"},{"line_number":1181,"context_line":"        **kwargs: Any,"},{"line_number":1182,"context_line":"    ) -\u003e None:"},{"line_number":1183,"context_line":"        super().__init__("}],"source_content_type":"text/x-python","patch_set":3,"id":"ce65e4c9_441ab845","line":1180,"range":{"start_line":1180,"start_character":20,"end_line":1180,"end_character":23},"updated":"2026-07-01 15:20:56.000000000","message":"str ?","commit_id":"8f16e9b9cd4af31fdb148dca83e5134bd4e60de1"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e8dbb93fe9054f00f12e29a72c1dd9714a2f4dcd","unresolved":false,"context_lines":[{"line_number":1177,"context_line":"        max: int | None \u003d None,"},{"line_number":1178,"context_line":"        choices: Any \u003d None,"},{"line_number":1179,"context_line":"        sample_min: str | None \u003d None,"},{"line_number":1180,"context_line":"        sample_max: int | None \u003d None,"},{"line_number":1181,"context_line":"        **kwargs: Any,"},{"line_number":1182,"context_line":"    ) -\u003e None:"},{"line_number":1183,"context_line":"        super().__init__("}],"source_content_type":"text/x-python","patch_set":3,"id":"d6416565_dd1f343b","line":1180,"range":{"start_line":1180,"start_character":20,"end_line":1180,"end_character":23},"in_reply_to":"ce65e4c9_441ab845","updated":"2026-07-02 07:25:59.000000000","message":"Done","commit_id":"8f16e9b9cd4af31fdb148dca83e5134bd4e60de1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"151e9b7661d72a35665ff6094c9916a3d6d07546","unresolved":true,"context_lines":[{"line_number":1156,"context_line":"    :param max: maximum value the integer can take"},{"line_number":1157,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":1158,"context_line":"        values with descriptions."},{"line_number":1159,"context_line":"    :param sample_min: min value to write when generating config"},{"line_number":1160,"context_line":"    :param sample_max: max value to write when generating config"},{"line_number":1161,"context_line":"    :param \\*\\*kwargs: arbitrary keyword arguments passed to :class:`Opt`"},{"line_number":1162,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"245c393b_fa190f78","line":1159,"range":{"start_line":1159,"start_character":23,"end_line":1159,"end_character":64},"updated":"2026-07-08 14:46:46.000000000","message":"a minimum value string for sample config files","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8cff65dd5365c69e10bb8efbb9bb5cd4011df8df","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"    :param max: maximum value the integer can take"},{"line_number":1157,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":1158,"context_line":"        values with descriptions."},{"line_number":1159,"context_line":"    :param sample_min: min value to write when generating config"},{"line_number":1160,"context_line":"    :param sample_max: max value to write when generating config"},{"line_number":1161,"context_line":"    :param \\*\\*kwargs: arbitrary keyword arguments passed to :class:`Opt`"},{"line_number":1162,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"195794e3_d6c18e5d","line":1159,"range":{"start_line":1159,"start_character":23,"end_line":1159,"end_character":64},"in_reply_to":"245c393b_fa190f78","updated":"2026-07-09 07:22:01.000000000","message":"Done","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"151e9b7661d72a35665ff6094c9916a3d6d07546","unresolved":true,"context_lines":[{"line_number":1157,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":1158,"context_line":"        values with descriptions."},{"line_number":1159,"context_line":"    :param sample_min: min value to write when generating config"},{"line_number":1160,"context_line":"    :param sample_max: max value to write when generating config"},{"line_number":1161,"context_line":"    :param \\*\\*kwargs: arbitrary keyword arguments passed to :class:`Opt`"},{"line_number":1162,"context_line":""},{"line_number":1163,"context_line":"    .. versionchanged:: 1.15"}],"source_content_type":"text/x-python","patch_set":6,"id":"38950189_c652ccaa","line":1160,"range":{"start_line":1160,"start_character":23,"end_line":1160,"end_character":64},"updated":"2026-07-08 14:46:46.000000000","message":"a maximum value string for sample config files","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8cff65dd5365c69e10bb8efbb9bb5cd4011df8df","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":1158,"context_line":"        values with descriptions."},{"line_number":1159,"context_line":"    :param sample_min: min value to write when generating config"},{"line_number":1160,"context_line":"    :param sample_max: max value to write when generating config"},{"line_number":1161,"context_line":"    :param \\*\\*kwargs: arbitrary keyword arguments passed to :class:`Opt`"},{"line_number":1162,"context_line":""},{"line_number":1163,"context_line":"    .. versionchanged:: 1.15"}],"source_content_type":"text/x-python","patch_set":6,"id":"5ca0e65d_102a03cb","line":1160,"range":{"start_line":1160,"start_character":23,"end_line":1160,"end_character":64},"in_reply_to":"38950189_c652ccaa","updated":"2026-07-09 07:22:01.000000000","message":"Done","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3c01a00c4bb528d3fb61354718eca74b84bd53e5","unresolved":true,"context_lines":[{"line_number":1169,"context_line":""},{"line_number":1170,"context_line":"       Added *choices* parameter."},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"    .. versionchanged:: 10.6.0"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"       Added sample_min and sample_max,"},{"line_number":1175,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"0491106f_3d11d334","line":1172,"range":{"start_line":1172,"start_character":24,"end_line":1172,"end_character":30},"updated":"2026-07-29 16:20:32.000000000","message":"10.6.0 is already out. This should be 10.7.0 now.","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"c55bdd4dd8e9c2371455715e011fe9a08ed5c180","unresolved":false,"context_lines":[{"line_number":1169,"context_line":""},{"line_number":1170,"context_line":"       Added *choices* parameter."},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"    .. versionchanged:: 10.6.0"},{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"       Added sample_min and sample_max,"},{"line_number":1175,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"d6c2d513_d817188e","line":1172,"range":{"start_line":1172,"start_character":24,"end_line":1172,"end_character":30},"in_reply_to":"0491106f_3d11d334","updated":"2026-07-30 07:45:07.000000000","message":"Done","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"}],"oslo_config/tests/test_generator.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fa5e5614e9f2907d2fdab586b208f918e7d825d3","unresolved":true,"context_lines":[{"line_number":160,"context_line":"        \u0027int_opt_max_0\u0027: cfg.IntOpt("},{"line_number":161,"context_line":"            \u0027int_opt_max_0\u0027, default\u003d-1, max\u003d0, help\u003d\u0027an integer\u0027"},{"line_number":162,"context_line":"        ),"},{"line_number":163,"context_line":"        \u0027int_opt_max_0_with_def\u0027: cfg.IntOpt("},{"line_number":164,"context_line":"            \u0027int_opt_max_0_with_def\u0027,"},{"line_number":165,"context_line":"            default\u003d-1,"},{"line_number":166,"context_line":"            max\u003d0,"}],"source_content_type":"text/x-python","patch_set":6,"id":"af2e6a56_b0a0fdb4","line":163,"range":{"start_line":163,"start_character":27,"end_line":163,"end_character":31},"updated":"2026-07-08 14:48:07.000000000","message":"maybe with_sample ?\n\nPlease also add a test case for min.","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8cff65dd5365c69e10bb8efbb9bb5cd4011df8df","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        \u0027int_opt_max_0\u0027: cfg.IntOpt("},{"line_number":161,"context_line":"            \u0027int_opt_max_0\u0027, default\u003d-1, max\u003d0, help\u003d\u0027an integer\u0027"},{"line_number":162,"context_line":"        ),"},{"line_number":163,"context_line":"        \u0027int_opt_max_0_with_def\u0027: cfg.IntOpt("},{"line_number":164,"context_line":"            \u0027int_opt_max_0_with_def\u0027,"},{"line_number":165,"context_line":"            default\u003d-1,"},{"line_number":166,"context_line":"            max\u003d0,"}],"source_content_type":"text/x-python","patch_set":6,"id":"f70a3ef4_93825c1f","line":163,"range":{"start_line":163,"start_character":27,"end_line":163,"end_character":31},"in_reply_to":"af2e6a56_b0a0fdb4","updated":"2026-07-09 07:22:01.000000000","message":"Done","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"}],"oslo_config/types.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"0bee5be4dc4f68df146ce2a87f54dbc82daa017b","unresolved":true,"context_lines":[{"line_number":291,"context_line":"    :param type_name: Type name to be used in the sample config file."},{"line_number":292,"context_line":"    :param min: Optional check that value is greater than or equal to min."},{"line_number":293,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":294,"context_line":"    :param sample_min: Optional value when generating config file."},{"line_number":295,"context_line":"    :param sample_max: Optional value when generating config file."},{"line_number":296,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":297,"context_line":"        values with descriptions."}],"source_content_type":"text/x-python","patch_set":3,"id":"cd07551c_a2c8f432","line":294,"range":{"start_line":294,"start_character":23,"end_line":294,"end_character":66},"updated":"2026-07-01 15:20:56.000000000","message":"This doesn\u0027t explain how it is used. Please fix the other places too.","commit_id":"8f16e9b9cd4af31fdb148dca83e5134bd4e60de1"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e8dbb93fe9054f00f12e29a72c1dd9714a2f4dcd","unresolved":false,"context_lines":[{"line_number":291,"context_line":"    :param type_name: Type name to be used in the sample config file."},{"line_number":292,"context_line":"    :param min: Optional check that value is greater than or equal to min."},{"line_number":293,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":294,"context_line":"    :param sample_min: Optional value when generating config file."},{"line_number":295,"context_line":"    :param sample_max: Optional value when generating config file."},{"line_number":296,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":297,"context_line":"        values with descriptions."}],"source_content_type":"text/x-python","patch_set":3,"id":"85bbc2b8_43d90b80","line":294,"range":{"start_line":294,"start_character":23,"end_line":294,"end_character":66},"in_reply_to":"cd07551c_a2c8f432","updated":"2026-07-02 07:25:59.000000000","message":"Done","commit_id":"8f16e9b9cd4af31fdb148dca83e5134bd4e60de1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"151e9b7661d72a35665ff6094c9916a3d6d07546","unresolved":true,"context_lines":[{"line_number":292,"context_line":"    :param min: Optional check that value is greater than or equal to min."},{"line_number":293,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":294,"context_line":"    :param sample_min: Optional value when generating config file that will"},{"line_number":295,"context_line":"                       replace the default (often: to avoid"},{"line_number":296,"context_line":"                       non-reproducibility)."},{"line_number":297,"context_line":"    :param sample_max: Optional value when generating config file that will"},{"line_number":298,"context_line":"                       replace the default (often: to avoid"}],"source_content_type":"text/x-python","patch_set":6,"id":"a3ae571d_6e25e594","line":295,"range":{"start_line":295,"start_character":35,"end_line":295,"end_character":42},"updated":"2026-07-08 14:46:46.000000000","message":"this isn\u0027t replacing the default","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8cff65dd5365c69e10bb8efbb9bb5cd4011df8df","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    :param min: Optional check that value is greater than or equal to min."},{"line_number":293,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":294,"context_line":"    :param sample_min: Optional value when generating config file that will"},{"line_number":295,"context_line":"                       replace the default (often: to avoid"},{"line_number":296,"context_line":"                       non-reproducibility)."},{"line_number":297,"context_line":"    :param sample_max: Optional value when generating config file that will"},{"line_number":298,"context_line":"                       replace the default (often: to avoid"}],"source_content_type":"text/x-python","patch_set":6,"id":"8f5fe9b3_d6194922","line":295,"range":{"start_line":295,"start_character":35,"end_line":295,"end_character":42},"in_reply_to":"a3ae571d_6e25e594","updated":"2026-07-09 07:22:01.000000000","message":"Done","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"151e9b7661d72a35665ff6094c9916a3d6d07546","unresolved":true,"context_lines":[{"line_number":292,"context_line":"    :param min: Optional check that value is greater than or equal to min."},{"line_number":293,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":294,"context_line":"    :param sample_min: Optional value when generating config file that will"},{"line_number":295,"context_line":"                       replace the default (often: to avoid"},{"line_number":296,"context_line":"                       non-reproducibility)."},{"line_number":297,"context_line":"    :param sample_max: Optional value when generating config file that will"},{"line_number":298,"context_line":"                       replace the default (often: to avoid"},{"line_number":299,"context_line":"                       non-reproducibility)."}],"source_content_type":"text/x-python","patch_set":6,"id":"56e16075_057e62cb","line":296,"range":{"start_line":295,"start_character":43,"end_line":296,"end_character":44},"updated":"2026-07-08 14:46:46.000000000","message":"This is not the only use case(for example we should not bake the default relying on the set up in the node), so let\u0027s remove it.","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8cff65dd5365c69e10bb8efbb9bb5cd4011df8df","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    :param min: Optional check that value is greater than or equal to min."},{"line_number":293,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":294,"context_line":"    :param sample_min: Optional value when generating config file that will"},{"line_number":295,"context_line":"                       replace the default (often: to avoid"},{"line_number":296,"context_line":"                       non-reproducibility)."},{"line_number":297,"context_line":"    :param sample_max: Optional value when generating config file that will"},{"line_number":298,"context_line":"                       replace the default (often: to avoid"},{"line_number":299,"context_line":"                       non-reproducibility)."}],"source_content_type":"text/x-python","patch_set":6,"id":"5cb3cd5a_fc6f75f4","line":296,"range":{"start_line":295,"start_character":43,"end_line":296,"end_character":44},"in_reply_to":"56e16075_057e62cb","updated":"2026-07-09 07:22:01.000000000","message":"Done","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"151e9b7661d72a35665ff6094c9916a3d6d07546","unresolved":true,"context_lines":[{"line_number":416,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":417,"context_line":"    :param type_name: Type name to be used in the sample config file."},{"line_number":418,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":419,"context_line":"        values with descriptions."},{"line_number":420,"context_line":"    :param sample_min: Optional value when generating config file."},{"line_number":421,"context_line":"    :param sample_max: Optional value when generating config file."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    .. versionchanged:: 2.4"},{"line_number":424,"context_line":"       The class now honors zero for *min* and *max* parameters."}],"source_content_type":"text/x-python","patch_set":6,"id":"4c0c8861_f4d76b30","line":421,"range":{"start_line":419,"start_character":33,"end_line":421,"end_character":66},"updated":"2026-07-08 14:46:46.000000000","message":"These do not explain how these are used, really. Please reuse the description you added in the other places.","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8cff65dd5365c69e10bb8efbb9bb5cd4011df8df","unresolved":false,"context_lines":[{"line_number":416,"context_line":"    :param max: Optional check that value is less than or equal to max."},{"line_number":417,"context_line":"    :param type_name: Type name to be used in the sample config file."},{"line_number":418,"context_line":"    :param choices: Optional sequence of either valid values or tuples of valid"},{"line_number":419,"context_line":"        values with descriptions."},{"line_number":420,"context_line":"    :param sample_min: Optional value when generating config file."},{"line_number":421,"context_line":"    :param sample_max: Optional value when generating config file."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    .. versionchanged:: 2.4"},{"line_number":424,"context_line":"       The class now honors zero for *min* and *max* parameters."}],"source_content_type":"text/x-python","patch_set":6,"id":"d2649b93_4e5d732b","line":421,"range":{"start_line":419,"start_character":33,"end_line":421,"end_character":66},"in_reply_to":"4c0c8861_f4d76b30","updated":"2026-07-09 07:22:01.000000000","message":"Done","commit_id":"60fc92ae17eba9325fc63adfc765c50ad47a2801"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3c01a00c4bb528d3fb61354718eca74b84bd53e5","unresolved":true,"context_lines":[{"line_number":303,"context_line":"    .. versionchanged:: 5.2"},{"line_number":304,"context_line":"       The *choices* parameter will now accept a sequence of tuples, where each"},{"line_number":305,"context_line":"       tuple is of form (*choice*, *description*)"},{"line_number":306,"context_line":"    \"\"\""},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    choices: collections.OrderedDict[int | float, str | None] | None"},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"6b8d43e5_2ab2bd89","line":306,"range":{"start_line":306,"start_character":5,"end_line":306,"end_character":7},"updated":"2026-07-29 16:20:32.000000000","message":"could you add the versionchanged note here, too ?","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"c55bdd4dd8e9c2371455715e011fe9a08ed5c180","unresolved":false,"context_lines":[{"line_number":303,"context_line":"    .. versionchanged:: 5.2"},{"line_number":304,"context_line":"       The *choices* parameter will now accept a sequence of tuples, where each"},{"line_number":305,"context_line":"       tuple is of form (*choice*, *description*)"},{"line_number":306,"context_line":"    \"\"\""},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    choices: collections.OrderedDict[int | float, str | None] | None"},{"line_number":309,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dd89239a_03381fdd","line":306,"range":{"start_line":306,"start_character":5,"end_line":306,"end_character":7},"in_reply_to":"6b8d43e5_2ab2bd89","updated":"2026-07-30 07:45:07.000000000","message":"Done","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3c01a00c4bb528d3fb61354718eca74b84bd53e5","unresolved":true,"context_lines":[{"line_number":437,"context_line":"       The *choices* parameter will now accept a sequence of tuples, where each"},{"line_number":438,"context_line":"       tuple is of form (*choice*, *description*)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    .. versionchanged:: 10.6.0"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"       Added sample_min and sample_max,"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"a6efd05a_c4b5d196","line":440,"range":{"start_line":440,"start_character":24,"end_line":440,"end_character":30},"updated":"2026-07-29 16:20:32.000000000","message":"10.7.0","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"c55bdd4dd8e9c2371455715e011fe9a08ed5c180","unresolved":false,"context_lines":[{"line_number":437,"context_line":"       The *choices* parameter will now accept a sequence of tuples, where each"},{"line_number":438,"context_line":"       tuple is of form (*choice*, *description*)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    .. versionchanged:: 10.6.0"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"       Added sample_min and sample_max,"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"8180ac8a_1da4dd3f","line":440,"range":{"start_line":440,"start_character":24,"end_line":440,"end_character":30},"in_reply_to":"a6efd05a_c4b5d196","updated":"2026-07-30 07:45:07.000000000","message":"Done","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"}],"releasenotes/notes/sample_min-and-max-9f1b321fa408bf2f.yaml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3c01a00c4bb528d3fb61354718eca74b84bd53e5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"42cf3144_6d307375","line":11,"range":{"start_line":6,"start_character":70,"end_line":11,"end_character":1},"updated":"2026-07-29 16:20:32.000000000","message":"Can we remove this part ? I\u0027m mainly concerned about mentioning that cinder problem without enough information for users to understand what it is.","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"30608948d8fdd44b4d0b632eb6a825106e776512","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6e605c4c_ea8545d7","line":11,"range":{"start_line":6,"start_character":70,"end_line":11,"end_character":1},"in_reply_to":"42cf3144_6d307375","updated":"2026-07-29 17:34:41.000000000","message":"agree, but let\u0027s add some usage here saying if you would not like to show some min/max value for system level opts.","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"c55bdd4dd8e9c2371455715e011fe9a08ed5c180","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0cd820fb_e0e47a80","line":11,"range":{"start_line":6,"start_character":70,"end_line":11,"end_character":1},"in_reply_to":"6e605c4c_ea8545d7","updated":"2026-07-30 07:45:07.000000000","message":"Done","commit_id":"20dfee0cb99099f04a3d358a0fc9c5c3fc12f043"}]}
