Compare commits

..

2262 Commits

Author SHA1 Message Date
72df1db744 2025-11-04 nightly release (a0a8eca01a88b01f517559fd3cf565a58c134805) 2025-11-04 07:35:52 +00:00
95ab09cb54 2025-11-03 nightly release (fee1ac927d66fce67f862311292dcc325b8def44) 2025-11-03 07:35:48 +00:00
5338df3f42 2025-11-02 nightly release (a663eb9c80e92190832b3dd616f138f938f51525) 2025-11-02 07:34:12 +00:00
f291f529fd 2025-11-01 nightly release (60333de85dec845d6a0e651764c16a730a27828d) 2025-11-01 07:34:06 +00:00
ba6c0966be 2025-10-31 nightly release (47f00243106918eec3ef9119272977fdf2864ad8) 2025-10-31 07:34:54 +00:00
2de961f36c 2025-10-30 nightly release (0918bf321c2cfaebb91c5f9e5f0ebe462962328e) 2025-10-30 07:34:55 +00:00
7b622c7d84 2025-10-29 nightly release (bea89d60603ca33f1903e57db5c734a67535c26d) 2025-10-29 07:35:54 +00:00
14475f1f3a 2025-10-28 nightly release (2ce894bb1d3e9698306b87091c900a72acac75ea) 2025-10-28 07:35:39 +00:00
af55f68d25 2025-10-27 nightly release (000f49551bfda0683d395e1fe67f53cfb785868f) 2025-10-27 07:36:03 +00:00
fc9dd3487d 2025-10-26 nightly release (cdb60e44eb528bf02c6bb2d7e384298283e755ca) 2025-10-26 07:34:09 +00:00
af360b15da 2025-10-25 nightly release (b31bad1b8f1331bf43d47f46602cf6141db56844) 2025-10-25 07:34:15 +00:00
e5cabbf5f8 2025-10-24 nightly release (c12293dcbea3d9e9c5fade8e4c838f8a57c300e7) 2025-10-24 07:34:52 +00:00
958cc1742e 2025-10-23 nightly release (fb277a59167031883cc42249ed8fe869f39bd5ed) 2025-10-23 07:35:16 +00:00
72d577ba18 2025-10-22 nightly release (5211f4c1088f564cb15146e41bc592b7cf1824af) 2025-10-22 07:35:41 +00:00
94549de0a5 2025-10-21 nightly release (0e083942ccd98c5a2d9386f0b2c4bbc901be40ef) 2025-10-21 07:35:38 +00:00
427bf59f34 2025-10-20 nightly release (61d9a5180e44e43c2fe0394916688d756ea99da2) 2025-10-20 07:35:28 +00:00
f2b29280ef 2025-10-19 nightly release (c4f6619330bdac5bf4addb9070ecb42994202e1f) 2025-10-19 07:34:02 +00:00
92ae61a1ed 2025-10-18 nightly release (f510d0dbc0108a90c4b0275eb761bf189ff7a7d2) 2025-10-18 18:52:37 +00:00
411066f7cf 2025-10-18 nightly release (fe80f03726a7a50439be063327b67c7fba6279b2) 2025-10-18 07:34:05 +00:00
79a37055e7 2025-10-17 nightly release (556fc09a9f67f24ca5591ec049c5d0c347c5f62a) 2025-10-17 07:34:42 +00:00
0dfcb1a118 2025-10-16 nightly release (003dd130730993eedc302f769b7b653016ab6450) 2025-10-16 07:35:10 +00:00
0fec8d0539 2025-10-15 nightly release (e6f766c7d750d40603eee3f66c5915bac606b3ea) 2025-10-15 07:35:42 +00:00
89cf1adaf0 2025-10-14 nightly release (3a110c9bb209ccd690986d1593b44d261c1174a5) 2025-10-14 07:35:19 +00:00
40c3219a9e 2025-10-13 nightly release (3a110c9bb209ccd690986d1593b44d261c1174a5) 2025-10-13 07:35:26 +00:00
8d7cc00898 2025-10-12 nightly release (4f8a986b8feb4a171b8a68a2a3664275ec54a75f) 2025-10-12 07:33:57 +00:00
41aa60b096 2025-10-11 nightly release (12d7cc5cd3da00094c5801aff4c77550e2a59528) 2025-10-11 07:34:06 +00:00
a96cef0b4d 2025-10-10 nightly release (a57a14868dcfd9dabf9bd19b6b11f31967c80c87) 2025-10-10 07:34:21 +00:00
7d06d03434 2025-10-09 nightly release (7a1ead755f2e2abe8be49a7a0fb88b6b13973147) 2025-10-09 07:34:26 +00:00
f1efb72466 2025-10-08 nightly release (608792153f42254d2d2b5a87d524807a0c2724f1) 2025-10-08 07:34:27 +00:00
8fab07c5ca 2025-10-07 nightly release (bcd96cc6ff798281e66aabef6ce72542fdc97c7a) 2025-10-07 07:34:18 +00:00
39cdb9bef4 2025-10-06 nightly release (9fff8155c362da777e7ce31b85fb2dc7cfced2d5) 2025-10-06 07:34:40 +00:00
b8d25c1f42 2025-10-05 nightly release (cf0a00d4f38775e5a82a166e367f40383c606963) 2025-10-05 07:34:00 +00:00
cf9d09490c 2025-10-04 nightly release (9d1ab4f4bb508a72c7f549f0b5219c4601944ba1) 2025-10-04 07:33:56 +00:00
d1da98fe75 2025-10-03 nightly release (d1cbb74fb16406488a174832e1b58b7c242f418d) 2025-10-03 07:34:23 +00:00
d3d23546a3 2025-10-02 nightly release (144378615a5a2b347e39c6376cba7d75f7a82926) 2025-10-02 07:34:04 +00:00
8d091f3460 2025-10-01 nightly release (e30f01b5b569c0a6043774ee096d9d0bca231c93) 2025-10-01 07:35:14 +00:00
23acabb207 2025-09-30 nightly release (0b0ed6fd335dddccaf1b7212a785808c38cf98a1) 2025-09-30 07:35:13 +00:00
e86844ce4c 2025-09-29 nightly release (352197c50886c5a3b5b5e7ab86eba52548354d5c) 2025-09-29 07:35:06 +00:00
a5b10a3c27 2025-09-28 nightly release (3059b080128a0d13760f5e3ed9bf226c8c1a3ba5) 2025-09-28 07:33:49 +00:00
48f35f8940 2025-09-27 nightly release (9dac6437da12ef636139b7ae515c10617ffed528) 2025-09-27 07:33:53 +00:00
f64285495c 2025-09-26 nightly release (67cc0e0ac9fa009cbe6bd4d7852b39a579e92282) 2025-09-26 07:34:55 +00:00
337ce5ab49 2025-09-25 nightly release (ad2f7315ca66b42497047bb7951f696b50f1e81b) 2025-09-25 07:34:40 +00:00
5e8f2b0e21 2025-09-24 nightly release (d746b987d8239595438b9dbd0f96ec6a4fed4653) 2025-09-24 07:34:48 +00:00
6ba37938af 2025-09-23 nightly release (8f30a8dc47d61b0110f5797cad97040b1a58e6a0) 2025-09-23 07:35:01 +00:00
3ac0051187 2025-09-22 nightly release (0b59492853b7347ead6b71f52c76e7ac2836ea27) 2025-09-22 07:35:17 +00:00
e77b99230a 2025-09-21 nightly release (97eb7a281dab3d0454d72da1c72d4993a0b59a43) 2025-09-21 07:33:53 +00:00
d60c6e4a06 2025-09-20 nightly release (a31acf32bd18e115df910002aef42baf7a9b4a33) 2025-09-20 07:34:03 +00:00
2f25275aa3 2025-09-19 nightly release (04842ac2b013daf3029145d785b3805dfd3129a3) 2025-09-19 07:34:05 +00:00
a701395da4 2025-09-18 nightly release (13304401dfaab91a5f6311a09e77ed71914d6639) 2025-09-18 07:34:29 +00:00
5281945d57 2025-09-17 nightly release (65845d72917fc27cd89a88b067e7c8f44bc0c987) 2025-09-17 07:34:37 +00:00
f08d26d177 2025-09-16 nightly release (e900a274e5c7fd7f0c76a991ad182c635f807c83) 2025-09-16 07:34:24 +00:00
53a2908a10 2025-09-15 nightly release (76e5df3866f11712a3e6306bb0e5055c223c78f3) 2025-09-15 07:34:47 +00:00
8b8cd78b2b 2025-09-14 nightly release (f01bf0f64b2fb9a761d7a147f17a862561bc5baf) 2025-09-14 07:33:56 +00:00
27a4e36cf2 2025-09-13 nightly release (595e13feb71c10621271c30cb402906b6cc83e13) 2025-09-13 07:33:51 +00:00
616c50a126 2025-09-12 nightly release (ccb450b190a9c24fc53ca8f120bd1cdf36c312c2) 2025-09-12 07:33:59 +00:00
79440d8bcc 2025-09-11 nightly release (f654cff5663c1972172f150f529a587fc3c0d2c1) 2025-09-11 07:34:23 +00:00
75e7f49f9c 2025-09-10 nightly release (484c4093a87a3e6767e55ed553f95db8fc137442) 2025-09-10 07:34:16 +00:00
1ff17af8ec 2025-09-09 nightly release (a965f0979307d2d3894f00420e6d901c50f89d7a) 2025-09-09 07:34:30 +00:00
6d74d91e42 2025-09-08 nightly release (5babb4d5c04b1ff7ed5f96f7aea1898cd4faef5a) 2025-09-08 07:34:34 +00:00
d110794e53 2025-09-07 nightly release (4d4abec80f03cd8fdefe1d9cb3a60d3690cd777e) 2025-09-07 07:33:56 +00:00
b35c908b70 2025-09-06 nightly release (4d4abec80f03cd8fdefe1d9cb3a60d3690cd777e) 2025-09-06 07:34:07 +00:00
e018da741d 2025-09-05 nightly release (b67c41039835bd9b20b83cd6233e86baaa5f5dde) 2025-09-05 07:34:20 +00:00
6f6ce1a7ab 2025-09-04 nightly release (d636c181f9140a7b59be10b36eae23039fc2bb72) 2025-09-04 07:33:59 +00:00
aa0545ff8e 2025-09-03 nightly release (6737e2c996990024187ba620d2764f3b6f6add2c) 2025-09-03 07:34:25 +00:00
a0e3ca21ab 2025-09-02 nightly release (6737e2c996990024187ba620d2764f3b6f6add2c) 2025-09-02 07:35:23 +00:00
4ee895974d 2025-09-01 nightly release (9a665ca3c472384e9d722bddba79e5a7680f1abd) 2025-09-01 07:36:00 +00:00
2afb96c3e1 2025-08-31 nightly release (ad7b748686610e317e5c0cbbd523b7a6e3b8b51f) 2025-08-31 07:33:52 +00:00
5661512350 2025-08-30 nightly release (f6368e934e6bef84211f7db82c22e3623038e43f) 2025-08-30 07:33:55 +00:00
8296ac99be 2025-08-29 nightly release (d153af713e8bf825534b55d29fd7cfef6a3a5071) 2025-08-29 07:34:44 +00:00
e74f214c33 2025-08-28 nightly release (e9d34b2438d65d6d16109e2416f3698de20f85c2) 2025-08-28 07:34:51 +00:00
c6897fdd85 2025-08-27 nightly release (cd87f3029582cedb3b88747a3bd7d200b05c1138) 2025-08-27 07:34:42 +00:00
95dc3256f1 2025-08-26 nightly release (e34b6a01039df5d8940acdccd8d8989f3cd827aa) 2025-08-26 07:35:53 +00:00
dcc2abce2d 2025-08-25 nightly release (726dce3c944cbda16e54d3b15cdb4b6ced05af72) 2025-08-25 07:35:46 +00:00
7ad0c2909e 2025-08-24 nightly release (3e5b021f217a42ae55dc690083f67a28126808ed) 2025-08-24 07:34:16 +00:00
f853a0f43e 2025-08-23 nightly release (c2390087c34c964ef648addf43efb8c6a34e30c2) 2025-08-23 07:34:17 +00:00
d9a80aff4c 2025-08-22 nightly release (cc2b65a91ae7773d4ecf9a600dda48fc3e69aa8f) 2025-08-22 07:34:51 +00:00
22b0a727eb 2025-08-21 nightly release (39862acb2e320783245d2a03acfd1b14cae28038) 2025-08-21 07:36:29 +00:00
7956a1d1d0 2025-08-20 nightly release (2b62ef74208792c7c4bf923f872e54b5f384efc8) 2025-08-20 07:35:54 +00:00
0ce7e98ca9 2025-08-19 nightly release (58f9a3dd6391397e439c5f5075837e8f983735aa) 2025-08-19 07:35:31 +00:00
1fb85cc366 2025-08-18 nightly release (3ced4f1e6cb37d3470dcc540892dee08a6019cf8) 2025-08-18 07:37:41 +00:00
194cdb4509 2025-08-17 nightly release (8f434545c2e48c858d8b0d06db8f9642d6a87ad0) 2025-08-17 07:34:55 +00:00
32d1befbfe 2025-08-16 nightly release (b74c7cd335180a8ebcd5284f2909a73c9a87aa33) 2025-08-16 07:34:40 +00:00
0b5972dede 2025-08-15 nightly release (5b9ad951f8195865e13a44fe09a78bf95973f2fa) 2025-08-15 07:36:16 +00:00
a82d678c97 2025-08-14 nightly release (3faee0a6318afcbbbb48687009a459214910d820) 2025-08-14 07:36:46 +00:00
b81cea13b4 2025-08-13 nightly release (a354fa91e26b376d96385a2206c5ff5b42aa4600) 2025-08-13 07:37:16 +00:00
916ef1939b 2025-08-12 nightly release (bfc873d02ec413344717493e4175a902921359fd) 2025-08-12 07:36:51 +00:00
113daf02cb 2025-08-11 nightly release (e7152ff8a6a929a0db7f3f4a72a5b6d471769cd3) 2025-08-11 07:39:07 +00:00
dd1b1d0d2b 2025-08-10 nightly release (01f66d08d93365015f4af005a252f439c4d4013a) 2025-08-10 07:35:25 +00:00
86d99efdc4 2025-08-09 nightly release (5ed4f9177907fe403ec4c4499d0d0e9be6b68fcf) 2025-08-09 07:35:19 +00:00
d9796cf6b9 2025-08-08 nightly release (3fcd79e023da7156ac584992ebab29205d3b7881) 2025-08-08 07:39:27 +00:00
f9acb53318 2025-08-07 nightly release (2507ae63f293354170695fd20a5c5ce5f64e323d) 2025-08-07 07:39:26 +00:00
95ba6271fc 2025-08-06 nightly release (74a754aae98aabc2aca67e5edb41cc684fae9a82) 2025-08-06 07:39:45 +00:00
77bc90913a 2025-08-05 nightly release (efc4b460b3789d97b87d775f86c5f4ee8dfb5629) 2025-08-05 07:39:49 +00:00
af79a3aadc 2025-08-04 nightly release (978e3a91421e82fc95b34e75efd6324e3e89e755) 2025-08-04 07:41:32 +00:00
6f9445d860 2025-08-03 nightly release (38895c0ac26e4a18a6be0f88c3ec0c96f8077852) 2025-08-03 07:36:11 +00:00
8d0646ae44 2025-08-02 nightly release (e57a92734da09b96add98bc06693b62122c5df72) 2025-08-02 07:35:54 +00:00
b4f42c92a0 2025-08-01 nightly release (1ebcba4e1b1a5f20324cc94c2b92f260a0c1c0ab) 2025-08-01 07:39:37 +00:00
bb53f04097 2025-07-31 nightly release (3e5e0946152ca3500c0491927c26724f7f8ac244) 2025-07-31 07:38:40 +00:00
6e2a16b899 2025-07-30 nightly release (badd0618e4d9488e48f500664084356041cd6d44) 2025-07-30 07:39:50 +00:00
2ae9c24a31 2025-07-29 nightly release (08ea8fccaf28155466dbc1da203219941f4b08c0) 2025-07-29 07:38:58 +00:00
fa58508f47 2025-07-28 nightly release (f63673626d4c6a574a49f9e0d1131764d46b2bb8) 2025-07-28 07:39:22 +00:00
0669d84e19 2025-07-27 nightly release (d72ebefe3fa7d3ee0e9c9b399f5c07611e790664) 2025-07-27 07:35:54 +00:00
0f22b01329 2025-07-26 nightly release (c6b479bc09090336dcd1c97f5e368e76490065ea) 2025-07-26 07:36:02 +00:00
fa05753590 2025-07-25 nightly release (6fc0ad22f0a07b6f38d138861c56a765d5a9bb02) 2025-07-25 07:38:10 +00:00
e4d06f14ac 2025-07-24 nightly release (febf3c475e6fe369b41ef009f3598659a6df0911) 2025-07-24 07:38:13 +00:00
add37ba086 2025-07-23 nightly release (2dccff7dcf56b0d168ebfd7ca08bdeca37273c56) 2025-07-23 07:38:56 +00:00
5ec79a9787 2025-07-22 nightly release (350d6af52c76481d0f386208b6b86be93b7ff22d) 2025-07-22 07:38:13 +00:00
d59923f01d 2025-07-21 nightly release (70b4a8880b1c3fb5e92c5fcd75bda6b6f299abac) 2025-07-21 07:40:42 +00:00
1c2e48b67a 2025-07-20 nightly release (4869f7117009fb99a57482fce56b00c6163fbce6) 2025-07-20 07:35:32 +00:00
d78a49992c 2025-07-19 nightly release (90b082e207bff79dd09d89cfef9be49de5c2ad83) 2025-07-19 07:35:34 +00:00
744d29186e 2025-07-18 nightly release (89d842fec5229fff0df5342b2db121368d51e717) 2025-07-18 07:37:56 +00:00
9e5df57ebb 2025-07-17 nightly release (f6d138807f138868de0397936e2bee482c1fb987) 2025-07-17 07:37:40 +00:00
ab43fe4bdf 2025-07-16 nightly release (03852ddc22350eb8b6ed6b61777639ce6080f3dc) 2025-07-16 07:37:49 +00:00
d38be5ebdb 2025-07-15 nightly release (9345279c6ebdbad95b7b53bc2cb6f63a4e57b2cc) 2025-07-15 07:38:13 +00:00
90f1e7bed1 2025-07-14 nightly release (1f57e0e04da9d334e238cec346f7ae3667bed9d1) 2025-07-14 07:38:24 +00:00
8f2a1f3416 2025-07-13 nightly release (5aee022d8b2bc9d31ddaf877315ffb8ad9d62985) 2025-07-13 07:36:19 +00:00
987acea60a 2025-07-12 nightly release (4ff9b7fa3116b1c429e577830ac6e816734ad029) 2025-07-12 07:35:43 +00:00
87b2ac5d19 2025-07-11 nightly release (ae86e8f6c829a3cfa9204949156fce2d048c919b) 2025-07-11 07:37:34 +00:00
1b995e9218 2025-07-10 nightly release (3232b57cd87fbd15c990fbf87d181716a1993a55) 2025-07-10 07:36:45 +00:00
1c10a682ee 2025-07-09 nightly release (1b3d69b59f92383633731aada8383ab88da3ed60) 2025-07-09 07:36:52 +00:00
c5b9696986 2025-07-08 nightly release (12f9942b107acc9d7acf9591818c826ef972a0f5) 2025-07-08 07:36:53 +00:00
d9bca3a299 2025-07-07 nightly release (d26ca5de058dbcf56ac52bb43e84dd98df2ace97) 2025-07-07 07:36:53 +00:00
e067016da8 2025-07-06 nightly release (7cda4017ddda554752e89069ae205be5e8388f59) 2025-07-06 07:34:39 +00:00
d9c875e47b 2025-07-05 nightly release (f7127b9b940a98596599acda1f89fc5153635a5d) 2025-07-05 07:34:44 +00:00
522bab616b 2025-07-04 nightly release (a6fab82b16011213cb010c8c50461b9a680748a2) 2025-07-04 07:37:22 +00:00
76578d0c40 2025-07-03 nightly release (5cc4e856fda4accb2e9291527693a91dc2a18d89) 2025-07-03 07:36:27 +00:00
dd43031b67 2025-07-02 nightly release (4500a4aa50141ed30e093ef8491b30d1d1287348) 2025-07-02 07:36:13 +00:00
65d9261836 2025-07-01 nightly release (c174f3a6a55864cedb8f6d9014e9b8cadf91186b) 2025-07-01 07:37:29 +00:00
249addeefd 2025-06-30 nightly release (771be857043bf794cd219a9b925e308e31f12314) 2025-06-30 07:37:04 +00:00
fcd40af2df 2025-06-29 nightly release (bccb8473fed94dbc6f1392d0c5b4a51150ee4a9a) 2025-06-29 07:34:58 +00:00
6b21a0c286 2025-06-28 nightly release (feea575082439a0496dd404a4925b7d551039065) 2025-06-28 07:34:50 +00:00
3cce5f1d04 2025-06-27 nightly release (382c6190c1329e96e71eef21a19737a3eda0040b) 2025-06-27 07:36:18 +00:00
0fb413a39a 2025-06-26 nightly release (85df746892d9b0e87e7a5dfa78ef81a84aec6de0) 2025-06-26 07:36:28 +00:00
d9c0ee5520 2025-06-25 nightly release (9b498d3bb28b8e3411ce464dd2755c5b96d92c8f) 2025-06-25 07:36:29 +00:00
fbea094c72 2025-06-24 nightly release (c82a174ceab79f77ba18405dd263eb03692608fd) 2025-06-24 07:36:32 +00:00
c8569f3a23 2025-06-23 nightly release (c55eef79f8880e4b610a0ca6f6131e690dc948dd) 2025-06-23 07:37:05 +00:00
382411c3d8 2025-06-22 nightly release (1d993fa3092e4f0b5745f2470024b35cac96da14) 2025-06-22 07:35:28 +00:00
c3ffa66474 2025-06-21 nightly release (ac86ec0e60370c037e018137f2048cafd47c5c28) 2025-06-21 07:34:55 +00:00
a64e2e686a 2025-06-20 nightly release (f7a5ad6c2987ee5a83aa5d868cee3b8067d3de94) 2025-06-20 07:35:51 +00:00
5622038e20 2025-06-19 nightly release (2625c70aecc6eced1dbe108279feab7509733bef) 2025-06-19 07:36:07 +00:00
19e7984774 2025-06-18 nightly release (2625c70aecc6eced1dbe108279feab7509733bef) 2025-06-18 07:36:44 +00:00
d159881b7f 2025-06-17 nightly release (6e2992a9984f2c3f6469564008c7e45869b84678) 2025-06-17 07:37:08 +00:00
9ce4d95e84 2025-06-16 nightly release (c620d0b5c7e8679413d620624725471223ce8359) 2025-06-16 07:37:01 +00:00
74d0136772 2025-06-15 nightly release (6ebe9a4f47e9cd1c9ccd467bcdfdea9445fd98d6) 2025-06-15 07:34:46 +00:00
c3882619c2 2025-06-14 nightly release (a6084b71edb8d2856356724b5e71c4e2a861867f) 2025-06-14 07:34:19 +00:00
58a15e1c08 2025-06-13 nightly release (020da744370f6ee23e377357e9acc330b5610a67) 2025-06-13 07:35:55 +00:00
c07ea91237 2025-06-12 nightly release (b00b641ff1fbfa8f4f6152ffc631e0d24145a7a8) 2025-06-12 07:35:56 +00:00
3017faa76e 2025-06-11 nightly release (3040ca6d0f8558e39919b14eebeacc34ddf980f5) 2025-06-11 07:36:00 +00:00
0f61f5f414 2025-06-10 nightly release (3863bbb55b38985c7d64c8a0be7beb2005a9cc07) 2025-06-10 07:36:35 +00:00
724da4eecc 2025-06-09 nightly release (be2ad70cfa1360da5c23a04ff6ca3480fa02f278) 2025-06-09 07:36:29 +00:00
843156205e 2025-06-08 nightly release (f6e18bc1054624bb148632a85c10371d6cc62492) 2025-06-08 07:34:24 +00:00
e9e2e1992d 2025-06-07 nightly release (83d22256f84232c5440b25a08459c649a32b9a4f) 2025-06-07 07:34:11 +00:00
975b4d9707 2025-06-06 nightly release (e895e9689c625cbcd8f46880115e0d093713fa37) 2025-06-06 07:35:46 +00:00
d53869579d 2025-06-05 nightly release (a01bb9da14ad08853c7b0c1b9719b978cdbf66bc) 2025-06-05 07:35:55 +00:00
a6aa36e428 2025-06-04 nightly release (3e57de1251b879b595fba1d0b9e5eeac732d2137) 2025-06-04 07:36:01 +00:00
534604db0b 2025-06-03 nightly release (28cb3c0fe5dec58c595617066acd8bd082aa867e) 2025-06-03 07:36:30 +00:00
64247892a0 2025-06-02 nightly release (0d0058d90de410cbc998089eb5e475776d2ad55d) 2025-06-02 07:36:51 +00:00
b864161782 2025-06-01 nightly release (5616fa4a68718ead203314a3467f7dd9547153ae) 2025-06-01 07:34:50 +00:00
4612dbdec6 2025-05-31 nightly release (1193bf085574f5f0836b6ca7d84e3c8cb1f2d0c3) 2025-05-31 07:34:30 +00:00
5f945e8ea7 2025-05-30 nightly release (0c6c7780d9563b555d8b2948a005170044142537) 2025-05-30 07:35:17 +00:00
b122c5cdee 2025-05-29 nightly release (b394c6e89c2f7986274e405ec8f91c12fa52b5e2) 2025-05-29 07:35:25 +00:00
f2ad693453 2025-05-28 nightly release (54f1f29fedd3321f2398b6b34c82cc6355d7ba56) 2025-05-28 07:35:52 +00:00
b40585022f 2025-05-27 nightly release (f8010e7b934ab5f289a9d0f92168476882d497d4) 2025-05-27 07:35:58 +00:00
b5ad205e0e 2025-05-26 nightly release (8c16d0e4047a8ac5885baf52e8779fb3e36f2987) 2025-05-26 07:42:06 +00:00
3560b8ebe9 2025-05-25 nightly release (53ecb8159aa28b3c015917acaa89604cfae0d2c6) 2025-05-25 07:35:03 +00:00
fc4fe48f43 2025-05-24 nightly release (76ed9db4682c2ca75116de1547bfc298fafd132d) 2025-05-24 07:34:21 +00:00
4d514e404f 2025-05-23 nightly release (c1055f41a67ef9e76626fa14eea38073f4a09b62) 2025-05-23 07:35:40 +00:00
5f5ca60410 2025-05-22 nightly release (d1fe198df60cac55c70ad4eb3f8b70f8a556b4c1) 2025-05-22 07:35:29 +00:00
08ff525349 2025-05-21 nightly release (531d8f5fb6ea6e1fcac011e5af09067303839750) 2025-05-21 07:35:43 +00:00
9e910e020f 2025-05-20 nightly release (5ef90e14a3e4b26ec9247e5af03de493f20e79a7) 2025-05-20 07:37:18 +00:00
3b875c25ea 2025-05-19 nightly release (2ade886412fcf80b6f681ba660e6f9743489d492) 2025-05-19 07:35:50 +00:00
42f44e6d06 2025-05-18 nightly release (8568dbce1d7775d37c3f2dcc4073d3f44968fc43) 2025-05-18 07:34:25 +00:00
c44eb22680 2025-05-17 nightly release (084c4aa6140fa3e3ae66b09ffe893df841fa06da) 2025-05-17 07:34:07 +00:00
bab64901cc 2025-05-16 nightly release (d1f1ff8610d6baa9f9ce132fc082a10ffa2a9854) 2025-05-16 07:35:29 +00:00
a84c4fe2bb 2025-05-15 nightly release (014726d9d313fd6bf92cad6afb6933d2eb0cdf8a) 2025-05-15 07:35:28 +00:00
46a5746426 2025-05-14 nightly release (d759a517af3e6b2337bf8f8e0d1734e64e470f1b) 2025-05-14 07:35:30 +00:00
8b228c20ce 2025-05-13 nightly release (7243c69421cd0b868f3fa3b552c17e9c8b3023a1) 2025-05-13 07:35:48 +00:00
c8d468403b 2025-05-12 nightly release (032ef487258d8bbcae40fc580cdbf47398706aa4) 2025-05-12 07:35:34 +00:00
c3b3e52305 2025-05-11 nightly release (1f5cf19f56734aa92f1757b1afdbdbbdb198b807) 2025-05-11 07:34:04 +00:00
aff1eebd2b 2025-05-10 nightly release (180cbf46f2d2c2ceba608ad2722a6c9546e3fada) 2025-05-10 07:34:08 +00:00
8fc591edea 2025-05-09 nightly release (ab829ec6290b92b6f2c2519a9a922c1b06d0981a) 2025-05-09 07:34:56 +00:00
cd09210540 2025-05-08 nightly release (6f6fac6a416b64221031d32e6c1e4df145df45f5) 2025-05-08 07:35:58 +00:00
0ef95aa4f2 2025-05-07 nightly release (dfcfad2112933cc34247421ac0a4d3f19a1806c1) 2025-05-07 07:35:42 +00:00
02417607d1 2025-05-06 nightly release (1d7728056b9d9492930f56f7ad535bf927c7a4e8) 2025-05-06 07:35:40 +00:00
edcbbadc9a 2025-05-05 nightly release (0ffd31dc8a514d9ecb1dc653725e359ad37d8faa) 2025-05-05 07:36:04 +00:00
5ca255eb29 2025-05-04 nightly release (e889937850759fe69a8c7de6326984102ed9b088) 2025-05-04 07:33:51 +00:00
0217311e9a 2025-05-03 nightly release (457fa820ad538c7aeadb68f0ec418d63972ba1ee) 2025-05-03 07:33:51 +00:00
b4bd238d58 2025-05-02 nightly release (ce94b212c71c53656d8a357b6d3f2487f5c8d60c) 2025-05-02 07:34:41 +00:00
8c7f92885f 2025-05-01 nightly release (3849fd13de1a5ee727fd64351edb0d3b1bb637a9) 2025-05-01 07:34:40 +00:00
43be1858b1 2025-04-30 nightly release (e872bf8f888bdbb27a03e03935db61babf7180b8) 2025-04-30 07:34:46 +00:00
d2a7a65bf4 2025-04-29 nightly release (e5f4356a258d646df59aa350845c8ff913463ccf) 2025-04-29 07:35:38 +00:00
0c03652153 2025-04-28 nightly release (98bd2bd1abc7e4f18693a4bbe52f68b8d47019ac) 2025-04-28 07:47:12 +00:00
140c4197f8 2025-04-27 nightly release (a0d440a26a555c34e87b90bef3bff960b34bb180) 2025-04-27 07:33:53 +00:00
6a2d29f997 2025-04-26 nightly release (65b845f82b42e865e12c6a26dc6c749db0400973) 2025-04-26 07:34:01 +00:00
e0ba40b8b1 2025-04-25 nightly release (1a6d50d40799ba05b17254b236a6bf8817dd7d06) 2025-04-25 07:34:34 +00:00
0c4b0ec0c0 2025-04-24 nightly release (4ac2ee573d941e573b6648876bf215af609dccbe) 2025-04-24 07:35:07 +00:00
dab7e57003 2025-04-23 nightly release (cd021d048e4645d1bf9f193587ca0eda377a2721) 2025-04-23 07:37:06 +00:00
b182d84228 2025-04-22 nightly release (01f1cc44cbbfdf6307aa01b803a4ee22f9ade946) 2025-04-22 07:35:08 +00:00
6597b2807c 2025-04-21 nightly release (8eb21dffa9b1d0b55756ef94628f71bccfd5bbe9) 2025-04-21 07:34:47 +00:00
4b7863fc9f 2025-04-20 nightly release (a40e876b08277795a6552cf5e77e8649237c6812) 2025-04-20 07:34:08 +00:00
d3eb151b05 2025-04-19 nightly release (adf5f38eae0449b48a0356aa7f0e35c762525be5) 2025-04-19 07:33:54 +00:00
491e7e6ba7 2025-04-18 nightly release (3ed5f1fb77669c8ac5d02e7acc0218e31b71c0b6) 2025-04-18 07:35:16 +00:00
fcaf1a59e6 2025-04-17 nightly release (300e0ee13c08ef77e88f32204a2e0925c17ce216) 2025-04-17 07:35:32 +00:00
de772dae0a 2025-04-16 nightly release (3a90fd481e050cb73eff4e99ed16135b344baf69) 2025-04-16 07:34:40 +00:00
a58c844d04 2025-04-15 nightly release (e178a3aa9441a65aa6bfa079c2c23e515971fae6) 2025-04-15 07:36:12 +00:00
4fd036eb33 2025-04-14 nightly release (1a1a32ce5af880709a761c4cd9e9e43fb67e5058) 2025-04-14 07:34:56 +00:00
160a26e1a3 2025-04-13 nightly release (1a1a32ce5af880709a761c4cd9e9e43fb67e5058) 2025-04-13 07:33:47 +00:00
499ae6a4d4 2025-04-12 nightly release (1a1a32ce5af880709a761c4cd9e9e43fb67e5058) 2025-04-12 07:33:54 +00:00
a2033c7442 2025-04-11 nightly release (1a1a32ce5af880709a761c4cd9e9e43fb67e5058) 2025-04-11 07:34:26 +00:00
a094b3ad3e 2025-04-10 nightly release (cd80778ac8636db99685d792cbc93374f574d38b) 2025-04-10 07:35:22 +00:00
dcea61f3d2 2025-04-09 nightly release (4447352e6499c28c17f4d48d40c2b1cc3d2863a5) 2025-04-09 07:34:53 +00:00
37bbfdc278 2025-04-08 nightly release (836955bdbdeb299e6937065299564fb44ec422c2) 2025-04-08 07:34:33 +00:00
2b568a51f1 2025-04-07 nightly release (d98575806ba3f2b67439c241e980df8f98923f44) 2025-04-07 07:35:43 +00:00
881e8b6bda 2025-04-06 nightly release (15768cc34b9cdafdac645b9c22806e0bf4e74100) 2025-04-06 07:34:21 +00:00
51ba1b337c 2025-04-05 nightly release (7ac81868513a212af6be4a05e2f921cafeeb3069) 2025-04-05 07:34:34 +00:00
56d317d3a7 2025-04-04 nightly release (f9f6c080d8309ac1c5a546a47571389bac0b922c) 2025-04-04 07:34:17 +00:00
e374008e67 2025-04-03 nightly release (532530be34bf396cc632b5c8d95253953e3f7717) 2025-04-03 07:34:28 +00:00
f2ce02c559 2025-04-02 nightly release (5734909f343ab1de44ed5ab23311d43a9c6afaed) 2025-04-02 07:34:31 +00:00
365763495b 2025-04-01 nightly release (827b730f4e1cf172c7ba228a2efd268149163d52) 2025-04-01 07:34:55 +00:00
d5d5207db1 2025-03-31 nightly release (cbc0964636b382e096e4a048909c3fbf4ff82e59) 2025-03-31 07:34:42 +00:00
de61ed1823 2025-03-30 nightly release (52135db69a5b02bb9e5120a5fa410c303f649dfe) 2025-03-30 07:34:05 +00:00
3de3814e5e 2025-03-29 nightly release (d670df356cc27af60b09cb2653dd53a9b92790dc) 2025-03-29 07:33:50 +00:00
dac34906ab 2025-03-28 nightly release (d670df356cc27af60b09cb2653dd53a9b92790dc) 2025-03-28 07:34:40 +00:00
425df71311 2025-03-27 nightly release (114d404b0720e8073748690faeb96449e5c0b229) 2025-03-27 07:34:19 +00:00
41d214b5d4 2025-03-26 nightly release (45b11730f10f64171a9861c98782e1875bad87c9) 2025-03-26 07:34:22 +00:00
3794824ceb 2025-03-25 nightly release (59d5cf083b4f860dea76fe8936076177f9367f10) 2025-03-25 07:35:11 +00:00
139ce10879 2025-03-24 nightly release (de3aca331104776bdfac3f053511b7af442b4038) 2025-03-24 07:34:41 +00:00
9164cb4fbf 2025-03-23 nightly release (621c801f786a0fb24766f8b30b5d3e08b5c25fd3) 2025-03-23 07:34:02 +00:00
233790922b 2025-03-22 nightly release (01b1d1f91b9ee15051489da6d4e9377459ad692c) 2025-03-22 07:34:00 +00:00
6c7ce1b7be 2025-03-21 nightly release (0692301e25f0e0d64b4102819a4c0a4d8fe51b53) 2025-03-21 07:34:04 +00:00
c15acc148e 2025-03-20 nightly release (02e21c78543d0861305382b84c43936c90274eab) 2025-03-20 07:33:48 +00:00
2745ea1c97 2025-03-19 nightly release (790f93db3a5474a26d99e587016815c987566b49) 2025-03-19 07:34:22 +00:00
f66f3718dc 2025-03-18 nightly release (790f93db3a5474a26d99e587016815c987566b49) 2025-03-18 07:34:34 +00:00
3f3f7f67bc 2025-03-17 nightly release (6b1b95ad2acc9404307142d1f050e0e1b5815f99) 2025-03-17 07:34:39 +00:00
1184d9a6aa 2025-03-16 nightly release (f80bee4934dc2d6c8031f481d699cd4832a1a932) 2025-03-16 07:33:51 +00:00
a7848a5ca9 2025-03-15 nightly release (740ce0fa5f8c7e9e51422b614f8187ab93a60b8b) 2025-03-15 07:33:48 +00:00
cc803031f2 2025-03-14 nightly release (e8d36019d428a3c298bedc53d692a81e2f9abd26) 2025-03-14 07:34:00 +00:00
d330b82ed6 2025-03-13 nightly release (f2d43d866cff717c1ce33074d44924be777188c5) 2025-03-13 07:33:50 +00:00
ea02d322f0 2025-03-12 nightly release (2a7e997b3f1805b077810d7fef87cabc4411eeea) 2025-03-12 07:34:14 +00:00
d962699548 2025-03-11 nightly release (295f2ed4d103017f7e19a7b8263ece606cd629db) 2025-03-11 07:33:52 +00:00
cdb42bd8cc 2025-03-10 nightly release (7ae0ce6360b6e4f944906502d20da24c04debee5) 2025-03-10 07:33:51 +00:00
ecc1272a4b 2025-03-09 nightly release (5245304f1ecd4e78bd11f5a5efa8ce12f3b52826) 2025-03-09 07:33:38 +00:00
acd10bbd23 2025-03-08 nightly release (85467ed063d284fa21a2f1d2adfec8fda544923d) 2025-03-08 07:33:48 +00:00
21169daf3a 2025-03-07 nightly release (9c9b05bc4f3661e7b781186e646c08254758a2d4) 2025-03-07 07:33:50 +00:00
e35f2fa1a1 2025-03-06 nightly release (1433bc145526949c84acf4ba5eaa1687cc2d72fe) 2025-03-06 07:34:37 +00:00
8afad6f64c 2025-03-05 nightly release (aade4fbd55a07aaa23dbdfe055d70cd503fd0059) 2025-03-05 07:34:24 +00:00
d13587dfbf 2025-03-04 nightly release (aade4fbd55a07aaa23dbdfe055d70cd503fd0059) 2025-03-04 07:34:06 +00:00
8a38a193e4 2025-03-03 nightly release (ab81ca5053440074dc7d8c46ae4775f62f662394) 2025-03-03 07:33:58 +00:00
96b99c3c6d 2025-03-02 nightly release (ce2f680e0009550ef0dc594f375d542662fcb7e5) 2025-03-02 07:33:55 +00:00
f2a3f7c4b3 2025-03-01 nightly release (08434df1f2f88c9770e59246caa2ff9c6f613270) 2025-03-01 07:33:49 +00:00
5679f4f9c4 2025-02-28 nightly release (1845e7d1f597850b39e2e2d509e7cf8f997462a3) 2025-02-28 07:33:42 +00:00
7c2f94413c 2025-02-27 nightly release (784902983e79fe2f0ae2d7a73a57f4f2338eb86b) 2025-02-27 07:33:48 +00:00
77d7c96844 2025-02-26 nightly release (9ad0ad6497973b3bd72c7b50101cf30d359b950e) 2025-02-26 07:33:57 +00:00
ca19385711 2025-02-25 nightly release (866dc45d3ca0094bb89729b8309eeb25f6c9b575) 2025-02-25 15:21:41 +00:00
2bc7eb9e50 2025-02-24 nightly release (bea72180ed75f522ce4fe5e723bc2112e0874732) 2025-02-24 07:33:42 +00:00
52b3292d38 2025-02-23 nightly release (bea72180ed75f522ce4fe5e723bc2112e0874732) 2025-02-23 07:33:39 +00:00
28e3ea64c0 2025-02-22 nightly release (84fcf1bb11aa2106facb4e44da2a4e295936755d) 2025-02-22 07:33:46 +00:00
9c302da50c 2025-02-21 nightly release (fe100c3c5bcb19899b1f92c3281e527ba1eb011e) 2025-02-21 07:33:48 +00:00
a1f23bcb2e 2025-02-20 nightly release (fea718f062be1ea0602bef36ff42f28df968fd06) 2025-02-20 07:33:51 +00:00
83692a2c20 2025-02-19 nightly release (454fbd5bbe52d241a0ac89dc37574a16d322a1c0) 2025-02-19 13:01:56 +00:00
f1fbb1edba 2025-02-19 nightly release (bd370c138a9378d807ad16228cc6a066f14a526d) 2025-02-19 07:33:50 +00:00
7604dd1102 2025-02-18 nightly release (71484a2106750a5388d0eb1094a2206595d0e7e6) 2025-02-18 07:33:45 +00:00
54ea81783c 2025-02-17 nightly release (ae351d4d0ee0676b81f58170595d016d40cd223f) 2025-02-17 07:33:55 +00:00
68fa1e1ce9 2025-02-16 nightly release (1677a3101959cd2ea5f811a023a2b8b0b9fc6c18) 2025-02-16 07:33:48 +00:00
73f9dbce08 2025-02-15 nightly release (4233a779603207f19033cd433d2961c93b932cb4) 2025-02-15 07:33:51 +00:00
68c826639e 2025-02-14 nightly release (f95bdf5e6c8ea482ba6f64d655513b6a191ac142) 2025-02-14 07:34:01 +00:00
c709115e6c 2025-02-13 nightly release (54e28b2a71dbe003ec03a72c4e829acc0cf25334) 2025-02-13 07:33:50 +00:00
4446d2c933 2025-02-12 nightly release (28a2ab6b8489a22f29bf27b8c691aa27c2ea1094) 2025-02-12 07:33:50 +00:00
90092b9b08 2025-02-11 nightly release (fe94ece375f46d09a223d9796cac02b0796f13f1) 2025-02-11 07:34:51 +00:00
5f7ce38e44 2025-02-10 nightly release (e8304f08fedc802a90f9361c30861f8c5aab946e) 2025-02-10 07:34:04 +00:00
9b43fab6c5 2025-02-09 nightly release (6a9a02acbe34a9d810c8bf56c865b9d0687a3051) 2025-02-09 07:33:44 +00:00
ae9c74989e 2025-02-08 nightly release (9c78fb920d51462bbb6fbdb82592b5963a56ae8a) 2025-02-08 07:33:58 +00:00
1323ac671b 2025-02-07 nightly release (fa0592b568ce35c391dfede8bede9e1ed67f33f5) 2025-02-07 07:33:54 +00:00
a20cc87f83 2025-02-06 nightly release (425804db2b59fe2653fbf0ece730a522865a9b2a) 2025-02-06 07:34:05 +00:00
d945c3e427 2025-02-05 nightly release (3c0d2bc262b51dc55377eee687064d91fb12696d) 2025-02-05 07:33:50 +00:00
48d01e495e 2025-02-04 nightly release (d3c7e4bb9cb570e997dd143817580283c634fab2) 2025-02-04 07:33:46 +00:00
ca2de2e26f 2025-02-03 nightly release (d80eef7c6d2efcbf4b60d555512c7db9da2a6e58) 2025-02-03 07:33:52 +00:00
738ebb45ca 2025-02-02 nightly release (7854299b27d55223e402651ce0d33b209a213589) 2025-02-02 07:33:48 +00:00
6fba2824ee 2025-02-01 nightly release (cde5ddfd1460644bf3f3cbe755b40d44bfc1891b) 2025-02-01 07:34:36 +00:00
edf08cb080 2025-01-31 nightly release (2d6f6637d31854bff0ec7dc6b82429f37e0da271) 2025-01-31 21:28:06 +00:00
5f15cdfe27 2025-01-31 nightly release (27e35de6c288bffad1b4d18b393579c1d1a95547) 2025-01-31 07:33:54 +00:00
b27bb24208 2025-01-30 nightly release (354fe48db9ef94c69db6d03d997a374048824f83) 2025-01-30 07:33:57 +00:00
e1e9393cdf 2025-01-29 nightly release (9fd6722fc9068eeaa176754acb315fc7e0f6416c) 2025-01-29 07:34:09 +00:00
e72d5a5817 2025-01-28 nightly release (c1161957a4122d1913aa00ce2c17c1cc7b83b309) 2025-01-28 07:33:41 +00:00
3127214173 2025-01-27 nightly release (b75afa2e2e492ea59502daa73196fb7454a75a1a) 2025-01-27 07:33:54 +00:00
f97e773692 2025-01-26 nightly release (90448f0128d8090a07325be24bd513c4d14bed6d) 2025-01-26 07:33:55 +00:00
66d78ef560 2025-01-25 nightly release (ef60de07a0d390ac06efaa41b6548118cf84e0ea) 2025-01-25 07:33:47 +00:00
16f149b177 2025-01-24 nightly release (6f07847efe94157b9ab0bdba080f952ecebfbdc3) 2025-01-24 07:34:06 +00:00
e96db3e274 2025-01-23 nightly release (5a18f1e1eb5ae9cf87f66a367f07fdb5211531c7) 2025-01-23 07:33:44 +00:00
76535beee0 2025-01-22 nightly release (f2cfe8b59f56b75f4aa313b3979af845a903f5f8) 2025-01-22 07:34:05 +00:00
1d5261b3a7 2025-01-21 nightly release (5fd881a5b67bf715f212dad8c7cacd4ddfb5746b) 2025-01-21 07:33:56 +00:00
37626ee0e6 2025-01-20 nightly release (6cb186e279bc179a6bb63f0226e24ab42a07b394) 2025-01-20 07:33:45 +00:00
9cf75bc595 2025-01-19 nightly release (8cc415774f47b5a50077f72ea493b71b8101e48d) 2025-01-19 07:33:43 +00:00
afeff746d3 2025-01-18 nightly release (64e54d5af638f6e427e8ad2355c45970400c437e) 2025-01-18 07:33:47 +00:00
ab2a8287ca 2025-01-17 nightly release (43a00d73b36494e052a82418182c63e18e9d9f69) 2025-01-17 07:33:50 +00:00
b3e16e3b7b 2025-01-16 nightly release (62ce3e6e84df516fdd5310d5095fa01251806f1d) 2025-01-16 07:33:47 +00:00
55bf78123d 2025-01-15 nightly release (e2251fffbb012303f1c47ead67fa733a49fd21b4) 2025-01-15 07:34:00 +00:00
68e1d954e3 2025-01-14 nightly release (dfe06e555d474d3ed597b67893e6ff270e2070f4) 2025-01-14 07:33:53 +00:00
32c95e44c6 2025-01-13 nightly release (87843ee9ab50778a98eda62fd7498d44c69488bd) 2025-01-13 07:33:42 +00:00
24d762795f 2025-01-12 nightly release (e0f67405a154e7f9ce1ca9533cbc1d156fe075d7) 2025-01-12 07:33:47 +00:00
ea2107b759 2025-01-11 nightly release (68dad26b9504d96bf7c247941dee67ffb1a781e9) 2025-01-11 07:33:53 +00:00
07c3c5e34c 2025-01-10 nightly release (9f09b719d33c61224ebb85baa369a8364063aa6f) 2025-01-10 07:33:48 +00:00
bd1e0e0018 2025-01-09 nightly release (dcc3cf7066b4d8cab63ecb73daf1e36b01220a4e) 2025-01-09 07:33:53 +00:00
a00264a930 2025-01-08 nightly release (28b4992e7a60bb3fbb07c591099fa810557b4e57) 2025-01-08 07:33:56 +00:00
de51f09432 2025-01-07 nightly release (301b9c8a90002fa621d93b108e54460066226629) 2025-01-07 07:33:58 +00:00
65e9e383bb 2025-01-06 nightly release (cb5fa17e4437d0cf20e2cde03bc1c753d49b1f69) 2025-01-06 07:33:47 +00:00
e67f93ae33 2025-01-05 nightly release (f2d6cfa6775601df5a038f7a4d0b37da75a53ed9) 2025-01-05 07:33:47 +00:00
0f7331ca63 2025-01-04 nightly release (0a94bb432ed75cc2d950d81b2921363218a7e459) 2025-01-04 07:34:05 +00:00
8c92c3c359 2025-01-03 nightly release (496fc909651ff4fc0d1933277c2d30524061471c) 2025-01-03 07:33:57 +00:00
f769c99631 2025-01-02 nightly release (a174ee2255aa181d8d39c167694db1eb1a2e0deb) 2025-01-02 07:33:53 +00:00
d4e525871c 2025-01-01 nightly release (a174ee2255aa181d8d39c167694db1eb1a2e0deb) 2025-01-01 07:33:45 +00:00
a1bc249b5f 2024-12-31 nightly release (8df99b6a6e1fb7b1e548ef01e8d21a652019ed28) 2024-12-31 07:33:43 +00:00
40b0741e91 2024-12-30 nightly release (2ed4d65af0a1993c0df7b081f4088d0f3614283e) 2024-12-30 07:34:20 +00:00
ad23baaa28 2024-12-29 nightly release (cf0b72c4ab960a847758132cc501cf793926e070) 2024-12-29 07:33:41 +00:00
b7f762e00d 2024-12-28 nightly release (d3e9133ab217b8b1f244cd78428d116f83d5806b) 2024-12-28 07:33:58 +00:00
b01ca2c28b 2024-12-27 nightly release (1cd70e7e237d03de3f50445ab0c7975d6749dc5e) 2024-12-27 07:33:50 +00:00
dd88b7cb14 2024-12-26 nightly release (4bacfd6e117f1e77dbce9444fc3ef3d95c5f2b89) 2024-12-26 07:33:54 +00:00
4ae33911b2 2024-12-25 nightly release (c0d710634fcce172490c3ace0de977829b38bc06) 2024-12-25 07:33:52 +00:00
993ac7f9d6 2024-12-24 nightly release (6ccb8ed1868984d9d2ea4e48a085508d1027cd9b) 2024-12-24 07:33:51 +00:00
b2d1835353 2024-12-23 nightly release (12662901aa8ced7d1118193e40dd4f018bb2e0fa) 2024-12-23 19:46:19 +00:00
b74622335a 2024-12-23 nightly release (eebc93d41eeffb936cbf20c9052e1e813d0cc052) 2024-12-23 07:33:45 +00:00
9f02401460 2024-12-22 nightly release (f1cbf4b1b5a299f999c11e77bfabe39c7f04efdc) 2024-12-22 07:33:41 +00:00
3333f84c71 2024-12-21 nightly release (b5e159270a3784bc60fcb18513f30af22521dcf0) 2024-12-21 07:33:48 +00:00
6b3b6ccebb 2024-12-20 nightly release (75661f2036d36fd7f869cd749eb6ef5fb40e4772) 2024-12-20 07:33:45 +00:00
61944adb69 2024-12-19 nightly release (2c48af568a082c70ca4ca2cdc9b6469ed253a371) 2024-12-19 07:34:07 +00:00
a5fc054c22 2024-12-18 nightly release (2ea4b56ec872424e486c4fe2d55da061067a2ed3) 2024-12-18 12:53:39 +00:00
7260a15470 2024-12-18 nightly release (c06b5048ba866e2dd39e5da5399fe8261322c7ca) 2024-12-18 07:33:51 +00:00
5764ca46ed 2024-12-17 nightly release (c15638d8035f706b29a402397fd6766025801032) 2024-12-17 07:34:49 +00:00
3f159d6357 2024-12-16 nightly release (af8789c05654477649e4d99e6a253a2ebd81ad9e) 2024-12-16 07:35:17 +00:00
9f9823e3d2 2024-12-15 nightly release (dd2d360b7d5dcc66660fdfe8da083a7077dada56) 2024-12-15 07:33:42 +00:00
587bb30c44 2024-12-14 nightly release (698eefadddb7c276b381ecb510f4bcc219212c25) 2024-12-14 07:34:11 +00:00
33229b026a 2024-12-13 nightly release (ceb664aca6861d1a05c3d5602b1d7086a1e2901a) 2024-12-13 07:34:15 +00:00
3c7f1c0b09 2024-12-12 nightly release (1dd6f2102936175c06468aa4a18fcf401b53b439) 2024-12-12 07:35:13 +00:00
3bcdb4ed6b 2024-12-11 nightly release (95e7fcf82e91fa965bf35790d06fbf69bb945f81) 2024-12-11 07:34:59 +00:00
96a8273b63 2024-12-10 nightly release (5d3bc633ff3fab550afd286d53697bb5aab1c60e) 2024-12-10 07:35:50 +00:00
66b9fcf5f6 2024-12-09 nightly release (7435f57f600ff083bd2d0efcf33eeda674d2caa1) 2024-12-09 07:35:41 +00:00
afb4be9252 2024-12-08 nightly release (2682e5e0d48a8200c1672b6a42250d3c8de44190) 2024-12-08 07:33:59 +00:00
21b0f3b9bd 2024-12-07 nightly release (7939b5f5f9b073984c26adef1446fa250a20bceb) 2024-12-07 07:34:19 +00:00
3dd667797a 2024-12-06 nightly release (80ca6dd892613fd4f1dee9040b8273ddeadb1c50) 2024-12-06 07:34:55 +00:00
e21ebc30af 2024-12-05 nightly release (b08bc07cd75d166ea4873a5ea24680bfd6204a76) 2024-12-05 07:35:07 +00:00
aa019efbc3 2024-12-04 nightly release (30d907c6fbb0e1ce81023e10f9f2b6bbc27bf59a) 2024-12-04 07:35:07 +00:00
7851460668 2024-12-03 nightly release (77748ed8ec2dea0deb6ffd59bd28329e6cdc9d56) 2024-12-03 07:35:18 +00:00
90b7dcf2c5 2024-12-02 nightly release (5deca07c0dcf1482eba99bf93b805cf1cc41ad6c) 2024-12-02 07:35:32 +00:00
798d5b7ddd 2024-12-01 nightly release (e29dabbd719b988208f329c22157ecf03be6cf56) 2024-12-01 07:34:27 +00:00
8712710221 2024-11-30 nightly release (e29dabbd719b988208f329c22157ecf03be6cf56) 2024-11-30 07:34:13 +00:00
f0427e7be1 2024-11-29 nightly release (b97a7861256188efb7d4cf862886db7e547040a9) 2024-11-29 07:34:43 +00:00
1fba97d21a 2024-11-28 nightly release (fea771dcce8508c5d71755da65d1b97d6da13475) 2024-11-28 07:35:07 +00:00
44c5ea24d5 2024-11-27 nightly release (9b89fa44bad4128b0be2b03b0d8c11ee800d3de6) 2024-11-27 07:35:04 +00:00
06d9768062 2024-11-26 nightly release (851edf208b308789087f263de739607ea25c8a0e) 2024-11-26 07:35:07 +00:00
b16d9ba310 2024-11-25 nightly release (2398e758d2493c8142d4b7f9c72207f05991e9e9) 2024-11-25 07:34:49 +00:00
b0a6940290 2024-11-24 nightly release (c513f01516673898d551818c8ca6085cf07e4006) 2024-11-24 07:34:33 +00:00
716ed475a1 2024-11-23 nightly release (44d5012a80e9b9c0f28dfc9927bfe8157412254d) 2024-11-23 07:33:50 +00:00
b8aad2e5e5 2024-11-22 nightly release (740d1eb0306f1f9d0ce81ea81f287a6b52738fab) 2024-11-22 07:34:41 +00:00
ac47a2d971 2024-11-21 nightly release (e0482fdf95eb3ce679fa442b50871d113ceb673b) 2024-11-21 07:34:45 +00:00
dd2e6d6140 2024-11-20 nightly release (cee3f8541e9fed93095e249d17f791b861548562) 2024-11-20 07:34:51 +00:00
a7f5ff1bc5 2024-11-19 nightly release (98e441f00b2e4dff5234df120e6194eab6773853) 2024-11-19 07:35:01 +00:00
37b96b77a5 2024-11-18 nightly release (c3fbec74bd92e1c4e97a6f2908cabb799d515ce7) 2024-11-18 07:35:13 +00:00
edeae2313f 2024-11-17 nightly release (2fc692b3dd42bf92c4f92dcec862bae7ae1c7995) 2024-11-17 07:34:29 +00:00
5d487aa9be 2024-11-16 nightly release (924c1fe3f304aa599b823fb549c35b7809f61086) 2024-11-16 07:34:02 +00:00
79da951f19 2024-11-15 nightly release (1c1d06a22c2534cca3c4c36f5e7947a67b0d1512) 2024-11-15 07:34:34 +00:00
a0d79cba8d 2024-11-14 nightly release (3ce75e7ea6706adf64d823d0c7ab2d04f657d43e) 2024-11-14 07:34:09 +00:00
1ba72852e9 2024-11-14 nightly release (70060b0927221c63cf08be896dbca6103f2be96e) 2024-11-14 03:11:36 +00:00
d195b9388e 2024-11-13 nightly release (39d1c91c33270f66cdf57bae2a19e7738cf8f77f) 2024-11-13 07:34:06 +00:00
555bc8349d 2024-11-12 nightly release (19eff28ff3f19b50da46f5a9ff5f4d4d213806fe) 2024-11-12 07:34:12 +00:00
9c847fb635 2024-11-11 nightly release (ffb979032dc149b4c895526fe5b92d713ed7b1e1) 2024-11-11 07:34:40 +00:00
77d07d22ef 2024-11-10 nightly release (5ef33e40b3c3fd2608552d3301c7255826c0e7f6) 2024-11-10 07:33:34 +00:00
30cf05fc13 2024-11-09 nightly release (cc44b55b0080759d85068aefa9c74e3bf49658e1) 2024-11-09 07:33:37 +00:00
29017895e1 2024-11-08 nightly release (4715b7700131618be5f439a8ad6b5ae94a201915) 2024-11-08 07:33:41 +00:00
0d5247caf3 2024-11-07 nightly release (cf0bb6c435c58db4c72e489f462e1a0ebe310f14) 2024-11-07 07:33:48 +00:00
5a05d8baca 2024-11-06 nightly release (63b01f328ef63a28b6c31e711d094b1a4b2b7d28) 2024-11-06 07:33:56 +00:00
a8b26c6b07 2024-11-05 nightly release (9039fbb47ecfc93df74a014a209e5929d10fd2a3) 2024-11-05 07:33:56 +00:00
76c297ad6b 2024-11-04 nightly release (e6ff07f00e04a9b58efb86a3dd70ed7280ae8522) 2024-11-04 07:34:15 +00:00
3c901e20a9 2024-11-03 nightly release (f121eab0182f7da58b39ffb84744bdc7109817e3) 2024-11-03 07:34:09 +00:00
a37bd4b1a2 2024-11-02 nightly release (8d1eaa3da663c2bdd626ff1aafa1c5d0ff6e1bf3) 2024-11-02 07:33:48 +00:00
3e0dd1351c 2024-11-01 nightly release (c8a648d4dffb9f0133ff4a2ea0e660b42105d3ad) 2024-11-01 07:34:23 +00:00
81d824d17a 2024-10-31 nightly release (70ba471957011c0ef9d35207b4fb63657e5f8d1a) 2024-10-31 07:34:05 +00:00
e47e879449 2024-10-30 nightly release (23d590e518688f96e1d1947a08e9ca27df3e67e4) 2024-10-30 08:48:13 +00:00
c787213d41 2024-10-29 nightly release (4ee514144bcc227c6d73192d49baf354eb5f321c) 2024-10-29 07:34:47 +00:00
7784111661 2024-10-28 nightly release (d2ec28978730db514931e4dc146f8188738ed1ff) 2024-10-28 07:34:27 +00:00
cef671f99b 2024-10-27 nightly release (00504aa6b8b0ae68761b89f023184202e8c79bc8) 2024-10-27 07:34:07 +00:00
36c366341b 2024-10-26 nightly release (a3de067975a61f11ccb8580416ea4d4a838cdb24) 2024-10-26 07:33:44 +00:00
bd5482c7c3 2024-10-25 nightly release (32a3dbc6450171dec4ef62a36037dd5dc24790d2) 2024-10-25 07:34:20 +00:00
f64544f7fa 2024-10-24 nightly release (dbd6ada8c3272e9aa36b5da0ee785da5e17bd650) 2024-10-24 07:34:14 +00:00
4e9fedafc2 2024-10-23 nightly release (f2ebf6d94ab8d9f6b1a1ba8c6d6d120d9e8a2156) 2024-10-23 07:35:03 +00:00
65a14490e8 2024-10-22 nightly release (89067402d40e70f70b66f734c830fcd450c665df) 2024-10-22 07:36:10 +00:00
5553778a00 2024-10-21 nightly release (82eb09aafd7e4ee6e4fb0580f2221ea6253d218b) 2024-10-21 07:34:43 +00:00
160d421a40 2024-10-20 nightly release (47e80abc7a9de6b5cdc20f7d1a8afb68c639d764) 2024-10-20 07:34:10 +00:00
64b61eb313 2024-10-19 nightly release (e8b1409dcfbc7609110c9c332d6038a957b8dd9f) 2024-10-19 07:33:53 +00:00
c2c91fc8a4 2024-10-18 nightly release (7365a57dc05cc500b5ec910ae008bb168dbadd08) 2024-10-18 07:34:10 +00:00
e4dcf5b50e 2024-10-17 nightly release (fe43f72be7e0afd7fc6e5eee5dfdfb2968e66f32) 2024-10-17 07:34:19 +00:00
1655e904b5 2024-10-16 nightly release (75109682b66267d35ed2a5235ef50348926a336c) 2024-10-16 07:34:18 +00:00
ec8499a174 2024-10-15 nightly release (ed94725b8c5d70b31659d10775c011a23cbcb464) 2024-10-15 07:35:42 +00:00
2fcfb44b7e 2024-10-14 nightly release (41977a05314bbf537e1c5d6cf5916a368d1907d9) 2024-10-14 07:35:48 +00:00
380701ee2e 2024-10-13 nightly release (e89fe0bd6e827435ce436af5df93edb4494f6def) 2024-10-13 07:33:49 +00:00
de761c548d 2024-10-12 nightly release (c254901bdb6dcf8be91b41016c97cf685145fc1a) 2024-10-12 07:33:49 +00:00
e767966307 2024-10-11 nightly release (8321eec009c8c79145ebccd51fdfc336e5f8b848) 2024-10-11 07:34:11 +00:00
2ca8a3bdd1 2024-10-10 nightly release (d9f4a7d3f9678e9492ee1485987370973a55bef9) 2024-10-10 07:33:54 +00:00
7a558ac7ae 2024-10-09 nightly release (23c531b3e903764d06601e2f94f05b61038db83c) 2024-10-09 07:33:58 +00:00
1217ddad52 2024-10-08 nightly release (ff95ff5d38d5133ce74543f8a7a769b6dd9e5d72) 2024-10-08 07:34:05 +00:00
d7f1e2141a 2024-10-07 nightly release (d1b87e26e5c4343f5b56bb1e6f89b479b389bfac) 2024-10-07 07:33:51 +00:00
c9a3e50fbf 2024-10-06 nightly release (4061910ba26f3d81bcde29251677bda1dffbe734) 2024-10-06 07:33:44 +00:00
c327365f95 2024-10-05 nightly release (d6f340f66c2a1b0bdf22377d10b073dd0e5a95d6) 2024-10-05 07:33:47 +00:00
e8a3a16596 2024-10-04 nightly release (88e338f4dddd8fa3eac9c63a4b742dfe8aad0302) 2024-10-04 07:33:59 +00:00
76cfea5e2c 2024-10-03 nightly release (5c0ce8d0a6423472959cf17efa92b20160c6f6a5) 2024-10-03 07:33:57 +00:00
4b2970f7cd 2024-10-02 nightly release (18525e185e211b3eab44c67a688e5df8396f6f97) 2024-10-02 07:33:44 +00:00
972a8333fc 2024-10-01 nightly release (156ca01e51f766b1b069c5c6f3d57112a5c8f9ff) 2024-10-01 07:33:57 +00:00
c8887ca3bc 2024-09-30 nightly release (156ca01e51f766b1b069c5c6f3d57112a5c8f9ff) 2024-09-30 07:33:49 +00:00
f8a6ada8af 2024-09-29 nightly release (1d6e0412f5205b1cd709e034526d7f21d6f2d56f) 2024-09-29 07:33:48 +00:00
32ef0376fd 2024-09-28 nightly release (f42e88fea5915012ddb4cd9530f367524bf57019) 2024-09-28 07:33:49 +00:00
5ba404f687 2024-09-27 nightly release (aa56f80ec1d690f40a38893bfe72b88dd34aa7f7) 2024-09-27 07:33:57 +00:00
29f97eb575 2024-09-26 nightly release (76b044d7cb987081aaaf5b381b74c93543023f7f) 2024-09-26 07:33:58 +00:00
21a304b17f 2024-09-25 nightly release (780f4debdbb51347da5b416416392e5849cbfec5) 2024-09-25 07:33:45 +00:00
5fe833157e 2024-09-24 nightly release (e09c5b6046bbe86958f066b09adeed8435d7d518) 2024-09-24 07:33:51 +00:00
64141411e0 2024-09-23 nightly release (f276da7f988b12fad74594aa054197371be17184) 2024-09-23 07:33:48 +00:00
4b5ae4de44 2024-09-22 nightly release (9731ccb9e0c9f09dcd3435a47fc40fe6fb960504) 2024-09-22 07:33:48 +00:00
4d07616615 2024-09-21 nightly release (1a10751731784942dcbb9c0524c1369a29d45244) 2024-09-21 07:33:57 +00:00
4c73f163cd 2024-09-20 nightly release (fe0e9fb385d6e75a01c9feaa459252db09b71839) 2024-09-20 07:33:48 +00:00
89957684e0 2024-09-19 nightly release (e037bb326fdafca243bdb08023bbef93b29a4513) 2024-09-19 07:33:51 +00:00
900998e06b 2024-09-18 nightly release (48d18fbd4cf785e1f69a6555d97a39023a5d199e) 2024-09-18 07:34:22 +00:00
aec9b2ab77 2024-09-17 nightly release (37a08b33bb86ad0fce3db6fc98f90c9e02d77cba) 2024-09-17 07:33:53 +00:00
79d8db5004 2024-09-16 nightly release (c64ae601ba9eb3ad2cd3402a14f6ac83c0ab7eba) 2024-09-16 07:34:04 +00:00
458f88a3af 2024-09-15 nightly release (c64ae601ba9eb3ad2cd3402a14f6ac83c0ab7eba) 2024-09-15 07:33:41 +00:00
a36aa26d30 2024-09-14 nightly release (081c4a966de77dd5187c1cb97d287cae6f3fbc02) 2024-09-14 07:33:47 +00:00
cc185792f2 2024-09-13 nightly release (0cdc6a8dcd7e294b01d8914385bbe45e79c1770d) 2024-09-13 07:34:19 +00:00
f23873cf88 2024-09-12 nightly release (a130ed828ab879aa4a8c3fcaba5148e872ccaf42) 2024-09-12 07:33:46 +00:00
c42ec0f9b5 2024-09-11 nightly release (26e5572dd24acd69b08eb94577f8796a480c9fe0) 2024-09-11 07:33:46 +00:00
584f674aa0 2024-09-10 nightly release (7ec17b49cf89cfeb97272a1baddcc30fa6fa66d8) 2024-09-10 07:33:42 +00:00
995ec16c7a 2024-09-09 nightly release (31c4e0d37d8efc37a0697159e5b9121ec34d5141) 2024-09-09 07:33:44 +00:00
5678da6c98 2024-09-08 nightly release (3bebc09be9845c0779f190489e8d4caa9e2653c8) 2024-09-08 07:33:41 +00:00
9515104a2b 2024-09-07 nightly release (3d734d837be7b065dc36ae808699459c8e73dda3) 2024-09-07 07:33:42 +00:00
e4f495cdb0 2024-09-06 nightly release (06a7dc21c1005750598c37f3adbc031183c74de6) 2024-09-06 07:33:52 +00:00
90cf7dcfbb 2024-09-05 nightly release (a7a53b796b1fcde9a52c86d29d88e12bbf2b4092) 2024-09-05 07:33:46 +00:00
48d4dac077 2024-09-04 nightly release (e000cf0ad980e5d140dc895a646174e9b945cf26) 2024-09-04 07:34:03 +00:00
704c6fc1cb 2024-09-03 nightly release (c140fa1426603322a5a69ef91300f13489db5970) 2024-09-03 07:33:42 +00:00
e8379aab48 2024-09-02 nightly release (c140fa1426603322a5a69ef91300f13489db5970) 2024-09-02 07:33:54 +00:00
00e3eea170 2024-09-01 nightly release (caa04e0caeb5736e9094f6e0667c03585cc90724) 2024-09-01 07:33:53 +00:00
bed3938804 2024-08-31 nightly release (86e03a64e1e9570adfb574bc406cc5f3d8d90209) 2024-08-31 07:33:44 +00:00
603ac39af5 2024-08-30 nightly release (0d5f9787959efa671d390d5ae02a445a3314178c) 2024-08-30 07:33:47 +00:00
e4cd76cf82 2024-08-29 nightly release (41e36e2b46e05b8718ca724f1780040783c621d2) 2024-08-29 07:33:45 +00:00
de66933aaf 2024-08-28 nightly release (55236d0cb7d183f2b64982d8718e9012ae8a40d8) 2024-08-28 07:33:44 +00:00
7e19f8fbcd 2024-08-27 nightly release (55236d0cb7d183f2b64982d8718e9012ae8a40d8) 2024-08-27 07:33:44 +00:00
3bca514ed8 2024-08-26 nightly release (2553278bae5993bd94bae4f04bf4586fb3f30d57) 2024-08-26 07:33:54 +00:00
aa1fc68d51 2024-08-25 nightly release (2553278bae5993bd94bae4f04bf4586fb3f30d57) 2024-08-25 07:34:01 +00:00
d1c7d770de 2024-08-24 nightly release (2553278bae5993bd94bae4f04bf4586fb3f30d57) 2024-08-24 07:33:42 +00:00
5ddb842eb9 2024-08-23 nightly release (255cd75a974389985a7a542be1455210a9c369e2) 2024-08-23 07:34:34 +00:00
ef01a09a2c 2024-08-22 nightly release (255cd75a974389985a7a542be1455210a9c369e2) 2024-08-22 07:33:52 +00:00
401217e3fd 2024-08-21 nightly release (c42ac54d9e817bf0a0366eb78e6c8beba4d5eff5) 2024-08-21 07:33:51 +00:00
02f175d628 2024-08-20 nightly release (92151c814ba715fe7d1f5648b0ae6950dceee6b7) 2024-08-20 07:33:41 +00:00
d6eae72783 2024-08-19 nightly release (ae000635700e78161e0ed1a18f62b5db4030e343) 2024-08-19 07:33:48 +00:00
748db193d7 2024-08-18 nightly release (b4a1673a6741e183856cf3503f0574d3ac881ce0) 2024-08-18 07:33:38 +00:00
77b78fab0a 2024-08-17 nightly release (12b8e29203dfb8f9c3b1a4c438aac4981a0899ae) 2024-08-17 07:33:42 +00:00
c89b05606e 2024-08-16 nightly release (29c4b4ea5a23ec41b98def0f50a0294c0bdc5c18) 2024-08-16 07:33:42 +00:00
0f8aad57ae 2024-08-15 nightly release (3965f118376a01382b0d1d3eea612188c4847ec8) 2024-08-15 07:33:46 +00:00
3a023a67c4 2024-08-14 nightly release (c2eeda5da0edfbb59673a229b085a80945514fc6) 2024-08-14 07:33:39 +00:00
839ac8af16 2024-08-13 nightly release (d4b31f7bcf962560768b1ee24a2ee5a1e914b8ba) 2024-08-13 07:33:53 +00:00
954b7d3faa 2024-08-12 nightly release (e7b870c88bc3b854a95399a96a274d2f1f908172) 2024-08-12 07:33:41 +00:00
22f2d2c094 2024-08-11 nightly release (a7912bf9dc39b934baf5e04b436cc2134776c10d) 2024-08-11 07:33:35 +00:00
db707c9b5a 2024-08-10 nightly release (05de2b2d0fd582e102f469e55a8a7212aef94a70) 2024-08-10 07:33:34 +00:00
94cf247e0e 2024-08-09 nightly release (bb6eef8ed1de0eb48bde10a07da57b6acc82fb05) 2024-08-09 07:33:42 +00:00
7d5462bfd6 2024-08-08 nightly release (ac6398b630db42570228b95ffbdeab12b7684357) 2024-08-08 07:33:49 +00:00
6d2050e0db 2024-08-07 nightly release (919e38424729fd9499f99a7d9e0ed994669954ef) 2024-08-07 07:33:45 +00:00
ed158d3e1a 2024-08-06 nightly release (345bea01dc69d9c31a4954c299767ccecd702d3d) 2024-08-06 07:33:43 +00:00
b9251a4598 2024-08-05 nightly release (c7cfa5172139737bf75afbd4a7920b1a02b1dcb2) 2024-08-05 07:33:44 +00:00
d6ea1eb2bc 2024-08-04 nightly release (6ec4af6865dd884f984c9dbcb273ae26e3825481) 2024-08-04 07:33:35 +00:00
0cf4254a75 2024-08-03 nightly release (419b76c4ac80c8b1c95120cd52db622333a3a688) 2024-08-03 07:33:43 +00:00
3974b13308 2024-08-02 nightly release (93979e70631ae90afe26c25ef620b311c9b6a8f5) 2024-08-02 07:33:37 +00:00
2beeb996cb 2024-08-01 nightly release (f0da167ce55ddbbe4f0138ed0f0804008069ddad) 2024-08-01 07:33:47 +00:00
e84a29505c 2024-07-31 nightly release (afb04d78c822bbad35b9c72cb21408525dc186f9) 2024-07-31 07:33:42 +00:00
ea5d26ff81 2024-07-30 nightly release (05a8540041cea936a63355c2e38b7b3beb5ce168) 2024-07-30 07:33:43 +00:00
0e29c08c0d 2024-07-29 nightly release (500aea8d5033fd3540c6ed325dd80e7e1420b0f3) 2024-07-29 07:33:36 +00:00
246f9c93b2 2024-07-28 nightly release (8f5cf464054a191c23219e49cc6e3203b2396cfb) 2024-07-28 07:33:36 +00:00
092902bbd4 2024-07-27 nightly release (28fd2e905da8484de38faf4e04073e896f7a95f7) 2024-07-27 07:33:39 +00:00
4e12f36799 2024-07-26 nightly release (58b8704f28f569fc08fadacc12830346251dd297) 2024-07-26 07:33:57 +00:00
46fcfc993e 2024-07-25 nightly release (14495ce28876e6c19733d32e07f913dba6b55771) 2024-07-25 07:33:39 +00:00
d3def8fd79 2024-07-24 nightly release (3aa45cae7750070c25e99fc49409ab311aa7db0b) 2024-07-24 07:33:43 +00:00
d9e6b14e89 2024-07-23 nightly release (406f510f89dd7561eec8da9321d8572bfad64e72) 2024-07-23 07:33:48 +00:00
13bc64a43d 2024-07-22 nightly release (c2425a3b572328c6c1fdadc080f8a83c6357f945) 2024-07-22 07:34:28 +00:00
571ca813dc 2024-07-21 nightly release (1d1d074072ecb0aa6ca95e3f43221d2275e16d74) 2024-07-21 07:33:39 +00:00
2c2b18cf11 2024-07-20 nightly release (7c299b46ca4d056835f7da0d6950939106469edb) 2024-07-20 07:34:08 +00:00
c0f37f35d9 2024-07-19 nightly release (367213a608528ee74e67e03bf11f775e263ef480) 2024-07-19 07:33:36 +00:00
5147aeb49a 2024-07-18 nightly release (874bbc53c9dfdf108e8a8af63109c06f9ff7f6e4) 2024-07-18 07:33:37 +00:00
bd12fbe652 2024-07-17 nightly release (7919f0b952272b83886021b172a8d56a893917ba) 2024-07-17 07:33:41 +00:00
4e39cdceb1 2024-07-16 nightly release (9ab8d47f9d27f6f4102e7786fcd604861d8e480c) 2024-07-16 07:33:36 +00:00
1c036b3ea4 2024-07-15 nightly release (6f275ae4d06b82a2b41a04516d793ad15d45955a) 2024-07-15 07:33:45 +00:00
c02ee0cb6a 2024-07-14 nightly release (f9f85bfc0b5b63274fa3fdd22afb0a456abf53f4) 2024-07-14 07:34:08 +00:00
e4e5c41b7e 2024-07-13 nightly release (d727e2f2d12c825879acbea10abb7b08bc8b0691) 2024-07-13 07:33:32 +00:00
f8279e35f3 2024-07-12 nightly release (18b7633bfbf859904222aad90006b54ae562766c) 2024-07-12 07:33:35 +00:00
a9a7d1e7ee 2024-07-11 nightly release (ceedee23ec2cec14d12c2edd106d9c239dae95a7) 2024-07-11 07:33:41 +00:00
0bf00552b8 2024-07-10 nightly release (007e75958fd2e822b5266df500cf791c14b92b62) 2024-07-10 07:33:45 +00:00
fc864dcf35 2024-07-09 nightly release (1e61cb8c871c876b6f8166d173dabd1440bda4f0) 2024-07-09 07:33:45 +00:00
32e74ed040 2024-07-08 nightly release (7128504424ca54311efdf22f2c8425291586860e) 2024-07-08 07:33:56 +00:00
1a71eb647b 2024-07-07 nightly release (7128504424ca54311efdf22f2c8425291586860e) 2024-07-07 07:33:39 +00:00
cb92c66e9c 2024-07-06 nightly release (7128504424ca54311efdf22f2c8425291586860e) 2024-07-06 07:34:09 +00:00
419de13620 2024-07-05 nightly release (7128504424ca54311efdf22f2c8425291586860e) 2024-07-05 07:33:46 +00:00
a532737602 2024-07-04 nightly release (9108b74bbc62eeb48e668ea67525445d01568c65) 2024-07-04 07:33:38 +00:00
6d35c780e0 2024-07-03 nightly release (3b77b122c5ce3033df1e1d541de2a3d420225c9d) 2024-07-03 07:34:19 +00:00
d7ee373e90 2024-07-02 nightly release (9ae78a578caff195821ad535a9e8d8ef59552142) 2024-07-02 07:33:46 +00:00
7b2cee6dc9 2024-07-01 nightly release (9ae78a578caff195821ad535a9e8d8ef59552142) 2024-07-01 07:34:15 +00:00
f28393cfc9 2024-06-30 nightly release (9ae78a578caff195821ad535a9e8d8ef59552142) 2024-06-30 07:33:39 +00:00
e0d8e538f0 2024-06-29 nightly release (a32ce5ce344b384ad4c6642895835c10ae7872c8) 2024-06-29 07:33:48 +00:00
364e6692f3 2024-06-28 nightly release (424068d0d22908294f2e0705d7227c37244b9319) 2024-06-28 16:02:35 +00:00
2f21c45513 2024-06-28 nightly release (d4b6ff6fbe31385ca9e5e299ff616203f5b4717d) 2024-06-28 07:33:37 +00:00
8b2405fd53 2024-06-27 nightly release (cdbd6542d015bae9b850602834c4f22e3001084b) 2024-06-27 07:33:34 +00:00
bde150a53f 2024-06-26 nightly release (90d5a6f001ef3ea40ef91ae20e050e39a6d550de) 2024-06-26 16:45:19 +00:00
4f096464a9 2024-06-26 nightly release (00f675bb4c2ec02bb5ffecfc75571026e220701c) 2024-06-26 07:33:42 +00:00
9e60d009a5 2024-06-25 nightly release (00f675bb4c2ec02bb5ffecfc75571026e220701c) 2024-06-25 18:29:51 +00:00
a215657b4a 2024-06-25 nightly release (00f675bb4c2ec02bb5ffecfc75571026e220701c) 2024-06-25 17:15:56 +00:00
2a0a69813f 2024-06-25 nightly release (00f675bb4c2ec02bb5ffecfc75571026e220701c) 2024-06-25 15:58:29 +00:00
1125d755bf 2024-06-25 nightly release (00f675bb4c2ec02bb5ffecfc75571026e220701c) 2024-06-25 07:33:37 +00:00
bbd0babd09 2024-06-25 nightly release (00f675bb4c2ec02bb5ffecfc75571026e220701c) 2024-06-25 04:25:54 +00:00
475c553dc8 2024-06-25 nightly release (00f675bb4c2ec02bb5ffecfc75571026e220701c) 2024-06-25 03:43:16 +00:00
f9a5736c12 2024-06-24 nightly release (17d1723aeeadbfc6d33c02ab56c5aacb8c671876) 2024-06-24 21:35:25 +00:00
9bb4dd8ceb 2024-06-24 nightly release (920ebccca2644881ece4f9e07b4a4b4787b8f2b1) 2024-06-24 07:33:38 +00:00
91c197583a 2024-06-23 nightly release (920ebccca2644881ece4f9e07b4a4b4787b8f2b1) 2024-06-23 07:33:47 +00:00
74ca07380a 2024-06-23 nightly release (920ebccca2644881ece4f9e07b4a4b4787b8f2b1) 2024-06-23 01:49:12 +00:00
cb859f172e 2024-06-22 nightly release (92ca17d85def4a62aee04fcea3576cd0c07a0554) 2024-06-22 07:33:49 +00:00
769190cb3b 2024-06-21 nightly release (63a724d8e1fd49e64e31879c8545b285d213efe3) 2024-06-21 07:34:06 +00:00
5996356b3e 2024-06-20 nightly release (19f3abcde45f686e3d270d41c2c919d7598cec19) 2024-06-20 07:33:34 +00:00
505ff10e75 2024-06-19 nightly release (99f042d336b53844b509406f1ecf78cb6f5e5714) 2024-06-19 07:33:50 +00:00
23e34b0716 2024-06-18 nightly release (c017c97333dfb9d17f2e5357980241827e50e8d5) 2024-06-18 07:33:38 +00:00
8410bf5cd1 2024-06-17 nightly release (f9dae86222aaf15ea085c7774da70781bae46ff9) 2024-06-17 07:33:46 +00:00
db04d3cd9e 2024-06-16 nightly release (6079c5091091d872b8dafbaa4e31a5b6194647ad) 2024-06-16 07:33:35 +00:00
d69902da7e 2024-06-15 nightly release (2d01f877373d3255fa8b77c714c2ca17d08e6126) 2024-06-15 07:33:36 +00:00
3d45df9a51 2024-06-14 nightly release (8c20f53a5e24209624670ecd39841bd71f38d11d) 2024-06-14 07:33:45 +00:00
4ecd3982af 2024-06-13 nightly release (d630e1e838e7416b6e27572a91407c4447a00734) 2024-06-13 07:34:39 +00:00
b5335bf346 2024-06-12 nightly release (86b5df3e71e6b786347ee5fa69daa054849bea2e) 2024-06-12 07:33:44 +00:00
c8e5a721d0 2024-06-11 nightly release (734e8f6ad7e7f0fa0341fb658f1f986225173f5f) 2024-06-11 07:33:40 +00:00
481ceefe2a 2024-06-10 nightly release (df43d5843edd9abd95d2c039670bce51375d9c06) 2024-06-10 07:33:37 +00:00
963d450511 2024-06-09 nightly release (f681e3689b857b8811f19d60d439bfb3fb2dd2d3) 2024-06-09 07:33:33 +00:00
6a855e6923 2024-06-08 nightly release (6e5c2a1a3bc9507ec459f3e01f5e492d8bef122a) 2024-06-08 07:33:39 +00:00
9f88f70e2e 2024-06-07 nightly release (65aa16f968af2cd18ff8c25cc657e7abda594bfc) 2024-06-07 07:33:43 +00:00
529bedad3e 2024-06-06 nightly release (ffaea656b5d8ff6518669494cc8f664b94f8e8b1) 2024-06-06 07:33:42 +00:00
d3551df158 2024-06-05 nightly release (3bcc3cddb580bf0f0f1958cfe27001f236eac2c1) 2024-06-05 07:33:52 +00:00
b94ddab65b 2024-06-04 nightly release (1208347d0912d1236ae43257e2914767e35c3b36) 2024-06-04 07:33:37 +00:00
1b6f0e0d5f 2024-06-03 nightly release (7e97b33fbbb24fa5876500be764c97f51b74ac0e) 2024-06-03 07:33:39 +00:00
074e4f1c80 2024-06-02 nightly release (c19ad112f65ab88af3eeb319dda0675c076b0b67) 2024-06-02 07:33:38 +00:00
70b03a1d35 2024-06-01 nightly release (121c55d8d12a878b12eab00a7cebae2e2fa47ee7) 2024-06-01 07:33:43 +00:00
4d012a7a2f 2024-05-31 nightly release (029af29e6d2a91bc8a6e15d445fec42a49c0454e) 2024-05-31 07:34:17 +00:00
0bbe39cc0e 2024-05-30 nightly release (d66f12674cfe0151a86dc10b8de216f83bf42e6e) 2024-05-30 07:34:02 +00:00
c35e8711f4 2024-05-29 nightly release (0ff2f8b52248323bbe25108b64e706c43390cb72) 2024-05-29 07:33:53 +00:00
4fbc2ec72d 2024-05-28 nightly release (0ff2f8b52248323bbe25108b64e706c43390cb72) 2024-05-28 07:33:37 +00:00
2995cdef9a 2024-05-27 nightly release (6aa5bb1a76dee8112f1a9e7c194c790b5cdc6462) 2024-05-27 07:33:37 +00:00
549167fcb3 2024-05-26 nightly release (ee6cb6daa173896f8ea1876266a19775aaa4f610) 2024-05-26 07:33:37 +00:00
99b987f154 2024-05-25 nightly release (ed838793dfb530273fec30ea64954333672794e3) 2024-05-25 07:33:32 +00:00
269ad139c7 2024-05-24 nightly release (cb6ef68caa22c1a2f7a4e8583c0e7c923c8bfd17) 2024-05-24 07:34:51 +00:00
534d4bbde2 2024-05-23 nightly release (4f14282e350a6c9a0a280083c286f7d672fa3ebd) 2024-05-23 07:33:35 +00:00
1aa713bf08 2024-05-22 nightly release (608a11c4963dbba86189286da4a0aa58c0779126) 2024-05-22 07:33:51 +00:00
3149d44669 2024-05-21 nightly release (31ba6ee49bdbd7dd6c2a3c77ad31cc46aec2049e) 2024-05-21 07:33:38 +00:00
2a8ecff0c9 2024-05-20 nightly release (5fb11cda4fe60c1a7b30e6c844f84ce8933ef953) 2024-05-20 07:33:39 +00:00
bca6d8b2fe 2024-05-19 nightly release (71b6459edc19dac02b6e559977a0f615bf451210) 2024-05-19 07:33:36 +00:00
b138ead39a 2024-05-18 nightly release (d4704dcacc543023e7a746263a970bef155d58c4) 2024-05-18 07:33:43 +00:00
7fa9edf793 2024-05-17 nightly release (da1fc85d60fcf0bd1e8638d643a7c0c6560c3a5f) 2024-05-17 07:33:44 +00:00
a86434a3ca 2024-05-16 nightly release (315389bfed3a0b29752997862e18681169ebd501) 2024-05-16 07:33:42 +00:00
e5cd7bea02 2024-05-15 nightly release (1485621ccbb5367936ba6da51ba896387416c353) 2024-05-15 07:33:42 +00:00
8ea7ef39bc 2024-05-14 nightly release (9a2beb862d9c30f037c9b2eac878ec3f9227a5e2) 2024-05-14 07:33:54 +00:00
708a49f3e2 2024-05-13 nightly release (1c3fe8403365db3cc9b75524ae742e3027b745e2) 2024-05-13 07:33:36 +00:00
2de26f12a8 2024-05-12 nightly release (02093b6c6ae1046368e2500881d0bb5880873386) 2024-05-12 07:33:45 +00:00
d4d98b914c 2024-05-11 nightly release (c1690a3e12dd4a748af9827e84dbe8fa5273ee51) 2024-05-11 07:33:39 +00:00
8d3ad715c8 2024-05-10 nightly release (fcbf2b61e6f40048ef0e6d77360c86771956cc9c) 2024-05-10 07:33:33 +00:00
8f863f5efd 2024-05-09 nightly release (ff090c693751f564f45951f1b13c11478892799d) 2024-05-09 07:33:46 +00:00
e1c37ce2c1 2024-05-08 nightly release (50073127b5e49b2b75a912d73a70ecb61890a32d) 2024-05-08 07:34:30 +00:00
e4f522910a 2024-05-07 nightly release (48b6c8dbc376db4406a979b35cd6909bcb428931) 2024-05-07 07:33:24 +00:00
3e7378d00b 2024-05-06 nightly release (fc183f0bdec30baa6686e13720adae077c332bdd) 2024-05-06 07:33:40 +00:00
1b7523fbe9 2024-05-05 nightly release (6d30803d64953955df63da56833bf4eb52249aae) 2024-05-05 07:33:44 +00:00
48aefeb4a4 2024-05-04 nightly release (d4727fd4ebd42936a1bae7b7f44ee9a038fd643e) 2024-05-04 07:33:42 +00:00
5969fe4abd 2024-05-03 nightly release (a40d6df448de1acb263ed8f6ff9e7d26f5a1a161) 2024-05-03 07:33:33 +00:00
267a1102f8 2024-05-02 nightly release (b03fb49ed8d812ceba3741432ac1f9de3bd1650e) 2024-05-02 07:33:34 +00:00
01c419df43 2024-05-01 nightly release (1c905f1be34683480a33e36104b8482442d7c1fd) 2024-05-01 07:33:43 +00:00
dca7af5889 2024-04-30 nightly release (e7846447e03d44baf4437cf122fb6e70b0c1d472) 2024-04-30 07:33:36 +00:00
afb4c766d2 2024-04-29 nightly release (cc06c00a56a78e3ecdc1b5618e1af4a1a2be7cd5) 2024-04-29 07:33:40 +00:00
34ade3521c 2024-04-28 nightly release (7478b7f1cac9686f00edf3db4667cf86d2421531) 2024-04-28 07:33:44 +00:00
9179db815b 2024-04-27 nightly release (5944a5355501cb45fac966d3cf4277cbc718eff1) 2024-04-27 07:33:41 +00:00
38547e9613 2024-04-26 nightly release (769b1e6cdca56ee91a61ee6b1502a9faa1819106) 2024-04-26 07:33:36 +00:00
734a000f16 2024-04-25 nightly release (13ab24f1923359cdfe795a32cdd3d753f940efbe) 2024-04-25 07:33:48 +00:00
c5b898e77e 2024-04-24 nightly release (b91f83f18139a6ed2626c30979a38e533d4c7d7c) 2024-04-24 07:33:44 +00:00
6d1c678c58 2024-04-23 nightly release (7706cd7d12781b8c537dd045745738d60c6c31f1) 2024-04-23 07:34:04 +00:00
0a3e5f5bad 2024-04-22 nightly release (b1984237a0fb32b760c1b84d6d02d2f0f7ed293b) 2024-04-22 07:33:34 +00:00
02b1ebb3dd 2024-04-21 nightly release (bad8d25881d850eaf0b326f6ce5c78305e38c001) 2024-04-21 07:33:29 +00:00
db26423735 2024-04-20 nightly release (bad8d25881d850eaf0b326f6ce5c78305e38c001) 2024-04-20 07:33:37 +00:00
ee5e704c78 2024-04-20 nightly release (bad8d25881d850eaf0b326f6ce5c78305e38c001) 2024-04-20 03:06:07 +00:00
e0c77fb573 2024-04-19 nightly release (c9db59e9e4d425f9d4e9f55247888c24b0d638e8) 2024-04-19 18:17:20 +00:00
dc9eea4365 2024-04-19 nightly release (4946638f06e5916ea9bd0f790ff620bdb78a92a3) 2024-04-19 07:33:36 +00:00
0a0cedaf40 2024-04-18 nightly release (9385ef2a5dbd62cb877e863c91ff29a43c340456) 2024-04-18 19:38:08 +00:00
d8b31eb548 2024-04-18 nightly release (14162eecfcb5cc11139260c034c653e972a9073a) 2024-04-18 07:33:30 +00:00
449c28cb0d 2024-04-17 nightly release (dd3cea3291346e66a870bbec51e4d1a3550300db) 2024-04-17 07:33:43 +00:00
871442ef61 2024-04-16 nightly release (67bd43b5106bed6365f1986229d7c32079653e76) 2024-04-16 21:06:16 +00:00
0b80497b9d 2024-04-16 nightly release (e4efa311f1c692813befc45142d668f35a66392b) 2024-04-16 07:34:03 +00:00
42cbe0248e 2024-04-15 nightly release (19f50333e91e9e8b20a78517becd74bca70c7d46) 2024-04-15 07:33:32 +00:00
e275bb87c8 2024-04-14 nightly release (88a71594933b2464d9d8b6b3533c5a945a4ac2ff) 2024-04-14 08:03:45 +00:00
99d3d33091 2024-04-13 nightly release (7e3f80f00f3995e335bd6313b8c4be998cc4e2cd) 2024-04-13 07:33:52 +00:00
19db4687de 2024-04-12 nightly release (868e5ced5df34f1aef3703654f76e03f5126b534) 2024-04-12 07:33:35 +00:00
ad9f88b232 2024-04-11 nightly release (793df52dc52f5f5f657744abfd7681eaba7a21f9) 2024-04-11 07:34:32 +00:00
4dae33d814 2024-04-10 nightly release (65710d95c9adcc166e4d4a19ac16b8d7516fc87b) 2024-04-10 07:33:43 +00:00
74f1665940 2024-04-09 nightly release (d8e0c26e642bf8e44cc6e8d46822d54957b1c660) 2024-04-09 07:33:36 +00:00
a3fc530d82 2024-04-08 nightly release (bb04f3f66a5b92f0bed3712689f57774f00db349) 2024-04-08 07:33:35 +00:00
903938e95d 2024-04-07 nightly release (e3ea31662334770bbbb6da4abd881abc875e04c3) 2024-04-07 07:33:34 +00:00
a4ae0b67c2 2024-04-06 nightly release (22b99871442fc3c78ec173894c017d6d98996501) 2024-04-06 07:33:35 +00:00
8f9cba17bb 2024-04-05 nightly release (d8717c2d68bc0a8bda7e8ad823a0d6c2d8aae934) 2024-04-05 07:33:29 +00:00
3d14e74ccb 2024-04-04 nightly release (669462817071d1badd88a832a7c38b9bafde2233) 2024-04-04 07:33:48 +00:00
9da0ebeb73 2024-04-03 nightly release (15bd81bfafa86fec9d675e7f071c867c852ebe8f) 2024-04-03 07:33:51 +00:00
16261ef1eb 2024-04-02 nightly release (4d5cdc2e1e62ec400f4355cb9d3b0d2b5af0fbf8) 2024-04-02 07:33:38 +00:00
e1c8416590 2024-04-01 nightly release (781e8d2201c1e2aaeccbbc7b7b13f9322b481bc9) 2024-04-01 07:33:45 +00:00
4af23dd2d2 2024-03-31 nightly release (35c493f2cf9b623bfdc7e6b34dc1cb39690a7919) 2024-03-31 07:33:39 +00:00
70a3132121 2024-03-30 nightly release (f4ff063c333f286d4384523bac67c047aca4d7b9) 2024-03-30 07:33:42 +00:00
2f5e4e1df7 2024-03-29 nightly release (3beb9d85a6501d8df5a89e2cc2d7cb0f8f94dbfc) 2024-03-29 07:33:31 +00:00
096c0ed5e4 2024-03-28 nightly release (12116aee6852df2b040255b8fcc7deb52b897792) 2024-03-28 07:34:33 +00:00
384cbf2346 2024-03-27 nightly release (f2c1060de3cdddbfefcab11e547211993d0f9cfa) 2024-03-27 07:33:38 +00:00
a166d4b816 2024-03-26 nightly release (5e66bf5f42104bc60a8e77b51c84a4cce81efdd8) 2024-03-26 07:33:52 +00:00
c18fcd604f 2024-03-25 nightly release (deeeaded1ff45d0e1e666e42cadf2026594b6426) 2024-03-25 07:33:31 +00:00
848a2e8f52 2024-03-24 nightly release (f0d461beacded34abe196c72ec4bcdb55bf01793) 2024-03-24 07:33:29 +00:00
bbafd43d86 2024-03-23 nightly release (c677221798d8ce87c97aac1bd9ae34af0767c383) 2024-03-23 07:33:27 +00:00
9efd8fed32 2024-03-22 nightly release (ef0d470eb372a5e68f6332bea9b1df26fca28b59) 2024-03-22 07:33:31 +00:00
cfaed59ce7 2024-03-21 nightly release (cc0cadaf4c76c91d19474a1a512c9bc31e2c8602) 2024-03-21 07:33:42 +00:00
90fdee15be 2024-03-20 nightly release (6b5259e50704aede43c87fed33f64224f9047087) 2024-03-20 07:33:56 +00:00
0e66636599 2024-03-19 nightly release (5bc7f7f97760d2d485621f9f30d0316e1f2440c6) 2024-03-19 07:33:41 +00:00
c823f7a4de 2024-03-18 nightly release (7380585d9755eaef95bec8994a12e1fc6510f81b) 2024-03-18 07:33:33 +00:00
ad27e5012d 2024-03-17 nightly release (6f74b7607207054c1f5331183ab725640c99fe8d) 2024-03-17 07:33:37 +00:00
c5774a585f 2024-03-16 nightly release (f0b9a8344a38d2e865d08f084138ac2911a66ad1) 2024-03-16 07:34:28 +00:00
285db4990f 2024-03-15 nightly release (e4fda049c2bfe5a2e3aa0228a3792de87b4f670b) 2024-03-15 07:33:35 +00:00
8ef78d58d3 2024-03-14 nightly release (5b90074540577267c29f5f784be123ee54f6491d) 2024-03-14 07:33:44 +00:00
2447af7e49 2024-03-13 nightly release (9f235971f02e0d53038f5bcef9b7018be2ac8c6d) 2024-03-13 07:34:36 +00:00
a9e4e9b51d 2024-03-12 nightly release (6ca9ae4f8693639c395544327f7e362441a58c79) 2024-03-12 07:33:34 +00:00
1a6ae7b963 2024-03-11 nightly release (f11f2b0d55b1aa322f73f4bb521beaf9d4563603) 2024-03-11 07:33:34 +00:00
715d399539 2024-03-10 nightly release (41286f1505ffb214d386d72e4b72ebd680a4a475) 2024-03-10 07:33:30 +00:00
ffcaab7876 2024-03-09 nightly release (d482614fec5fb9bccb49bf4ee4ab561e872c0f50) 2024-03-09 07:33:47 +00:00
55e9301321 2024-03-08 nightly release (953c6c37cbfcc894963120666dbf066977931885) 2024-03-08 07:33:57 +00:00
ce01333322 2024-03-07 nightly release (a2854ae904c55ebf19031ca6e883e5dcbb6a4a9a) 2024-03-07 07:33:32 +00:00
c992f0fc38 2024-03-06 nightly release (dad1b765848c4f52501c4c60b1c3e6fbd3cc8837) 2024-03-06 07:33:41 +00:00
65d5412d00 2024-03-05 nightly release (6566b3db677a6d3f2f90a3fcd4dd1dd2d9d0bfc4) 2024-03-05 07:33:46 +00:00
c652a65065 2024-03-04 nightly release (581fe26792849a80f04feaa7f8bdec69b7f41dd8) 2024-03-04 07:51:50 +00:00
0586ca040c 2024-03-03 nightly release (581fe26792849a80f04feaa7f8bdec69b7f41dd8) 2024-03-03 07:33:40 +00:00
de87c0a689 2024-03-02 nightly release (581fe26792849a80f04feaa7f8bdec69b7f41dd8) 2024-03-02 07:33:26 +00:00
4be1e6af8b 2024-03-01 nightly release (2e84d01d0576a31a6387e4ccc195f11449fb875a) 2024-03-01 07:34:16 +00:00
574ad2898e 2024-02-29 nightly release (f5b99976adcbb01fd71bd0a39ea15bdac6c9e48a) 2024-02-29 07:33:43 +00:00
c019093955 2024-02-28 nightly release (9c597ff137ead9f7f7ec8fdcbf473de2d328e61b) 2024-02-28 07:33:41 +00:00
738f032fb9 2024-02-27 nightly release (a1c641f11809c1f04e1027086f44b1b8f8427dd9) 2024-02-27 07:33:39 +00:00
29e2492945 2024-02-26 nightly release (834c7a1d3ea07878ad87d127ee28606fc140b552) 2024-02-26 07:34:44 +00:00
53f5035912 2024-02-25 nightly release (5c7b761f8e748fe45c8e2e29563df637ae651917) 2024-02-25 07:33:22 +00:00
ea9f12d7d1 2024-02-24 nightly release (79f059987eead42b9279e31e28ed6fd697630d36) 2024-02-24 07:33:36 +00:00
d25357d14e 2024-02-23 nightly release (36c1cc962aaef854d2388a5ecfde230d40bcc1d6) 2024-02-23 07:33:36 +00:00
f8fa3bf4c8 2024-02-22 nightly release (fff9d98e58cda4ad67fef6d0739f684ca7d4bbec) 2024-02-22 07:33:34 +00:00
fe8007dad8 2024-02-21 nightly release (becfda005e524f93b1efed64917a129ef6778135) 2024-02-21 07:33:33 +00:00
8efa066dc0 2024-02-20 nightly release (becfda005e524f93b1efed64917a129ef6778135) 2024-02-20 07:33:29 +00:00
b57318ddcc 2024-02-19 nightly release (becfda005e524f93b1efed64917a129ef6778135) 2024-02-19 07:33:31 +00:00
672f086ea7 2024-02-18 nightly release (becfda005e524f93b1efed64917a129ef6778135) 2024-02-18 07:33:26 +00:00
d70e8ef6c8 2024-02-17 nightly release (becfda005e524f93b1efed64917a129ef6778135) 2024-02-17 07:33:36 +00:00
0747ef0bfb 2024-02-16 nightly release (62e5840b36b6790a5008faa76a920c6d154897b9) 2024-02-16 07:33:25 +00:00
04a9a7cd1a 2024-02-15 nightly release (cd08dc37f831f7b7deabdc92893758de84c4d3d9) 2024-02-15 07:33:42 +00:00
9debfae3d5 2024-02-14 nightly release (16369816a2e1c298fe5d15a439e922d10eb1894b) 2024-02-14 07:33:29 +00:00
98d4762774 2024-02-13 nightly release (2502a011108b0592dd6dd34e5a61b2d52b95160e) 2024-02-13 07:33:27 +00:00
633abee414 2024-02-12 nightly release (dcb08a7044d986ceecd7252fdb2dd0e10501587a) 2024-02-12 07:33:37 +00:00
fede3c1a2f 2024-02-11 nightly release (3ab08946d5052eaeda11d683d6a58e801a032755) 2024-02-11 07:33:40 +00:00
8f9cff839c 2024-02-10 nightly release (42ca82dfb1eb133b287b881c346a0032c1c2a08e) 2024-02-10 07:33:28 +00:00
1396090c1f 2024-02-09 nightly release (930b60f5aa7e17402491900a545d96822796b638) 2024-02-09 07:33:28 +00:00
0b66915bb5 2024-02-08 nightly release (5f6b35915af98fac741998edb55aeeba4aaa3794) 2024-02-08 07:33:36 +00:00
3cbc8e89fd 2024-02-07 nightly release (d0ca849fdf9807e730f91ce8e86d126b241e0940) 2024-02-07 07:33:40 +00:00
7f3f3c3d68 2024-02-06 nightly release (12ac3ba383af99733ec23fcd53c7e29f70b68371) 2024-02-06 07:33:48 +00:00
e795fa298a 2024-02-05 nightly release (b8307513e57f8beaf99daff342a23d705a417e11) 2024-02-05 07:33:36 +00:00
68d3fec0cb 2024-02-04 nightly release (8f82a44a5beed0f205a7f273b9f062da43d65679) 2024-02-04 07:33:30 +00:00
6517e8e586 2024-02-03 nightly release (ce40ee8ecdfdecd48ffcec4fced35f16a77f268d) 2024-02-03 07:33:21 +00:00
aaafe2673d 2024-02-02 nightly release (08472a4fd55881260cbad8a15260528e6c4bee04) 2024-02-02 07:34:01 +00:00
671f5d2d7f 2024-02-01 nightly release (4cba1dd0c3e7f625856566ae00d89d8ee2e8b990) 2024-02-01 07:33:32 +00:00
e3133a2234 2024-01-31 nightly release (e3cde685340d2c5c752428b37449ba75f59488af) 2024-01-31 07:33:40 +00:00
1e875b454f 2024-01-30 nightly release (dcc077eea2f95a9d5caa65eeca4d8c73e207f61d) 2024-01-30 07:34:34 +00:00
4e2aa5dbb8 2024-01-29 nightly release (890d8e66925ff7bb1b765087ad921ebc1bdebf48) 2024-01-29 07:33:38 +00:00
4749337721 2024-01-28 nightly release (2ed0af2bdeb2a5e0df78b22eab04d468f8db239e) 2024-01-28 07:33:22 +00:00
8f8d7de630 2024-01-27 nightly release (fe10b1800f5df432532fc91e0d553a521ec53479) 2024-01-27 07:33:29 +00:00
b12247c7ad 2024-01-26 nightly release (0c5da6100f5426173a64da5873fb565553c8510e) 2024-01-26 07:33:42 +00:00
86adc78cb3 2024-01-25 nightly release (2d7a360911fb7b27be82c51ca86b4b34b6f1b087) 2024-01-25 07:33:46 +00:00
54fee3b5dd 2024-01-24 nightly release (26968cefb0f0ddf31650015c95bbc11e8eaf88ec) 2024-01-24 07:33:42 +00:00
01a5c71e1d 2024-01-23 nightly release (5ec2d7959d1ef1e8eeacc5e59bbf0f8b2dda1ea6) 2024-01-23 22:34:47 +00:00
6458e8cbc2 2024-01-23 nightly release (3708f2608e932b588ae7d73788b969cf83ece8e8) 2024-01-23 07:33:38 +00:00
72fcb9ad66 2024-01-22 nightly release (39df084001c54cca5fe3174176f9b0206ddb7dcf) 2024-01-22 07:33:42 +00:00
4f9be7c2d0 2024-01-21 nightly release (949a76a7f001cc4ec0d8e14071d264f35b5f8a8a) 2024-01-21 07:33:40 +00:00
ffb3d30801 2024-01-20 nightly release (15d568d62142f207734c29a370d6e7ce0e7753de) 2024-01-20 07:33:32 +00:00
5a2ff3fc7c 2024-01-19 nightly release (f302a0d380cf2a6e8c2ae7e67c6859503a038cf7) 2024-01-19 07:33:38 +00:00
2b31a65125 2024-01-18 nightly release (02c96f69493ebd06d940a778a2d3d89c660a7ce4) 2024-01-18 07:33:35 +00:00
7b9dec1bfc 2024-01-17 nightly release (735715e6d31fb4356cc203824e0600b5f5dcb433) 2024-01-17 07:33:39 +00:00
24569d3416 2024-01-16 nightly release (28bb31e4a588f3fa198e927439fe09c871201aab) 2024-01-16 07:33:45 +00:00
cb0c26e8d3 2024-01-15 nightly release (19502ff6aaba0bce823989783d01b996469482f9) 2024-01-15 07:33:37 +00:00
6c531039fa 2024-01-14 nightly release (38c18f382577ee4a5587fd1876d2e2b546d004b8) 2024-01-14 07:33:30 +00:00
aa962d8943 2024-01-13 nightly release (96163eb010d233f97f114257ac1066def0164769) 2024-01-13 07:33:29 +00:00
ff10016dc5 2024-01-12 nightly release (b62ba82cdc2123d5542b18c035d52d28aee5c01a) 2024-01-12 07:33:40 +00:00
1beb432db5 2024-01-11 nightly release (ca23c56efcda3a0037252272a88b78936a5a9187) 2024-01-11 07:34:37 +00:00
f8e4c22ee2 2024-01-10 nightly release (8bcdde5058658cc193c94a7f1eb16660553dc35a) 2024-01-10 07:33:36 +00:00
03969cb2d2 2024-01-09 nightly release (428807f9bcd9bb32e0369c6b9c6f12fa4a4080e9) 2024-01-09 07:33:44 +00:00
da46ac2bbe 2024-01-08 nightly release (57491d2046b7ddcdf5588dea3cc1dee6c1eb366b) 2024-01-08 07:33:33 +00:00
2f05263756 2024-01-07 nightly release (95041829c8a76755d22df9bd711f25781e57e223) 2024-01-07 07:33:39 +00:00
98e5582aab 2024-01-06 nightly release (ff0f79d3c7aff0f9dd83b3a48d09a61ac8e82621) 2024-01-06 07:34:01 +00:00
f1655ac7ae 2024-01-05 nightly release (39f885331394e6baea6220f7e22bf1cda17bc361) 2024-01-05 07:33:34 +00:00
b99446db6b 2024-01-04 nightly release (e2359f72c82a14a1e2c6f036528fa9418227eba3) 2024-01-04 07:33:30 +00:00
804969c7ad 2024-01-03 nightly release (ca4df16fddc79b816021dc863f26056559dcf5bc) 2024-01-03 07:33:41 +00:00
a87500edd6 2024-01-02 nightly release (1ed8efa9b35328df6f0e8dbfd27578dcfde58e60) 2024-01-02 07:33:36 +00:00
7003edfbb4 2024-01-01 nightly release (fc5fda14bcc41008e5610bf39c53eb066933ea4e) 2024-01-01 07:33:30 +00:00
b41958165d 2023-12-31 nightly release (4bfaa6bc250f5ff5702703ea237f578a15bbe3b6) 2023-12-31 07:33:41 +00:00
534a8bd9e7 2023-12-30 nightly release (97891b184c12763f335fbe1ff63fab843edafab5) 2023-12-30 07:33:34 +00:00
7d163a9861 2023-12-29 nightly release (ef94499ad7ff40fee8aa230d71cd109570b74405) 2023-12-29 07:33:30 +00:00
ef28de986b 2023-12-28 nightly release (6375eb15efa1273514695e468f68963feedc0067) 2023-12-28 07:33:31 +00:00
50f7a03676 2023-12-27 nightly release (9c3ae37fc453505f5e437d1edadefdb278c2c39c) 2023-12-27 07:33:33 +00:00
eb8dedaa36 2023-12-26 nightly release (f6dfbffb3bb46ada6fe66b5da4f989f9d4d69b3c) 2023-12-26 07:33:46 +00:00
b68f93b094 2023-12-25 nightly release (36dccc2aba61a2637aa5d42f38b6fd1fe10dcbdc) 2023-12-25 07:33:40 +00:00
1ed8e26791 2023-12-24 nightly release (6c419a0efdcfa8e262582795144102051b527f62) 2023-12-24 07:33:26 +00:00
c70de4e370 2023-12-23 nightly release (84b2a323594bc7c4b47d61223b3f6466fe054416) 2023-12-23 07:33:50 +00:00
b6723b1317 2023-12-22 nightly release (b47aa69685aa6e561d3ba0edaff84b7833b98a82) 2023-12-22 07:33:29 +00:00
9a70b79cdc 2023-12-21 nightly release (f2c1fb3ee40012ab17a0548dcbff509d6b1dbf39) 2023-12-21 07:37:07 +00:00
1ee7950847 2023-12-20 nightly release (3747aca49a39479c2c5e223b91369db5bd339cdf) 2023-12-20 07:33:30 +00:00
ba4c18f527 2023-12-19 nightly release (9dda4b20a0dcc4786a130c12fc3e4a6a1ecf23d8) 2023-12-19 07:33:30 +00:00
ad2706c6cd 2023-12-18 nightly release (87ea6fb84471c09795672de542622515f81af3d7) 2023-12-18 07:33:27 +00:00
a2940cd437 2023-12-17 nightly release (87ea6fb84471c09795672de542622515f81af3d7) 2023-12-17 07:33:25 +00:00
8bea527b1a 2023-12-16 nightly release (e3aefe297050e197ff3f36f555a134a0e61ffc9c) 2023-12-16 07:33:34 +00:00
a846296964 2023-12-15 nightly release (9056903b098bb9190aa7d08caf5dbf549c5ada3a) 2023-12-15 07:33:35 +00:00
41dd4009c9 2023-12-14 nightly release (f5458f8f00006e7ba25731de42d651c808ccd8eb) 2023-12-14 07:33:49 +00:00
f13a21cce5 2023-12-13 nightly release (0dad85b402c2068c76a61d7c1ddcb60767ca1ef7) 2023-12-13 07:33:46 +00:00
935bfdac27 2023-12-12 nightly release (fbb744fd496c9ee85bcb68e2ba956753e61f6f88) 2023-12-12 07:33:32 +00:00
2cf75d28fe 2023-12-11 nightly release (fe01605830145b5aa204120b90361021a2952ac1) 2023-12-11 07:33:52 +00:00
5da0a5dcb6 2023-12-10 nightly release (4eb5838e184d7f5a795498d32bdde17f0088350f) 2023-12-10 07:33:41 +00:00
7cbcaabb5f 2023-12-09 nightly release (2ed47fecc5b9c526be9cc3c9bab93ca1fdb81547) 2023-12-09 07:33:30 +00:00
742864de52 2023-12-08 nightly release (9521331ba5d081a27b92eea50e42ed5da3dd973c) 2023-12-08 07:33:40 +00:00
424d4406cb 2023-12-07 nightly release (7ec145bfed9813599a0a9dcacbc7aa881626af79) 2023-12-07 07:33:47 +00:00
01557064c0 2023-12-06 nightly release (a548e805364b01554c5e48553f6c779d0973f498) 2023-12-06 07:33:55 +00:00
f87b94dcdc 2023-12-05 nightly release (7843df60e41f856edb148bbcbb5b9aee8292db74) 2023-12-05 07:33:43 +00:00
a111e45dfe 2023-12-04 nightly release (3fbfa8cd0a5cefadb3f116c5cd0d60e96ab8c99e) 2023-12-04 07:33:35 +00:00
6fc9d89863 2023-12-03 nightly release (3a2e2044cd36c1c300039aa915863b3e74df396b) 2023-12-03 07:33:48 +00:00
d2edc8ce7c 2023-12-02 nightly release (0fef82b3dfb4a5da1555a3c046950594b83e2898) 2023-12-02 07:33:24 +00:00
56a830e765 2023-12-01 nightly release (9267ab903200ed2ba548de3fa8a7e59a972cf68c) 2023-12-01 07:33:33 +00:00
ef73b5c9a8 2023-11-30 nightly release (f1fe0b685c4b93a684f0461a7a8f331e9dd17506) 2023-11-30 07:33:31 +00:00
95cc39e7d6 2023-11-29 nightly release (48820c928ce1822565821db3e73d4ee79a2508a1) 2023-11-29 07:33:54 +00:00
5ae273f939 2023-11-28 nightly release (11f11e95df9c205d427fe4dd7e63c9adb91ea03f) 2023-11-28 07:33:39 +00:00
b2f25d6342 2023-11-27 nightly release (624f2025229312bffd725775760dc9b147cc32d8) 2023-11-27 07:33:45 +00:00
df0c1b3a93 2023-11-26 nightly release (d37c4c69954ad7bdccca96854105c48e93d4587e) 2023-11-26 07:33:34 +00:00
794fd233b4 2023-11-25 nightly release (0f5e24bda9450a89ba56d2fdd471f56d97fe4546) 2023-11-25 07:33:36 +00:00
88ca0cc13d 2023-11-24 nightly release (dad3cc4d026794ad3ec309f7ae38e9c3798ce34f) 2023-11-24 07:33:31 +00:00
7f6282544f 2023-11-23 nightly release (b27565ad7d07baed98df50b05f108e209a6f4755) 2023-11-23 07:33:39 +00:00
3164682468 2023-11-22 nightly release (e0ec71deab2aedd6d44f4ea3e03b52bdaf5db3da) 2023-11-22 07:33:47 +00:00
8b7f52e025 2023-11-21 nightly release (18e1a37c4e637370ad3ceee91cecffcfeb4b79b6) 2023-11-21 07:33:34 +00:00
53233b86d5 2023-11-20 nightly release (7963aaac4157c961c1d54033d1f2515d0c987360) 2023-11-20 07:33:50 +00:00
6f045ad045 2023-11-19 nightly release (870539670aff386d66b190b4749316e21d2ae56e) 2023-11-19 07:33:31 +00:00
07c9b95f45 2023-11-18 nightly release (5e307417548374bb40d754518d324efa5359e8aa) 2023-11-18 07:33:37 +00:00
0603dcb449 2023-11-17 nightly release (e8ee14292e83f065c9baf0530de17759134091ee) 2023-11-17 07:33:49 +00:00
690c805c8b 2023-11-16 nightly release (a3b859fc673515f74d103494e61b432c9cc9009f) 2023-11-16 07:33:45 +00:00
a5a404865c 2023-11-15 nightly release (6f4409073f9fad32016f18b3b083f959d7600a2b) 2023-11-15 07:34:19 +00:00
ec2f8fd2f1 2023-11-14 nightly release (ffc3731dc477c92c1daa764f55bab1692c6a6361) 2023-11-14 07:33:40 +00:00
a45a8bf9e7 2023-11-13 nightly release (ef49f61f1909c2feb717023a6b55d87ac9c70a04) 2023-11-13 07:33:54 +00:00
63a5a14da9 2023-11-12 nightly release (ef49f61f1909c2feb717023a6b55d87ac9c70a04) 2023-11-12 07:34:05 +00:00
f40306d6c4 2023-11-11 nightly release (ef49f61f1909c2feb717023a6b55d87ac9c70a04) 2023-11-11 07:33:22 +00:00
edbf22fa03 2023-11-10 nightly release (265d6aac0b71b917d6e36c5dd65c22f61644b715) 2023-11-10 07:33:54 +00:00
2c3ba6926e 2023-11-09 nightly release (fbf7866ac98258a8130e14de3021d3160bc28af3) 2023-11-09 07:33:27 +00:00
4060c20449 2023-11-08 nightly release (aa376e31fdc8aacc6bfe1de5f6bff1d5f4fad136) 2023-11-08 07:33:33 +00:00
291abc63c0 2023-11-07 nightly release (10a829b85d721a76ba436f2416d2d802aab6e9e0) 2023-11-07 07:33:58 +00:00
a04dd794ad 2023-11-06 nightly release (bd9be877e4459d7889e5e3c8051caaffdfe21c85) 2023-11-06 07:34:04 +00:00
2d7dd2e800 2023-11-05 nightly release (64f326097be8ac66ff057365f3bed2d64c697563) 2023-11-05 07:33:37 +00:00
a89fef7184 2023-11-04 nightly release (fb044e2b1783854da105c7166becb8cc37ac96c4) 2023-11-04 07:34:00 +00:00
fd56aa0dae 2023-11-03 nightly release (4a17693d193a8b23109ac3129e5cde92babfe191) 2023-11-03 07:34:11 +00:00
d2c3aa1fde 2023-11-02 nightly release (59869903b3a54acb3ac3a93470fc595d1de3fa7a) 2023-11-02 07:33:53 +00:00
e844d7ab04 2023-11-01 nightly release (748c1a1d81400cbb067c0e15c3769e137cce57f4) 2023-11-01 07:33:58 +00:00
7d93922ea8 2023-10-31 nightly release (2f09da3a21a1a49425424715ea3b3f4131392334) 2023-10-31 07:33:50 +00:00
07cc1132a9 2023-10-30 nightly release (919c9b713e65aa1489123259a0ce7e79322d4d9d) 2023-10-30 07:33:51 +00:00
0a16ad0f88 2023-10-29 nightly release (f5088d2e45787094e201fe82677c399ce456ef71) 2023-10-29 07:33:46 +00:00
c0e43d4625 2023-10-28 nightly release (31f605344f255faaef0aede0f98483f4cb09f072) 2023-10-28 07:33:53 +00:00
525a926aaa 2023-10-27 nightly release (c84dbd2c0393fed3e3d98030c85c30fbbfdc7c3e) 2023-10-27 07:34:11 +00:00
bf9fd89f63 2023-10-26 nightly release (2aaa7e542cb3b217e19284d10d0c0ae1e2df202b) 2023-10-26 07:34:07 +00:00
e6efc2915b 2023-10-25 nightly release (6e2dfb360b310a8676e96caa6550be083d72bd96) 2023-10-25 07:34:13 +00:00
a422515e75 2023-10-24 nightly release (0e0f6a248db4ff054655ea405211dddc8e7ab817) 2023-10-24 07:34:06 +00:00
88eb6bbb1a 2023-10-23 nightly release (c65c0682b19ed479ea66653fc0457958a3e2c59c) 2023-10-23 07:33:55 +00:00
f468e74875 2023-10-22 nightly release (bf01a7b023c1ce4deb6316d25eadc1791807e88d) 2023-10-22 07:33:53 +00:00
147ac6b312 2023-10-21 nightly release (c84c86f018aea9aa9065ba3d57be1fc9fec51f5a) 2023-10-21 07:33:47 +00:00
6ffe31abca 2023-10-20 nightly release (e24fdfa1774f2bb008865fe991458b51e2bfba1d) 2023-10-20 07:34:06 +00:00
707b7b8613 2023-10-19 nightly release (e3463fe4ca5c43542e0d01814d2a1e13fa7769b3) 2023-10-19 07:34:03 +00:00
8aa40192b2 2023-10-18 nightly release (543a763cd8b433fc5740ce2b9db15b98e83ed9c2) 2023-10-18 07:33:58 +00:00
d902c353e9 2023-10-17 nightly release (013b51f8cc6f973d85c5adb36d5c110b7d42c7a2) 2023-10-17 07:34:05 +00:00
6c94bfc7da 2023-10-16 nightly release (4a388e70f2c7fedcdef598fb2144cc593452f04d) 2023-10-16 07:34:06 +00:00
abcc3fadc8 2023-10-15 nightly release (48989bc820d4dfbc0d23ce6f4a3e3e7495f5b315) 2023-10-15 07:33:47 +00:00
2438ac174d 2023-10-14 nightly release (625a3b1a428a8fa844090a87161b346b6d59075c) 2023-10-14 07:34:06 +00:00
85ee879b6b 2023-10-13 nightly release (a2c17a2b00f7c41866bbde28d33b8c50e5632e01) 2023-10-13 07:33:55 +00:00
996af0de18 2023-10-12 nightly release (9316c8b4bc5e449705e945a3069f35b690d70140) 2023-10-12 07:34:02 +00:00
e96ca539bc 2023-10-11 nightly release (02f6a8126e6453d1f5fba585fa7d552f0018263b) 2023-10-11 07:34:08 +00:00
c5b255161e 2023-10-10 nightly release (468a73f0e3527c52495c864c7d48dc26684f6c0b) 2023-10-10 07:33:56 +00:00
97287ff394 2023-10-09 nightly release (92fea5ae3f5307b8ebf5e9cb123d971237f8bf03) 2023-10-09 07:33:57 +00:00
f90c2af43e 2023-10-08 nightly release (459cef86492cfcfb1ed4136c5d4e5002c1c647a3) 2023-10-08 07:33:47 +00:00
8fe3c302f2 2023-10-07 nightly release (90bf6e3938050fded2dfc49bae9e3207c7f00e04) 2023-10-07 07:34:05 +00:00
20217d1426 2023-10-06 nightly release (11047be10e0767721f3fcb8f3a4b412d1c4834a8) 2023-10-06 07:33:40 +00:00
439cba9277 2023-10-05 nightly release (62cad5b5b0f921e3822ec25b6d7ea4343f4cab21) 2023-10-05 07:34:00 +00:00
56af607c04 2023-10-04 nightly release (510ec7e3c539dfed49df587d09e8a0a87e187201) 2023-10-04 07:34:00 +00:00
4e30fa8231 2023-10-03 nightly release (f7909cb947727195a9c55adaea2f374d0374d84b) 2023-10-03 07:33:58 +00:00
4dae8b4963 2023-10-02 nightly release (06464a347754ef764c90948a74428c0bb8daf9dd) 2023-10-02 07:34:03 +00:00
8d78e808f9 2023-10-01 nightly release (2bcae75513e56bcc12494636b33f31ebd9c2548e) 2023-10-01 07:34:04 +00:00
e6fa795672 2023-09-30 nightly release (6b84658433861a68459adb67b3468a9eb064f0e3) 2023-09-30 07:34:12 +00:00
496a17caec 2023-09-29 nightly release (3dc479e70b3d41dd5b09e9cfef8f5a993c05626e) 2023-09-29 07:34:22 +00:00
fecde478ac 2023-09-28 nightly release (75462fd87024bfe9fb79f4c46ab689bec227caa7) 2023-09-28 07:33:53 +00:00
d7520d8668 2023-09-27 nightly release (869226bf947bad0c4ba740c7b56ffe38acdddf52) 2023-09-27 07:34:04 +00:00
ab61acc20c 2023-09-26 nightly release (ac60638c6c74149f05c7980f571afa6fe0661b0c) 2023-09-26 07:33:56 +00:00
cc697537b0 2023-09-25 nightly release (12cd776d902dea1ee3f0ef7980bea62ff64096d2) 2023-09-25 07:33:54 +00:00
24d07d104b 2023-09-24 nightly release (dee100945eec2285943433e63b0670140eed0d1f) 2023-09-24 07:33:49 +00:00
5d97502dc8 2023-09-23 nightly release (691f8ca4f4108d1c22403d9ef6688e04077d28b4) 2023-09-23 07:33:50 +00:00
90c406a3a1 2023-09-22 nightly release (8856c1628e8ddb3fe3bd51ed8cfef5c02ad0a609) 2023-09-22 07:34:30 +00:00
d8fd7f96b9 2023-09-21 nightly release (55685d57c004f250118fcccc4e99ae883e037e2d) 2023-09-21 07:34:27 +00:00
00ae5fa311 2023-09-20 nightly release (1b3e5b53f336e782d6706eb6e61ec363f2fb2c30) 2023-09-20 07:34:02 +00:00
8fd241588a 2023-09-19 nightly release (54c28c564f0f4da174358312a026398ebca5337c) 2023-09-19 16:20:32 +00:00
4d1773d0c5 2023-09-19 nightly release (98208e51603a27e4b88d933a7c7edc18aada4b9e) 2023-09-19 07:34:08 +00:00
ba087c0903 2023-09-18 nightly release (9e86a093e4c165e093cba38f88ceda97f5b5e3af) 2023-09-18 07:34:06 +00:00
0de25554e9 2023-09-17 nightly release (d860313903f21c26d10c2bdd3a9482466255b001) 2023-09-17 07:33:46 +00:00
78c95e1741 2023-09-16 nightly release (b904432e82933ebbd53fd29910df532f15838176) 2023-09-16 07:33:56 +00:00
4a4af8fb1c 2023-09-15 nightly release (bf5622e9650c8dab77ccabc2fffe600bbdfc0b5b) 2023-09-15 07:33:48 +00:00
5c903fb12c 2023-09-14 nightly release (e066056414aef696265e14bceb54392d4965da99) 2023-09-14 07:34:04 +00:00
2baa4c4928 2023-09-13 nightly release (e066056414aef696265e14bceb54392d4965da99) 2023-09-13 07:34:07 +00:00
7b14f0ff8f 2023-09-12 nightly release (8025b193a966a6d8e3afc9c03a54e577bc04eb3d) 2023-09-12 07:34:01 +00:00
8ef4b6af4e 2023-09-11 nightly release (8ff00360a4daab7848307a9a0b1c81b1da873d0c) 2023-09-11 07:33:55 +00:00
3316374d14 2023-09-10 nightly release (8ff00360a4daab7848307a9a0b1c81b1da873d0c) 2023-09-10 07:33:53 +00:00
11d2c766f1 2023-09-09 nightly release (d4230e55748c66c72e7a17b1cd08540b742b20a5) 2023-09-09 07:34:00 +00:00
806d1a871d 2023-09-08 nightly release (4965fffedad8f7f4d333a384d3b046b029395de5) 2023-09-08 07:33:56 +00:00
0200b1106c 2023-09-07 nightly release (35974234c4f811e28a4a74852d2245ec4d044c2f) 2023-09-07 07:33:56 +00:00
a618118ba9 2023-09-06 nightly release (ce4967ad180bcdc1e89d1c0db4bf63dac8a44b6a) 2023-09-06 07:33:58 +00:00
9ea5b31c6f 2023-09-05 nightly release (51c2e22e94caf56ac89967093b274ac81c7ca9e2) 2023-09-05 07:34:17 +00:00
cf9eb00513 2023-09-04 nightly release (621463a3e6b488b2bff04e355a1abd9a4c5bb2cd) 2023-09-04 07:34:04 +00:00
ea7e229735 2023-09-03 nightly release (e5548f81956157e1fdb76cb52579bffe5915dee1) 2023-09-03 07:33:55 +00:00
753f5a11bf 2023-09-02 nightly release (4084d039b7a4b6e55ee6ca05f2789d7ed03b9d73) 2023-09-02 07:33:56 +00:00
73c794dadc 2023-09-01 nightly release (4a9c6f1b731e86b1d4fe31c6753ce7efdc522efa) 2023-09-01 07:33:43 +00:00
b5b99fe13b 2023-08-31 nightly release (0e4752bafc24755893bd1657c42d8937c275ce74) 2023-08-31 07:34:12 +00:00
b3874abf04 2023-08-30 nightly release (620d267ef30b199e0ba1b37407dcf8670448fb6a) 2023-08-30 07:34:16 +00:00
8c68466304 2023-08-29 nightly release (e68b3ad14f9598334a97c1aff15408e1d8f09002) 2023-08-29 07:34:27 +00:00
2c3aa09cde 2023-08-28 nightly release (138e2895d08a6517c5718b2a0118c1b23ff4664c) 2023-08-28 07:34:02 +00:00
f54acf0991 2023-08-27 nightly release (bad3f2db40ffa491181fc7df5dc310830326d9ec) 2023-08-27 07:33:51 +00:00
c0a66455c0 2023-08-26 nightly release (95cacb7fa97881b7e830d1ee0bcb4729b50632c0) 2023-08-26 07:33:53 +00:00
91bde862b2 2023-08-25 nightly release (e00bd8312440ad121cba8acc12935de4f1d947fc) 2023-08-25 07:34:11 +00:00
b48a2494be 2023-08-24 nightly release (2fcda650cf29301e86dd21a5ceabc0f31fa4e3d3) 2023-08-24 07:33:58 +00:00
62d3bf32fd 2023-08-23 nightly release (83517c8dba012b6b68eafe8f6296db97fe26fa3e) 2023-08-23 07:34:14 +00:00
1d3bf3da21 2023-08-22 nightly release (8ed169b1628285924e10fc98de53dbb75c92c43e) 2023-08-22 07:33:57 +00:00
a65b4aa3e4 2023-08-21 nightly release (11602ac564c0e3178b38a65e09be13644322d303) 2023-08-21 07:33:59 +00:00
4ce227bfb9 2023-08-20 nightly release (11602ac564c0e3178b38a65e09be13644322d303) 2023-08-20 07:33:50 +00:00
668af07501 2023-08-19 nightly release (3ddf30505f8f03bd98e6ff418d7389ba69d8043b) 2023-08-19 07:34:05 +00:00
bac60d8896 2023-08-18 nightly release (3c3874d623b2d2ddf7c666f099ae8d014c7dcca1) 2023-08-18 07:34:16 +00:00
3522f2a7b7 2023-08-17 nightly release (e9af315e02d42ca2075972212e1c5e644620901c) 2023-08-17 07:34:14 +00:00
3af011b858 2023-08-16 nightly release (6c0bba3dafde888777a07e395a6e731c1fa51c26) 2023-08-16 07:34:04 +00:00
e4d5143f8c 2023-08-15 nightly release (2624da638d989c902ef9e1a5cff6028ab816605c) 2023-08-15 07:33:49 +00:00
53551b5c87 2023-08-14 nightly release (2b1058c54273a73ed407f2a6495063e9ef18b54f) 2023-08-14 07:33:54 +00:00
3748ee4a8c 2023-08-13 nightly release (ddd2f682b974fa274771965266c2bc0786f1e747) 2023-08-13 07:34:05 +00:00
c9397a7bc8 2023-08-12 nightly release (5b04e9b6cea2be600e81d111a5e407296522ec8e) 2023-08-12 07:34:02 +00:00
422297f87f 2023-08-11 nightly release (4df84c3b4d93ea53c9ca169f32a0dc4619bee797) 2023-08-11 07:33:53 +00:00
a099ff75d3 2023-08-10 nightly release (dfd441a12cede6702d1fd160eb808778b62adae0) 2023-08-10 07:33:59 +00:00
abe3687720 2023-08-09 nightly release (6691413145b71f20221ae77cb2c5d98b2f3213eb) 2023-08-09 07:33:59 +00:00
c01a41cdec 2023-08-08 nightly release (5f551133dc6dc670705281eb3dcbb6ac0dba9a4b) 2023-08-08 07:33:38 +00:00
5e438d59cd 2023-08-07 nightly release (e35cb480f4df1cf440b8705c93546c1b15891a4b) 2023-08-07 07:33:37 +00:00
a8638d61c8 2023-08-06 nightly release (68cb854d73458a14684d584c25c22b17eb79dfca) 2023-08-06 07:34:09 +00:00
be75ecac1b 2023-08-05 nightly release (dc22b4fdb1b4af1f0b7b77a78b30237d337d7109) 2023-08-05 07:33:43 +00:00
4734e4d60f 2023-08-04 nightly release (aaa989c24451259aff4f0b70070bd7ab8380944d) 2023-08-04 07:33:55 +00:00
f89c73be3a 2023-08-03 nightly release (a6f7dd4707ac116c0f5fb5f44f42429f38d23ab4) 2023-08-03 07:33:39 +00:00
c89b169177 2023-08-02 nightly release (92cac6bf32afabed6de8551196fea1f81a27f65d) 2023-08-02 07:33:54 +00:00
1d1670186a 2023-08-01 nightly release (ceea08a986805030014fac203d5b2411e23ff091) 2023-08-01 07:33:46 +00:00
6298ac688f 2023-07-31 nightly release (3c70d4bda785106b7d55738befa36ff46c596068) 2023-07-31 07:33:55 +00:00
0ff243ff35 2023-07-30 nightly release (858ca65c8a3a8b730426690fcbdfb28e9626eda8) 2023-07-30 07:33:53 +00:00
b638df0afb 2023-07-29 nightly release (f160a972aa7ef2db508dbd233246f6dc61643d88) 2023-07-29 07:33:47 +00:00
eb5cb724fe 2023-07-28 nightly release (e31855d0d6cefe18ca4ee9f74b24d3ed5fbfcffb) 2023-07-28 07:34:14 +00:00
8a24a912a5 2023-07-27 nightly release (707aadeedd081714060e51cee279abaea6305a98) 2023-07-27 07:34:08 +00:00
964a13b3df 2023-07-26 nightly release (8d9c8897eddf53b01ce760ff9ae9ec9e4c2c08b5) 2023-07-26 07:33:43 +00:00
153afbda4b 2023-07-25 nightly release (98956c5320534cb66fd0dd69bc632122e16adba9) 2023-07-25 07:33:59 +00:00
ba1da8199b 2023-07-24 nightly release (54a673bdcf52a36603fcc56dceeef9f5afbd9e62) 2023-07-24 07:33:45 +00:00
a060bf3cf0 2023-07-23 nightly release (45e4706aff4cb92addda329576fcf9e4dc2e772c) 2023-07-23 07:33:38 +00:00
b5222f140d 2023-07-22 nightly release (0ad93a3d5684c2026bda8ff4ab7c72c6596a225b) 2023-07-22 07:33:35 +00:00
f228c8b8ca 2023-07-21 nightly release (a01a7329548e579ba894ac016670296cf96a6802) 2023-07-21 07:33:56 +00:00
a16c87a767 2023-07-20 nightly release (2e81cdc1ddbb07dead5b32a6fbf1514a118ac208) 2023-07-20 07:33:38 +00:00
82e03ad957 2023-07-19 nightly release (9c225c9b9a07eedaede9c27c74188181184fb022) 2023-07-19 07:33:53 +00:00
5e128c4fa1 2023-07-18 nightly release (ad6dad810e871da3ec9d19f1ec0f11a7b62fca03) 2023-07-18 07:33:49 +00:00
6ebf7bd6ab 2023-07-18 nightly release (ba00b0939ea82ec7607dfa8c0b4bd468f4f3bf31) 2023-07-18 00:03:13 -07:00
c437a4b1e0 2023-07-17 nightly release (93f852f201b93ca0c41b5cd861834d4f1f235ef7) 2023-07-17 00:03:38 -07:00
c69b6e5da6 2023-07-16 nightly release (e3c4f2fb59837808756f76c23f1fb29afa40ce9d) 2023-07-16 00:03:36 -07:00
6db8e8b9b7 2023-07-15 nightly release (028536646499abbb9cfce672a3ff7a91f1511e2c) 2023-07-15 00:03:16 -07:00
d257917ad4 2023-07-14 nightly release (a66f08d6265c9800ca00ee5f0a8a626f89e0374b) 2023-07-14 00:03:58 -07:00
fccac344df 2023-07-13 nightly release (0faf8ed49f9da63d1b5339f152586ffd7cde3e83) 2023-07-13 00:03:17 -07:00
e571f87e89 2023-07-12 nightly release (979f826015cbd2b353f02e93865a9b9a8877b414) 2023-07-12 08:10:34 -07:00
927dc66238 2023-07-11 nightly release (63d1fb21f56d9b91dd4080b04276d4cc461224fa) 2023-07-11 00:03:32 -07:00
69565763c8 2023-07-10 nightly release (54f33265dba0d0782febe8bf8029efb2d0b29ac1) 2023-07-10 00:03:45 -07:00
9b5a84f544 2023-07-09 nightly release (dd6c38cb596199d70bba76688c99ed919d77002d) 2023-07-09 00:03:30 -07:00
3a919e00b8 2023-07-08 nightly release (dbc22168008711f68775e9d5b159295527a9f108) 2023-07-08 00:03:20 -07:00
760dafbb05 2023-07-07 nightly release (a358a9262e4b8c7280d1817ac73f24a1bf383da6) 2023-07-07 00:03:28 -07:00
72404877d3 2023-07-06 nightly release (13763f58ad86fadf49ef7960d1836318e6480d36) 2023-07-06 00:03:23 -07:00
758c84d41f 2023-07-05 nightly release (ea4d5c45385233af6be36aa50a6945ee9c704b74) 2023-07-05 00:03:30 -07:00
e5472fd3c3 2023-07-04 nightly release (2a21469a77a53a066a299225a3d4ddd60693e7a6) 2023-07-04 00:03:21 -07:00
7682252cac 2023-07-03 nightly release (9f7ad25c987b8b69ff3a0c2aabd55a7c032de7d5) 2023-07-03 00:03:20 -07:00
d33f3a7547 2023-07-02 nightly release (707d265db2dc1eeb8a1b95bc70def5a1e5af7752) 2023-07-02 00:03:23 -07:00
bb3df0bb7c 2023-07-01 nightly release (1de1bea60d96c75403beaa13b1ce80d0ea6ccdbd) 2023-07-01 00:03:41 -07:00
dc72046b23 2023-06-30 nightly release (89decc3a10137838cf4f7400af034645d52684e0) 2023-06-30 00:03:23 -07:00
7bc858743e 2023-06-29 nightly release (998c07799f22a0bb63a39c84d15eae29778631f4) 2023-06-29 00:03:27 -07:00
94ca800459 2023-06-28 nightly release (28d42e66e418f655fdca45c53d4e09d095e7e182) 2023-06-28 00:03:30 -07:00
43ec335ff2 2023-06-27 nightly release (968b7b5e0f892f993c65f8a365fb2df99359f09c) 2023-06-27 00:03:56 -07:00
176a02ed90 2023-06-26 nightly release (58feefa4ede4779d339d76b78b0e0a3de7d47212) 2023-06-26 00:03:58 -07:00
3bebfdfbab 2023-06-25 nightly release (86e0eda18d3665b9db6ea075cc3586210f4116c3) 2023-06-25 00:03:35 -07:00
27b3861096 2023-06-24 nightly release (63f66d19ea8973563edbb48c8887d2e6b4931408) 2023-06-24 00:03:56 -07:00
ad724c83fb 2023-06-23 nightly release (5a97c947c69dd248fb60eba6c8d1913720dfe2af) 2023-06-23 00:04:57 -07:00
d46b579c85 2023-06-22 nightly release (58d11159bd9bdb4db70901821bcae4ce13160284) 2023-06-22 00:03:25 -07:00
e4cf441a4b 2023-06-21 nightly release (f3c3d12efb363f61ca9d68ed9e55f345f1a7e388) 2023-06-21 00:05:18 -07:00
e928f55884 2023-06-20 nightly release (d4b85f3031b81ea9f0e53502ad3b831fb91ec39b) 2023-06-20 09:45:27 -07:00
2aa882f2ad 2023-06-20 nightly release (2d745b95d723641e575027bd4e2fff612f61cc8f) 2023-06-20 00:03:38 -07:00
5beeb400ca 2023-06-19 nightly release (2d745b95d723641e575027bd4e2fff612f61cc8f) 2023-06-19 00:03:41 -07:00
59c654a6ad 2023-06-18 nightly release (2d745b95d723641e575027bd4e2fff612f61cc8f) 2023-06-18 00:03:48 -07:00
a522f9aedd 2023-06-17 nightly release (2d745b95d723641e575027bd4e2fff612f61cc8f) 2023-06-17 00:04:09 -07:00
1b5af9c097 2023-06-16 nightly release (2d745b95d723641e575027bd4e2fff612f61cc8f) 2023-06-16 00:03:22 -07:00
0d4f9aee90 2023-06-15 nightly release (2d745b95d723641e575027bd4e2fff612f61cc8f) 2023-06-15 00:03:37 -07:00
487d6c278b 2023-06-14 nightly release (876161983d353f7553755a58b927762f09c86966) 2023-06-14 00:03:21 -07:00
246b53d588 2023-06-13 nightly release (45104cb67f5e0591bc246edb71f6771f95317cb7) 2023-06-13 00:04:05 -07:00
8aee9489c9 2023-06-12 nightly release (8a744c31d3c5194b4850869a112d94912c1e08b4) 2023-06-12 00:03:26 -07:00
ec23ae5ad4 2023-06-11 nightly release (03101a227f6639d5a9ad628d1dc300f9f99a8812) 2023-06-11 00:03:16 -07:00
dd69d6251a 2023-06-10 nightly release (0496d70aa076143aabde9ee0a010dcccb882eaa9) 2023-06-10 00:03:43 -07:00
b6ab779111 2023-06-09 nightly release (4cc474dec4c55fc11ee92e7c9366946744e60cdd) 2023-06-09 00:03:55 -07:00
c1406a99df 2023-06-08 nightly release (d5142c52d3592e4a5777834be80b276ed1073012) 2023-06-08 00:03:58 -07:00
6226b7d098 2023-06-07 nightly release (428bff842dbeb4bbef245b7c4355f8c76a4bd1b3) 2023-06-07 00:04:54 -07:00
4d648e450b 2023-06-06 nightly release (872fdb329b75c832c2cd1314b3613e28289d8fac) 2023-06-06 00:09:17 -07:00
7a5da81822 2023-06-05 nightly release (881307abcfd8fd229fa521098597f4becb2d6c86) 2023-06-05 00:03:25 -07:00
810edae513 2023-06-04 nightly release (992bffe5a3f030ac75152fcda4bdc6c8d7539962) 2023-06-04 00:05:41 -07:00
7726721661 2023-06-03 nightly release (39b04370db85313efe23966d04499970a882415c) 2023-06-03 00:03:32 -07:00
52c7a761c5 2023-06-02 nightly release (1ca2e993af6fa6934fca35da6970308ce227ddc7) 2023-06-02 00:03:32 -07:00
a14be7981b 2023-06-01 nightly release (bebb8b7c1e6f3baf35c00d2a9265a285b4e439a8) 2023-06-01 00:03:57 -07:00
4855233864 2023-05-31 nightly release (e7cc41772d65010749beab7734d29e32d1a7b494) 2023-05-31 00:03:46 -07:00
9148727f45 2023-05-30 nightly release (0e72ada9bba2693e55fd7177ab4d2af826d7d15f) 2023-05-30 00:03:31 -07:00
4316d8495a 2023-05-29 nightly release (af1d437654aa7fd5aa4a5d30ae2f2e9af34c7765) 2023-05-29 00:03:35 -07:00
3dedcb31fc 2023-05-28 nightly release (c3ea8cc58beec343fef8ec69c409e0b83e60a8e9) 2023-05-28 00:03:43 -07:00
c914be2d44 2023-05-27 nightly release (26f53bb8b0dfeb633fef405595bd4f30ffbf437b) 2023-05-27 00:03:26 -07:00
10b46f7c7f 2023-05-26 nightly release (fb468b6792213e0d8e6221b3bb51e71fcadbed30) 2023-05-26 00:03:28 -07:00
eb2ef134b4 2023-05-25 nightly release (3ca068bc44440e780298d250f295d2b68a8a9ae3) 2023-05-25 00:03:47 -07:00
41917f7d92 2023-05-24 nightly release (45843c7f41374d6d0f76050febc72582a650b472) 2023-05-24 00:04:57 -07:00
981d4c2578 2023-05-23 nightly release (8cab7994a6e92b9b37e324be493c04e4660dc330) 2023-05-23 00:03:25 -07:00
871fc7bb76 2023-05-22 nightly release (e9a7115605ee5b6ae38ea5716a4abea5aa415333) 2023-05-22 00:03:31 -07:00
1c938577d8 2023-05-21 nightly release (9e8da7fb44d190677d0e455bd0a85053311c27e2) 2023-05-21 00:03:38 -07:00
aa43e0d245 2023-05-20 nightly release (0c6f409cdad073e8c64ef11b72c41d89ab7ee167) 2023-05-20 00:03:16 -07:00
61239df555 2023-05-19 nightly release (f66d5dd788b4f9f09790c705afe64f377624c621) 2023-05-19 00:03:32 -07:00
329bb2a33e 2023-05-18 nightly release (900ca4df595fbd7370534cec9d4a0f781667dfd0) 2023-05-18 00:03:41 -07:00
174d01bc93 2023-05-17 nightly release (41d668c9dcad40589609efab899131f0acd188f1) 2023-05-17 00:03:24 -07:00
ed0910596d 2023-05-16 nightly release (799ef7e501003ef988e23a724789c0dbbd304ebb) 2023-05-16 00:03:32 -07:00
f3e13d9567 2023-05-15 nightly release (7dd8e08817ee59c926922409062e25f30408469b) 2023-05-15 00:03:40 -07:00
7a20f535c0 2023-05-14 nightly release (674e52b0b913d7b7f733ce1e73a42cb383860d55) 2023-05-14 00:03:16 -07:00
d6e2903b44 2023-05-13 nightly release (387b369ee4d0d94b616254e26e43ab16a30d83f4) 2023-05-13 00:03:15 -07:00
1a3d3669ef 2023-05-12 nightly release (e98d762f21083775598e7c1d96b2b9f6b10ea9d4) 2023-05-12 00:03:39 -07:00
6166b3dd77 2023-05-11 nightly release (da02ccc60e225c3150e695ddf724799dac961806) 2023-05-11 00:03:31 -07:00
b204f65758 2023-05-10 nightly release (b004c0b3c6a1ee39ba0b512a00d95e7f83852556) 2023-05-10 00:03:45 -07:00
6cbfabc45f 2023-05-09 nightly release (75e4214f92059aa3ab2931e31ace63f598ebec25) 2023-05-09 00:05:18 -07:00
9a8c655956 2023-05-08 nightly release (7d0e4e2aa843ef5d73646f5b304914d2b65db93c) 2023-05-08 00:03:36 -07:00
3a5c9bb5c8 2023-05-07 nightly release (ca9f55f79d944672cb93157836f8ee92f54d2e10) 2023-05-07 00:03:25 -07:00
cf05864b32 2023-05-06 nightly release (f73973d789a14afe9fde4640c767f2da0b547076) 2023-05-06 00:14:18 -07:00
ccace360e0 2023-05-05 nightly release (bf52d570d9be0167501cd6a206b7e262e6d3860c) 2023-05-05 00:03:25 -07:00
1b6d6e98fe 2023-05-04 nightly release (9bc68fcd25798553e311d8562fe3a1c5a450feb3) 2023-05-04 00:03:34 -07:00
664ac1ebd2 2023-05-03 nightly release (771a9debbe8cc1bbc41e1f9b8759971ae20f09d2) 2023-05-03 00:03:41 -07:00
d97f26abcb 2023-05-02 nightly release (ff297223641ae336c421994a9d650bbb72798c0c) 2023-05-02 00:03:51 -07:00
f38a04a5c5 2023-05-01 nightly release (e779a30d5097714acea011da6a554e43810b5d0e) 2023-05-01 00:03:22 -07:00
572ef38a2f 2023-04-30 nightly release (6c934a89a725fd5d171b52a37cbc58e198edf4d6) 2023-04-30 00:03:28 -07:00
6d1cfc04be 2023-04-29 nightly release (3d55bce3bf5fe5cb0d654ecb48100eeac1d2dfa0) 2023-04-29 00:03:24 -07:00
4fecad50d3 2023-04-28 nightly release (54c0edf6da01c5ded74fe67e834b3c6869d5e5f0) 2023-04-28 00:03:30 -07:00
521b386e57 2023-04-27 nightly release (e0bf51d3bf2cf4c8272708f78b72572d81efd0a2) 2023-04-27 00:03:25 -07:00
a977a12ca5 2023-04-26 nightly release (0b1b063158e35be06e488e29a302ef28932b083b) 2023-04-26 00:04:52 -07:00
015e4ddb72 2023-04-25 nightly release (ecd2c71871f8bf9a9fa4a4d875609b0922061a6f) 2023-04-25 00:03:17 -07:00
287a30305a 2023-04-24 nightly release (48d112c431fc988de5473d3992f6c72ec5f02a6b) 2023-04-24 00:03:20 -07:00
1b3ac4a14b 2023-04-23 nightly release (ebd47b0eec9af20b238a72860dfc08c0bf250fdb) 2023-04-23 00:05:36 -07:00
f85810f9fc 2023-04-22 nightly release (ca8625f45662e5d451d1da928b223e47d79ce5fa) 2023-04-22 00:03:25 -07:00
8aa785fa2b 2023-04-21 nightly release (51742a467d1714afb6715af92c4459160eb71fb4) 2023-04-21 00:03:24 -07:00
aef7b6b424 2023-04-20 nightly release (95ca8e589d8aaa614619e4dcd89c569cf0ad8dea) 2023-04-20 00:03:30 -07:00
b206fd2f6a 2023-04-19 nightly release (8e69879209330089fdd8f2cd48769dc467c7d036) 2023-04-19 00:03:07 -07:00
ffa6fefab6 2023-04-18 nightly release (436edc5ac3de4c4e677ed136473bafe72002cc93) 2023-04-18 00:03:24 -07:00
584d16f2f2 2023-04-17 nightly release (efc3887ea508b3cfd94603fd8afe4e8cf6dce7b7) 2023-04-17 00:03:23 -07:00
fea73cb39e 2023-04-16 nightly release (039faf0dbf75c8e6bb3c097c1b8d257eebb74c45) 2023-04-16 00:03:27 -07:00
ba53e304d4 2023-04-15 nightly release (e9be0b0fb93c271ba3deb31b5ccc8f4c4f602ef9) 2023-04-15 00:03:09 -07:00
30a9757c80 2023-04-14 nightly release (cd078d376e833c4da3b8a6b03447614501178e9b) 2023-04-14 00:03:21 -07:00
3e5bc3f6bb 2023-04-13 nightly release (ccc9a3d726b1f249daffa442460b70fb50a0ee2e) 2023-04-13 00:03:28 -07:00
84ec5d9b1f 2023-04-12 nightly release (6ff32b5575abf07ebee74c9e17fc5113d5dd0652) 2023-04-12 00:03:28 -07:00
61007ca987 2023-04-11 nightly release (d4ce045cfcf2d7cacd0b90d7ea625f6fa82d566b) 2023-04-11 00:03:18 -07:00
b8423c1370 2023-04-10 nightly release (96fb64a1599f3e1679baa9db16f71c8a854577c7) 2023-04-10 00:03:15 -07:00
e60d9b7507 2023-04-09 nightly release (54b168484d8463a6f38737751ab5ac78777fa6a6) 2023-04-09 00:03:15 -07:00
f3a098a55a 2023-04-08 nightly release (d255c8e1ad332a2ded0ff1595b63d50034c473ee) 2023-04-08 00:03:14 -07:00
83b1c515f4 2023-04-07 nightly release (616f50da3aa8c0616cf93f1d92f31044aa5123f8) 2023-04-07 00:03:22 -07:00
a86aae1504 2023-04-06 nightly release (9c7b03d51e097c40abdb9ef55ce79b98d7f1fd48) 2023-04-06 00:03:13 -07:00
73b995ec2d 2023-04-05 nightly release (2d9b2bcfba7eaf9aa30e05df4ff51fa9f3241e9e) 2023-04-05 00:04:29 -07:00
5fa1402662 2023-04-04 nightly release (c5963b779281e2b7dfba1b2fc0e6628c1622f7e4) 2023-04-04 00:03:17 -07:00
3b8052d979 2023-04-03 nightly release (5d62d1255778b53ece16c79fd842cd42eca31f93) 2023-04-03 00:03:10 -07:00
5775e1c1e6 2023-04-02 nightly release (7fcff01b50d6a3a94a181a5b452455e8a82efad3) 2023-04-02 00:03:04 -07:00
63f61a66b0 2023-04-01 nightly release (57c6f3fe90bccfed878b301c2d61bf42270c5b52) 2023-04-01 00:03:04 -07:00
f08dd7d0f7 2023-03-31 nightly release (3dc440527817b065fa5cb652467921c9514cdd1c) 2023-03-31 00:03:21 -07:00
f6aae5043e 2023-03-30 nightly release (af0264ae084359c8042194f5e15070aafb430677) 2023-03-30 00:03:19 -07:00
f1f0a4f064 2023-03-29 nightly release (91166ef7e75fc5fb94fb56ec6679a1744cf0f28c) 2023-03-29 00:03:21 -07:00
81558034b3 2023-03-28 nightly release (c1a6dde79e5517ba3f71dcd4b9ff8f00e0cd881d) 2023-03-28 00:03:26 -07:00
cb970ea2e5 2023-03-27 nightly release (542fb0b1fad6bf61929df16e2133e9a296820f08) 2023-03-27 00:03:29 -07:00
c9ed10c377 2023-03-26 nightly release (dc45ad702466e4a73d972d3e1dc0c12ed80d2eef) 2023-03-26 00:03:18 -07:00
13581257b1 2023-03-25 nightly release (2e8086b0a157dbe922a588fed15edc31c8faf802) 2023-03-25 00:03:16 -07:00
333a93ff4d 2023-03-24 nightly release (763c5a33e70113253e5861ee6d185ea343acf286) 2023-03-24 00:03:19 -07:00
d3b915155a 2023-03-23 nightly release (c5b65032aca9af04ce9d261bc29ff7f063b00748) 2023-03-23 00:03:18 -07:00
00891e96e8 2023-03-22 nightly release (f9a9a888128625969be1ff6effca9df74a55432c) 2023-03-22 00:03:31 -07:00
8c8491fe4c 2023-03-21 nightly release (d2f57229969d1758369a15a71740a94f5baa2cd6) 2023-03-21 00:03:32 -07:00
4d3baf684b 2023-03-20 nightly release (5471621497ea0068bd453d251bf5ec2621e8119f) 2023-03-20 00:03:23 -07:00
422a1d3b9a 2023-03-19 nightly release (c1214ce5c26fce541a920bdf9917c9ca9f63ecb0) 2023-03-19 00:03:16 -07:00
21b32e8b01 2023-03-18 nightly release (b132220309add1748f4548b88d7a947c19322ff9) 2023-03-18 00:03:06 -07:00
fb9db7dccf 2023-03-17 nightly release (cbd3df93c4a4b5d8a3244be9fbfa68e2b06bb836) 2023-03-17 00:03:19 -07:00
e262e404bd 2023-03-16 nightly release (3606f593665f2dc3ad0877db4f5df69a6c31cf2f) 2023-03-16 00:03:27 -07:00
4f7cbd0a3a 2023-03-15 nightly release (c6a82e433924b4d36fd571d36ce363cb1c622c76) 2023-03-15 00:03:27 -07:00
b5e03345ec 2023-03-14 nightly release (2cc8368af369c6c3d930ca9ad85c7124e4809509) 2023-03-14 00:03:11 -07:00
eb17fc7b11 2023-03-13 nightly release (be220690d9d8b7e8d58b81694c6cbf0958f94845) 2023-03-13 00:03:17 -07:00
1238ae3e39 2023-03-12 nightly release (82d3d053b9cf439a1970d788a7809cdc30142626) 2023-03-12 00:03:14 -08:00
cf353b03fd 2023-03-11 nightly release (f3fc4d035d8fc1ed560ade0c8b8eff6be1c95972) 2023-03-11 00:03:08 -08:00
c54ce93106 2023-03-10 nightly release (065de4301200117c65607b213322cbde800b50f8) 2023-03-10 00:03:08 -08:00
820eb13ecf 2023-03-09 nightly release (fe05266fda4f908130dea7cbac37e9264c0429a2) 2023-03-09 00:03:09 -08:00
47cb44946c 2023-03-08 nightly release (3a4275278b265f02e9d5fa336074d27b908dd1ea) 2023-03-08 00:03:24 -08:00
24e305c3c6 2023-03-07 nightly release (7038458c5b47eda626e9d535f792f1f4611c5675) 2023-03-07 00:03:12 -08:00
d7e5a324d5 2023-03-06 nightly release (02792ff16f4934ccd837c28df437de460273432c) 2023-03-06 00:03:05 -08:00
98e5a7eaf1 2023-03-05 nightly release (af8dbe7ec2b32492589bad1eef4ed72be81646f9) 2023-03-05 00:03:17 -08:00
f1d60f5872 2023-03-04 nightly release (43dd043ea79cd427aa40f1910da63da96e8363ec) 2023-03-04 00:03:07 -08:00
a9a8c5ea9e 2023-03-03 nightly release (53c9866ffa8baa7b7070901ce74704e0771bb05b) 2023-03-03 00:03:07 -08:00
5bdd05400a 2023-03-02 nightly release (62b775583f008effc510e5f5c3e2b30a85a53465) 2023-03-02 00:03:20 -08:00
f09ed1d3c2 2023-03-01 nightly release (21b1134be690bdf338689ed0da287e772e8fd859) 2023-03-01 00:03:19 -08:00
341911ad3e 2023-02-28 nightly release (58648822b640dc11d196f7060d968b2c38fb3351) 2023-02-28 00:03:13 -08:00
1e2e6e78c6 2023-02-27 nightly release (6624a73837bee5b59f01bdd4d2f0d5619bd3ab1f) 2023-02-27 00:03:21 -08:00
3313e86c03 2023-02-26 nightly release (a88bfc60c75d22a047f03787aaa43130c6a8d6d9) 2023-02-26 00:03:10 -08:00
f64b61f58c 2023-02-25 nightly release (f5cf1a8b434a39576f8f49f4ebb32741de5cb9c1) 2023-02-25 00:03:17 -08:00
dbde255a2c 2023-02-24 nightly release (6665fe9e65548ba01cb232b965af4d64a49fb46b) 2023-02-24 00:03:19 -08:00
2a2c29b984 2023-02-23 nightly release (cece63f1976464f3c48b5563d8a59888566d0897) 2023-02-23 12:55:17 -08:00
5a6cf2804b 2023-02-20 nightly release (286d821e61e29de8fd6c81abd78b84fea5a44c0b) 2023-02-20 00:03:06 -08:00
66f63bd56f 2023-02-19 nightly release (a17a7ccc92144452e0fe51e02f21f1f1ba88118a) 2023-02-19 00:03:06 -08:00
844f9f697e 2023-02-18 nightly release (e44737e61975c49b20fa176e77c012b626c5f331) 2023-02-18 00:08:44 -08:00
fe66daafaf 2023-02-17 nightly release (766d51b496bb85feab4b0f23977b4ffc0a0e354b) 2023-02-17 12:30:53 -08:00
9c72352263 2023-02-17 nightly release (5d1e9fd214fcd8bbc95e9f8dea69df8dd17bf92e) 2023-02-17 00:03:19 -08:00
5fe2e6ac60 2023-02-16 nightly release (07bc6b958768af3462095eea7af2cbc7b395b972) 2023-02-16 00:03:03 -08:00
de1114554c 2023-02-15 nightly release (c10acb834d73f399589ce08a9fea1e4520a8c02c) 2023-02-15 00:03:08 -08:00
e67dc17b06 2023-02-14 nightly release (d567df9f36094e1efa89d11599067773f45032c8) 2023-02-14 00:03:15 -08:00
8397282212 2023-02-13 nightly release (6fadd5e94a273d62ac3f245a7615f818b6a33500) 2023-02-13 00:03:07 -08:00
52df37a117 2023-02-12 nightly release (67d979098567fd61dfdb918d837426535eb9883b) 2023-02-12 00:03:02 -08:00
00a8867aba 2023-02-11 nightly release (948cd61afc90e1b9067b35d4aec4ec74deeb73f6) 2023-02-11 00:03:09 -08:00
54ad459fb0 2023-02-10 nightly release (336d9354d655e52c575d070fc53eaccbebc94cd2) 2023-02-10 00:03:18 -08:00
34d2472fc0 2023-02-09 nightly release (cb715c26e270759e3955968fbd3d763d51b0b83d) 2023-02-09 00:03:07 -08:00
cb47373166 2023-02-08 nightly release (61ecaf1dd40ba93dde11249bd8ee64274098d3d7) 2023-02-08 00:03:11 -08:00
1530b798ce 2023-02-07 nightly release (d493bc8a764f65c140e73d7a6e9d20abe519a9b0) 2023-02-07 00:03:12 -08:00
0a73b08b9f 2023-02-06 nightly release (9350bcf6ae9d646389a0a4345c48275d4f9e4d1a) 2023-02-06 00:03:02 -08:00
6a03ad6a34 2023-02-05 nightly release (1d53123f44e2d5f08e4605af353b7d32b62346ae) 2023-02-05 00:03:01 -08:00
3b05e02983 2023-02-04 nightly release (adde6fd25eec0bd5ebe304ca08a9d57ba64d10d5) 2023-02-04 00:02:59 -08:00
df9abf685b 2023-02-03 nightly release (732a865c1bf2382a75f531d5907d18dd9bb0c4c9) 2023-02-03 00:03:13 -08:00
bf27152a8a 2023-02-02 nightly release (569f2e3228efeb1f8571e96d8f3ec835239e9c0e) 2023-02-02 00:03:05 -08:00
2e6952fa58 2023-02-01 nightly release (79db5bcc9d3febad00e5a2234b44c7db87defdab) 2023-02-01 00:03:07 -08:00
b2690c3cea 2023-01-31 nightly release (2a6e08570442c8fcbad6659e074c226809b1ed22) 2023-01-31 00:03:05 -08:00
3a7bab55b2 2023-01-30 nightly release (e790281a85fe3693fc1d38bf0e2c6e874d5e10b0) 2023-01-30 00:03:07 -08:00
d6c87398e2 2023-01-29 nightly release (7cc91f4002cb5dd3290318a967fb1e830d812666) 2023-01-29 00:03:10 -08:00
5d6a4f697c 2023-01-28 nightly release (ca8f5e177a1e0781b4a9e376c34d3ef9b934a454) 2023-01-28 00:02:59 -08:00
6cbac32dc7 2023-01-27 nightly release (661800a2cf0a4251c48a50fce8599c4c5fc49be1) 2023-01-27 00:03:02 -08:00
8181f12af5 2023-01-26 nightly release (0a57a20c02132577a48f5283ffbdf04257af1dbf) 2023-01-26 00:03:01 -08:00
83e8426fa4 2023-01-25 nightly release (4bc0491752b6d891c5bb33a3d18c5da7334fc6df) 2023-01-25 00:02:59 -08:00
d0e7a12a39 2023-01-24 nightly release (2a8669c54cb29bf42692185340fd68f341ac65ef) 2023-01-24 00:02:57 -08:00
6f611c5030 2023-01-23 nightly release (20bf77f9bd3cd7cb4da758afb58042e2980ee6ba) 2023-01-23 00:03:12 -08:00
284677213e 2023-01-22 nightly release (ed07070a11802dd561995c20e89d33cc986de2fa) 2023-01-22 00:02:58 -08:00
f960e5c8ae 2023-01-21 nightly release (1af40d5108ee5ddd408eed8115ce3abf6512149c) 2023-01-21 00:03:09 -08:00
d7b0db060c 2023-01-20 nightly release (620846c8b4f00f58dbd8b62746ec8e4328552b58) 2023-01-20 00:03:12 -08:00
65d7b967f8 2023-01-19 nightly release (de459bdfaa44a25565d4c4eedda49906feb6d993) 2023-01-19 00:03:04 -08:00
69dbc7dca8 2023-01-18 nightly release (00fe63d1d8c5c6411e093fa4388dc98c3683d236) 2023-01-18 00:03:34 -08:00
fbc4086458 2023-01-17 nightly release (0388400f3f8a8ecae2f809ba40ca3ddd5a8b9028) 2023-01-17 00:03:09 -08:00
a4dd47e06e 2023-01-16 nightly release (85e0fd0280948a342a916429448fed2486e82aa5) 2023-01-16 00:02:55 -08:00
868797ac1f 2023-01-15 nightly release (d41b5d7c145f3e09c7223c2b707933266241ec9b) 2023-01-15 00:03:08 -08:00
c202ddde8d 2023-01-14 nightly release (b8057aa16d376eefe081d852335541e2a7609c40) 2023-01-14 00:02:59 -08:00
06f81fdbf8 2023-01-13 nightly release (fbbb19599a1d162e5927542ed251fd2ba63d5163) 2023-01-13 00:03:32 -08:00
a0c46f5ab8 2023-01-12 nightly release (5766764d6cf9b14380c1b6ef5c2fe5392722e37b) 2023-01-12 00:03:08 -08:00
466be3f2ad 2023-01-11 nightly release (364f526b9cdf9818a7647b5e637efdee825d61a1) 2023-01-11 00:03:02 -08:00
971b1d38ec 2023-01-10 nightly release (b0f359a3c99041d9c87e700dccd0f22e73f40e1d) 2023-01-10 00:03:00 -08:00
65ff52a53b 2023-01-09 nightly release (73e5379fab05c40ff6f42500309cdc17ee57548c) 2023-01-09 00:03:08 -08:00
fac4361e84 2023-01-08 nightly release (73e5379fab05c40ff6f42500309cdc17ee57548c) 2023-01-08 00:02:56 -08:00
253e5c9744 2023-01-07 nightly release (faed4db4971af151e3dba7233ae49f9c0149dc18) 2023-01-07 00:03:12 -08:00
143e944699 2023-01-06 nightly release (33547bb58745a5deedaa36ca4e9363413f803e12) 2023-01-06 00:02:56 -08:00
1b52ceea52 2023-01-05 nightly release (d6bd67f2ebebb840ecf9d1c7c70653c900e6ee96) 2023-01-05 00:03:01 -08:00
caaf948ae3 2023-01-04 nightly release (80394bb73423bb849f46a7a9ffc55ebf478b8639) 2023-01-04 00:02:54 -08:00
74c03b46ae 2023-01-03 nightly release (2b52db9c953d063db7b46c12f4df35b47aca4381) 2023-01-03 00:03:05 -08:00
680efdb840 2023-01-02 nightly release (f6136331244fbe680ccc03d3bd5c5d9a71933d9f) 2023-01-02 00:03:05 -08:00
ede810cc26 2023-01-01 nightly release (f6136331244fbe680ccc03d3bd5c5d9a71933d9f) 2023-01-01 00:02:59 -08:00
733de4dc1d 2022-12-31 nightly release (73436af43fd84891b6765f4d1e5eeb0073a10a11) 2022-12-31 00:02:58 -08:00
a52fb6c041 2022-12-30 nightly release (9710ac653157dee780c33bf3080568076ce69a7b) 2022-12-30 15:03:00 -08:00
f8dcaca1da 2022-12-30 nightly release (6f034dc0b09a96c50421cf92ddb8709c59d95edf) 2022-12-30 00:03:12 -08:00
7edb2ee6a4 2022-12-29 nightly release (3d8834bdbf7f5da1163fd7ac543728779b557d29) 2022-12-29 00:02:58 -08:00
5abc365268 2022-12-28 nightly release (2e79d46708fb53c1a92bf0c2840d47a39e13e400) 2022-12-28 00:03:06 -08:00
4ada512fc4 2022-12-27 nightly release (3f4e87beaf67ec44d609605777d9da9e65cfbdd9) 2022-12-27 00:03:00 -08:00
9c156524e8 2022-12-26 nightly release (3f4e87beaf67ec44d609605777d9da9e65cfbdd9) 2022-12-26 00:02:58 -08:00
fac2cc8b24 2022-12-25 nightly release (5725a440806e7d75ad4fdea2c63d1a0a2fd004af) 2022-12-25 00:03:01 -08:00
3416c23868 2022-12-24 nightly release (5725a440806e7d75ad4fdea2c63d1a0a2fd004af) 2022-12-24 00:03:07 -08:00
7277d5a8f0 2022-12-23 nightly release (b95e1d76a86b7b66f0946f72ebd33889bfc19e03) 2022-12-23 00:03:12 -08:00
7919ae96db 2022-12-22 nightly release (6cea4f3d57927b30c3fc0a2f7103684fde0c75ea) 2022-12-22 00:02:55 -08:00
5837a6683b 2022-12-21 nightly release (5d37890b8eb952560f22b1b8ff661a024bf4b6d9) 2022-12-21 00:03:00 -08:00
8b450f6934 2022-12-20 nightly release (d6dd2e97da619319a103d1061290fe33ce33b6a4) 2022-12-20 00:02:58 -08:00
1ae3ad540d 2022-12-19 nightly release (9ca41a986c902f9db44ff04ca87a07238627d020) 2022-12-19 00:03:10 -08:00
e2c1293373 2022-12-18 nightly release (e2377c8300c578d648aac3bff6f96cdfce4308de) 2022-12-18 00:03:06 -08:00
8726996125 2022-12-17 nightly release (e689c509222a2dbc4796bcf32625193b9ea13c49) 2022-12-17 00:03:08 -08:00
2bd3fbe2e6 2022-12-16 nightly release (4372dbb89f457a0aa90f22d27f1468442a2a51bd) 2022-12-16 00:03:08 -08:00
1902ca9d53 2022-12-15 nightly release (670efb974af056fc3f46b48225581351b047eb4d) 2022-12-15 00:03:10 -08:00
971c769d42 2022-12-14 nightly release (769392178a8da6aab1bf82a09c9b105ea3dd6778) 2022-12-14 00:02:55 -08:00
3612f8bd54 2022-12-13 nightly release (7498e23bd52f049071500d443a18e6e5382c87b1) 2022-12-13 00:03:12 -08:00
008d7ee616 2022-12-12 nightly release (b95ea4f1494dacf86b5789f5466025b1fac1f2bb) 2022-12-12 00:03:01 -08:00
e220581718 2022-12-11 nightly release (6845598617ab75920dc1d4fbba9475bf64148bd6) 2022-12-11 00:02:56 -08:00
6e83e0b5d7 2022-12-10 nightly release (0457020d2ccfcb34262e2d46a3a4dbbdba5772a2) 2022-12-10 00:03:03 -08:00
8ce9be6212 2022-12-09 nightly release (b4c27c86b71c41bb44a804d8c6a7d466fb4d8baf) 2022-12-09 00:03:00 -08:00
9a7b94fa1f 2022-12-08 nightly release (bc93454e4a51f85f6c8603309bed7bd6de84385a) 2022-12-08 00:03:08 -08:00
c8ee46c764 2022-12-07 nightly release (26d1dbc4f85be7c5dc03c865e9bc092d83f7f2f0) 2022-12-07 00:02:57 -08:00
d80585d52d 2022-12-06 nightly release (05ccbd6d94c25fc26d30d2f60081924ce5bc973f) 2022-12-06 00:03:01 -08:00
ba7543762b 2022-12-05 nightly release (4648baa91155718642937ec27b04196fde846566) 2022-12-05 00:03:10 -08:00
b23c765574 2022-12-04 nightly release (9a1c6fd50664a46f0bacac92a10bcc26f307fadb) 2022-12-04 00:02:54 -08:00
ea0a17f785 2022-12-03 nightly release (9a1c6fd50664a46f0bacac92a10bcc26f307fadb) 2022-12-03 00:03:05 -08:00
82ab7407b3 2022-12-02 nightly release (cf3c3f22804be6909e54fc09e07f891ab0886774) 2022-12-02 07:14:00 -08:00
203213d3bf 2022-12-02 nightly release (f623b123f00358936932e103131bb6e3fc8ea685) 2022-12-02 00:03:06 -08:00
d8006fa84d 2022-12-01 nightly release (b399acd2dd755d7184538a58f933fbd48593c158) 2022-12-01 00:03:03 -08:00
30b87f46b5 2022-11-30 nightly release (12f98f85bc7effd48f4728dcaba6362c8b2dd697) 2022-11-30 00:02:57 -08:00
c528648f56 2022-11-29 nightly release (2b522670d2840522e0eeb87afec7f1956eaa8748) 2022-11-29 00:02:58 -08:00
77d59b2eab 2022-11-28 nightly release (db1f1144f1303db45e0b9d96e4bb6bdd87c80e5a) 2022-11-28 00:02:53 -08:00
f8506fb341 2022-11-27 nightly release (39449ea61d9a6644731687219282f610cbf7cf54) 2022-11-27 00:02:54 -08:00
21825b268c 2022-11-26 nightly release (591dfffa38848de54b7f5f4e49260847024c9281) 2022-11-26 00:03:03 -08:00
b8162a48b9 2022-11-25 nightly release (95ea47ef0c1cffe1fe05cc36bdc47c26cc72f13e) 2022-11-25 00:02:59 -08:00
c60a6bb340 2022-11-24 nightly release (903ae4570e401e5c4e42dc4a44cae37f805044a4) 2022-11-24 00:03:00 -08:00
db1da1f2ca 2022-11-23 nightly release (52669534438db3d680def4c70cb03b7e27566d7e) 2022-11-23 00:02:57 -08:00
f44ba7d75d 2022-11-22 nightly release (40cf214f2d18b3b8af5354ddc5dad8156ea32520) 2022-11-22 00:03:06 -08:00
e290a47a82 2022-11-21 nightly release (1856fa5df7fda9950da26eff2ef885e845bf6b6c) 2022-11-21 00:03:03 -08:00
89e792c046 2022-11-20 nightly release (6afe341276f9ffa660446c5fa15b68558791869a) 2022-11-20 00:02:54 -08:00
3806b657b7 2022-11-19 nightly release (419ef2cdcfe84442de5232739284c6a51a18632f) 2022-11-19 00:02:50 -08:00
d7eadde6dc 2022-11-18 nightly release (6f609dd0e03e11395cc637a34abd68472e5a1e12) 2022-11-18 00:02:52 -08:00
0015b0d515 2022-11-17 nightly release (c3acb9c8859fb5cfa1959ee49849f07942c40ccc) 2022-11-17 00:03:02 -08:00
0662e90840 2022-11-16 nightly release (e2f0648750f2d0d0ac648728ce4c514db178cfa1) 2022-11-16 00:03:15 -08:00
b5ea3fd1ef 2022-11-15 nightly release (73d71ae3d62607f2e480af37c470375ea405eb1c) 2022-11-15 00:03:36 -08:00
b7c4176df3 2022-11-14 nightly release (06486cd0087200e08ebb8a9518e064251c7c5309) 2022-11-14 00:03:41 -08:00
637228bcc4 2022-11-13 nightly release (46796fe5e9b74602d45927304773fdcda1c3215a) 2022-11-13 00:04:06 -08:00
580b16fa9b 2022-11-12 nightly release (7c3adddd6c3fe1bda4a9e5bfb9f992a802329551) 2022-11-12 00:03:49 -08:00
aeacdaed41 2022-11-11 nightly release (a6d72f44a4e8b6e9d2e878f30fd8b1d3e1197f0e) 2022-11-11 00:03:54 -08:00
e02bd6d2e4 2022-11-10 nightly release (e87c79ca0cbab476a7d09853b5830b615a62f679) 2022-11-10 00:03:05 -08:00
3b29687f0f 2022-11-09 nightly release (a7420d2ccb62d005f2e1853cfef8d25eb7748a90) 2022-11-09 00:03:19 -08:00
93f15b1b54 2022-11-08 nightly release (ed97e0aa2918e687309ee9a146c8294aefb237d2) 2022-11-08 00:02:58 -08:00
d6f7b88fc6 2022-11-07 nightly release (eda247ee6ce2f8bc29d86ec94f3863f929a2ea6e) 2022-11-07 00:03:09 -08:00
027d0aef88 2022-11-06 nightly release (0e3031f7e76fbd84e62650642dc334c11cc3c511) 2022-11-06 00:02:53 -07:00
12d78465eb 2022-11-05 nightly release (957a9b63c5c2953da3a1d1fc86c20703c96b2fa6) 2022-11-05 00:03:02 -07:00
4ebaafab95 2022-11-04 nightly release (70b00b13830c8adbaa2db8f61d475c2458b707c4) 2022-11-04 00:03:04 -07:00
a374be6433 2022-11-03 nightly release (4c20c0509d5cf8d4dea83cc330056044a6277b1b) 2022-11-03 00:04:06 -07:00
ded1b03613 2022-11-02 nightly release (95fc0bcaaddc2d24e8759f24dbefa789d04e9e42) 2022-11-02 00:09:24 -07:00
43ff4c443a 2022-11-01 nightly release (afd00673b6dedbdb811cfb1a9078deee1cb53f38) 2022-11-01 00:05:13 -07:00
7ceeba2c87 2022-10-31 nightly release (d13f1e6ab4d20451f7e2acd87571ffa7fece0c32) 2022-10-31 00:02:52 -07:00
d6a7672424 2022-10-30 nightly release (e7b854fae9ff8116eaf4aeb24e04cac550bed362) 2022-10-30 00:02:54 -07:00
7623f24837 2022-10-29 nightly release (c5cb6ec06619a2fc9874b967f11d13663c5d32c1) 2022-10-29 00:02:57 -07:00
8d1914359f 2022-10-28 nightly release (fd27246c16d8a80e7de0ccc86d014f9759611b0f) 2022-10-28 00:03:05 -07:00
7ecffceed4 2022-10-27 nightly release (21bef8e944c90cdf98c2ead4369410db252944e1) 2022-10-27 00:03:46 -07:00
3fa360a3c8 2022-10-26 nightly release (0d13ffbbae0ae12e72ed8856ccdd822bf840344c) 2022-10-26 00:03:07 -07:00
dfd50c05fc 2022-10-25 nightly release (3f94adc1056b541851422f887149d54756ed91c1) 2022-10-25 00:03:10 -07:00
9c14af470f 2022-10-24 nightly release (233305a852e1cd7f319b15b5137074c9eac455f6) 2022-10-24 00:03:41 -07:00
21d5156225 2022-10-23 nightly release (efdd43d5193435206fbe76cecc294961d10558db) 2022-10-23 00:03:06 -07:00
8e7fb10812 2022-10-22 nightly release (8461460d55c2474b236a5d7198067ed299631b76) 2022-10-22 00:03:46 -07:00
6418c7d4ba 2022-10-21 nightly release (ff43288d31ea7f3de69f4907e2a36455c742d9c9) 2022-10-21 01:01:25 -07:00
aab82cf32e 2022-10-20 nightly release (472bdb3aa84678b2faa4afe1cb5757f55e14ed9a) 2022-10-20 00:03:02 -07:00
f2aafd1c40 2022-10-19 nightly release (c471c29fdccc3fe48a78083c638a4a88559488b4) 2022-10-19 00:03:50 -07:00
bd3e718742 2022-10-18 nightly release (4814270708cb6141c1fb6202f883c084c71290b4) 2022-10-18 00:03:48 -07:00
cb329eb0ba 2022-10-17 nightly release (364a9973cab8e7458abd27e3926168978fe5428e) 2022-10-17 00:02:45 -07:00
d20ebc91e3 2022-10-16 nightly release (a0c2a7f2eda788a48f1d243940297f1467faf138) 2022-10-16 00:02:54 -07:00
1edc91820e 2022-10-15 nightly release (5210fab64d4322438ebfd8ec9c1170d5effab0a3) 2022-10-15 00:03:45 -07:00
987a944470 2022-10-14 nightly release (f451e824f39516f503c2bdfd785d254b447b9557) 2022-10-14 00:02:58 -07:00
f4ae3bad46 2022-10-13 nightly release (48c648d75df4a2d02ede71f34c11b7f48c80da0e) 2022-10-13 00:03:32 -07:00
2c2a7b256d 2022-10-12 nightly release (25725fd62448165b91647304c26d676db22b6955) 2022-10-12 00:02:49 -07:00
027a1549b9 2022-10-11 nightly release (ad2b04c39c41949d8869de743736bcaeec2dfa0d) 2022-10-11 00:03:23 -07:00
04f63b02a1 2022-10-10 nightly release (c89d286af633a802226c34ccbdd5c7c4be10dcfb) 2022-10-10 00:02:57 -07:00
0dbefb2414 2022-10-09 nightly release (92ac84c98a19310885f3d818aba56b981940d615) 2022-10-09 00:02:53 -07:00
95911a478f 2022-10-08 nightly release (a95889ba7c1ecd8cb0f90507a6152cb035bcefd1) 2022-10-08 00:03:00 -07:00
a23db27756 2022-10-07 nightly release (b14f1d7bb855834ec5f2d3996746e048ba835d69) 2022-10-07 00:02:47 -07:00
99cb9ab0a2 2022-10-06 nightly release (bebd1622490becd09de97003bd22761e973d3edd) 2022-10-06 00:03:11 -07:00
03587d440b 2022-10-05 nightly release (ac25c210e5452d360fcc8cf5ea96c85756e3e370) 2022-10-05 00:02:55 -07:00
9f3d8fec57 2022-10-04 nightly release (82d9592f1baaf943b81bca13a51d655139f050aa) 2022-10-04 00:03:13 -07:00
57d0543a3f 2022-10-03 nightly release (b26eafec079a18bc331f569a7e35497129feed71) 2022-10-03 00:03:10 -07:00
60de01321d 2022-10-02 nightly release (92c2295ab4b5ccdedcc32227c1125a4daf9e2759) 2022-10-02 00:03:40 -07:00
7ac93c0c8f 2022-10-01 nightly release (05d1128106e50075b0fd7d667680214ace34306c) 2022-10-01 00:02:54 -07:00
3bf7094ddb 2022-09-30 nightly release (95681929e4c379c504d8a7761f8104118a5a16db) 2022-09-30 00:02:59 -07:00
7a07ea9138 2022-09-29 nightly release (7628603aeeeb8ed160c2479f75175bb3ea028a42) 2022-09-29 00:02:52 -07:00
5b04269af6 2022-09-28 nightly release (795028a3cec2603a750bdc02ab2b93329f43e883) 2022-09-28 00:02:58 -07:00
04bb9533d5 2022-09-27 nightly release (b360d66391f03a0d5dc2c9a7aff496324b75aa2f) 2022-09-27 00:03:05 -07:00
193cc14176 2022-09-26 nightly release (9c036aa112b0a8fd9afb824d1fda058e2b66ba1d) 2022-09-26 00:03:02 -07:00
69168261cd 2022-09-25 nightly release (db40fbdee03920944219588464d38774ca0b3d05) 2022-09-25 00:02:56 -07:00
6dc8fba854 2022-09-24 nightly release (2b6d2cad29fc1652f80199d647306b9c7c841ca9) 2022-09-24 00:02:52 -07:00
114d9a2be3 2022-09-23 nightly release (cf0de77c2cfb8843b8ae67e6a6f053e6bf6bb3d9) 2022-09-23 00:02:57 -07:00
62b4e98396 2022-09-22 nightly release (99ad8a304898de8bf1e20a6fc12e335e9b7c5064) 2022-09-22 00:02:55 -07:00
8b575a966c 2022-09-21 nightly release (cf2f552cd8a41f4913c370c15804173a3b56a415) 2022-09-21 00:02:54 -07:00
b472915d42 2022-09-20 nightly release (e41d758e26bd2de00e9dd50e94e878f46f9f1b88) 2022-09-20 00:02:50 -07:00
1b1d4240c3 2022-09-19 nightly release (9024015adf01d93fd2533c71fa1e7f06831c2ac7) 2022-09-19 00:02:58 -07:00
39579e7294 2022-09-18 nightly release (12a19a4846c924e9d1e2d37fa0a706fb8eaef9a7) 2022-09-18 00:02:53 -07:00
e42e8dc76f 2022-09-17 nightly release (d6c2080eb49ccaaf43cff37b7f07a85906250b92) 2022-09-17 00:02:58 -07:00
089b57935b 2022-09-16 nightly release (0ec19db7ac88e307135100ddcfc418ae3925844f) 2022-09-16 00:02:51 -07:00
a5ce01692c 2022-09-15 nightly release (625e44c1df211d6753609a9b391cb10f2f94367f) 2022-09-15 00:03:03 -07:00
f35657efc9 2022-09-14 nightly release (55ca297d4e048c641d149a76f2fda7c9ce630ff6) 2022-09-14 00:02:52 -07:00
0feda8a4ba 2022-09-13 nightly release (2fbc0fab20d4af520f69f158f8777e99ad761e1d) 2022-09-13 00:02:48 -07:00
82246b020e 2022-09-12 nightly release (5f960db0e01839f1de8735060b374ea6cbd1713a) 2022-09-12 00:02:48 -07:00
6dd155f968 2022-09-11 nightly release (5f960db0e01839f1de8735060b374ea6cbd1713a) 2022-09-11 00:02:51 -07:00
3bcb7fae2d 2022-09-10 nightly release (96e4bd950027a2f472fafa98616c92403a890bd2) 2022-09-10 00:02:56 -07:00
f708f8d227 2022-09-09 nightly release (dbdc1cd590169576cfb78008f33b7cc795150729) 2022-09-09 00:02:53 -07:00
16ac031e95 2022-09-08 nightly release (e0229d6517385a98afeadbc6391d3592d5027c63) 2022-09-08 00:02:53 -07:00
e3c0d6d5b3 2022-09-07 nightly release (06ebe2d5bc1055f226f56ed2fe26a29038a466e5) 2022-09-07 00:03:03 -07:00
37d93c97bc 2022-09-06 nightly release (1a16b2576f69383480e8be889531e4f574356c62) 2022-09-06 00:02:49 -07:00
83d53043a3 2022-09-05 nightly release (9a6aa9053f79127721875e371addd9c3baeaaac0) 2022-09-05 00:02:50 -07:00
a3ee509f45 2022-09-04 nightly release (e46c1c7931da2d723a6cad4ec307ff4ed4e9cb7f) 2022-09-04 00:02:57 -07:00
a70ad97d6c 2022-09-03 nightly release (2a332afbf41b68080a9436e910b93af7cd336fbc) 2022-09-03 00:02:51 -07:00
e0735fd259 2022-09-02 nightly release (97b2dff60081e1092cfd6d1b3a80c995ff3d6148) 2022-09-02 00:02:44 -07:00
467eb02f43 2022-09-01 nightly release (693ed8b14777d1515c18653f5f8f28a602898662) 2022-09-01 00:02:48 -07:00
325dcc2a47 2022-08-31 nightly release (71d99662a0d7f8a9ad68999c9a014b71591cbb68) 2022-08-31 00:02:57 -07:00
e47d389287 2022-08-30 nightly release (df98c529480b2ece3809b19fc850f57d2054605a) 2022-08-30 00:02:48 -07:00
b044e4c13d 2022-08-29 nightly release (533203f5aaa9f8987f25d828e1c37e755a2ba4ea) 2022-08-29 00:02:46 -07:00
8cdff0bbfb 2022-08-28 nightly release (c9b144ff47ff3b6f358752976d29ac61f2b9b070) 2022-08-28 00:02:45 -07:00
40043c8960 2022-08-27 nightly release (e33897cb9999f124bce126c7e43f96c0755413ef) 2022-08-27 00:02:48 -07:00
733c645ec1 2022-08-26 nightly release (15b560a5c4d638c82e738f3496e2faf95fc328a5) 2022-08-26 00:03:00 -07:00
b7c5e1bc42 2022-08-25 nightly release (b21a6ff6397b74c148c12e4fc41ef12b382443e2) 2022-08-25 00:02:45 -07:00
503de157b7 2022-08-24 nightly release (754d7f05b6841e555cea5a4b2c505dd9e0baec1d) 2022-08-24 00:02:56 -07:00
a0ea0f5fc9 2022-08-23 nightly release (b29a074882a2194d61f1cd7ccf939618d8384d08) 2022-08-23 00:02:51 -07:00
85a04f1c91 2022-08-22 nightly release (765fd77d9a96983e1a2adf496ac2fe66b4825f45) 2022-08-22 00:02:45 -07:00
5c72ae78f9 2022-08-21 nightly release (c9475fa927ef5557aa54e4e9a7bc2a9ab98cdcf7) 2022-08-21 00:02:41 -07:00
1af6aa6752 2022-08-20 nightly release (9732a7d84ee72521d006c9617430c4415016daef) 2022-08-20 00:02:48 -07:00
ba442f621d 2022-08-19 nightly release (61b2cde5270986476f47b58b984de80d02aac321) 2022-08-19 00:02:49 -07:00
2c8f75b138 2022-08-18 nightly release (7263450c309443a8fd3f8ab29fbc04c35692e58f) 2022-08-18 00:02:45 -07:00
89a0e3da4a 2022-08-17 nightly release (343b5f86512f75f8f3bd4b90749c0459743b9e72) 2022-08-17 00:02:53 -07:00
937b90ea32 2022-08-16 nightly release (641d75d0ba0053816a73a6c977ac4a2d6e00e896) 2022-08-16 00:02:55 -07:00
c979188ed7 2022-08-15 nightly release (fbe8c77427ea95eb76876f20239e9493f2a1d6ec) 2022-08-15 00:02:58 -07:00
202caa35b2 2022-08-14 nightly release (408fa38f33d10e02fe762ef9d444ec9fc4f41ffc) 2022-08-14 00:02:53 -07:00
d773851902 2022-08-13 nightly release (c2808571bf823a26e97231d83f5f3f2c5e3d3fe3) 2022-08-13 00:02:44 -07:00
eb92c0d89f 2022-08-12 nightly release (2ca721cda54bcaee2202819bee92088ae2320ebf) 2022-08-12 00:02:44 -07:00
1cdc061e46 2022-08-11 nightly release (3aeb5e4ff9d56ecd680401cfa3f23e97a279efbe) 2022-08-11 00:02:45 -07:00
8a8283d468 2022-08-10 nightly release (e1007950484aa1df4a2f87c9c14b514ffd7736a5) 2022-08-10 00:02:48 -07:00
61f112cb3a 2022-08-09 nightly release (9e65e93c39238ec05aa7913693d7c3e4523bf257) 2022-08-09 00:02:55 -07:00
2085de7d43 2022-08-08 nightly release (1d56ea5e92b7bd041cf84ba9e0bb73f47a7eacf9) 2022-08-08 00:02:44 -07:00
c506576280 2022-08-07 nightly release (4f255dbfb320e8b30f83b35dd4a40c8abd3164fc) 2022-08-07 00:02:54 -07:00
5244615fad 2022-08-06 nightly release (86437b8631918aa4e766df869bca43853f0be6e9) 2022-08-06 00:03:07 -07:00
2869946265 2022-08-05 nightly release (802a4fd28620f03d6537374953dbb4bb887a47b4) 2022-08-05 00:02:47 -07:00
a2b3a3801c 2022-08-04 nightly release (1164c83c3c3070c82618350d57c7bf65ec56f0f1) 2022-08-04 00:02:53 -07:00
881e41c398 2022-08-03 nightly release (9647bec0ec41176adfd0cd5b80ab72c5bf6b2141) 2022-08-03 00:02:54 -07:00
a05de36989 2022-08-02 nightly release (c6b1e096afeabcc118c2e74db6709a1b4c531c53) 2022-08-02 00:03:06 -07:00
f059422a11 2022-08-01 nightly release (53f56894ae0b747d2833ee168599afcfdd4be471) 2022-08-01 00:02:55 -07:00
4a3790b3f0 2022-07-31 nightly release (32cf6c6fb0d98f747f576f52abe533449ae5da84) 2022-07-31 00:02:43 -07:00
f623d1fb75 2022-07-30 nightly release (dc53cb4536839d11ab9a32ec10a0ff0dd96a590f) 2022-07-30 00:02:47 -07:00
5e354516c9 2022-07-29 nightly release (357b7d589c9c451f4850449b9313d8b857ae7140) 2022-07-29 00:02:43 -07:00
053ea30ff8 2022-07-28 nightly release (7f7c81c5f9c4ef92085c1081dfb0f037f768bf27) 2022-07-28 00:02:46 -07:00
27064dc6e1 2022-07-27 nightly release (3cf9c3d8769fa3509c190a4f4c3dacd61ba154af) 2022-07-27 00:02:42 -07:00
983d26963e 2022-07-26 nightly release (1223e94469682271c94ac3b6a0cbe31a3078e351) 2022-07-26 00:02:44 -07:00
f0bd47f927 2022-07-25 nightly release (64094d81fe3cf512d3dfc6b2aabfd1754c86e87d) 2022-07-25 00:02:52 -07:00
63efe6b923 2022-07-24 nightly release (194255bb56a7bdcb5e6fb236d82b4897c2e5967c) 2022-07-24 00:02:41 -07:00
c747033c31 2022-07-23 nightly release (35d97e21c8e2e28fae4a4744ce42f1544972ba1f) 2022-07-23 00:02:52 -07:00
dae37da22c 2022-07-22 nightly release (12cb26509a30077f4bd11972dea9baa03c8d943f) 2022-07-22 00:02:47 -07:00
d7d8cf9170 2022-07-21 nightly release (2fb2740ef976ab6f139c5ccfa17c5c265bd2f78c) 2022-07-21 00:02:37 -07:00
bb7af45ebb 2022-07-20 nightly release (589e8a1da5aefeb27c2187b8f0d11471edb10153) 2022-07-20 00:02:46 -07:00
ab98dd1924 2022-07-19 nightly release (a8f4011e90aeffac0757bfdb971b139e1d348967) 2022-07-19 00:02:52 -07:00
8e9ce913ff 2022-07-18 nightly release (471397d0ee27b61ae1a088ece9f3ead1562152e0) 2022-07-18 02:51:54 -07:00
6f50b0393b 2022-07-18 nightly release (86b86202b58a6e3e7ccde32c51f81eff2e4e6445) 2022-07-18 00:02:28 -07:00
64c005dbd7 2022-07-17 nightly release (0b5b10002af2dce031d4fad337728f81c58a8b10) 2022-07-17 00:02:36 -07:00
468bcbe765 2022-07-16 nightly release (00359ff886e69f064360e5e8c6f2d5c306a105f1) 2022-07-16 00:02:48 -07:00
888ece62d5 2022-07-15 nightly release (75fdebde6290e2955129e665c2b0d99c391542a7) 2022-07-15 00:02:49 -07:00
c77e5b3ace 2022-07-14 nightly release (12c30a8250d1a00a0ac2e03d70ec909c76d922c3) 2022-07-14 00:03:12 -07:00
608f835654 2022-07-13 nightly release (07f4dc9b2c4cf6a00aa12cfb1d5db9056475ae98) 2022-07-13 00:02:53 -07:00
564e65cf0a 2022-07-12 nightly release (28776c45e393ec7d6731a5613f5d79d309036d3a) 2022-07-12 00:03:24 -07:00
4423cee876 2022-07-11 nightly release (3c2199b159b6ec57af3f7ea22d61ace9ce5cf5bc) 2022-07-11 00:02:50 -07:00
1ccfb24e91 2022-07-10 nightly release (f3008be9004418c3651bf89de764355580b994a2) 2022-07-10 00:02:37 -07:00
f1ef8f4871 2022-07-09 nightly release (39f659c3baa491cc060f7df6b55354bd78c30be1) 2022-07-09 00:02:45 -07:00
c10163e770 2022-07-08 nightly release (8389ccbcd809e2596bd4f8a20d069fc919beefdf) 2022-07-08 00:03:18 -07:00
19bac0d4c9 2022-07-07 nightly release (74877943b84cb6d3fc82993ebc8f0e2f8b3c5ce1) 2022-07-07 00:04:30 -07:00
76c411ec8d 2022-07-06 nightly release (fe361dede45747067e39669573cbcf48be4fe4f9) 2022-07-06 00:03:00 -07:00
5728ca13ae 2022-07-05 nightly release (828c787ea98da39eb786925eedcb8527aae07153) 2022-07-05 00:03:21 -07:00
4492525e2e 2022-07-04 nightly release (19f3d4d7950daef5c0e93a7c6da37353381da3d9) 2022-07-04 00:02:45 -07:00
14908b1f7d 2022-07-03 nightly release (19f3d4d7950daef5c0e93a7c6da37353381da3d9) 2022-07-03 00:02:44 -07:00
fa0f6bad6d 2022-07-02 nightly release (19f3d4d7950daef5c0e93a7c6da37353381da3d9) 2022-07-02 00:02:33 -07:00
b12db36e77 2022-07-01 nightly release (ffae7308c9bfbe52964577e35b3c1fdbcfb28e66) 2022-07-01 00:02:38 -07:00
67434681aa 2022-06-30 nightly release (331c0c18033bf4138c9ea468a8c759865dd8ffff) 2022-06-30 00:02:54 -07:00
5452b8baa5 2022-06-29 nightly release (5943aaa0c45bddef9b577cd0483627144585af0d) 2022-06-29 00:02:41 -07:00
2010b6df9a 2022-06-28 nightly release (8a45ef23f564cc092fa0805ea6c0f8f73eed209c) 2022-06-28 00:02:22 -07:00
3245693a02 2022-06-27 nightly release (80b50dfa3ab16de3e90dab8eeed003a98a0da1fe) 2022-06-27 00:02:44 -07:00
5074dab26d 2022-06-26 nightly release (80b50dfa3ab16de3e90dab8eeed003a98a0da1fe) 2022-06-26 00:02:31 -07:00
7b6fd33c64 2022-06-25 nightly release (80b50dfa3ab16de3e90dab8eeed003a98a0da1fe) 2022-06-25 00:02:45 -07:00
2befd0b446 2022-06-24 nightly release (55aa0b1a840e7bf5c53c8e457abf85ded92317eb) 2022-06-24 00:04:40 -07:00
f0e1176a37 2022-06-23 nightly release (9f29d09b3bfbb6c4b64605703f52d7e2fe1fea7f) 2022-06-23 00:02:29 -07:00
4de7faed35 2022-06-22 nightly release (bd7cd7c3569bb708207a80c704355af2ca42b834) 2022-06-22 00:02:50 -07:00
766cc00b15 2022-06-21 nightly release (6d6e77eb6b9649aeb1f21b59145391f28e136a40) 2022-06-21 00:02:35 -07:00
3f72225847 2022-06-20 nightly release (332e43ed1a353a8b0a1d8e0167daaaed1e8b7a34) 2022-06-20 00:02:40 -07:00
c296168bd0 2022-06-19 nightly release (0545c85f744cadc6f06616f15748052cd7cebe20) 2022-06-19 00:02:27 -07:00
c4171aed91 2022-06-18 nightly release (1432a3d6acc7ac58269e5ea7ef6b2373e9a3dbf6) 2022-06-18 00:02:36 -07:00
4c19eece3f 2022-06-17 nightly release (4a4890cfb2440c497fd41e69405ad623c144e32b) 2022-06-17 09:52:36 -07:00
8115b705b3 2022-06-17 nightly release (9d419e81e2cf64504126652def4eec46b72b75c5) 2022-06-17 00:02:34 -07:00
a4fa62064e 2022-06-16 nightly release (86606fbe22c76d71851a38003462e9b6428b47d3) 2022-06-16 00:02:52 -07:00
39c39325d1 2022-06-15 nightly release (bad7720dde598d4300b6523e2c06e61923a2820a) 2022-06-15 00:02:37 -07:00
4981166f3d 2022-06-14 nightly release (18305e30a785a0336837a3e4406b84e3bf36e727) 2022-06-14 00:02:26 -07:00
b6cec31acb 2022-06-13 nightly release (a732bbea232fa32191f259d7cb15e9fabb6c2926) 2022-06-13 00:02:38 -07:00
bf5a87c628 2022-06-12 nightly release (66460c4a6ab0dc29187618bdf0a3d097bbb0ad21) 2022-06-12 00:02:36 -07:00
74ee629516 2022-06-11 nightly release (38350acf8fddc350c893e23a8e77bed2e59f5b06) 2022-06-11 00:02:33 -07:00
92b4285a8d 2022-06-10 nightly release (70d6446a3def513b8082d243d7996ef86c2787a6) 2022-06-10 00:03:19 -07:00
18fa2ad3f3 2022-06-09 nightly release (bfaa187fb083aea66804673de033b17506061de2) 2022-06-09 00:02:53 -07:00
5ab96cd7be 2022-06-08 nightly release (d09e3674d875060c1a848f9634ceff7300fb7c04) 2022-06-08 00:02:33 -07:00
12aaa27135 2022-06-07 nightly release (b40c751c33439bb8721fddb85c25b893ba73ada7) 2022-06-07 00:02:55 -07:00
22aa5e65d2 2022-06-06 nightly release (e6cc2e8d384d3e045b1529c89bcb0460883691e9) 2022-06-06 00:02:46 -07:00
17bd418fc3 2022-06-05 nightly release (7860ce5b79f28d601f31aeade400d9873137fee4) 2022-06-05 00:02:50 -07:00
9c02239648 2022-06-04 nightly release (7860ce5b79f28d601f31aeade400d9873137fee4) 2022-06-04 00:02:36 -07:00
6593c7bbc1 2022-06-03 nightly release (4bb8db85e924b1850d5cf1709a2a0bb7deca603d) 2022-06-03 00:02:43 -07:00
7ba52788aa 2022-06-02 nightly release (4bb8db85e924b1850d5cf1709a2a0bb7deca603d) 2022-06-02 00:02:36 -07:00
b7577f4d6a 2022-06-01 nightly release (01d20491ff2034f283455a59d8faa9b11c43a10c) 2022-06-01 00:02:46 -07:00
d76af8f41c 2022-05-31 nightly release (017b0ae9431ae3780a4eb9bf6d8865dfcd02cd92) 2022-05-31 00:03:03 -07:00
0cac4ed4c7 2022-05-30 nightly release (18273c39da4880b68f8a546978a23516fe5c3e51) 2022-05-30 00:10:03 -07:00
447b0d9521 2022-05-29 nightly release (18273c39da4880b68f8a546978a23516fe5c3e51) 2022-05-29 00:02:36 -07:00
555bfd9e65 2022-05-28 nightly release (18273c39da4880b68f8a546978a23516fe5c3e51) 2022-05-28 00:02:39 -07:00
3038818d93 2022-05-27 nightly release (d98a8148b66fb6f74ce1b437d6bde4f24208bb78) 2022-05-27 00:02:45 -07:00
367ce697da 2022-05-26 nightly release (032d1ace1de47e93edcc69b06da9d79636652991) 2022-05-26 00:02:41 -07:00
281c99ca98 2022-05-25 nightly release (d450034f240681f5133bc61ddc9c0d195c527b59) 2022-05-25 00:02:50 -07:00
8f263fda5c 2022-05-24 nightly release (c7ce4fcc619fab5c82071eac934b505b396ee015) 2022-05-24 00:03:09 -07:00
56d66c84c6 2022-05-23 nightly release (d4345ed0a6c06b1e489e41c219f94d26d3014ce6) 2022-05-23 00:02:35 -07:00
5db8a74f9a 2022-05-22 nightly release (5f1b0a4f48bad11907031ff473b99558ae703593) 2022-05-22 00:03:23 -07:00
00c4d7fa54 2022-05-21 nightly release (47834679ba2f869e66450a74e2add4c04f0006e9) 2022-05-21 00:02:31 -07:00
f5a90b859c 2022-05-20 nightly release (b3e7230efa30e03b9ee8ff3e2b31c38754a6b2b1) 2022-05-20 00:02:54 -07:00
23ce60e364 2022-05-19 nightly release (4124307faeed923175d3e02fa685c0788e99f0ee) 2022-05-19 00:02:44 -07:00
2b57412cef 2022-05-18 nightly release (05ce0f9be63dd6fadd2fb40c29f8f867f267002b) 2022-05-18 11:50:31 -07:00
3e449774fe 2022-05-18 nightly release (7f1e331b34fd0b9caba12aa86469b59366cde9a4) 2022-05-18 00:02:44 -07:00
bd39de2c81 2022-05-17 nightly release (6aea0b10734df77252a2f67315b5c447c263ea6c) 2022-05-17 00:02:47 -07:00
c6efbc72a2 2022-05-16 nightly release (88205886d72486fbeac420c7df99bfe460c38436) 2022-05-16 00:02:33 -07:00
4f32ac4356 2022-05-15 nightly release (e175065c4e31f33247eec4edf026c8ee020d943e) 2022-05-15 00:02:31 -07:00
6a62a087bb 2022-05-14 nightly release (3cade9d454babc70f43ace1ce6481543104934b2) 2022-05-14 00:02:33 -07:00
44bf440b53 2022-05-13 nightly release (65f71c0cbeb080c13e927d37b0d23d39bac6f092) 2022-05-13 00:02:35 -07:00
24898298be 2022-05-12 nightly release (188854eeaf148b685e54a438fa7b9a20d3a28e33) 2022-05-12 00:02:45 -07:00
794df1af9a 2022-05-11 nightly release (fc4f8b5edec69c0ddc63e5210d3f34724d4bd672) 2022-05-11 00:02:36 -07:00
b99396932d 2022-05-10 nightly release (4ceac494259e6b7d57e721793fb0a9ad598a0e12) 2022-05-10 00:02:33 -07:00
e6f2163016 2022-05-09 nightly release (e3dcd175f7aacb6aa2fb150b01335afd508c9d52) 2022-05-09 00:02:29 -07:00
19998c0c4c 2022-05-08 nightly release (e3dcd175f7aacb6aa2fb150b01335afd508c9d52) 2022-05-08 00:02:26 -07:00
60ac495151 2022-05-07 nightly release (901cb7c2e40123822c2d8e5cf4c5af782a4e22a1) 2022-05-07 00:02:33 -07:00
06611fcdd8 2022-05-06 nightly release (040e2e04dd35c49e2b0faeeca964333f7cbc45b9) 2022-05-06 00:03:53 -07:00
0328afd12e 2022-05-05 nightly release (4baf7c0899a2fa9c3630613f37d5fc65971db21c) 2022-05-05 00:02:34 -07:00
1d34bdd21e 2022-05-04 nightly release (201ddafc22e22c387b4cd654f397e05354d73d09) 2022-05-04 00:02:28 -07:00
5a8679f89b 2022-05-03 nightly release (201ddafc22e22c387b4cd654f397e05354d73d09) 2022-05-03 00:02:35 -07:00
fd1f1d0d1b 2022-05-02 nightly release (201ddafc22e22c387b4cd654f397e05354d73d09) 2022-05-02 00:02:41 -07:00
629bca39ad 2022-05-01 nightly release (201ddafc22e22c387b4cd654f397e05354d73d09) 2022-05-01 00:02:30 -07:00
13015c5b75 2022-04-30 nightly release (2540f866ff1eff10dbed7ca47ea9c432e8583da2) 2022-04-30 00:02:31 -07:00
e19fc28ab6 2022-04-29 nightly release (ac31e5d4a3ba20315b5bae26411252c72e0f5c0b) 2022-04-29 00:02:33 -07:00
32808706c5 2022-04-28 nightly release (177ea46332fcde48df5ce0c0efe1552991a5548a) 2022-04-28 00:02:33 -07:00
5a835234d2 2022-04-27 nightly release (ec62901a2c38b63d12843e0f079bdeb7644d8714) 2022-04-27 00:02:34 -07:00
a4974f7e6e 2022-04-26 nightly release (e48b29b1fb1510535efa2a00b6501d5455556aa2) 2022-04-26 00:02:30 -07:00
7393e51ecc 2022-04-25 nightly release (36420b5e8cce9c783903bbc210ed7f2b6535ebf5) 2022-04-25 00:02:36 -07:00
bbd2ae4d6c 2022-04-24 nightly release (77f23d64607142c0cba47f5148ebc1959c9de366) 2022-04-24 00:02:52 -07:00
5b7df69855 2022-04-23 nightly release (2f2158ae4502667951a4d6f5f95d751c7d0927d8) 2022-04-23 00:02:38 -07:00
acc1284169 2022-04-22 nightly release (80fe96c86057efa768ad1eed6c54af0ad259a423) 2022-04-22 00:02:30 -07:00
c0d0c45456 2022-04-21 nightly release (3e10fe323165a94fed66b1487902e8d394ce3be1) 2022-04-21 00:02:32 -07:00
30beb5e09a 2022-04-20 nightly release (d0af05f931e271131e1e207bcc47235059cfd723) 2022-04-20 00:02:39 -07:00
3a600dd46f 2022-04-19 nightly release (736f0d0e46ad70f2382a9035bc72f491970d43f5) 2022-04-19 00:02:41 -07:00
1d23709c9c 2022-04-18 nightly release (f4d89aa28e182bd7768a997a70b033748591ceac) 2022-04-18 00:02:31 -07:00
f827d1bda6 2022-04-17 nightly release (1c5c739993284f908ede18fcd5c1ff79dcadc251) 2022-04-17 00:02:31 -07:00
be96d5d2cb 2022-04-16 nightly release (5dcbcc6de83b552f43415ef60bb2e771bdbc0026) 2022-04-16 00:02:23 -07:00
5cbdc6315b 2022-04-15 nightly release (cc1902a5ed64e5e3b956c5cc6fcbdcd45630f7b8) 2022-04-15 00:02:35 -07:00
053a97bbcb 2022-04-14 nightly release (1118b157bc524944b6094ee0d69adac9ec86931a) 2022-04-14 00:02:33 -07:00
80e358b406 2022-04-13 nightly release (4afe2db641c526800fb8b33532a920be625f3cf4) 2022-04-13 00:02:35 -07:00
80863b0d47 2022-04-12 nightly release (25aa251f37b74ea8354a3e9366912180a6c84613) 2022-04-12 00:02:37 -07:00
3daf56e4fd 2022-04-11 nightly release (a98b4666e0d5b50d876df39a02ae4241d5663ccf) 2022-04-11 14:34:00 -07:00
9afee87fe1 2022-04-11 nightly release (0389f99c4976319f688e936ac520441466f6ab13) 2022-04-11 07:53:19 -07:00
3d8554ce13 2022-04-11 nightly release (caa28ff4959c7cf7165dabf1ffae7c233b8e4b61) 2022-04-11 00:02:30 -07:00
49f28d09b8 2022-04-10 nightly release (f42bdff0166ef503c844353c32b6725391e440ac) 2022-04-10 00:02:29 -07:00
6f47f3883d 2022-04-09 nightly release (58a44523c1f74093ad9a05513a32c45a109b6c55) 2022-04-09 00:02:33 -07:00
02cf8fe543 2022-04-08 nightly release (11f1fef9817bc8a9bc0c3ff7af98ab6cbefe51ed) 2022-04-08 00:02:31 -07:00
8fcdacc23d 2022-04-07 nightly release (ef41201d4acf6b7601577b08b90e36f749db84b8) 2022-04-07 00:02:39 -07:00
59ac7da723 2022-04-06 nightly release (f2a4d49174eb7b705c2c605c45f78d4fa6786be0) 2022-04-06 00:03:18 -07:00
4817424257 2022-04-05 nightly release (b0e047b59da4d6434bf347dd6ae501169218bb1a) 2022-04-05 00:02:42 -07:00
17459dfef2 2022-04-04 nightly release (bf16552617e0f82e6963762b6d40a8ae39105fae) 2022-04-04 00:02:29 -07:00
fa2c3ef58f 2022-04-03 nightly release (bd032cd8d65e36b9d16af42520f5d63e861cb9d4) 2022-04-03 00:02:24 -07:00
4aad5531c0 2022-04-02 nightly release (6efc5c1acfe6afc7268e39d9b058a34e87932560) 2022-04-02 00:04:58 -07:00
2f5ec0f958 2022-04-01 nightly release (c0a6add7eef8ab3715c0f4281b3b7a2a0f1e24b5) 2022-04-01 00:03:50 -07:00
0c6e65a77b 2022-03-31 nightly release (3036a0309dba11d0601d19b5f2d2f4a7e6afa456) 2022-03-31 00:03:40 -07:00
32ec80e619 2022-03-30 nightly release (3269729c683ac01d7e91b109187a69686167bb08) 2022-03-30 00:02:59 -07:00
7313eddbb2 2022-03-29 nightly release (51e50a2ddb9844e0abaf6028fe5e4246448dffff) 2022-03-29 00:03:16 -07:00
ee7c21e4f2 2022-03-28 nightly release (1c5a8125798392f8d7c57e88735f43a14ae0beca) 2022-03-28 00:02:31 -07:00
a9cc98c890 2022-03-27 nightly release (1c5a8125798392f8d7c57e88735f43a14ae0beca) 2022-03-27 00:02:22 -07:00
4e21b8b1d0 2022-03-26 nightly release (90459ba9dc6a812ef74c814d8fd1fa1edaaa27ee) 2022-03-26 00:02:36 -07:00
b7c262acb8 2022-03-25 nightly release (4d82e5bf449929c2732250f8620976e5be96a7f3) 2022-03-25 00:02:40 -07:00
10d252ff4a 2022-03-24 nightly release (d583f9c9d2bd0cc5fb5d369cd498bd62b62c43fe) 2022-03-24 00:03:02 -07:00
6a9d73c33a 2022-03-23 nightly release (65329f4fac8fb22318b7a3eb115e9da207d8d41a) 2022-03-23 00:02:35 -07:00
674a66aea3 2022-03-22 nightly release (7c2103ad5ffdc1ef91231c966988f7f2a61b4166) 2022-03-22 00:02:37 -07:00
3c1c7fd26e 2022-03-21 nightly release (7c2103ad5ffdc1ef91231c966988f7f2a61b4166) 2022-03-21 00:02:48 -07:00
be7f24a66d 2022-03-20 nightly release (38512d90c1380aa7eb66bdfbc52c744bc06b17c6) 2022-03-20 00:02:30 -07:00
2b1020d9c9 2022-03-19 nightly release (b86554abedd9b1bfbca582b1f28e02806a2dfbf8) 2022-03-19 00:02:25 -07:00
46686703a0 2022-03-18 nightly release (6ffe16662f1f4792bf4dc2c2ec35f21b6ff1cc7e) 2022-03-18 00:03:00 -07:00
203c75e473 2022-03-17 nightly release (495e69eaff3037318eafc1b8c2166f11db474a1d) 2022-03-17 00:03:11 -07:00
1a3899dc0e 2022-03-16 nightly release (ac3effd150e829da8bac7525adadec2fad31ece1) 2022-03-16 00:03:08 -07:00
7fc88a1335 2022-03-15 nightly release (060f1b822a6b71e1db07b94f68fdfb53fe47a7d0) 2022-03-15 00:02:26 -07:00
6dc1221394 2022-03-14 nightly release (ef9023e93dabdcfe328bb55869ded08096e2d993) 2022-03-14 00:02:28 -07:00
9b7dac5e86 2022-03-13 nightly release (ef9023e93dabdcfe328bb55869ded08096e2d993) 2022-03-13 00:02:32 -08:00
08dbe0b800 2022-03-12 nightly release (bbdb758423d8f22cfcae492686cba848e3eadbc9) 2022-03-12 00:02:40 -08:00
7d3f48cab3 2022-03-11 nightly release (794f813522deb8afb5e576cec264ce9224cfe067) 2022-03-11 00:02:29 -08:00
7ed23549dd 2022-03-10 nightly release (d8dbf9d8b2d73c4799555af04d8fdf9af9d027a3) 2022-03-10 00:02:31 -08:00
6874a3d788 2022-03-09 nightly release (beda4e8b2f644434202c3d27eac21b5bf9b82321) 2022-03-09 00:02:28 -08:00
df69a9d17e 2022-03-08 nightly release (07410207c487369d87a03e4602f72ec870abe4b7) 2022-03-08 00:02:26 -08:00
8057557dc7 2022-03-07 nightly release (5167e9d59d76d67f4a240f94600ce6bba2c70ed3) 2022-03-07 00:02:27 -08:00
f1c8cb63b4 2022-03-06 nightly release (5167e9d59d76d67f4a240f94600ce6bba2c70ed3) 2022-03-06 00:02:44 -08:00
59ceb67b45 2022-03-05 nightly release (5167e9d59d76d67f4a240f94600ce6bba2c70ed3) 2022-03-05 00:02:31 -08:00
526746077c 2022-03-04 nightly release (b955a046cd7ac6178e8a23c855a98f3d546dec37) 2022-03-04 00:02:25 -08:00
9b5962b28a 2022-03-03 nightly release (715c000cf107a83583cf6292d61e121562296be9) 2022-03-03 00:02:38 -08:00
32c488b10c 2022-03-02 nightly release (81437e66c1cc02f3c18c60b0d3467fc80a51ae09) 2022-03-02 09:20:52 -08:00
54d1329999 2022-03-02 nightly release (2f957f513e6faebb001d60a544aedd8042ce7026) 2022-03-02 00:02:34 -08:00
e71a0f5247 2022-03-01 nightly release (5e86505693c4c7e518e9e08cfa206c6405df7f67) 2022-03-01 00:02:25 -08:00
4d45de45d4 2022-02-28 nightly release (6688487f3ec22b7e89553b8acd6782264061f5cd) 2022-02-28 00:05:23 -08:00
bc9703b4fe 2022-02-27 nightly release (6688487f3ec22b7e89553b8acd6782264061f5cd) 2022-02-27 00:02:20 -08:00
82fe813e3a 2022-02-26 nightly release (6688487f3ec22b7e89553b8acd6782264061f5cd) 2022-02-26 00:02:20 -08:00
bb2f184fe2 2022-02-25 nightly release (6688487f3ec22b7e89553b8acd6782264061f5cd) 2022-02-25 00:02:36 -08:00
143655fcc9 2022-02-24 nightly release (6688487f3ec22b7e89553b8acd6782264061f5cd) 2022-02-24 00:02:51 -08:00
ecf368e6b2 2022-02-23 nightly release (7807a83f6e677987e8cb0bdbebd04ccdd157b68b) 2022-02-23 00:02:44 -08:00
e8d0a25159 2022-02-22 nightly release (f41db99a5690bf0ae4d51d9cdb9aaff95703f6c6) 2022-02-22 00:02:30 -08:00
47698f9118 2022-02-21 nightly release (f41db99a5690bf0ae4d51d9cdb9aaff95703f6c6) 2022-02-21 00:02:38 -08:00
bbad85aa47 2022-02-20 nightly release (f41db99a5690bf0ae4d51d9cdb9aaff95703f6c6) 2022-02-20 00:03:46 -08:00
74e6ae00b6 2022-02-19 nightly release (1646a0033dda77eca980c40870524996b4ad1f76) 2022-02-19 00:02:40 -08:00
ffd57dc90c 2022-02-18 nightly release (d4f3d07ae251876054f5681afc44e0d6057d851b) 2022-02-18 12:41:03 -08:00
cbab909688 2022-02-18 nightly release (d4f3d07ae251876054f5681afc44e0d6057d851b) 2022-02-18 00:02:37 -08:00
56dccfef91 2022-02-17 nightly release (e0e1e0b114d57542e65a054d05a81618e786fe18) 2022-02-17 15:14:25 -08:00
35e605ec6f 2022-02-17 nightly release (bbac8c9c4816c87eae17a04b60d4103940c08f83) 2022-02-17 00:03:18 -08:00
7e58a2be96 2022-02-16 nightly release (47c69933558040158c1533f1b500d15153236b3b) 2022-02-16 00:02:25 -08:00
e61d57f299 2022-02-15 nightly release (47c69933558040158c1533f1b500d15153236b3b) 2022-02-15 00:02:42 -08:00
19bed12bb3 2022-02-14 nightly release (1776caf361fc2c652f0c00b2fd42714447cefc29) 2022-02-14 00:02:37 -08:00
e83d4e52c0 2022-02-13 nightly release (c73cc92eff3160121973930dca2a2927268dc2c1) 2022-02-13 00:02:31 -08:00
a8ce06044a 2022-02-12 nightly release (444191de5680e7c5526614d94adbbcd7cba985e2) 2022-02-12 00:02:34 -08:00
1222e07cd4 2022-02-11 nightly release (730fef25c71dfb7c7d3f403df48541cc0aac154d) 2022-02-11 00:02:29 -08:00
30eddeb999 2022-02-10 nightly release (239531fb3165fbca13a18febbabff493ea4fd55d) 2022-02-10 00:02:25 -08:00
b362168f8c 2022-02-09 nightly release (4b69a2373f8f77548fba82886ab0dc8c06a38d87) 2022-02-09 00:02:52 -08:00
641a582e7b 2022-02-08 nightly release (224093db113fd333a7cb8e5e07308de5098e4a62) 2022-02-08 00:02:38 -08:00
3053858b8d 2022-02-07 nightly release (5c6b897516ac59775d7d58692fad052c399c4ec3) 2022-02-07 00:02:26 -08:00
d804a55840 2022-02-06 nightly release (5c6b897516ac59775d7d58692fad052c399c4ec3) 2022-02-06 00:03:04 -08:00
49ebad53c5 2022-02-05 nightly release (f2f40ce870488b0cfc6e1d9c1cdea3a95f01a4c1) 2022-02-05 00:02:26 -08:00
e9259fa905 2022-02-04 nightly release (1ad53b51d03d9ff4085bcc02b3a65088ed4a6c80) 2022-02-04 00:02:34 -08:00
e2e9c916a5 2022-02-03 nightly release (58dabebcd746aad95a37bdfc7e60e5d22f0f5641) 2022-02-03 00:02:30 -08:00
72056d08cd 2022-02-02 nightly release (f20fa66f704a61b4570ce372add59c7469f44a96) 2022-02-02 00:03:00 -08:00
b5590f46d3 2022-02-01 nightly release (a319bce58d66d12cd71fbf54a145cf7b7563eebc) 2022-02-01 09:00:43 -08:00
2352fadbfa 2022-02-01 nightly release (8fa5cde3a9fab1f82bbb424312995035f2342eaa) 2022-02-01 00:02:33 -08:00
7ddf106b1f 2022-01-31 nightly release (8fa5cde3a9fab1f82bbb424312995035f2342eaa) 2022-01-31 00:02:57 -08:00
3e25201ab5 2022-01-30 nightly release (8fa5cde3a9fab1f82bbb424312995035f2342eaa) 2022-01-30 00:02:53 -08:00
d53c69395a 2022-01-29 nightly release (9413c0cd3e15c2b38e7df500613cff1e7951699e) 2022-01-29 00:02:29 -08:00
c8381acacb 2022-01-28 nightly release (fb0e27d38a8fdab4e1c14d6378c9e41cb30fd6a3) 2022-01-28 10:47:42 -08:00
573a6ad052 2022-01-28 nightly release (7aa4a1f63e14406807ff6cb45faabf0151a63db8) 2022-01-28 00:02:43 -08:00
aaa24811c5 2022-01-27 nightly release (12e01f78257479f91b0f23d8d93318bc92945c87) 2022-01-27 00:02:29 -08:00
a2f0cefe70 2022-01-26 nightly release (12e01f78257479f91b0f23d8d93318bc92945c87) 2022-01-26 00:02:37 -08:00
4d321910fa 2022-01-25 nightly release (b372be4211d40be92ffbb025cac0038ee3445141) 2022-01-25 00:02:51 -08:00
e5e237cdd2 2022-01-24 nightly release (9b3a56eecfab13877d32f0a5051e1584746668bc) 2022-01-24 00:02:35 -08:00
a031636e60 2022-01-23 nightly release (9b3a56eecfab13877d32f0a5051e1584746668bc) 2022-01-23 00:02:21 -08:00
f7e78364e4 2022-01-22 nightly release (7680a0ae9dce001265c34869af469c55653f8c04) 2022-01-22 00:02:54 -08:00
fe71938284 2022-01-21 nightly release (2eb4b05b94811286593171ad1c6f1f97b36cf665) 2022-01-21 00:02:27 -08:00
121e193266 2022-01-20 nightly release (f45e217c0158c247772f6491a18662cc972c29cd) 2022-01-20 00:03:13 -08:00
6ee1aed356 2022-01-19 nightly release (30739f532940a6dbc19bccb56442e6352bf3fed7) 2022-01-19 00:02:39 -08:00
c199e3cdb7 2022-01-18 nightly release (17540c5c80f5c6cd4e0fee42ec47d881e46f47f9) 2022-01-18 00:02:27 -08:00
1261c6d6bb 2022-01-17 nightly release (1ecfa1d61a3e56aab7f3b69c33fac9e9a0eebb6c) 2022-01-17 00:03:26 -08:00
d949a9746b 2022-01-16 nightly release (1ecfa1d61a3e56aab7f3b69c33fac9e9a0eebb6c) 2022-01-16 00:02:28 -08:00
f1436c776e 2022-01-15 nightly release (c43e0286a9fd234b98a0666c8539b65d0e114139) 2022-01-15 00:02:20 -08:00
050720060a 2022-01-14 nightly release (356af8f857d7c8d5948a438002757c4a4a9c45e8) 2022-01-14 00:02:26 -08:00
19172fdb82 2022-01-13 nightly release (60632a00fe6212159164d92ad69766925ab15c97) 2022-01-13 11:21:32 -08:00
9d73bfd9c8 2022-01-10 nightly release (2bed616e0fb1a937b1bb1eee8e6cf83734e839bd) 2022-01-10 00:02:45 -08:00
8e9a40233c 2022-01-09 nightly release (49a07c892265ed89ed8302db15af4647746f6543) 2022-01-09 00:03:02 -08:00
a7432d187f 2022-01-08 nightly release (0eb2fc608c0ea8c4150a6ba823e80a52e4d9d158) 2022-01-08 00:02:27 -08:00
d097728842 2022-01-07 nightly release (ddea6980fe7ce6168e13710164f06bd1b7ca1674) 2022-01-07 00:04:28 -08:00
65fabd7f04 2022-01-06 nightly release (e1aa5db108deb4f3e0faa95b703d4bbc9f7453b7) 2022-01-06 00:02:29 -08:00
39e21b875b 2022-01-05 nightly release (14457bb8cbaebf501872fc4183376eb6d7e62d81) 2022-01-05 00:03:09 -08:00
aa16a081e0 2022-01-03 nightly release (fa09099ba35fcd42347732ca3a5f8ddaf145da1b) 2022-01-03 00:02:28 -08:00
b526651566 2022-01-02 nightly release (ce86881afadc0fea628c7e47d64a4073f3e09894) 2022-01-02 00:05:04 -08:00
758a1e7d2d 2022-01-01 nightly release (ce86881afadc0fea628c7e47d64a4073f3e09894) 2022-01-01 00:02:20 -08:00
21348f6cdb 2021-12-31 nightly release (7bfaa230be303280740b1f94574fb6bc4aee2758) 2021-12-31 00:02:26 -08:00
d94f86e906 2021-12-30 nightly release (2b00dbbbbcb23dc506072a81d04145fb5f983490) 2021-12-30 00:04:33 -08:00
6d3cc13581 2021-12-29 nightly release (a0c99a8d3bce895c6bb6a220e98ca84274eb33dd) 2021-12-29 00:03:09 -08:00
766e7ac1bf 2021-12-28 nightly release (795af1578ccade97792646e02e5ec3c295385501) 2021-12-28 00:05:39 -08:00
5796475e9f 2021-12-27 nightly release (795af1578ccade97792646e02e5ec3c295385501) 2021-12-27 00:03:03 -08:00
59aa7dd7b7 2021-12-26 nightly release (795af1578ccade97792646e02e5ec3c295385501) 2021-12-26 00:02:26 -08:00
788fb7ea22 2021-12-25 nightly release (795af1578ccade97792646e02e5ec3c295385501) 2021-12-25 00:02:28 -08:00
3264153060 2021-12-24 nightly release (795af1578ccade97792646e02e5ec3c295385501) 2021-12-24 00:02:29 -08:00
81d11862e2 2021-12-23 nightly release (a421ee0e52e57e854656d40df3d8280af27ab4a0) 2021-12-23 00:02:56 -08:00
ec8f98980f 2021-12-22 nightly release (6217fee96bf1dc4e1343935d7ff87053f9bf22e4) 2021-12-22 00:02:42 -08:00
8f2a8717fb 2021-12-21 nightly release (5651e1e3ad435ec45b9435b9d78ff2fbc715fa0b) 2021-12-21 00:02:26 -08:00
4811137a2b 2021-12-20 nightly release (7ea86dfdb162758c9fbbf6807ab1dd778591c062) 2021-12-20 00:03:21 -08:00
f0e58f4f9b 2021-12-19 nightly release (fb34af1b211d0b0ed7c2fcc63599215c8fb107c2) 2021-12-19 00:02:54 -08:00
ff227a22b7 2021-12-18 nightly release (9ee3006d583e9853da79f7bd12431c67a863519a) 2021-12-18 00:02:27 -08:00
bb1f3fce83 2021-12-17 nightly release (4a6a5d163012a81268f0db20e9fcc3a926dd4d54) 2021-12-17 00:02:23 -08:00
54d8b577b7 2021-12-16 nightly release (3d358a76783acef87f282cc0fb20818eeb4c133c) 2021-12-16 00:02:38 -08:00
1446d40fb4 2021-12-15 nightly release (3d358a76783acef87f282cc0fb20818eeb4c133c) 2021-12-15 00:02:58 -08:00
785dab1d01 2021-12-14 nightly release (3d358a76783acef87f282cc0fb20818eeb4c133c) 2021-12-14 00:02:31 -08:00
95346adead 2021-12-13 nightly release (e948856ce7ead632483e35714a9a27ea2fa68ee7) 2021-12-13 00:05:52 -08:00
18dc1aa4a1 2021-12-12 nightly release (e948856ce7ead632483e35714a9a27ea2fa68ee7) 2021-12-12 00:02:38 -08:00
0e83eb8b88 2021-12-11 nightly release (e948856ce7ead632483e35714a9a27ea2fa68ee7) 2021-12-11 00:03:25 -08:00
bfd8a5fd5f 2021-12-10 nightly release (e948856ce7ead632483e35714a9a27ea2fa68ee7) 2021-12-10 00:02:19 -08:00
fc105afbd8 2021-12-09 nightly release (8b20dde93240642b3fce14b304e2d5e6d09d9891) 2021-12-09 00:02:36 -08:00
98fc2d6d95 2021-12-08 nightly release (e06af7913692641dbcad1cf4d7931f32b8b4c2a7) 2021-12-08 09:28:55 -08:00
4c5efdfc23 2021-12-08 nightly release (bd8a4a937216433b281a333905175214a12f5fc1) 2021-12-08 00:02:35 -08:00
f12c9eb1a0 2021-12-07 nightly release (38c576cfef0473e2d1921e83ed52a2b4364cdede) 2021-12-07 00:04:14 -08:00
7ae7bea489 2021-12-06 nightly release (6a4fa860262951ca14db0c53fc7d60c3dbc48af4) 2021-12-06 00:02:59 -08:00
ea056f797f 2021-12-05 nightly release (6a4fa860262951ca14db0c53fc7d60c3dbc48af4) 2021-12-05 00:07:22 -08:00
6c54275622 2021-12-04 nightly release (6a4fa860262951ca14db0c53fc7d60c3dbc48af4) 2021-12-04 00:04:13 -08:00
ef07820bab 2021-12-03 nightly release (abda069ce203bbe9b655a939a58a7fedca86af80) 2021-12-03 00:03:58 -08:00
afbb6e88ab 2021-12-02 nightly release (cbe0a38d8c99e5c860d61818b2452ee3efa6d22f) 2021-12-02 00:02:27 -08:00
4b0e1e1c0a 2021-12-01 nightly release (e534c5efd7e7a0ed476fa1e9ec2f37ccd3a1b63d) 2021-12-01 00:02:40 -08:00
379f835b6c 2021-11-30 nightly release (1342f19a8c2d92ed86bc32a0b3a6fc9b35b3e3e3) 2021-11-30 00:06:12 -08:00
9212bb98d6 2021-11-29 nightly release (6ae34ea6f8b65d2ad36e417c3d525507901cfd7f) 2021-11-29 00:06:32 -08:00
1b6bb4f7b0 2021-11-28 nightly release (b10929a14a32c90ac5943cc3f27a3a9105e6f53f) 2021-11-28 00:10:41 -08:00
13468ed9ea 2021-11-27 nightly release (cffad597ea620600472c509b642a9ad03a56fdbe) 2021-11-27 00:05:38 -08:00
f547c5c960 2021-11-26 nightly release (5fdcc20d8d96a6b42387f57c2ce331516ad94228) 2021-11-26 00:07:52 -08:00
dfa8a087e3 2021-11-25 nightly release (5fdcc20d8d96a6b42387f57c2ce331516ad94228) 2021-11-25 00:04:09 -08:00
84395832d9 2021-11-24 nightly release (b5b62b340891f041b378681577c74922d21700a9) 2021-11-24 00:04:25 -08:00
e42361b602 2021-11-23 nightly release (d6a68e0b8dfe314da642e17e84b1f4cb095d00ba) 2021-11-23 00:07:38 -08:00
7cdf1ed9bd 2021-11-22 nightly release (e1c449ff342ee00a4b25e1651bd08a41b7e9fda4) 2021-11-22 00:03:38 -08:00
95589e9ba3 2021-11-21 nightly release (c7ecf1498d961415006c3710ac8d99166fe5d634) 2021-11-21 00:07:57 -08:00
cf31235b62 2021-11-20 nightly release (75955e4ef8a941d72db20c5098371325bd83ffd1) 2021-11-20 00:05:00 -08:00
15077954a3 2021-11-19 nightly release (ca921117589dfd8eca7c18bb2c31350dd26bbd45) 2021-11-19 00:02:50 -08:00
40631bb9cd 2021-11-18 nightly release (980778713588be8a583557c4693634c3782b00c4) 2021-11-18 00:02:53 -08:00
4eb447d938 2021-11-17 nightly release (aa9ee8d02aecee1a01f7e4fe22fd0660851227e8) 2021-11-17 00:06:20 -08:00
bfc110e848 2021-11-16 nightly release (722af775c3ff01c4af4f3fe79bb12997c8ab665a) 2021-11-16 00:05:37 -08:00
649bf082f6 2021-11-15 nightly release (1adeeabdc0c8832420c091c5c668843768530d7f) 2021-11-15 00:03:03 -08:00
228a46daa1 2021-11-14 nightly release (1adeeabdc0c8832420c091c5c668843768530d7f) 2021-11-14 00:06:12 -08:00
39c478062a 2021-11-13 nightly release (80339e85c5fea7c1f3ef1dd63ce67c049691194f) 2021-11-13 00:03:34 -08:00
96a56d12b5 2021-11-12 nightly release (613c1aca6dcc5c9764d81ddfb1e33f7b7b06bd5f) 2021-11-12 00:02:50 -08:00
65f638ab6c 2021-11-11 nightly release (1f07efd0f21e8750967c907c3f96b5344d3ab8c0) 2021-11-11 00:02:47 -08:00
4670c0042a 2021-11-10 nightly release (6b44e75f6bccca7acc8ec31a635f1175c265ac54) 2021-11-10 00:05:00 -08:00
ce5eb6a07a 2021-11-09 nightly release (4b1d044498f49ad5f770354174070a4277279c2d) 2021-11-09 00:02:29 -08:00
05a2aa8a7f 2021-11-08 nightly release (191b48b12f33e1e9525882da0c62b68686d69e42) 2021-11-08 00:04:23 -08:00
2512eac760 2021-11-07 nightly release (9fb3ba9d7bc5f6f8852a2bafe053b16a26d73e51) 2021-11-07 00:02:41 -07:00
9f25d95f9b 2021-11-06 nightly release (ae501a9727c16b8bc83c2fd7b40d9d801133ac91) 2021-11-06 00:04:47 -07:00
458c445463 2021-11-05 nightly release (f1754319e32f302a53520ac3608addb31402209b) 2021-11-05 00:03:07 -07:00
f14f488fd2 2021-11-04 nightly release (2486061c72c12ac7eb53946448f0a29525bf8cd1) 2021-11-04 00:09:46 -07:00
755da00eda 2021-11-03 nightly release (54241a9cfa1d4c5ee2096cd9acec1ae7bf623c37) 2021-11-03 00:07:22 -07:00
c81e8a07b2 2021-11-02 nightly release (c65f332da47eb9bc76aefc50122cae2630fff2cc) 2021-11-02 00:12:01 -07:00
c0f53f117a 2021-11-01 nightly release (97f29bda59deab8c063cf01f0a8ff4321b93c55e) 2021-11-01 00:11:29 -07:00
79922746b0 2021-10-31 nightly release (510e3026a9bdac6e347e8756c7750029201ecc82) 2021-10-31 00:03:48 -07:00
1a13e431d3 2021-10-30 nightly release (c00806beda43063a0978a81aa4e6ce42cb893fe0) 2021-10-30 00:04:21 -07:00
56587756dc 2021-10-29 nightly release (26241994b26df626ca81ec7c666b54bea90e2dd8) 2021-10-29 00:06:31 -07:00
729c0ef82e 2021-10-28 nightly release (fae1c0a4340ef4698f43875f5ed84ba512bdcd95) 2021-10-28 00:06:50 -07:00
4a04d2b0fe 2021-10-27 nightly release (c88da701e2f94987ea58a0980cc19cfb956cd980) 2021-10-27 00:02:48 -07:00
85a7535c03 2021-10-26 nightly release (0e371e413dd12b93cf50ad2441652ee6e0eb7217) 2021-10-26 00:11:04 -07:00
52fec21b2f 2021-10-25 nightly release (83f70db95cf9f53a98fae63d511b5013279a9ac2) 2021-10-25 00:13:15 -07:00
ef0fca4249 2021-10-24 nightly release (83f70db95cf9f53a98fae63d511b5013279a9ac2) 2021-10-24 00:03:57 -07:00
db84da55b7 2021-10-23 nightly release (83f70db95cf9f53a98fae63d511b5013279a9ac2) 2021-10-23 00:03:23 -07:00
5c9ba2feff 2021-10-22 nightly release (9d4549295d8da634771d6040c224d21928805be7) 2021-10-22 00:04:51 -07:00
15fecc4c83 2021-10-21 nightly release (f8f04d5424f9ea3068bcd16d1c799f161944936f) 2021-10-21 00:02:52 -07:00
03975588d7 2021-10-20 nightly release (32e3003726070597da9c6237e59c8ba09744cfe2) 2021-10-20 00:06:35 -07:00
c186c995df 2021-10-19 nightly release (0d203a16fed340488be0966d377e8a6f7f8f4244) 2021-10-19 00:04:57 -07:00
15ef6a1052 2021-10-18 nightly release (49a1d7bfcb9b0fc5f0ee62d91f5d6c76e4cf9dc8) 2021-10-18 00:06:57 -07:00
cb85f701d4 2021-10-17 nightly release (49a1d7bfcb9b0fc5f0ee62d91f5d6c76e4cf9dc8) 2021-10-17 00:08:45 -07:00
1392b8260e 2021-10-16 nightly release (49a1d7bfcb9b0fc5f0ee62d91f5d6c76e4cf9dc8) 2021-10-16 00:05:17 -07:00
8640112dea 2021-10-15 nightly release (49a1d7bfcb9b0fc5f0ee62d91f5d6c76e4cf9dc8) 2021-10-15 00:04:15 -07:00
d1b988e47c 2021-10-14 nightly release (6634570aef94b34dfc3a40865c9ba057356e6a47) 2021-10-14 00:04:21 -07:00
da7bfd9bcc 2021-10-13 nightly release (06a156efc75f726ca95cadc043bab0c0d75d7548) 2021-10-13 00:04:56 -07:00
e5dba35501 2021-10-12 nightly release (99711133403eff8474af0e710a45d367f4fb5e66) 2021-10-12 00:17:43 -07:00
90bf35d772 2021-10-11 nightly release (99711133403eff8474af0e710a45d367f4fb5e66) 2021-10-11 00:03:33 -07:00
29fe93c375 2021-10-10 nightly release (b96c7aea73705a94e584084fa410a7392cb7523f) 2021-10-10 00:04:45 -07:00
654e2c11ec 2021-10-09 nightly release (85b562dd2bd0a0738159746ce83bf110effcc065) 2021-10-09 00:05:22 -07:00
cba9960d6a 2021-10-08 nightly release (ca363d1e22f56722855d2c937eeb508784ad4e33) 2021-10-08 00:07:12 -07:00
a1937d7c45 2021-10-07 nightly release (67970e8c9b326e8e5d6e30ce652ec965f3599f3f) 2021-10-07 00:15:48 -07:00
6102554be1 2021-10-06 nightly release (3bd26792c06a4537883537997078de9d4a73e48d) 2021-10-06 00:08:48 -07:00
a21f2ab401 2021-10-05 nightly release (6eb3a1c8310253c6875d1d703f3cd00cdd9b00f1) 2021-10-05 00:04:15 -07:00
125a559b5c 2021-10-04 nightly release (89ed9bdaee468195faed1eb230960491eb350304) 2021-10-04 00:03:29 -07:00
a7b6201b1e 2021-10-03 nightly release (29c0725e8a0de91e1a4338dec785d1638aa02931) 2021-10-03 00:05:49 -07:00
2cead16bcb 2021-10-02 nightly release (10f62942818281eb99e0bef5f1afcc71c66599a7) 2021-10-02 00:12:13 -07:00
03686b218d 2021-10-01 nightly release (8297a16cc07fa88799fd221cca8d5efa1b71fe5f) 2021-10-01 00:15:23 -07:00
6a58458563 2021-09-30 nightly release (3900509b7da866c22e08120e73a0b54cc30e4de7) 2021-09-30 00:06:50 -07:00
13ee5d4f98 2021-09-29 nightly release (93852bb2d41d90b6ac660015d79f7474bcebb774) 2021-09-29 00:02:57 -07:00
01e3a7f7e7 2021-09-28 nightly release (63bb7c6dbab5644c6f95ccfb66de00db40fa6340) 2021-09-28 00:04:10 -07:00
1a7aea8cb1 2021-09-27 nightly release (146817c9d07ecc6f3af8111f31e37a8c64948cc0) 2021-09-27 00:05:24 -07:00
55eac26522 2021-09-26 nightly release (146817c9d07ecc6f3af8111f31e37a8c64948cc0) 2021-09-26 00:07:02 -07:00
eb64e52a57 2021-09-25 nightly release (af7238f2149fd23b87dbec0b5e0a2e5a82e7f0d1) 2021-09-25 00:03:57 -07:00
af95408d21 2021-09-24 nightly release (d78b3909e83fe6b8f3629bd7013528edbd7edc26) 2021-09-24 00:04:48 -07:00
42cf661a25 2021-09-23 nightly release (0ca1102609e9d2b06bad6965b695c0d76d8ffe46) 2021-09-23 00:05:23 -07:00
701771a879 2021-09-22 nightly release (3f5f721ab34e8b540bba47efbb9fc93d1bac0921) 2021-09-22 00:04:12 -07:00
6cf311ca6d 2021-09-21 nightly release (0dc98728bc06e1e0a553b8ad4ed2591b688cc72f) 2021-09-21 00:06:56 -07:00
5b07b6ad2f 2021-09-20 nightly release (88032d894311e5c0aed8bbc21a4306bc6be4af82) 2021-09-20 00:03:29 -07:00
87df24cd30 2021-09-19 nightly release (88032d894311e5c0aed8bbc21a4306bc6be4af82) 2021-09-19 00:03:22 -07:00
bd05cbf977 2021-09-18 nightly release (6707dfeefb00512eba1d95cb91306671638dc4d5) 2021-09-18 00:03:25 -07:00
64fd318420 2021-09-17 nightly release (8c38d141df429459ea6891847950ce157ac82b2c) 2021-09-17 00:04:16 -07:00
20ba201201 2021-09-16 nightly release (2bb898e039d90d3897cc0fbd1886f2b2fe4dbcfb) 2021-09-16 00:03:54 -07:00
64187fc690 2021-09-15 nightly release (6ab97fbc287ea89ce81abcb24829b502aeb309cc) 2021-09-15 00:03:13 -07:00
99da1f699d 2021-09-14 nightly release (c4073af61d4e530f8627dced870f42526d93dcaf) 2021-09-14 00:06:38 -07:00
84a9f5031f 2021-09-13 nightly release (d46ea03871562d4c93a9dfedcb211051338b44a9) 2021-09-13 00:09:58 -07:00
58df55da4d 2021-09-12 nightly release (dd2d48df07d6b9354f3e448bf66655941a22d1e1) 2021-09-12 00:04:31 -07:00
6862deee75 2021-09-11 nightly release (ade4bf3e82ea369e77d511a796ba936ce281aa89) 2021-09-11 00:02:27 -07:00
5286f993ad 2021-09-10 nightly release (11ef68938c4dda67efb9944ec4f3521776e0f9bc) 2021-09-10 00:05:13 -07:00
c99e75cc1e 2021-09-09 nightly release (15532595209d2daf34d35e10f8d3d3b64966aea2) 2021-09-09 00:09:14 -07:00
58c529752a 2021-09-08 nightly release (1a1fb31cfa3135e56c533da037b5d8dc6981b7fa) 2021-09-08 00:09:21 -07:00
277d05ac57 2021-09-07 nightly release (0c4e4e588e2e3308c659f741e7bc5cabf0975c09) 2021-09-07 00:02:23 -07:00
b7e88bfb19 2021-09-06 nightly release (0c4e4e588e2e3308c659f741e7bc5cabf0975c09) 2021-09-06 00:09:57 -07:00
d5e8254a4a 2021-09-05 nightly release (0c4e4e588e2e3308c659f741e7bc5cabf0975c09) 2021-09-05 00:04:55 -07:00
42fac310f6 2021-09-04 nightly release (0c4e4e588e2e3308c659f741e7bc5cabf0975c09) 2021-09-04 00:04:19 -07:00
7ee25ea72d 2021-09-03 nightly release (0c4e4e588e2e3308c659f741e7bc5cabf0975c09) 2021-09-03 00:09:38 -07:00
c9eff59b96 2021-09-02 nightly release (0c4e4e588e2e3308c659f741e7bc5cabf0975c09) 2021-09-02 00:07:41 -07:00
9c414cc253 2021-09-01 nightly release (0c4e4e588e2e3308c659f741e7bc5cabf0975c09) 2021-09-01 10:47:03 -07:00
aab14ffd43 2021-09-01 nightly release (8406dba65af414f4ac9bb569ca8d70752611e4ba) 2021-09-01 00:05:36 -07:00
cca8c1fe99 2021-08-31 nightly release (8406dba65af414f4ac9bb569ca8d70752611e4ba) 2021-08-31 00:05:17 -07:00
47829fdabc 2021-08-30 nightly release (8406dba65af414f4ac9bb569ca8d70752611e4ba) 2021-08-30 00:03:14 -07:00
5ceddc29e7 2021-08-29 nightly release (8406dba65af414f4ac9bb569ca8d70752611e4ba) 2021-08-29 00:02:17 -07:00
fc8a7a5769 2021-08-28 nightly release (8406dba65af414f4ac9bb569ca8d70752611e4ba) 2021-08-28 00:04:29 -07:00
c9287bd4b7 2021-08-27 nightly release (510d2ece81c18ba3f9bbcbc509effe281a77206c) 2021-08-27 00:06:04 -07:00
3d4fed4dc0 2021-08-26 nightly release (f4bc28990f6edcaf6bfc9e9737a70ea0be514198) 2021-08-26 00:03:25 -07:00
ece2e093bc 2021-08-25 nightly release (8dda299d9631e0f6e121dcb9f8f94bbdd8435515) 2021-08-25 00:11:42 -07:00
0d14ad556e 2021-08-24 nightly release (f5d585391d13287250e85cbd55a17c5e0b8ac2a8) 2021-08-24 00:11:28 -07:00
ca87998c97 2021-08-23 nightly release (d6133b2fe6b863dd49fb21641bd04e24e19ac794) 2021-08-23 00:02:58 -07:00
058c01d851 2021-08-22 nightly release (2289a12f21c54da93bf5d696e3f9aea83dd9c10d) 2021-08-22 00:03:02 -07:00
161d945f2d 2021-08-21 nightly release (a8de0d83fed2d68512c0b0e20716bd63e6769469) 2021-08-21 00:02:47 -07:00
38b78b9bfe 2021-08-20 nightly release (ccca66597ab7079c39b744c2906171aa63e7db61) 2021-08-20 00:13:47 -07:00
41b2532c21 2021-08-19 nightly release (2aa19f33c6272cb016c629792ddc70cf9636fc9a) 2021-08-19 00:02:54 -07:00
67788eefcd 2021-08-18 nightly release (cd5e9dcc1dd2d240aa034b1f02b9886b44b1efa6) 2021-08-18 00:03:53 -07:00
c21b6c1529 2021-08-17 nightly release (075024b9a34904ec3ecdab3704c3bcaa329bdfea) 2021-08-17 00:08:09 -07:00
100f6e1ee6 2021-08-16 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-16 00:03:21 -07:00
b27b86ad55 2021-08-15 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-15 00:07:23 -07:00
fa0a4e5a49 2021-08-14 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-14 00:09:34 -07:00
2cbeb755f3 2021-08-13 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-13 00:09:28 -07:00
c0abc5fe82 2021-08-12 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-12 00:02:42 -07:00
54912fec6b 2021-08-11 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-11 14:52:11 -07:00
bcd79e571e 2021-08-11 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-11 00:03:01 -07:00
56b302f2a7 2021-08-10 nightly release (3c1d1170a4ca2e50a846c69cc61583a29952afee) 2021-08-10 00:03:00 -07:00
269b2a58d4 2021-08-09 nightly release (30214aef2d831067b8962398321f1fb20d359c97) 2021-08-09 00:04:07 -07:00
fd62ee1fff 2021-08-08 nightly release (30214aef2d831067b8962398321f1fb20d359c97) 2021-08-08 00:04:31 -07:00
2b4586f493 2021-08-07 nightly release (4bd54cebe0b736acbcb8f040df897d17956bb71b) 2021-08-07 00:03:28 -07:00
f9574bca64 2021-08-06 nightly release (4bd54cebe0b736acbcb8f040df897d17956bb71b) 2021-08-06 00:04:35 -07:00
b9e662f0e4 2021-08-05 nightly release (4bd54cebe0b736acbcb8f040df897d17956bb71b) 2021-08-05 00:02:27 -07:00
726dc164e6 2021-08-04 nightly release (773a8eede437de972311b21824694e4fb120f6a2) 2021-08-04 00:07:56 -07:00
e2c5ce2ac5 2021-08-03 nightly release (10d3a2c13a1ae547ee5ece5838d66432158d4b22) 2021-08-03 00:02:25 -07:00
4acea95c07 2021-08-02 nightly release (7adb78017a81b656d22864ec97c072519a7dca63) 2021-08-02 00:03:19 -07:00
7e69745b3b 2021-08-01 nightly release (32b37ba2462d9d87337a4fe332f95524a4c49777) 2021-08-01 00:02:33 -07:00
19454af809 2021-07-31 nightly release (7521addede276bd978fc2b113a6f7d010273bdf1) 2021-07-31 00:02:30 -07:00
8b5dbd9749 2021-07-30 nightly release (8f519c5e07e9440a4beb519463302c0cdf2a4b37) 2021-07-30 00:07:42 -07:00
b24169897d 2021-07-29 nightly release (cac4aa71ca262dadd6a887bd1f449b3a35f03bf3) 2021-07-29 00:07:41 -07:00
145a20b1c8 2021-07-28 nightly release (df18d05429d8283ad7b848fa7fca0e06b7ec630b) 2021-07-28 00:03:32 -07:00
7fce0bbbd8 2021-07-27 nightly release (d2594fa5380954eba7d013044ebdde3c041b650d) 2021-07-27 00:02:30 -07:00
fe20ae42aa 2021-07-26 nightly release (8152433de2420fc64063366bebd7b1feadf38d1f) 2021-07-26 00:03:08 -07:00
68fa6f6579 2021-07-25 nightly release (8152433de2420fc64063366bebd7b1feadf38d1f) 2021-07-25 00:04:58 -07:00
cf42c96705 2021-07-24 nightly release (e856a45283c6a215c78597d05f6e8dfeb0030c49) 2021-07-24 00:03:01 -07:00
b324086eca 2021-07-23 nightly release (a9b0a921d592b328e7e80a436ef065dadda5f01b) 2021-07-23 00:04:42 -07:00
2bfbfd8285 2021-07-21 nightly release (94965212e5bf959b029e59d685162b1929bb4c31) 2021-07-21 00:02:20 -07:00
10d38a8b75 2021-07-19 nightly release (94965212e5bf959b029e59d685162b1929bb4c31) 2021-07-19 00:03:15 -07:00
590290b1d0 2021-07-18 nightly release (94965212e5bf959b029e59d685162b1929bb4c31) 2021-07-18 00:02:35 -07:00
d4adc41437 2021-07-17 nightly release (94965212e5bf959b029e59d685162b1929bb4c31) 2021-07-17 00:03:15 -07:00
604c318ee0 2021-07-16 nightly release (94965212e5bf959b029e59d685162b1929bb4c31) 2021-07-16 00:02:40 -07:00
d88bfc953f 2021-07-15 nightly release (94965212e5bf959b029e59d685162b1929bb4c31) 2021-07-15 00:02:11 -07:00
7a317743cf 2021-07-14 nightly release (60382de455ea5f860d5787fac72ea100b7a405bb) 2021-07-14 00:03:10 -07:00
98f637eb78 2021-07-13 nightly release (8a2c7d902fb159bb57a0cf46f3a5ba74095cc34a) 2021-07-13 00:02:45 -07:00
27cbbb870c 2021-07-12 nightly release (76c0f223d3ff430369a2864cf4e05464b1bfb688) 2021-07-12 00:03:04 -07:00
55e9cf2d89 2021-07-11 nightly release (76c0f223d3ff430369a2864cf4e05464b1bfb688) 2021-07-11 00:04:40 -07:00
abc594d345 2021-07-10 nightly release (76c0f223d3ff430369a2864cf4e05464b1bfb688) 2021-07-10 00:05:52 -07:00
3b69ec8047 2021-07-09 nightly release (80797d03e072d32c36fd26589f03368b1536001d) 2021-07-09 00:02:44 -07:00
fc79ae3d0e 2021-07-08 nightly release (c03f99f3ef2db0cd61f9bf3813492cd9fda9ce79) 2021-07-08 00:02:52 -07:00
273fb34c2f 2021-07-07 nightly release (5da507b57bee31805217889b9f8ff673915dbc3a) 2021-07-07 00:03:41 -07:00
b2bec4fed4 2021-07-06 nightly release (5576c7bdd1a21187ae4ff6bc6c584555d5470a43) 2021-07-06 00:02:14 -07:00
fb10eeee5b 2021-07-05 nightly release (5576c7bdd1a21187ae4ff6bc6c584555d5470a43) 2021-07-05 00:06:20 -07:00
8ab947ade6 2021-07-04 nightly release (5576c7bdd1a21187ae4ff6bc6c584555d5470a43) 2021-07-04 00:02:48 -07:00
17a841ec7b 2021-07-03 nightly release (5576c7bdd1a21187ae4ff6bc6c584555d5470a43) 2021-07-03 00:02:56 -07:00
b31c9ebcab 2021-07-02 nightly release (5576c7bdd1a21187ae4ff6bc6c584555d5470a43) 2021-07-02 00:02:43 -07:00
0487088661 2021-07-01 nightly release (5576c7bdd1a21187ae4ff6bc6c584555d5470a43) 2021-07-01 00:02:35 -07:00
f502a6f6b9 2021-06-30 nightly release (5bc28c897e5d00c0a839de9692b9b54de5294aff) 2021-06-30 00:02:26 -07:00
1f6616c269 2021-06-29 nightly release (d71e7ae740f635534594075fc3060e24c399d0dc) 2021-06-29 00:03:46 -07:00
d3c62eb854 2021-06-28 nightly release (3bfe15085d6a01b3accf75647d12c70084392a61) 2021-06-28 00:02:36 -07:00
be1a85d8c7 2021-06-27 nightly release (dae25c2002a0d7201588e6ff60316a8d9ace88a8) 2021-06-27 00:02:32 -07:00
f82186a4bb 2021-06-26 nightly release (ad69e2fd1120ac37f826c09ee2f1654f1d5c80b2) 2021-06-26 00:02:35 -07:00
9f626092c9 2021-06-25 nightly release (2dedd96dd259a37f7a812856b43de29a14381aee) 2021-06-25 00:04:26 -07:00
1221896926 2021-06-24 nightly release (5bd49c3396e7dd0380b0ee8633a6ae7c3791e479) 2021-06-24 00:03:03 -07:00
61ec571d74 2021-06-23 nightly release (5bd49c3396e7dd0380b0ee8633a6ae7c3791e479) 2021-06-23 00:02:34 -07:00
360e0ec73e 2021-06-22 nightly release (5bd49c3396e7dd0380b0ee8633a6ae7c3791e479) 2021-06-22 00:02:33 -07:00
143c23e586 2021-06-21 nightly release (3815a013ed76e2a0a0b15fbcd0d419d9be322254) 2021-06-21 00:03:00 -07:00
d65834d579 2021-06-20 nightly release (3815a013ed76e2a0a0b15fbcd0d419d9be322254) 2021-06-20 00:05:17 -07:00
932d09235e 2021-06-19 nightly release (3815a013ed76e2a0a0b15fbcd0d419d9be322254) 2021-06-19 00:03:50 -07:00
eed1219e4b 2021-06-18 nightly release (be038d89898d0d2111b8acedefd08ceed62664cb) 2021-06-18 00:02:08 -07:00
7be6ef5eeb 2021-06-17 nightly release (be038d89898d0d2111b8acedefd08ceed62664cb) 2021-06-17 00:02:32 -07:00
d7ab6005b9 2021-06-16 nightly release (be038d89898d0d2111b8acedefd08ceed62664cb) 2021-06-16 00:03:01 -07:00
f8fb474ad9 2021-06-15 nightly release (1fc3576d97b5c551ea1add6e81da530070f2e03f) 2021-06-15 00:03:05 -07:00
c742b6c9c3 2021-06-14 nightly release (1fc3576d97b5c551ea1add6e81da530070f2e03f) 2021-06-14 00:02:18 -07:00
cb3b64cb01 2021-06-13 nightly release (1fc3576d97b5c551ea1add6e81da530070f2e03f) 2021-06-13 00:02:19 -07:00
54dc5817a9 2021-06-12 nightly release (1fc3576d97b5c551ea1add6e81da530070f2e03f) 2021-06-12 00:03:35 -07:00
5dc15963c2 2021-06-11 nightly release (1fc3576d97b5c551ea1add6e81da530070f2e03f) 2021-06-11 00:02:07 -07:00
ddaf6a0647 2021-06-10 nightly release (2f395f3b5466b72638847df37f5b3948ae4c5948) 2021-06-10 00:02:43 -07:00
210259b208 2021-06-09 nightly release (77dde35f1a55aaebc7ad3df53edb6796a1183a24) 2021-06-09 00:02:29 -07:00
89e6f30509 2021-06-08 nightly release (77dde35f1a55aaebc7ad3df53edb6796a1183a24) 2021-06-08 00:02:40 -07:00
f7bfc7bb4d 2021-06-07 nightly release (de40c8e495ffc7b4042ac544ba38759c4dcb5d50) 2021-06-07 00:02:39 -07:00
216f8135a8 2021-06-06 nightly release (0a5bfa99198a1c07e4eeec35dd8c20082a05f63a) 2021-06-06 00:04:49 -07:00
93404aa88f 2021-06-05 nightly release (c769300301e8bc775e54cdd114e2beaa11b1f893) 2021-06-05 00:02:17 -07:00
ba9b756a30 2021-06-04 nightly release (f87aa23125ff92520204fa0ca201c2d169fd3e17) 2021-06-04 00:02:51 -07:00
abca349be8 2021-06-03 nightly release (f87aa23125ff92520204fa0ca201c2d169fd3e17) 2021-06-03 00:07:09 -07:00
789de8268a 2021-06-02 nightly release (1d37f415671976c36f6bf3fa4b83384db066fc2f) 2021-06-02 00:03:00 -07:00
2916b4e5e9 2021-06-01 nightly release (223725cfb08fc6915597d1e16f11d7c51c3c2934) 2021-06-01 00:02:16 -07:00
d13f843261 2021-05-31 nightly release (ea465f73783a130b7a21200a2ec2fa01c885a63b) 2021-05-31 00:02:32 -07:00
be3599d1b9 2021-05-30 nightly release (d68df54269552dc8312b7c2eba23be20c255c59f) 2021-05-30 00:02:14 -07:00
9b497f13f4 2021-05-29 nightly release (c9af4c2636c7ca27be15f39f16512c2f5f36b7fe) 2021-05-29 00:02:07 -07:00
8149145c71 2021-05-28 nightly release (934f6dca65a7521aec7a13a1156b21551196bba0) 2021-05-28 00:02:43 -07:00
fa0e02b7cf 2021-05-27 nightly release (58d1b3639bc07f9519de18e5a18e575f260c7eeb) 2021-05-27 00:02:34 -07:00
b530f7c66b 2021-05-26 nightly release (cf395c071820e4d98a960bc761524b655d262bb3) 2021-05-26 00:04:03 -07:00
6b0e363bd3 2021-05-25 nightly release (f29e75c4dcc3454d50849f3a4670c6ae1d4d3142) 2021-05-25 00:03:02 -07:00
c375b9af1f 2021-05-24 nightly release (e8c6a65074aa039b749edab2b968a4885550dbde) 2021-05-24 00:03:12 -07:00
8c318c5cdd 2021-05-23 nightly release (e8c6a65074aa039b749edab2b968a4885550dbde) 2021-05-23 00:03:29 -07:00
f8f3346997 2021-05-22 nightly release (e8c6a65074aa039b749edab2b968a4885550dbde) 2021-05-22 00:04:14 -07:00
f3a9779b78 2021-05-21 nightly release (e8c6a65074aa039b749edab2b968a4885550dbde) 2021-05-21 00:02:16 -07:00
94e33c13cd 2021-05-20 nightly release (00a46a5eb46073807ec3d28dfd83bf07b206530f) 2021-05-20 00:02:33 -07:00
c5de2f0f2c 2021-05-19 nightly release (00a46a5eb46073807ec3d28dfd83bf07b206530f) 2021-05-19 00:10:34 -07:00
19537812bc 2021-05-18 nightly release (00a46a5eb46073807ec3d28dfd83bf07b206530f) 2021-05-18 00:02:24 -07:00
fc348d8ad2 2021-05-17 nightly release (00a46a5eb46073807ec3d28dfd83bf07b206530f) 2021-05-17 00:02:44 -07:00
7d615e312d 2021-05-16 nightly release (00a46a5eb46073807ec3d28dfd83bf07b206530f) 2021-05-16 00:02:20 -07:00
537fc9b889 2021-05-15 nightly release (00a46a5eb46073807ec3d28dfd83bf07b206530f) 2021-05-15 00:04:07 -07:00
4fb06c9e93 2021-05-14 nightly release (9b95568dc3a81de60435ad155ec87f625f4b69a2) 2021-05-14 00:02:23 -07:00
40b7867cb5 2021-05-13 nightly release (d212bf186390fdcc3b36cd3b41489544c4f50b75) 2021-05-13 00:02:23 -07:00
ef9586b10b 2021-05-12 nightly release (0d4dc6cb39184c2a6ef48cc5238f4df60ec9f14d) 2021-05-12 00:03:01 -07:00
bde9f3aa8c 2021-05-11 nightly release (f97650e70bb8ef42680a700e8c14a288aa3ea661) 2021-05-11 00:02:57 -07:00
9584d83c36 2021-05-10 nightly release (fc55290e5b128d82fa3854565a4d89f60d747fa7) 2021-05-10 00:02:29 -07:00
515bd352fa 2021-05-09 nightly release (e8fb167b1732b2e0ed7dde05f5c59e9a34997a00) 2021-05-09 00:05:09 -07:00
6e6cc22e9a 2021-05-08 nightly release (8c04593c0a486bea7e2cbec348298d348742e096) 2021-05-08 00:02:10 -07:00
c9944ca13c 2021-05-07 nightly release (e5e095cbe4dbc5a601f98e6134dcbd59c6342d7d) 2021-05-07 00:02:26 -07:00
b64472a49d 2021-05-06 nightly release (7627dd568aeda29b2cd757f11493d8a1f0599b60) 2021-05-06 00:11:15 -07:00
513f2a2ada 2021-05-05 nightly release (9c5478588e68a104024dcdaae61c9b402390631c) 2021-05-05 00:02:38 -07:00
a465a9317b 2021-05-04 nightly release (c0309af1f3d57e362a00308c48bca8a5ac2ecb38) 2021-05-04 00:03:00 -07:00
2bd4eadf47 2021-05-03 nightly release (5c68072ee866dde690bc3dda7c2b4bf1a1e6f485) 2021-05-03 00:02:14 -07:00
4ee630a813 2021-05-02 nightly release (afe6b4c8ee7c494c259bbcf8585ffb30a416d924) 2021-05-02 00:02:39 -07:00
adfc9a352b 2021-05-01 nightly release (5e422fa1707f637a7eb8ea9207943d729e13cbda) 2021-05-01 00:02:03 -07:00
1bb0a274a0 2021-04-30 nightly release (65968ab817db323a532f50a2f2ea131ae27dada5) 2021-04-30 00:02:42 -07:00
434be444db 2021-04-29 nightly release (73453f1de112609a34461c84bb16faf74b8b40a4) 2021-04-29 00:03:04 -07:00
6ea01360d9 2021-04-28 nightly release (808850b6de8f92afde0ddf5dce6b94523b126b51) 2021-04-28 00:04:10 -07:00
0fd1dbcff0 2021-04-27 nightly release (7989f2ac879fcc624fc7cc055f437fa849cda5f2) 2021-04-27 00:02:25 -07:00
fb65a2e2ff 2021-04-26 nightly release (70d9be0f42e569d6c74091bbed89ac2d9933ee65) 2021-04-26 00:02:28 -07:00
bc2e5ae70f 2021-04-25 nightly release (bcef7ebd603a6e16a11ab20a030a4338dbb91ff6) 2021-04-25 00:03:07 -07:00
2322ce0268 2021-04-24 nightly release (19943aafe90558a209857a188191df161fd32a6f) 2021-04-24 00:02:35 -07:00
b881571665 2021-04-23 nightly release (19943aafe90558a209857a188191df161fd32a6f) 2021-04-23 00:04:30 -07:00
c7974927b6 2021-04-22 nightly release (19943aafe90558a209857a188191df161fd32a6f) 2021-04-22 00:02:28 -07:00
aca2009f6b 2021-04-21 nightly release (1e03a2505f9cee92587bf45fbbbbfedede5cb9ec) 2021-04-21 00:01:48 -07:00
24ee5bc666 2021-04-20 nightly release (ca6e5c7fc9244ace874bb99aacb12eddef5d4f8a) 2021-04-20 00:02:03 -07:00
6b4502817d 2021-04-19 nightly release (3e42da09dfac51a260a01acd65953e497d027059) 2021-04-19 00:02:20 -07:00
cffbd8af00 2021-04-18 nightly release (85126629a59ac51dcebca08b0ef2da5dd3afd827) 2021-04-18 00:01:53 -07:00
8ed25026ce 2021-04-17 nightly release (98933866a984d104e9f2bf1a91f3a38d3cbe0b99) 2021-04-17 00:01:58 -07:00
10ff790778 2021-04-16 nightly release (bde53cfd9ad3992b21ff30120018017252e8a643) 2021-04-16 00:02:34 -07:00
afff696fee 2021-04-15 nightly release (1688a5d31a740fe502232295ec22e49d376e4f2d) 2021-04-15 00:02:05 -07:00
12d5971c08 2021-04-14 nightly release (19f15317a0c2153aa9ef911e84b939122c9b0769) 2021-04-14 00:02:10 -07:00
a697df1413 2021-04-13 nightly release (19f15317a0c2153aa9ef911e84b939122c9b0769) 2021-04-13 00:02:04 -07:00
e5450b3cc8 2021-04-12 nightly release (19f15317a0c2153aa9ef911e84b939122c9b0769) 2021-04-12 00:01:50 -07:00
3e479451cd 2021-04-11 nightly release (c9b94a85e9029f994f9bd72409293723cbc1d7b1) 2021-04-11 00:01:54 -07:00
552e7d3bd3 2021-04-10 nightly release (7485818a3ff69775b7a01b2d4d971df441702605) 2021-04-10 00:02:17 -07:00
26116b3581 2021-04-09 nightly release (f1a0b817f063250d76aa3bddba6d0d5772a77bf3) 2021-04-09 00:01:49 -07:00
b785f7a276 2021-04-08 nightly release (5f90ed550ccffbe02476a9229ecddc3dc89b3d50) 2021-04-08 00:02:36 -07:00
167a6be779 2021-04-07 nightly release (96655e2b81765d94c359a5dc079ec00404244184) 2021-04-07 00:01:53 -07:00
435d2577d1 2021-04-06 nightly release (b986a76d91906f3e22d6963b16f56e2f8e813a54) 2021-04-06 00:01:53 -07:00
0226b9c72e 2021-04-05 nightly release (6e33420436412d3704d181ebb7fe3f39ba00a087) 2021-04-05 00:02:01 -07:00
a35e8f72a0 2021-04-04 nightly release (6e33420436412d3704d181ebb7fe3f39ba00a087) 2021-04-04 00:01:51 -07:00
33aed5f7bf 2021-04-03 nightly release (6e33420436412d3704d181ebb7fe3f39ba00a087) 2021-04-03 00:01:56 -07:00
729f49d35a 2021-04-02 nightly release (047a487b072354325d50db1510e75ec4218b1a75) 2021-04-02 00:01:54 -07:00
732df435ba 2021-04-01 nightly release (eb52e3646035c8916495515399c2c7ccf490c705) 2021-04-01 00:02:56 -07:00
12be6b82da 2021-03-31 nightly release (920eb01e2e066f6e51f20d0e24a02472e53bc723) 2021-03-31 00:02:04 -07:00
0f545f9a7b 2021-03-30 nightly release (1267efce75e20e571995694c6fbcf4934119395b) 2021-03-30 00:01:49 -07:00
f6458977ba 2021-03-29 nightly release (b7c5d575638afeb7b61594782af438658f6234cc) 2021-03-29 00:02:02 -07:00
3f1f3bf563 2021-03-28 nightly release (7caa464631c1fcc9f9a4290cf0fe7913c36d1796) 2021-03-28 00:01:54 -07:00
6f95b09bb8 2021-03-27 nightly release (394b720e38455c2c07e6a31ef816edd0c5afbeb4) 2021-03-27 00:01:48 -07:00
cae5d728c0 2021-03-26 nightly release (fd58ececab731803eceace70b985b35f9872b53c) 2021-03-26 00:01:52 -07:00
755dd076a3 2021-03-25 nightly release (347ab5d8b86a69c4ab0a163b01d41cd0d0734f59) 2021-03-25 00:01:57 -07:00
13fb17b712 2021-03-24 nightly release (91d37d7d2fd2bb9bc9dcaa3ffd58a39426285af9) 2021-03-24 00:01:52 -07:00
09588132d7 2021-03-23 nightly release (6a4d2c61d5ea12d62bfcf0ad0b9cd79ae776433e) 2021-03-23 00:01:50 -07:00
6f3e9ce0af 2021-03-22 nightly release (6a4d2c61d5ea12d62bfcf0ad0b9cd79ae776433e) 2021-03-22 00:02:07 -07:00
82c758067f 2021-03-21 nightly release (6a4d2c61d5ea12d62bfcf0ad0b9cd79ae776433e) 2021-03-21 00:03:10 -07:00
c3626319c3 2021-03-20 nightly release (454dd7ba8647ac11735c6563ac8e2b60313789ad) 2021-03-20 00:02:11 -07:00
638cdc776a 2021-03-19 nightly release (19792b45dbf30b4555c4a87512e624cdd4aa6e4c) 2021-03-19 00:01:57 -07:00
1bbf0359e8 2021-03-18 nightly release (2e7311ef25a028f06bfff7cf97e6fbf5da767eb5) 2021-03-18 00:03:31 -07:00
b14b3f48b9 2021-03-17 nightly release (b936abd840d8fa3122d3a6166c0d7344d8352901) 2021-03-17 00:02:03 -07:00
3f71714146 2021-03-16 nightly release (e87ab2ac4d4f4d208a1dcbc21b584fe59bf18e5f) 2021-03-16 00:01:50 -07:00
f595ab38d4 2021-03-15 nightly release (f6df18f6ca444561b4108d746ed7b579a78c0294) 2021-03-15 00:02:10 -07:00
3ddc48dbe5 2021-03-14 nightly release (84af0c7acdac705e0465d4865cd37e6cfe2cd537) 2021-03-14 00:02:01 -08:00
49244d58a9 2021-03-13 nightly release (8a5b946ff6ecc068b11d5c40a571af8b8b24137e) 2021-03-13 00:01:57 -08:00
4ec6b36905 2021-03-12 nightly release (997f05cd34078c0d2447f9f310b1f5d6fd041503) 2021-03-12 00:01:53 -08:00
f8c286b72c 2021-03-11 nightly release (0584fd9339af7c939ab7d955db05743ba58ff86d) 2021-03-11 00:01:53 -08:00
30b9583650 2021-03-10 nightly release (a9e4bb56e54e83a69fbe7fad6d637817db1dd6a4) 2021-03-10 00:01:58 -08:00
56e7889e52 2021-03-09 nightly release (a947bfaa2650ea1f4c6e61e94c7e6d3eb3a3d952) 2021-03-09 00:02:00 -08:00
21d09eea0c 2021-03-08 nightly release (36dc5d3b3aaa81280ad290d4b85d4dd033c5c911) 2021-03-08 17:06:31 -08:00
8859a4060b 2021-03-05 nightly release (69bb0e028596d481cda38a0f49bcb5965fab4293) 2021-03-05 00:01:52 -08:00
39496d2d15 2021-03-04 nightly release (d98839e53eaa171230c6d190e51e2fded8fa8fe1) 2021-03-04 00:02:00 -08:00
cc88ac8bbd 2021-03-03 nightly release (30dd15e778195c6b7cf266a0b4b20af9c9ca5ba7) 2021-03-03 00:02:33 -08:00
715835c8ee 2021-03-02 nightly release (748285ccd76b67db7ebc0bc099789bb09c23c038) 2021-03-02 00:01:55 -08:00
70f88165ce 2021-03-01 nightly release (b9e12a0e8290af1c05107cf7e9a6117355e5ac1a) 2021-03-01 00:01:58 -08:00
ad67b30e18 2021-02-28 nightly release (f2f7fdba05159e90b75b780cef29a0640a1f475c) 2021-02-28 00:01:49 -08:00
ea85ae6460 2021-02-27 nightly release (177694681ecc582c5335adbbe43c1ee1e02d53ce) 2021-02-27 00:01:55 -08:00
7e0921bfc4 2021-02-26 nightly release (7a178a8a523d4653a3a2fa10c573b71e7fab1b9a) 2021-02-26 00:01:51 -08:00
edc5fdff12 2021-02-25 nightly release (57947c5d85cb2fc755773ebce2df06b1c7d177b0) 2021-02-25 00:04:07 -08:00
8b997aa6a3 2021-02-24 nightly release (b4b7db2f3bdd67a8650583a49b8a12b24c2c7a78) 2021-02-24 11:13:59 -08:00
c89db19de8 2021-02-23 nightly release (64847c7f0b3559c6edc40f001619b80c7dc68ef7) 2021-02-23 00:04:07 -08:00
3cbcda0694 2021-02-22 nightly release (c2b9283d4aa3f05999926b6871fc1c4bb787c15a) 2021-02-22 00:01:57 -08:00
ad403652be 2021-02-21 nightly release (a935118c90db94879b41d6dc359520e99e6cdca2) 2021-02-21 00:01:49 -08:00
ebd6d2d8c4 2021-02-20 nightly release (bb34fd6191e0f2a31edc38e00d93a24d9da8c031) 2021-02-20 00:01:50 -08:00
c316f4b69f 2021-02-19 nightly release (0c46b6b3f63b0858cb0d3e76ee43ccc2659143a6) 2021-02-19 00:02:18 -08:00
02ae2764a8 2021-02-18 nightly release (ac121165e29d29399615e4ea8fc286ab0864571d) 2021-02-18 00:01:55 -08:00
15f099ad3a 2021-02-17 nightly release (bb9e0c625ebe0e8dd73d896b8a52ff807d969fb3) 2021-02-17 00:01:51 -08:00
a9f93776d4 2021-02-16 nightly release (df837d0384398f1fac1000189d62b05e7ff0240d) 2021-02-16 00:04:22 -08:00
486e771762 2021-02-15 nightly release (1903b32c35a7e7432d62e43a2d3a679f6f01066d) 2021-02-15 00:01:55 -08:00
6c8fea96b3 2021-02-14 nightly release (4949eea0ffb60dc81a0a78402fa59fdf68206718) 2021-02-14 00:02:55 -08:00
08bda18b3f 2021-02-13 nightly release (71d0b5632bfa29f1b6828050edc6512402e253a7) 2021-02-13 00:03:08 -08:00
acd0a1de4c 2021-02-12 nightly release (e4203c4306d86a546d12f9fc354ea78794e2606e) 2021-02-12 00:02:09 -08:00
5c9184d4c4 2021-02-11 nightly release (fd41ed1ccef68e88e075c7b633409644c22f0782) 2021-02-11 00:01:59 -08:00
99bc386e8d 2021-02-10 nightly release (0620c96fd6a140e68c49d68ed14721b1ee108ecc) 2021-02-10 00:02:16 -08:00
567520f3a8 2021-02-09 nightly release (034a007ad80038ad796959387c5a450f7a05ac57) 2021-02-09 00:02:04 -08:00
71e7186e5d 2021-02-08 nightly release (fcf8b712348f21634044a5d76a69a59727756357) 2021-02-08 00:02:08 -08:00
3e934d77c2 2021-02-07 nightly release (0c313564af6173d54b393ae0b70cf2cb0db5a5c8) 2021-02-07 00:02:00 -08:00
256d46ca95 2021-02-06 nightly release (215d9daceb5482d2d5cceaaf44cb3f2aa38faaaf) 2021-02-06 00:02:23 -08:00
a8da1dd168 2021-02-05 nightly release (d3023d86ba6eebbcfeafc1633d1a8f8249d12e6d) 2021-02-05 00:02:07 -08:00
5fdff0d29f 2021-02-04 nightly release (1518aee639b6f9fb4456977431720bd5ecb2ed74) 2021-02-04 00:03:20 -08:00
4b6fea91c7 2021-02-03 nightly release (62f6e55439255d27d41752e2f01715c11e04bd38) 2021-02-03 00:02:01 -08:00
d8fdfb6912 2021-02-02 nightly release (7328710cbce459bbd77dfe424acc94010725d979) 2021-02-02 00:01:53 -08:00
59906439fe 2021-02-01 nightly release (40c0fffb4bb4a7d49cb50c6b276565aa60b3daaf) 2021-02-01 00:02:00 -08:00
fa29005e57 2021-01-31 nightly release (9cf62a4b5d3b287442e70c0c560a8e21d8c3b189) 2021-01-31 00:02:28 -08:00
f34c7916c7 2021-01-30 nightly release (e26fccc22b1f1fa28bceb076567d3e53c92a4c77) 2021-01-30 00:04:16 -08:00
ecc357c395 2021-01-29 nightly release (534aabce147129fc2fa54d448093c79603d45781) 2021-01-29 00:02:38 -08:00
470e6b3037 2021-01-28 nightly release (9fe7c0633f74b04889cce81cea2cbb28f8d08cea) 2021-01-28 00:02:15 -08:00
8d5685876a 2021-01-27 nightly release (19358808604129573dba354558ca4019acf2503f) 2021-01-27 00:02:13 -08:00
adf8b7eb1c 2021-01-26 nightly release (6dda0363bb47fbfbceb242098f63b67560540584) 2021-01-26 10:19:32 -08:00
e64ec0010a 2021-01-25 nightly release (48b6b9221a544f7d5b7d6f93eec2fa304da8af94) 2021-01-25 00:09:03 -08:00
49b090d628 2021-01-24 nightly release (1f40f2a1723fd3b9302bea3829f2570c8e0e7e94) 2021-01-24 00:03:43 -08:00
159eb0d08a 2021-01-23 nightly release (6aec1eba1582ef2c3486652ec0a6cd0ce346b83d) 2021-01-23 00:04:39 -08:00
c51f016767 2021-01-22 nightly release (7494f0233aabb5109e068f3cad73e20dc6a8dd23) 2021-01-22 00:02:55 -08:00
52f6bba29c 2021-01-21 nightly release (439afda090a343e90aa87678a0019c0dc26880cc) 2021-01-21 00:03:48 -08:00
99845753b9 2021-01-20 nightly release (e00966501b63013cd3057daf864cbb54e7f4cf9b) 2021-01-20 00:03:07 -08:00
eb7195e27a 2021-01-19 nightly release (5252e9857a1587a38ca09d316c958eb232e0f68d) 2021-01-19 00:06:10 -08:00
e6279f85c9 2021-01-18 nightly release (3f052ba07b2da4801d8f52f4116357760d5b632d) 2021-01-18 00:07:39 -08:00
43d4eaff8a 2021-01-17 nightly release (7e05d07ca7557b0b433b97a5943c8eedbbf34837) 2021-01-17 00:02:40 -08:00
cc54968f58 2021-01-16 nightly release (a469336292e411a056fbe9445ed948108acde57d) 2021-01-16 00:05:07 -08:00
c4efbf7862 2021-01-15 nightly release (d9f71b5868ca7e36e16e9e6a87ae39c738ccdc5f) 2021-01-15 00:04:29 -08:00
71094fd978 2021-01-14 nightly release (19a8e68d8c2c53f47f1dcfdbadec03f6897d84e6) 2021-01-14 00:04:55 -08:00
4c84d88295 2021-01-13 nightly release (b54240d200fe34fe425857a67a87273bc105665f) 2021-01-13 00:02:38 -08:00
538bf139cb 2021-01-12 nightly release (8c5b0247a571aa672f9070fcc9769f2c4bb19571) 2021-01-12 00:04:11 -08:00
efdef1838a 2021-01-11 nightly release (9d8bd216f9e29251685389a22dce69614ab648a5) 2021-01-11 00:02:43 -08:00
5f767b4f41 2021-01-10 nightly release (375c30a7177442fb9d6de7516a9ae4031ae324c4) 2021-01-10 00:03:26 -08:00
206064ae71 2021-01-09 nightly release (d4c1684cf5ddbbe808d71999d4fdf014c3fdb8b1) 2021-01-09 00:02:27 -08:00
bc83b4980f 2021-01-08 nightly release (c215ffb6a2de1c85a62a146a9e282908335ba3ed) 2021-01-08 00:04:16 -08:00
b7bb2d75a2 2021-01-07 nightly release (968ad47b410b93d2600d163db50eb9fb45c24a2b) 2021-01-07 00:04:09 -08:00
396c67bec6 2021-01-06 nightly release (ad7d208ba5f2c5614679a7999918b75ae74530e9) 2021-01-06 00:05:09 -08:00
21c7ada3a6 2021-01-05 nightly release (ee80b458433627ea8e4f48e7b50043dca1906bb1) 2021-01-05 00:03:00 -08:00
e2681f4d25 2021-01-04 nightly release (e44b2b72bd4ccecf9c2f6c18d09c11eff446b5a3) 2021-01-04 00:03:15 -08:00
4af891460c 2021-01-03 nightly release (8aad66a7bd35782a0e662d133276830204499656) 2021-01-03 00:02:30 -08:00
b788d5159e 2021-01-02 nightly release (8aad66a7bd35782a0e662d133276830204499656) 2021-01-02 00:03:13 -08:00
d7a4e5a328 2021-01-01 nightly release (749f8b78508c43f9e6331f2395a4202785068442) 2021-01-01 00:05:05 -08:00
afb63f9b63 2020-12-31 nightly release (749f8b78508c43f9e6331f2395a4202785068442) 2020-12-31 00:03:08 -08:00
8b6af7fd8f 2020-12-30 nightly release (12b73fdbbf4a89f3ec46983f90a2bb2d866cb338) 2020-12-30 00:02:59 -08:00
3c482552c8 2020-12-29 nightly release (c619892482667f846f96215f290df70d56bd4a84) 2020-12-29 00:03:24 -08:00
606ddb19c9 2020-12-28 nightly release (963f7629b591dc9750476faf1513bc7f1fb4d6de) 2020-12-28 00:05:11 -08:00
95d87beeb1 2020-12-27 nightly release (963f7629b591dc9750476faf1513bc7f1fb4d6de) 2020-12-27 00:04:51 -08:00
9b38aa2443 2020-12-26 nightly release (963f7629b591dc9750476faf1513bc7f1fb4d6de) 2020-12-26 00:02:40 -08:00
6d23d0fe51 2020-12-25 nightly release (963f7629b591dc9750476faf1513bc7f1fb4d6de) 2020-12-25 00:02:57 -08:00
8e7138bce1 2020-12-24 nightly release (89b4899ea5363fd69872c0cabf0dedea2dc533c8) 2020-12-24 00:03:20 -08:00
54837ec26d 2020-12-23 nightly release (55b431b17aba504ae7b75f6f97b4437101e50f38) 2020-12-23 00:04:02 -08:00
58d9290532 2020-12-22 nightly release (590e7168ed66bc1060a0bff6c35cc1eea86db0ae) 2020-12-22 00:02:56 -08:00
b8f60df5f5 2020-12-21 nightly release (5c3788d5d76f64f6708e0b79f40b1cf45276625a) 2020-12-21 00:02:54 -08:00
9ceeb84f52 2020-12-20 nightly release (c0deb231db76dbea8a9d326401417f7d1ce96ed5) 2020-12-20 00:02:40 -08:00
370cb23850 2020-12-19 nightly release (e0f60c97208a9745b4e031b0941ec60b75a7406b) 2020-12-19 00:02:41 -08:00
cfa557ab81 2020-12-18 nightly release (5fcfebd84abc5af3f4816d2a77319dd617d52da1) 2020-12-18 00:03:18 -08:00
006df1bad5 2020-12-17 nightly release (65876d3f5134bba3c6ab5dccd1860ce1b9e43b6d) 2020-12-17 00:03:36 -08:00
902afe6bbb 2020-12-16 nightly release (94e328c0385d2e915d2bc38446d1da2f1cd94068) 2020-12-16 00:05:43 -08:00
450503d815 2020-12-15 nightly release (39a10fb6528b355791993a67b895934e3c902765) 2020-12-15 00:03:40 -08:00
eb6c0edcb4 2020-12-14 nightly release (94a3d4b083c945050a93fefcdd20d7d336185f2d) 2020-12-14 00:03:44 -08:00
b50c85260f 2020-12-13 nightly release (dc4db95540da06623c747bf0f2bf9f4af3d2925a) 2020-12-13 00:02:58 -08:00
637ad9acd8 2020-12-12 nightly release (717f31d9846f9b7707f9b1ab6076e1353f399119) 2020-12-12 00:02:49 -08:00
2275fa0a44 2020-12-11 nightly release (2b1057b0cf2eaea633a90b2e130612d8f93eeb2b) 2020-12-11 00:03:11 -08:00
ff32f65844 2020-12-10 nightly release (27f7d1c2865355c694fb964609df45974748615b) 2020-12-10 00:07:21 -08:00
ffe1744602 2020-12-09 nightly release (2d9585a6a10ea5717c6523086259391684c5aaf2) 2020-12-09 00:03:38 -08:00
6b1df384ea 2020-12-08 nightly release (cb6233aa538114fce55380a79978f3e576eb7cfe) 2020-12-08 00:05:02 -08:00
dff5a4324f 2020-12-07 nightly release (a39398b9e5d528e4a6ca293f1703833932f0d9b2) 2020-12-07 00:02:43 -08:00
c58b37f253 2020-12-06 nightly release (17f53bffefa7bd46e134a99bcd4c4e471b81c86b) 2020-12-06 00:02:41 -08:00
19f40be8c8 2020-12-05 nightly release (6317e0b2f1090ea4189e88557d4ff6656fb758cc) 2020-12-05 00:04:00 -08:00
ea248f6464 2020-12-04 nightly release (2181ff89bb6126b1382f35d7cfca23ee45f40fc9) 2020-12-04 00:03:29 -08:00
2e5c4409a0 2020-12-03 nightly release (79b9c034656652cad838a15094536fe38344ab2c) 2020-12-03 00:03:37 -08:00
c87acc2ecc 2020-12-02 nightly release (bcc85a363ecbcb381623d3c26faa94be13ad58bc) 2020-12-02 00:04:43 -08:00
492c0eb536 2020-12-01 nightly release (ccd20e995fb56a1aafefd90c0f2c68c537534c67) 2020-12-01 00:56:29 -08:00
d3dbcaf423 2020-11-30 nightly release (755b8158e2a664ad308bab3cc0b6f4ae14aefd39) 2020-11-30 00:04:24 -08:00
1cabe03694 2020-11-29 nightly release (36c87f1243f582ae761ec6d69f5965bd91c32d3c) 2020-11-29 00:04:52 -08:00
2221ff5a44 2020-11-28 nightly release (272f4db043ec2c63ecfe6d2759e7893cb842a3c3) 2020-11-28 00:04:01 -08:00
1b0b4998ee 2020-11-27 nightly release (7df84452423f44ebe1db40a2e3463066bf954f95) 2020-11-27 00:02:58 -08:00
c10ca6b85f 2020-11-26 nightly release (18ae12a841bdc99c6cce65ac5c77cc1149dc8564) 2020-11-26 00:05:35 -08:00
b5e7a24057 2020-11-25 nightly release (e9efd8df1bce365d2dddbbc9e9266b7432aee5b2) 2020-11-25 00:03:13 -08:00
168b0224aa 2020-11-24 nightly release (671ee71ad4b6f507218d1cad278a8e743780b716) 2020-11-24 00:03:27 -08:00
88092c79b7 2020-11-23 nightly release (4ed7f36ed181ee784f9904d5eabf073701e1fb78) 2020-11-23 00:02:56 -08:00
90af5978b6 2020-11-22 nightly release (f2da18af143b3fdb322d2188dace6e2020e301b9) 2020-11-22 00:02:42 -08:00
4f320939f0 2020-11-21 nightly release (fdc62c74a60a5cd3a833d50a6f23045e9c55035e) 2020-11-21 00:03:16 -08:00
7ad15e28f6 2020-11-20 nightly release (eb49dabe925b2fa32897dae771f831cb056aef65) 2020-11-20 00:02:57 -08:00
a4262a1db7 2020-11-19 nightly release (8819bad86cd15c74dd076012c59e7b1f6081fda4) 2020-11-19 00:03:09 -08:00
5a09c3b029 2020-11-18 nightly release (df0ae244a999a365ac13695cf4682ea30490b157) 2020-11-18 00:02:46 -08:00
0f0c2ba3e8 2020-11-17 nightly release (49f0e5dfeb64a928c6a2368dd5f86573b07d20fb) 2020-11-17 00:02:39 -08:00
984b5f0945 2020-11-16 nightly release (013e6a3d9d0d3ebe8283bf9af0f3b666ba4d96b7) 2020-11-16 00:03:12 -08:00
c36b7c99a6 2020-11-15 nightly release (8ef7ccd669a36f49eb052d12a71df9b7836cafa5) 2020-11-15 00:04:25 -08:00
b553e35ddf 2020-11-14 nightly release (982ae987d3572b211b371e5c2a7f8062b1ae86f1) 2020-11-14 00:03:21 -08:00
17d86337b4 2020-11-13 nightly release (16d6af74e6605941f51ffd9cacca15e40fa9eec8) 2020-11-13 00:04:31 -08:00
9bc97fcaf0 2020-11-12 nightly release (4b25d83e9bdaee701967d7aff625cedf4c12913c) 2020-11-12 00:03:50 -08:00
20721e12b8 2020-11-11 nightly release (ae5c2febb912066f1a8dec8b54451c09195b2c6d) 2020-11-11 00:02:53 -08:00
0a7dab4ce7 2020-11-10 nightly release (f2eac5df1840b65b24ef2f1c3bd6332f654935b6) 2020-11-10 00:02:38 -08:00
1ca45fae2d 2020-11-09 nightly release (9e0102c10f57631000ebf28e55a055f480b9b780) 2020-11-09 00:02:38 -08:00
e9dd9f342a 2020-11-08 nightly release (781e0ed835e1bfbf6613720c89ba98a4de53e2e9) 2020-11-08 00:02:44 -08:00
6c2cd89110 2020-11-07 nightly release (9d0c6e9469028cd7e7f44172e30aa4ce21b64be3) 2020-11-07 00:03:07 -08:00
1e9fe285da 2020-11-06 nightly release (873652d9accc54f8d2a3fac4baf1c926af755025) 2020-11-06 00:03:02 -08:00
f463bdbe57 2020-11-05 nightly release (d8c3b2b10c14f86f817f1ef12cabc8ef5e37c30a) 2020-11-05 00:03:43 -08:00
6071dc770f 2020-11-04 nightly release (996f444c007a89f7364ed03b7c24755f7ec43eb0) 2020-11-04 00:03:13 -08:00
d60c452534 2020-11-03 nightly release (0ead9d545a92e5d4bed99661b108545a0126826d) 2020-11-03 00:04:54 -08:00
1c10830b51 2020-11-02 nightly release (1cc1da541158b53c24a579fd316d190d5c27bfd1) 2020-11-02 00:02:44 -08:00
b5d9a1c61e 2020-11-01 nightly release (19ede75eb95b2436d5e493497a38c1e6be5ec50b) 2020-11-01 00:02:36 -07:00
ec10b116d2 2020-10-31 nightly release (ee0033af9b7531ba0a453844dc621f8cfa140c20) 2020-10-31 00:04:53 -07:00
3ee3d3b7eb 2020-10-30 nightly release (d95e1afad37ab91a7c8d3fed19d86f2b7f2d218f) 2020-10-30 00:03:00 -07:00
f71e46c37f 2020-10-29 nightly release (b553c06abbe7133c059e05844033067625382973) 2020-10-29 00:02:39 -07:00
d25dcd31ae 2020-10-28 nightly release (ddbdbce6232f896f47b81fc13f95b536cf274d20) 2020-10-28 00:03:01 -07:00
ea2c6ca48e 2020-10-27 nightly release (6b50ccc41cd9feb624243a518e1362659f2fada4) 2020-10-27 00:03:16 -07:00
81d3931f01 2020-10-26 nightly release (d94bd998ece87a1af996ad047e98b1ccba2c3a85) 2020-10-26 00:02:44 -07:00
06e4087ffa 2020-10-25 nightly release (edbc84aa4ae6b9d0410e581c31e8c309426b2d29) 2020-10-25 00:03:10 -07:00
ebbb40c985 2020-10-24 nightly release (13b7855f33e61e3c466197518250e57ffe5886db) 2020-10-24 00:04:54 -07:00
7a69d3fa6b 2020-10-23 nightly release (4fd2cce9fa939006b97abca6e66c117bb42b2b2e) 2020-10-23 00:03:33 -07:00
96741a8516 2020-10-22 nightly release (fe4f90c40bfcb442eddcd26657158bd8fd43a464) 2020-10-22 00:02:41 -07:00
b466478440 2020-10-21 nightly release (8357e2edc329b3a62979ceae3faa1e51fd70150e) 2020-10-21 00:04:07 -07:00
11c8a58712 2020-10-20 nightly release (e5ed037529264e6747a33145aad364660cb250db) 2020-10-20 00:02:41 -07:00
3292b9e050 2020-10-19 nightly release (0c5cd8c2b9cdf473e30bbb1b49ca80ed442813df) 2020-10-19 00:03:03 -07:00
f57dc3adb8 2020-10-18 nightly release (c3466dabaae9328b207804afb043b7b519f64825) 2020-10-18 00:02:39 -07:00
342069f090 2020-10-17 nightly release (cc471c6dafff9b3a45575ba01244b1b58a25ab34) 2020-10-17 00:02:25 -07:00
b1eed8fe32 2020-10-16 nightly release (ec5f81f9d334efa3d46ca9c66885e2ab14b6ce01) 2020-10-16 00:03:20 -07:00
e5ed02e3f0 2020-10-15 nightly release (a87a1c110342dff912963aac1d8095878c79f914) 2020-10-15 00:02:42 -07:00
3142764e51 2020-10-14 nightly release (d790ec6de01a61fe81733c41a64b6092bacfb7bd) 2020-10-14 00:03:00 -07:00
9e25229618 2020-10-13 nightly release (7f6a1b2bd5eca2d25c70afe233f8b6878fec241d) 2020-10-13 00:02:42 -07:00
5015a81dda 2020-10-12 nightly release (a814231616f5db7fcdb8793f64c12d652d1e8572) 2020-10-12 00:02:42 -07:00
73a00339a9 2020-10-11 nightly release (bbb3f0937743ddd006d8a5400e9549623260e6be) 2020-10-11 00:02:34 -07:00
8f6131de72 2020-10-10 nightly release (b7261de0df87c4df548451cbfbe020c62396bd86) 2020-10-10 00:03:06 -07:00
403616e494 2020-10-09 nightly release (87226f72d2827d0367d01b664efa21d80ccaf632) 2020-10-09 00:02:25 -07:00
3ada667f23 2020-10-08 nightly release (c19b9cd18dd1da5f499ef0672e6871928618204d) 2020-10-08 00:07:08 -07:00
69474f119a 2020-10-07 nightly release (205ab4961232140d3a46a6a3f59b377243bb5407) 2020-10-07 00:02:33 -07:00
72429b08dc 2020-10-06 nightly release (2fbe5971b360f63715fcccf4bb61ac7c44dff48c) 2020-10-06 00:04:23 -07:00
8722e9d287 2020-10-05 nightly release (e1ff46b6e5b752a889174ba4a995e74898799287) 2020-10-05 00:02:25 -07:00
8706bf8b1f 2020-10-04 nightly release (2ab74a48395c55d9b186a01bdb09fdd347bf4f1b) 2020-10-04 00:03:20 -07:00
2fc129834c 2020-10-03 nightly release (d8a9c2c27e0d11fdde1d8e5bfbce1b55fa2cd478) 2020-10-03 00:02:21 -07:00
29f546df64 2020-10-02 nightly release (1a2d3b6a750cc4c1709b64412619b28c737e1a79) 2020-10-02 00:02:41 -07:00
17635b8851 2020-10-01 nightly release (4339f5c076e6f59433ac4eec08b6151a803a7604) 2020-10-01 00:02:30 -07:00
1c087f9b30 2020-09-30 nightly release (c2c7099944e94fb7d0460ac8689819b42ba0e30e) 2020-09-30 00:02:23 -07:00
c54443b19e 2020-09-29 nightly release (6bdb871d47f8810fb627d908c4fa2408fa6a632f) 2020-09-29 00:03:39 -07:00
e3234fd375 2020-09-28 nightly release (c3bf402cbbd5bba53fa8b7d86500e4dc3bb904b8) 2020-09-28 00:02:59 -07:00
f3659fb14b 2020-09-27 nightly release (bc5710f2f746d33645858ed82141076ab5fec75d) 2020-09-27 00:02:20 -07:00
4a6dd6ec6a 2020-09-26 nightly release (d9af3d2fcd4e86c1b410f700dc6361e5c538b0af) 2020-09-26 00:02:44 -07:00
d4a3a4ca6e 2020-09-25 nightly release (99e0a87bbb4faa6bb539c0eedf323d79fdd8cfcf) 2020-09-25 00:03:07 -07:00
ce6dd35b28 2020-09-24 nightly release (b3d7c2f97859973c7282a772b811708379064d37) 2020-09-24 00:02:57 -07:00
eeb9914f09 2020-09-23 nightly release (215679573ebff5a03238a7f9aa801a6c00826f19) 2020-09-23 00:04:30 -07:00
af6cc04916 2020-09-22 nightly release (5aed75b21bf81f14f1c527df8832f5a93299019c) 2020-09-22 00:02:30 -07:00
8de4375712 2020-09-21 nightly release (9f67176b821afe4afa75df22f43f4932f1289ef4) 2020-09-21 00:04:36 -07:00
b64de1730d 2020-09-20 nightly release (da7863f46bff365499730244a3198a9d4b201f7c) 2020-09-20 00:02:36 -07:00
420a345397 2020-09-19 nightly release (9e5045e978d8800a6dbeb919745169e4de18927c) 2020-09-19 00:02:26 -07:00
145abbc193 2020-09-18 nightly release (f2b3480795d4364aba32de18e42e1309ffd013f4) 2020-09-18 00:03:00 -07:00
27cdcdc69a 2020-09-17 nightly release (b6f4bb0a703d6c33bedf3c7f4551954a8015fcb9) 2020-09-17 00:02:40 -07:00
b5c2df117b 2020-09-16 nightly release (b85568a54a9c60986235ad1e0cc5dffc71b9d5b1) 2020-09-16 00:03:32 -07:00
4c94add238 2020-09-15 nightly release (f5d231d5933e0ca8feb59f9fe76913d8aa720457) 2020-09-15 10:11:47 -07:00
e5b3332958 2020-09-15 nightly release (2435d941b13723b4ccae1eb65695e2c902b9399d) 2020-09-15 00:02:29 -07:00
ce76eb5dc4 2020-09-14 nightly release (870f6470405a37392eb37ea7e927bca6adfecc3c) 2020-09-14 00:02:42 -07:00
7ad07dab6c 2020-09-13 nightly release (e703c17967ba7565ca8c4a019511b0b7b46a2d5d) 2020-09-13 00:02:22 -07:00
680262a4a5 2020-09-12 nightly release (05c1f1d974910736275b4c4572095a106499c298) 2020-09-12 00:13:43 -07:00
521dce53ee 2020-09-11 nightly release (b5d75dddd93089458c7aee91134ff281d5c3b580) 2020-09-11 00:02:39 -07:00
61fd94ce73 2020-09-10 nightly release (65d4a6b7c05674935da8cbd3ae68f982dd9272ff) 2020-09-10 00:04:37 -07:00
beea9fe377 2020-09-09 nightly release (15cbd1cf4b2cd37e102a495f5e5d8362d2c6e6e2) 2020-09-09 12:26:09 -07:00
bac811d8a8 2020-09-09 nightly release (135ebbde6dda16887cc2c08962bb3694af0f8e82) 2020-09-09 00:02:55 -07:00
5200db437e 2020-09-08 nightly release (cce5982c4ceb77a0797e8bd4c717ebfec0681eab) 2020-09-08 00:02:56 -07:00
2d48355fe2 2020-09-07 nightly release (626e410e1dedcdb9d5a410a8827cc7a8a9fbcce1) 2020-09-07 00:03:07 -07:00
72cbcceccf 2020-09-06 nightly release (70c8daf43946b53af6493d058899ef952d27d339) 2020-09-06 00:02:29 -07:00
a6ebbbad37 2020-09-05 nightly release (5a0d65b06b197c06797a41de04ce99edbe48f669) 2020-09-05 00:02:25 -07:00
b0e834edbe 2020-09-04 nightly release (98ad5ff41f82086ce77d5519945aff288b030c6e) 2020-09-04 00:02:42 -07:00
ccfd128bb8 2020-09-03 nightly release (ab7606702cca34c06f0bf08d6b109402c574563c) 2020-09-03 00:02:37 -07:00
9bef2cdcca 2020-09-02 nightly release (297c938729a0adbd98a235a5970c972f6148adfe) 2020-09-02 13:38:07 -07:00
bae900999d 2020-09-02 nightly release (7000c2efb54bae527de22a325c2b59e9f9af45b9) 2020-09-02 00:02:53 -07:00
cb188a89fa 2020-09-01 nightly release (6da26cf0d96475a2fa4d0aa235f868eff198546e) 2020-09-01 00:04:06 -07:00
c32d9b1874 2020-08-31 nightly release (8fb7c50250f9cb38232bf87008855fd1665b31ec) 2020-08-31 00:03:14 -07:00
a27ceb1a7e 2020-08-30 nightly release (1830e4f08cd3b41df9d643211762156b67371611) 2020-08-30 00:03:02 -07:00
42cb14b81d 2020-08-29 nightly release (000739c31ad34909e64124e0d39b2f49249458e9) 2020-08-29 00:02:39 -07:00
dade70d4af 2020-08-28 nightly release (f06d3904f2c7b6e47ffa532f4a22b9e18941bb90) 2020-08-28 00:03:10 -07:00
0f03b7c404 2020-08-27 nightly release (a070c619b9bed1205ec95b53f97db3fbfc43c4de) 2020-08-27 00:05:38 -07:00
8e23641871 2020-08-26 nightly release (42f6c3b1f475c3c1cb1655a70b128fa5cf236860) 2020-08-26 10:11:03 -07:00
f361befd6c 2020-08-26 nightly release (2b70f827373fe5c90e15ce7ba0a1d331dcd57379) 2020-08-26 00:02:35 -07:00
2b2b063dfd 2020-08-25 nightly release (d1d32003bbe1cb06de552c3581982d1bc8125cd9) 2020-08-25 00:02:45 -07:00
17857c55a3 2020-08-24 nightly release (1f0cfbaaad09921f588adf549751041b8cb2e283) 2020-08-24 00:02:41 -07:00
8d4f134db7 2020-08-23 nightly release (a97ca93c0e698b81599f7a0ca5cdbda947799431) 2020-08-23 00:02:40 -07:00
13f00ef652 2020-08-22 nightly release (88b564ce3927f7a691c29697b2b21873a84a0d23) 2020-08-22 00:06:42 -07:00
f3070b6b37 2020-08-21 nightly release (da036250cd7dae8896fdc14b2bc718bcb3bdd158) 2020-08-21 00:03:56 -07:00
0b355b5f8c 2020-08-20 nightly release (66a79bf114ee4e9a4adf0d83b48f2266cfaeab95) 2020-08-20 10:29:04 -07:00
c75d13a67a 2020-08-20 nightly release (4e964f3b97558792d6af903425561f765b1c5d68) 2020-08-20 00:03:14 -07:00
7915de9032 2020-08-19 nightly release (018b4d7abb894c3de21f9f10b0678c80a7b0a701) 2020-08-19 14:55:57 -07:00
6f80e1207a 2020-08-19 nightly release (fa6b34b54c731938327c8e30e08b287a10b86b0a) 2020-08-19 00:02:57 -07:00
14b1e2392c 2020-08-18 nightly release (c44b1de54e29e9d33365fe0116a43d3958f5a450) 2020-08-18 00:02:32 -07:00
02b98413b7 2020-08-17 nightly release (e2eb0cb1a9e525de9abb352cf39c85cc090e33b8) 2020-08-17 00:02:31 -07:00
865a01d2eb 2020-08-16 nightly release (5bcf9b017a426e55466cf7435009d1fb339684d8) 2020-08-16 00:02:36 -07:00
4458315a89 2020-08-15 nightly release (91f3114fc1350dd2e1797e6edc5c61c44f2ffecd) 2020-08-15 00:03:22 -07:00
ac414f6c7e 2020-08-14 nightly release (b9a105bcc03d27f68b53e32258ee4c252570dcc9) 2020-08-14 00:03:33 -07:00
936fa35cf1 2020-08-13 nightly release (c9dcc833bca69a0f2dd3518ce97136206da8024f) 2020-08-13 00:03:43 -07:00
b7c4a72c53 2020-08-12 nightly release (ecb9e790ed6ceafa738ad52a500b9e50bc0fc241) 2020-08-12 00:02:47 -07:00
c531bf36cd 2020-08-11 nightly release (ddcf3ded3e78042a41fd6d6b861d678e11460821) 2020-08-11 00:02:53 -07:00
1eed3cba2a 2020-08-10 nightly release (d7aaa3327bf9ad8757897a76879230da92bf607f) 2020-08-10 12:37:23 -07:00
c8173d2cb5 2020-08-10 nightly release (55ac2405893165de0687960a6650bbc5c8f29e73) 2020-08-10 00:02:26 -07:00
818b9ac780 2020-08-09 nightly release (b6810c1064eb24cb542a9be56140689dce8ad7a1) 2020-08-09 00:02:28 -07:00
97c7575520 2020-08-08 nightly release (b7a9bc0802b68cff07958937cfda2271155689e5) 2020-08-08 00:02:23 -07:00
5dec2a9909 2020-08-07 nightly release (cb1ac94069700e47f7283c41820d3c2de0af9553) 2020-08-07 00:02:52 -07:00
c81b784a72 2020-08-06 nightly release (644d787cd8d9512b92d18e9a94d6f3a401b5ca69) 2020-08-06 00:03:49 -07:00
5415138490 2020-08-05 nightly release (0f358fab6b92307edba4d89a855cac395f5b1565) 2020-08-05 00:03:04 -07:00
40277cdaae 2020-08-04 nightly release (ae67f4c8b89547d648b66a49048ce13982ed6be7) 2020-08-04 00:03:10 -07:00
51381481e2 2020-08-03 nightly release (bfa94487b968ccb570ef8cd9547029b967e76ed0) 2020-08-03 00:02:59 -07:00
36fa26aae5 2020-08-02 nightly release (91c80d122ab271d36ce37d60acf430fdbd54d249) 2020-08-02 00:03:17 -07:00
69909359f4 2020-08-01 nightly release (44b018ddeb89e9c6283d3a1c17549848cf77d6a4) 2020-08-01 00:03:38 -07:00
006129dc63 2020-07-31 nightly release (2f840b1662b487d5551d7230f8eb4d57645cfff5) 2020-07-31 00:06:51 -07:00
87867a04f9 2020-07-30 nightly release (0444bac940695ccfa43854f9241839f759ba5f28) 2020-07-30 00:03:38 -07:00
7e19a4a05b 2020-07-29 nightly release (6b3f335641e1874c5b0ae0aa719687ed5f42ab45) 2020-07-29 00:03:42 -07:00
e99cef1e0b 2020-07-28 nightly release (4f723825b48e555512813fcffd56e89e5b16eeaf) 2020-07-28 00:03:07 -07:00
1da1361946 2020-07-27 nightly release (96aaa311c0251d24decb9dc5da4957b7c590af6f) 2020-07-27 00:02:27 -07:00
bfbc0a6fcf 2020-07-26 nightly release (b7bda236d18815052378c88081f64935427d7716) 2020-07-26 00:04:40 -07:00
2f4f3b4fb7 2020-07-25 nightly release (366c014a7799f0b7bbc258fd6c271dadb99d1de0) 2020-07-25 00:02:25 -07:00
f83664fb35 2020-07-24 nightly release (c0bfa45f9d26fb814a80f3053fbc550ff77d82c1) 2020-07-24 00:02:36 -07:00
c6ef1bac44 2020-07-23 nightly release (0ec7ba40888f07678d3a1d766817154dc90bef90) 2020-07-23 00:02:44 -07:00
10c53d9390 2020-07-22 nightly release (5c9918e757b019564e74ae6f676cacfe70a87afd) 2020-07-22 00:03:14 -07:00
a41d75b78a 2020-07-21 nightly release (fe415589a964697a78186189bd4815541f853b47) 2020-07-21 00:02:27 -07:00
bb29acf111 2020-07-20 nightly release (bd42e1a082f21d189492a950533970caabf2d089) 2020-07-20 00:03:24 -07:00
33f735f3ec 2020-07-19 nightly release (a69a2628109a55f7f965bb79eca8967fce685a6a) 2020-07-19 00:02:41 -07:00
0fcfa4aca3 2020-07-18 nightly release (e7a09b4d17010e60bc95c25f8165ef479d1b9612) 2020-07-18 00:02:55 -07:00
b18ecab49c 2020-07-17 nightly release (e3e58e20cd57892fd39e4bda33a2c249cab6f739) 2020-07-17 00:03:42 -07:00
7fb344967b 2020-07-16 nightly release (04c0f2e3cc7be79bfa005d1670b19cfb7dee308c) 2020-07-16 00:03:01 -07:00
21dba79af2 2020-07-15 nightly release (9552ec787cf7a004ed7a6063d45bb5e2d85e1d60) 2020-07-15 00:03:03 -07:00
7affad5f48 2020-07-14 nightly release (80d5b3785b88f83eb598e393d0137f045b979c4b) 2020-07-14 00:02:49 -07:00
62b00bcddb 2020-07-13 nightly release (0c77bd7c0bbd4d6e50a5f3ce7b4debbee85d7963) 2020-07-13 12:58:41 -07:00
b7e29fb2c6 2020-07-13 nightly release (67a4f375cdf06113ca959b4e16739edb666f243f) 2020-07-13 00:02:49 -07:00
7bc96af0a7 2020-07-12 nightly release (4b4184fc69e224701529b84d2f182c1d65cea74a) 2020-07-12 00:02:37 -07:00
1ec86870fc 2020-07-11 nightly release (a1ed6e1eb30c03db55881bca536e5edf64622a1b) 2020-07-11 00:02:33 -07:00
5797d683a2 2020-07-10 nightly release (df252c059c3ea4c04f8c39c3b4c25a3f4572b0b7) 2020-07-10 00:03:27 -07:00
2360093da9 2020-07-09 nightly release (bf9cc5c77698da260e806ce07a690770b6d26253) 2020-07-09 00:02:31 -07:00
0a0d5b9a80 2020-07-08 nightly release (e2a291b396be8db6f9ac1fc7d45e97c6026df590) 2020-07-08 00:02:31 -07:00
f4f757998d 2020-07-07 nightly release (22c7d183f7c95a70f75acb310c1abc79d674fb18) 2020-07-07 11:13:40 -07:00
52e3d4aba1 2020-07-07 nightly release (4aa543ed2e3ff9e9e6aab4979efca559a62f22b7) 2020-07-07 00:02:22 -07:00
cbac4f50d3 2020-07-06 nightly release (300a3aaaadb5edaac818713b1752e9af976336f9) 2020-07-06 00:02:26 -07:00
9a199cf853 2020-07-05 nightly release (8ecd4f36aab89df38500e72458af5e05e7f12a78) 2020-07-05 00:02:28 -07:00
d9a61a1671 2020-07-04 nightly release (480851ad2c21e8e39e336d849b8030a2f91718d7) 2020-07-04 00:02:15 -07:00
b2718d2b21 2020-07-03 nightly release (824ab19941b09164b099c0a614b78984b9c68cf9) 2020-07-03 00:04:57 -07:00
b9bde4e47b 2020-07-02 nightly release (ea03f954ada77bfbfef542ce93be2f525c8d8e64) 2020-07-02 00:02:42 -07:00
05bcdcd112 2020-07-01 nightly release (fcadca1bdab62ea5728e49397e023c8863466e83) 2020-07-01 00:02:57 -07:00
6bdf560205 2020-06-30 nightly release (871bfaaba1da0eff28d5a992cc86a2bb745e6621) 2020-06-30 11:14:52 -07:00
ca6a9756c2 2020-06-30 nightly release (b9cca4b186797b4ccdc12197b3b71db94d8e2297) 2020-06-30 00:02:32 -07:00
9a7a41a96d 2020-06-29 nightly release (b35cdc5200af963e410c0a25400fd07f30b89bca) 2020-06-29 00:02:19 -07:00
2c978b42a4 2020-06-28 nightly release (502ec8f7f76619e6cbb1efb0e23eb8c5438daed2) 2020-06-28 00:02:34 -07:00
09c29e5af2 2020-06-27 nightly release (61a8de77cfc50ba0d12348065a7d399663ba6511) 2020-06-27 00:02:23 -07:00
28d1a1436b 2020-06-26 nightly release (eebd492dcfb8d4152a5ba4240486f3df5aaf112d) 2020-06-26 00:02:56 -07:00
64d71c446e 2020-06-25 nightly release (eae1ed99a35eac4e7b6daf7123136e832c50a158) 2020-06-25 00:02:46 -07:00
1d4e5f4a25 2020-06-24 nightly release (7b0f867c4853af69b14bb516ba2a9dbff8f56d51) 2020-06-24 00:02:33 -07:00
8752b4048d 2020-06-23 nightly release (e9efad687875a7de1e599dda776ed1e9509d01eb) 2020-06-23 00:02:44 -07:00
48a48958f3 2020-06-22 nightly release (c8738957221e3edd0aa2fc2be84c037fd0611881) 2020-06-22 12:49:39 -07:00
aa61b8bc13 2020-06-22 nightly release (ab8a99bd36b9969f6226f0dfd62510e3dd6ecb51) 2020-06-22 00:02:27 -07:00
d6e183bda7 2020-06-21 nightly release (3bbedb34b9b316729a27e793d94488b574e1577a) 2020-06-21 00:02:52 -07:00
e51edad5d3 2020-06-20 nightly release (9da277c63557784d6a2ea7c44d1c469d7178d444) 2020-06-20 00:02:52 -07:00
c51aaa7f08 2020-06-19 nightly release (86b1afa039f3fba83f082382b7c62b896fb98e09) 2020-06-19 00:02:39 -07:00
681f9c3458 2020-06-18 nightly release (d1a0e880750bd2a7a88ff3465df3af7f05261790) 2020-06-18 00:02:55 -07:00
309d8f4dea 2020-06-17 nightly release (9d588f7ce26775ffad0035dcc4c1128d62b889fc) 2020-06-17 00:02:54 -07:00
37dddadd6a 2020-06-16 nightly release (bcb44796ba00f9ac5f22e33f1de3a24b277c4c3a) 2020-06-16 00:03:48 -07:00
d630b39c4f 2020-06-15 nightly release (541814f2b7eacabacdc87ccb1b4495bf486f501a) 2020-06-15 00:02:18 -07:00
9fca12ab19 2020-06-14 nightly release (8072f0685f5bd9bc8f1e48ef916518fa31a50826) 2020-06-14 00:02:19 -07:00
c82098341b 2020-06-13 nightly release (8d3fcb43cf5e58d05351107bc99ee5e2ce8ae5b9) 2020-06-13 00:04:02 -07:00
7b4d0fbaa9 2020-06-12 nightly release (c068233300f1473e3119b8d6b8b672c2fb912f1d) 2020-06-12 00:02:03 -07:00
195f29e3ba 2020-06-11 nightly release (c3d4053bc0648f76906208a69d863276c8b82995) 2020-06-11 00:02:27 -07:00
31019eecb8 2020-06-10 nightly release (6bdfd6ae1adb341f5bae2fc8bc987653b8a319ad) 2020-06-10 00:01:56 -07:00
bd13707502 2020-06-09 nightly release (af05158c56af29e062580f458a86a32b8f4c2b85) 2020-06-09 00:02:44 -07:00
41ff48299b 2020-06-08 nightly release (6c56671fd96ac71346c818d0a5ea8087575e9cba) 2020-06-08 00:01:58 -07:00
61a9383920 2020-06-07 nightly release (e4627e5dba1516afe0c12bf748ebc2200b6e378d) 2020-06-07 00:01:59 -07:00
b5da8c9f3e 2020-06-06 nightly release (6a75f650dd3bf6d3fdaafffe7298d141c0377489) 2020-06-06 00:02:17 -07:00
2f447b8e25 2020-06-05 nightly release (8a6914ddb225196d9b4c712ad7a82b464a80c0e5) 2020-06-05 00:02:36 -07:00
00de97d13a 2020-06-04 nightly release (fe684679b06f7f2fe7a7e136ea5605c04254b652) 2020-06-04 12:31:20 -07:00
645b018a22 2020-06-04 nightly release (03eca384fd87ee07c73b6406c3e32ee69bb13fb0) 2020-06-04 00:02:18 -07:00
6fdf7aa7a2 2020-06-03 nightly release (a05ef17e467a152e86e3de1d47868dd4a1d9d648) 2020-06-03 00:02:01 -07:00
588bf42df3 2020-06-02 nightly release (f4365cf5ba8ee4ba319385cbd2ff7b9a825a75d0) 2020-06-02 00:02:14 -07:00
c3dc364b18 2020-06-01 nightly release (caaea084e9e63dd3f22edcab0fda6822f7634820) 2020-06-01 00:02:00 -07:00
860bd46af1 2020-05-31 nightly release (8556664d6896a8e7f48f1c419e06e0568b9ee09e) 2020-05-31 00:02:09 -07:00
825ee6cbb3 2020-05-30 nightly release (b7b99ab0c8f82100177729b9751481852d83e77e) 2020-05-30 00:02:07 -07:00
c1afe3d886 2020-05-29 nightly release (b08a4aaf3bdf59e80590fc2b4a7c821be2213699) 2020-05-29 00:02:06 -07:00
43beca9d58 2020-05-28 nightly release (f5bc91f851f7d3b862643b51f06f0281eb225b8c) 2020-05-28 00:01:59 -07:00
f0711fe9c6 2020-05-27 nightly release (916084d933792f7ee619aee7155fedf68d1a8cd1) 2020-05-27 00:02:22 -07:00
f01bd55177 2020-05-26 nightly release (d035d05080729c30636ff30fcc068de3c7e9badd) 2020-05-26 00:02:00 -07:00
31d8b6eabd 2020-05-25 nightly release (d035d05080729c30636ff30fcc068de3c7e9badd) 2020-05-25 00:02:12 -07:00
74b18f831e 2020-05-24 nightly release (d035d05080729c30636ff30fcc068de3c7e9badd) 2020-05-24 00:03:13 -07:00
7c4f81427c 2020-05-23 nightly release (d035d05080729c30636ff30fcc068de3c7e9badd) 2020-05-23 00:01:53 -07:00
04734358e7 2020-05-22 nightly release (d035d05080729c30636ff30fcc068de3c7e9badd) 2020-05-22 00:02:14 -07:00
991faa295f 2020-05-21 nightly release (e9902358df14dc4809e4f50b12088a5200a1862d) 2020-05-21 00:01:58 -07:00
0a55aad1ea 2020-05-20 nightly release (1465970a343e61f2f2b104859ca7f5d7e03f5d02) 2020-05-20 00:02:15 -07:00
fe43bd1a77 2020-05-19 nightly release (f6f1384811b9cc722f650ed9ead8ee99938c009a) 2020-05-19 00:01:52 -07:00
8216138905 2020-05-18 nightly release (176174a68ba2d36b9a5aaef0943421682ecc66d4) 2020-05-18 00:01:53 -07:00
c680caafb1 2020-05-17 nightly release (176174a68ba2d36b9a5aaef0943421682ecc66d4) 2020-05-17 00:02:01 -07:00
c683033c5b 2020-05-16 nightly release (83df3beacad3e22bdfa95c1d3514af59dceaacdc) 2020-05-16 00:02:02 -07:00
8167c5996d 2020-05-15 nightly release (c0bc1827611f4ad6370e87af35571bfe3cc91e4f) 2020-05-15 00:02:02 -07:00
053c725853 2020-05-14 nightly release (96885f73ed79c4d3d01717248f24694e05e1b041) 2020-05-14 00:01:54 -07:00
5fdf2cdc0e 2020-05-13 nightly release (61bea93fca35ad7ace2c9856499d3f478ffb1377) 2020-05-13 00:02:04 -07:00
f5bcbc5400 2020-05-12 nightly release (cf82011361592c0f55d1ce9e55c692108308374d) 2020-05-12 00:01:56 -07:00
c361c5a57c 2020-05-11 nightly release (324dc1623e2f91892038fb1b151450a7c6529dd9) 2020-05-11 00:02:03 -07:00
5d263b7b81 2020-05-10 nightly release (26928b164f3e43a48bc57fc41ca277583501054d) 2020-05-10 00:01:58 -07:00
e241ab52a0 2020-05-09 nightly release (45010833069c02162fee40291ef7d444dfe7f41b) 2020-05-09 00:02:19 -07:00
2311a48ce4 2020-05-08 nightly release (4c358b8b726f56bc78ce20bb031e10869145de94) 2020-05-08 00:02:45 -07:00
5c7548f1bd 2020-05-07 nightly release (9143d7fb687acb4aff2ca7f8e1fc13c2af7a941b) 2020-05-07 00:01:59 -07:00
b372ce156d 2020-05-06 nightly release (b57b596f20b004116053e821d76ee08d46e55e39) 2020-05-06 00:02:19 -07:00
d84fbdc752 2020-05-05 nightly release (429d90f6487b276b02bd13b26c5291678412b389) 2020-05-05 00:01:54 -07:00
4154b913b5 2020-05-04 nightly release (843c0230f2928aad61a6940688da3a6cd6c4cd57) 2020-05-04 00:01:59 -07:00
bb75b0b420 2020-05-03 nightly release (5baa6b6c34c9a61c936f90168b6449421814553d) 2020-05-03 00:01:57 -07:00
0d1ee45511 2020-05-02 nightly release (d6394183078d3525f64b27ec0659b994a78c42dd) 2020-05-02 00:01:59 -07:00
3c5465887a 2020-05-01 nightly release (9e32a1f5cdcefa3ab55d91121e10d37e8fc850ea) 2020-05-01 00:01:53 -07:00
4684f1fe19 2020-04-30 nightly release (68250fa557cc3079bdd88aee4bee2d9222fbb34d) 2020-04-30 00:02:19 -07:00
4070924186 2020-04-29 nightly release (4bfa51d40595d41d6bec6d4a9b1ade72adde4ebc) 2020-04-29 00:02:11 -07:00
d055855a96 2020-04-28 nightly release (ebcacd5e878f3f8e84c941d6b9567c88f50a2f10) 2020-04-28 00:02:00 -07:00
52f688abbc 2020-04-27 nightly release (f41742ff2fd5c9507c037dc120d75f6f191a87b1) 2020-04-27 00:02:50 -07:00
7bce785c8b 2020-04-26 nightly release (b64fc3c4b5d927928770f9b343eb845123367084) 2020-04-26 00:02:15 -07:00
d3b0b98dbc 2020-04-25 nightly release (6e659e928ba48afa8a6f5d734c37ab187734927b) 2020-04-25 00:02:08 -07:00
1021e473d6 2020-04-24 nightly release (827f04a075d9f564e0871f809ae67f5538b30ab9) 2020-04-24 00:02:02 -07:00
572542260d 2020-04-23 nightly release (b889e0da8ab33e0b47abc817e679851299728be7) 2020-04-23 00:02:18 -07:00
5213e2cf39 2020-04-22 nightly release (799793f27951dbf1abd01c3a1082e6edd525f19e) 2020-04-22 00:02:25 -07:00
23c4dbd92b 2020-04-21 nightly release (a1eb591ea6afa07d2bc6e644bc0697a585dbdd7e) 2020-04-21 00:02:11 -07:00
2c106114c9 2020-04-20 nightly release (0f0d69009eb1dbc58feacc819bc9885990e888aa) 2020-04-20 00:02:31 -07:00
130773838d 2020-04-19 nightly release (b0b9e704ed1f31ed1c81994c20e5a9f3715d2583) 2020-04-19 00:01:52 -07:00
54f8763e8f 2020-04-18 nightly release (197c85fcbc487d707e0e2635a5291da7c8658036) 2020-04-18 00:02:02 -07:00
59c6f7575b 2020-04-17 nightly release (a89d1ed5496dccce310b3dd08a417b5de71e8332) 2020-04-17 00:01:53 -07:00
57f9ef23d8 2020-04-16 nightly release (7539ea0207859d5e20f6e836818bfafa77f3045e) 2020-04-16 00:01:55 -07:00
5ddf7a5733 2020-04-15 nightly release (9cac2b83d9e6838de796e0cecfbacaa6a64dc6a8) 2020-04-15 00:02:09 -07:00
8cfa076820 2020-04-14 nightly release (dd64e738c5cb191a5280b19635fe9941d6c0b95a) 2020-04-14 00:02:13 -07:00
e15f869505 2020-04-13 nightly release (b92f8d9b7e2e8543e2808c1d05c09e57c19ce5d9) 2020-04-13 00:02:03 -07:00
013659bc5b 2020-04-12 nightly release (d83509e603d6d932a818d4e0ca027129aa9c5857) 2020-04-12 00:02:09 -07:00
81f40df4e5 2020-04-11 nightly release (409346eee308017336fc73a4ae1e9b60777b7b49) 2020-04-11 00:02:06 -07:00
cabe3becc0 2020-04-10 nightly release (31dca07fa5673c115ae6e9e68a09b969918c49d8) 2020-04-10 00:01:53 -07:00
4ba93a8a3e 2020-04-09 nightly release (f59e646faa6ec7c388735aeda4a5bd7eb8eb0be2) 2020-04-09 00:01:56 -07:00
1061602446 2020-04-08 nightly release (f0bddd5e7a89a7f8037a27180b27aeb1a90b6f6a) 2020-04-08 00:01:55 -07:00
50aefcfa05 2020-04-07 nightly release (3e5d25fdfd6dc22cfc697a83d924ff386fdf51b3) 2020-04-07 00:02:24 -07:00
598d03f9a9 2020-04-06 nightly release (82d58ed484eb04f894475de0551055f7e070f481) 2020-04-06 00:02:00 -07:00
28295bbcce 2020-04-05 nightly release (b3cdec88e364e56bc69bf42cd6d8583fcfd62a18) 2020-04-05 00:02:30 -07:00
06d935798d 2020-04-04 nightly release (e3e2dd7779974307cc5caa75d539adac690f5ca5) 2020-04-04 00:02:09 -07:00
021d8fa26d 2020-04-03 nightly release (1a146b0577ac7737cc8eb28ecf4c10fd713dd4c5) 2020-04-03 00:01:49 -07:00
d0937d2101 2020-04-02 nightly release (2f50c119545c654088bb2796fa23e747099ca053) 2020-04-02 00:01:54 -07:00
66d3b83708 2020-04-01 nightly release (ee6f7c3e62a179178e8e0cc3ab1aaedfa820d04d) 2020-04-01 00:01:54 -07:00
73f6729ccf 2020-03-31 nightly release (a090de380c1d0be68b26476d69d38a3291268c69) 2020-03-31 00:01:57 -07:00
77f1aef758 2020-03-30 nightly release (340048b67c53f05a04def9e5a69403c7b49915c8) 2020-03-30 00:02:07 -07:00
29ccceee5c 2020-03-29 nightly release (67c382294443cca408347ce68d73d5084301c5a2) 2020-03-29 00:01:52 -07:00
554de41a6e 2020-03-28 nightly release (683246e5ead92503e1022418cab33c93bfbc77e3) 2020-03-28 00:02:02 -07:00
565f305f3a 2020-03-27 nightly release (ac639d927a37f58bda16c7a1b96a2dfcf3a21666) 2020-03-27 00:02:02 -07:00
a49ed6d378 2020-03-26 nightly release (be0cdf5d157a84dd28bd95ca8f5f82306c0340f5) 2020-03-26 00:01:59 -07:00
dd073cd4fc 2020-03-25 nightly release (17abb7c31a30ee8e5037528b7b6552a25b7132e7) 2020-03-25 14:19:03 -07:00
fc211ce302 2020-03-25 nightly release (d6377b7cef0c7bc822df80eedd86689bc51e83d2) 2020-03-25 00:02:04 -07:00
addd3250a4 2020-03-24 nightly release (8b8af0d4580f74680240a88a34fea78be02a6d22) 2020-03-24 00:02:26 -07:00
e8c963122a 2020-03-23 nightly release (a6672f3b305c3805c691f3477e7940d146130a88) 2020-03-23 00:02:27 -07:00
f3908c0ee6 2020-03-22 nightly release (a5b509985a37127fb52fbfdee85c7b336cd8d2c1) 2020-03-22 00:01:50 -07:00
37ea717b03 2020-03-21 nightly release (95ad94c75b09ad2438141e4eb52e83e737966e60) 2020-03-21 00:02:00 -07:00
8b2e30b3f5 2020-03-20 nightly release (ec9f6809734b4cada98d02138ad8de75ce790273) 2020-03-20 00:02:28 -07:00
2730db1362 2020-03-19 nightly release (c8f665dcb626378ca9c51d7b70fc242524105441) 2020-03-19 00:02:22 -07:00
f1a11aee2b 2020-03-18 nightly release (bcbdba450c25cdf7c6bbe590880cf39f0984123c) 2020-03-18 00:01:58 -07:00
5d40408bfd 2020-03-17 nightly release (089a0a211776ac928a9fefb1841e1d44c9b4dee1) 2020-03-17 00:01:57 -07:00
e9bd3eca1b 2020-03-16 nightly release (bdd7dbfd4b75e66a88d393993b41c77f576f74fc) 2020-03-16 00:04:09 -07:00
36718f7877 2020-03-15 nightly release (6c555e1508184f2cbf34c6ec96d557809808fe85) 2020-03-15 00:02:09 -07:00
d3d99e47ef 2020-03-14 nightly release (fb20621b3b80aef95485574f53cceecaf51ac8be) 2020-03-14 00:02:08 -07:00
bac80526bd 2020-03-13 nightly release (fd355965857f5c281d0b60be864745e7b7a223bd) 2020-03-13 00:02:28 -07:00
fc35f28aa5 2020-03-12 nightly release (c235be42ddecc3c4e1cdf192ca2764455082c1c6) 2020-03-12 00:05:52 -07:00
c09e7d1b26 2020-03-11 nightly release (2ce9513b0c8894987f6d42bfb57ff95b22e32c95) 2020-03-11 00:04:29 -07:00
f9ef5dafca 2020-03-10 nightly release (4f62cbe7de8f867809ca601c996dd48a5a28ffca) 2020-03-10 00:08:48 -07:00
d44877c493 2020-03-09 nightly release (7e55494502478d7f78138bc974e681df52b0635c) 2020-03-09 00:02:22 -07:00
81e7c5374a 2020-03-08 nightly release (79d47c1c5ff5306bdd275196b7171c04bebbdcca) 2020-03-08 00:19:17 -08:00
e80485cacc 2020-03-07 nightly release (65bad41cbec096aa767b3752843eddebf845726f) 2020-03-07 00:02:51 -08:00
fbd3eeb1e7 2020-03-06 nightly release (9a5e9d8cecb1c68eebd69618729a7ec5671b2a06) 2020-03-06 00:03:33 -08:00
d499ac979a 2020-03-05 nightly release (2b79bab029ec387618f6b9724a4027b81fbda33c) 2020-03-05 00:04:15 -08:00
b236f19a6a 2020-03-04 nightly release (f097ca503d349fa352281925fc6df72e52fff077) 2020-03-04 00:02:50 -08:00
ea8063a8aa 2020-03-03 nightly release (0afee0c20bc9c3b4261157d5a5f8eee437954a2a) 2020-03-03 00:03:22 -08:00
3b175e7c33 2020-03-02 nightly release (a500491cbc51c093b5990a69c6066479c13e360c) 2020-03-02 00:03:45 -08:00
38aabee374 2020-03-01 nightly release (ace2b4f37f26b8d7782dd6f1ce7e3738f8dc0dec) 2020-03-01 00:02:54 -08:00
bd482deca4 2020-02-29 nightly release (5a8562a6af2f4097975ad079e982a88924c4fd07) 2020-02-29 00:02:32 -08:00
e5f2f9d8c7 2020-02-28 nightly release (f5f1e5e7f66502a6a3f53f22f5034fdef8f040e9) 2020-02-28 00:02:24 -08:00
d2665bc828 2020-02-27 nightly release (973371139475834c44d118ba0256d97b070980a0) 2020-02-27 00:07:20 -08:00
9f327c18e3 2020-02-26 nightly release (758ad516f32708de243f194144ee0f7b9e0f5117) 2020-02-26 00:02:40 -08:00
496939b5fa 2020-02-25 nightly release (4460c8b034f8fd544ff9c271c4aa21698644d352) 2020-02-25 00:02:35 -08:00
bd8e7b182f 2020-02-24 nightly release (039dc9085425e18b8c217f6e33a1c3dd072dd48f) 2020-02-24 00:02:31 -08:00
6693e040e5 2020-02-23 nightly release (6d448acb345d2f21a6ddc6bd4b57a27fc785112d) 2020-02-23 00:02:05 -08:00
9718bd1498 2020-02-22 nightly release (8291e06f8fb14a09e6c3b7a740a182250069242c) 2020-02-22 00:02:08 -08:00
5ec369fd8b 2020-02-21 nightly release (a943b0518bee8f3ad5f6c44a30fbdd3382f2209c) 2020-02-21 00:02:12 -08:00
6ba25af498 2020-02-20 nightly release (e95282ab282032369289232e844ee61fbdf3a4e9) 2020-02-20 00:03:33 -08:00
63db28f43a 2020-02-19 nightly release (d13c1b8af803eecb7586c3760e6e93efb51e6677) 2020-02-19 00:02:30 -08:00
1e1c56b0fd 2020-02-18 nightly release (dde2ff46084202f646632d32aece341c911ff269) 2020-02-18 00:02:29 -08:00
3529bc52ce 2020-02-17 nightly release (87dc2dbcce2f46bbc861ef7e884a0e6b99290cf5) 2020-02-17 00:02:49 -08:00
3b952ed61f 2020-02-16 nightly release (f6808df75fb3ac4bc6b5f17a1d960f069e1faaea) 2020-02-16 00:02:07 -08:00
33e3497594 2020-02-15 nightly release (d35a4c202e917b5d5cb67ac749fcf7931212c25b) 2020-02-15 00:02:15 -08:00
03a562bf9e 2020-02-14 nightly release (ecd3c252b4da3056797f8a505c9ebe8d68db55c4) 2020-02-14 00:02:59 -08:00
b974dc1a0b 2020-02-13 nightly release (b98c7d34ed718774db28651220eb8bb71b2e8baf) 2020-02-13 00:04:26 -08:00
f7b3186fa4 2020-02-12 nightly release (9d9fa2eace07f2833bcd73551b52bf31bbdbc093) 2020-02-12 00:08:14 -08:00
c58acf210e 2020-02-11 nightly release (9857d9b4cd4b50c326c0d8309e92e5bbde083a84) 2020-02-11 00:04:23 -08:00
fa524b1ca1 2020-02-10 nightly release (e2f12885140c36c1d5bf82de6eb47797856fdacd) 2020-02-10 00:03:15 -08:00
121046fe2e 2020-02-09 nightly release (e2f12885140c36c1d5bf82de6eb47797856fdacd) 2020-02-09 00:03:14 -08:00
e9a11f3014 2020-02-08 nightly release (6249d7302b7277864ed0ade93f58d88ee0cd3aa8) 2020-02-08 00:05:28 -08:00
d180c32586 2020-02-07 nightly release (05d18ffaf5ccc5a19245afafe3998fc3731b570d) 2020-02-07 00:02:37 -08:00
77c97edf1e 2020-02-06 nightly release (e76fa9822dc4f980791d1bf01d63b2d4e9993ced) 2020-02-06 00:04:15 -08:00
1c420dd12b 2020-02-05 nightly release (1b446aa2ee540c6fbd029619459962aa7af3f168) 2020-02-05 00:13:49 -08:00
57a3554274 2020-02-04 nightly release (b894dc06de3e0750d9db8bd20b92429f6d873fa1) 2020-02-04 00:08:04 -08:00
e121e114d2 2020-02-03 nightly release (29e6f13cd1c309cf3dfd8ba45a6ca199359422b5) 2020-02-03 00:02:34 -08:00
6bc40330a5 2020-02-02 nightly release (71ad88199abb837286cdec73ccfcfb9f1a0a2356) 2020-02-02 00:02:18 -08:00
35d1dd656d 2020-02-01 nightly release (c83f9849067c5f14ce8e61f84b62af1215af5133) 2020-02-01 00:03:53 -08:00
ed119e9754 2020-01-31 nightly release (ed10408cc64d1acf0e325a3dda01f7b911350052) 2020-01-31 00:02:26 -08:00
7ef2fd057b 2020-01-30 nightly release (821b6aa769645c8190703b7d8e2cc9f36597853a) 2020-01-30 00:08:51 -08:00
9784297745 2020-01-29 nightly release (5e2311033ebc4bb6009f70db68e4d63ba73a1633) 2020-01-29 00:02:54 -08:00
7a245af681 2020-01-28 nightly release (2060e0a9dd197f8116635dc7517dde5191c0b1a0) 2020-01-28 15:25:48 -08:00
ace7cb80fd 2020-01-28 nightly release (8e4161517e112478a1c1f0290fedb91965f95aff) 2020-01-28 00:02:51 -08:00
db7d91084b 2020-01-27 nightly release (1e5aead35b3d2dca993f90e7d3343cc105ab93e1) 2020-01-27 00:02:08 -08:00
989298c613 2020-01-26 nightly release (90a259e1e22d14c79f788520c836d78b7f6325ba) 2020-01-26 00:02:41 -08:00
2e96268be1 2020-01-25 nightly release (e0ffe72649cef3a1dfd321545194d1b3574975c7) 2020-01-25 00:02:48 -08:00
b068dc341c 2020-01-24 nightly release (3ada2e0d64b40622e823b8135d2bbbc74e6526b9) 2020-01-24 00:02:13 -08:00
05641e89d5 2020-01-23 nightly release (21d475e20d8e9ae1652548e33c3be76383a821d3) 2020-01-23 00:07:25 -08:00
9ae9ff0f09 2020-01-22 nightly release (44b270d892176d6526801bdfa5227a8caa9852bf) 2020-01-22 00:03:23 -08:00
8b77987981 2020-01-21 nightly release (ecbf6f99e6a4e373105133b31534c9fb50f2acca) 2020-01-21 00:03:38 -08:00
0ba313bc2f 2020-01-20 nightly release (ecbf6f99e6a4e373105133b31534c9fb50f2acca) 2020-01-20 00:02:06 -08:00
80d85d6d95 2020-01-19 nightly release (58234c0254f135d1e3714b17f44f4922d56d41b4) 2020-01-19 00:02:25 -08:00
72f778b3d8 2020-01-18 nightly release (1ecad2bb2b9cf7c76657250688fb56af2e87886a) 2020-01-18 00:05:21 -08:00
e13d222815 2020-01-17 nightly release (ef5ae4823a00923342c82e08dd06adf579f5bc26) 2020-01-17 00:07:47 -08:00
be1384f850 2020-01-16 nightly release (d75b6b3f9d41c4f82fb2f5a04e8c9b27361e2701) 2020-01-16 00:05:31 -08:00
35bd8fc853 2020-01-15 nightly release (4dce482acb2f0b248e4886b3069dca8e3a1b7681) 2020-01-15 00:04:50 -08:00
90cb5cd111 2020-01-14 nightly release (62b1a5f8466991b3e042345e1c786d520c3b9d91) 2020-01-14 00:02:33 -08:00
aa881c569d 2020-01-13 nightly release (14593f077f9cb248cca85fd18b598d14c47d5d4e) 2020-01-13 00:04:24 -08:00
8ec30d8da4 2020-01-12 nightly release (927c2a02b0b29a0fafcced8d65896dd417023067) 2020-01-12 00:09:43 -08:00
b324108e81 2020-01-11 nightly release (927c2a02b0b29a0fafcced8d65896dd417023067) 2020-01-11 00:02:48 -08:00
0fa8c2c780 2020-01-10 nightly release (8ea49e7a0897b77a2cd6bf854efd80ef593acf02) 2020-01-10 00:02:55 -08:00
004e3ab791 2020-01-09 nightly release (26f552a3d10f9952636346173a1c34e824556c98) 2020-01-09 11:06:55 -08:00
0ae8b50609 2020-01-09 nightly release (0dbd5c0bfe9c4af1ecb0fccc669277d6eafd0d2b) 2020-01-09 00:02:20 -08:00
ab79b1861b 2020-01-08 nightly release (9116f02bebf3a5260feef5732d36c54ecb3b4033) 2020-01-08 00:05:01 -08:00
3ea026f4ab 2020-01-07 nightly release (a561a8448b6b7bb8f6068178fe7bc9e2bf348304) 2020-01-07 00:14:56 -08:00
b5620f68e6 2020-01-06 nightly release (33430cf0946650058118096f78741440676e33c0) 2020-01-06 00:02:22 -08:00
8936e4ed33 2020-01-05 nightly release (3f0b330736a2af1331e49e8e12e880dffd1e5974) 2020-01-05 00:09:33 -08:00
9944deb456 2020-01-04 nightly release (2bac76969c3a7306a818cb35983fee3f3005131a) 2020-01-04 00:02:39 -08:00
9c908cb9c3 2020-01-03 nightly release (95cb66570af68ec93b5a72144a4f8eee45c354dc) 2020-01-03 00:04:06 -08:00
4313ac1d3e 2020-01-02 nightly release (cb1af5f61fb338c591e6427fd274ea5b44df4f26) 2020-01-02 00:03:28 -08:00
505aad770c 2020-01-01 nightly release (cb1af5f61fb338c591e6427fd274ea5b44df4f26) 2020-01-01 00:02:30 -08:00
8c2e381be8 2019-12-31 nightly release (b102550d2c103cd4e2d7cb9535d730417b7c8ef2) 2019-12-31 00:02:47 -08:00
73a5627944 2019-12-30 nightly release (ee87b01f4093208d527fc0bd740723c2fa4f1feb) 2019-12-30 00:07:29 -08:00
86523be4f1 2019-12-29 nightly release (22d84204f7188ed4042505e723eef46f048ff47c) 2019-12-29 00:08:28 -08:00
e67d8245f9 2019-12-28 nightly release (90a187618ef043edb40483746fba16ddb0b9918b) 2019-12-28 00:03:33 -08:00
9fe8cf51de 2019-12-27 nightly release (b522a8e1ff8a531c4ac75a3551b99d5b40125cf0) 2019-12-27 00:02:40 -08:00
fa96a94943 2019-12-26 nightly release (a54dc87e8ebf7634d3fb2f32dd32b73c1a4d095f) 2019-12-26 00:03:14 -08:00
776a8b0c01 2019-12-25 nightly release (a54dc87e8ebf7634d3fb2f32dd32b73c1a4d095f) 2019-12-25 00:08:27 -08:00
9eb235f1a5 2019-12-24 nightly release (363d8be787cb324a451b8511abea4e5bf05f376f) 2019-12-24 00:02:25 -08:00
3d6e73b978 2019-12-23 nightly release (fe76af96eddbf62df0d2722220b907e56e3ee8e6) 2019-12-23 00:02:20 -08:00
6998eb5c60 2019-12-22 nightly release (7d630278daee00ea2db6bc01e8a2a5f160bd8e81) 2019-12-22 00:02:09 -08:00
087fe33bef 2019-12-21 nightly release (700109eb630b79fd65cb93becb7f2d14f93bdb5c) 2019-12-21 00:05:00 -08:00
c899e0f249 2019-12-20 nightly release (4c341582ea18f241628c6e1756633bc9f897b76d) 2019-12-20 00:03:23 -08:00
fc345e9b5c 2019-12-19 nightly release (1e116a5089a353fa5186e436addbc4dd08d73f68) 2019-12-19 00:05:38 -08:00
1fb749785c 2019-12-18 nightly release (3c8892aa0cd80e62f01b1ba3c99e4f5fd713868c) 2019-12-18 00:04:05 -08:00
bb462a28c7 2019-12-17 nightly release (0e548a76ebc42d604d2c26ed586b899e2a25ded4) 2019-12-17 00:02:15 -08:00
28efaa7b99 2019-12-16 nightly release (409151e1bb90c66546901d372f59930f72242ee9) 2019-12-16 00:02:14 -08:00
96449cd8e6 2019-12-15 nightly release (ec92711aac5537bb509535c74bf59ccbf4d72db2) 2019-12-15 00:02:04 -08:00
74de2ce96f 2019-12-14 nightly release (36d17f4105f48d264fe085ce3dc0e4e825ebfb42) 2019-12-14 00:02:26 -08:00
4954096451 2019-12-13 nightly release (f7c92f60ba25ec5c50e125a4098913684448deca) 2019-12-13 00:02:15 -08:00
35cdcd2d31 2019-12-12 nightly release (2488231fe32e6e2c86f58acaa34766a6daa19235) 2019-12-12 00:02:20 -08:00
827fe3ff0a 2019-12-11 nightly release (8013ffd400b80ea3478e4b38daf9049647bf1550) 2019-12-11 00:03:19 -08:00
e8dc63722a 2019-12-10 nightly release (5205556782a71bdb8d90bcf0dcc58262713056b6) 2019-12-10 00:06:41 -08:00
6f08a756d1 2019-12-09 nightly release (190dac13e33267b4808a280fbc449ad672ec7544) 2019-12-09 00:04:51 -08:00
cefedb5547 2019-12-08 nightly release (6848f9abb82edc4e03e34b2c45a6c559a45a6c7c) 2019-12-08 00:02:27 -08:00
e2195755f4 2019-12-07 nightly release (63f1b780ba584384aef515ee3405f5847234787a) 2019-12-07 00:06:39 -08:00
7f6fc267c8 2019-12-06 nightly release (d32aec5ad627290516c17f37deeae04cafa06eab) 2019-12-06 00:05:51 -08:00
3fd4c696d9 2019-12-05 nightly release (a939b52ddbb0e1f9b7bf6b3a90dd4f7b331ef8de) 2019-12-05 00:02:45 -08:00
2561aea9fa 2019-12-04 nightly release (7e472679ff95fe4d23bcad89e98b8a6a2594880a) 2019-12-04 00:02:39 -08:00
d68cce5399 2019-12-03 nightly release (18ec4632b335521c8497ca2760a386c6d0d10a64) 2019-12-03 00:02:14 -08:00
66186d66e7 2019-12-02 nightly release (c780610f2d8358297cb4e4460692d496e124d64d) 2019-12-02 00:02:02 -08:00
bb9fdbeb5b 2019-12-01 nightly release (dd52f50fc85e6710f020936c1fc5f14673508350) 2019-12-01 00:03:15 -08:00
60d1c2048a 2019-11-30 nightly release (dd52f50fc85e6710f020936c1fc5f14673508350) 2019-11-30 00:02:51 -08:00
1e33e3ff3c 2019-11-29 nightly release (dd52f50fc85e6710f020936c1fc5f14673508350) 2019-11-29 00:02:09 -08:00
801675b97a 2019-11-28 nightly release (1350b99de4f13dfecfac335c088a79ff1f7e6adc) 2019-11-28 00:03:47 -08:00
3b178ac7ba 2019-11-27 nightly release (829499e626362e6a1badeba4e28c0f7a7a120fde) 2019-11-27 00:04:56 -08:00
2b44caa054 2019-11-26 nightly release (b8f50d9cc860460c7e9b6d3b370cab546e9f9583) 2019-11-26 00:02:13 -08:00
f8779b3945 2019-11-25 nightly release (3990e9d1ca23e39bfa65fe1d907ddb9f9dbf0919) 2019-11-25 00:02:52 -08:00
dfcf37b25a 2019-11-24 nightly release (3990e9d1ca23e39bfa65fe1d907ddb9f9dbf0919) 2019-11-24 00:02:20 -08:00
c1c03d34de 2019-11-23 nightly release (328ec5460f159ad9d42ddec463eaff2c118b092e) 2019-11-23 00:03:11 -08:00
1ac88375e4 2019-11-22 nightly release (48b943960e98082f103b9cbbdac54ec1eeca3fc9) 2019-11-22 00:02:32 -08:00
91110f4b2a 2019-11-21 nightly release (f7b12a985812f278b225fd58549ac95c7864a22c) 2019-11-21 00:06:35 -08:00
85ab8fc4b7 2019-11-20 nightly release (7495c25440709213cf9e018e7929a1a691c34489) 2019-11-20 00:03:35 -08:00
13f5548df1 2019-11-19 nightly release (a9ad2e2f00e9b7d9b30af5c0c6db348432ad7964) 2019-11-19 00:02:54 -08:00
95eee138ed 2019-11-18 nightly release (bb217eee985529b87f9582d6e4d6cb452fcd3909) 2019-11-18 00:03:42 -08:00
b6b29af92a 2019-11-17 nightly release (b011461c9f4bee46075cdf23a13d75c35baed612) 2019-11-17 00:02:06 -08:00
1b1e2c69e2 2019-11-16 nightly release (455b5c1a7d1503c03853e37b5a2caf60948359eb) 2019-11-16 00:04:39 -08:00
a3eaa3fac6 2019-11-15 nightly release (d22f61432dc71315029641b01bf264482bc9c5ca) 2019-11-15 15:49:07 -08:00
dc8c0d2ad7 2019-11-15 nightly release (d22f61432dc71315029641b01bf264482bc9c5ca) 2019-11-15 14:03:45 -08:00
031bd7a195 2019-11-15 nightly release (e1a309a647c5096bddaf44c423cc5dea8d6cae6c) 2019-11-15 00:03:24 -08:00
96a8c5838a 2019-11-14 nightly release (9fd7db616a0e220a74f4459958ea2d3186d5e55a) 2019-11-14 00:01:54 -08:00
fcfd231cbb 2019-11-13 nightly release 2019-11-13 00:02:28 -08:00
692a412019 2019-11-12 nightly release 2019-11-12 00:02:10 -08:00
c302ad7241 2019-11-11 nightly release 2019-11-11 03:00:50 -08:00
4700557819 2019-11-10 nightly release 2019-11-10 03:00:46 -08:00
36ddaddedc 2019-11-09 nightly release 2019-11-09 03:03:17 -08:00
3d0a871767 2019-11-08 nightly release (f362ae1f72525138b0b5e6240fc480f72148712f) 2019-11-08 13:10:28 -08:00
945c9128dc 2019-11-08 nightly release 2019-11-08 03:01:53 -08:00
76e078d3b0 2019-11-07 nightly release 2019-11-07 03:01:36 -08:00
40453f8c2d 2019-11-06 nightly release 2019-11-06 03:02:19 -08:00
2169a327ea 2019-11-05 nightly release 2019-11-05 03:02:39 -08:00
8bd6991397 2019-11-04 nightly release 2019-11-04 03:01:55 -08:00
cd324a9107 2019-11-03 nightly release 2019-11-03 03:04:23 -08:00
51770b859f 2019-11-02 nightly release 2019-11-02 03:01:32 -07:00
c4a27d2dad 2019-11-01 nightly release 2019-11-01 03:01:17 -07:00
4e8f1b5ee3 2019-10-31 nightly release 2019-10-31 03:03:17 -07:00
9328ceaba3 2019-10-30 nightly release 2019-10-30 03:01:42 -07:00
7fd0514bec 2019-10-29 nightly release 2019-10-29 03:04:52 -07:00
97ce0ad2e2 2019-10-28 nightly release 2019-10-28 03:05:15 -07:00
a9ffa7dbfe 2019-10-27 nightly release 2019-10-27 03:01:31 -07:00
30ae96a55e 2019-10-26 nightly release 2019-10-26 03:03:27 -07:00
8ee799199f 2019-10-25 nightly release 2019-10-25 03:01:22 -07:00
18edd71061 2019-10-24 nightly release 2019-10-24 03:02:07 -07:00
2b630217db 2019-10-23 nightly release 2019-10-23 03:02:12 -07:00
4b1da15d9b 2019-10-22 nightly release 2019-10-22 03:07:48 -07:00
201ea71b2e 2019-10-21 nightly release 2019-10-21 03:04:27 -07:00
6ea77adf16 2019-10-20 nightly release 2019-10-20 03:01:18 -07:00
6e0fb1c894 2019-10-19 nightly release 2019-10-19 03:07:41 -07:00
e0b14d085e 2019-10-18 nightly release 2019-10-18 03:02:23 -07:00
fb77773d5f 2019-10-17 nightly release 2019-10-17 03:04:03 -07:00
5c86840692 2019-10-16 nightly release 2019-10-16 03:01:01 -07:00
21ad376b4e 2019-10-15 nightly release 2019-10-15 03:02:07 -07:00
47dab98ccb nightly release 2019-10-14 03:00:32 -07:00
4463 changed files with 277374 additions and 149237 deletions

16
.bc-linter.yml Normal file
View File

@ -0,0 +1,16 @@
version: 1
paths:
include:
- "**/*.py"
exclude:
- ".*"
- ".*/**"
- "**/.*/**"
- "**/.*"
- "**/_*/**"
- "**/_*.py"
- "**/test/**"
- "**/benchmarks/**"
- "**/test_*.py"
- "**/*_test.py"
- "tools/**"

View File

@ -3,8 +3,22 @@ set -eux -o pipefail
GPU_ARCH_VERSION=${GPU_ARCH_VERSION:-}
if [[ "$GPU_ARCH_VERSION" == *"12.9"* ]]; then
# Set CUDA architecture lists to match x86 build_cuda.sh
if [[ "$GPU_ARCH_VERSION" == *"12.6"* ]]; then
export TORCH_CUDA_ARCH_LIST="8.0;9.0"
elif [[ "$GPU_ARCH_VERSION" == *"12.8"* ]]; then
export TORCH_CUDA_ARCH_LIST="8.0;9.0;10.0;12.0"
elif [[ "$GPU_ARCH_VERSION" == *"12.9"* ]]; then
export TORCH_CUDA_ARCH_LIST="8.0;9.0;10.0;12.0"
elif [[ "$GPU_ARCH_VERSION" == *"13.0"* ]]; then
export TORCH_CUDA_ARCH_LIST="8.0;9.0;10.0;11.0;12.0+PTX"
fi
# Compress the fatbin with -compress-mode=size for CUDA 13
if [[ "$DESIRED_CUDA" == *"13"* ]]; then
export TORCH_NVCC_FLAGS="-compress-mode=size"
# Bundle ptxas into the cu13 wheel, see https://github.com/pytorch/pytorch/issues/163801
export BUILD_BUNDLE_PTXAS=1
fi
SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
@ -18,14 +32,22 @@ cd /
# on the mounted pytorch repo
git config --global --add safe.directory /pytorch
pip install -r /pytorch/requirements.txt
pip install auditwheel==6.2.0
pip install auditwheel==6.2.0 wheel
if [ "$DESIRED_CUDA" = "cpu" ]; then
echo "BASE_CUDA_VERSION is not set. Building cpu wheel."
#USE_PRIORITIZED_TEXT_FOR_LD for enable linker script optimization https://github.com/pytorch/pytorch/pull/121975/files
USE_PRIORITIZED_TEXT_FOR_LD=1 python /pytorch/.ci/aarch64_linux/aarch64_wheel_ci_build.py --enable-mkldnn
python /pytorch/.ci/aarch64_linux/aarch64_wheel_ci_build.py --enable-mkldnn
else
echo "BASE_CUDA_VERSION is set to: $DESIRED_CUDA"
export USE_SYSTEM_NCCL=1
#USE_PRIORITIZED_TEXT_FOR_LD for enable linker script optimization https://github.com/pytorch/pytorch/pull/121975/files
USE_PRIORITIZED_TEXT_FOR_LD=1 python /pytorch/.ci/aarch64_linux/aarch64_wheel_ci_build.py --enable-mkldnn --enable-cuda
# Check if we should use NVIDIA libs from PyPI (similar to x86 build_cuda.sh logic)
if [[ -z "$PYTORCH_EXTRA_INSTALL_REQUIREMENTS" ]]; then
echo "Bundling CUDA libraries with wheel for aarch64."
else
echo "Using nvidia libs from pypi for aarch64."
echo "Updated PYTORCH_EXTRA_INSTALL_REQUIREMENTS for aarch64: $PYTORCH_EXTRA_INSTALL_REQUIREMENTS"
export USE_NVIDIA_PYPI_LIBS=1
fi
python /pytorch/.ci/aarch64_linux/aarch64_wheel_ci_build.py --enable-mkldnn --enable-cuda
fi

View File

@ -13,49 +13,6 @@ def list_dir(path: str) -> list[str]:
return check_output(["ls", "-1", path]).decode().split("\n")
def build_ArmComputeLibrary() -> None:
"""
Using ArmComputeLibrary for aarch64 PyTorch
"""
print("Building Arm Compute Library")
acl_build_flags = [
"debug=0",
"neon=1",
"opencl=0",
"os=linux",
"openmp=1",
"cppthreads=0",
"arch=armv8a",
"multi_isa=1",
"fixed_format_kernels=1",
"build=native",
]
acl_install_dir = "/acl"
acl_checkout_dir = os.getenv("ACL_SOURCE_DIR", "ComputeLibrary")
if os.path.isdir(acl_install_dir):
shutil.rmtree(acl_install_dir)
if not os.path.isdir(acl_checkout_dir) or not len(os.listdir(acl_checkout_dir)):
check_call(
[
"git",
"clone",
"https://github.com/ARM-software/ComputeLibrary.git",
"-b",
"v25.02",
"--depth",
"1",
"--shallow-submodules",
]
)
check_call(
["scons", "Werror=1", f"-j{os.cpu_count()}"] + acl_build_flags,
cwd=acl_checkout_dir,
)
for d in ["arm_compute", "include", "utils", "support", "src", "build"]:
shutil.copytree(f"{acl_checkout_dir}/{d}", f"{acl_install_dir}/{d}")
def replace_tag(filename) -> None:
with open(filename) as f:
lines = f.readlines()
@ -69,61 +26,186 @@ def replace_tag(filename) -> None:
f.writelines(lines)
def patch_library_rpath(
folder: str,
lib_name: str,
use_nvidia_pypi_libs: bool = False,
desired_cuda: str = "",
) -> None:
"""Apply patchelf to set RPATH for a library in torch/lib"""
lib_path = f"{folder}/tmp/torch/lib/{lib_name}"
if use_nvidia_pypi_libs:
# For PyPI NVIDIA libraries, construct CUDA RPATH
cuda_rpaths = [
"$ORIGIN/../../nvidia/cudnn/lib",
"$ORIGIN/../../nvidia/nvshmem/lib",
"$ORIGIN/../../nvidia/nccl/lib",
"$ORIGIN/../../nvidia/cusparselt/lib",
]
if "130" in desired_cuda:
cuda_rpaths.append("$ORIGIN/../../nvidia/cu13/lib")
else:
cuda_rpaths.extend(
[
"$ORIGIN/../../nvidia/cublas/lib",
"$ORIGIN/../../nvidia/cuda_cupti/lib",
"$ORIGIN/../../nvidia/cuda_nvrtc/lib",
"$ORIGIN/../../nvidia/cuda_runtime/lib",
"$ORIGIN/../../nvidia/cufft/lib",
"$ORIGIN/../../nvidia/curand/lib",
"$ORIGIN/../../nvidia/cusolver/lib",
"$ORIGIN/../../nvidia/cusparse/lib",
"$ORIGIN/../../nvidia/nvtx/lib",
"$ORIGIN/../../nvidia/cufile/lib",
]
)
# Add $ORIGIN for local torch libs
rpath = ":".join(cuda_rpaths) + ":$ORIGIN"
else:
# For bundled libraries, just use $ORIGIN
rpath = "$ORIGIN"
if os.path.exists(lib_path):
os.system(
f"cd {folder}/tmp/torch/lib/; "
f"patchelf --set-rpath '{rpath}' --force-rpath {lib_name}"
)
def copy_and_patch_library(
src_path: str,
folder: str,
use_nvidia_pypi_libs: bool = False,
desired_cuda: str = "",
) -> None:
"""Copy a library to torch/lib and patch its RPATH"""
if os.path.exists(src_path):
lib_name = os.path.basename(src_path)
shutil.copy2(src_path, f"{folder}/tmp/torch/lib/{lib_name}")
patch_library_rpath(folder, lib_name, use_nvidia_pypi_libs, desired_cuda)
def package_cuda_wheel(wheel_path, desired_cuda) -> None:
"""
Package the cuda wheel libraries
"""
folder = os.path.dirname(wheel_path)
wheelname = os.path.basename(wheel_path)
os.mkdir(f"{folder}/tmp")
os.system(f"unzip {wheel_path} -d {folder}/tmp")
libs_to_copy = [
"/usr/local/cuda/extras/CUPTI/lib64/libcupti.so.12",
"/usr/local/cuda/extras/CUPTI/lib64/libnvperf_host.so",
"/usr/local/cuda/lib64/libcudnn.so.9",
"/usr/local/cuda/lib64/libcublas.so.12",
"/usr/local/cuda/lib64/libcublasLt.so.12",
"/usr/local/cuda/lib64/libcudart.so.12",
"/usr/local/cuda/lib64/libcufft.so.11",
"/usr/local/cuda/lib64/libcusparse.so.12",
"/usr/local/cuda/lib64/libcusparseLt.so.0",
"/usr/local/cuda/lib64/libcusolver.so.11",
"/usr/local/cuda/lib64/libcurand.so.10",
"/usr/local/cuda/lib64/libnccl.so.2",
"/usr/local/cuda/lib64/libnvJitLink.so.12",
"/usr/local/cuda/lib64/libnvrtc.so.12",
"/usr/local/cuda/lib64/libcudnn_adv.so.9",
"/usr/local/cuda/lib64/libcudnn_cnn.so.9",
"/usr/local/cuda/lib64/libcudnn_graph.so.9",
"/usr/local/cuda/lib64/libcudnn_ops.so.9",
"/usr/local/cuda/lib64/libcudnn_engines_runtime_compiled.so.9",
"/usr/local/cuda/lib64/libcudnn_engines_precompiled.so.9",
"/usr/local/cuda/lib64/libcudnn_heuristic.so.9",
"/lib64/libgomp.so.1",
"/usr/lib64/libgfortran.so.5",
"/acl/build/libarm_compute.so",
"/acl/build/libarm_compute_graph.so",
"/usr/local/lib/libnvpl_lapack_lp64_gomp.so.0",
"/usr/local/lib/libnvpl_blas_lp64_gomp.so.0",
"/usr/local/lib/libnvpl_lapack_core.so.0",
"/usr/local/lib/libnvpl_blas_core.so.0",
]
# Delete original wheel since it will be repackaged
os.system(f"rm {wheel_path}")
if "129" in desired_cuda:
libs_to_copy += [
"/usr/local/cuda/lib64/libnvrtc-builtins.so.12.9",
"/usr/local/cuda/lib64/libcufile.so.0",
"/usr/local/cuda/lib64/libcufile_rdma.so.1",
# Check if we should use PyPI NVIDIA libraries or bundle system libraries
use_nvidia_pypi_libs = os.getenv("USE_NVIDIA_PYPI_LIBS", "0") == "1"
if use_nvidia_pypi_libs:
print("Using nvidia libs from pypi - skipping CUDA library bundling")
# For PyPI approach, we don't bundle CUDA libraries - they come from PyPI packages
# We only need to bundle non-NVIDIA libraries
minimal_libs_to_copy = [
"/lib64/libgomp.so.1",
"/usr/lib64/libgfortran.so.5",
"/acl/build/libarm_compute.so",
"/acl/build/libarm_compute_graph.so",
"/usr/local/lib/libnvpl_lapack_lp64_gomp.so.0",
"/usr/local/lib/libnvpl_blas_lp64_gomp.so.0",
"/usr/local/lib/libnvpl_lapack_core.so.0",
"/usr/local/lib/libnvpl_blas_core.so.0",
]
# Copy libraries to unzipped_folder/a/lib
for lib_path in libs_to_copy:
lib_name = os.path.basename(lib_path)
shutil.copy2(lib_path, f"{folder}/tmp/torch/lib/{lib_name}")
os.system(
f"cd {folder}/tmp/torch/lib/; "
f"patchelf --set-rpath '$ORIGIN' --force-rpath {folder}/tmp/torch/lib/{lib_name}"
)
# Copy minimal libraries to unzipped_folder/torch/lib
for lib_path in minimal_libs_to_copy:
copy_and_patch_library(lib_path, folder, use_nvidia_pypi_libs, desired_cuda)
# Patch torch libraries used for searching libraries
torch_libs_to_patch = [
"libtorch.so",
"libtorch_cpu.so",
"libtorch_cuda.so",
"libtorch_cuda_linalg.so",
"libtorch_global_deps.so",
"libtorch_python.so",
"libtorch_nvshmem.so",
"libc10.so",
"libc10_cuda.so",
"libcaffe2_nvrtc.so",
"libshm.so",
]
for lib_name in torch_libs_to_patch:
patch_library_rpath(folder, lib_name, use_nvidia_pypi_libs, desired_cuda)
else:
print("Bundling CUDA libraries with wheel")
# Original logic for bundling system CUDA libraries
# Common libraries for all CUDA versions
common_libs = [
# Non-NVIDIA system libraries
"/lib64/libgomp.so.1",
"/usr/lib64/libgfortran.so.5",
"/acl/build/libarm_compute.so",
"/acl/build/libarm_compute_graph.so",
# Common CUDA libraries (same for all versions)
"/usr/local/lib/libnvpl_lapack_lp64_gomp.so.0",
"/usr/local/lib/libnvpl_blas_lp64_gomp.so.0",
"/usr/local/lib/libnvpl_lapack_core.so.0",
"/usr/local/lib/libnvpl_blas_core.so.0",
"/usr/local/cuda/extras/CUPTI/lib64/libnvperf_host.so",
"/usr/local/cuda/lib64/libcudnn.so.9",
"/usr/local/cuda/lib64/libcusparseLt.so.0",
"/usr/local/cuda/lib64/libcurand.so.10",
"/usr/local/cuda/lib64/libnccl.so.2",
"/usr/local/cuda/lib64/libnvshmem_host.so.3",
"/usr/local/cuda/lib64/libcudnn_adv.so.9",
"/usr/local/cuda/lib64/libcudnn_cnn.so.9",
"/usr/local/cuda/lib64/libcudnn_graph.so.9",
"/usr/local/cuda/lib64/libcudnn_ops.so.9",
"/usr/local/cuda/lib64/libcudnn_engines_runtime_compiled.so.9",
"/usr/local/cuda/lib64/libcudnn_engines_precompiled.so.9",
"/usr/local/cuda/lib64/libcudnn_heuristic.so.9",
"/usr/local/cuda/lib64/libcufile.so.0",
"/usr/local/cuda/lib64/libcufile_rdma.so.1",
"/usr/local/cuda/lib64/libcusparse.so.12",
]
# CUDA version-specific libraries
if "13" in desired_cuda:
minor_version = desired_cuda[-1]
version_specific_libs = [
"/usr/local/cuda/extras/CUPTI/lib64/libcupti.so.13",
"/usr/local/cuda/lib64/libcublas.so.13",
"/usr/local/cuda/lib64/libcublasLt.so.13",
"/usr/local/cuda/lib64/libcudart.so.13",
"/usr/local/cuda/lib64/libcufft.so.12",
"/usr/local/cuda/lib64/libcusolver.so.12",
"/usr/local/cuda/lib64/libnvJitLink.so.13",
"/usr/local/cuda/lib64/libnvrtc.so.13",
f"/usr/local/cuda/lib64/libnvrtc-builtins.so.13.{minor_version}",
]
elif "12" in desired_cuda:
# Get the last character for libnvrtc-builtins version (e.g., "129" -> "9")
minor_version = desired_cuda[-1]
version_specific_libs = [
"/usr/local/cuda/extras/CUPTI/lib64/libcupti.so.12",
"/usr/local/cuda/lib64/libcublas.so.12",
"/usr/local/cuda/lib64/libcublasLt.so.12",
"/usr/local/cuda/lib64/libcudart.so.12",
"/usr/local/cuda/lib64/libcufft.so.11",
"/usr/local/cuda/lib64/libcusolver.so.11",
"/usr/local/cuda/lib64/libnvJitLink.so.12",
"/usr/local/cuda/lib64/libnvrtc.so.12",
f"/usr/local/cuda/lib64/libnvrtc-builtins.so.12.{minor_version}",
]
else:
raise ValueError(f"Unsupported CUDA version: {desired_cuda}.")
# Combine all libraries
libs_to_copy = common_libs + version_specific_libs
# Copy libraries to unzipped_folder/torch/lib
for lib_path in libs_to_copy:
copy_and_patch_library(lib_path, folder, use_nvidia_pypi_libs, desired_cuda)
# Make sure the wheel is tagged with manylinux_2_28
for f in os.scandir(f"{folder}/tmp/"):
@ -131,14 +213,8 @@ def package_cuda_wheel(wheel_path, desired_cuda) -> None:
replace_tag(f"{f.path}/WHEEL")
break
os.mkdir(f"{folder}/cuda_wheel")
os.system(f"cd {folder}/tmp/; zip -r {folder}/cuda_wheel/{wheelname} *")
shutil.move(
f"{folder}/cuda_wheel/{wheelname}",
f"{folder}/{wheelname}",
copy_function=shutil.copy2,
)
os.system(f"rm -rf {folder}/tmp/ {folder}/cuda_wheel/")
os.system(f"wheel pack {folder}/tmp/ -d {folder}")
os.system(f"rm -rf {folder}/tmp/")
def complete_wheel(folder: str) -> str:
@ -161,14 +237,7 @@ def complete_wheel(folder: str) -> str:
f"/{folder}/dist/{repaired_wheel_name}",
)
else:
repaired_wheel_name = wheel_name.replace(
"linux_aarch64", "manylinux_2_28_aarch64"
)
print(f"Renaming {wheel_name} wheel to {repaired_wheel_name}")
os.rename(
f"/{folder}/dist/{wheel_name}",
f"/{folder}/dist/{repaired_wheel_name}",
)
repaired_wheel_name = list_dir(f"/{folder}/dist")[0]
print(f"Copying {repaired_wheel_name} to artifacts")
shutil.copy2(
@ -205,10 +274,20 @@ if __name__ == "__main__":
).decode()
print("Building PyTorch wheel")
build_vars = "CMAKE_SHARED_LINKER_FLAGS=-Wl,-z,max-page-size=0x10000 "
build_vars = ""
# MAX_JOB=5 is not required for CPU backend (see commit 465d98b)
if enable_cuda:
build_vars = "MAX_JOBS=5 " + build_vars
build_vars += "MAX_JOBS=5 "
# Handle PyPI NVIDIA libraries vs bundled libraries
use_nvidia_pypi_libs = os.getenv("USE_NVIDIA_PYPI_LIBS", "0") == "1"
if use_nvidia_pypi_libs:
print("Configuring build for PyPI NVIDIA libraries")
# Configure for dynamic linking (matching x86 logic)
build_vars += "ATEN_STATIC_CUDA=0 USE_CUDA_STATIC_LINK=0 USE_CUPTI_SO=1 "
else:
print("Configuring build for bundled NVIDIA libraries")
# Keep existing static linking approach - already configured above
override_package_version = os.getenv("OVERRIDE_PACKAGE_VERSION")
desired_cuda = os.getenv("DESIRED_CUDA")
@ -234,23 +313,17 @@ if __name__ == "__main__":
build_vars += f"BUILD_TEST=0 PYTORCH_BUILD_VERSION={branch[1 : branch.find('-')]} PYTORCH_BUILD_NUMBER=1 "
if enable_mkldnn:
build_ArmComputeLibrary()
print("build pytorch with mkldnn+acl backend")
build_vars += (
"USE_MKLDNN=ON USE_MKLDNN_ACL=ON "
"ACL_ROOT_DIR=/acl "
"LD_LIBRARY_PATH=/pytorch/build/lib:/acl/build:$LD_LIBRARY_PATH "
"ACL_INCLUDE_DIR=/acl/build "
"ACL_LIBRARY=/acl/build "
)
build_vars += "USE_MKLDNN=ON USE_MKLDNN_ACL=ON "
build_vars += "ACL_ROOT_DIR=/acl "
if enable_cuda:
build_vars += "BLAS=NVPL "
else:
build_vars += "BLAS=OpenBLAS OpenBLAS_HOME=/OpenBLAS "
build_vars += "BLAS=OpenBLAS OpenBLAS_HOME=/opt/OpenBLAS "
else:
print("build pytorch without mkldnn backend")
os.system(f"cd /pytorch; {build_vars} python3 setup.py bdist_wheel")
os.system(f"cd /pytorch; {build_vars} python3 -m build --wheel --no-isolation")
if enable_cuda:
print("Updating Cuda Dependency")
filename = os.listdir("/pytorch/dist/")

View File

@ -241,7 +241,7 @@ def wait_for_connection(addr, port, timeout=15, attempt_cnt=5):
try:
with socket.create_connection((addr, port), timeout=timeout):
return
except (ConnectionRefusedError, socket.timeout): # noqa: PERF203
except (ConnectionRefusedError, TimeoutError): # noqa: PERF203
if i == attempt_cnt - 1:
raise
time.sleep(timeout)
@ -299,40 +299,6 @@ def install_condaforge_python(host: RemoteHost, python_version="3.8") -> None:
)
def build_OpenBLAS(host: RemoteHost, git_clone_flags: str = "") -> None:
print("Building OpenBLAS")
host.run_cmd(
f"git clone https://github.com/xianyi/OpenBLAS -b v0.3.28 {git_clone_flags}"
)
make_flags = "NUM_THREADS=64 USE_OPENMP=1 NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=ARMV8"
host.run_cmd(
f"pushd OpenBLAS && make {make_flags} -j8 && sudo make {make_flags} install && popd && rm -rf OpenBLAS"
)
def build_ArmComputeLibrary(host: RemoteHost, git_clone_flags: str = "") -> None:
print("Building Arm Compute Library")
acl_build_flags = " ".join(
[
"debug=0",
"neon=1",
"opencl=0",
"os=linux",
"openmp=1",
"cppthreads=0",
"arch=armv8a",
"multi_isa=1",
"fixed_format_kernels=1",
"build=native",
]
)
host.run_cmd(
f"git clone https://github.com/ARM-software/ComputeLibrary.git -b v25.02 {git_clone_flags}"
)
host.run_cmd(f"cd ComputeLibrary && scons Werror=1 -j8 {acl_build_flags}")
def embed_libgomp(host: RemoteHost, use_conda, wheel_name) -> None:
host.run_cmd("pip3 install auditwheel")
host.run_cmd(
@ -438,13 +404,11 @@ def build_torchvision(
)
build_vars += f"BUILD_VERSION={version}.dev{build_date}"
elif build_version is not None:
build_vars += (
f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-')[0]}"
)
build_vars += f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-', maxsplit=1)[0]}"
if host.using_docker():
build_vars += " CMAKE_SHARED_LINKER_FLAGS=-Wl,-z,max-page-size=0x10000"
host.run_cmd(f"cd vision && {build_vars} python3 setup.py bdist_wheel")
host.run_cmd(f"cd vision && {build_vars} python3 -m build --wheel --no-isolation")
vision_wheel_name = host.list_dir("vision/dist")[0]
embed_libgomp(host, use_conda, os.path.join("vision", "dist", vision_wheel_name))
@ -495,13 +459,11 @@ def build_torchdata(
)
build_vars += f"BUILD_VERSION={version}.dev{build_date}"
elif build_version is not None:
build_vars += (
f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-')[0]}"
)
build_vars += f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-', maxsplit=1)[0]}"
if host.using_docker():
build_vars += " CMAKE_SHARED_LINKER_FLAGS=-Wl,-z,max-page-size=0x10000"
host.run_cmd(f"cd data && {build_vars} python3 setup.py bdist_wheel")
host.run_cmd(f"cd data && {build_vars} python3 -m build --wheel --no-isolation")
wheel_name = host.list_dir("data/dist")[0]
embed_libgomp(host, use_conda, os.path.join("data", "dist", wheel_name))
@ -553,13 +515,11 @@ def build_torchtext(
)
build_vars += f"BUILD_VERSION={version}.dev{build_date}"
elif build_version is not None:
build_vars += (
f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-')[0]}"
)
build_vars += f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-', maxsplit=1)[0]}"
if host.using_docker():
build_vars += " CMAKE_SHARED_LINKER_FLAGS=-Wl,-z,max-page-size=0x10000"
host.run_cmd(f"cd text && {build_vars} python3 setup.py bdist_wheel")
host.run_cmd(f"cd text && {build_vars} python3 -m build --wheel --no-isolation")
wheel_name = host.list_dir("text/dist")[0]
embed_libgomp(host, use_conda, os.path.join("text", "dist", wheel_name))
@ -613,16 +573,14 @@ def build_torchaudio(
)
build_vars += f"BUILD_VERSION={version}.dev{build_date}"
elif build_version is not None:
build_vars += (
f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-')[0]}"
)
build_vars += f"BUILD_VERSION={build_version} PYTORCH_VERSION={branch[1:].split('-', maxsplit=1)[0]}"
if host.using_docker():
build_vars += " CMAKE_SHARED_LINKER_FLAGS=-Wl,-z,max-page-size=0x10000"
host.run_cmd(
f"cd audio && export FFMPEG_ROOT=$(pwd)/third_party/ffmpeg && export USE_FFMPEG=1 \
&& ./packaging/ffmpeg/build.sh \
&& {build_vars} python3 setup.py bdist_wheel"
&& {build_vars} python3 -m build --wheel --no-isolation"
)
wheel_name = host.list_dir("audio/dist")[0]
@ -708,7 +666,6 @@ def start_build(
configure_system(
host, compiler=compiler, use_conda=use_conda, python_version=python_version
)
build_OpenBLAS(host, git_clone_flags)
if host.using_docker():
print("Move libgfortant.a into a standard location")
@ -731,10 +688,12 @@ def start_build(
f"git clone --recurse-submodules -b {branch} https://github.com/pytorch/pytorch {git_clone_flags}"
)
host.run_cmd("pytorch/.ci/docker/common/install_openblas.sh")
print("Building PyTorch wheel")
build_opts = ""
if pytorch_build_number is not None:
build_opts += f" --build-number {pytorch_build_number}"
build_opts += f" -C--build-option=--build-number={pytorch_build_number}"
# Breakpad build fails on aarch64
build_vars = "USE_BREAKPAD=0 "
if branch == "nightly":
@ -751,15 +710,18 @@ def start_build(
if host.using_docker():
build_vars += " CMAKE_SHARED_LINKER_FLAGS=-Wl,-z,max-page-size=0x10000"
if enable_mkldnn:
build_ArmComputeLibrary(host, git_clone_flags)
host.run_cmd("pytorch/.ci/docker/common/install_acl.sh")
print("build pytorch with mkldnn+acl backend")
build_vars += " USE_MKLDNN=ON USE_MKLDNN_ACL=ON"
build_vars += " BLAS=OpenBLAS"
build_vars += " OpenBLAS_HOME=/opt/OpenBLAS"
build_vars += " ACL_ROOT_DIR=/acl"
host.run_cmd(
f"cd $HOME/pytorch && export ACL_ROOT_DIR=$HOME/ComputeLibrary && {build_vars} python3 setup.py bdist_wheel{build_opts}"
f"cd $HOME/pytorch && {build_vars} python3 -m build --wheel --no-isolation{build_opts}"
)
print("Repair the wheel")
pytorch_wheel_name = host.list_dir("pytorch/dist")[0]
ld_library_path = "$HOME/acl/build:$HOME/pytorch/build/lib"
ld_library_path = "/acl/build:$HOME/pytorch/build/lib"
host.run_cmd(
f"export LD_LIBRARY_PATH={ld_library_path} && auditwheel repair $HOME/pytorch/dist/{pytorch_wheel_name}"
)
@ -771,7 +733,7 @@ def start_build(
else:
print("build pytorch without mkldnn backend")
host.run_cmd(
f"cd pytorch && {build_vars} python3 setup.py bdist_wheel{build_opts}"
f"cd pytorch && {build_vars} python3 -m build --wheel --no-isolation{build_opts}"
)
print("Deleting build folder")
@ -915,7 +877,7 @@ def terminate_instances(instance_type: str) -> None:
def parse_arguments():
from argparse import ArgumentParser
parser = ArgumentParser("Builid and test AARCH64 wheels using EC2")
parser = ArgumentParser("Build and test AARCH64 wheels using EC2")
parser.add_argument("--key-name", type=str)
parser.add_argument("--debug", action="store_true")
parser.add_argument("--build-only", action="store_true")
@ -1012,7 +974,7 @@ if __name__ == "__main__":
install_condaforge_python(host, args.python_version)
sys.exit(0)
python_version = args.python_version if args.python_version is not None else "3.9"
python_version = args.python_version if args.python_version is not None else "3.10"
if args.use_torch_from_pypi:
configure_system(host, compiler=args.compiler, python_version=python_version)

View File

@ -120,8 +120,8 @@ If your new Docker image needs a library installed from a specific pinned commit
If you're introducing a new argument to the Docker build, make sure to add it in the Docker build step in `.ci/docker/build.sh`:
```bash
docker build \
....
--build-arg "NEW_ARG_1=${NEW_ARG_1}"
....
--build-arg "NEW_ARG_1=${NEW_ARG_1}"
```
3. **Update Dockerfile logic**:

View File

@ -64,8 +64,13 @@ FROM cuda as cuda12.9
RUN bash ./install_cuda.sh 12.9
ENV DESIRED_CUDA=12.9
FROM cuda as cuda13.0
RUN bash ./install_cuda.sh 13.0
ENV DESIRED_CUDA=13.0
FROM ${ROCM_IMAGE} as rocm
ENV PYTORCH_ROCM_ARCH="gfx900;gfx906;gfx908;gfx90a;gfx942;gfx1030;gfx1100;gfx1101;gfx1102;gfx1200;gfx1201"
ARG PYTORCH_ROCM_ARCH
ENV PYTORCH_ROCM_ARCH ${PYTORCH_ROCM_ARCH}
ADD ./common/install_mkl.sh install_mkl.sh
RUN bash ./install_mkl.sh && rm install_mkl.sh
ENV MKLROOT /opt/intel
@ -76,10 +81,10 @@ ADD ./common/install_mnist.sh install_mnist.sh
RUN bash ./install_mnist.sh
FROM base as all_cuda
COPY --from=cuda11.8 /usr/local/cuda-11.8 /usr/local/cuda-11.8
COPY --from=cuda12.6 /usr/local/cuda-12.6 /usr/local/cuda-12.6
COPY --from=cuda12.8 /usr/local/cuda-12.8 /usr/local/cuda-12.8
COPY --from=cuda12.9 /usr/local/cuda-12.9 /usr/local/cuda-12.9
COPY --from=cuda13.0 /usr/local/cuda-13.0 /usr/local/cuda-13.0
# Final step
FROM ${BASE_TARGET} as final

View File

@ -36,6 +36,12 @@ case ${DOCKER_TAG_PREFIX} in
;;
rocm*)
BASE_TARGET=rocm
PYTORCH_ROCM_ARCH="gfx900;gfx906;gfx908;gfx90a;gfx942;gfx1030;gfx1100;gfx1101;gfx1102;gfx1200;gfx1201"
# add gfx950, gfx115x conditionally starting in ROCm 7.0
if [[ "$ROCM_VERSION" == *"7.0"* ]]; then
PYTORCH_ROCM_ARCH="${PYTORCH_ROCM_ARCH};gfx950;gfx1150;gfx1151"
fi
EXTRA_BUILD_ARGS="${EXTRA_BUILD_ARGS} --build-arg PYTORCH_ROCM_ARCH=${PYTORCH_ROCM_ARCH}"
;;
*)
echo "ERROR: Unknown docker tag ${DOCKER_TAG_PREFIX}"

View File

@ -76,13 +76,16 @@ elif [[ "$image" == *cuda*linter* ]]; then
elif [[ "$image" == *linter* ]]; then
# Use a separate Dockerfile for linter to keep a small image size
DOCKERFILE="linter/Dockerfile"
elif [[ "$image" == *riscv* ]]; then
# Use RISC-V specific Dockerfile
DOCKERFILE="ubuntu-cross-riscv/Dockerfile"
fi
_UCX_COMMIT=7bb2722ff2187a0cad557ae4a6afa090569f83fb
_UCC_COMMIT=20eae37090a4ce1b32bcce6144ccad0b49943e0b
_UCX_COMMIT=7836b165abdbe468a2f607e7254011c07d788152
_UCC_COMMIT=430e241bf5d38cbc73fc7a6b89155397232e3f96
if [[ "$image" == *rocm* ]]; then
_UCX_COMMIT=cc312eaa4655c0cc5c2bcd796db938f90563bcf6
_UCC_COMMIT=0c0fc21559835044ab107199e334f7157d6a0d3d
_UCX_COMMIT=29831d319e6be55cb8c768ca61de335c934ca39e
_UCC_COMMIT=9f4b242cbbd8b1462cbc732eb29316cdfa124b77
fi
tag=$(echo $image | awk -F':' '{print $2}')
@ -110,6 +113,17 @@ case "$tag" in
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
INSTALL_MINGW=yes
;;
pytorch-linux-jammy-cuda13.0-cudnn9-py3-gcc11)
CUDA_VERSION=13.0.0
ANACONDA_PYTHON_VERSION=3.10
GCC_VERSION=11
VISION=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
;;
pytorch-linux-jammy-cuda12.8-cudnn9-py3-gcc9-inductor-benchmarks)
CUDA_VERSION=12.8.1
@ -122,38 +136,6 @@ case "$tag" in
TRITON=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-jammy-cuda12.8-cudnn9-py3.12-gcc9-inductor-benchmarks)
CUDA_VERSION=12.8.1
ANACONDA_PYTHON_VERSION=3.12
GCC_VERSION=9
VISION=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-jammy-cuda12.8-cudnn9-py3.13-gcc9-inductor-benchmarks)
CUDA_VERSION=12.8.1
ANACONDA_PYTHON_VERSION=3.13
GCC_VERSION=9
VISION=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-jammy-cuda12.6-cudnn9-py3-gcc9)
CUDA_VERSION=12.6.3
ANACONDA_PYTHON_VERSION=3.10
GCC_VERSION=9
VISION=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
;;
pytorch-linux-jammy-cuda12.8-cudnn9-py3.12-gcc11-vllm)
CUDA_VERSION=12.8.1
ANACONDA_PYTHON_VERSION=3.12
@ -164,39 +146,6 @@ case "$tag" in
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
;;
pytorch-linux-jammy-cuda12.6-cudnn9-py3-gcc9-inductor-benchmarks)
CUDA_VERSION=12.6
ANACONDA_PYTHON_VERSION=3.10
GCC_VERSION=9
VISION=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-jammy-cuda12.6-cudnn9-py3.12-gcc9-inductor-benchmarks)
CUDA_VERSION=12.6
ANACONDA_PYTHON_VERSION=3.12
GCC_VERSION=9
VISION=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-jammy-cuda12.6-cudnn9-py3.13-gcc9-inductor-benchmarks)
CUDA_VERSION=12.6
ANACONDA_PYTHON_VERSION=3.13
GCC_VERSION=9
VISION=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
TRITON=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-jammy-cuda12.8-cudnn9-py3-gcc9)
CUDA_VERSION=12.8.1
ANACONDA_PYTHON_VERSION=3.10
@ -208,30 +157,18 @@ case "$tag" in
TRITON=yes
;;
pytorch-linux-jammy-py3-clang12-onnx)
ANACONDA_PYTHON_VERSION=3.9
ANACONDA_PYTHON_VERSION=3.10
CLANG_VERSION=12
VISION=yes
ONNX=yes
;;
pytorch-linux-jammy-py3.9-clang12)
ANACONDA_PYTHON_VERSION=3.9
pytorch-linux-jammy-py3.10-clang12)
ANACONDA_PYTHON_VERSION=3.10
CLANG_VERSION=12
VISION=yes
TRITON=yes
;;
pytorch-linux-jammy-py3.11-clang12)
ANACONDA_PYTHON_VERSION=3.11
CLANG_VERSION=12
VISION=yes
TRITON=yes
;;
pytorch-linux-jammy-py3.9-gcc9)
ANACONDA_PYTHON_VERSION=3.9
GCC_VERSION=9
VISION=yes
TRITON=yes
;;
pytorch-linux-jammy-rocm-n-py3 | pytorch-linux-noble-rocm-n-py3)
pytorch-linux-jammy-rocm-n-py3 | pytorch-linux-jammy-rocm-n-py3-benchmarks | pytorch-linux-noble-rocm-n-py3)
if [[ $tag =~ "jammy" ]]; then
ANACONDA_PYTHON_VERSION=3.10
else
@ -239,45 +176,38 @@ case "$tag" in
fi
GCC_VERSION=11
VISION=yes
ROCM_VERSION=6.4
NINJA_VERSION=1.9.0
TRITON=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-noble-rocm-alpha-py3)
ANACONDA_PYTHON_VERSION=3.12
GCC_VERSION=11
VISION=yes
ROCM_VERSION=7.0
NINJA_VERSION=1.9.0
TRITON=yes
KATEX=yes
UCX_COMMIT=${_UCX_COMMIT}
UCC_COMMIT=${_UCC_COMMIT}
INDUCTOR_BENCHMARKS=yes
PYTORCH_ROCM_ARCH="gfx90a;gfx942;gfx950"
PYTORCH_ROCM_ARCH="gfx90a;gfx942;gfx950;gfx1100"
if [[ $tag =~ "benchmarks" ]]; then
INDUCTOR_BENCHMARKS=yes
fi
;;
pytorch-linux-jammy-xpu-2025.0-py3)
ANACONDA_PYTHON_VERSION=3.9
GCC_VERSION=11
VISION=yes
XPU_VERSION=2025.0
NINJA_VERSION=1.9.0
TRITON=yes
;;
pytorch-linux-jammy-xpu-2025.1-py3)
ANACONDA_PYTHON_VERSION=3.9
pytorch-linux-jammy-xpu-n-1-py3)
ANACONDA_PYTHON_VERSION=3.10
GCC_VERSION=11
VISION=yes
XPU_VERSION=2025.1
NINJA_VERSION=1.9.0
TRITON=yes
;;
pytorch-linux-jammy-py3.9-gcc11-inductor-benchmarks)
ANACONDA_PYTHON_VERSION=3.9
pytorch-linux-jammy-xpu-n-py3 | pytorch-linux-jammy-xpu-n-py3-inductor-benchmarks)
ANACONDA_PYTHON_VERSION=3.10
GCC_VERSION=11
VISION=yes
XPU_VERSION=2025.2
NINJA_VERSION=1.9.0
TRITON=yes
if [[ $tag =~ "benchmarks" ]]; then
INDUCTOR_BENCHMARKS=yes
fi
;;
pytorch-linux-jammy-py3-gcc11-inductor-benchmarks)
ANACONDA_PYTHON_VERSION=3.10
GCC_VERSION=11
VISION=yes
KATEX=yes
@ -285,8 +215,8 @@ case "$tag" in
DOCS=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-jammy-cuda12.8-cudnn9-py3.9-clang12)
ANACONDA_PYTHON_VERSION=3.9
pytorch-linux-jammy-cuda12.8-cudnn9-py3.10-clang12)
ANACONDA_PYTHON_VERSION=3.10
CUDA_VERSION=12.8.1
CLANG_VERSION=12
VISION=yes
@ -297,8 +227,8 @@ case "$tag" in
CLANG_VERSION=18
VISION=yes
;;
pytorch-linux-jammy-py3.9-gcc11)
ANACONDA_PYTHON_VERSION=3.9
pytorch-linux-jammy-py3.10-gcc11)
ANACONDA_PYTHON_VERSION=3.10
GCC_VERSION=11
VISION=yes
KATEX=yes
@ -325,13 +255,10 @@ case "$tag" in
TRITON_CPU=yes
;;
pytorch-linux-jammy-linter)
# TODO: Use 3.9 here because of this issue https://github.com/python/mypy/issues/13627.
# We will need to update mypy version eventually, but that's for another day. The task
# would be to upgrade mypy to 1.0.0 with Python 3.11
PYTHON_VERSION=3.9
PYTHON_VERSION=3.10
;;
pytorch-linux-jammy-cuda12.8-cudnn9-py3.9-linter)
PYTHON_VERSION=3.9
pytorch-linux-jammy-cuda12.8-cudnn9-py3.10-linter)
PYTHON_VERSION=3.10
CUDA_VERSION=12.8.1
;;
pytorch-linux-jammy-aarch64-py3.10-gcc11)
@ -339,7 +266,6 @@ case "$tag" in
GCC_VERSION=11
ACL=yes
VISION=yes
CONDA_CMAKE=yes
OPENBLAS=yes
# snadampal: skipping llvm src build install because the current version
# from pytorch/llvm:9.0.1 is x86 specific
@ -350,13 +276,15 @@ case "$tag" in
GCC_VERSION=11
ACL=yes
VISION=yes
CONDA_CMAKE=yes
OPENBLAS=yes
# snadampal: skipping llvm src build install because the current version
# from pytorch/llvm:9.0.1 is x86 specific
SKIP_LLVM_SRC_BUILD_INSTALL=yes
INDUCTOR_BENCHMARKS=yes
;;
pytorch-linux-noble-riscv64-py3.12-gcc14)
GCC_VERSION=14
;;
*)
# Catch-all for builds that are not hardcoded.
VISION=yes
@ -420,7 +348,7 @@ docker build \
--build-arg "NINJA_VERSION=${NINJA_VERSION:-}" \
--build-arg "KATEX=${KATEX:-}" \
--build-arg "ROCM_VERSION=${ROCM_VERSION:-}" \
--build-arg "PYTORCH_ROCM_ARCH=${PYTORCH_ROCM_ARCH:-gfx90a;gfx942}" \
--build-arg "PYTORCH_ROCM_ARCH=${PYTORCH_ROCM_ARCH}" \
--build-arg "IMAGE_NAME=${IMAGE_NAME}" \
--build-arg "UCX_COMMIT=${UCX_COMMIT}" \
--build-arg "UCC_COMMIT=${UCC_COMMIT}" \
@ -437,6 +365,7 @@ docker build \
--build-arg "OPENBLAS=${OPENBLAS:-}" \
--build-arg "SKIP_SCCACHE_INSTALL=${SKIP_SCCACHE_INSTALL:-}" \
--build-arg "SKIP_LLVM_SRC_BUILD_INSTALL=${SKIP_LLVM_SRC_BUILD_INSTALL:-}" \
--build-arg "INSTALL_MINGW=${INSTALL_MINGW:-}" \
-f $(dirname ${DOCKERFILE})/Dockerfile \
-t "$tmp_tag" \
"$@" \
@ -477,7 +406,14 @@ if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
fi
if [ -n "$GCC_VERSION" ]; then
if !(drun gcc --version 2>&1 | grep -q " $GCC_VERSION\\W"); then
if [[ "$image" == *riscv* ]]; then
# Check RISC-V cross-compilation toolchain version
if !(drun riscv64-linux-gnu-gcc-${GCC_VERSION} --version 2>&1 | grep -q " $GCC_VERSION\\W"); then
echo "RISC-V GCC_VERSION=$GCC_VERSION, but:"
drun riscv64-linux-gnu-gcc-${GCC_VERSION} --version
exit 1
fi
elif !(drun gcc --version 2>&1 | grep -q " $GCC_VERSION\\W"); then
echo "GCC_VERSION=$GCC_VERSION, but:"
drun gcc --version
exit 1
@ -510,12 +446,3 @@ elif [ "$HAS_TRITON" = "yes" ]; then
echo "expecting triton to not be installed, but it is"
exit 1
fi
# Sanity check cmake version. Executorch reinstalls cmake and I'm not sure if
# they support 4.0.0 yet, so exclude them from this check.
CMAKE_VERSION=$(drun cmake --version)
if [[ "$EXECUTORCH" != *yes* && "$CMAKE_VERSION" != *4.* ]]; then
echo "CMake version is not 4.0.0:"
drun cmake --version
exit 1
fi

View File

@ -56,9 +56,13 @@ ENV INSTALLED_VISION ${VISION}
# Install rocm
ARG ROCM_VERSION
RUN mkdir ci_commit_pins
COPY ./common/common_utils.sh common_utils.sh
COPY ./ci_commit_pins/rocm-composable-kernel.txt ci_commit_pins/rocm-composable-kernel.txt
COPY ./common/install_rocm.sh install_rocm.sh
RUN bash ./install_rocm.sh
RUN rm install_rocm.sh
RUN rm install_rocm.sh common_utils.sh
RUN rm -r ci_commit_pins
COPY ./common/install_rocm_magma.sh install_rocm_magma.sh
RUN bash ./install_rocm_magma.sh ${ROCM_VERSION}
RUN rm install_rocm_magma.sh

View File

@ -1 +1 @@
56392aa978594cc155fa8af48cd949f5b5f1823a
deb42f2a8e48f5032b4a98ee781a15fa87a157cf

View File

@ -0,0 +1,2 @@
transformers==4.56.0
soxr==0.5.0

View File

@ -1 +0,0 @@
243e186efbf7fb93328dd6b34927a4e8c8f24395

View File

@ -1 +1 @@
v2.27.5-1
v2.27.5-1

View File

@ -0,0 +1 @@
v2.27.7-1

View File

@ -0,0 +1 @@
7fe50dc3da2069d6645d9deb8c017a876472a977

View File

@ -0,0 +1 @@
74a23feff57432129df84d8099e622773cf77925

View File

@ -1 +1 @@
ae324eeac8e102a2b40370e341460f3791353398
1b0418a9a454b2b93ab8d71f40e59d2297157fae

View File

@ -1 +1 @@
11ec6354315768a85da41032535e3b7b99c5f706
7416ffcb92cdbe98d9f97e4e6f95247e46dfc9fd

27
.ci/docker/common/install_acl.sh Normal file → Executable file
View File

@ -1,16 +1,27 @@
set -euo pipefail
#!/bin/bash
# Script used only in CD pipeline
readonly version=v25.02
readonly src_host=https://github.com/ARM-software
readonly src_repo=ComputeLibrary
set -eux
ACL_VERSION=${ACL_VERSION:-"v52.6.0"}
ACL_INSTALL_DIR="/acl"
# Clone ACL
[[ ! -d ${src_repo} ]] && git clone ${src_host}/${src_repo}.git
cd ${src_repo}
git checkout $version
git clone https://github.com/ARM-software/ComputeLibrary.git -b "${ACL_VERSION}" --depth 1 --shallow-submodules
ACL_CHECKOUT_DIR="ComputeLibrary"
# Build with scons
pushd $ACL_CHECKOUT_DIR
scons -j8 Werror=0 debug=0 neon=1 opencl=0 embed_kernels=0 \
os=linux arch=armv8a build=native multi_isa=1 \
fixed_format_kernels=1 openmp=1 cppthreads=0
popd
# Install ACL
sudo mkdir -p ${ACL_INSTALL_DIR}
for d in arm_compute include utils support src build
do
sudo cp -r ${ACL_CHECKOUT_DIR}/${d} ${ACL_INSTALL_DIR}/${d}
done
rm -rf $ACL_CHECKOUT_DIR

View File

@ -49,12 +49,20 @@ if [ -n "$ANACONDA_PYTHON_VERSION" ]; then
export SYSROOT_DEP="sysroot_linux-64=2.17"
fi
# Install correct Python version
# Also ensure sysroot is using a modern GLIBC to match system compilers
if [ "$ANACONDA_PYTHON_VERSION" = "3.14" ]; then
as_jenkins conda create -n py_$ANACONDA_PYTHON_VERSION -y\
python="3.14.0" \
${SYSROOT_DEP} \
-c conda-forge
else
# Install correct Python version
# Also ensure sysroot is using a modern GLIBC to match system compilers
as_jenkins conda create -n py_$ANACONDA_PYTHON_VERSION -y\
python="$ANACONDA_PYTHON_VERSION" \
${SYSROOT_DEP}
fi
# libstdcxx from conda default channels are too old, we need GLIBCXX_3.4.30
# which is provided in libstdcxx 12 and up.
conda_install libstdcxx-ng=12.3.0 --update-deps -c conda-forge

View File

@ -66,8 +66,9 @@ function do_cpython_build {
ln -s pip3 ${prefix}/bin/pip
fi
# install setuptools since python 3.12 is required to use distutils
${prefix}/bin/pip install wheel==0.45.1 setuptools==80.9.0
local abi_tag=$(${prefix}/bin/python -c "from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag; print('{0}{1}-{2}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag()))")
# packaging is needed to create symlink since wheel no longer provides needed information
${prefix}/bin/pip install packaging==25.0 wheel==0.45.1 setuptools==80.9.0
local abi_tag=$(${prefix}/bin/python -c "from packaging.tags import interpreter_name, interpreter_version; import sysconfig ; from sysconfig import get_config_var; print('{0}{1}-{0}{1}{2}'.format(interpreter_name(), interpreter_version(), 't' if sysconfig.get_config_var('Py_GIL_DISABLED') else ''))")
ln -sf ${prefix} /opt/python/${abi_tag}
}
@ -82,10 +83,6 @@ function build_cpython {
py_suffix=${py_ver::-1}
py_folder=$py_suffix
fi
# Only b3 is available now
if [ "$py_suffix" == "3.14.0" ]; then
py_suffix="3.14.0b3"
fi
wget -q $PYTHON_DOWNLOAD_URL/$py_folder/Python-$py_suffix.tgz -O Python-$py_ver.tgz
do_cpython_build $py_ver Python-$py_suffix

View File

@ -10,7 +10,7 @@ else
arch_path='sbsa'
fi
NVSHMEM_VERSION=3.3.9
NVSHMEM_VERSION=3.4.5
function install_cuda {
version=$1
@ -62,14 +62,16 @@ function install_nvshmem {
mkdir -p "${tmpdir}" && cd "${tmpdir}"
# nvSHMEM license: https://docs.nvidia.com/nvshmem/api/sla.html
filename="libnvshmem_cuda${cuda_major_version}-linux-${arch_path}-${nvshmem_version}"
url="https://developer.download.nvidia.com/compute/redist/nvshmem/${nvshmem_version}/builds/cuda${cuda_major_version}/txz/agnostic/${dl_arch}/${filename}.tar.gz"
# This pattern is a lie as it is not consistent across versions, for 3.3.9 it was cuda_ver-arch-nvshhem-ver
filename="libnvshmem-linux-${arch_path}-${nvshmem_version}_cuda${cuda_major_version}-archive"
suffix=".tar.xz"
url="https://developer.download.nvidia.com/compute/nvshmem/redist/libnvshmem/linux-${arch_path}/${filename}${suffix}"
# download, unpack, install
wget -q "${url}"
tar xf "${filename}.tar.gz"
cp -a "libnvshmem/include/"* /usr/local/include/
cp -a "libnvshmem/lib/"* /usr/local/lib/
tar xf "${filename}${suffix}"
cp -a "${filename}/include/"* /usr/local/cuda/include/
cp -a "${filename}/lib/"* /usr/local/cuda/lib64/
# cleanup
cd ..
@ -126,74 +128,6 @@ function install_129 {
ldconfig
}
function prune_124 {
echo "Pruning CUDA 12.4"
#####################################################################################
# CUDA 12.4 prune static libs
#####################################################################################
export NVPRUNE="/usr/local/cuda-12.4/bin/nvprune"
export CUDA_LIB_DIR="/usr/local/cuda-12.4/lib64"
export GENCODE="-gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90"
export GENCODE_CUDNN="-gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90"
if [[ -n "$OVERRIDE_GENCODE" ]]; then
export GENCODE=$OVERRIDE_GENCODE
fi
if [[ -n "$OVERRIDE_GENCODE_CUDNN" ]]; then
export GENCODE_CUDNN=$OVERRIDE_GENCODE_CUDNN
fi
# all CUDA libs except CuDNN and CuBLAS
ls $CUDA_LIB_DIR/ | grep "\.a" | grep -v "culibos" | grep -v "cudart" | grep -v "cudnn" | grep -v "cublas" | grep -v "metis" \
| xargs -I {} bash -c \
"echo {} && $NVPRUNE $GENCODE $CUDA_LIB_DIR/{} -o $CUDA_LIB_DIR/{}"
# prune CuDNN and CuBLAS
$NVPRUNE $GENCODE_CUDNN $CUDA_LIB_DIR/libcublas_static.a -o $CUDA_LIB_DIR/libcublas_static.a
$NVPRUNE $GENCODE_CUDNN $CUDA_LIB_DIR/libcublasLt_static.a -o $CUDA_LIB_DIR/libcublasLt_static.a
#####################################################################################
# CUDA 12.4 prune visual tools
#####################################################################################
export CUDA_BASE="/usr/local/cuda-12.4/"
rm -rf $CUDA_BASE/libnvvp $CUDA_BASE/nsightee_plugins $CUDA_BASE/nsight-compute-2024.1.0 $CUDA_BASE/nsight-systems-2023.4.4/
}
function prune_126 {
echo "Pruning CUDA 12.6"
#####################################################################################
# CUDA 12.6 prune static libs
#####################################################################################
export NVPRUNE="/usr/local/cuda-12.6/bin/nvprune"
export CUDA_LIB_DIR="/usr/local/cuda-12.6/lib64"
export GENCODE="-gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90"
export GENCODE_CUDNN="-gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90"
if [[ -n "$OVERRIDE_GENCODE" ]]; then
export GENCODE=$OVERRIDE_GENCODE
fi
if [[ -n "$OVERRIDE_GENCODE_CUDNN" ]]; then
export GENCODE_CUDNN=$OVERRIDE_GENCODE_CUDNN
fi
# all CUDA libs except CuDNN and CuBLAS
ls $CUDA_LIB_DIR/ | grep "\.a" | grep -v "culibos" | grep -v "cudart" | grep -v "cudnn" | grep -v "cublas" | grep -v "metis" \
| xargs -I {} bash -c \
"echo {} && $NVPRUNE $GENCODE $CUDA_LIB_DIR/{} -o $CUDA_LIB_DIR/{}"
# prune CuDNN and CuBLAS
$NVPRUNE $GENCODE_CUDNN $CUDA_LIB_DIR/libcublas_static.a -o $CUDA_LIB_DIR/libcublas_static.a
$NVPRUNE $GENCODE_CUDNN $CUDA_LIB_DIR/libcublasLt_static.a -o $CUDA_LIB_DIR/libcublasLt_static.a
#####################################################################################
# CUDA 12.6 prune visual tools
#####################################################################################
export CUDA_BASE="/usr/local/cuda-12.6/"
rm -rf $CUDA_BASE/libnvvp $CUDA_BASE/nsightee_plugins $CUDA_BASE/nsight-compute-2024.3.2 $CUDA_BASE/nsight-systems-2024.5.1/
}
function install_128 {
CUDNN_VERSION=9.8.0.87
echo "Installing CUDA 12.8.1 and cuDNN ${CUDNN_VERSION} and NVSHMEM and NCCL and cuSparseLt-0.7.1"
@ -212,18 +146,38 @@ function install_128 {
ldconfig
}
function install_130 {
CUDNN_VERSION=9.13.0.50
echo "Installing CUDA 13.0 and cuDNN ${CUDNN_VERSION} and NVSHMEM and NCCL and cuSparseLt-0.7.1"
# install CUDA 13.0 in the same container
install_cuda 13.0.2 cuda_13.0.2_580.95.05_linux
# cuDNN license: https://developer.nvidia.com/cudnn/license_agreement
install_cudnn 13 $CUDNN_VERSION
install_nvshmem 13 $NVSHMEM_VERSION
CUDA_VERSION=13.0 bash install_nccl.sh
CUDA_VERSION=13.0 bash install_cusparselt.sh
ldconfig
}
# idiomatic parameter and option handling in sh
while test $# -gt 0
do
case "$1" in
12.4) install_124; prune_124
12.4) install_124;
;;
12.6|12.6.*) install_126; prune_126
12.6|12.6.*) install_126;
;;
12.8|12.8.*) install_128;
;;
12.9|12.9.*) install_129;
;;
13.0|13.0.*) install_130;
;;
*) echo "bad argument $1"; exit 1
;;
esac

View File

@ -5,7 +5,15 @@ set -ex
# cuSPARSELt license: https://docs.nvidia.com/cuda/cusparselt/license.html
mkdir tmp_cusparselt && cd tmp_cusparselt
if [[ ${CUDA_VERSION:0:4} =~ ^12\.[5-9]$ ]]; then
if [[ ${CUDA_VERSION:0:4} =~ "13" ]]; then
arch_path='sbsa'
export TARGETARCH=${TARGETARCH:-$(uname -m)}
if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then
arch_path='x86_64'
fi
CUSPARSELT_NAME="libcusparse_lt-linux-${arch_path}-0.8.0.4_cuda13-archive"
curl --retry 3 -OLs https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-${arch_path}/${CUSPARSELT_NAME}.tar.xz
elif [[ ${CUDA_VERSION:0:4} =~ ^12\.[5-9]$ ]]; then
arch_path='sbsa'
export TARGETARCH=${TARGETARCH:-$(uname -m)}
if [ ${TARGETARCH} = 'amd64' ] || [ "${TARGETARCH}" = 'x86_64' ]; then

View File

@ -42,22 +42,27 @@ install_pip_dependencies() {
# A workaround, ExecuTorch has moved to numpy 2.0 which is not compatible with the current
# numba and scipy version used in PyTorch CI
conda_run pip uninstall -y numba scipy
# Yaspin is needed for running CI test (get_benchmark_analysis_data.py)
pip_install yaspin==3.1.0
popd
}
setup_executorch() {
pushd executorch
export PYTHON_EXECUTABLE=python
export CMAKE_ARGS="-DEXECUTORCH_BUILD_PYBIND=ON -DEXECUTORCH_BUILD_XNNPACK=ON -DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON"
export CMAKE_ARGS="-DEXECUTORCH_BUILD_PYBIND=ON -DEXECUTORCH_BUILD_XNNPACK=ON -DEXECUTORCH_BUILD_KERNELS_QUANTIZED=ON -DEXECUTORCH_BUILD_TESTS=ON"
as_jenkins .ci/scripts/setup-linux.sh --build-tool cmake || true
popd
}
clone_executorch
install_buck2
install_conda_dependencies
install_pip_dependencies
setup_executorch
if [ $# -eq 0 ]; then
clone_executorch
install_buck2
install_conda_dependencies
install_pip_dependencies
pushd executorch
setup_executorch
popd
else
"$@"
fi

View File

@ -5,9 +5,7 @@ set -ex
source "$(dirname "${BASH_SOURCE[0]}")/common_utils.sh"
function install_huggingface() {
local version
commit=$(get_pinned_commit huggingface)
pip_install "git+https://github.com/huggingface/transformers@${commit}"
pip_install -r huggingface-requirements.txt
}
function install_timm() {
@ -15,11 +13,34 @@ function install_timm() {
commit=$(get_pinned_commit timm)
pip_install "git+https://github.com/huggingface/pytorch-image-models@${commit}"
# Clean up
conda_run pip uninstall -y torch torchvision triton
}
function install_torchbench() {
local commit
commit=$(get_pinned_commit torchbench)
git clone https://github.com/pytorch/benchmark torchbench
pushd torchbench
git checkout "$commit"
python install.py --continue_on_fail
echo "Print all dependencies after TorchBench is installed"
python -mpip freeze
popd
chown -R jenkins torchbench
chown -R jenkins /opt/conda
}
# Pango is needed for weasyprint which is needed for doctr
conda_install pango
# Stable packages are ok here, just to satisfy TorchBench check
pip_install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
install_torchbench
install_huggingface
install_timm
# Clean up
conda_run pip uninstall -y torch torchvision torchaudio triton torchao

View File

@ -0,0 +1,10 @@
#!/bin/bash
set -ex
# Install MinGW-w64 for Windows cross-compilation
apt-get update
apt-get install -y g++-mingw-w64-x86-64-posix
echo "MinGW-w64 installed successfully"
x86_64-w64-mingw32-g++ --version

View File

@ -7,6 +7,8 @@ if [[ ${CUDA_VERSION:0:2} == "11" ]]; then
NCCL_VERSION=$(cat ci_commit_pins/nccl-cu11.txt)
elif [[ ${CUDA_VERSION:0:2} == "12" ]]; then
NCCL_VERSION=$(cat ci_commit_pins/nccl-cu12.txt)
elif [[ ${CUDA_VERSION:0:2} == "13" ]]; then
NCCL_VERSION=$(cat ci_commit_pins/nccl-cu13.txt)
else
echo "Unexpected CUDA_VERSION ${CUDA_VERSION}"
exit 1

View File

@ -19,8 +19,8 @@ pip_install \
transformers==4.36.2
pip_install coloredlogs packaging
pip_install onnxruntime==1.18.1
pip_install onnxscript==0.3.1
pip_install onnxruntime==1.23.1
pip_install onnxscript==0.5.4
# Cache the transformers model to be used later by ONNX tests. We need to run the transformers
# package to download the model. By default, the model is cached at ~/.cache/huggingface/hub/

12
.ci/docker/common/install_openblas.sh Normal file → Executable file
View File

@ -3,8 +3,10 @@
set -ex
cd /
git clone https://github.com/OpenMathLib/OpenBLAS.git -b "${OPENBLAS_VERSION:-v0.3.30}" --depth 1 --shallow-submodules
OPENBLAS_VERSION=${OPENBLAS_VERSION:-"v0.3.30"}
# Clone OpenBLAS
git clone https://github.com/OpenMathLib/OpenBLAS.git -b "${OPENBLAS_VERSION}" --depth 1 --shallow-submodules
OPENBLAS_CHECKOUT_DIR="OpenBLAS"
OPENBLAS_BUILD_FLAGS="
@ -17,5 +19,7 @@ CFLAGS=-O3
BUILD_BFLOAT16=1
"
make -j8 ${OPENBLAS_BUILD_FLAGS} -C ${OPENBLAS_CHECKOUT_DIR}
make -j8 ${OPENBLAS_BUILD_FLAGS} install -C ${OPENBLAS_CHECKOUT_DIR}
make -j8 ${OPENBLAS_BUILD_FLAGS} -C $OPENBLAS_CHECKOUT_DIR
sudo make install -C $OPENBLAS_CHECKOUT_DIR
rm -rf $OPENBLAS_CHECKOUT_DIR

View File

@ -2,6 +2,11 @@
set -ex
# for pip_install function
source "$(dirname "${BASH_SOURCE[0]}")/common_utils.sh"
ROCM_COMPOSABLE_KERNEL_VERSION="$(cat $(dirname $0)/../ci_commit_pins/rocm-composable-kernel.txt)"
ver() {
printf "%3d%03d%03d%03d" $(echo "$1" | tr '.' ' ');
}
@ -35,17 +40,7 @@ EOF
# Default url values
rocm_baseurl="http://repo.radeon.com/rocm/apt/${ROCM_VERSION}"
amdgpu_baseurl="https://repo.radeon.com/amdgpu/${ROCM_VERSION}/ubuntu"
# Special case for ROCM_VERSION == 7.0
if [[ $(ver "$ROCM_VERSION") -eq $(ver 7.0) ]]; then
rocm_baseurl="https://repo.radeon.com/rocm/apt/7.0_alpha2"
amdgpu_baseurl="https://repo.radeon.com/amdgpu/30.10_alpha2/ubuntu"
fi
# Add amdgpu repository
UBUNTU_VERSION_NAME=`cat /etc/os-release | grep UBUNTU_CODENAME | awk -F= '{print $2}'`
echo "deb [arch=amd64] ${amdgpu_baseurl} ${UBUNTU_VERSION_NAME} main" > /etc/apt/sources.list.d/amdgpu.list
# Add rocm repository
wget -qO - http://repo.radeon.com/rocm/rocm.gpg.key | apt-key add -
@ -113,6 +108,8 @@ EOF
rm -rf HIP clr
fi
pip_install "git+https://github.com/rocm/composable_kernel@$ROCM_COMPOSABLE_KERNEL_VERSION"
# Cleanup
apt-get autoclean && apt-get clean
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
@ -176,6 +173,8 @@ install_centos() {
sqlite3 $kdb "PRAGMA journal_mode=off; PRAGMA VACUUM;"
done
pip_install "git+https://github.com/rocm/composable_kernel@$ROCM_COMPOSABLE_KERNEL_VERSION"
# Cleanup
yum clean all
rm -rf /var/cache/yum

View File

@ -12,8 +12,8 @@ function do_install() {
rocm_version_nodot=${rocm_version//./}
# Version 2.7.2 + ROCm related updates
MAGMA_VERSION=a1625ff4d9bc362906bd01f805dbbe12612953f6
# post merge of https://github.com/icl-utk-edu/magma/pull/65
MAGMA_VERSION=c0792ae825fb36872784892ea643dd6f3456bc5f
magma_archive="magma-rocm${rocm_version_nodot}-${MAGMA_VERSION}-1.tar.bz2"
rocm_dir="/opt/rocm"

View File

@ -57,7 +57,7 @@ if [ ! -f setup.py ]; then
cd python
fi
pip_install pybind11==2.13.6
pip_install pybind11==3.0.1
# TODO: remove patch setup.py once we have a proper fix for https://github.com/triton-lang/triton/issues/4527
as_jenkins sed -i -e 's/https:\/\/tritonlang.blob.core.windows.net\/llvm-builds/https:\/\/oaitriton.blob.core.windows.net\/public\/llvm-builds/g' setup.py
@ -66,15 +66,15 @@ if [ -n "${UBUNTU_VERSION}" ] && [ -n "${GCC_VERSION}" ] && [[ "${GCC_VERSION}"
# Triton needs at least gcc-9 to build
apt-get install -y g++-9
CXX=g++-9 conda_run python setup.py bdist_wheel
CXX=g++-9 conda_run python -m build --wheel --no-isolation
elif [ -n "${UBUNTU_VERSION}" ] && [ -n "${CLANG_VERSION}" ]; then
# Triton needs <filesystem> which surprisingly is not available with clang-9 toolchain
add-apt-repository -y ppa:ubuntu-toolchain-r/test
apt-get install -y g++-9
CXX=g++-9 conda_run python setup.py bdist_wheel
CXX=g++-9 conda_run python -m build --wheel --no-isolation
else
conda_run python setup.py bdist_wheel
conda_run python -m build --wheel --no-isolation
fi
# Copy the wheel to /opt for multi stage docker builds
@ -103,5 +103,5 @@ fi
# It depends on torch and triton. We don't want to install
# triton and torch from production on Docker CI images
if [[ "$ANACONDA_PYTHON_VERSION" != 3.9* ]]; then
pip_install helion==0.0.10 --no-deps
pip_install helion --no-deps
fi

View File

@ -44,8 +44,12 @@ function install_ucc() {
./autogen.sh
# We only run distributed tests on Tesla M60 and A10G
NVCC_GENCODE="-gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_86,code=compute_86"
if [[ -n "$CUDA_VERSION" && $CUDA_VERSION == 13* ]]; then
NVCC_GENCODE="-gencode=arch=compute_86,code=compute_86"
else
# We only run distributed tests on Tesla M60 and A10G
NVCC_GENCODE="-gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_86,code=compute_86"
fi
if [[ -n "$ROCM_VERSION" ]]; then
if [[ -n "$PYTORCH_ROCM_ARCH" ]]; then

View File

@ -34,18 +34,27 @@ function install_ubuntu() {
# The xpu-smi packages
apt-get install -y flex bison xpu-smi
# Compute and Media Runtimes
apt-get install -y \
intel-opencl-icd intel-level-zero-gpu level-zero \
intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo
if [[ "${XPU_DRIVER_TYPE,,}" == "rolling" ]]; then
apt-get install -y intel-ocloc
if [[ "${XPU_DRIVER_TYPE,,}" == "lts" ]]; then
# Compute and Media Runtimes
apt-get install -y \
intel-opencl-icd intel-level-zero-gpu level-zero \
intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo
# Development Packages
apt-get install -y libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev
else # rolling driver
apt-get install -y \
intel-opencl-icd libze-intel-gpu1 libze1 \
intel-media-va-driver-non-free libmfx-gen1 libvpl2 \
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
libglapi-mesa libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo intel-ocloc
apt-get install -y libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev libze-dev
fi
# Development Packages
apt-get install -y libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev
# Install Intel Support Packages
apt-get install -y ${XPU_PACKAGES}
@ -56,10 +65,14 @@ function install_ubuntu() {
function install_rhel() {
. /etc/os-release
if [[ ! " 8.8 8.10 9.0 9.2 9.3 " =~ " ${VERSION_ID} " ]]; then
echo "RHEL version ${VERSION_ID} not supported"
exit
if [[ "${ID}" == "rhel" ]]; then
if [[ ! " 8.8 8.9 9.0 9.2 9.3 " =~ " ${VERSION_ID} " ]]; then
echo "RHEL version ${VERSION_ID} not supported"
exit
fi
elif [[ "${ID}" == "almalinux" ]]; then
# Workaround for almalinux8 which used by quay.io/pypa/manylinux_2_28_x86_64
VERSION_ID="8.8"
fi
dnf install -y 'dnf-command(config-manager)'
@ -130,18 +143,18 @@ function install_sles() {
}
# Default use GPU driver LTS releases
XPU_DRIVER_VERSION="/lts/2350"
if [[ "${XPU_DRIVER_TYPE,,}" == "rolling" ]]; then
# Use GPU driver rolling releases
XPU_DRIVER_VERSION=""
# Default use GPU driver rolling releases
XPU_DRIVER_VERSION=""
if [[ "${XPU_DRIVER_TYPE,,}" == "lts" ]]; then
# Use GPU driver LTS releases
XPU_DRIVER_VERSION="/lts/2350"
fi
# Default use Intel® oneAPI Deep Learning Essentials 2025.0
if [[ "$XPU_VERSION" == "2025.1" ]]; then
XPU_PACKAGES="intel-deep-learning-essentials-2025.1"
# Default use Intel® oneAPI Deep Learning Essentials 2025.1
if [[ "$XPU_VERSION" == "2025.2" ]]; then
XPU_PACKAGES="intel-deep-learning-essentials-2025.2"
else
XPU_PACKAGES="intel-deep-learning-essentials-2025.0"
XPU_PACKAGES="intel-deep-learning-essentials-2025.1"
fi
# The installation depends on the base OS

View File

@ -0,0 +1,9 @@
#!/bin/bash
set -xe
# Script used in Linux x86 and aarch64 CD pipeline
# Workaround for exposing statically linked libstdc++ CXX11 ABI symbols.
# see: https://github.com/pytorch/pytorch/issues/133437
LIBNONSHARED=$(gcc -print-file-name=libstdc++_nonshared.a)
nm -g $LIBNONSHARED | grep " T " | grep recursive_directory_iterator | cut -c 20- > weaken-symbols.txt
objcopy --weaken-symbols weaken-symbols.txt $LIBNONSHARED $LIBNONSHARED

View File

@ -69,6 +69,19 @@ RUN bash ./install_cuda.sh 12.9
RUN bash ./install_magma.sh 12.9
RUN ln -sf /usr/local/cuda-12.9 /usr/local/cuda
FROM cuda as cuda13.0
RUN bash ./install_cuda.sh 13.0
RUN bash ./install_magma.sh 13.0
RUN ln -sf /usr/local/cuda-13.0 /usr/local/cuda
# Install libibverbs for libtorch and copy to CUDA directory
RUN apt-get update -y && \
apt-get install -y libibverbs-dev librdmacm-dev && \
cp /usr/lib/x86_64-linux-gnu/libmlx5.so* /usr/local/cuda/lib64/ && \
cp /usr/lib/x86_64-linux-gnu/librdmacm.so* /usr/local/cuda/lib64/ && \
cp /usr/lib/x86_64-linux-gnu/libibverbs.so* /usr/local/cuda/lib64/ && \
cp /usr/lib/x86_64-linux-gnu/libnl* /usr/local/cuda/lib64/
FROM cpu as rocm
ARG ROCM_VERSION
ARG PYTORCH_ROCM_ARCH

View File

@ -39,13 +39,21 @@ case ${DOCKER_TAG_PREFIX} in
DOCKER_GPU_BUILD_ARG=""
;;
rocm*)
# we want the patch version of 6.4 instead
if [[ $(ver $GPU_ARCH_VERSION) -eq $(ver 6.4) ]]; then
# we want the patch version of 7.0 instead
if [[ "$GPU_ARCH_VERSION" == *"7.0"* ]]; then
GPU_ARCH_VERSION="${GPU_ARCH_VERSION}.2"
fi
# we want the patch version of 6.4 instead
if [[ "$GPU_ARCH_VERSION" == *"6.4"* ]]; then
GPU_ARCH_VERSION="${GPU_ARCH_VERSION}.4"
fi
BASE_TARGET=rocm
GPU_IMAGE=rocm/dev-ubuntu-22.04:${GPU_ARCH_VERSION}-complete
PYTORCH_ROCM_ARCH="gfx900;gfx906;gfx908;gfx90a;gfx942;gfx1030;gfx1100;gfx1101;gfx1102;gfx1200;gfx1201"
# add gfx950, gfx115x conditionally starting in ROCm 7.0
if [[ "$GPU_ARCH_VERSION" == *"7.0"* ]]; then
PYTORCH_ROCM_ARCH="${PYTORCH_ROCM_ARCH};gfx950;gfx1150;gfx1151"
fi
DOCKER_GPU_BUILD_ARG="--build-arg PYTORCH_ROCM_ARCH=${PYTORCH_ROCM_ARCH} --build-arg ROCM_VERSION=${GPU_ARCH_VERSION}"
;;
*)

View File

@ -130,7 +130,8 @@ ENV LD_LIBRARY_PATH=/opt/rh/gcc-toolset-${DEVTOOLSET_VERSION}/root/usr/lib64:/op
RUN for cpython_version in "cp312-cp312" "cp313-cp313" "cp313-cp313t"; do \
/opt/python/${cpython_version}/bin/python -m pip install setuptools wheel; \
done;
ADD ./common/patch_libstdc.sh patch_libstdc.sh
RUN bash ./patch_libstdc.sh && rm patch_libstdc.sh
# cmake-3.18.4 from pip; force in case cmake3 already exists
RUN yum install -y python3-pip && \
@ -148,7 +149,7 @@ FROM cpu_final as rocm_final
ARG ROCM_VERSION=6.0
ARG PYTORCH_ROCM_ARCH
ENV PYTORCH_ROCM_ARCH ${PYTORCH_ROCM_ARCH}
ARG DEVTOOLSET_VERSION=11
ARG DEVTOOLSET_VERSION=13
ENV LDFLAGS="-Wl,-rpath=/opt/rh/gcc-toolset-${DEVTOOLSET_VERSION}/root/usr/lib64 -Wl,-rpath=/opt/rh/gcc-toolset-${DEVTOOLSET_VERSION}/root/usr/lib"
# Somewhere in ROCm stack, we still use non-existing /opt/rocm/hip path,
# below workaround helps avoid error
@ -175,6 +176,6 @@ ENV XPU_DRIVER_TYPE ROLLING
RUN python3 -m pip install --upgrade pip && \
python3 -mpip install cmake==3.28.4
ADD ./common/install_xpu.sh install_xpu.sh
ENV XPU_VERSION 2025.1
ENV XPU_VERSION 2025.2
RUN bash ./install_xpu.sh && rm install_xpu.sh
RUN pushd /opt/_internal && tar -xJf static-libs-for-embedding-only.tar.xz && popd

View File

@ -62,6 +62,13 @@ ARG OPENBLAS_VERSION
ADD ./common/install_openblas.sh install_openblas.sh
RUN bash ./install_openblas.sh && rm install_openblas.sh
# Install Arm Compute Library
FROM base as arm_compute
# use python3.9 to install scons
RUN python3.9 -m pip install scons==4.7.0
RUN ln -sf /opt/python/cp39-cp39/bin/scons /usr/local/bin
COPY ./common/install_acl.sh install_acl.sh
RUN bash ./install_acl.sh && rm install_acl.sh
FROM base as final
# remove unnecessary python versions
@ -70,4 +77,7 @@ RUN rm -rf /opt/python/cp26-cp26mu /opt/_internal/cpython-2.6.9-ucs4
RUN rm -rf /opt/python/cp33-cp33m /opt/_internal/cpython-3.3.6
RUN rm -rf /opt/python/cp34-cp34m /opt/_internal/cpython-3.4.6
COPY --from=openblas /opt/OpenBLAS/ /opt/OpenBLAS/
ENV LD_LIBRARY_PATH=/opt/OpenBLAS/lib:$LD_LIBRARY_PATH
COPY --from=arm_compute /acl /acl
ENV LD_LIBRARY_PATH=/opt/OpenBLAS/lib:/acl/build/:$LD_LIBRARY_PATH
ADD ./common/patch_libstdc.sh patch_libstdc.sh
RUN bash ./patch_libstdc.sh && rm patch_libstdc.sh

View File

@ -86,6 +86,15 @@ FROM base as nvpl
ADD ./common/install_nvpl.sh install_nvpl.sh
RUN bash ./install_nvpl.sh && rm install_nvpl.sh
# Install Arm Compute Library
FROM base as arm_compute
# use python3.9 to install scons
RUN python3.9 -m pip install scons==4.7.0
RUN ln -sf /opt/python/cp39-cp39/bin/scons /usr/local/bin
COPY ./common/install_acl.sh install_acl.sh
RUN bash ./install_acl.sh && rm install_acl.sh
FROM base as final
FROM final as cuda_final
ARG BASE_CUDA_VERSION
RUN rm -rf /usr/local/cuda-${BASE_CUDA_VERSION}
@ -93,5 +102,9 @@ COPY --from=cuda /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda-${BAS
COPY --from=magma /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda-${BASE_CUDA_VERSION}
COPY --from=nvpl /opt/nvpl/lib/ /usr/local/lib/
COPY --from=nvpl /opt/nvpl/include/ /usr/local/include/
COPY --from=arm_compute /acl /acl
RUN ln -sf /usr/local/cuda-${BASE_CUDA_VERSION} /usr/local/cuda
ENV PATH=/usr/local/cuda/bin:$PATH
ENV LD_LIBRARY_PATH=/acl/build/:$LD_LIBRARY_PATH
ADD ./common/patch_libstdc.sh patch_libstdc.sh
RUN bash ./patch_libstdc.sh && rm patch_libstdc.sh

View File

@ -1,71 +0,0 @@
FROM centos:8 as base
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV PATH /opt/rh/gcc-toolset-11/root/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# change to a valid repo
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*.repo
# enable to install ninja-build
RUN sed -i 's|enabled=0|enabled=1|g' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
RUN yum -y update
RUN yum install -y wget curl perl util-linux xz bzip2 git patch which zlib-devel sudo
RUN yum install -y autoconf automake make cmake gdb gcc-toolset-11-gcc-c++
FROM base as openssl
ADD ./common/install_openssl.sh install_openssl.sh
RUN bash ./install_openssl.sh && rm install_openssl.sh
# Install python
FROM base as python
RUN yum install -y openssl-devel zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel libffi-devel
ADD common/install_cpython.sh install_cpython.sh
RUN bash ./install_cpython.sh && rm install_cpython.sh
FROM base as conda
ADD ./common/install_conda_docker.sh install_conda.sh
RUN bash ./install_conda.sh && rm install_conda.sh
RUN /opt/conda/bin/conda install -y cmake
FROM base as intel
# Install MKL
COPY --from=python /opt/python /opt/python
COPY --from=python /opt/_internal /opt/_internal
COPY --from=conda /opt/conda /opt/conda
ENV PATH=/opt/conda/bin:$PATH
ADD ./common/install_mkl.sh install_mkl.sh
RUN bash ./install_mkl.sh && rm install_mkl.sh
FROM base as patchelf
ADD ./common/install_patchelf.sh install_patchelf.sh
RUN bash ./install_patchelf.sh && rm install_patchelf.sh
RUN cp $(which patchelf) /patchelf
FROM base as jni
ADD ./common/install_jni.sh install_jni.sh
ADD ./java/jni.h jni.h
RUN bash ./install_jni.sh && rm install_jni.sh
FROM base as libpng
ADD ./common/install_libpng.sh install_libpng.sh
RUN bash ./install_libpng.sh && rm install_libpng.sh
FROM base as final
COPY --from=openssl /opt/openssl /opt/openssl
COPY --from=python /opt/python /opt/python
COPY --from=python /opt/_internal /opt/_internal
COPY --from=intel /opt/intel /opt/intel
COPY --from=conda /opt/conda /opt/conda
COPY --from=patchelf /usr/local/bin/patchelf /usr/local/bin/patchelf
COPY --from=jni /usr/local/include/jni.h /usr/local/include/jni.h
COPY --from=libpng /usr/local/bin/png* /usr/local/bin/
COPY --from=libpng /usr/local/bin/libpng* /usr/local/bin/
COPY --from=libpng /usr/local/include/png* /usr/local/include/
COPY --from=libpng /usr/local/include/libpng* /usr/local/include/
COPY --from=libpng /usr/local/lib/libpng* /usr/local/lib/
COPY --from=libpng /usr/local/lib/pkgconfig /usr/local/lib/pkgconfig
RUN yum install -y ninja-build

View File

@ -115,6 +115,9 @@ RUN env GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=True pip3 install grpcio
# cmake-3.28.0 from pip for onnxruntime
RUN python3 -mpip install cmake==3.28.0
ADD ./common/patch_libstdc.sh patch_libstdc.sh
RUN bash ./patch_libstdc.sh && rm patch_libstdc.sh
# build onnxruntime 1.21.0 from sources.
# it is not possible to build it from sources using pip,
# so just build it from upstream repository.

View File

@ -28,6 +28,7 @@ fi
MANY_LINUX_VERSION=${MANY_LINUX_VERSION:-}
DOCKERFILE_SUFFIX=${DOCKERFILE_SUFFIX:-}
OPENBLAS_VERSION=${OPENBLAS_VERSION:-}
ACL_VERSION=${ACL_VERSION:-}
case ${image} in
manylinux2_28-builder:cpu)
@ -41,13 +42,6 @@ case ${image} in
GPU_IMAGE=arm64v8/almalinux:8
DOCKER_GPU_BUILD_ARG=" --build-arg DEVTOOLSET_VERSION=13 --build-arg NINJA_VERSION=1.12.1"
MANY_LINUX_VERSION="2_28_aarch64"
OPENBLAS_VERSION="v0.3.30"
;;
manylinuxcxx11-abi-builder:cpu-cxx11-abi)
TARGET=final
GPU_IMAGE=""
DOCKER_GPU_BUILD_ARG=" --build-arg DEVTOOLSET_VERSION=9"
MANY_LINUX_VERSION="cxx11-abi"
;;
manylinuxs390x-builder:cpu-s390x)
TARGET=final
@ -67,6 +61,12 @@ case ${image} in
DOCKER_GPU_BUILD_ARG="--build-arg BASE_CUDA_VERSION=${GPU_ARCH_VERSION} --build-arg DEVTOOLSET_VERSION=13"
MANY_LINUX_VERSION="2_28"
;;
manylinux2_28-builder:cuda13*)
TARGET=cuda_final
GPU_IMAGE=amd64/almalinux:8
DOCKER_GPU_BUILD_ARG="--build-arg BASE_CUDA_VERSION=${GPU_ARCH_VERSION} --build-arg DEVTOOLSET_VERSION=13"
MANY_LINUX_VERSION="2_28"
;;
manylinuxaarch64-builder:cuda*)
TARGET=cuda_final
GPU_IMAGE=amd64/almalinux:8
@ -75,21 +75,29 @@ case ${image} in
DOCKERFILE_SUFFIX="_cuda_aarch64"
;;
manylinux2_28-builder:rocm*)
# we want the patch version of 6.4 instead
if [[ $(ver $GPU_ARCH_VERSION) -eq $(ver 6.4) ]]; then
# we want the patch version of 7.0 instead
if [[ "$GPU_ARCH_VERSION" == *"7.0"* ]]; then
GPU_ARCH_VERSION="${GPU_ARCH_VERSION}.2"
fi
# we want the patch version of 6.4 instead
if [[ "$GPU_ARCH_VERSION" == *"6.4"* ]]; then
GPU_ARCH_VERSION="${GPU_ARCH_VERSION}.4"
fi
TARGET=rocm_final
MANY_LINUX_VERSION="2_28"
DEVTOOLSET_VERSION="11"
GPU_IMAGE=rocm/dev-almalinux-8:${GPU_ARCH_VERSION}-complete
PYTORCH_ROCM_ARCH="gfx900;gfx906;gfx908;gfx90a;gfx942;gfx1030;gfx1100;gfx1101;gfx1102;gfx1200;gfx1201"
# add gfx950, gfx115x conditionally starting in ROCm 7.0
if [[ "$GPU_ARCH_VERSION" == *"7.0"* ]]; then
PYTORCH_ROCM_ARCH="${PYTORCH_ROCM_ARCH};gfx950;gfx1150;gfx1151"
fi
DOCKER_GPU_BUILD_ARG="--build-arg ROCM_VERSION=${GPU_ARCH_VERSION} --build-arg PYTORCH_ROCM_ARCH=${PYTORCH_ROCM_ARCH} --build-arg DEVTOOLSET_VERSION=${DEVTOOLSET_VERSION}"
;;
manylinux2_28-builder:xpu)
TARGET=xpu_final
GPU_IMAGE=amd64/almalinux:8
DOCKER_GPU_BUILD_ARG=" --build-arg DEVTOOLSET_VERSION=11"
DOCKER_GPU_BUILD_ARG=" --build-arg DEVTOOLSET_VERSION=13"
MANY_LINUX_VERSION="2_28"
;;
*)
@ -115,7 +123,8 @@ tmp_tag=$(basename "$(mktemp -u)" | tr '[:upper:]' '[:lower:]')
DOCKER_BUILDKIT=1 docker build \
${DOCKER_GPU_BUILD_ARG} \
--build-arg "GPU_IMAGE=${GPU_IMAGE}" \
--build-arg "OPENBLAS_VERSION=${OPENBLAS_VERSION}" \
--build-arg "OPENBLAS_VERSION=${OPENBLAS_VERSION:-}" \
--build-arg "ACL_VERSION=${ACL_VERSION:-}" \
--target "${TARGET}" \
-t "${tmp_tag}" \
$@ \

View File

@ -10,11 +10,6 @@ BAD_SSL = "https://self-signed.badssl.com"
print("Testing SSL certificate checking for Python:", sys.version)
if sys.version_info[:2] < (2, 7) or sys.version_info[:2] < (3, 4):
print("This version never checks SSL certs; skipping tests")
sys.exit(0)
EXC = OSError
print(f"Connecting to {GOOD_SSL} should work")

View File

@ -10,6 +10,11 @@ boto3==1.35.42
#Pinned versions: 1.19.12, 1.16.34
#test that import:
build==1.3.0
#Description: A simple, correct Python build frontend.
#Pinned versions: 1.3.0
#test that import:
click
#Description: Command Line Interface Creation Kit
#Pinned versions:
@ -47,10 +52,10 @@ flatbuffers==24.12.23
#Pinned versions: 24.12.23
#test that import:
hypothesis==5.35.1
hypothesis==6.56.4
# Pin hypothesis to avoid flakiness: https://github.com/pytorch/pytorch/issues/31136
#Description: advanced library for generating parametrized tests
#Pinned versions: 5.35.1
#Pinned versions: 6.56.4
#test that import: test_xnnpack_integration.py, test_pruning_op.py, test_nn.py
junitparser==2.1.1
@ -63,11 +68,12 @@ lark==0.12.0
#Pinned versions: 0.12.0
#test that import:
librosa>=0.6.2 ; python_version < "3.11"
librosa==0.10.2 ; python_version == "3.12"
librosa>=0.6.2 ; python_version < "3.11" and platform_machine != "s390x"
librosa==0.10.2 ; python_version == "3.12" and platform_machine != "s390x"
#Description: A python package for music and audio analysis
#Pinned versions: >=0.6.2
#test that import: test_spectral_ops.py
#librosa depends on numba; disable it for s390x while numba is disabled too
#mkl #this breaks linux-bionic-rocm4.5-py3.7
#Description: Intel oneAPI Math Kernel Library
@ -92,8 +98,9 @@ librosa==0.10.2 ; python_version == "3.12"
#Pinned versions:
#test that import:
mypy==1.16.0
mypy==1.16.0 ; platform_system == "Linux"
# Pin MyPy version because new errors are likely to appear with each release
# Skip on Windows as lots of type annotations are POSIX specific
#Description: linter
#Pinned versions: 1.16.0
#test that import: test_typing.py, test_type_hints.py
@ -104,20 +111,18 @@ networkx==2.8.8
#Pinned versions: 2.8.8
#test that import: functorch
ninja==1.11.1.3
ninja==1.11.1.4
#Description: build system. Used in some tests. Used in build to generate build
#time tracing information
#Pinned versions: 1.11.1.3
#Pinned versions: 1.11.1.4
#test that import: run_test.py, test_cpp_extensions_aot.py,test_determination.py
numba==0.49.0 ; python_version < "3.9"
numba==0.55.2 ; python_version == "3.9"
numba==0.55.2 ; python_version == "3.10"
numba==0.60.0 ; python_version == "3.12"
numba==0.55.2 ; python_version == "3.10" and platform_machine != "s390x"
numba==0.60.0 ; python_version == "3.12" and platform_machine != "s390x"
#Description: Just-In-Time Compiler for Numerical Functions
#Pinned versions: 0.54.1, 0.49.0, <=0.49.1
#Pinned versions: 0.55.2, 0.60.0
#test that import: test_numba_integration.py
#For numba issue see https://github.com/pytorch/pytorch/issues/51511
#Need release > 0.61.2 for s390x due to https://github.com/numba/numba/pull/10073
#numpy
#Description: Provides N-dimensional arrays and linear algebra
@ -131,12 +136,14 @@ numba==0.60.0 ; python_version == "3.12"
#test_nn.py, test_namedtensor.py, test_linalg.py, test_jit_cuda_fuser.py,
#test_jit.py, test_indexing.py, test_datapipe.py, test_dataloader.py,
#test_binary_ufuncs.py
numpy==1.22.4; python_version == "3.9" or python_version == "3.10"
numpy==1.22.4; python_version == "3.10"
numpy==1.26.2; python_version == "3.11" or python_version == "3.12"
numpy==2.1.2; python_version >= "3.13"
numpy==2.1.2; python_version >= "3.13" and python_version < "3.14"
numpy==2.3.4; python_version >= "3.14"
pandas==2.0.3; python_version < "3.13"
pandas==2.2.3; python_version >= "3.13"
pandas==2.2.3; python_version >= "3.13" and python_version < "3.14"
pandas==2.3.3; python_version >= "3.14"
#onnxruntime
#Description: scoring engine for Open Neural Network Exchange (ONNX) models
@ -148,7 +155,8 @@ opt-einsum==3.3
#Pinned versions: 3.3
#test that import: test_linalg.py
optree==0.13.0
optree==0.13.0 ; python_version < "3.14"
optree==0.17.0 ; python_version >= "3.14"
#Description: A library for tree manipulation
#Pinned versions: 0.13.0
#test that import: test_vmap.py, test_aotdispatch.py, test_dynamic_shapes.py,
@ -163,12 +171,12 @@ optree==0.13.0
pillow==11.0.0
#Description: Python Imaging Library fork
#Pinned versions: 10.3.0
#Pinned versions: 11.0.0
#test that import:
protobuf==5.29.4
protobuf==5.29.5
#Description: Google's data interchange format
#Pinned versions: 5.29.4
#Pinned versions: 5.29.5
#test that import: test_tensorboard.py, test/onnx/*
psutil
@ -211,7 +219,7 @@ pytest-subtests==0.13.1
#Pinned versions:
#test that import:
xdoctest==1.1.0
xdoctest==1.3.0
#Description: runs doctests in pytest
#Pinned versions: 1.1.0
#test that import:
@ -236,10 +244,9 @@ pygments==2.15.0
#Pinned versions: 14.1.0
#test that import:
scikit-image==0.19.3 ; python_version < "3.10"
scikit-image==0.22.0 ; python_version >= "3.10"
scikit-image==0.22.0
#Description: image processing routines
#Pinned versions:
#Pinned versions: 0.22.0
#test that import: test_nn.py
#scikit-learn
@ -248,7 +255,8 @@ scikit-image==0.22.0 ; python_version >= "3.10"
#test that import:
scipy==1.10.1 ; python_version <= "3.11"
scipy==1.14.1 ; python_version >= "3.12"
scipy==1.14.1 ; python_version > "3.11" and python_version < "3.14"
scipy==1.16.2 ; python_version >= "3.14"
# Pin SciPy because of failing distribution tests (see #60347)
#Description: scientific python
#Pinned versions: 1.10.1
@ -261,13 +269,8 @@ scipy==1.14.1 ; python_version >= "3.12"
#Pinned versions:
#test that import:
tb-nightly==2.13.0a20230426
#Description: TensorBoard
#Pinned versions:
#test that import:
# needed by torchgen utils
typing-extensions>=4.10.0
typing-extensions==4.12.2
#Description: type hints for python
#Pinned versions:
#test that import:
@ -307,7 +310,7 @@ pytest-cpp==2.3.0
#Pinned versions: 2.3.0
#test that import:
z3-solver==4.15.1.0
z3-solver==4.15.1.0 ; platform_machine != "s390x"
#Description: The Z3 Theorem Prover Project
#Pinned versions:
#test that import:
@ -325,11 +328,10 @@ pywavelets==1.7.0 ; python_version >= "3.12"
#Pinned versions: 1.4.1
#test that import:
lxml==5.3.0
lxml==5.3.0 ; python_version < "3.14"
lxml==6.0.2 ; python_version >= "3.14"
#Description: This is a requirement of unittest-xml-reporting
# Python-3.9 binaries
PyGithub==2.3.0
sympy==1.13.3
@ -337,12 +339,14 @@ sympy==1.13.3
#Pinned versions:
#test that import:
onnx==1.18.0
onnx==1.19.1 ; python_version < "3.14"
# Unpin once Python 3.14 is supported. See onnxruntime issue 26309.
onnx==1.18.0 ; python_version == "3.14"
#Description: Required by onnx tests, and mypy and test_public_bindings.py when checking torch.onnx._internal
#Pinned versions:
#test that import:
onnxscript==0.3.1
onnxscript==0.5.4
#Description: Required by mypy and test_public_bindings.py when checking torch.onnx._internal
#Pinned versions:
#test that import:
@ -361,11 +365,11 @@ pwlf==2.2.1
#Pinned versions: 2.2.1
#test that import: test_sac_estimator.py
# To build PyTorch itself
pyyaml
pyyaml==6.0.3
pyzstd
setuptools>=70.1.0
setuptools==78.1.1
packaging==23.1
six
scons==4.5.2 ; platform_machine == "aarch64"
@ -380,13 +384,16 @@ dataclasses_json==0.6.7
#Pinned versions: 0.6.7
#test that import:
cmake==4.0.0
cmake==3.31.6
#Description: required for building
tlparse==0.3.30
tlparse==0.4.0
#Description: required for log parsing
cuda-bindings>=12.0,<13.0 ; platform_machine != "s390x"
filelock==3.18.0
#Description: required for inductor testing
cuda-bindings>=12.0,<13.0 ; platform_machine != "s390x" and platform_system != "Darwin"
#Description: required for testing CUDAGraph::raw_cuda_graph(). See https://nvidia.github.io/cuda-python/cuda-bindings/latest/support.html for how this version was chosen. Note "Any fix in the latest bindings would be backported to the prior major version" means that only the newest version of cuda-bindings will get fixes. Depending on the latest version of 12.x is okay because all 12.y versions will be supported via "CUDA minor version compatibility". Pytorch builds against 13.z versions of cuda toolkit work with 12.x versions of cuda-bindings as well because newer drivers work with old toolkits.
#test that import: test_cuda.py

View File

@ -1,8 +1,15 @@
sphinx==5.3.0
#Description: This is used to generate PyTorch docs
#Pinned versions: 5.3.0
-e git+https://github.com/pytorch/pytorch_sphinx_theme.git@722b7e6f9ca512fcc526ad07d62b3d28c50bb6cd#egg=pytorch_sphinx_theme2
standard-imghdr==3.13.0; python_version >= "3.13"
#Description: This is needed by Sphinx, so it needs to be added here.
# The reasons are as follows:
# 1) This module has been removed from the Python standard library since Python 3.13(https://peps.python.org/pep-0594/#imghdr);
# 2) The current version of Sphinx (5.3.0) is not compatible with Python 3.13.
# Once Sphinx is upgraded to a version compatible with Python 3.13 or later, we can remove this dependency.
-e git+https://github.com/pytorch/pytorch_sphinx_theme.git@71e55749be14ceb56e7f8211a9fb649866b87ad4#egg=pytorch_sphinx_theme2
# TODO: sphinxcontrib.katex 0.9.0 adds a local KaTeX server to speed up pre-rendering
# but it doesn't seem to work and hangs around idly. The initial thought that it is probably
# something related to Docker setup. We can investigate this later.

View File

@ -1 +1 @@
3.4.0
3.5.0

View File

@ -1 +1 @@
3.4.0
3.5.0

View File

@ -0,0 +1,155 @@
# Cross-compilation Docker container for RISC-V architecture
ARG UBUNTU_VERSION
FROM --platform=linux/amd64 ubuntu:${UBUNTU_VERSION} as base
ARG UBUNTU_VERSION
ENV GCC_VERSION=14
ENV PYTHON_VERSION=3.12.3
ENV DEBIAN_FRONTEND=noninteractive
ENV CC=riscv64-linux-gnu-gcc-${GCC_VERSION}
ENV CXX=riscv64-linux-gnu-g++-${GCC_VERSION}
ENV QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/
ENV SYSROOT=/opt/sysroot
# Install basic dependencies
RUN apt-get update && apt-get install -y \
ninja-build \
autoconf \
automake \
libtool \
patchelf \
ccache \
git \
wget \
python3-pip \
python3-venv \
python-is-python3 \
cmake \
sudo \
lsb-release \
gcc-${GCC_VERSION}-riscv64-linux-gnu \
g++-${GCC_VERSION}-riscv64-linux-gnu \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
# Install user
COPY ./common/install_user.sh install_user.sh
RUN bash ./install_user.sh && rm install_user.sh
FROM base as python
ARG ZLIB_VERSION=1.3.1
ARG FFI_VERSION=3.4.6
ARG BZ2_VERSION=1.0.8
ARG XZ_VERSION=5.4.6
ARG OPENSSL_VERSION=3.2.1
# Set up sysroot directory for dependencies
ENV PKG_CONFIG_PATH=${SYSROOT}/lib/pkgconfig
ENV PKG_CONFIG_SYSROOT_DIR=${SYSROOT}
WORKDIR /opt
# Build zlib (for compression)
RUN echo "--- Building zlib ---" \
&& wget -c https://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz \
&& tar -xf zlib-${ZLIB_VERSION}.tar.gz --no-same-permissions --no-same-owner \
&& cd zlib-${ZLIB_VERSION}/ \
&& mkdir build && cd build \
&& ../configure --prefix=${SYSROOT} \
&& make -j$(nproc) && make install \
&& cd ../..
# Build libffi (for ctypes module)
RUN echo "--- Building libffi ---" \
&& wget -c https://github.com/libffi/libffi/releases/download/v${FFI_VERSION}/libffi-${FFI_VERSION}.tar.gz \
&& tar -xf libffi-${FFI_VERSION}.tar.gz --no-same-permissions --no-same-owner \
&& cd libffi-${FFI_VERSION}/ \
&& mkdir build && cd build \
&& ../configure --prefix=${SYSROOT} --host=riscv64-linux-gnu --build=x86_64-linux-gnu \
&& make -j$(nproc) && make install \
&& cd ../..
# Build bzip2 (for bz2 module)
RUN echo "--- Building bzip2 ---" \
&& wget -c https://sourceware.org/pub/bzip2/bzip2-${BZ2_VERSION}.tar.gz \
&& tar -xf bzip2-${BZ2_VERSION}.tar.gz --no-same-permissions --no-same-owner \
&& cd bzip2-${BZ2_VERSION}/ \
&& make CC=riscv64-linux-gnu-gcc-${GCC_VERSION} bzip2 bzip2recover libbz2.a \
&& make CC=riscv64-linux-gnu-gcc-${GCC_VERSION} -f Makefile-libbz2_so \
&& make install PREFIX=${SYSROOT} \
&& cp libbz2.so.${BZ2_VERSION} ${SYSROOT}/lib/ \
&& cd ${SYSROOT}/lib/ \
&& ln -sf libbz2.so.${BZ2_VERSION} libbz2.so.1.0 \
&& ln -sf libbz2.so.1.0 libbz2.so \
&& cd /opt/
# Build xz (for lzma module)
RUN echo "--- Building xz ---" \
&& wget -c https://github.com/tukaani-project/xz/releases/download/v${XZ_VERSION}/xz-${XZ_VERSION}.tar.gz \
&& tar -xf xz-${XZ_VERSION}.tar.gz --no-same-permissions --no-same-owner \
&& cd xz-${XZ_VERSION} \
&& mkdir build && cd build \
&& ../configure --prefix=${SYSROOT} --host=riscv64-linux-gnu --build=x86_64-linux-gnu \
&& make -j$(nproc) && make install \
&& cd ../..
# Build OpenSSL (for ssl module)
RUN echo "--- Building OpenSSL ---" \
&& wget -c https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
&& tar -xf openssl-${OPENSSL_VERSION}.tar.gz --no-same-permissions --no-same-owner \
&& cd openssl-${OPENSSL_VERSION}/ \
&& mkdir build && cd build \
&& ../Configure linux64-riscv64 --prefix=${SYSROOT} \
&& make -j$(nproc) && make install_sw \
&& cd ../..
# Build SQLite3 (for sqlite3 module)
RUN echo "--- Building SQLite3 ---" \
&& wget -c https://www.sqlite.org/2024/sqlite-autoconf-3450200.tar.gz \
&& tar -xf sqlite-autoconf-3450200.tar.gz --no-same-permissions --no-same-owner \
&& cd sqlite-autoconf-3450200 \
&& mkdir build && cd build \
&& ../configure --prefix=${SYSROOT} --host=riscv64-linux-gnu --build=x86_64-linux-gnu \
&& make -j$(nproc) && make install \
&& cd ../..
# Build and install RISC-V Python with all modules
RUN wget -c https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz \
&& tar -xf Python-${PYTHON_VERSION}.tgz --no-same-permissions --no-same-owner \
&& cd Python-${PYTHON_VERSION} \
&& mkdir build && cd build \
&& ../configure \
--host=riscv64-linux-gnu \
--build=x86_64-linux-gnu \
--prefix=${SYSROOT} \
--enable-shared \
--disable-ipv6 \
--with-build-python=/usr/bin/python3 \
--with-ensurepip=no \
ac_cv_file__dev_ptmx=yes \
ac_cv_file__dev_ptc=no \
&& make -j$(nproc) \
&& make install
FROM base as final
COPY --from=python /opt/sysroot /opt/sysroot
# Install crossenv and cmake
RUN pip install crossenv cmake==4.0.0 --break-system-packages \
&& /usr/bin/python3 -m crossenv ${SYSROOT}/bin/python3 /opt/riscv-cross-env
# Add pip-installed cmake binaries to PATH
ENV PATH="/usr/local/bin:${PATH}"
# Set up cross Python environment
SHELL ["/bin/bash", "-c"]
RUN source /opt/riscv-cross-env/bin/activate \
&& pip install setuptools pyyaml typing_extensions wheel
# Set default environment variables for PyTorch build
ENV Python_ROOT_DIR=${SYSROOT}
ENV OPENSSL_ROOT_DIR=${SYSROOT}
USER jenkins
CMD ["bash"]

View File

@ -52,9 +52,13 @@ ENV INSTALLED_VISION ${VISION}
# Install rocm
ARG ROCM_VERSION
RUN mkdir ci_commit_pins
COPY ./common/common_utils.sh common_utils.sh
COPY ./ci_commit_pins/rocm-composable-kernel.txt ci_commit_pins/rocm-composable-kernel.txt
COPY ./common/install_rocm.sh install_rocm.sh
RUN bash ./install_rocm.sh
RUN rm install_rocm.sh
RUN rm install_rocm.sh common_utils.sh
RUN rm -r ci_commit_pins
COPY ./common/install_rocm_magma.sh install_rocm_magma.sh
RUN bash ./install_rocm_magma.sh ${ROCM_VERSION}
RUN rm install_rocm_magma.sh
@ -96,10 +100,11 @@ ARG ANACONDA_PYTHON_VERSION
ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION
COPY ./common/install_inductor_benchmark_deps.sh install_inductor_benchmark_deps.sh
COPY ./common/common_utils.sh common_utils.sh
COPY ci_commit_pins/huggingface.txt huggingface.txt
COPY ci_commit_pins/huggingface-requirements.txt huggingface-requirements.txt
COPY ci_commit_pins/timm.txt timm.txt
COPY ci_commit_pins/torchbench.txt torchbench.txt
RUN if [ -n "${INDUCTOR_BENCHMARKS}" ]; then bash ./install_inductor_benchmark_deps.sh; fi
RUN rm install_inductor_benchmark_deps.sh common_utils.sh timm.txt huggingface.txt
RUN rm install_inductor_benchmark_deps.sh common_utils.sh timm.txt huggingface-requirements.txt torchbench.txt
# (optional) Install non-default Ninja version
ARG NINJA_VERSION

View File

@ -54,12 +54,15 @@ ENV OPENSSL_DIR /opt/openssl
RUN rm install_openssl.sh
ARG INDUCTOR_BENCHMARKS
ARG ANACONDA_PYTHON_VERSION
ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION
COPY ./common/install_inductor_benchmark_deps.sh install_inductor_benchmark_deps.sh
COPY ./common/common_utils.sh common_utils.sh
COPY ci_commit_pins/huggingface.txt huggingface.txt
COPY ci_commit_pins/huggingface-requirements.txt huggingface-requirements.txt
COPY ci_commit_pins/timm.txt timm.txt
COPY ci_commit_pins/torchbench.txt torchbench.txt
RUN if [ -n "${INDUCTOR_BENCHMARKS}" ]; then bash ./install_inductor_benchmark_deps.sh; fi
RUN rm install_inductor_benchmark_deps.sh common_utils.sh timm.txt huggingface.txt
RUN rm install_inductor_benchmark_deps.sh common_utils.sh timm.txt huggingface-requirements.txt torchbench.txt
# Install XPU Dependencies
ARG XPU_VERSION

View File

@ -66,6 +66,7 @@ ENV NCCL_LIB_DIR="/usr/local/cuda/lib64/"
# (optional) Install UCC
ARG UCX_COMMIT
ARG UCC_COMMIT
ARG CUDA_VERSION
ENV UCX_COMMIT $UCX_COMMIT
ENV UCC_COMMIT $UCC_COMMIT
ENV UCX_HOME /usr
@ -96,10 +97,18 @@ RUN rm install_openssl.sh
ARG INDUCTOR_BENCHMARKS
COPY ./common/install_inductor_benchmark_deps.sh install_inductor_benchmark_deps.sh
COPY ./common/common_utils.sh common_utils.sh
COPY ci_commit_pins/huggingface.txt huggingface.txt
COPY ci_commit_pins/huggingface-requirements.txt huggingface-requirements.txt
COPY ci_commit_pins/timm.txt timm.txt
COPY ci_commit_pins/torchbench.txt torchbench.txt
# Only build aoti cpp tests when INDUCTOR_BENCHMARKS is set to True
ENV BUILD_AOT_INDUCTOR_TEST ${INDUCTOR_BENCHMARKS}
RUN if [ -n "${INDUCTOR_BENCHMARKS}" ]; then bash ./install_inductor_benchmark_deps.sh; fi
RUN rm install_inductor_benchmark_deps.sh common_utils.sh timm.txt huggingface.txt
RUN rm install_inductor_benchmark_deps.sh common_utils.sh timm.txt huggingface-requirements.txt torchbench.txt
ARG INSTALL_MINGW
COPY ./common/install_mingw.sh install_mingw.sh
RUN if [ -n "${INSTALL_MINGW}" ]; then bash ./install_mingw.sh; fi
RUN rm install_mingw.sh
ARG TRITON
ARG TRITON_CPU
@ -180,7 +189,6 @@ COPY --from=pytorch/llvm:9.0.1 /opt/llvm /opt/llvm
RUN if [ -n "${SKIP_LLVM_SRC_BUILD_INSTALL}" ]; then set -eu; rm -rf /opt/llvm; fi
# AWS specific CUDA build guidance
ENV TORCH_CUDA_ARCH_LIST Maxwell
ENV TORCH_NVCC_FLAGS "-Xfatbin -compress-all"
ENV CUDA_PATH /usr/local/cuda

View File

@ -7,4 +7,4 @@ set -ex
SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
USE_CUSPARSELT=0 BUILD_PYTHONLESS=1 DESIRED_PYTHON="3.9" ${SCRIPTPATH}/../manywheel/build.sh
USE_NVSHMEM=0 USE_CUSPARSELT=0 BUILD_PYTHONLESS=1 DESIRED_PYTHON="3.10" ${SCRIPTPATH}/../manywheel/build.sh

31
.ci/lumen_cli/README.md Normal file
View File

@ -0,0 +1,31 @@
# 🔧 Lumen_cli
A Python CLI tool for building and testing PyTorch-based components, using a YAML configuration file for structured, repeatable workflows.
## Features
- **Build**
- external projects (e.g. vLLM)
## 📦 Installation
at the root of the pytorch repo
```bash
pip install -e .ci/lumen_cli
```
## Run the cli tool
The cli tool must be used at root of pytorch repo, as example to run build external vllm:
```bash
python -m cli.run build external vllm
```
this will run the build steps with default behaviour for vllm project.
to see help messages, run
```bash
python3 -m cli.run --help
```
## Add customized external build logics
To add a new external build, for instance, add a new external build logics:
1. create the build function in cli/lib folder
2. register your target and the main build function at EXTERNAL_BUILD_TARGET_DISPATCH in `cli/build_cli/register_build.py`
3. [optional] create your ci config file in .github/ci_configs/${EXTERNAL_PACKAGE_NAME}.yaml

View File

@ -0,0 +1,37 @@
import argparse
import logging
from cli.lib.common.cli_helper import register_targets, RichHelp, TargetSpec
from cli.lib.core.vllm.vllm_build import VllmBuildRunner
logger = logging.getLogger(__name__)
# Maps targets to their argparse configuration and runner
# it adds new target to path python -m cli.run build external {target} with buildrunner
_TARGETS: dict[str, TargetSpec] = {
"vllm": {
"runner": VllmBuildRunner,
"help": "Build vLLM using docker buildx.",
}
# add yours ...
}
def register_build_commands(subparsers: argparse._SubParsersAction) -> None:
build_parser = subparsers.add_parser(
"build",
help="Build related commands",
formatter_class=RichHelp,
)
build_subparsers = build_parser.add_subparsers(dest="build_command", required=True)
overview = "\n".join(
f" {name:12} {spec.get('help', '')}" for name, spec in _TARGETS.items()
)
external_parser = build_subparsers.add_parser(
"external",
help="Build external targets",
description="Build third-party targets.\n\nAvailable targets:\n" + overview,
formatter_class=RichHelp,
)
register_targets(external_parser, _TARGETS)

View File

@ -0,0 +1,71 @@
"""
Cli Argparser Utility helpers for CLI tasks.
"""
import argparse
from abc import ABC, abstractmethod
try:
from typing import Any, Callable, Required, TypedDict # Python 3.11+
except ImportError:
from typing import Any, Callable, TypedDict
from typing_extensions import Required # Fallback for Python <3.11
class BaseRunner(ABC):
def __init__(self, args: Any) -> None:
self.args = args
@abstractmethod
def run(self) -> None:
"""runs main logics, required"""
# Pretty help: keep newlines + show defaults
class RichHelp(
argparse.ArgumentDefaultsHelpFormatter, argparse.RawDescriptionHelpFormatter
):
pass
class TargetSpec(TypedDict, total=False):
"""CLI subcommand specification with bA."""
runner: Required[type[BaseRunner]]
help: str
description: str
add_arguments: Callable[[argparse.ArgumentParser], None]
def register_targets(
parser: argparse.ArgumentParser,
target_specs: dict[str, TargetSpec],
common_args: Callable[[argparse.ArgumentParser], None] = lambda _: None,
) -> None:
"""Register target subcommands."""
targets = parser.add_subparsers(
dest="target",
required=True,
metavar="{" + ",".join(target_specs.keys()) + "}",
)
for name, spec in target_specs.items():
desc = spec.get("description") or spec["runner"].__doc__ or ""
p = targets.add_parser(
name,
help=spec.get("help", ""),
description=desc.strip(),
formatter_class=RichHelp,
)
p.set_defaults(
func=lambda args, cls=spec["runner"]: cls(args).run(),
_runner_class=spec["runner"],
)
if "add_arguments" in spec and callable(spec["add_arguments"]):
spec["add_arguments"](p)
if common_args:
common_args(p)

View File

@ -0,0 +1,42 @@
"""
Docker Utility helpers for CLI tasks.
"""
import logging
from typing import Optional
import docker
from docker.errors import APIError, NotFound
logger = logging.getLogger(__name__)
# lazy singleton so we don't reconnect every call
_docker_client: Optional[docker.DockerClient] = None
def _get_client() -> docker.DockerClient:
global _docker_client
if _docker_client is None:
_docker_client = docker.from_env()
return _docker_client
def local_image_exists(
image_name: str, client: Optional[docker.DockerClient] = None
) -> bool:
"""Return True if a local Docker image exists."""
if not image_name:
return False
client = client or _get_client()
try:
client.images.get(image_name)
return True
except (NotFound, APIError) as e:
logger.error(
"Error when checking Docker image '%s': %s",
image_name,
e.explanation if hasattr(e, "explanation") else str(e),
)
return False

View File

@ -0,0 +1,110 @@
"""
Environment Variables and Dataclasses Utility helpers for CLI tasks.
"""
import os
from dataclasses import field, fields, is_dataclass, MISSING
from pathlib import Path
from textwrap import indent
from typing import Optional, Union
from cli.lib.common.utils import str2bool
def get_env(name: str, default: str = "") -> str:
"""Get environment variable with default fallback."""
return os.environ.get(name) or default
def env_path_optional(
name: str,
default: Optional[Union[str, Path]] = None,
resolve: bool = True,
) -> Optional[Path]:
"""Get environment variable as optional Path."""
val = get_env(name) or default
if not val:
return None
path = Path(val)
return path.resolve() if resolve else path
def env_path(
name: str,
default: Optional[Union[str, Path]] = None,
resolve: bool = True,
) -> Path:
"""Get environment variable as Path, raise if missing."""
path = env_path_optional(name, default, resolve)
if not path:
raise ValueError(f"Missing path value for {name}")
return path
def env_bool(
name: str,
default: bool = False,
) -> bool:
val = get_env(name)
if not val:
return default
return str2bool(val)
def env_bool_field(
name: str,
default: bool = False,
):
return field(default_factory=lambda: env_bool(name, default))
def env_path_field(
name: str,
default: Union[str, Path] = "",
*,
resolve: bool = True,
) -> Path:
return field(default_factory=lambda: env_path(name, default, resolve=resolve))
def env_str_field(
name: str,
default: str = "",
) -> str:
return field(default_factory=lambda: get_env(name, default))
def generate_dataclass_help(cls) -> str:
"""Auto-generate help text for dataclass fields."""
if not is_dataclass(cls):
raise TypeError(f"{cls} is not a dataclass")
def get_value(f):
if f.default is not MISSING:
return f.default
if f.default_factory is not MISSING:
try:
return f.default_factory()
except Exception as e:
return f"<error: {e}>"
return "<required>"
lines = [f"{f.name:<22} = {repr(get_value(f))}" for f in fields(cls)]
return indent("\n".join(lines), " ")
def with_params_help(params_cls: type, title: str = "Parameter defaults"):
"""
Class decorator that appends a help table generated from another dataclass
(e.g., VllmParameters) to the decorated class's docstring.
"""
if not is_dataclass(params_cls):
raise TypeError(f"{params_cls} must be a dataclass")
def _decorator(cls: type) -> type:
block = generate_dataclass_help(params_cls)
cls.__doc__ = (cls.__doc__ or "") + f"\n\n{title}:\n{block}"
return cls
return _decorator

View File

@ -0,0 +1,143 @@
from __future__ import annotations
import logging
import os
import textwrap
from pathlib import Path
from typing import TYPE_CHECKING
from cli.lib.common.utils import get_wheels
from jinja2 import Template
if TYPE_CHECKING:
from collections.abc import Iterable, Mapping
logger = logging.getLogger(__name__)
_TPL_CONTENT = Template(
textwrap.dedent("""\
## {{ title }}
```{{ lang }}
{{ content }}
```
""")
)
_TPL_LIST_ITEMS = Template(
textwrap.dedent("""\
## {{ title }}
{% for it in items %}
- {{ it.pkg }}: {{ it.relpath }}
{% else %}
_(no item found)_
{% endfor %}
""")
)
_TPL_TABLE = Template(
textwrap.dedent("""\
{%- if rows %}
| {{ cols | join(' | ') }} |
|{%- for _ in cols %} --- |{%- endfor %}
{%- for r in rows %}
| {%- for c in cols %} {{ r.get(c, "") }} |{%- endfor %}
{%- endfor %}
{%- else %}
_(no data)_
{%- endif %}
""")
)
def gh_summary_path() -> Path | None:
"""Return the Path to the GitHub step summary file, or None if not set."""
p = os.environ.get("GITHUB_STEP_SUMMARY")
return Path(p) if p else None
def write_gh_step_summary(md: str, *, append_content: bool = True) -> bool:
"""
Write Markdown content to the GitHub Step Summary file if GITHUB_STEP_SUMMARY is set.
append_content: default true, if True, append to the end of the file, else overwrite the whole file
Returns:
True if written successfully (in GitHub Actions environment),
False if skipped (e.g., running locally where the variable is not set).
"""
sp = gh_summary_path()
if not sp:
logger.info("[gh-summary] GITHUB_STEP_SUMMARY not set, skipping write.")
return False
md_clean = textwrap.dedent(md).strip() + "\n"
mode = "a" if append_content else "w"
with sp.open(mode, encoding="utf-8") as f:
f.write(md_clean)
return True
def md_heading(text: str, level: int = 2) -> str:
"""Generate a Markdown heading string with the given level (1-6)."""
return f"{'#' * max(1, min(level, 6))} {text}\n"
def md_details(summary: str, content: str) -> str:
"""Generate a collapsible <details> block with a summary and inner content."""
return f"<details>\n<summary>{summary}</summary>\n\n{content}\n\n</details>\n"
def summarize_content_from_file(
output_dir: Path,
freeze_file: str,
title: str = "Content from file",
code_lang: str = "", # e.g. "text" or "ini"
) -> bool:
f = Path(output_dir) / freeze_file
if not f.exists():
return False
content = f.read_text(encoding="utf-8").strip()
md = render_content(content, title=title, lang=code_lang)
return write_gh_step_summary(md)
def summarize_wheels(path: Path, title: str = "Wheels", max_depth: int = 3):
items = get_wheels(path, max_depth=max_depth)
if not items:
return False
md = render_list(items, title=title)
return write_gh_step_summary(md)
def md_kv_table(rows: Iterable[Mapping[str, str | int | float]]) -> str:
"""
Render a list of dicts as a Markdown table using Jinja template.
"""
rows = list(rows)
cols = list({k for r in rows for k in r.keys()})
md = _TPL_TABLE.render(cols=cols, rows=rows).strip() + "\n"
return md
def render_list(
items: Iterable[str],
*,
title: str = "List",
) -> str:
tpl = _TPL_LIST_ITEMS
md = tpl.render(title=title, items=items)
return md
def render_content(
content: str,
*,
title: str = "Content",
lang: str = "text",
) -> str:
tpl = _TPL_CONTENT
md = tpl.render(title=title, content=content, lang=lang)
return md

View File

@ -0,0 +1,69 @@
"""
Git Utility helpers for CLI tasks.
"""
import logging
from pathlib import Path
from cli.lib.common.path_helper import remove_dir
from git import GitCommandError, RemoteProgress, Repo
logger = logging.getLogger(__name__)
class PrintProgress(RemoteProgress):
"""Simple progress logger for git operations."""
def __init__(self, interval: int = 5):
super().__init__()
self._last_percent = -1
self._interval = interval
def update(self, op_code, cur, max=None, message=""):
msg = self._cur_line or message
if max and cur:
percent = int(cur / max * 100)
if percent != self._last_percent and percent % self._interval == 0:
self._last_percent = percent
logger.info("Progress: %d%% - %s", percent, msg)
elif msg:
logger.info(msg)
def clone_external_repo(target: str, repo: str, dst: str = "", update_submodules=False):
"""Clone repository with pinned commit and optional submodules."""
dst = dst or target
try:
logger.info("Cloning %s to %s", target, dst)
# Clone and fetch
remove_dir(dst)
r = Repo.clone_from(repo, dst, progress=PrintProgress())
r.git.fetch("--all", "--tags")
# Checkout pinned commit
commit = get_post_build_pinned_commit(target)
logger.info("Checking out pinned %s commit %s", target, commit)
r.git.checkout(commit)
# Update submodules if requested
if update_submodules and r.submodules:
logger.info("Updating %d submodule(s)", len(r.submodules))
for sm in r.submodules:
sm.update(init=True, recursive=True, progress=PrintProgress())
logger.info("Successfully cloned %s", target)
return r, commit
except GitCommandError:
logger.exception("Git operation failed")
raise
def get_post_build_pinned_commit(name: str, prefix=".github/ci_commit_pins") -> str:
path = Path(prefix) / f"{name}.txt"
if not path.exists():
raise FileNotFoundError(f"Pin file not found: {path}")
return path.read_text(encoding="utf-8").strip()

View File

@ -0,0 +1,14 @@
"""
Logger Utility helpers for CLI tasks.
"""
import logging
import sys
def setup_logging(level: int = logging.INFO):
logging.basicConfig(
level=level,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
stream=sys.stdout,
)

View File

@ -0,0 +1,62 @@
"""Path utility helpers for CLI tasks."""
import logging
import shutil
from pathlib import Path
from typing import Union
logger = logging.getLogger(__name__)
def get_path(path: Union[str, Path], resolve: bool = False) -> Path:
"""Convert to Path object, optionally resolving to absolute path."""
if not path:
raise ValueError("Path cannot be None or empty")
result = Path(path)
return result.resolve() if resolve else result
def ensure_dir_exists(path: Union[str, Path]) -> Path:
"""Create directory if it doesn't exist."""
path_obj = get_path(path)
path_obj.mkdir(parents=True, exist_ok=True)
return path_obj
def remove_dir(path: Union[str, Path, None]) -> None:
"""Remove directory if it exists."""
if not path:
return
path_obj = get_path(path)
if path_obj.exists():
shutil.rmtree(path_obj)
def force_create_dir(path: Union[str, Path]) -> Path:
"""Remove directory if exists, then create fresh empty directory."""
remove_dir(path)
return ensure_dir_exists(path)
def copy(src: Union[str, Path], dst: Union[str, Path]) -> None:
"""Copy file or directory from src to dst."""
src_path = get_path(src, resolve=True)
dst_path = get_path(dst, resolve=True)
if not src_path.exists():
raise FileNotFoundError(f"Source does not exist: {src_path}")
dst_path.parent.mkdir(parents=True, exist_ok=True)
if src_path.is_file():
shutil.copy2(src_path, dst_path)
elif src_path.is_dir():
shutil.copytree(src_path, dst_path, dirs_exist_ok=True)
else:
raise ValueError(f"Unsupported path type: {src_path}")
def is_path_exist(path: Union[str, Path, None]) -> bool:
"""Check if path exists."""
return bool(path and get_path(path).exists())

View File

@ -0,0 +1,71 @@
import glob
import logging
import shlex
import shutil
import sys
from collections.abc import Iterable
from importlib.metadata import PackageNotFoundError, version # noqa: UP035
from typing import Optional, Union
from cli.lib.common.utils import run_command
logger = logging.getLogger(__name__)
def pip_install_packages(
packages: Iterable[str] = (),
env=None,
*,
requirements: Optional[str] = None,
constraints: Optional[str] = None,
prefer_uv: bool = False,
) -> None:
use_uv = prefer_uv and shutil.which("uv") is not None
base = (
[sys.executable, "-m", "uv", "pip", "install"]
if use_uv
else [sys.executable, "-m", "pip", "install"]
)
cmd = base[:]
if requirements:
cmd += ["-r", requirements]
if constraints:
cmd += ["-c", constraints]
cmd += list(packages)
logger.info("pip installing packages: %s", " ".join(map(shlex.quote, cmd)))
run_command(" ".join(map(shlex.quote, cmd)), env=env)
def pip_install_first_match(pattern: str, extras: Optional[str] = None, pref_uv=False):
wheel = first_matching_pkg(pattern)
target = f"{wheel}[{extras}]" if extras else wheel
logger.info("Installing %s...", target)
pip_install_packages([target], prefer_uv=pref_uv)
def run_python(args: Union[str, list[str]], env=None):
"""
Run the python in the current environment.
"""
if isinstance(args, str):
args = shlex.split(args)
cmd = [sys.executable] + args
run_command(" ".join(map(shlex.quote, cmd)), env=env)
def pkg_exists(name: str) -> bool:
try:
pkg_version = version(name)
logger.info("%s already exist with version: %s", name, pkg_version)
return True
except PackageNotFoundError:
logger.info("%s is not installed", name)
return False
def first_matching_pkg(pattern: str) -> str:
matches = sorted(glob.glob(pattern))
if not matches:
raise FileNotFoundError(f"No wheel matching: {pattern}")
return matches[0]

View File

@ -0,0 +1,139 @@
"""
General Utility helpers for CLI tasks.
"""
import logging
import os
import shlex
import subprocess
import sys
from contextlib import contextmanager
from pathlib import Path
from typing import Optional
logger = logging.getLogger(__name__)
def run_command(
cmd: str,
use_shell: bool = False,
log_cmd: bool = True,
cwd: Optional[str] = None,
env: Optional[dict] = None,
check: bool = True,
) -> int:
"""Run a command with optional shell execution."""
if use_shell:
args = cmd
log_prefix = "[shell]"
executable = "/bin/bash"
else:
args = shlex.split(cmd)
log_prefix = "[cmd]"
executable = None
if log_cmd:
display_cmd = cmd if use_shell else " ".join(args)
logger.info("%s %s", log_prefix, display_cmd)
run_env = {**os.environ, **(env or {})}
proc = subprocess.run(
args,
shell=use_shell,
executable=executable,
stdout=sys.stdout,
stderr=sys.stderr,
cwd=cwd,
env=run_env,
check=False,
)
if check and proc.returncode != 0:
logger.error(
"%s Command failed (exit %s): %s", log_prefix, proc.returncode, cmd
)
raise subprocess.CalledProcessError(
proc.returncode, args if not use_shell else cmd
)
return proc.returncode
def str2bool(value: Optional[str]) -> bool:
"""Convert environment variables to boolean values."""
if not value:
return False
if not isinstance(value, str):
raise ValueError(
f"Expected a string value for boolean conversion, got {type(value)}"
)
value = value.strip().lower()
true_value_set = {"1", "true", "t", "yes", "y", "on", "enable", "enabled", "found"}
false_value_set = {"0", "false", "f", "no", "n", "off", "disable"}
if value in true_value_set:
return True
if value in false_value_set:
return False
raise ValueError(f"Invalid string value for boolean conversion: {value}")
@contextmanager
def temp_environ(updates: dict[str, str]):
"""
Temporarily set environment variables and restore them after the block.
Args:
updates: Dict of environment variables to set.
"""
missing = object()
old: dict[str, str | object] = {k: os.environ.get(k, missing) for k in updates}
try:
os.environ.update(updates)
yield
finally:
for k, v in old.items():
if v is missing:
os.environ.pop(k, None)
else:
os.environ[k] = v # type: ignore[arg-type]
@contextmanager
def working_directory(path: str):
"""
Temporarily change the working directory inside a context.
"""
if not path:
# No-op context
yield
return
prev_cwd = os.getcwd()
try:
os.chdir(path)
yield
finally:
os.chdir(prev_cwd)
def get_wheels(
output_dir: Path,
max_depth: Optional[int] = None,
) -> list[str]:
"""Return a list of wheels found in the given output directory."""
root = Path(output_dir)
if not root.exists():
return []
items = []
for dirpath, _, filenames in os.walk(root):
depth = Path(dirpath).relative_to(root).parts
if max_depth is not None and len(depth) > max_depth:
continue
for fname in sorted(filenames):
if fname.endswith(".whl"):
pkg = fname.split("-")[0]
relpath = str((Path(dirpath) / fname).relative_to(root))
items.append({"pkg": pkg, "relpath": relpath})
return items

View File

@ -0,0 +1,292 @@
import logging
import os
import textwrap
from typing import Any
from cli.lib.common.gh_summary import write_gh_step_summary
from cli.lib.common.git_helper import clone_external_repo
from cli.lib.common.pip_helper import pip_install_packages
from cli.lib.common.utils import run_command, temp_environ, working_directory
from jinja2 import Template
logger = logging.getLogger(__name__)
_TPL_VLLM_INFO = Template(
textwrap.dedent("""\
## Vllm against Pytorch CI Test Summary
**Vllm Commit**: [{{ vllm_commit }}](https://github.com/vllm-project/vllm/commit/{{ vllm_commit }})
{%- if torch_sha %}
**Pytorch Commit**: [{{ torch_sha }}](https://github.com/pytorch/pytorch/commit/{{ torch_sha }})
{%- endif %}
""")
)
def sample_vllm_test_library():
"""
Simple sample to unblock the vllm ci development, which is mimic to
https://github.com/vllm-project/vllm/blob/main/.buildkite/test-pipeline.yaml
see run_test_plan for more details
"""
# TODO(elainewy): Read from yaml file to handle the env and tests for vllm
return {
"vllm_basic_correctness_test": {
"title": "Basic Correctness Test",
"id": "vllm_basic_correctness_test",
"env_vars": {
"VLLM_WORKER_MULTIPROC_METHOD": "spawn",
},
"steps": [
"pytest -v -s basic_correctness/test_cumem.py",
"pytest -v -s basic_correctness/test_basic_correctness.py",
"pytest -v -s basic_correctness/test_cpu_offload.py",
],
},
"vllm_basic_models_test": {
"title": "Basic models test",
"id": "vllm_basic_models_test",
"steps": [
"pytest -v -s models/test_transformers.py",
"pytest -v -s models/test_registry.py",
"pytest -v -s models/test_utils.py",
"pytest -v -s models/test_vision.py",
"pytest -v -s models/test_initialization.py",
],
},
"vllm_entrypoints_test": {
"title": "Entrypoints Test ",
"id": "vllm_entrypoints_test",
"env_vars": {
"VLLM_WORKER_MULTIPROC_METHOD": "spawn",
},
"steps": [
" ".join(
[
"pytest",
"-v",
"-s",
"entrypoints/llm",
"--ignore=entrypoints/llm/test_generate.py",
"--ignore=entrypoints/llm/test_collective_rpc.py",
]
),
"pytest -v -s entrypoints/llm/test_generate.py",
"pytest -v -s entrypoints/offline_mode",
],
},
"vllm_regression_test": {
"title": "Regression Test",
"id": "vllm_regression_test",
"package_install": ["modelscope"],
"steps": [
"pytest -v -s test_regression.py",
],
},
"vllm_lora_tp_test_distributed": {
"title": "LoRA TP Test (Distributed)",
"id": "vllm_lora_tp_test_distributed",
"env_vars": {
"VLLM_WORKER_MULTIPROC_METHOD": "spawn",
},
"num_gpus": 4,
"steps": [
"pytest -v -s -x lora/test_chatglm3_tp.py",
"pytest -v -s -x lora/test_llama_tp.py",
"pytest -v -s -x lora/test_llm_with_multi_loras.py",
],
},
"vllm_distributed_test_28_failure_test": {
"title": "Distributed Tests (2 GPUs) pytorch 2.8 release failure",
"id": "vllm_distributed_test_28_failure_test",
"env_vars": {
"VLLM_WORKER_MULTIPROC_METHOD": "spawn",
},
"num_gpus": 4,
"steps": [
"pytest -v -s distributed/test_sequence_parallel.py",
],
},
"vllm_lora_28_failure_test": {
"title": "LoRA pytorch 2.8 failure test",
"id": "vllm_lora_28_failure_test",
"steps": ["pytest -v lora/test_quant_model.py"],
},
"vllm_multi_model_processor_test": {
"title": "Multi-Modal Processor Test",
"id": "vllm_multi_model_processor_test",
"package_install": ["git+https://github.com/TIGER-AI-Lab/Mantis.git"],
"steps": [
"pytest -v -s models/multimodal/processing --ignore models/multimodal/processing/test_tensor_schema.py",
],
},
"vllm_multi_model_test_28_failure_test": {
"title": "Multi-Model Test (Failed 2.8 release)",
"id": "vllm_multi_model_test_28_failure_test",
"package_install": ["git+https://github.com/TIGER-AI-Lab/Mantis.git"],
"steps": [
"pytest -v -s models/multimodal/generation/test_voxtral.py",
"pytest -v -s models/multimodal/pooling",
],
},
"vllm_pytorch_compilation_unit_tests": {
"title": "PyTorch Compilation Unit Tests",
"id": "vllm_pytorch_compilation_unit_tests",
"steps": [
"pytest -v -s compile/test_pass_manager.py",
"pytest -v -s compile/test_fusion.py",
"pytest -v -s compile/test_fusion_attn.py",
"pytest -v -s compile/test_silu_mul_quant_fusion.py",
"pytest -v -s compile/test_sequence_parallelism.py",
"pytest -v -s compile/test_async_tp.py",
"pytest -v -s compile/test_fusion_all_reduce.py",
"pytest -v -s compile/test_decorator.py",
],
},
"vllm_language_model_test_extended_generation_28_failure_test": {
"title": "Language Models Test (Extended Generation) 2.8 release failure",
"id": "vllm_languagde_model_test_extended_generation_28_failure_test",
"package_install": [
"--no-build-isolation",
"git+https://github.com/Dao-AILab/causal-conv1d@v1.5.0.post8",
],
"steps": [
"pytest -v -s models/language/generation/test_mistral.py",
],
},
"vllm_distributed_test_2_gpu_28_failure_test": {
"title": "Distributed Tests (2 GPUs) pytorch 2.8 release failure",
"id": "vllm_distributed_test_2_gpu_28_failure_test",
"env_vars": {
"VLLM_WORKER_MULTIPROC_METHOD": "spawn",
},
"num_gpus": 4,
"steps": [
"pytest -v -s distributed/test_sequence_parallel.py",
],
},
# TODO(elainewy):need to add g6 with 4 gpus to run this test
"vllm_lora_test": {
"title": "LoRA Test %N",
"id": "lora_test",
"parallelism": 4,
"steps": [
"echo '[checking] list sharded lora tests:'",
" ".join(
[
"pytest -q --collect-only lora",
"--shard-id=$$BUILDKITE_PARALLEL_JOB",
"--num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT",
"--ignore=lora/test_chatglm3_tp.py --ignore=lora/test_llama_tp.py",
]
),
"echo '[checking] Done. list lora tests'",
" ".join(
[
"pytest -v -s lora --shard-id=$$BUILDKITE_PARALLEL_JOB",
"--num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT",
"--ignore=lora/test_chatglm3_tp.py --ignore=lora/test_llama_tp.py",
]
),
],
},
}
def check_parallelism(tests: Any, title: str, shard_id: int = 0, num_shards: int = 0):
"""
a method to check if the test plan is parallelism or not.
"""
parallelism = int(tests.get("parallelism", "0"))
is_parallel = parallelism and parallelism > 1
if not is_parallel:
return False
if shard_id > num_shards:
raise RuntimeError(
f"Test {title} expects {num_shards} shards, but invalid {shard_id} is provided"
)
if num_shards != parallelism:
raise RuntimeError(
f"Test {title} expects {parallelism} shards, but invalid {num_shards} is provided"
)
return True
def run_test_plan(
test_plan: str,
test_target: str,
tests_map: dict[str, Any],
shard_id: int = 0,
num_shards: int = 0,
):
"""
a method to run list of tests based on the test plan.
"""
logger.info("run %s tests.....", test_target)
if test_plan not in tests_map:
raise RuntimeError(
f"test {test_plan} not found, please add it to test plan pool"
)
tests = tests_map[test_plan]
pkgs = tests.get("package_install", [])
title = tests.get("title", "unknown test")
is_parallel = check_parallelism(tests, title, shard_id, num_shards)
if is_parallel:
title = title.replace("%N", f"{shard_id}/{num_shards}")
logger.info("Running tests: %s", title)
if pkgs:
logger.info("Installing packages: %s", pkgs)
pip_install_packages(packages=pkgs, prefer_uv=True)
with (
working_directory(tests.get("working_directory", "tests")),
temp_environ(tests.get("env_vars", {})),
):
failures = []
for step in tests["steps"]:
logger.info("Running step: %s", step)
if is_parallel:
step = replace_buildkite_placeholders(step, shard_id, num_shards)
logger.info("Running parallel step: %s", step)
code = run_command(cmd=step, check=False, use_shell=True)
if code != 0:
failures.append(step)
logger.info("Finish running step: %s", step)
if failures:
logger.error("Failed tests: %s", failures)
raise RuntimeError(f"{len(failures)} pytest runs failed: {failures}")
logger.info("Done. All tests passed")
def clone_vllm(dst: str = "vllm"):
_, commit = clone_external_repo(
target="vllm",
repo="https://github.com/vllm-project/vllm.git",
dst=dst,
update_submodules=True,
)
return commit
def replace_buildkite_placeholders(step: str, shard_id: int, num_shards: int) -> str:
mapping = {
"$$BUILDKITE_PARALLEL_JOB_COUNT": str(num_shards),
"$$BUILDKITE_PARALLEL_JOB": str(shard_id),
}
for k in sorted(mapping, key=len, reverse=True):
step = step.replace(k, mapping[k])
return step
def summarize_build_info(vllm_commit: str) -> bool:
torch_sha = os.getenv("GITHUB_SHA")
md = (
_TPL_VLLM_INFO.render(vllm_commit=vllm_commit, torch_sha=torch_sha).strip()
+ "\n"
)
return write_gh_step_summary(md)

View File

@ -0,0 +1,296 @@
import logging
import os
import textwrap
from dataclasses import dataclass
from pathlib import Path
from typing import Optional
from cli.lib.common.cli_helper import BaseRunner
from cli.lib.common.docker_helper import local_image_exists
from cli.lib.common.envs_helper import (
env_bool_field,
env_path_field,
env_str_field,
with_params_help,
)
from cli.lib.common.gh_summary import (
gh_summary_path,
summarize_content_from_file,
summarize_wheels,
)
from cli.lib.common.path_helper import (
copy,
ensure_dir_exists,
force_create_dir,
get_path,
is_path_exist,
)
from cli.lib.common.utils import run_command
from cli.lib.core.vllm.lib import clone_vllm, summarize_build_info
logger = logging.getLogger(__name__)
# Default path for docker build artifacts
_DEFAULT_RESULT_PATH = "./shared"
# Temp folder in vllm work place to cp torch whls in vllm work directory for docker build
_VLLM_TEMP_FOLDER = "tmp"
@dataclass
class VllmBuildParameters:
"""
Parameters defining the vllm external input configurations.
Combine with VllmDockerBuildArgs to define the vllm build environment
"""
# USE_TORCH_WHEEL: when true, use local Torch wheels; requires TORCH_WHEELS_PATH.
# Otherwise docker build pull torch nightly during build
# TORCH_WHEELS_PATH: directory containing local torch wheels when use_torch_whl is True
use_torch_whl: bool = env_bool_field("USE_TORCH_WHEEL", True)
torch_whls_path: Path = env_path_field("TORCH_WHEELS_PATH", "./dist")
# USE_LOCAL_BASE_IMAGE: when true, use an existing local Docker base image; requires BASE_IMAGE
# Otherwise, pull dockerfile's default image remotely
# BASE_IMAGE: name:tag (only needed when use_local_base_image is True)
use_local_base_image: bool = env_bool_field("USE_LOCAL_BASE_IMAGE", True)
base_image: str = env_str_field("BASE_IMAGE")
# USE_LOCAL_DOCKERFILE: when true("1"), use a local Dockerfile; requires DOCKERFILE_PATH.
# otherwise, use vllm's default dockerfile.torch_nightly for build
# DOCKERFILE_PATH: path to Dockerfile used when use_local_dockerfile is True"
use_local_dockerfile: bool = env_bool_field("USE_LOCAL_DOCKERFILE", True)
dockerfile_path: Path = env_path_field(
"DOCKERFILE_PATH", ".github/ci_configs/vllm/Dockerfile"
)
# the cleaning script to remove torch dependencies from pip
cleaning_script: Path = env_path_field(
"cleaning_script", ".github/ci_configs/vllm/use_existing_torch.py"
)
# OUTPUT_DIR: where docker buildx (local exporter) will write artifacts
output_dir: Path = env_path_field("OUTPUT_DIR", "external/vllm")
# --- Build args ----------------------------------------------------------
target_stage: str = env_str_field("TARGET_STAGE", "export-wheels")
tag_name: str = env_str_field("TAG", "vllm-wheels")
cuda_version: str = env_str_field("CUDA_VERSION", "12.8.1")
python_version: str = env_str_field("PYTHON_VERSION", "3.12")
max_jobs: str = env_str_field("MAX_JOBS", "64")
sccache_bucket: str = env_str_field("SCCACHE_BUCKET")
sccache_region: str = env_str_field("SCCACHE_REGION")
torch_cuda_arch_list: str = env_str_field("TORCH_CUDA_ARCH_LIST", "8.9")
def __post_init__(self):
checks = [
(
self.use_torch_whl, # flag
True, # trigger_value
"torch_whls_path", # resource
is_path_exist, # check_func
"TORCH_WHEELS_PATH is not provided, but USE_TORCH_WHEEL is set to 1",
),
(
self.use_local_base_image,
True,
"base_image",
local_image_exists,
f"BASE_IMAGE {self.base_image} does not found, but USE_LOCAL_BASE_IMAGE is set to 1",
),
(
self.use_local_dockerfile,
True,
"dockerfile_path",
is_path_exist,
" DOCKERFILE_PATH path does not found, but USE_LOCAL_DOCKERFILE is set to 1",
),
]
for flag, trigger_value, attr_name, check_func, error_msg in checks:
value = getattr(self, attr_name)
if flag == trigger_value:
if not value or not check_func(value):
raise ValueError(error_msg)
else:
logger.info("flag %s is not set", flag)
if not self.output_dir:
raise ValueError("missing required output_dir")
@with_params_help(VllmBuildParameters)
class VllmBuildRunner(BaseRunner):
"""
Build vLLM using docker buildx.
Environment variable options:
"USE_TORCH_WHEEL": "1: use local wheels; 0: pull nightly from pypi",
"TORCH_WHEELS_PATH": "Path to local wheels (when USE_TORCH_WHEEL=1)",
"USE_LOCAL_BASE_IMAGE": "1: use local base image; 0: default image",
"BASE_IMAGE": "name:tag to indicate base image the dockerfile depends on (when USE_LOCAL_BASE_IMAGE=1)",
"USE_LOCAL_DOCKERFILE": "1: use local Dockerfile; 0: vllm repo default dockerfile.torch_nightly",
"DOCKERFILE_PATH": "Path to Dockerfile (when USE_LOCAL_DOCKERFILE=1)",
"OUTPUT_DIR": "e.g. './shared'",
"TORCH_CUDA_ARCH_LIST": "e.g. '8.0' or '8.0;9.0'",
"CUDA_VERSION": "e.g. '12.8.1'",
"PYTHON_VERSION": "e.g. '3.12'",
"MAX_JOBS": "e.g. '64'",
"SCCACHE_BUCKET": "e.g. 'my-bucket'",
"SCCACHE_REGION": "e.g. 'us-west-2'",
"""
def __init__(self, args=None):
self.work_directory = "vllm"
def run(self):
"""
main function to run vllm build
1. prepare vllm build environment
2. prepare the docker build command args
3. run docker build
"""
inputs = VllmBuildParameters()
logger.info("Running vllm build with inputs: %s", inputs)
vllm_commit = clone_vllm()
self.cp_torch_cleaning_script(inputs)
self.cp_dockerfile_if_exist(inputs)
# cp torch wheels from root direct to vllm workspace if exist
self.cp_torch_whls_if_exist(inputs)
# make sure the output dir to store the build artifacts exist
ensure_dir_exists(Path(inputs.output_dir))
cmd = self._generate_docker_build_cmd(inputs)
logger.info("Running docker build: \n %s", cmd)
try:
run_command(cmd, cwd="vllm", env=os.environ.copy())
finally:
self.genearte_vllm_build_summary(vllm_commit, inputs)
def genearte_vllm_build_summary(
self, vllm_commit: str, inputs: VllmBuildParameters
):
if not gh_summary_path():
return logger.info("Skipping, not detect GH Summary env var....")
logger.info("Generate GH Summary ...")
# summarize vllm build info
summarize_build_info(vllm_commit)
# summarize vllm build artifacts
vllm_artifact_dir = inputs.output_dir / "wheels"
summarize_content_from_file(
vllm_artifact_dir,
"build_summary.txt",
title="Vllm build env pip package summary",
)
summarize_wheels(
inputs.torch_whls_path, max_depth=3, title="Torch Wheels Artifacts"
)
summarize_wheels(vllm_artifact_dir, max_depth=3, title="Vllm Wheels Artifacts")
def cp_torch_whls_if_exist(self, inputs: VllmBuildParameters) -> str:
if not inputs.use_torch_whl:
return ""
tmp_dir = f"./{self.work_directory}/{_VLLM_TEMP_FOLDER}"
tmp_path = Path(tmp_dir)
force_create_dir(tmp_path)
copy(inputs.torch_whls_path, tmp_dir)
return tmp_dir
def cp_torch_cleaning_script(self, inputs: VllmBuildParameters):
script = get_path(inputs.cleaning_script, resolve=True)
vllm_script = Path(f"./{self.work_directory}/use_existing_torch.py")
copy(script, vllm_script)
def cp_dockerfile_if_exist(self, inputs: VllmBuildParameters):
if not inputs.use_local_dockerfile:
logger.info("using vllm default dockerfile.torch_nightly for build")
return
dockerfile_path = get_path(inputs.dockerfile_path, resolve=True)
vllm_torch_dockerfile = Path(
f"./{self.work_directory}/docker/Dockerfile.nightly_torch"
)
copy(dockerfile_path, vllm_torch_dockerfile)
def get_result_path(self, path):
"""
Get the absolute path of the result path
"""
if not path:
path = _DEFAULT_RESULT_PATH
abs_path = get_path(path, resolve=True)
return abs_path
def _get_torch_wheel_path_arg(self, torch_whl_dir: Optional[Path]) -> str:
if not torch_whl_dir:
return ""
return f"--build-arg TORCH_WHEELS_PATH={_VLLM_TEMP_FOLDER}"
def _get_base_image_args(self, inputs: VllmBuildParameters) -> tuple[str, str, str]:
"""
Returns:
- base_image_arg: docker buildx arg string for base image
- final_base_image_arg: docker buildx arg string for vllm-base stage
- pull_flag: --pull=true or --pull=false depending on whether the image exists locally
"""
if not inputs.use_local_base_image:
return "", "", ""
base_image = inputs.base_image
# set both base image and final base image to the same local image
base_image_arg = f"--build-arg BUILD_BASE_IMAGE={base_image}"
final_base_image_arg = f"--build-arg FINAL_BASE_IMAGE={base_image}"
if local_image_exists(base_image):
pull_flag = "--pull=false"
return base_image_arg, final_base_image_arg, pull_flag
logger.info(
"[INFO] Local image not found:%s will try to pull from remote", {base_image}
)
return base_image_arg, final_base_image_arg, ""
def _generate_docker_build_cmd(
self,
inputs: VllmBuildParameters,
) -> str:
base_image_arg, final_base_image_arg, pull_flag = self._get_base_image_args(
inputs
)
torch_arg = self._get_torch_wheel_path_arg(inputs.torch_whls_path)
return textwrap.dedent(
f"""
docker buildx build \
--output type=local,dest={inputs.output_dir} \
-f docker/Dockerfile.nightly_torch \
{pull_flag} \
{torch_arg} \
{base_image_arg} \
{final_base_image_arg} \
--build-arg max_jobs={inputs.max_jobs} \
--build-arg CUDA_VERSION={inputs.cuda_version} \
--build-arg PYTHON_VERSION={inputs.python_version} \
--build-arg USE_SCCACHE={int(bool(inputs.sccache_bucket and inputs.sccache_region))} \
--build-arg SCCACHE_BUCKET_NAME={inputs.sccache_bucket} \
--build-arg SCCACHE_REGION_NAME={inputs.sccache_region} \
--build-arg torch_cuda_arch_list='{inputs.torch_cuda_arch_list}' \
--target {inputs.target_stage} \
-t {inputs.tag_name} \
--progress=plain .
"""
).strip()

View File

@ -0,0 +1,280 @@
import logging
import os
import re
import subprocess
import sys
from collections.abc import Iterable
from dataclasses import dataclass
from enum import Enum
from pathlib import Path
from typing import Any
from cli.lib.common.cli_helper import BaseRunner
from cli.lib.common.envs_helper import env_path_field, env_str_field, get_env
from cli.lib.common.path_helper import copy, get_path, remove_dir
from cli.lib.common.pip_helper import (
pip_install_first_match,
pip_install_packages,
pkg_exists,
run_python,
)
from cli.lib.common.utils import run_command, working_directory
from cli.lib.core.vllm.lib import clone_vllm, run_test_plan, sample_vllm_test_library
logger = logging.getLogger(__name__)
@dataclass
class VllmTestParameters:
"""
Parameters defining the vllm external test input
!!!DO NOT ADD SECRETS IN THIS CLASS!!!
you can put environment variable name in VllmTestParameters if it's not the same as the secret one
fetch secrests directly from env variables during runtime
"""
torch_whls_path: Path = env_path_field("WHEELS_PATH", "./dist")
vllm_whls_path: Path = env_path_field(
"VLLM_WHEELS_PATH", "./dist/external/vllm/wheels"
)
torch_cuda_arch_list: str = env_str_field("TORCH_CUDA_ARCH_LIST", "8.9")
cleaning_script: Path = env_path_field(
"cleaning_script", ".github/ci_configs/vllm/use_existing_torch.py"
)
def __post_init__(self):
if not self.torch_whls_path.exists():
raise ValueError("missing torch_whls_path")
if not self.vllm_whls_path.exists():
raise ValueError("missing vllm_whls_path")
class TestInpuType(Enum):
TEST_PLAN = "test_plan"
UNKNOWN = "unknown"
class VllmTestRunner(BaseRunner):
def __init__(self, args: Any):
self.work_directory = "vllm"
self.test_plan = ""
self.test_type = TestInpuType.UNKNOWN
self.shard_id = args.shard_id
self.num_shards = args.num_shards
if args.test_plan:
self.test_plan = args.test_plan
self.test_type = TestInpuType.TEST_PLAN
# Matches the structeur in the artifacts.zip from torcb build
self.TORCH_WHL_PATH_REGEX = "torch*.whl"
self.TORCH_WHL_EXTRA = "opt-einsum"
self.TORCH_ADDITIONAL_WHLS_REGEX = [
"vision/torchvision*.whl",
"audio/torchaudio*.whl",
]
# Match the structure of the artifacts.zip from vllm external build
self.VLLM_TEST_WHLS_REGEX = [
"xformers/*.whl",
"vllm/vllm*.whl",
"flashinfer-python/flashinfer*.whl",
]
def prepare(self):
"""
prepare test environment for vllm. This includes clone vllm repo, install all wheels, test dependencies and set env
"""
params = VllmTestParameters()
logger.info("Display VllmTestParameters %s", params)
self._set_envs(params)
clone_vllm(dst=self.work_directory)
self.cp_torch_cleaning_script(params)
with working_directory(self.work_directory):
remove_dir(Path("vllm"))
self._install_wheels(params)
self._install_dependencies()
# verify the torches are not overridden by test dependencies
check_versions()
def run(self):
"""
main function to run vllm test
"""
self.prepare()
try:
with working_directory(self.work_directory):
if self.test_type == TestInpuType.TEST_PLAN:
if self.num_shards > 1:
run_test_plan(
self.test_plan,
"vllm",
sample_vllm_test_library(),
self.shard_id,
self.num_shards,
)
else:
run_test_plan(
self.test_plan, "vllm", sample_vllm_test_library()
)
else:
raise ValueError(f"Unknown test type {self.test_type}")
finally:
# double check the torches are not overridden by other packages
check_versions()
def cp_torch_cleaning_script(self, params: VllmTestParameters):
script = get_path(params.cleaning_script, resolve=True)
vllm_script = Path(f"./{self.work_directory}/use_existing_torch.py")
copy(script, vllm_script)
def _install_wheels(self, params: VllmTestParameters):
logger.info("Running vllm test with inputs: %s", params)
if not pkg_exists("torch"):
# install torch from local whls if it's not installed yet.
torch_p = f"{str(params.torch_whls_path)}/{self.TORCH_WHL_PATH_REGEX}"
pip_install_first_match(torch_p, self.TORCH_WHL_EXTRA)
torch_whls_path = [
f"{str(params.torch_whls_path)}/{whl_path}"
for whl_path in self.TORCH_ADDITIONAL_WHLS_REGEX
]
for torch_whl in torch_whls_path:
pip_install_first_match(torch_whl)
logger.info("Done. Installed torch and other torch-related wheels ")
logger.info("Installing vllm wheels")
vllm_whls_path = [
f"{str(params.vllm_whls_path)}/{whl_path}"
for whl_path in self.VLLM_TEST_WHLS_REGEX
]
for vllm_whl in vllm_whls_path:
pip_install_first_match(vllm_whl)
logger.info("Done. Installed vllm wheels")
def _install_test_dependencies(self):
"""
This method replaces torch dependencies with local torch wheel info in
requirements/test.in file from vllm repo. then generates the test.txt
in runtime
"""
logger.info("generate test.txt from requirements/test.in with local torch whls")
preprocess_test_in()
copy("requirements/test.txt", "snapshot_constraint.txt")
run_command(
f"{sys.executable} -m uv pip compile requirements/test.in "
"-o test.txt "
"--index-strategy unsafe-best-match "
"--constraint snapshot_constraint.txt "
"--torch-backend cu128"
)
pip_install_packages(requirements="test.txt", prefer_uv=True)
logger.info("Done. installed requirements for test dependencies")
def _install_dependencies(self):
pip_install_packages(packages=["-e", "tests/vllm_test_utils"], prefer_uv=True)
pip_install_packages(packages=["hf_transfer"], prefer_uv=True)
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
# using script from vllm repo to remove all torch packages from requirements txt
run_python("use_existing_torch.py")
# install common packages
for requirements in ["requirements/common.txt", "requirements/build.txt"]:
pip_install_packages(
requirements=requirements,
prefer_uv=True,
)
# install test packages
self._install_test_dependencies()
def _set_envs(self, inputs: VllmTestParameters):
os.environ["TORCH_CUDA_ARCH_LIST"] = inputs.torch_cuda_arch_list
if not validate_cuda(get_env("TORCH_CUDA_ARCH_LIST")):
logger.warning(
"Missing supported TORCH_CUDA_ARCH_LIST. "
"Currently support TORCH_CUDA_ARCH_LIST env var "
"with supported arch [8.0, 8.9, 9.0]"
)
os.environ["HF_TOKEN"] = os.getenv("VLLM_TEST_HUGGING_FACE_TOKEN", "")
if not get_env("HF_TOKEN"):
raise ValueError(
"missing required HF_TOKEN, please set VLLM_TEST_HUGGING_FACE_TOKEN env var"
)
if not get_env("TORCH_CUDA_ARCH_LIST"):
raise ValueError(
"missing required TORCH_CUDA_ARCH_LIST, please set TORCH_CUDA_ARCH_LIST env var"
)
def preprocess_test_in(
target_file: str = "requirements/test.in", additional_packages: Iterable[str] = ()
):
"""
This modifies the target_file file in place in vllm work directory.
It removes torch and unwanted packages in target_file and replace with local torch whls
package with format "$WHEEL_PACKAGE_NAME @ file://<LOCAL_PATH>"
"""
additional_package_to_move = list(additional_packages or ())
pkgs_to_remove = [
"torch",
"torchvision",
"torchaudio",
"xformers",
"mamba_ssm",
] + additional_package_to_move
# Read current requirements
target_path = Path(target_file)
lines = target_path.read_text().splitlines()
pkgs_to_add = []
# Remove lines starting with the package names (==, @, >=) — case-insensitive
pattern = re.compile(rf"^({'|'.join(pkgs_to_remove)})\s*(==|@|>=)", re.IGNORECASE)
kept_lines = [line for line in lines if not pattern.match(line)]
# Get local installed torch/vision/audio from pip freeze
# This is hacky, but it works
pip_freeze = subprocess.check_output(["pip", "freeze"], text=True)
header_lines = [
line
for line in pip_freeze.splitlines()
if re.match(
r"^(torch|torchvision|torchaudio)\s*@\s*file://", line, re.IGNORECASE
)
]
# Write back: header_lines + blank + kept_lines
out_lines = header_lines + [""] + kept_lines
if pkgs_to_add:
out_lines += [""] + pkgs_to_add
out = "\n".join(out_lines) + "\n"
target_path.write_text(out)
logger.info("[INFO] Updated %s", target_file)
def validate_cuda(value: str) -> bool:
VALID_VALUES = {"8.0", "8.9", "9.0"}
return all(v in VALID_VALUES for v in value.split())
def check_versions():
"""
check installed packages version
"""
logger.info("Double check installed packages")
patterns = ["torch", "xformers", "torchvision", "torchaudio", "vllm"]
for pkg in patterns:
pkg_exists(pkg)
logger.info("Done. checked installed packages")

40
.ci/lumen_cli/cli/run.py Normal file
View File

@ -0,0 +1,40 @@
# main.py
import argparse
import logging
from cli.build_cli.register_build import register_build_commands
from cli.lib.common.logger import setup_logging
from cli.test_cli.register_test import register_test_commands
logger = logging.getLogger(__name__)
def main():
# Define top-level parser
parser = argparse.ArgumentParser(description="Lumos CLI")
subparsers = parser.add_subparsers(dest="command", required=True)
parser.add_argument(
"--log-level", default="INFO", help="Log level (DEBUG, INFO, WARNING, ERROR)"
)
# registers second-level subcommands
register_build_commands(subparsers)
register_test_commands(subparsers)
# parse args after all options are registered
args = parser.parse_args()
# setup global logging
setup_logging(getattr(logging, args.log_level.upper(), logging.INFO))
logger.debug("Parsed args: %s", args)
if hasattr(args, "func"):
args.func(args)
else:
parser.print_help()
if __name__ == "__main__":
main()

View File

@ -0,0 +1,62 @@
import argparse
import logging
from cli.lib.common.cli_helper import register_targets, RichHelp, TargetSpec
from cli.lib.core.vllm.vllm_test import VllmTestRunner
logger = logging.getLogger(__name__)
# Maps targets to their argparse configuration and runner
# it adds new target to path python -m cli.run build external {target} with buildrunner
_TARGETS: dict[str, TargetSpec] = {
"vllm": {
"runner": VllmTestRunner,
"help": "test vLLM with pytorch main",
}
# add yours ...
}
def common_args(parser: argparse.ArgumentParser) -> None:
"""
Add common CLI arguments to the given parser.
"""
parser.add_argument(
"--shard-id",
type=int,
default=1,
help="a shard id to run, e.g. '0,1,2,3'",
)
parser.add_argument(
"--num-shards",
type=int,
default=1,
help="a number of shards to run, e.g. '4'",
)
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(
"-tp",
"--test-plan",
type=str,
help="a pre-defined test plan to run, e.g. 'basic_correctness_test'",
)
def register_test_commands(subparsers: argparse._SubParsersAction) -> None:
build_parser = subparsers.add_parser(
"test",
help="test related commands",
formatter_class=RichHelp,
)
build_subparsers = build_parser.add_subparsers(dest="test_command", required=True)
overview = "\n".join(
f" {name:12} {spec.get('help', '')}" for name, spec in _TARGETS.items()
)
external_parser = build_subparsers.add_parser(
"external",
help="Test external targets",
description="Test third-party targets.\n\nAvailable targets:\n" + overview,
formatter_class=RichHelp,
)
register_targets(external_parser, _TARGETS, common_args=common_args)

View File

@ -0,0 +1,23 @@
[project]
name = "lumen-ci"
version = "0.1.0"
dependencies = [
"pyyaml==6.0.2",
"GitPython==3.1.45",
"docker==7.1.0",
"pytest==7.3.2",
"uv==0.9.6"
]
[tool.setuptools]
packages = ["cli"]
[tool.setuptools.package-dir]
cli = "cli"
[tool.ruff.lint]
# Enable preview mode for linting
preview = true
# Now you can select your preview rules, like RUF048
extend-select = ["RUF048"]

View File

@ -0,0 +1,47 @@
# tests/test_cli.py
import io
import sys
import unittest
from contextlib import redirect_stderr, redirect_stdout
from unittest.mock import patch
from cli.run import main
class TestArgparseCLI(unittest.TestCase):
@patch("cli.build_cli.register_build.VllmBuildRunner.run", return_value=None)
@patch("cli.build_cli.register_build.VllmBuildRunner.__init__", return_value=None)
def test_cli_run_build_external(self, mock_init, mock_run):
from cli.run import main # import after patches if needed
test_args = ["cli.run", "build", "external", "vllm"]
with patch.object(sys, "argv", test_args):
# argparse may call sys.exit on error; capture to avoid test aborts
try:
main()
except SystemExit:
pass
mock_init.assert_called_once() # got constructed
mock_run.assert_called_once_with() # run() called
def test_build_help(self):
test_args = ["cli.run", "build", "--help"]
with patch.object(sys, "argv", test_args):
stdout = io.StringIO()
stderr = io.StringIO()
# --help always raises SystemExit(0)
with self.assertRaises(SystemExit) as cm:
with redirect_stdout(stdout), redirect_stderr(stderr):
main()
self.assertEqual(cm.exception.code, 0)
output = stdout.getvalue()
self.assertIn("usage", output)
self.assertIn("external", output)
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,115 @@
import argparse
import io
import unittest
from contextlib import redirect_stderr
from unittest.mock import patch
from cli.lib.common.cli_helper import BaseRunner, register_targets, RichHelp, TargetSpec
# ---- Dummy runners for unittests----
class FooRunner(BaseRunner):
"""Foo description from docstring."""
def run(self) -> None: # replaced by mock
pass
class BarRunner(BaseRunner):
def run(self) -> None: # replaced by mock
pass
def add_foo_args(p: argparse.ArgumentParser) -> None:
p.add_argument("--x", type=int, required=True, help="x value")
def common_args(p: argparse.ArgumentParser) -> None:
p.add_argument("--verbose", action="store_true", help="verbose flag")
def build_parser(specs: dict[str, TargetSpec]) -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(prog="app", formatter_class=RichHelp)
register_targets(
parser=parser,
target_specs=specs,
common_args=common_args,
)
return parser
def get_subparser(
parser: argparse.ArgumentParser, name: str
) -> argparse.ArgumentParser:
subparsers_action = next(
a
for a in parser._subparsers._group_actions # type: ignore[attr-defined]
if isinstance(a, argparse._SubParsersAction)
)
return subparsers_action.choices[name]
class TestRegisterTargets(unittest.TestCase):
def test_metavar_lists_targets(self):
specs: dict[str, TargetSpec] = {
"foo": {"runner": FooRunner, "add_arguments": add_foo_args},
"bar": {"runner": BarRunner},
}
parser = build_parser(specs)
subparsers_action = next(
a
for a in parser._subparsers._group_actions # type: ignore[attr-defined]
if isinstance(a, argparse._SubParsersAction)
)
self.assertEqual(subparsers_action.metavar, "{foo,bar}")
def test_add_arguments_and_common_args_present(self):
specs: dict[str, TargetSpec] = {
"foo": {"runner": FooRunner, "add_arguments": add_foo_args},
}
parser = build_parser(specs)
foo = get_subparser(parser, "foo")
help_text = foo.format_help()
self.assertIn("--x", help_text)
self.assertIn("--verbose", help_text)
def test_runner_constructed_with_ns_and_run_called(self):
specs: dict[str, TargetSpec] = {
"foo": {"runner": FooRunner, "add_arguments": add_foo_args},
}
parser = build_parser(specs)
with (
patch.object(FooRunner, "__init__", return_value=None) as mock_init,
patch.object(FooRunner, "run", return_value=None) as mock_run,
):
ns = parser.parse_args(["foo", "--x", "3", "--verbose"])
ns.func(ns) # set by register_targets
# __init__ received the Namespace
self.assertEqual(mock_init.call_count, 1)
(called_ns,), _ = mock_init.call_args
self.assertIsInstance(called_ns, argparse.Namespace)
# run() called with no args
mock_run.assert_called_once_with()
def test_runner_docstring_used_as_description_when_missing(self):
specs: dict[str, TargetSpec] = {
"foo": {"runner": FooRunner, "add_arguments": add_foo_args},
}
parser = build_parser(specs)
foo = get_subparser(parser, "foo")
help_text = foo.format_help()
self.assertIn("Foo description from docstring.", help_text)
def test_missing_target_raises_systemexit_with_usage(self):
specs: dict[str, TargetSpec] = {"foo": {"runner": FooRunner}}
parser = build_parser(specs)
buf = io.StringIO()
with self.assertRaises(SystemExit), redirect_stderr(buf):
parser.parse_args([])
err = buf.getvalue()
self.assertIn("usage:", err)
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,75 @@
import unittest
from unittest import mock
from unittest.mock import MagicMock
import docker.errors as derr
from cli.lib.common.docker_helper import _get_client, local_image_exists
class TestDockerImageHelpers(unittest.TestCase):
def setUp(self):
# Reset the singleton in the target module
patcher = mock.patch("cli.lib.common.docker_helper._docker_client", None)
self.addCleanup(patcher.stop)
patcher.start()
def test_local_image_exists_true(self):
# Mock a docker client whose images.get returns an object (no exception)
mock_client = MagicMock()
mock_client.images.get.return_value = object()
ok = local_image_exists("repo:tag", client=mock_client)
self.assertTrue(ok)
def test_local_image_exists_not_found_false(self):
mock_client = MagicMock()
# Raise docker.errors.NotFound
mock_client.images.get.side_effect = derr.NotFound("nope")
ok = local_image_exists("missing:latest", client=mock_client)
self.assertFalse(ok)
def test_local_image_exists_api_error_false(self):
mock_client = MagicMock()
mock_client.images.get.side_effect = derr.APIError("boom", None)
ok = local_image_exists("broken:tag", client=mock_client)
self.assertFalse(ok)
def test_local_image_exists_uses_lazy_singleton(self):
# Patch docker.from_env used by _get_client()
with mock.patch(
"cli.lib.common.docker_helper.docker.from_env"
) as mock_from_env:
mock_docker_client = MagicMock()
mock_from_env.return_value = mock_docker_client
# First call should create and cache the client
c1 = _get_client()
self.assertIs(c1, mock_docker_client)
mock_from_env.assert_called_once()
# Second call should reuse cached client (no extra from_env calls)
c2 = _get_client()
self.assertIs(c2, mock_docker_client)
mock_from_env.assert_called_once() # still once
def test_local_image_exists_without_client_param_calls_get_client_once(self):
# Ensure _get_client is called and cached; local_image_exists should reuse it
with mock.patch("cli.lib.common.docker_helper._get_client") as mock_get_client:
mock_client = MagicMock()
mock_get_client.return_value = mock_client
# 1st call
local_image_exists("repo:tag")
# 2nd call
local_image_exists("repo:tag2")
# local_image_exists should call _get_client each time,
# but your _get_client itself caches docker.from_env.
self.assertEqual(mock_get_client.call_count, 2)
self.assertEqual(mock_client.images.get.call_count, 2)
mock_client.images.get.assert_any_call("repo:tag")
mock_client.images.get.assert_any_call("repo:tag2")
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,149 @@
import os
import unittest
from dataclasses import dataclass
from pathlib import Path
from unittest.mock import patch
import cli.lib.common.envs_helper as m
class TestEnvHelpers(unittest.TestCase):
def setUp(self):
# Keep a copy of the original environment to restore later
self._env_backup = dict(os.environ)
def tearDown(self):
# Restore environment to original state
os.environ.clear()
os.environ.update(self._env_backup)
# -------- get_env --------
def test_get_env_unset_returns_default(self):
with patch.dict(os.environ, {}, clear=True):
self.assertEqual(m.get_env("FOO", "default"), "default")
def test_get_env_empty_returns_default(self):
with patch.dict(os.environ, {"FOO": ""}, clear=True):
self.assertEqual(m.get_env("FOO", "default"), "default")
def test_get_env_set_returns_value(self):
with patch.dict(os.environ, {"FOO": "bar"}, clear=True):
self.assertEqual(m.get_env("FOO", "default"), "bar")
def test_get_env_not_exist_returns_default(self):
with patch.dict(os.environ, {"FOO": "bar"}, clear=True):
self.assertEqual(m.get_env("TEST_NOT_EXIST", "default"), "default")
def test_get_env_not_exist_without_default(self):
with patch.dict(os.environ, {"FOO": "bar"}, clear=True):
self.assertEqual(m.get_env("TEST_NOT_EXIST"), "")
# -------- env_bool --------
def test_env_bool_uses_default_when_unset(self):
with patch.dict(os.environ, {}, clear=True):
self.assertTrue(m.env_bool("FLAG", default=True))
self.assertFalse(m.env_bool("FLAG", default=False))
def test_env_bool_uses_str2bool_when_set(self):
# Patch str2bool used by env_bool so we don't depend on its exact behavior
def fake_str2bool(s: str) -> bool:
return s.lower() in {"1", "true", "yes", "on", "y"}
with (
patch.dict(os.environ, {"FLAG": "yEs"}, clear=True),
patch.object(m, "str2bool", fake_str2bool),
):
self.assertTrue(m.env_bool("FLAG", default=False))
# -------- env_path_optional / env_path --------
def test_env_path_optional_unset_returns_none_by_default(self):
with patch.dict(os.environ, {}, clear=True):
self.assertIsNone(m.env_path_optional("P"))
def test_env_path_optional_unset_returns_none_when_env_var_is_empty(self):
with patch.dict(os.environ, {"P": ""}, clear=True):
self.assertIsNone(m.env_path_optional("P"))
def test_env_path_optional_unset_returns_default_str(self):
# default as string; resolve=True by default -> absolute path
default_str = "x/y"
with patch.dict(os.environ, {}, clear=True):
p = m.env_path_optional("P", default=default_str)
self.assertIsInstance(p, Path)
self.assertIsNotNone(p)
if p:
self.assertTrue(p.is_absolute())
self.assertEqual(p.parts[-2:], ("x", "y"))
def test_env_path_optional_unset_returns_default_path_no_resolve(self):
d = Path("z")
with patch.dict(os.environ, {}, clear=True):
p = m.env_path_optional("P", default=d, resolve=False)
self.assertEqual(p, d)
def test_env_path_optional_respects_resolve_true(self):
with patch.dict(os.environ, {"P": "a/b"}, clear=True):
p = m.env_path_optional("P", resolve=True)
self.assertIsInstance(p, Path)
if p:
self.assertTrue(p.is_absolute())
def test_env_path_optional_respects_resolve_false(self):
with patch.dict(os.environ, {"P": "rel/dir"}, clear=True):
p = m.env_path_optional("P", resolve=False)
self.assertEqual(p, Path("rel/dir"))
if p:
self.assertFalse(p.is_absolute())
def test_env_path_raises_when_missing_and_default_none(self):
with patch.dict(os.environ, {}, clear=True):
with self.assertRaises(ValueError):
m.env_path("P", None, resolve=True)
def test_env_path_returns_path_when_present(self):
tmp = Path("./b").resolve()
with patch.dict(os.environ, {"P": str(tmp)}, clear=True):
p = m.env_path("P", None, resolve=True)
self.assertEqual(p, tmp)
# -------- dataclass field helpers --------
def test_dataclass_fields_read_env_at_instantiation(self):
@dataclass
class Cfg:
flag: bool = m.env_bool_field("FLAG", default=False)
out: Path = m.env_path_field("OUT", default="ab", resolve=True)
name: str = m.env_str_field("NAME", default="anon")
# First instantiation
with patch.dict(
os.environ, {"FLAG": "true", "OUT": "outdir", "NAME": "alice"}, clear=True
):
cfg1 = Cfg()
self.assertTrue(cfg1.flag)
self.assertIsInstance(cfg1.out, Path)
self.assertTrue(cfg1.out.is_absolute())
self.assertEqual(cfg1.name, "alice")
cfg1.name = "bob" # change instance value
self.assertEqual(cfg1.name, "bob") # change is reflected
# Change env; new instance should reflect new values
with patch.dict(os.environ, {"FLAG": "false", "NAME": ""}, clear=True):
cfg2 = Cfg()
self.assertFalse(cfg2.flag) # str2bool("false") -> False
self.assertTrue("ab" in str(cfg2.out))
self.assertIsInstance(cfg2.out, Path)
self.assertTrue(cfg2.out.is_absolute())
self.assertEqual(cfg2.name, "anon") # empty -> fallback to default
def test_dataclass_path_field_with_default_value(self):
@dataclass
class C2:
out: Path = m.env_path_field("OUT", default="some/dir", resolve=False)
with patch.dict(os.environ, {}, clear=True):
c = C2()
self.assertEqual(c.out, Path("some/dir"))
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,122 @@
# test_path_utils.py
# Run: pytest -q
import os
import unittest
from pathlib import Path
from tempfile import TemporaryDirectory
from cli.lib.common.path_helper import (
copy,
ensure_dir_exists,
force_create_dir,
get_path,
is_path_exist,
remove_dir,
)
class TestPathHelper(unittest.TestCase):
def setUp(self):
self.tmpdir = TemporaryDirectory()
self.tmp_path = Path(self.tmpdir.name)
def tearDown(self):
self.tmpdir.cleanup()
# -------- get_path --------
def test_get_path_returns_path_for_str(self):
# Use relative path to avoid absolute-ness
rel_str = "sub/f.txt"
os.chdir(self.tmp_path)
p = get_path(rel_str, resolve=False)
self.assertIsInstance(p, Path)
self.assertFalse(p.is_absolute())
self.assertEqual(str(p), rel_str)
def test_get_path_resolves(self):
rel_str = "sub/f.txt"
p = get_path(str(self.tmp_path / rel_str), resolve=True)
self.assertTrue(p.is_absolute())
self.assertTrue(str(p).endswith(rel_str))
def test_get_path_with_path_input(self):
p_in = self.tmp_path / "sub/f.txt"
p_out = get_path(p_in, resolve=False)
self.assertTrue(str(p_out) == str(p_in))
def test_get_path_with_none_raises(self):
with self.assertRaises(ValueError):
get_path(None) # type: ignore[arg-type]
def test_get_path_invalid_type_raises(self):
with self.assertRaises(TypeError):
get_path(123) # type: ignore[arg-type]
# -------- ensure_dir_exists / force_create_dir / remove_dir --------
def test_ensure_dir_exists_creates_and_is_idempotent(self):
d = self.tmp_path / "made"
ensure_dir_exists(d)
self.assertTrue(d.exists() and d.is_dir())
ensure_dir_exists(d)
def test_force_create_dir_clears_existing(self):
d = self.tmp_path / "fresh"
(d / "inner").mkdir(parents=True)
(d / "inner" / "f.txt").write_text("x")
force_create_dir(d)
self.assertTrue(d.exists())
self.assertEqual(list(d.iterdir()), [])
def test_remove_dir_none_is_noop(self):
remove_dir(None) # type: ignore[arg-type]
def test_remove_dir_nonexistent_is_noop(self):
ghost = self.tmp_path / "ghost"
remove_dir(ghost)
def test_remove_dir_accepts_str(self):
d = self.tmp_path / "to_rm"
d.mkdir()
remove_dir(str(d))
self.assertFalse(d.exists())
# -------- copy --------
def test_copy_file_to_file(self):
src = self.tmp_path / "src.txt"
dst = self.tmp_path / "out" / "dst.txt"
src.write_text("hello")
copy(src, dst)
self.assertEqual(dst.read_text(), "hello")
def test_copy_dir_to_new_dir(self):
src = self.tmp_path / "srcdir"
(src / "a").mkdir(parents=True)
(src / "a" / "f.txt").write_text("content")
dst = self.tmp_path / "destdir"
copy(src, dst)
self.assertEqual((dst / "a" / "f.txt").read_text(), "content")
def test_copy_dir_into_existing_dir_overwrite_true_merges(self):
src = self.tmp_path / "srcdir"
dst = self.tmp_path / "destdir"
(src / "x").mkdir(parents=True)
(src / "x" / "new.txt").write_text("new")
dst.mkdir()
(dst / "existing.txt").write_text("old")
copy(src, dst)
self.assertEqual((dst / "existing.txt").read_text(), "old")
self.assertEqual((dst / "x" / "new.txt").read_text(), "new")
def test_is_str_path_exist(self):
p = self.tmp_path / "x.txt"
p.write_text("1")
self.assertTrue(is_path_exist(str(p)))
self.assertTrue(is_path_exist(p))
self.assertFalse(is_path_exist(str(self.tmp_path / "missing")))
self.assertFalse(is_path_exist(self.tmp_path / "missing"))
self.assertFalse(is_path_exist(""))
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,185 @@
# tests/test_run_test_plan.py
import importlib
from contextlib import nullcontext
from types import SimpleNamespace
from unittest.mock import MagicMock
import pytest
MOD = "cli.lib.core.vllm.lib"
# We import inside tests so the MOD override above applies everywhere
run_test_plan_import_path = f"{MOD}.run_test_plan"
def _get_cmd(c):
# Support both kwargs and positional args
return c.kwargs.get("cmd", c.args[0] if c.args else None)
def _get_check(c):
if "check" in c.kwargs:
return c.kwargs["check"]
# If positional, assume second arg is 'check' when present; default False
return c.args[1] if len(c.args) > 1 else False
@pytest.fixture
def patch_module(monkeypatch):
"""
Patch helpers ('pip_install_packages', 'temp_environ', 'working_directory',
'run_command', 'logger') inside the target module and expose them.
"""
module = importlib.import_module(MOD)
# Create fakes/mocks
pip_install_packages = MagicMock(name="pip_install_packages")
run_command = MagicMock(name="run_command", return_value=0)
# temp_environ / working_directory: record calls but act as context managers
temp_calls: list[dict] = []
workdir_calls: list[str] = []
def fake_working_directory(path: str):
workdir_calls.append(path)
return nullcontext()
def fake_temp_env(map: dict[str, str]):
temp_calls.append(map)
return nullcontext()
logger = SimpleNamespace(
info=MagicMock(name="logger.info"),
error=MagicMock(name="logger.error"),
)
# Apply patches (raise if attribute doesn't exist)
monkeypatch.setattr(
module, "pip_install_packages", pip_install_packages, raising=True
)
monkeypatch.setattr(module, "run_command", run_command, raising=True)
monkeypatch.setattr(
module, "working_directory", fake_working_directory, raising=True
)
monkeypatch.setattr(module, "temp_environ", fake_temp_env, raising=True)
monkeypatch.setattr(module, "logger", logger, raising=True)
return SimpleNamespace(
module=module,
run_test_plan=module.run_test_plan, # expose to avoid getattr("constant") (Ruff B009)
pip_install_packages=pip_install_packages,
run_command=run_command,
temp_calls=temp_calls,
workdir_calls=workdir_calls,
logger=logger,
)
def test_success_runs_all_steps_and_uses_env_and_workdir(monkeypatch, patch_module):
run_test_plan = patch_module.run_test_plan
tests_map = {
"basic": {
"title": "Basic suite",
"package_install": [],
"working_directory": "tests",
"env_vars": {"GLOBAL_FLAG": "1"},
"steps": [
"export A=x && pytest -q",
"export B=y && pytest -q tests/unit",
],
}
}
# One exit code per step (export + two pytest)
patch_module.run_command.side_effect = [0, 0, 0]
run_test_plan("basic", "cpu", tests_map)
calls = patch_module.run_command.call_args_list
cmds = [_get_cmd(c) for c in calls]
checks = [_get_check(c) for c in calls]
assert cmds == [
"export A=x && pytest -q",
"export B=y && pytest -q tests/unit",
]
assert all(chk is False for chk in checks)
assert patch_module.workdir_calls == ["tests"]
assert patch_module.temp_calls == [{"GLOBAL_FLAG": "1"}]
def test_installs_packages_when_present(monkeypatch, patch_module):
run_test_plan = patch_module.module.run_test_plan
tests_map = {
"with_pkgs": {
"title": "Needs deps",
"package_install": ["timm==1.0.0", "flash-attn"],
"steps": ["pytest -q"],
}
}
patch_module.run_command.return_value = 0
run_test_plan("with_pkgs", "gpu", tests_map)
patch_module.pip_install_packages.assert_called_once_with(
packages=["timm==1.0.0", "flash-attn"],
prefer_uv=True,
)
def test_raises_on_missing_plan(patch_module):
run_test_plan = patch_module.module.run_test_plan
with pytest.raises(RuntimeError) as ei:
run_test_plan("nope", "cpu", tests_map={})
assert "test nope not found" in str(ei.value)
def test_aggregates_failures_and_raises(monkeypatch, patch_module):
run_test_plan = patch_module.module.run_test_plan
tests_map = {
"mix": {
"title": "Some pass some fail",
"steps": [
"pytest test_a.py", # 0 → pass
"pytest test_b.py", # 1 → fail
"pytest test_c.py", # 2 → fail
],
}
}
# Simulate pass, fail, fail
patch_module.run_command.side_effect = [0, 1, 2]
with pytest.raises(RuntimeError) as ei:
run_test_plan("mix", "cpu", tests_map)
msg = str(ei.value)
assert "2 pytest runs failed" in msg
# Ensure logger captured failed tests list
patch_module.logger.error.assert_called_once()
# And we attempted all three commands
assert patch_module.run_command.call_count == 3
def test_custom_working_directory_used(patch_module):
run_test_plan = patch_module.module.run_test_plan
tests_map = {
"customwd": {
"title": "Custom wd",
"working_directory": "examples/ci",
"steps": ["pytest -q"],
}
}
patch_module.run_command.return_value = 0
run_test_plan("customwd", "cpu", tests_map)
assert patch_module.workdir_calls == ["examples/ci"]

View File

@ -0,0 +1,143 @@
import os
import tempfile
import unittest
from pathlib import Path
from cli.lib.common.utils import temp_environ, working_directory # <-- replace import
class EnvIsolatedTestCase(unittest.TestCase):
"""Base class that snapshots os.environ and CWD for isolation."""
def setUp(self):
import os
import tempfile
self._env_backup = dict(os.environ)
# Snapshot/repair CWD if it's gone
try:
self._cwd_backup = os.getcwd()
except FileNotFoundError:
# If CWD no longer exists, switch to a safe place and record that
self._cwd_backup = tempfile.gettempdir()
os.chdir(self._cwd_backup)
# Create a temporary directory for the test to run in
self._temp_dir = tempfile.mkdtemp()
os.chdir(self._temp_dir)
def tearDown(self):
import os
import shutil
import tempfile
# Restore cwd first (before cleaning up temp dir)
try:
os.chdir(self._cwd_backup)
except OSError:
os.chdir(tempfile.gettempdir())
# Clean up temporary directory
try:
shutil.rmtree(self._temp_dir, ignore_errors=True)
except Exception:
pass # Ignore cleanup errors
# Restore env
to_del = set(os.environ.keys()) - set(self._env_backup.keys())
for k in to_del:
os.environ.pop(k, None)
for k, v in self._env_backup.items():
os.environ[k] = v
class TestTempEnviron(EnvIsolatedTestCase):
def test_sets_and_restores_new_var(self):
var = "TEST_TMP_ENV_NEW"
self.assertNotIn(var, os.environ)
with temp_environ({var: "123"}):
self.assertEqual(os.environ[var], "123")
self.assertNotIn(var, os.environ) # removed after exit
def test_overwrites_and_restores_existing_var(self):
var = "TEST_TMP_ENV_OVERWRITE"
os.environ[var] = "orig"
with temp_environ({var: "override"}):
self.assertEqual(os.environ[var], "override")
self.assertEqual(os.environ[var], "orig") # restored
def test_multiple_vars_and_missing_cleanup(self):
v1, v2 = "TEST_ENV_V1", "TEST_ENV_V2"
os.environ.pop(v1, None)
os.environ[v2] = "keep"
with temp_environ({v1: "a", v2: "b"}):
self.assertEqual(os.environ[v1], "a")
self.assertEqual(os.environ[v2], "b")
self.assertNotIn(v1, os.environ) # newly-added -> removed
self.assertEqual(os.environ[v2], "keep") # pre-existing -> restored
def test_restores_even_on_exception(self):
var = "TEST_TMP_ENV_EXCEPTION"
self.assertNotIn(var, os.environ)
with self.assertRaises(RuntimeError):
with temp_environ({var: "x"}):
self.assertEqual(os.environ[var], "x")
raise RuntimeError("boom")
self.assertNotIn(var, os.environ) # removed after exception
class TestWorkingDirectory(EnvIsolatedTestCase):
def test_changes_and_restores(self):
start = Path.cwd()
with tempfile.TemporaryDirectory() as td:
target = Path(td) / "wd"
target.mkdir()
with working_directory(str(target)):
self.assertEqual(Path.cwd().resolve(), target.resolve())
self.assertEqual(Path.cwd(), start)
def test_noop_when_empty_path(self):
start = Path.cwd()
with working_directory(""):
self.assertEqual(Path.cwd(), start)
self.assertEqual(Path.cwd(), start)
def test_restores_on_exception(self):
start = Path.cwd()
with tempfile.TemporaryDirectory() as td:
target = Path(td) / "wd_exc"
target.mkdir()
with self.assertRaises(ValueError):
with working_directory(str(target)):
# Normalize both sides to handle /var -> /private/var
self.assertEqual(Path.cwd().resolve(), target.resolve())
raise ValueError("boom")
self.assertEqual(Path.cwd().resolve(), start.resolve())
def test_raises_for_missing_dir(self):
start = Path.cwd()
with tempfile.TemporaryDirectory() as td:
missing = Path(td) / "does_not_exist"
with self.assertRaises(FileNotFoundError):
# os.chdir should raise before yielding
with working_directory(str(missing)):
pass
self.assertEqual(Path.cwd(), start)
if __name__ == "__main__":
unittest.main(verbosity=2)

View File

@ -0,0 +1,176 @@
import os
import tempfile
import unittest
from pathlib import Path
from unittest.mock import MagicMock, patch
import cli.lib.core.vllm.vllm_build as vllm_build
_VLLM_BUILD_MODULE = "cli.lib.core.vllm.vllm_build"
class TestVllmBuildParameters(unittest.TestCase):
@patch(f"{_VLLM_BUILD_MODULE}.local_image_exists", return_value=True)
@patch(f"{_VLLM_BUILD_MODULE}.is_path_exist", return_value=True)
@patch(
"cli.lib.common.envs_helper.env_path_optional",
side_effect=lambda name, default=None, resolve=True: {
"DOCKERFILE_PATH": Path("/abs/vllm/Dockerfile"),
"TORCH_WHEELS_PATH": Path("/abs/dist"),
"OUTPUT_DIR": Path("/abs/shared"),
}.get(name, Path(default) if default is not None else None),
)
@patch.dict(
os.environ,
{
"USE_TORCH_WHEEL": "1",
"USE_LOCAL_BASE_IMAGE": "1",
"USE_LOCAL_DOCKERFILE": "1",
"BASE_IMAGE": "my/image:tag",
"DOCKERFILE_PATH": "vllm/Dockerfile",
"TORCH_WHEELS_PATH": "dist",
"OUTPUT_DIR": "shared",
},
clear=True,
)
def test_params_success_normalizes_and_validates(
self, mock_env_path, mock_is_path, mock_local_img
):
params = vllm_build.VllmBuildParameters()
self.assertEqual(params.torch_whls_path, Path("/abs/dist"))
self.assertEqual(params.dockerfile_path, Path("/abs/vllm/Dockerfile"))
self.assertEqual(params.output_dir, Path("/abs/shared"))
self.assertEqual(params.base_image, "my/image:tag")
@patch(f"{_VLLM_BUILD_MODULE}.is_path_exist", return_value=False)
@patch.dict(
os.environ, {"USE_TORCH_WHEEL": "1", "TORCH_WHEELS_PATH": "dist"}, clear=True
)
def test_params_missing_torch_whls_raises(self, _is_path):
with tempfile.TemporaryDirectory() as td:
os.chdir(td)
with self.assertRaises(ValueError) as cm:
vllm_build.VllmBuildParameters(
use_local_base_image=False,
use_local_dockerfile=False,
)
err = cm.exception
self.assertIn("TORCH_WHEELS_PATH", str(err))
@patch(f"{_VLLM_BUILD_MODULE}.local_image_exists", return_value=False)
@patch.dict(
os.environ, {"USE_LOCAL_BASE_IMAGE": "1", "BASE_IMAGE": "img:tag"}, clear=True
)
def test_params_missing_local_base_image_raises(self, _local_img):
with tempfile.TemporaryDirectory() as td:
os.chdir(td)
with self.assertRaises(ValueError) as cm:
vllm_build.VllmBuildParameters(
use_torch_whl=False,
use_local_dockerfile=False,
)
err = cm.exception
self.assertIn("BASE_IMAGE", str(err))
@patch(f"{_VLLM_BUILD_MODULE}.is_path_exist", return_value=False)
@patch.dict(
os.environ,
{"USE_LOCAL_DOCKERFILE": "1", "DOCKERFILE_PATH": "Dockerfile"},
clear=True,
)
def test_params_missing_dockerfile_raises(self, _is_path):
with tempfile.TemporaryDirectory() as td:
os.chdir(td)
with self.assertRaises(ValueError) as cm:
vllm_build.VllmBuildParameters(
use_torch_whl=False,
use_local_base_image=False,
)
err = cm.exception
self.assertIn("DOCKERFILE_PATH", str(err))
@patch(f"{_VLLM_BUILD_MODULE}.is_path_exist", return_value=False)
@patch.dict(
os.environ,
{"OUTPUT_DIR": ""},
clear=True,
)
def test_params_missing_output_dir(self, _is_path):
with self.assertRaises(FileNotFoundError):
vllm_build.VllmBuildParameters()
class TestBuildCmdAndRun(unittest.TestCase):
@patch(f"{_VLLM_BUILD_MODULE}.local_image_exists", return_value=True)
def test_generate_docker_build_cmd_includes_bits(self, _exists):
runner = vllm_build.VllmBuildRunner()
inputs = MagicMock()
inputs.output_dir = Path("/abs/out")
inputs.use_local_base_image = True
inputs.base_image = "img:tag"
inputs.torch_whls_path = Path("./vllm/tmp")
inputs.max_jobs = 64
inputs.cuda_version = "12.8.1"
inputs.python_version = "3.12"
inputs.sccache_bucket = "my-bucket"
inputs.sccache_region = "us-west-2"
inputs.torch_cuda_arch_list = "8.0;9.0"
inputs.target_stage = "export-wheels"
inputs.tag_name = "vllm-wheels"
cmd = runner._generate_docker_build_cmd(inputs)
squashed = " ".join(cmd.split())
self.assertIn("--output type=local,dest=/abs/out", squashed)
self.assertIn("-f docker/Dockerfile.nightly_torch", squashed)
self.assertIn("--pull=false", squashed)
self.assertIn("--build-arg TORCH_WHEELS_PATH=tmp", squashed)
self.assertIn("--build-arg BUILD_BASE_IMAGE=img:tag", squashed)
self.assertIn("--build-arg FINAL_BASE_IMAGE=img:tag", squashed)
self.assertIn("--build-arg max_jobs=64", squashed)
self.assertIn("--build-arg CUDA_VERSION=12.8.1", squashed)
self.assertIn("--build-arg PYTHON_VERSION=3.12", squashed)
self.assertIn("--build-arg USE_SCCACHE=1", squashed)
self.assertIn("--build-arg SCCACHE_BUCKET_NAME=my-bucket", squashed)
self.assertIn("--build-arg SCCACHE_REGION_NAME=us-west-2", squashed)
self.assertIn("--build-arg torch_cuda_arch_list='8.0;9.0'", squashed)
self.assertIn("--target export-wheels", squashed)
self.assertIn("-t vllm-wheels", squashed)
@patch(f"{_VLLM_BUILD_MODULE}.run_command")
@patch(f"{_VLLM_BUILD_MODULE}.ensure_dir_exists")
@patch(f"{_VLLM_BUILD_MODULE}.clone_vllm")
@patch.object(
vllm_build.VllmBuildRunner,
"_generate_docker_build_cmd",
return_value="docker buildx ...",
)
@patch.dict(
os.environ,
{
"USE_TORCH_WHEEL": "0",
"USE_LOCAL_BASE_IMAGE": "0",
"USE_LOCAL_DOCKERFILE": "0",
"OUTPUT_DIR": "shared",
},
clear=True,
)
def test_run_calls_clone_prepare_and_build(
self, mock_gen, mock_clone, mock_ensure, mock_run
):
params = MagicMock()
params.output_dir = Path("shared")
params.use_local_dockerfile = False
params.use_torch_whl = False
with patch(f"{_VLLM_BUILD_MODULE}.VllmBuildParameters", return_value=params):
runner = vllm_build.VllmBuildRunner()
runner.run()
mock_clone.assert_called_once()
mock_ensure.assert_called_once_with(Path("shared"))
mock_gen.assert_called_once_with(params)
mock_run.assert_called_once()
_, kwargs = mock_run.call_args
assert kwargs.get("cwd") == "vllm"

View File

@ -1,11 +1,11 @@
SHELL=/usr/bin/env bash
DOCKER_CMD ?= docker
DESIRED_ROCM ?= 6.4
DESIRED_ROCM ?= 7.1
DESIRED_ROCM_SHORT = $(subst .,,$(DESIRED_ROCM))
PACKAGE_NAME = magma-rocm
# inherit this from underlying docker image, do not pass this env var to docker
#PYTORCH_ROCM_ARCH ?= gfx900;gfx906;gfx908;gfx90a;gfx942;gfx1030;gfx1100;gfx1101;gfx1102;gfx1200;gfx1201
#PYTORCH_ROCM_ARCH ?= gfx900;gfx906;gfx908;gfx90a;gfx942;gfx950;gfx1030;gfx1100;gfx1101;gfx1102;gfx1150;gfx1151;gfx1200;gfx1201
DOCKER_RUN = set -eou pipefail; ${DOCKER_CMD} run --rm -i \
-v $(shell git rev-parse --show-toplevel)/.ci:/builder \
@ -16,20 +16,26 @@ DOCKER_RUN = set -eou pipefail; ${DOCKER_CMD} run --rm -i \
magma-rocm/build_magma.sh
.PHONY: all
all: magma-rocm71
all: magma-rocm70
all: magma-rocm64
all: magma-rocm63
.PHONY:
clean:
$(RM) -r magma-*
$(RM) -r output
.PHONY: magma-rocm71
magma-rocm71: DESIRED_ROCM := 7.1
magma-rocm71:
$(DOCKER_RUN)
.PHONY: magma-rocm70
magma-rocm70: DESIRED_ROCM := 7.0
magma-rocm70:
$(DOCKER_RUN)
.PHONY: magma-rocm64
magma-rocm64: DESIRED_ROCM := 6.4
magma-rocm64:
$(DOCKER_RUN)
.PHONY: magma-rocm63
magma-rocm63: DESIRED_ROCM := 6.3
magma-rocm63:
$(DOCKER_RUN)

View File

@ -6,8 +6,8 @@ set -eou pipefail
# The script expects DESIRED_CUDA and PACKAGE_NAME to be set
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
# Version 2.7.2 + ROCm related updates
MAGMA_VERSION=a1625ff4d9bc362906bd01f805dbbe12612953f6
# post merge of https://github.com/icl-utk-edu/magma/pull/65
MAGMA_VERSION=c0792ae825fb36872784892ea643dd6f3456bc5f
# Folders for the build
PACKAGE_FILES=${ROOT_DIR}/magma-rocm/package_files # metadata
@ -20,7 +20,7 @@ mkdir -p ${PACKAGE_DIR} ${PACKAGE_OUTPUT}/linux-64 ${PACKAGE_BUILD} ${PACKAGE_RE
# Fetch magma sources and verify checksum
pushd ${PACKAGE_DIR}
git clone https://bitbucket.org/icl/magma.git
git clone https://github.com/icl-utk-edu/magma
pushd magma
git checkout ${MAGMA_VERSION}
popd

View File

@ -16,6 +16,7 @@ DOCKER_RUN = set -eou pipefail; ${DOCKER_CMD} run --rm -i \
magma/build_magma.sh
.PHONY: all
all: magma-cuda130
all: magma-cuda129
all: magma-cuda128
all: magma-cuda126
@ -25,6 +26,12 @@ clean:
$(RM) -r magma-*
$(RM) -r output
.PHONY: magma-cuda130
magma-cuda130: DESIRED_CUDA := 13.0
magma-cuda130: CUDA_ARCH_LIST := -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_100,code=sm_100 -gencode arch=compute_120,code=sm_120
magma-cuda130:
$(DOCKER_RUN)
.PHONY: magma-cuda129
magma-cuda129: DESIRED_CUDA := 12.9
magma-cuda129: CUDA_ARCH_LIST += -gencode arch=compute_100,code=sm_100 -gencode arch=compute_120,code=sm_120

View File

@ -28,6 +28,7 @@ pushd ${PACKAGE_DIR}/magma-${MAGMA_VERSION}
patch < ${PACKAGE_FILES}/CMake.patch
patch < ${PACKAGE_FILES}/cmakelists.patch
patch -p0 < ${PACKAGE_FILES}/thread_queue.patch
patch -p1 < ${PACKAGE_FILES}/cuda13.patch
patch -p1 < ${PACKAGE_FILES}/getrf_shfl.patch
patch -p1 < ${PACKAGE_FILES}/getrf_nbparam.patch
# The build.sh script expects to be executed from the sources root folder
@ -37,6 +38,7 @@ popd
# Package recipe, license and tarball
# Folder and package name are backward compatible for the build workflow
cp ${PACKAGE_FILES}/build.sh ${PACKAGE_RECIPE}/build.sh
cp ${PACKAGE_FILES}/cuda13.patch ${PACKAGE_RECIPE}/cuda13.patch
cp ${PACKAGE_FILES}/thread_queue.patch ${PACKAGE_RECIPE}/thread_queue.patch
cp ${PACKAGE_FILES}/cmakelists.patch ${PACKAGE_RECIPE}/cmakelists.patch
cp ${PACKAGE_FILES}/getrf_shfl.patch ${PACKAGE_RECIPE}/getrf_shfl.patch

View File

@ -0,0 +1,26 @@
diff --git a/interface_cuda/interface.cpp b/interface_cuda/interface.cpp
index 73fed1b20..e77519bfe 100644
--- a/interface_cuda/interface.cpp
+++ b/interface_cuda/interface.cpp
@@ -438,14 +438,20 @@ magma_print_environment()
cudaDeviceProp prop;
err = cudaGetDeviceProperties( &prop, dev );
check_error( err );
+ #ifdef MAGMA_HAVE_CUDA
+#if CUDA_VERSION < 13000
printf( "%% device %d: %s, %.1f MHz clock, %.1f MiB memory, capability %d.%d\n",
dev,
prop.name,
prop.clockRate / 1000.,
+#else
+ printf( "%% device %d: %s, ??? MHz clock, %.1f MiB memory, capability %d.%d\n",
+ dev,
+ prop.name,
+#endif
prop.totalGlobalMem / (1024.*1024.),
prop.major,
prop.minor );
- #ifdef MAGMA_HAVE_CUDA
int arch = prop.major*100 + prop.minor*10;
if ( arch < MAGMA_CUDA_ARCH_MIN ) {
printf("\n"

View File

@ -5,10 +5,6 @@ set -ex
SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
case "${GPU_ARCH_TYPE:-BLANK}" in
BLANK)
# Legacy behavior for CircleCI
bash "${SCRIPTPATH}/build_cuda.sh"
;;
cuda)
bash "${SCRIPTPATH}/build_cuda.sh"
;;

View File

@ -138,28 +138,11 @@ fi
echo "Calling setup.py bdist at $(date)"
if [[ "$USE_SPLIT_BUILD" == "true" ]]; then
echo "Calling setup.py bdist_wheel for split build (BUILD_LIBTORCH_WHL)"
time EXTRA_CAFFE2_CMAKE_FLAGS=${EXTRA_CAFFE2_CMAKE_FLAGS[@]} \
BUILD_LIBTORCH_WHL=1 BUILD_PYTHON_ONLY=0 \
time CMAKE_ARGS=${CMAKE_ARGS[@]} \
EXTRA_CAFFE2_CMAKE_FLAGS=${EXTRA_CAFFE2_CMAKE_FLAGS[@]} \
BUILD_LIBTORCH_CPU_WITH_DEBUG=$BUILD_DEBUG_INFO \
USE_NCCL=${USE_NCCL} USE_RCCL=${USE_RCCL} USE_KINETO=${USE_KINETO} \
python setup.py bdist_wheel -d /tmp/$WHEELHOUSE_DIR
echo "Finished setup.py bdist_wheel for split build (BUILD_LIBTORCH_WHL)"
echo "Calling setup.py bdist_wheel for split build (BUILD_PYTHON_ONLY)"
time EXTRA_CAFFE2_CMAKE_FLAGS=${EXTRA_CAFFE2_CMAKE_FLAGS[@]} \
BUILD_LIBTORCH_WHL=0 BUILD_PYTHON_ONLY=1 \
BUILD_LIBTORCH_CPU_WITH_DEBUG=$BUILD_DEBUG_INFO \
USE_NCCL=${USE_NCCL} USE_RCCL=${USE_RCCL} USE_KINETO=${USE_KINETO} \
CMAKE_FRESH=1 python setup.py bdist_wheel -d /tmp/$WHEELHOUSE_DIR
echo "Finished setup.py bdist_wheel for split build (BUILD_PYTHON_ONLY)"
else
time CMAKE_ARGS=${CMAKE_ARGS[@]} \
EXTRA_CAFFE2_CMAKE_FLAGS=${EXTRA_CAFFE2_CMAKE_FLAGS[@]} \
BUILD_LIBTORCH_CPU_WITH_DEBUG=$BUILD_DEBUG_INFO \
USE_NCCL=${USE_NCCL} USE_RCCL=${USE_RCCL} USE_KINETO=${USE_KINETO} \
python setup.py bdist_wheel -d /tmp/$WHEELHOUSE_DIR
fi
python -m build --wheel --no-isolation --outdir /tmp/$WHEELHOUSE_DIR
echo "Finished setup.py bdist at $(date)"
# Build libtorch packages
@ -272,10 +255,6 @@ ls /tmp/$WHEELHOUSE_DIR
mkdir -p "/$WHEELHOUSE_DIR"
mv /tmp/$WHEELHOUSE_DIR/torch*linux*.whl /$WHEELHOUSE_DIR/
if [[ "$USE_SPLIT_BUILD" == "true" ]]; then
mv /tmp/$WHEELHOUSE_DIR/torch_no_python*.whl /$WHEELHOUSE_DIR/ || true
fi
if [[ -n "$BUILD_PYTHONLESS" ]]; then
mkdir -p /$LIBTORCH_HOUSE_DIR
mv /tmp/$LIBTORCH_HOUSE_DIR/*.zip /$LIBTORCH_HOUSE_DIR
@ -452,16 +431,8 @@ if [[ -z "$BUILD_PYTHONLESS" ]]; then
pushd $PYTORCH_ROOT/test
# Install the wheel for this Python version
if [[ "$USE_SPLIT_BUILD" == "true" ]]; then
pip uninstall -y "$TORCH_NO_PYTHON_PACKAGE_NAME" || true
fi
pip uninstall -y "$TORCH_PACKAGE_NAME"
if [[ "$USE_SPLIT_BUILD" == "true" ]]; then
pip install "$TORCH_NO_PYTHON_PACKAGE_NAME" --no-index -f /$WHEELHOUSE_DIR --no-dependencies -v
fi
pip install "$TORCH_PACKAGE_NAME" --no-index -f /$WHEELHOUSE_DIR --no-dependencies -v
# Print info on the libraries installed in this wheel

View File

@ -66,6 +66,9 @@ case ${CUDA_VERSION} in
TORCH_CUDA_ARCH_LIST="7.5;8.0;9.0;10.0;12.0+PTX"
fi
;;
13.0)
TORCH_CUDA_ARCH_LIST="7.5;8.0;8.6;9.0;10.0;12.0+PTX"
;;
12.6)
TORCH_CUDA_ARCH_LIST="5.0;6.0;7.0;7.5;8.0;8.6;9.0"
;;
@ -110,13 +113,18 @@ DEPS_SONAME=(
)
# CUDA_VERSION 12.6, 12.8, 12.9
if [[ $CUDA_VERSION == 12* ]]; then
# CUDA_VERSION 12.*, 13.*
if [[ $CUDA_VERSION == 12* || $CUDA_VERSION == 13* ]]; then
export USE_STATIC_CUDNN=0
# Try parallelizing nvcc as well
export TORCH_NVCC_FLAGS="-Xfatbin -compress-all --threads 2"
TORCH_NVCC_FLAGS="-Xfatbin -compress-all --threads 2"
# Compress the fatbin with -compress-mode=size for CUDA 13
if [[ $CUDA_VERSION == 13* ]]; then
export TORCH_NVCC_FLAGS="$TORCH_NVCC_FLAGS -compress-mode=size"
fi
if [[ -z "$PYTORCH_EXTRA_INSTALL_REQUIREMENTS" ]]; then
echo "Bundling with cudnn and cublas."
DEPS_LIST+=(
"/usr/local/cuda/lib64/libcudnn_adv.so.9"
"/usr/local/cuda/lib64/libcudnn_cnn.so.9"
@ -126,15 +134,11 @@ if [[ $CUDA_VERSION == 12* ]]; then
"/usr/local/cuda/lib64/libcudnn_engines_precompiled.so.9"
"/usr/local/cuda/lib64/libcudnn_heuristic.so.9"
"/usr/local/cuda/lib64/libcudnn.so.9"
"/usr/local/cuda/lib64/libcublas.so.12"
"/usr/local/cuda/lib64/libcublasLt.so.12"
"/usr/local/cuda/lib64/libcusparseLt.so.0"
"/usr/local/cuda/lib64/libcudart.so.12"
"/usr/local/cuda/lib64/libnvrtc.so.12"
"/usr/local/cuda/lib64/libnvrtc-builtins.so"
"/usr/local/cuda/lib64/libcufile.so.0"
"/usr/local/cuda/lib64/libcufile_rdma.so.1"
"/usr/local/cuda/extras/CUPTI/lib64/libcupti.so.12"
"/usr/local/cuda/lib64/libnvshmem_host.so.3"
"/usr/local/cuda/extras/CUPTI/lib64/libnvperf_host.so"
)
DEPS_SONAME+=(
@ -146,41 +150,86 @@ if [[ $CUDA_VERSION == 12* ]]; then
"libcudnn_engines_precompiled.so.9"
"libcudnn_heuristic.so.9"
"libcudnn.so.9"
"libcublas.so.12"
"libcublasLt.so.12"
"libcusparseLt.so.0"
"libcudart.so.12"
"libnvrtc.so.12"
"libnvrtc-builtins.so"
"libnvshmem_host.so.3"
"libcufile.so.0"
"libcufile_rdma.so.1"
"libcupti.so.12"
"libnvperf_host.so"
)
# Add libnvToolsExt only if CUDA version is not 12.9
if [[ $CUDA_VERSION != 12.9* ]]; then
DEPS_LIST+=("/usr/local/cuda/lib64/libnvToolsExt.so.1")
DEPS_SONAME+=("libnvToolsExt.so.1")
if [[ $CUDA_VERSION == 13* ]]; then
DEPS_LIST+=(
"/usr/local/cuda/lib64/libcublas.so.13"
"/usr/local/cuda/lib64/libcublasLt.so.13"
"/usr/local/cuda/lib64/libcudart.so.13"
"/usr/local/cuda/lib64/libnvrtc.so.13"
"/usr/local/cuda/extras/CUPTI/lib64/libcupti.so.13"
"/usr/local/cuda/lib64/libibverbs.so.1"
"/usr/local/cuda/lib64/librdmacm.so.1"
"/usr/local/cuda/lib64/libmlx5.so.1"
"/usr/local/cuda/lib64/libnl-3.so.200"
"/usr/local/cuda/lib64/libnl-route-3.so.200")
DEPS_SONAME+=(
"libcublas.so.13"
"libcublasLt.so.13"
"libcudart.so.13"
"libnvrtc.so.13"
"libcupti.so.13"
"libibverbs.so.1"
"librdmacm.so.1"
"libmlx5.so.1"
"libnl-3.so.200"
"libnl-route-3.so.200")
export USE_CUPTI_SO=1
export ATEN_STATIC_CUDA=0
export USE_CUDA_STATIC_LINK=0
export USE_CUFILE=0
else
DEPS_LIST+=(
"/usr/local/cuda/lib64/libcublas.so.12"
"/usr/local/cuda/lib64/libcublasLt.so.12"
"/usr/local/cuda/lib64/libcudart.so.12"
"/usr/local/cuda/lib64/libnvrtc.so.12"
"/usr/local/cuda/extras/CUPTI/lib64/libcupti.so.12")
DEPS_SONAME+=(
"libcublas.so.12"
"libcublasLt.so.12"
"libcudart.so.12"
"libnvrtc.so.12"
"libcupti.so.12")
if [[ $CUDA_VERSION != 12.9* ]]; then
DEPS_LIST+=("/usr/local/cuda/lib64/libnvToolsExt.so.1")
DEPS_SONAME+=("libnvToolsExt.so.1")
fi
fi
else
echo "Using nvidia libs from pypi."
CUDA_RPATHS=(
'$ORIGIN/../../nvidia/cublas/lib'
'$ORIGIN/../../nvidia/cuda_cupti/lib'
'$ORIGIN/../../nvidia/cuda_nvrtc/lib'
'$ORIGIN/../../nvidia/cuda_runtime/lib'
'$ORIGIN/../../nvidia/cudnn/lib'
'$ORIGIN/../../nvidia/cufft/lib'
'$ORIGIN/../../nvidia/curand/lib'
'$ORIGIN/../../nvidia/cusolver/lib'
'$ORIGIN/../../nvidia/cusparse/lib'
'$ORIGIN/../../nvidia/cusparselt/lib'
'$ORIGIN/../../cusparselt/lib'
'$ORIGIN/../../nvidia/nccl/lib'
'$ORIGIN/../../nvidia/nvshmem/lib'
'$ORIGIN/../../nvidia/nvtx/lib'
'$ORIGIN/../../nvidia/cufile/lib'
'$ORIGIN/../../nvidia/nccl/lib'
'$ORIGIN/../../nvidia/cusparselt/lib'
)
if [[ $CUDA_VERSION == 13* ]]; then
CUDA_RPATHS+=('$ORIGIN/../../nvidia/cu13/lib')
else
CUDA_RPATHS+=(
'$ORIGIN/../../nvidia/cublas/lib'
'$ORIGIN/../../nvidia/cuda_cupti/lib'
'$ORIGIN/../../nvidia/cuda_nvrtc/lib'
'$ORIGIN/../../nvidia/cuda_runtime/lib'
'$ORIGIN/../../nvidia/cufft/lib'
'$ORIGIN/../../nvidia/curand/lib'
'$ORIGIN/../../nvidia/cusolver/lib'
'$ORIGIN/../../nvidia/cusparse/lib'
'$ORIGIN/../../cusparselt/lib'
'$ORIGIN/../../nvidia/nvtx/lib'
'$ORIGIN/../../nvidia/cufile/lib'
)
fi
CUDA_RPATHS=$(IFS=: ; echo "${CUDA_RPATHS[*]}")
export C_SO_RPATH=$CUDA_RPATHS':$ORIGIN:$ORIGIN/lib'
export LIB_SO_RPATH=$CUDA_RPATHS':$ORIGIN'

View File

@ -104,7 +104,7 @@ if [[ "$DESIRED_CUDA" == *"rocm"* ]]; then
export ROCclr_DIR=/opt/rocm/rocclr/lib/cmake/rocclr
fi
echo "Calling 'python -m pip install .' at $(date)"
echo "Calling -m pip install . -v --no-build-isolation at $(date)"
if [[ $LIBTORCH_VARIANT = *"static"* ]]; then
STATIC_CMAKE_FLAG="-DTORCH_STATIC=1"

View File

@ -107,6 +107,10 @@ if [[ $ROCM_INT -ge 60200 ]]; then
ROCM_SO_FILES+=("librocm-core.so")
fi
if [[ $ROCM_INT -ge 70000 ]]; then
ROCM_SO_FILES+=("librocroller.so")
fi
OS_NAME=`awk -F= '/^NAME/{print $2}' /etc/os-release`
if [[ "$OS_NAME" == *"CentOS Linux"* || "$OS_NAME" == *"AlmaLinux"* ]]; then
LIBGOMP_PATH="/usr/lib64/libgomp.so.1"
@ -194,7 +198,7 @@ ROCBLAS_LIB_SRC=$ROCM_HOME/lib/rocblas/library
ROCBLAS_LIB_DST=lib/rocblas/library
ROCBLAS_ARCH_SPECIFIC_FILES=$(ls $ROCBLAS_LIB_SRC | grep -E $ARCH)
ROCBLAS_OTHER_FILES=$(ls $ROCBLAS_LIB_SRC | grep -v gfx)
ROCBLAS_LIB_FILES=($ROCBLAS_ARCH_SPECIFIC_FILES $OTHER_FILES)
ROCBLAS_LIB_FILES=($ROCBLAS_ARCH_SPECIFIC_FILES $ROCBLAS_OTHER_FILES)
# hipblaslt library files
HIPBLASLT_LIB_SRC=$ROCM_HOME/lib/hipblaslt/library

View File

@ -25,6 +25,7 @@ source /opt/intel/oneapi/mpi/latest/env/vars.sh
export USE_STATIC_MKL=1
export USE_ONEMKL=1
export USE_XCCL=1
export USE_MPI=0
WHEELHOUSE_DIR="wheelhousexpu"
LIBTORCH_HOUSE_DIR="libtorch_housexpu"

View File

@ -50,9 +50,6 @@ if [[ ${BUILD_ENVIRONMENT} == *"parallelnative"* ]]; then
export ATEN_THREADING=NATIVE
fi
# Enable LLVM dependency for TensorExpr testing
export USE_LLVM=/opt/llvm
export LLVM_DIR=/opt/llvm/lib/cmake/llvm
if ! which conda; then
# In ROCm CIs, we are doing cross compilation on build machines with
@ -92,7 +89,28 @@ fi
if [[ "$BUILD_ENVIRONMENT" == *aarch64* ]]; then
export USE_MKLDNN=1
export USE_MKLDNN_ACL=1
export ACL_ROOT_DIR=/ComputeLibrary
export ACL_ROOT_DIR=/acl
fi
if [[ "$BUILD_ENVIRONMENT" == *riscv64* ]]; then
if [[ -f /opt/riscv-cross-env/bin/activate ]]; then
# shellcheck disable=SC1091
source /opt/riscv-cross-env/bin/activate
else
echo "Activation file not found"
exit 1
fi
export CMAKE_CROSSCOMPILING=TRUE
export CMAKE_SYSTEM_NAME=Linux
export CMAKE_SYSTEM_PROCESSOR=riscv64
export USE_CUDA=0
export USE_MKLDNN=0
export SLEEF_TARGET_EXEC_USE_QEMU=ON
sudo chown -R jenkins /var/lib/jenkins/workspace /opt
fi
if [[ "$BUILD_ENVIRONMENT" == *libtorch* ]]; then
@ -155,6 +173,7 @@ if [[ "$BUILD_ENVIRONMENT" == *xpu* ]]; then
source /opt/intel/oneapi/mpi/latest/env/vars.sh
# Enable XCCL build
export USE_XCCL=1
export USE_MPI=0
# XPU kineto feature dependencies are not fully ready, disable kineto build as temp WA
export USE_KINETO=0
export TORCH_XPU_ARCH_LIST=pvc
@ -176,8 +195,16 @@ fi
# We only build FlashAttention files for CUDA 8.0+, and they require large amounts of
# memory to build and will OOM
if [[ "$BUILD_ENVIRONMENT" == *cuda* ]] && [[ 1 -eq $(echo "${TORCH_CUDA_ARCH_LIST} >= 8.0" | bc) ]]; then
export BUILD_CUSTOM_STEP="ninja -C build flash_attention -j 2"
if [[ "$BUILD_ENVIRONMENT" == *cuda* ]] && echo "${TORCH_CUDA_ARCH_LIST}" | tr ' ' '\n' | sed 's/$/>= 8.0/' | bc | grep -q 1; then
J=2 # default to 2 jobs
case "$RUNNER" in
linux.12xlarge.memory|linux.24xlarge.memory)
J=24
;;
esac
echo "Building FlashAttention with job limit $J"
export BUILD_CUSTOM_STEP="ninja -C build flash_attention -j ${J}"
fi
if [[ "${BUILD_ENVIRONMENT}" == *clang* ]]; then
@ -192,7 +219,6 @@ if [[ "$BUILD_ENVIRONMENT" == *-clang*-asan* ]]; then
export USE_ASAN=1
export REL_WITH_DEB_INFO=1
export UBSAN_FLAGS="-fno-sanitize-recover=all"
unset USE_LLVM
fi
if [[ "${BUILD_ENVIRONMENT}" == *no-ops* ]]; then
@ -207,13 +233,15 @@ if [[ "${BUILD_ENVIRONMENT}" != *cuda* ]]; then
export BUILD_STATIC_RUNTIME_BENCHMARK=ON
fi
if [[ "$BUILD_ENVIRONMENT" == *-debug* ]]; then
if [[ "$BUILD_ENVIRONMENT" == *-full-debug* ]]; then
export CMAKE_BUILD_TYPE=Debug
elif [[ "$BUILD_ENVIRONMENT" == *-debug* ]]; then
export CMAKE_BUILD_TYPE=RelWithAssert
fi
# Do not change workspace permissions for ROCm and s390x CI jobs
# as it can leave workspace with bad permissions for cancelled jobs
if [[ "$BUILD_ENVIRONMENT" != *rocm* && "$BUILD_ENVIRONMENT" != *s390x* && -d /var/lib/jenkins/workspace ]]; then
if [[ "$BUILD_ENVIRONMENT" != *rocm* && "$BUILD_ENVIRONMENT" != *s390x* && "$BUILD_ENVIRONMENT" != *riscv64* && -d /var/lib/jenkins/workspace ]]; then
# Workaround for dind-rootless userid mapping (https://github.com/pytorch/ci-infra/issues/96)
WORKSPACE_ORIGINAL_OWNER_ID=$(stat -c '%u' "/var/lib/jenkins/workspace")
cleanup_workspace() {
@ -258,31 +286,26 @@ else
# XLA test build fails when WERROR=1
# set only when building other architectures
# or building non-XLA tests.
if [[ "$BUILD_ENVIRONMENT" != *rocm* &&
"$BUILD_ENVIRONMENT" != *xla* ]]; then
if [[ "$BUILD_ENVIRONMENT" != *rocm* && "$BUILD_ENVIRONMENT" != *xla* && "$BUILD_ENVIRONMENT" != *riscv64* ]]; then
# Install numpy-2.0.2 for builds which are backward compatible with 1.X
python -mpip install numpy==2.0.2
WERROR=1 python setup.py clean
if [[ "$USE_SPLIT_BUILD" == "true" ]]; then
python3 tools/packaging/split_wheel.py bdist_wheel
else
WERROR=1 python setup.py bdist_wheel
fi
WERROR=1 python -m build --wheel --no-isolation
else
python setup.py clean
if [[ "$BUILD_ENVIRONMENT" == *xla* ]]; then
source .ci/pytorch/install_cache_xla.sh
fi
if [[ "$USE_SPLIT_BUILD" == "true" ]]; then
echo "USE_SPLIT_BUILD cannot be used with xla or rocm"
exit 1
else
python setup.py bdist_wheel
fi
python -m build --wheel --no-isolation
fi
pip_install_whl "$(echo dist/*.whl)"
if [[ "$BUILD_ENVIRONMENT" == *full-debug* ]]; then
# Regression test for https://github.com/pytorch/pytorch/issues/164297
# Torch should be importable and that's about it
pushd /; python -c "import torch;print(torch.__config__.show(), torch.randn(5) + 1.7)"; popd
fi
if [[ "${BUILD_ADDITIONAL_PACKAGES:-}" == *vision* ]]; then
install_torchvision
@ -403,9 +426,9 @@ fi
if [[ "$BUILD_ENVIRONMENT" != *libtorch* && "$BUILD_ENVIRONMENT" != *bazel* ]]; then
# export test times so that potential sharded tests that'll branch off this build will use consistent data
# don't do this for libtorch as libtorch is C++ only and thus won't have python tests run on its build
python tools/stats/export_test_times.py
PYTHONPATH=. python tools/stats/export_test_times.py
fi
# don't do this for bazel or s390x as they don't use sccache
if [[ "$BUILD_ENVIRONMENT" != *s390x* && "$BUILD_ENVIRONMENT" != *-bazel-* ]]; then
# don't do this for bazel or s390x or riscv64 as they don't use sccache
if [[ "$BUILD_ENVIRONMENT" != *s390x* && "$BUILD_ENVIRONMENT" != *riscv64* && "$BUILD_ENVIRONMENT" != *-bazel-* ]]; then
print_sccache_stats
fi

View File

@ -300,24 +300,3 @@ except RuntimeError as e:
exit 1
fi
fi
###############################################################################
# Check for C++ ABI compatibility to GCC-11 - GCC 13
###############################################################################
if [[ "$(uname)" == 'Linux' && "$PACKAGE_TYPE" == 'manywheel' ]]; then
pushd /tmp
# Per https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html
# gcc-11 is ABI16, gcc-13 is ABI18, gcc-14 is ABI19
# gcc 11 - CUDA 11.8, xpu, rocm
# gcc 13 - CUDA 12.6, 12.8 and cpu
# Please see issue for reference: https://github.com/pytorch/pytorch/issues/152426
if [[ "$(uname -m)" == "s390x" ]]; then
cxx_abi="19"
elif [[ "$DESIRED_CUDA" != 'xpu' && "$DESIRED_CUDA" != 'rocm'* ]]; then
cxx_abi="18"
else
cxx_abi="16"
fi
python -c "import torch; exit(0 if torch._C._PYBIND11_BUILD_ABI == '_cxxabi10${cxx_abi}' else 1)"
popd
fi

View File

@ -149,6 +149,19 @@ function get_pinned_commit() {
cat .github/ci_commit_pins/"${1}".txt
}
function detect_cuda_arch() {
if [[ "${BUILD_ENVIRONMENT}" == *cuda* ]]; then
if command -v nvidia-smi; then
TORCH_CUDA_ARCH_LIST=$(nvidia-smi --query-gpu=compute_cap --format=csv | tail -n 1)
elif [[ "${TEST_CONFIG}" == *nogpu* ]]; then
# There won't be nvidia-smi in nogpu tests, so just set TORCH_CUDA_ARCH_LIST to the default
# minimum supported value here
TORCH_CUDA_ARCH_LIST=8.0
fi
export TORCH_CUDA_ARCH_LIST
fi
}
function install_torchaudio() {
local commit
commit=$(get_pinned_commit audio)
@ -229,7 +242,6 @@ function install_torchrec_and_fbgemm() {
pip_install tabulate # needed for newer fbgemm
pip_install patchelf # needed for rocm fbgemm
pushd /tmp
local wheel_dir=dist/fbgemm_gpu
local found_whl=0
@ -245,12 +257,20 @@ function install_torchrec_and_fbgemm() {
if [ "${found_whl}" == "0" ]; then
git clone --recursive https://github.com/pytorch/fbgemm
pushd fbgemm/fbgemm_gpu
git checkout "${fbgemm_commit}"
python setup.py bdist_wheel \
--build-variant=rocm \
-DHIP_ROOT_DIR="${ROCM_PATH}" \
-DCMAKE_C_FLAGS="-DTORCH_USE_HIP_DSA" \
-DCMAKE_CXX_FLAGS="-DTORCH_USE_HIP_DSA"
git checkout "${fbgemm_commit}" --recurse-submodules
# until the fbgemm_commit includes the tbb patch
patch <<'EOF'
--- a/FbgemmGpu.cmake
+++ b/FbgemmGpu.cmake
@@ -184,5 +184,6 @@ gpu_cpp_library(
fbgemm_gpu_tbe_cache
fbgemm_gpu_tbe_optimizers
fbgemm_gpu_tbe_utils
+ tbb
DESTINATION
fbgemm_gpu)
EOF
python setup.py bdist_wheel --build-variant=rocm
popd
# Save the wheel before cleaning up
@ -264,7 +284,6 @@ function install_torchrec_and_fbgemm() {
done
rm -rf fbgemm
popd
else
pip_build_and_install "git+https://github.com/pytorch/torchrec.git@${torchrec_commit}" dist/torchrec
pip_build_and_install "git+https://github.com/pytorch/FBGEMM.git@${fbgemm_commit}#subdirectory=fbgemm_gpu" dist/fbgemm_gpu
@ -283,30 +302,6 @@ function clone_pytorch_xla() {
fi
}
function checkout_install_torchbench() {
local commit
commit=$(get_pinned_commit torchbench)
git clone https://github.com/pytorch/benchmark torchbench
pushd torchbench
git checkout "$commit"
if [ "$1" ]; then
python install.py --continue_on_fail models "$@"
else
# Occasionally the installation may fail on one model but it is ok to continue
# to install and test other models
python install.py --continue_on_fail
fi
# TODO (huydhn): transformers-4.44.2 added by https://github.com/pytorch/benchmark/pull/2488
# is regressing speedup metric. This needs to be investigated further
pip install transformers==4.38.1
echo "Print all dependencies after TorchBench is installed"
python -mpip freeze
popd
}
function install_torchao() {
local commit
commit=$(get_pinned_commit torchao)

View File

@ -58,7 +58,7 @@ time python tools/setup_helpers/generate_code.py \
# Build the docs
pushd docs/cpp
time make VERBOSE=1 html -j
time make VERBOSE=1 html
popd
popd

View File

@ -1,40 +0,0 @@
#!/bin/bash
# This is where the local pytorch install in the docker image is located
pt_checkout="/var/lib/jenkins/workspace"
source "$pt_checkout/.ci/pytorch/common_utils.sh"
echo "functorch_doc_push_script.sh: Invoked with $*"
set -ex -o pipefail
version=${DOCS_VERSION:-nightly}
echo "version: $version"
# Build functorch docs
pushd $pt_checkout/functorch/docs
make html
popd
git clone https://github.com/pytorch/functorch -b gh-pages --depth 1 functorch_ghpages
pushd functorch_ghpages
if [ "$version" == "main" ]; then
version=nightly
fi
git rm -rf "$version" || true
mv "$pt_checkout/functorch/docs/build/html" "$version"
git add "$version" || true
git status
git config user.email "soumith+bot@pytorch.org"
git config user.name "pytorchbot"
# If there aren't changes, don't make a commit; push is no-op
git commit -m "Generate Python docs from pytorch/pytorch@${GITHUB_SHA}" || true
git status
if [[ "${WITH_PUSH:-}" == true ]]; then
git push -u origin gh-pages
fi
popd

View File

@ -36,11 +36,11 @@ fi
print_cmake_info
if [[ ${BUILD_ENVIRONMENT} == *"distributed"* ]]; then
# Needed for inductor benchmarks, as lots of HF networks make `torch.distribtued` calls
USE_DISTRIBUTED=1 USE_OPENMP=1 WERROR=1 python setup.py bdist_wheel
USE_DISTRIBUTED=1 USE_OPENMP=1 WERROR=1 python -m build --wheel --no-isolation
else
# Explicitly set USE_DISTRIBUTED=0 to align with the default build config on mac. This also serves as the sole CI config that tests
# that building with USE_DISTRIBUTED=0 works at all. See https://github.com/pytorch/pytorch/issues/86448
USE_DISTRIBUTED=0 USE_OPENMP=1 MACOSX_DEPLOYMENT_TARGET=11.0 WERROR=1 BUILD_TEST=OFF USE_PYTORCH_METAL=1 python setup.py bdist_wheel --plat-name macosx_11_0_arm64
USE_DISTRIBUTED=0 USE_OPENMP=1 MACOSX_DEPLOYMENT_TARGET=11.0 WERROR=1 BUILD_TEST=OFF USE_PYTORCH_METAL=1 python -m build --wheel --no-isolation -C--build-option=--plat-name=macosx_11_0_arm64
fi
if which sccache > /dev/null; then
print_sccache_stats

View File

@ -55,7 +55,7 @@ test_python_shard() {
setup_test_python
time python test/run_test.py --verbose --exclude-jit-executor --exclude-distributed-tests --shard "$1" "$NUM_TEST_SHARDS"
time python test/run_test.py --verbose --exclude-jit-executor --exclude-distributed-tests --exclude-quantization-tests --shard "$1" "$NUM_TEST_SHARDS"
assert_git_not_dirty
}
@ -157,6 +157,34 @@ test_jit_hooks() {
assert_git_not_dirty
}
# Shellcheck doesn't like it when you pass no arguments to a function
# that can take args. See https://www.shellcheck.net/wiki/SC2120
# shellcheck disable=SC2120
checkout_install_torchbench() {
local commit
commit=$(cat .ci/docker/ci_commit_pins/torchbench.txt)
git clone https://github.com/pytorch/benchmark torchbench
pushd torchbench
git checkout "$commit"
if [ "$1" ]; then
python install.py --continue_on_fail models "$@"
else
# Occasionally the installation may fail on one model but it is ok to continue
# to install and test other models
python install.py --continue_on_fail
fi
popd
pip install -r .ci/docker/ci_commit_pins/huggingface-requirements.txt
# https://github.com/pytorch/pytorch/issues/160689 to remove torchao because
# its current version 0.12.0 doesn't work with transformers 4.54.0
pip uninstall -y torchao
echo "Print all dependencies after TorchBench is installed"
python -mpip freeze
}
torchbench_setup_macos() {
git clone --recursive https://github.com/pytorch/vision torchvision
git clone --recursive https://github.com/pytorch/audio torchaudio
@ -167,7 +195,7 @@ torchbench_setup_macos() {
git checkout "$(cat ../.github/ci_commit_pins/vision.txt)"
git submodule update --init --recursive
python setup.py clean
python setup.py develop
python -m pip install -e . -v --no-build-isolation
popd
pushd torchaudio
@ -176,11 +204,9 @@ torchbench_setup_macos() {
git submodule update --init --recursive
python setup.py clean
#TODO: Remove me, when figure out how to make TorchAudio find brew installed openmp
USE_OPENMP=0 python setup.py develop
USE_OPENMP=0 python -m pip install -e . -v --no-build-isolation
popd
# Shellcheck doesn't like it when you pass no arguments to a function that can take args. See https://www.shellcheck.net/wiki/SC2120
# shellcheck disable=SC2119,SC2120
checkout_install_torchbench
}
@ -230,7 +256,7 @@ test_torchbench_smoketest() {
local device=mps
local dtypes=(undefined float16 bfloat16 notset)
local dtype=${dtypes[$1]}
local models=(hf_T5 llama BERT_pytorch dcgan hf_GPT2 yolov3 resnet152 sam sam_fast pytorch_unet stable_diffusion_text_encoder speech_transformer Super_SloMo doctr_det_predictor doctr_reco_predictor timm_resnet timm_vovnet vgg16)
local models=(llama BERT_pytorch dcgan yolov3 resnet152 sam sam_fast pytorch_unet stable_diffusion_text_encoder speech_transformer Super_SloMo doctr_det_predictor doctr_reco_predictor vgg16)
for backend in eager inductor; do
@ -276,6 +302,47 @@ test_torchbench_smoketest() {
fi
done
echo "Pytorch benchmark on mps device completed"
}
test_aoti_torchbench_smoketest() {
print_cmake_info
echo "Launching AOTInductor torchbench setup"
pip_benchmark_deps
# shellcheck disable=SC2119,SC2120
torchbench_setup_macos
TEST_REPORTS_DIR=$(pwd)/test/test-reports
mkdir -p "$TEST_REPORTS_DIR"
local device=mps
local dtypes=(undefined float16 bfloat16 notset)
local dtype=${dtypes[$1]}
local models=(llama BERT_pytorch dcgan yolov3 resnet152 sam sam_fast pytorch_unet stable_diffusion_text_encoder speech_transformer Super_SloMo doctr_det_predictor doctr_reco_predictor vgg16)
echo "Launching torchbench inference performance run for AOT Inductor and dtype ${dtype}"
local dtype_arg="--${dtype}"
if [ "$dtype" == notset ]; then
dtype_arg="--float32"
fi
touch "$TEST_REPORTS_DIR/aot_inductor_torchbench_${dtype}_inference_${device}_performance.csv"
for model in "${models[@]}"; do
PYTHONPATH="$(pwd)"/torchbench python benchmarks/dynamo/torchbench.py \
--performance --only "$model" --export-aot-inductor --inference --devices "$device" "$dtype_arg" \
--output "$TEST_REPORTS_DIR/aot_inductor_torchbench_${dtype}_inference_${device}_performance.csv" || true
PYTHONPATH="$(pwd)"/torchbench python benchmarks/dynamo/torchbench.py \
--accuracy --only "$model" --export-aot-inductor --inference --devices "$device" "$dtype_arg" \
--output "$TEST_REPORTS_DIR/aot_inductor_torchbench_${dtype}_inference_${device}_accuracy.csv" || true
done
echo "Launching HuggingFace inference performance run for AOT Inductor and dtype ${dtype}"
PYTHONPATH="$(pwd)"/torchbench python benchmarks/dynamo/huggingface.py \
--performance --export-aot-inductor --inference --devices "$device" "$dtype_arg" \
--output "$TEST_REPORTS_DIR/aot_inductor_huggingface_${dtype}_inference_${device}_performance.csv" || true
PYTHONPATH="$(pwd)"/torchbench python benchmarks/dynamo/huggingface.py \
--accuracy --export-aot-inductor --inference --devices "$device" "$dtype_arg" \
--output "$TEST_REPORTS_DIR/aot_inductor_huggingface_${dtype}_inference_${device}_accuracy.csv" || true
echo "Pytorch benchmark on mps device completed"
}
@ -324,6 +391,8 @@ elif [[ $TEST_CONFIG == *"perf_timm"* ]]; then
test_timm_perf
elif [[ $TEST_CONFIG == *"perf_smoketest"* ]]; then
test_torchbench_smoketest "${SHARD_NUMBER}"
elif [[ $TEST_CONFIG == *"aot_inductor_perf_smoketest"* ]]; then
test_aoti_torchbench_smoketest "${SHARD_NUMBER}"
elif [[ $TEST_CONFIG == *"mps"* ]]; then
test_python_mps
elif [[ $NUM_TEST_SHARDS -gt 1 ]]; then

View File

@ -26,6 +26,7 @@ if [[ "${SHARD_NUMBER:-2}" == "2" ]]; then
time python test/run_test.py --verbose -i distributed/test_c10d_spawn_gloo
time python test/run_test.py --verbose -i distributed/test_c10d_spawn_nccl
time python test/run_test.py --verbose -i distributed/test_compute_comm_reordering
time python test/run_test.py --verbose -i distributed/test_aten_comm_compute_reordering
time python test/run_test.py --verbose -i distributed/test_store
time python test/run_test.py --verbose -i distributed/test_symmetric_memory
time python test/run_test.py --verbose -i distributed/test_pg_wrapper
@ -45,6 +46,7 @@ if [[ "${SHARD_NUMBER:-2}" == "2" ]]; then
# DTensor tests
time python test/run_test.py --verbose -i distributed/tensor/test_random_ops
time python test/run_test.py --verbose -i distributed/tensor/test_dtensor_compile
time python test/run_test.py --verbose -i distributed/tensor/test_utils.py
# DeviceMesh test
time python test/run_test.py --verbose -i distributed/test_device_mesh

Some files were not shown because too many files have changed in this diff Show More