)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8e061c1b63b552a8bb4cd8685345c994e8e0691e","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Currently we\u0027re reverse sorting with a simple sort, this sadly puts"},{"line_number":10,"context_line":"newer released (antalope, bobcat) at the end of the list.  Add a"},{"line_number":11,"context_line":"key function that has context around our release names and release ids"},{"line_number":12,"context_line":"to sort \"2024.1/cantaloupe\" at the top."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I4b021d99bd4ecc232838a3639dd8d5ef075e1a24"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9d7ca420_bddccd37","line":12,"range":{"start_line":12,"start_character":16,"end_line":12,"end_character":26},"updated":"2023-07-05 15:06:41.000000000","message":"Is that just a dummy name or did I miss some announcement?","commit_id":"55e7998d0a14916bd073434429f03b7f1a089302"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d95a71549244721dd10ecfa75bc82d9d5cdfa607","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Currently we\u0027re reverse sorting with a simple sort, this sadly puts"},{"line_number":10,"context_line":"newer released (antalope, bobcat) at the end of the list.  Add a"},{"line_number":11,"context_line":"key function that has context around our release names and release ids"},{"line_number":12,"context_line":"to sort \"2024.1/cantaloupe\" at the top."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I4b021d99bd4ecc232838a3639dd8d5ef075e1a24"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"64499e91_519e58a4","line":12,"range":{"start_line":12,"start_character":16,"end_line":12,"end_character":26},"in_reply_to":"9d7ca420_bddccd37","updated":"2023-07-06 02:09:35.000000000","message":"Its just a dummy name","commit_id":"55e7998d0a14916bd073434429f03b7f1a089302"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d95a71549244721dd10ecfa75bc82d9d5cdfa607","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c530e8f3_bcef72b0","updated":"2023-07-06 02:09:35.000000000","message":"I\u0027ll address the review comments ASAP","commit_id":"55e7998d0a14916bd073434429f03b7f1a089302"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"e8ff7cecccec536ee1f32128d7be81e4069a1127","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"253b02c4_6677ffdc","updated":"2023-07-25 11:59:40.000000000","message":"Thanks Tony! (adding procedural PTL-Approved+1 to be able to merge the patch)","commit_id":"4f5ae35e15da937322d31b123bbbc18986f63ea8"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"a9ffb762e5da411a75b6f25044c18d04d7d9ec4e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c44594d8_2155dbd6","updated":"2023-07-13 09:29:07.000000000","message":"Thanks for the unit tests","commit_id":"4f5ae35e15da937322d31b123bbbc18986f63ea8"}],"openstack_releases/series_sorting.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8e061c1b63b552a8bb4cd8685345c994e8e0691e","unresolved":true,"context_lines":[{"line_number":16,"context_line":"         \"havana\", \"icehouse\", \"juno\", \"kilo\", \"liberty\", \"mitaka\", \"newton\","},{"line_number":17,"context_line":"         \"ocata\", \"pike\", \"queens\", \"rocky\", \"stein\", \"train\", \"ussuri\","},{"line_number":18,"context_line":"         \"victoria\", \"wallaby\", \"xena\", \"yoga\", \"zed\"],"},{"line_number":19,"context_line":"        # [\"antalope\", bobcat, etc etc etc],"},{"line_number":20,"context_line":"    ]"},{"line_number":21,"context_line":"    assert series_name.isascii()"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"705fc11a_0eb443fe","line":19,"range":{"start_line":19,"start_character":12,"end_line":19,"end_character":20},"updated":"2023-07-05 15:06:41.000000000","message":"antelope","commit_id":"55e7998d0a14916bd073434429f03b7f1a089302"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d95a71549244721dd10ecfa75bc82d9d5cdfa607","unresolved":true,"context_lines":[{"line_number":16,"context_line":"         \"havana\", \"icehouse\", \"juno\", \"kilo\", \"liberty\", \"mitaka\", \"newton\","},{"line_number":17,"context_line":"         \"ocata\", \"pike\", \"queens\", \"rocky\", \"stein\", \"train\", \"ussuri\","},{"line_number":18,"context_line":"         \"victoria\", \"wallaby\", \"xena\", \"yoga\", \"zed\"],"},{"line_number":19,"context_line":"        # [\"antalope\", bobcat, etc etc etc],"},{"line_number":20,"context_line":"    ]"},{"line_number":21,"context_line":"    assert series_name.isascii()"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"628068d6_c827d6e5","line":19,"range":{"start_line":19,"start_character":12,"end_line":19,"end_character":20},"in_reply_to":"705fc11a_0eb443fe","updated":"2023-07-06 02:09:35.000000000","message":"#oopos","commit_id":"55e7998d0a14916bd073434429f03b7f1a089302"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8e061c1b63b552a8bb4cd8685345c994e8e0691e","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        elif _series_name[0].isdigit():"},{"line_number":34,"context_line":"            (year, release) \u003d map(int, _series_name.split(\".\"))"},{"line_number":35,"context_line":"            # This arithmetic comes from the fact that we started using"},{"line_number":36,"context_line":"            # semver(ish) after we completed a full list of the alphabet."},{"line_number":37,"context_line":"            # This happened with the 2023.1 release."},{"line_number":38,"context_line":"            # Releases \"austin\" -\u003e \"zed\" are 0 -\u003e 25 so 2023.1 is the 26th"},{"line_number":39,"context_line":"            # OpenStack release"}],"source_content_type":"text/x-python","patch_set":2,"id":"894d36c5_f319f38f","line":36,"range":{"start_line":36,"start_character":14,"end_line":36,"end_character":20},"updated":"2023-07-05 15:06:41.000000000","message":"I don\u0027t think this is anywhere near semver, I would rather not use that term in any relation to openstack release naming.","commit_id":"55e7998d0a14916bd073434429f03b7f1a089302"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"d95a71549244721dd10ecfa75bc82d9d5cdfa607","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        elif _series_name[0].isdigit():"},{"line_number":34,"context_line":"            (year, release) \u003d map(int, _series_name.split(\".\"))"},{"line_number":35,"context_line":"            # This arithmetic comes from the fact that we started using"},{"line_number":36,"context_line":"            # semver(ish) after we completed a full list of the alphabet."},{"line_number":37,"context_line":"            # This happened with the 2023.1 release."},{"line_number":38,"context_line":"            # Releases \"austin\" -\u003e \"zed\" are 0 -\u003e 25 so 2023.1 is the 26th"},{"line_number":39,"context_line":"            # OpenStack release"}],"source_content_type":"text/x-python","patch_set":2,"id":"3637de15_ec5245d3","line":36,"range":{"start_line":36,"start_character":14,"end_line":36,"end_character":20},"in_reply_to":"894d36c5_f319f38f","updated":"2023-07-06 02:09:35.000000000","message":"Sorry.  That\u0027s how the TC refers to it.","commit_id":"55e7998d0a14916bd073434429f03b7f1a089302"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"1817ad85c6785c36b85652e2a87b977a7db46436","unresolved":true,"context_lines":[{"line_number":33,"context_line":"            break"},{"line_number":34,"context_line":"    else:"},{"line_number":35,"context_line":"        if _series_name[0].isalpha():"},{"line_number":36,"context_line":"            series_nr +\u003d 1"},{"line_number":37,"context_line":"            series_idx \u003d ord(_series_name[0]) - ord(\"a\")"},{"line_number":38,"context_line":"        elif _series_name[0].isdigit():"},{"line_number":39,"context_line":"            (year, release) \u003d map(int, _series_name.split(\".\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"2605a1e7_4c2602b9","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":26},"updated":"2023-07-12 09:53:18.000000000","message":"That could be worth to add some unit test to ensure that the next rewinds of series name are properly handled too (series_nr \u003d\u003d 2) as we are out of the for part (we are in the else part) if I\u0027m right we won\u0027t repeats the loop again and so the series_nr will be stuck to 1.","commit_id":"f9a8f983c72749becd0b0ebff4c1d503cf89deaa"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"12b3143cdf84e644f405b4613539958af3ffaeaf","unresolved":true,"context_lines":[{"line_number":33,"context_line":"            break"},{"line_number":34,"context_line":"    else:"},{"line_number":35,"context_line":"        if _series_name[0].isalpha():"},{"line_number":36,"context_line":"            series_nr +\u003d 1"},{"line_number":37,"context_line":"            series_idx \u003d ord(_series_name[0]) - ord(\"a\")"},{"line_number":38,"context_line":"        elif _series_name[0].isdigit():"},{"line_number":39,"context_line":"            (year, release) \u003d map(int, _series_name.split(\".\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"e4b8ff77_ab6d3d5e","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":26},"in_reply_to":"2605a1e7_4c2602b9","updated":"2023-07-12 09:56:03.000000000","message":"I mean I\u0027m not sure that antelope and the next A series will be properly ordered as they will all have the same series_nr. (If I\u0027m right).","commit_id":"f9a8f983c72749becd0b0ebff4c1d503cf89deaa"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"9d2a4e5b2018e7264d0b27e93b386608e659a2ae","unresolved":true,"context_lines":[{"line_number":33,"context_line":"            break"},{"line_number":34,"context_line":"    else:"},{"line_number":35,"context_line":"        if _series_name[0].isalpha():"},{"line_number":36,"context_line":"            series_nr +\u003d 1"},{"line_number":37,"context_line":"            series_idx \u003d ord(_series_name[0]) - ord(\"a\")"},{"line_number":38,"context_line":"        elif _series_name[0].isdigit():"},{"line_number":39,"context_line":"            (year, release) \u003d map(int, _series_name.split(\".\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"f27d2be8_65f51f79","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":26},"in_reply_to":"e4b8ff77_ab6d3d5e","updated":"2023-07-12 11:47:09.000000000","message":"I can add some unitests.\n\nNo antelope..\"whatever zed2 is called\" will get a series_nr of 1 as opposed to austing..zed which get 0) and in theoery aardvark..zed3 will get a series_nr of 2.  series_data is a list of lists (or 2d array in \"oldskool\" speak)\n\nIf the name isn\u0027t found and we have something that is \"numeric\" we\u0027ll basically assume 2 releases per year and use release_count // 26 to calulate the serries_nr and release_count % 26 to get the release withing that series.","commit_id":"f9a8f983c72749becd0b0ebff4c1d503cf89deaa"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"a9ffb762e5da411a75b6f25044c18d04d7d9ec4e","unresolved":true,"context_lines":[{"line_number":33,"context_line":"            break"},{"line_number":34,"context_line":"    else:"},{"line_number":35,"context_line":"        if _series_name[0].isalpha():"},{"line_number":36,"context_line":"            series_nr +\u003d 1"},{"line_number":37,"context_line":"            series_idx \u003d ord(_series_name[0]) - ord(\"a\")"},{"line_number":38,"context_line":"        elif _series_name[0].isdigit():"},{"line_number":39,"context_line":"            (year, release) \u003d map(int, _series_name.split(\".\"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"d266d42e_c8c25c1a","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":26},"in_reply_to":"f27d2be8_65f51f79","updated":"2023-07-13 09:29:07.000000000","message":"Thanks for the details, indeed I made some tests previously with the divmod part and I see the series_nr\u003d1 but I wasn\u0027t sure for the if part.\n\nThen that\u0027s LGTM","commit_id":"f9a8f983c72749becd0b0ebff4c1d503cf89deaa"}]}
