xref: /aosp_15_r20/external/mesa3d/bin/post_version.py (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*61046927SAndroid Build Coastguard Worker# Copyright © 2019-2020 Intel Corporation
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Worker# Permission is hereby granted, free of charge, to any person obtaining a copy
5*61046927SAndroid Build Coastguard Worker# of this software and associated documentation files (the "Software"), to deal
6*61046927SAndroid Build Coastguard Worker# in the Software without restriction, including without limitation the rights
7*61046927SAndroid Build Coastguard Worker# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8*61046927SAndroid Build Coastguard Worker# copies of the Software, and to permit persons to whom the Software is
9*61046927SAndroid Build Coastguard Worker# furnished to do so, subject to the following conditions:
10*61046927SAndroid Build Coastguard Worker
11*61046927SAndroid Build Coastguard Worker# The above copyright notice and this permission notice shall be included in
12*61046927SAndroid Build Coastguard Worker# all copies or substantial portions of the Software.
13*61046927SAndroid Build Coastguard Worker
14*61046927SAndroid Build Coastguard Worker# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15*61046927SAndroid Build Coastguard Worker# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*61046927SAndroid Build Coastguard Worker# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17*61046927SAndroid Build Coastguard Worker# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18*61046927SAndroid Build Coastguard Worker# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19*61046927SAndroid Build Coastguard Worker# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20*61046927SAndroid Build Coastguard Worker# SOFTWARE.
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard Worker"""Update the main page, release notes, and calendar."""
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard Workerimport argparse
25*61046927SAndroid Build Coastguard Workerimport csv
26*61046927SAndroid Build Coastguard Workerimport pathlib
27*61046927SAndroid Build Coastguard Workerimport subprocess
28*61046927SAndroid Build Coastguard Worker
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard Workerdef update_calendar(version: str) -> None:
31*61046927SAndroid Build Coastguard Worker    p = pathlib.Path('docs') / 'release-calendar.csv'
32*61046927SAndroid Build Coastguard Worker
33*61046927SAndroid Build Coastguard Worker    with p.open('r') as f:
34*61046927SAndroid Build Coastguard Worker        calendar = list(csv.reader(f))
35*61046927SAndroid Build Coastguard Worker
36*61046927SAndroid Build Coastguard Worker    branch = None
37*61046927SAndroid Build Coastguard Worker    for i, line in enumerate(calendar):
38*61046927SAndroid Build Coastguard Worker        if line[2] == version:
39*61046927SAndroid Build Coastguard Worker            if line[0]:
40*61046927SAndroid Build Coastguard Worker                branch = line[0]
41*61046927SAndroid Build Coastguard Worker            break
42*61046927SAndroid Build Coastguard Worker    if branch is not None:
43*61046927SAndroid Build Coastguard Worker        calendar[i + 1][0] = branch
44*61046927SAndroid Build Coastguard Worker    del calendar[i]
45*61046927SAndroid Build Coastguard Worker
46*61046927SAndroid Build Coastguard Worker    with p.open('w') as f:
47*61046927SAndroid Build Coastguard Worker        writer = csv.writer(f)
48*61046927SAndroid Build Coastguard Worker        writer.writerows(calendar)
49*61046927SAndroid Build Coastguard Worker
50*61046927SAndroid Build Coastguard Worker    subprocess.run(['git', 'add', p])
51*61046927SAndroid Build Coastguard Worker
52*61046927SAndroid Build Coastguard Worker
53*61046927SAndroid Build Coastguard Workerdef main() -> None:
54*61046927SAndroid Build Coastguard Worker    parser = argparse.ArgumentParser()
55*61046927SAndroid Build Coastguard Worker    parser.add_argument('version', help="The released version.")
56*61046927SAndroid Build Coastguard Worker    args = parser.parse_args()
57*61046927SAndroid Build Coastguard Worker
58*61046927SAndroid Build Coastguard Worker    update_calendar(args.version)
59*61046927SAndroid Build Coastguard Worker
60*61046927SAndroid Build Coastguard Worker    subprocess.run(['git', 'commit', '-m',
61*61046927SAndroid Build Coastguard Worker                    f'docs: update calendar for {args.version}'])
62*61046927SAndroid Build Coastguard Worker
63*61046927SAndroid Build Coastguard Worker
64*61046927SAndroid Build Coastguard Workerif __name__ == "__main__":
65*61046927SAndroid Build Coastguard Worker    main()
66