Log updates to ``state.toml``
- Round duration seconds to the nearest integer
- Change
last_buildto the start time instead of the end time - Don't include microseconds in
last_build_start
This allows using the useful data captured in state.toml for longitudinal analysis via the log files. It would simplify much of the code in check_times.py (should we include trigger in state.toml?)
A
For reference, state.toml currently looks like:
state.toml
["/zh-tw/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "1e356ff418870ee2ae86282e3e11631658d47c68"
last_build = 2024-09-09T16:10:50.990706Z
last_build_duration = 6960.357093434315
["/zh-cn/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "3047c76066632be61ecff4aa7755e7e72fef5c3a"
last_build = 2024-09-09T18:01:15.771664Z
last_build_duration = 6624.644681057893
["/uk/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "f2f0a94bcbbb23b0ab8e1c3e8638fedb3306c625"
last_build = 2024-09-09T18:06:29.303116Z
last_build_duration = 313.3701548180543
["/tr/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "a0aef1684ec26d77c1cfc253fada24e42ae7170c"
last_build = 2024-09-09T20:32:54.305234Z
last_build_duration = 8784.842558145989
["/pt-br/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "01764e3ca2cc1e5cbbf87a7aa7847ebb78633f6d"
last_build = 2024-09-09T21:26:33.331557Z
last_build_duration = 3218.8947928412817
["/pl/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "8273ad5e786cc36ac4d632d5d79d9e8de066c760"
last_build = 2024-09-09T22:10:24.996605Z
last_build_duration = 2631.5126450438984
["/ko/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "dada54826f66869e7c0f58193da81c99cd6fc3c6"
last_build = 2024-09-09T23:17:31.770090Z
last_build_duration = 4026.639254529029
["/ja/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "eab83c6626184a72e3b0e3aef41520febc910bb5"
last_build = 2024-09-10T01:03:47.618616Z
last_build_duration = 6375.654172708746
["/it/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "aebe05830ccf79e5a1261f5c31ce50872295144e"
last_build = 2024-09-10T01:46:09.422387Z
last_build_duration = 2541.6731074447744
["/id/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "9ba591b54e465b7d75b20f26863f970e463e46e8"
last_build = 2024-09-10T02:36:45.082026Z
last_build_duration = 3035.529972170014
["/fr/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "ceaeb373626e282ba17220752aa2c522fd046891"
last_build = 2024-09-10T03:14:55.880393Z
last_build_duration = 2290.679255878087
["/es/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
translation_sha = "169b71e2847a5c679b5e08b213c2581fa0035bb7"
last_build = 2024-09-10T05:39:11.508415Z
last_build_duration = 8655.442040828988
["/en/3.11/"]
cpython_sha = "8b275e77d235b0e813f996173fc26eaa3484737c"
last_build = 2024-09-10T06:25:28.536415Z
last_build_duration = 2776.8875033790246
["/zh-tw/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "cce68aa10c9052b3ad5f17204848186fc49181e8"
last_build = 2024-09-25T02:27:36.281568Z
last_build_duration = 5444.3923986046575
["/zh-cn/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "16eab6eb18370a52bb4e696cceb1f2ba67d30bae"
last_build = 2024-09-25T00:56:51.295919Z
last_build_duration = 4642.814387856051
["/uk/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "652f9d165346e7490dd3e037ce1068346ef418d7"
last_build = 2024-09-24T23:39:28.056032Z
last_build_duration = 231.79839478898793
["/tr/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "328d52102ad10815bcb4e50166799795f2214177"
last_build = 2024-09-24T23:35:35.320252Z
last_build_duration = 3609.8303895299323
["/pt-br/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "164c684305c7a00d1f90060aca132e79d5082c38"
last_build = 2024-09-24T22:35:24.425301Z
last_build_duration = 1649.5395926036872
["/pl/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "475c23f18ecec7eaf84051d69aabb5c180491cdd"
last_build = 2024-09-24T22:07:54.469629Z
last_build_duration = 1262.045798118692
["/ko/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "dada54826f66869e7c0f58193da81c99cd6fc3c6"
last_build = 2024-09-24T21:46:52.018446Z
last_build_duration = 1800.9441714971326
["/ja/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "ec9dba3e62492df6bab6591ff4b304871bf84bb4"
last_build = 2024-09-24T21:16:49.049044Z
last_build_duration = 2711.2916467129253
["/it/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "20d7358c1083ab055574bd2ee36e36a7fc30cd13"
last_build = 2024-09-24T20:31:36.930966Z
last_build_duration = 1346.4435801091604
["/id/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "9ba591b54e465b7d75b20f26863f970e463e46e8"
last_build = 2024-09-24T20:09:09.348637Z
last_build_duration = 1865.5057306936942
["/fr/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "2d42a3c0d181f19ab1bd62400bfafc9a8304a4b1"
last_build = 2024-09-24T19:38:03.352083Z
last_build_duration = 1389.7904813969508
["/es/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
translation_sha = "0d82516850e7d3b1e89297730ba4538138a481ed"
last_build = 2024-09-24T19:14:52.264797Z
last_build_duration = 4193.52602857491
["/en/3.12/"]
cpython_sha = "c60d97805f7569399caff266ba53d53550564e26"
last_build = 2024-09-24T18:04:58.321864Z
last_build_duration = 1322.8606954780407
["/zh-tw/3.13/"]
cpython_sha = "e9b00cc78853373623031c657193cbe557488c0a"
translation_sha = "b1e286609fe34166fa03bc4a6b137a9fa0ecdae0"
last_build = 2024-09-24T17:42:53.872175Z
last_build_duration = 6231.433520236984
["/zh-cn/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "b1d3d09112682b996e702b89653828cb26193910"
last_build = 2024-09-25T19:55:30.547538Z
last_build_duration = 5272.454150873236
["/uk/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "3adbfdea538ae89ac5b3158ecd2dec7fe096b8e7"
last_build = 2024-09-25T18:27:37.598199Z
last_build_duration = 320.17640962312
["/tr/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "328d52102ad10815bcb4e50166799795f2214177"
last_build = 2024-09-25T18:22:16.417042Z
last_build_duration = 3736.728239804972
["/pt-br/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "4a940d563e9fbd07bc2ee4de839ba4c4981c8689"
last_build = 2024-09-25T17:19:59.230029Z
last_build_duration = 1829.2895670789294
["/pl/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "f5c468ffa4e4d0499199fe378e745da36310492a"
last_build = 2024-09-25T16:49:28.994250Z
last_build_duration = 1417.077182894107
["/ko/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "dada54826f66869e7c0f58193da81c99cd6fc3c6"
last_build = 2024-09-25T16:25:51.458802Z
last_build_duration = 2068.4953085901216
["/ja/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "becf56b7e27be7746dfdb267f83833422a1f83df"
last_build = 2024-09-25T15:51:21.377798Z
last_build_duration = 3333.4775406150147
["/it/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "0134548060d1f67a24ef6f955ab6acf397dd5186"
last_build = 2024-09-25T14:55:47.035887Z
last_build_duration = 1321.6393255260773
["/id/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "9ba591b54e465b7d75b20f26863f970e463e46e8"
last_build = 2024-09-25T14:33:44.565420Z
last_build_duration = 1866.0154611179605
["/fr/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "2d42a3c0d181f19ab1bd62400bfafc9a8304a4b1"
last_build = 2024-09-25T14:02:37.566880Z
last_build_duration = 1539.5074372012168
["/es/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
translation_sha = "0d82516850e7d3b1e89297730ba4538138a481ed"
last_build = 2024-09-25T13:36:57.167550Z
last_build_duration = 4197.554854284041
["/en/3.13/"]
cpython_sha = "2f25d855dffe03a5f15ad8709d495f8dc9daae27"
last_build = 2024-09-25T12:26:59.235128Z
last_build_duration = 1196.2173618432134
["/zh-tw/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "33d6fb4102d6565764a3c364a07de51d112b44d2"
last_build = 2024-09-09T02:24:46.609016Z
last_build_duration = 3009.7982998169027
["/zh-cn/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "896e1e28c507f91e354be7c77f18a434f6f2a0b9"
last_build = 2024-09-09T03:12:24.838614Z
last_build_duration = 2858.0564672183245
["/uk/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "5b14b4202b6aebe1b5cd26ad590681c97efdeaeb"
last_build = 2024-09-09T03:15:42.241249Z
last_build_duration = 197.27063008537516
["/tr/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "7c7c3b0349a1238a8c72da8f0f5de7cf68527833"
last_build = 2024-09-09T05:16:46.527552Z
last_build_duration = 7264.0994534008205
["/pt-br/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "9ad5c5c9c5e6e488393e1ace7679f947bfc92c58"
last_build = 2024-09-09T05:58:02.250611Z
last_build_duration = 2475.552831632085
["/pl/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "d01743295e1d9f189faa1a7d6d1931ab92790c99"
last_build = 2024-09-09T06:38:22.713746Z
last_build_duration = 2420.3212885931134
["/ko/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "dada54826f66869e7c0f58193da81c99cd6fc3c6"
last_build = 2024-09-09T07:34:41.334580Z
last_build_duration = 3378.47944863094
["/ja/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "c8651a045d56e40f063e2dfcf82af54e3a8e7db0"
last_build = 2024-09-09T09:03:58.377778Z
last_build_duration = 5356.867076186929
["/it/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "aebe05830ccf79e5a1261f5c31ce50872295144e"
last_build = 2024-09-09T09:42:38.550988Z
last_build_duration = 2320.0451954999007
["/id/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "9ba591b54e465b7d75b20f26863f970e463e46e8"
last_build = 2024-09-09T10:27:52.934928Z
last_build_duration = 2714.2563183899038
["/fr/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "e26610db81f86bfb25c25d6f0d1c4ca4148cb747"
last_build = 2024-09-09T10:58:13.171309Z
last_build_duration = 1820.100343755912
["/es/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
translation_sha = "e37b282476c5f9261c0ca2ac7e8db6e6f6f9bcd7"
last_build = 2024-09-09T13:26:48.876717Z
last_build_duration = 8915.58113371674
["/en/3.10/"]
cpython_sha = "0c5fc27217525c4e40b4064e6979f467540c2fc8"
last_build = 2024-09-09T14:08:45.810984Z
last_build_duration = 2516.781220081728
["/zh-tw/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "2384d09aa5a32d143226c87ed6575f32cee55a2e"
last_build = 2024-09-08T11:18:56.710731Z
last_build_duration = 4446.284163798206
["/zh-cn/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "8500197239a1c46fb33ae5e1f20b4b8210e907b9"
last_build = 2024-09-08T12:31:14.880556Z
last_build_duration = 4338.01667294791
["/uk/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "b6a0b0447c3f0eb8dc7d4905f4f7bcd2ca7111e9"
last_build = 2024-09-08T12:37:51.617645Z
last_build_duration = 396.60722126299515
["/tr/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "7c7c3b0349a1238a8c72da8f0f5de7cf68527833"
last_build = 2024-09-08T14:54:22.284266Z
last_build_duration = 8190.496497796848
["/pt-br/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "ec850bd2b133449116576bc20d0e6b1c43815f8d"
last_build = 2024-09-08T15:54:37.638654Z
last_build_duration = 3615.2060854709707
["/pl/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "d8393d3587498748301c376ce54b00198b3aa7e9"
last_build = 2024-09-08T16:42:15.377434Z
last_build_duration = 2857.593058194965
["/ko/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "dada54826f66869e7c0f58193da81c99cd6fc3c6"
last_build = 2024-09-08T17:58:48.210985Z
last_build_duration = 4592.712461868767
["/ja/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "f0fca66bf65090fc9b66b54e7ca50e9a02dec1eb"
last_build = 2024-09-08T19:51:31.788246Z
last_build_duration = 6763.447918494232
["/it/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "aebe05830ccf79e5a1261f5c31ce50872295144e"
last_build = 2024-09-08T20:38:40.321628Z
last_build_duration = 2828.4120505303144
["/id/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "9ba591b54e465b7d75b20f26863f970e463e46e8"
last_build = 2024-09-08T21:31:29.681753Z
last_build_duration = 3169.2295975349844
["/fr/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "b0067c82ff08882a4ec1d22c9f5c894f0694e183"
last_build = 2024-09-08T22:15:39.849472Z
last_build_duration = 2650.0207293438725
["/es/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
translation_sha = "11516f9f0049a867c0e06df5919918edc326301a"
last_build = 2024-09-09T00:44:34.124028Z
last_build_duration = 8934.150767539162
["/en/3.9/"]
cpython_sha = "8b9a8e0e082f849f6db03b2ed9074a86813b3b77"
last_build = 2024-09-09T01:28:50.634521Z
last_build_duration = 2656.366367378272
["/zh-tw/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "c0fe64998f5662069e7dc6f85b0ba2e5d712069d"
last_build = 2024-09-07T21:15:53.850781Z
last_build_duration = 4717.571326821111
["/zh-cn/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "c59125a5532d7b24f741869b1923857fffdc3fbf"
last_build = 2024-09-07T22:30:54.797529Z
last_build_duration = 4500.823993973434
["/uk/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "9b1fa47ff1194c6595b15ae81980a60d417759a3"
last_build = 2024-09-07T22:37:03.003576Z
last_build_duration = 368.0396574791521
["/tr/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "7c7c3b0349a1238a8c72da8f0f5de7cf68527833"
last_build = 2024-09-08T00:38:01.281143Z
last_build_duration = 7258.110525485128
["/pt-br/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "bead52a895a45cf94d9f4adbf041ae145d43f571"
last_build = 2024-09-08T01:31:14.263153Z
last_build_duration = 3192.843197443988
["/pl/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "b97681109f57ff0c715982b9da50879fb5e7ee09"
last_build = 2024-09-08T02:14:34.524962Z
last_build_duration = 2600.069309582934
["/ko/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "5aad95de73e18685f2d86b19fcacb5bdcee067c2"
last_build = 2024-09-08T03:23:36.121212Z
last_build_duration = 4141.455734156072
["/ja/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "d3c64989832c2bf2712c6faef07f138c91235f83"
last_build = 2024-09-08T05:03:06.026660Z
last_build_duration = 5969.783958768006
["/it/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "aebe05830ccf79e5a1261f5c31ce50872295144e"
last_build = 2024-09-08T05:44:22.937054Z
last_build_duration = 2476.7853813958354
["/id/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "9ba591b54e465b7d75b20f26863f970e463e46e8"
last_build = 2024-09-08T06:32:05.596029Z
last_build_duration = 2862.53425000282
["/fr/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "eaedc113c4d7fdf7aef907e74766e8f4678d739e"
last_build = 2024-09-08T07:12:39.199618Z
last_build_duration = 2433.4836137029342
["/es/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
translation_sha = "23f33c6fd44cfd17e7faa7c5e77e0a988ae91fb1"
last_build = 2024-09-08T09:20:56.882485Z
last_build_duration = 7697.526824071072
["/en/3.8/"]
cpython_sha = "63e54e6d4227e7cbdbb2a0ea69d11a904951f3a9"
last_build = 2024-09-08T09:59:30.410953Z
last_build_duration = 2313.3877475969493
["/zh-tw/3.14/"]
cpython_sha = "8447c933da308939b06e33544ca9abc9fc46aa8b"
translation_sha = "b1e286609fe34166fa03bc4a6b137a9fa0ecdae0"
last_build = 2024-09-25T12:07:02.593682Z
last_build_duration = 5803.476164794061
["/zh-cn/3.14/"]
cpython_sha = "0d38409f422b7be158a45e59766d8f4605dfa5df"
translation_sha = "b1d3d09112682b996e702b89653828cb26193910"
last_build = 2024-09-25T10:30:16.268358Z
last_build_duration = 5003.505178332329
["/uk/3.14/"]
cpython_sha = "0d38409f422b7be158a45e59766d8f4605dfa5df"
translation_sha = "3adbfdea538ae89ac5b3158ecd2dec7fe096b8e7"
last_build = 2024-09-25T09:06:52.299100Z
last_build_duration = 247.0554108521901
["/tr/3.14/"]
cpython_sha = "0d38409f422b7be158a45e59766d8f4605dfa5df"
translation_sha = "328d52102ad10815bcb4e50166799795f2214177"
last_build = 2024-09-25T09:02:44.724740Z
last_build_duration = 3298.1320204138756
["/pt-br/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "4a940d563e9fbd07bc2ee4de839ba4c4981c8689"
last_build = 2024-09-25T08:07:45.534583Z
last_build_duration = 1712.29795442475
["/pl/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "f5c468ffa4e4d0499199fe378e745da36310492a"
last_build = 2024-09-25T07:39:12.812390Z
last_build_duration = 1333.9138273056597
["/ko/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "dada54826f66869e7c0f58193da81c99cd6fc3c6"
last_build = 2024-09-25T07:16:58.438762Z
last_build_duration = 2075.9668169007637
["/ja/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "becf56b7e27be7746dfdb267f83833422a1f83df"
last_build = 2024-09-25T06:42:21.493905Z
last_build_duration = 3282.4418264366686
["/it/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "0134548060d1f67a24ef6f955ab6acf397dd5186"
last_build = 2024-09-25T05:47:38.604145Z
last_build_duration = 1315.2696117740124
["/id/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "9ba591b54e465b7d75b20f26863f970e463e46e8"
last_build = 2024-09-25T05:25:42.841676Z
last_build_duration = 1822.690469676163
["/fr/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "2d42a3c0d181f19ab1bd62400bfafc9a8304a4b1"
last_build = 2024-09-25T04:55:19.614065Z
last_build_duration = 1372.82406257838
["/es/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
translation_sha = "0d82516850e7d3b1e89297730ba4538138a481ed"
last_build = 2024-09-25T04:32:26.265804Z
last_build_duration = 3934.178229050711
["/en/3.14/"]
cpython_sha = "54dd77fb8c880d7655fffab934978e277b4275fe"
last_build = 2024-09-25T03:26:51.706043Z
last_build_duration = 1188.4646753268316
This allows using the useful data captured in
state.tomlfor longitudinal analysis via the log files. It would simplify much of the code incheck_times.py
should we include
triggerinstate.toml?
No strong opinion, but yeah, I imagine this could be useful too.
What if we returned a tuple(bool, reason) in should_rebuild? Returning different types in different scenarios doesn't feel nice to me. Not a strong opinion though :)
We only use should_rebuild for a truthy or falsy output, it seemed useful to return the reason string as a truthy value to avoid changing more!
This isn't working:
2024-09-27 12:38:00,736 INFO es/3.14: Saved new rebuild state for /es/3.14/: {}
...
2024-09-27 13:02:09,036 INFO fr/3.14: Saved new rebuild state for /fr/3.14/: {}
state.toml is properly updated, though:
["/fr/3.14/"]
last_build_start = 2024-09-27T12:38:01Z
last_build_duration = 1448.0
triggered_by = "Doc/ has changed"
cpython_sha = "b79a21ea429844e84509430e636d808ea9cff244"
translation_sha = "2d42a3c0d181f19ab1bd62400bfafc9a8304a4b1"
["/es/3.14/"]
last_build_start = 2024-09-27T11:28:43Z
last_build_duration = 4157.0
triggered_by = "Doc/ has changed"
cpython_sha = "b79a21ea429844e84509430e636d808ea9cff244"
translation_sha = "0d82516850e7d3b1e89297730ba4538138a481ed"
["/en/3.14/"]
last_build_start = 2024-09-27T11:07:04Z
last_build_duration = 1299.0
triggered_by = "Doc/ has changed"
cpython_sha = "b79a21ea429844e84509430e636d808ea9cff244"
The code also works locally:
>>> from pathlib import Path
>>> import tomlkit
>>> states = tomlkit.parse(Path("state.toml").read_text(encoding="UTF-8"))
>>> state = states['/en/3.14/'].unwrap()
>>> state
{'last_build_start': datetime.datetime(2024, 9, 27, 11, 7, 4, tzinfo=datetime.timezone(datetime.timedelta(0), 'UTC')),
'last_build_duration': 1299.0,
'triggered_by': 'Doc/ has changed',
'cpython_sha': 'b79a21ea429844e84509430e636d808ea9cff244'}
>>> table = tomlkit.inline_table()
>>> table |= state
>>> logging.info("Saved new rebuild state for %s: %s", key, table.as_string())
Saved new rebuild state for /en/3.14/: {last_build_start = 2024-09-27T11:07:04Z, last_build_duration = 1299.0, triggered_by = "Doc/ has changed", cpython_sha = "b79a21ea429844e84509430e636d808ea9cff244"}
Ah, this was new in tomlkit 0.12.4. The server has 0.12.1:
adam@docs:/srv/docsbuild$ ./venv/bin/python -m pip show tomlkit
Name: tomlkit
Version: 0.12.1
Summary: Style preserving TOML library
Home-page: https://github.com/sdispater/tomlkit
Author: Sébastien Eustace
Author-email: [email protected]
License: MIT
Location: /srv/docsbuild/venv/lib/python3.10/site-packages
Requires:
Required-by: