Compare commits
1,579 commits
master
...
v3-alpha-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54ac2c34f5 |
||
|
|
69929c2c37 | ||
|
|
c02ba8f5d6 |
||
|
|
1cf9042063 | ||
|
|
d863e525e3 |
||
|
|
10447e6fcd |
||
|
|
ca449a7706 |
||
|
|
9fe9c6647e |
||
|
|
1227f140b7 | ||
|
|
4c70d4501e |
||
|
|
ed81ab01e7 |
||
|
|
a9222b538d |
||
|
|
b0871c19e1 |
||
|
|
55277fd695 |
||
|
|
6539c80ba2 |
||
|
|
68c14d711b | ||
|
|
afcdb15503 | ||
|
|
48e3bd3dd4 |
||
|
|
8d999ba34d | ||
|
|
5f1c2ff6dc | ||
|
|
d9a003b56c |
||
|
|
4721add9b8 |
||
|
|
09e71d82b5 | ||
|
|
c2f25131d7 |
||
|
|
a412b70be5 |
||
|
|
81d1459b68 |
||
|
|
db5b0dcd4b |
||
|
|
67058c0923 |
||
|
|
6dc51420ac |
||
|
|
7bd1b4911c | ||
|
|
33a9c05213 |
||
|
|
9d6e6232d6 |
||
|
|
23bf36d36f |
||
|
|
906cd7003d |
||
|
|
f8e4eeb405 |
||
|
|
9f2b992d36 |
||
|
|
c08d2d72c3 |
||
|
|
bf762699bd |
||
|
|
a29b4f0861 |
||
|
|
b5ef00fd42 |
||
|
|
cc5b46cba1 |
||
|
|
b566b1830d | ||
|
|
76bb374df8 |
||
|
|
12022e4947 | ||
|
|
bf5dfd2d45 | ||
|
|
3650439b6e | ||
|
|
4e2a3505bb |
||
|
|
fd89187c2f | ||
|
|
7a71836224 | ||
|
|
23e1f8923c | ||
|
|
101b09676d | ||
|
|
810dfbb11b | ||
|
|
e018ad6b92 | ||
|
|
234aea19bd | ||
|
|
5b88b485a9 |
||
|
|
112ba7ad4e | ||
|
|
584872eb9a |
||
|
|
1481b30610 |
||
|
|
e11479170a |
||
|
|
919524f287 |
||
|
|
cd06965b1a | ||
|
|
c15155b29b | ||
|
|
426b9fc61e | ||
|
|
fb8f12aca9 | ||
|
|
6857fb840a | ||
|
|
9668e348d8 | ||
|
|
b029a84fe4 | ||
|
|
4532b625c9 | ||
|
|
89cafbab55 | ||
|
|
50fe8cb855 | ||
|
|
425c3469b2 | ||
|
|
6a91656914 | ||
|
|
a3affdc963 | ||
|
|
b8fdee2a3a | ||
|
|
cad1fae3e4 | ||
|
|
52cd0d4cc7 | ||
|
|
a25ea74d5c | ||
|
|
d3d95e07d1 | ||
|
|
a5c43da52f | ||
|
|
cbfbf4699a | ||
|
|
e8765607ff |
||
|
|
9f96439ba1 |
||
|
|
568aa6602f |
||
|
|
b635b8eef5 |
||
|
|
504d456dea |
||
|
|
0bb90b421f | ||
|
|
859e843d02 | ||
|
|
71d11c9469 | ||
|
|
9b0c653948 | ||
|
|
67edf873be |
||
|
|
0fc13fee63 | ||
|
|
4b98ffd590 | ||
|
|
c244eeb21f |
||
|
|
3087ba0bdc |
||
|
|
66ad93d9d5 |
||
|
|
7b7f3cd754 |
||
|
|
0b7d1f4f67 |
||
|
|
a55c1fedcb | ||
|
|
01ed7affc9 |
||
|
|
fbd39c24f4 | ||
|
|
edfa223e2f | ||
|
|
5452135dcb | ||
|
|
3e9f7fce4e | ||
|
|
a8c8417d16 |
||
|
|
1bdeda8530 |
||
|
|
4cc8d1cc2f |
||
|
|
16ea4c72fe |
||
|
|
86f891673a | ||
|
|
d03a63e1b7 | ||
|
|
d126a3196c | ||
|
|
1d75dd030f | ||
|
|
fe29d1405e | ||
|
|
2da5955db7 |
||
|
|
ae4ed4fe31 |
||
|
|
2c99f9e43c |
||
|
|
371e05cb1f |
||
|
|
471ea9350b |
||
|
|
323327b53f |
||
|
|
83005be066 |
||
|
|
2134bc6e0d | ||
|
|
9ebc82afbb | ||
|
|
f143bd6866 | ||
|
|
a1c26a3fd9 | ||
|
|
47f264d010 | ||
|
|
b7c6c82cf3 | ||
|
|
6e93efcdc1 | ||
|
|
a49285bc21 | ||
|
|
dd206c4b67 | ||
|
|
3716acaae4 |
||
|
|
fe4e6c766b |
||
|
|
fa5b486966 |
||
|
|
44fcdf9ad7 |
||
|
|
582ad826b8 |
||
|
|
45d9bbcfae |
||
|
|
cbbba79340 |
||
|
|
2abd05f783 |
||
|
|
191ce6bba3 |
||
|
|
934d8c8871 | ||
|
|
b942293823 |
||
|
|
900da01ad7 | ||
|
|
51c0d1dcdc | ||
|
|
af3c6afb3b | ||
|
|
c922a7e685 | ||
|
|
40117e6565 | ||
|
|
ce8c10247d | ||
|
|
9e3786c9ea | ||
|
|
800810f092 | ||
|
|
2bfbe7f902 |
||
|
|
1618d53967 | ||
|
|
dabc18f663 | ||
|
|
73705dc56a | ||
|
|
754a41537a | ||
|
|
8d9dc19e17 |
||
|
|
e9916158c0 |
||
|
|
52df4837e0 |
||
|
|
f7aaf848ba |
||
|
|
5154f0b60f |
||
|
|
9fa596780b |
||
|
|
59cc71bdbb | ||
|
|
c0a83efe6d |
||
|
|
7287c1eb5c | ||
|
|
d1d57c132c | ||
|
|
f311a33bdd | ||
|
|
b55f4ea8e3 | ||
|
|
be28da26b8 | ||
|
|
94d03d5f13 | ||
|
|
685d8101aa |
||
|
|
833d533ed7 |
||
|
|
da0da5fc69 |
||
|
|
66ba876a65 | ||
|
|
9fcede47f7 | ||
|
|
421b75ef21 |
||
|
|
89a70b94de |
||
|
|
facc47bd30 |
||
|
|
0222bfa728 |
||
|
|
edb90bdaab |
||
|
|
b2a0e2972a |
||
|
|
e973f5ad86 |
||
|
|
f59798ef1d |
||
|
|
eb8a1b53d2 |
||
|
|
2d57b5b1d5 |
||
|
|
29706a4bf8 |
||
|
|
b80ec34550 |
||
|
|
6344a8a553 |
||
|
|
1f5e9852e4 |
||
|
|
e97c390f12 |
||
|
|
7e5edfdfe3 |
||
|
|
81211d56d9 |
||
|
|
7453df5aa1 |
||
|
|
b3cd25cb4a | ||
|
|
a9c031155a | ||
|
|
afb4bd933d |
||
|
|
a8e91e7aec |
||
|
|
f891096d97 |
||
|
|
be1d500974 |
||
|
|
0b546a1856 |
||
|
|
9e2e980e52 |
||
|
|
371e103290 |
||
|
|
0a05348220 |
||
|
|
7977a81606 |
||
|
|
3fba0cfb22 |
||
|
|
c482c85c7b | ||
|
|
dcda263fc8 | ||
|
|
f46352dbe1 | ||
|
|
1d575e3453 |
||
|
|
bd74170fb6 |
||
|
|
1b00dc9ac7 | ||
|
|
e62c0b0b80 | ||
|
|
f6750c3a48 | ||
|
|
3f22e1fe0c |
||
|
|
75dbe85ad6 | ||
|
|
9a41b0ce9f | ||
|
|
5f8a858aa9 | ||
|
|
8c3ee8f1bd | ||
|
|
b313f2cee1 | ||
|
|
bd5c82ef35 | ||
|
|
1022f47f14 | ||
|
|
743882a9b9 | ||
|
|
9db28ec5fd | ||
|
|
38ac5f799b | ||
|
|
1db65a84c3 | ||
|
|
af5abda8b1 | ||
|
|
7d0f7f4652 | ||
|
|
276c653b1d | ||
|
|
d25f923721 | ||
|
|
b102279630 | ||
|
|
1f821667f2 | ||
|
|
7f496c971d | ||
|
|
9a4542347d | ||
|
|
a68391880c | ||
|
|
5ddb27fd3f | ||
|
|
448c78b226 | ||
|
|
ace4f70e3a | ||
|
|
9948cee1f7 | ||
|
|
f870dcc168 | ||
|
|
b2b8f14053 | ||
|
|
f6a5bed582 | ||
|
|
81b40d2afe | ||
|
|
ef3b7d2bc3 | ||
|
|
be1da68dbc | ||
|
|
5dc7bd97f2 | ||
|
|
9adeef2bdf | ||
|
|
e55bf8dffc | ||
|
|
94f245f035 | ||
|
|
88f13369b6 | ||
|
|
b1db2bba12 | ||
|
|
471402556b | ||
|
|
010100456d | ||
|
|
14d6623c13 |
||
|
|
c58709c1a3 | ||
|
|
bd857385d3 | ||
|
|
d98f528734 | ||
|
|
25256f747f | ||
|
|
58b5c105a5 |
||
|
|
4af058bd02 | ||
|
|
ee885fea44 | ||
|
|
b60ef7729e | ||
|
|
e4e24a0f00 | ||
|
|
bccff0f73e | ||
|
|
137bcc5cbb |
||
|
|
4a2dc2875f |
||
|
|
3a3458cff0 |
||
|
|
e810d6a4b0 | ||
|
|
6d15f08db4 |
||
|
|
2cb0dac648 | ||
|
|
e46abdc793 | ||
|
|
1fa68949e6 | ||
|
|
1e67e943df | ||
|
|
e4ec06a9c8 | ||
|
|
bbb3a0389a |
||
|
|
b9e072905a |
||
|
|
5bc94ce400 |
||
|
|
959ce42f26 |
||
|
|
ee9e3973bd |
||
|
|
46dd5ef959 | ||
|
|
0be2efc275 | ||
|
|
8abcd81f30 |
||
|
|
7bd3a1a15c |
||
|
|
3f2db134c2 | ||
|
|
479e22b7c5 | ||
|
|
302c74e90d | ||
|
|
fe6635c1eb |
||
|
|
635ddf5c36 | ||
|
|
d8671de43b |
||
|
|
da99ea47b0 |
||
|
|
b72782c35d |
||
|
|
53a2620860 |
||
|
|
3b101705d5 |
||
|
|
d0d1691004 | ||
|
|
1bb14e16a5 | ||
|
|
d30652a6e6 | ||
|
|
1a0096c169 | ||
|
|
a5eed9a486 | ||
|
|
d1be724f41 | ||
|
|
e4d6e54c63 |
||
|
|
38a4299883 |
||
|
|
15b9118077 |
||
|
|
d95b77ad04 |
||
|
|
742b802cf7 |
||
|
|
bd59b8c724 |
||
|
|
abd27b285e |
||
|
|
fd9c37aa44 |
||
|
|
c8e3ba2d4b |
||
|
|
e07e924519 |
||
|
|
91e9d6abe9 |
||
|
|
866fb36b67 |
||
|
|
b733b1d3c4 |
||
|
|
dc662b561a |
||
|
|
91c9c3f147 |
||
|
|
35cc7fd569 |
||
|
|
5fb1a14c36 |
||
|
|
5e529aed01 |
||
|
|
03c0d4ce6f |
||
|
|
163beb5d58 |
||
|
|
f316b19c2b | ||
|
|
10791fabbd | ||
|
|
0a6a420503 | ||
|
|
a5fdc3a6de | ||
|
|
42c6c2b524 | ||
|
|
39cdd1d1e4 | ||
|
|
fd420bff32 | ||
|
|
d7dec9eda7 | ||
|
|
833d8ec7dc | ||
|
|
d9af6dec32 |
||
|
|
96fa0d25f0 |
||
|
|
f87dce15ea |
||
|
|
d130544b1b | ||
|
|
229dfa8f6f |
||
|
|
2a424f6be5 | ||
|
|
c468af839c | ||
|
|
7c56c4ce00 | ||
|
|
5b6fd04b09 | ||
|
|
69b11109ac | ||
|
|
e64cbd3e66 | ||
|
|
fc0eb760cd | ||
|
|
3aa3e09317 |
||
|
|
73da97053e | ||
|
|
835fcbecc8 |
||
|
|
6423abe630 |
||
|
|
e1a296c68e | ||
|
|
01a51f74e4 |
||
|
|
183abde394 | ||
|
|
9988b7eca8 |
||
|
|
e4f0b64630 | ||
|
|
3b045ada7b |
||
|
|
2dcd35f181 | ||
|
|
9ee2ca51d4 |
||
|
|
151bc6d36b | ||
|
|
cdbe38a30e |
||
|
|
c96b7c693c | ||
|
|
dee22c18ee |
||
|
|
30f0ec4e9c | ||
|
|
0a0592a52e | ||
|
|
da9a9603b9 | ||
|
|
28d22f7bfa | ||
|
|
b2c43c034f |
||
|
|
ad749721e9 | ||
|
|
a807c269cc | ||
|
|
698f9cac39 | ||
|
|
db9e520f08 | ||
|
|
3bdb3ddba3 | ||
|
|
368678ca6b | ||
|
|
5da789c24f | ||
|
|
6c34e74f0a | ||
|
|
207b162544 | ||
|
|
e216b3e513 | ||
|
|
db2cab7b7c | ||
|
|
e86cf68b17 | ||
|
|
5ad3d73001 | ||
|
|
47e5b109c0 | ||
|
|
60ae0c1598 | ||
|
|
acad85e603 | ||
|
|
a4c4ab6c8f | ||
|
|
10ae1f6029 | ||
|
|
ed8cdfa0f6 | ||
|
|
60c1a866f3 | ||
|
|
050e4ef1a8 | ||
|
|
fa498f1c5e | ||
|
|
f769fb3953 | ||
|
|
8dd1b61f1e | ||
|
|
7bbc27594b | ||
|
|
5cf89f362f | ||
|
|
135defc405 | ||
|
|
d74ed5ab54 | ||
|
|
ea98bd2e19 | ||
|
|
af635f02c6 | ||
|
|
5b2c8eba80 | ||
|
|
c774e198ee | ||
|
|
11866ee52f |
||
|
|
b74b9efa8e |
||
|
|
5436ebee71 | ||
|
|
746b38abe5 | ||
|
|
db6295594f | ||
|
|
c0f92d69a0 | ||
|
|
b59f003f61 | ||
|
|
253f67243a | ||
|
|
67adc452cb | ||
|
|
8bbe3816b7 |
||
|
|
e8ad42aa3f | ||
|
|
026ee7fb78 | ||
|
|
5dbd49606b | ||
|
|
55a0c7e605 | ||
|
|
51223f66cd | ||
|
|
ea7660d4b1 | ||
|
|
87ceed05fa | ||
|
|
0dfc2b2a53 | ||
|
|
cdb4045542 | ||
|
|
14fb7ed4f7 | ||
|
|
7b2c04dcb2 | ||
|
|
2c521e63cb | ||
|
|
52f1b595e8 | ||
|
|
95b4bfc253 | ||
|
|
8da998191a | ||
|
|
be716fc0ee | ||
|
|
1dff481199 | ||
|
|
3dbf0589ce | ||
|
|
1e3511c0d3 | ||
|
|
983c25f69f | ||
|
|
c904433ff3 | ||
|
|
bf4222c9cc | ||
|
|
978a982ab7 | ||
|
|
cc760a173a | ||
|
|
9eab58f0d2 | ||
|
|
c1230d4b86 | ||
|
|
f8647ff73c | ||
|
|
27e512d5f1 | ||
|
|
ab9c460088 | ||
|
|
6d44068ede | ||
|
|
a5e2e42a55 |
||
|
|
47a0977ac6 | ||
|
|
9f39577228 | ||
|
|
7757eae745 | ||
|
|
c7d54e2fa9 | ||
|
|
01fa3071f1 | ||
|
|
91f1704f68 | ||
|
|
87f15ced04 | ||
|
|
cc524d78e4 | ||
|
|
f694ad223e | ||
|
|
274511c5cb | ||
|
|
32839bd0d1 | ||
|
|
82ed0e6842 | ||
|
|
d5a8f1e323 | ||
|
|
29c0d15045 |
||
|
|
e7c134de4e |
||
|
|
5059adc561 |
||
|
|
0dc7b3c549 |
||
|
|
1bafc6f22f |
||
|
|
244f32268b |
||
|
|
e75c10d567 |
||
|
|
a49bfcc956 |
||
|
|
69917c2f50 |
||
|
|
8f815e9974 | ||
|
|
fe38cd91c5 | ||
|
|
d314410d01 | ||
|
|
2a6597eece | ||
|
|
23412656de | ||
|
|
ae2936927d | ||
|
|
6edb2b0189 | ||
|
|
63f47bc9ed | ||
|
|
726084fa98 | ||
|
|
2c85b109ac |
||
|
|
2d6db0f27f |
||
|
|
37673eb24d |
||
|
|
d4096868e3 |
||
|
|
d427e9d750 |
||
|
|
2db902ef82 |
||
|
|
36a1b71f93 |
||
|
|
0ecfcee3bf |
||
|
|
b21bb16c08 |
||
|
|
4caf6d6e50 |
||
|
|
ee24099be8 |
||
|
|
6bbac4ad2a | ||
|
|
b4c4cd8ae8 |
||
|
|
c1251e9441 |
||
|
|
3eb3af8c8c |
||
|
|
9ce782be68 | ||
|
|
9bf63b1581 |
||
|
|
c51688499c | ||
|
|
e3ed07997e | ||
|
|
c911e792dc | ||
|
|
95891b8ee1 | ||
|
|
20720ebdad | ||
|
|
cda9184d83 | ||
|
|
5ffdc204f6 | ||
|
|
0f566c5bc8 |
||
|
|
5bd131c929 |
||
|
|
0c771e37f9 |
||
|
|
e31296fe5d |
||
|
|
282b420faf |
||
|
|
b3e81f5cbb |
||
|
|
939e2daff0 |
||
|
|
db61f9f263 |
||
|
|
b4dff607e7 |
||
|
|
46bb4e8414 |
||
|
|
631c8a1cc8 |
||
|
|
31487b5a0c |
||
|
|
3f825823d5 |
||
|
|
16ce1d3448 |
||
|
|
547e30f025 |
||
|
|
b7ab650f36 |
||
|
|
5ccc810999 |
||
|
|
8ba623f5fe |
||
|
|
be8159d410 |
||
|
|
f01b4b9a21 |
||
|
|
e668c81806 |
||
|
|
7387e62a95 |
||
|
|
0e02b07ba3 |
||
|
|
f6ebd6b3de |
||
|
|
51e3a6168c |
||
|
|
33ac88dc2a |
||
|
|
4c59709653 |
||
|
|
9aca915f5c |
||
|
|
9a54f5832d |
||
|
|
7e989b973a |
||
|
|
3f78a3a8ce |
||
|
|
c186917c34 |
||
|
|
8b64705dd6 |
||
|
|
10002d892d |
||
|
|
aa97009c35 |
||
|
|
760b58726a |
||
|
|
9569d487a2 |
||
|
|
20e050b602 |
||
|
|
c6f9ebe22d |
||
|
|
e0c5de6e10 |
||
|
|
a5c32a1504 |
||
|
|
1f9f8dae66 |
||
|
|
88f262b9c2 |
||
|
|
77b8b89130 |
||
|
|
0e239c9771 |
||
|
|
b6b8c18ef5 |
||
|
|
98c4089d15 |
||
|
|
91a99299b1 |
||
|
|
d3d11593bc |
||
|
|
78bde14388 |
||
|
|
60d13880d8 |
||
|
|
59a8ecc5b2 |
||
|
|
773dca77d4 |
||
|
|
7cee957161 |
||
|
|
99b0adfe96 |
||
|
|
97cc4a4b2c |
||
|
|
e794f5d6d8 |
||
|
|
8b53aa39ff |
||
|
|
86f5049d29 |
||
|
|
11cdbd8b83 |
||
|
|
0d4cb4698f |
||
|
|
acd9241819 |
||
|
|
1276ef178b |
||
|
|
27480bc6cb |
||
|
|
6bc6de6d37 |
||
|
|
a90764891f |
||
|
|
65f95b0380 |
||
|
|
8e98d6dd19 |
||
|
|
2ff4e6a080 |
||
|
|
dc598ecf24 |
||
|
|
f61316c18d |
||
|
|
454d170dfb |
||
|
|
01899adef9 |
||
|
|
95a5b926fd |
||
|
|
bcc3ac296d |
||
|
|
37f9f19d6f |
||
|
|
19f60798b3 |
||
|
|
4dd920df0d |
||
|
|
7aa6abfefe |
||
|
|
e75f9c9c7f |
||
|
|
7aa7534852 |
||
|
|
629374698d |
||
|
|
957f759197 |
||
|
|
6e84337898 |
||
|
|
a0b2ab7c0a |
||
|
|
beacf06c7d |
||
|
|
a0ff53b629 |
||
|
|
d03f4ce54a |
||
|
|
8599d7befa |
||
|
|
6be3295205 |
||
|
|
dcb7a7fdfc |
||
|
|
3600f5030a |
||
|
|
8d62a60d60 |
||
|
|
fef7b0827b |
||
|
|
db06fcd087 |
||
|
|
3d4f61419a |
||
|
|
b6c8d9a90a |
||
|
|
2e4fce7c67 |
||
|
|
296b9debd3 |
||
|
|
2a6e3da30a |
||
|
|
5445aebe94 |
||
|
|
e0d788bea9 |
||
|
|
65e7437eed |
||
|
|
797481410c |
||
|
|
424e94542c |
||
|
|
1707cafbbc |
||
|
|
7cbde83f38 |
||
|
|
459b5e1036 |
||
|
|
db00ae8eda |
||
|
|
830f70258e |
||
|
|
7b4befb0b1 | ||
|
|
0466bc6936 | ||
|
|
f2040797d7 |
||
|
|
b37cdf5ba9 |
||
|
|
8444ccf6f2 |
||
|
|
1c34c252cc |
||
|
|
0ebb21f0fb |
||
|
|
9173537ce5 |
||
|
|
43659cc5b3 |
||
|
|
d27e75c57f |
||
|
|
abcc37f9a1 |
||
|
|
76e7654242 |
||
|
|
c54fbdb075 |
||
|
|
eccfd345b5 |
||
|
|
d6866f6317 |
||
|
|
a98bf32b24 |
||
|
|
5f1b1efc66 | ||
|
|
4f9010b024 |
||
|
|
d59ad46a9e |
||
|
|
2417251f02 |
||
|
|
99d538ea97 |
||
|
|
3b7c870a53 |
||
|
|
331097f269 |
||
|
|
0b1ef79a8e |
||
|
|
0f0f9a0262 |
||
|
|
3e00b390c1 |
||
|
|
b4a61e11fa |
||
|
|
35a680632e |
||
|
|
d18b7bc4b8 |
||
|
|
1806aa0d7c |
||
|
|
8b105fc9c3 |
||
|
|
f078ee9f9a |
||
|
|
e4cfae2885 |
||
|
|
bd0c366b2f | ||
|
|
f9d80323dd |
||
|
|
308304b75e |
||
|
|
1cb7a33442 |
||
|
|
4325b06ac4 |
||
|
|
4591fb9b95 | ||
|
|
6870e916bb |
||
|
|
b27aed2497 |
||
|
|
94e8f8b8d7 |
||
|
|
fc6f6bde1d |
||
|
|
f16d1be955 |
||
|
|
77b8132591 |
||
|
|
df091f02ef | ||
|
|
efe0c8d534 |
||
|
|
d5a6d7719c |
||
|
|
5367d056e2 |
||
|
|
860d02d1fe |
||
|
|
9bb5c4f64a |
||
|
|
cfdd612c8d |
||
|
|
40076c6246 |
||
|
|
5670a4d7e7 |
||
|
|
4386f5fcb2 |
||
|
|
2c55110776 |
||
|
|
56494d8d1a |
||
|
|
b30cea0de0 |
||
|
|
6787ce9c40 |
||
|
|
ef8c886b10 |
||
|
|
cc70b98eed | ||
|
|
1c574e79e8 | ||
|
|
5481f3a684 |
||
|
|
7fafee8a6c | ||
|
|
5cde12b42a |
||
|
|
5004aac259 |
||
|
|
2460b570fe |
||
|
|
e316cd0719 |
||
|
|
60c9d1a070 |
||
|
|
46d7f399ff |
||
|
|
88c9017fdc |
||
|
|
46dbbb3b84 |
||
|
|
b756bce67f |
||
|
|
1ed6966cbe |
||
|
|
fbcce0b20c |
||
|
|
96b97b25bf |
||
|
|
cfab21bc81 |
||
|
|
d405bd48f0 |
||
|
|
1cba1416a1 | ||
|
|
cd3b561623 | ||
|
|
170039c1d1 |
||
|
|
38f68f77a0 |
||
|
|
84aa7a879c |
||
|
|
87f51ddbda |
||
|
|
011c9e66fb |
||
|
|
5a61e1007f |
||
|
|
c88f02c5a5 |
||
|
|
212f5c7270 |
||
|
|
7941f00c35 |
||
|
|
ed450c1268 |
||
|
|
76da9e55c9 |
||
|
|
086c7ae32d |
||
|
|
d61bb9c79b |
||
|
|
6c7cd651da | ||
|
|
f94ecaba84 |
||
|
|
f0cec1cf37 |
||
|
|
d7e103de59 |
||
|
|
65b983dcb6 |
||
|
|
d5e289880f |
||
|
|
e51a481219 |
||
|
|
62b795d472 |
||
|
|
8a7057b3b0 |
||
|
|
33a0c9e634 |
||
|
|
5fcebd0274 |
||
|
|
749c433ca6 |
||
|
|
cfe2424f4d |
||
|
|
ed88987308 |
||
|
|
86e43c92b3 |
||
|
|
ae3b92f1ef |
||
|
|
932f1e9161 |
||
|
|
b0ac644e9b |
||
|
|
25cccc32db |
||
|
|
2b5adacbb9 |
||
|
|
ab06920e74 | ||
|
|
c937c3bd8b |
||
|
|
9d488c97e0 |
||
|
|
9d24c039fe | ||
|
|
f738f1e246 | ||
|
|
95c751d4ac | ||
|
|
bf9e17a6c8 |
||
|
|
2baca5d57d | ||
|
|
b0fb67451d | ||
|
|
f454abf45a |
||
|
|
0dd73e249d |
||
|
|
54140e9adb |
||
|
|
45195d5bd6 |
||
|
|
2a056a7855 |
||
|
|
940d0f1906 |
||
|
|
1d2e1b15ea |
||
|
|
e424a85a99 |
||
|
|
939d22d670 |
||
|
|
90b7ea944d |
||
|
|
04a33e2206 |
||
|
|
95956f6362 |
||
|
|
e5d82915dd |
||
|
|
e3f673d9db |
||
|
|
4fd21432c5 |
||
|
|
9c4b412aea |
||
|
|
71b2edc0fe |
||
|
|
7661cd189f |
||
|
|
0833a6d6d3 |
||
|
|
7d851d8434 |
||
|
|
2c29e1ca76 |
||
|
|
5a57ee99ac | ||
|
|
735b6b6c87 | ||
|
|
7ea0601fc6 | ||
|
|
99537f2816 | ||
|
|
b384bb885b |
||
|
|
2255af1c45 |
||
|
|
f55b781d86 |
||
|
|
38d9a9551f |
||
|
|
c38cee0a4a |
||
|
|
0f9c7b1bbf |
||
|
|
32ddbd8e05 |
||
|
|
67c493f1a8 |
||
|
|
69c513e33d |
||
|
|
82b910dd6d |
||
|
|
5d0a58cc6a |
||
|
|
368ca13314 |
||
|
|
2cee1edcb5 |
||
|
|
1b288a0a1a | ||
|
|
81aba310d0 |
||
|
|
b050a07362 |
||
|
|
021efab84d |
||
|
|
0a42a050bd |
||
|
|
9ca1b30da1 |
||
|
|
220d5535f7 |
||
|
|
0895e6a508 |
||
|
|
ed5532a535 |
||
|
|
6f41dbf954 |
||
|
|
c7ed7e72d4 |
||
|
|
a7208f5262 |
||
|
|
09f6680aa9 | ||
|
|
9261130fed | ||
|
|
fec22e0052 | ||
|
|
7c921d6a81 |
||
|
|
16a029754f | ||
|
|
3c9fd67fd0 | ||
|
|
724ca386e7 | ||
|
|
6f75b00463 | ||
|
|
105d9f0d3a | ||
|
|
38f6b1297d | ||
|
|
cf130a6e25 |
||
|
|
e91c30fad0 | ||
|
|
3e3f7b9273 | ||
|
|
88ff84f5a5 |
||
|
|
eee373f15a |
||
|
|
c839c053cb |
||
|
|
238b9ede78 | ||
|
|
c7bd39abc7 | ||
|
|
85b1f909a7 | ||
|
|
675f502802 |
||
|
|
db5553ec75 |
||
|
|
413191411f |
||
|
|
45b2681dfc |
||
|
|
f0986a6441 | ||
|
|
e6645136f9 | ||
|
|
189820135a | ||
|
|
f19cc528d4 | ||
|
|
2b9891da2c |
||
|
|
a5c843f5c6 | ||
|
|
aa8e74539c | ||
|
|
d1968489b7 | ||
|
|
33946a7aac | ||
|
|
ddf74d3793 | ||
|
|
1b3b8178ec | ||
|
|
bf3bdadd90 | ||
|
|
aba82cc527 | ||
|
|
e92994d2e7 |
||
|
|
26d9b3a832 | ||
|
|
bfabaa50bc | ||
|
|
7fcd172387 | ||
|
|
c5bb4c7405 | ||
|
|
98aff7778e | ||
|
|
4ab6352504 | ||
|
|
b325381ca0 | ||
|
|
bc0a9b2e52 | ||
|
|
75c0236a04 |
||
|
|
ec2ce3fcfb |
||
|
|
e9a9420e5c | ||
|
|
209e097ba6 | ||
|
|
8d234cc842 | ||
|
|
e6805707d8 | ||
|
|
acd6f7af5b | ||
|
|
f38532bcf5 |
||
|
|
4b2189ba51 | ||
|
|
fb46cce963 | ||
|
|
eedd5eb7d2 | ||
|
|
716f4af808 | ||
|
|
c21784037d | ||
|
|
0fde6c9922 | ||
|
|
6d90c1678c | ||
|
|
a7fb568aff | ||
|
|
065ca5f6d3 | ||
|
|
ab9eec12eb | ||
|
|
430736a4f2 | ||
|
|
161444107a | ||
|
|
12e2e2101a | ||
|
|
e39097a17e | ||
|
|
be7c723c47 | ||
|
|
a60b198b03 | ||
|
|
e06df85f02 | ||
|
|
288a4757f8 | ||
|
|
29363fc07f | ||
|
|
02a1b540ce | ||
|
|
a048233f4c | ||
|
|
758c4c2c8d | ||
|
|
adae39efee | ||
|
|
84e1bb4d9b | ||
|
|
6b0daf3da9 | ||
|
|
b6c5d90c9d | ||
|
|
a34ccbff33 | ||
|
|
4cd4b46772 | ||
|
|
3d93c83920 | ||
|
|
809863d61a | ||
|
|
4c7b643295 | ||
|
|
05b16f1d63 | ||
|
|
bfa53dfd6c | ||
|
|
4467a1ffa2 | ||
|
|
bfe9a9d015 | ||
|
|
7e687750b2 |
||
|
|
0c3025d695 |
||
|
|
a9c22f0588 |
||
|
|
b8537d1c96 |
||
|
|
12d12a33de | ||
|
|
1956f95f9f | ||
|
|
723dd976b4 | ||
|
|
65251cdafa | ||
|
|
471d626043 |
||
|
|
0b82968c0f |
||
|
|
0584a3929d |
||
|
|
09815e6035 |
||
|
|
9a01650622 |
||
|
|
fb5afbd394 |
||
|
|
fc105cee2b |
||
|
|
1ec3b4ecab |
||
|
|
6e2bbe31ac |
||
|
|
5670c1e655 |
||
|
|
7f5d836916 |
||
|
|
cbaf859103 |
||
|
|
5115b294ee |
||
|
|
c01bc4dbd7 |
||
|
|
7674f8eb2b | ||
|
|
773bdf8ea2 |
||
|
|
b249f0d0ce |
||
|
|
6522657893 |
||
|
|
c82facd6ff |
||
|
|
bcb390f611 |
||
|
|
a805d6c2b1 |
||
|
|
3d08f92705 |
||
|
|
2436229145 |
||
|
|
e5c14d24ae |
||
|
|
23c1a7d1d8 |
||
|
|
44bbce125b |
||
|
|
dff47263d5 | ||
|
|
861ddea1b2 |
||
|
|
ab22ea1f27 |
||
|
|
a6757c352f |
||
|
|
2d97776caa |
||
|
|
3cd26a2220 |
||
|
|
f759162fd1 |
||
|
|
6c3bd124ce |
||
|
|
68b12d4fff |
||
|
|
1195464acb | ||
|
|
68e779d64e |
||
|
|
df0419a7d6 |
||
|
|
3dff6c6875 |
||
|
|
07421ead41 |
||
|
|
b6dc199993 |
||
|
|
6d8a004f4a |
||
|
|
1dae9f613f |
||
|
|
34f7f24e7e |
||
|
|
40bd6125f5 |
||
|
|
012eeab3aa | ||
|
|
2f3eb70a4d | ||
|
|
b37d0f1cf4 | ||
|
|
6262a4fac7 |
||
|
|
c531c714d4 |
||
|
|
d423c1c366 |
||
|
|
5b51e0fad3 |
||
|
|
4151deb9f6 |
||
|
|
d8f9ea7a33 |
||
|
|
46127c8d4d |
||
|
|
8a12a32d31 |
||
|
|
9f567fe2bc |
||
|
|
7f8c1c8a68 |
||
|
|
4a910a7197 |
||
|
|
4c3cbc3535 |
||
|
|
0974a3ad18 |
||
|
|
b08126d745 |
||
|
|
d1255d3a9d |
||
|
|
cf7537df01 |
||
|
|
3e419de86b |
||
|
|
2bb25b12ff |
||
|
|
cdf4bdd2ba |
||
|
|
e0b8da86ed |
||
|
|
472288b2e3 |
||
|
|
51afac4f22 |
||
|
|
daed4141f5 |
||
|
|
157c5e91fc |
||
|
|
e51e184cca |
||
|
|
2b3c96ab3d |
||
|
|
371e57588f |
||
|
|
182f43004a |
||
|
|
23c2660fb0 |
||
|
|
ea409a2cb2 |
||
|
|
984db8620a |
||
|
|
995d9fdc9b |
||
|
|
4b04c10f14 |
||
|
|
43c4966873 |
||
|
|
85fc3a3af6 |
||
|
|
85d68cec55 |
||
|
|
89b5f0af20 |
||
|
|
659f3fa8e2 |
||
|
|
8242834fbd |
||
|
|
814e1ec059 |
||
|
|
12efb8b981 |
||
|
|
b9558cc3cb |
||
|
|
022baad9e5 |
||
|
|
9629b1414e | ||
|
|
ea44cf850c | ||
|
|
61c8c9eac0 | ||
|
|
c89f59dc7c |
||
|
|
1fed110afd |
||
|
|
4ea6a2d120 |
||
|
|
f84bb6a287 | ||
|
|
869a6f761a | ||
|
|
2d3029482d | ||
|
|
250e9f91ba | ||
|
|
df49f49c60 |
||
|
|
3e0ff5edbd | ||
|
|
1142e81348 | ||
|
|
ae38d1e020 |
||
|
|
eefeadc018 | ||
|
|
4593b52863 |
||
|
|
7333ca6c61 |
||
|
|
5b5a4ba4cc |
||
|
|
9af14015e4 | ||
|
|
ef80562a0f | ||
|
|
0b48c3456b |
||
|
|
1f16655769 |
||
|
|
b8d780ba4a |
||
|
|
965460edb7 | ||
|
|
53ea6511fc | ||
|
|
eae73dfa18 |
||
|
|
27c4c5e6f6 | ||
|
|
6f197f67f1 | ||
|
|
412c3a5ed1 |
||
|
|
385b1dbfd4 | ||
|
|
0a4c596ecb | ||
|
|
d2e0e0ed81 | ||
|
|
f787cf4bc2 | ||
|
|
ca21a3b79d | ||
|
|
a773da2651 | ||
|
|
1a90b45f18 | ||
|
|
9f6cd35155 | ||
|
|
f122db2e7b | ||
|
|
d65f1b1647 | ||
|
|
0fc535f2f1 | ||
|
|
e420900e55 | ||
|
|
0cd64d1fbc | ||
|
|
46a0030387 | ||
|
|
495da9b292 | ||
|
|
efb300c9f0 | ||
|
|
7f1706fc74 | ||
|
|
8dbbdc4bf2 | ||
|
|
7c15f9098c |
||
|
|
36a3e90b1d |
||
|
|
3882201434 |
||
|
|
857bf40072 |
||
|
|
075eb1fa3f |
||
|
|
dbb7c6e7d0 |
||
|
|
947d429688 |
||
|
|
f49d42678b |
||
|
|
f28c9515ad |
||
|
|
c6ecbd56e5 | ||
|
|
144567410d | ||
|
|
1b850662ed | ||
|
|
c7c4cacc29 | ||
|
|
7e63355353 | ||
|
|
01652c7940 | ||
|
|
b379e3b0eb | ||
|
|
a2fde7f2c3 | ||
|
|
2beb452207 | ||
|
|
73384a562b | ||
|
|
985c5bf8e2 | ||
|
|
daec8a9a64 |
||
|
|
f88a7a6f99 |
||
|
|
dc16d145c2 |
||
|
|
8432ddc2a8 |
||
|
|
d072393149 |
||
|
|
a8e95bf7f1 |
||
|
|
1735bdc9a2 |
||
|
|
f00685d592 |
||
|
|
ee194f3e46 |
||
|
|
82a9c5b1dd |
||
|
|
fdd8875986 |
||
|
|
3b50e0cbc5 |
||
|
|
fb7fda2256 |
||
|
|
d9beb6126e |
||
|
|
a81581129a | ||
|
|
e95a91861a | ||
|
|
fa5948f40e | ||
|
|
ad4c8aacfb | ||
|
|
afbc09f1e7 | ||
|
|
1a1e5b743a | ||
|
|
24853a7e3b |
||
|
|
1ce83913bd |
||
|
|
1650e26da7 |
||
|
|
bc01fd8ea3 | ||
|
|
3422c40e19 |
||
|
|
e661052c89 |
||
|
|
ff08a5ca2b |
||
|
|
f8250fb0d8 |
||
|
|
d1c3f8af7a | ||
|
|
36b4b3695b |
||
|
|
fb17ec8064 |
||
|
|
51f52656cc |
||
|
|
18746c7819 |
||
|
|
8463c01123 |
||
|
|
8e0671306a |
||
|
|
131a6da554 |
||
|
|
59273fcdab |
||
|
|
7795a2a46f |
||
|
|
2269f64b0a |
||
|
|
439da97573 |
||
|
|
2b478a4608 |
||
|
|
3b95725f09 |
||
|
|
3a23ad1382 |
||
|
|
61a7f1fba5 |
||
|
|
a8641672cd |
||
|
|
320fc20461 |
||
|
|
69f05c39ec |
||
|
|
e55ffedc35 |
||
|
|
0577fefd75 |
||
|
|
02713670c9 |
||
|
|
e6de878395 |
||
|
|
4c75b288bb |
||
|
|
263e1b527a | ||
|
|
3d88bf8795 |
||
|
|
740b2b0979 |
||
|
|
2b843fc12e |
||
|
|
473cf1cae3 |
||
|
|
65d4266400 |
||
|
|
8d5b86fff7 |
||
|
|
92843c8237 |
||
|
|
13b588b555 |
||
|
|
839a9ff498 |
||
|
|
ef8c16d773 |
||
|
|
602fafafea |
||
|
|
83ed7fd2df |
||
|
|
f07e4093be |
||
|
|
bf13afd895 |
||
|
|
9ffc06d42e |
||
|
|
ebe91ba11d | ||
|
|
48aef46f57 | ||
|
|
c77c823c3c | ||
|
|
ccccea1e50 | ||
|
|
a6163849c6 | ||
|
|
130aab3598 | ||
|
|
78b85ce0cc | ||
|
|
dbcf65b2d6 | ||
|
|
d8e27aa5f9 |
||
|
|
ce6d587771 |
||
|
|
81d7bc2d68 |
||
|
|
a49350f300 |
||
|
|
9ac6359e56 |
||
|
|
5958d9c646 |
||
|
|
9b88c8afda |
||
|
|
1b71fef89f |
||
|
|
8ddd29d285 |
||
|
|
dc8cbcf410 |
||
|
|
757a4383e6 | ||
|
|
7c98ee329a | ||
|
|
9d615463f4 |
||
|
|
aea0db5919 |
||
|
|
fc593d90cf |
||
|
|
2524f7b5a0 |
||
|
|
5a0cb1baef |
||
|
|
255690eee0 | ||
|
|
86b6e10620 |
||
|
|
b757292211 | ||
|
|
af54419a0b | ||
|
|
7b84b1c79c | ||
|
|
d047c22526 | ||
|
|
6feab70a72 | ||
|
|
5e1b5ca4e8 | ||
|
|
1726cdb0ad | ||
|
|
2b2828ea41 | ||
|
|
29859ceedf | ||
|
|
8e2527ad35 | ||
|
|
92b26488da | ||
|
|
efa67cb01c | ||
|
|
71fc222059 | ||
|
|
fa6adad4ab | ||
|
|
1c48d567e1 | ||
|
|
2c3216ba36 | ||
|
|
74e2a7e225 | ||
|
|
ff2c92451d | ||
|
|
2a83402d4a | ||
|
|
2449b473c0 | ||
|
|
60c44c44ff | ||
|
|
7e1d685167 | ||
|
|
a9d4a393ba | ||
|
|
a0953fea93 | ||
|
|
02d76835c9 | ||
|
|
dfe03f1347 | ||
|
|
c87489adf3 | ||
|
|
a428a730d5 | ||
|
|
7f7c642339 | ||
|
|
03b79e9a67 | ||
|
|
56b0fcebba | ||
|
|
d9a5130311 |
||
|
|
4663a45e59 |
||
|
|
fb820bcdad |
||
|
|
31c167b412 |
||
|
|
7cdab16ba9 |
||
|
|
05262134ca | ||
|
|
fe48b9d03d |
||
|
|
013ec1d726 |
||
|
|
27b4a984d5 | ||
|
|
d6b6111395 | ||
|
|
af8ee6703e | ||
|
|
793191a479 |
||
|
|
efc86c1056 |
||
|
|
39d44d2644 |
||
|
|
9584a2ce5a |
||
|
|
95b8ceb87a |
||
|
|
37b99b9cb8 |
||
|
|
86354e9fc0 | ||
|
|
b49f135e31 |
||
|
|
fff266f50d | ||
|
|
7cfea7c22c | ||
|
|
6141e5a8ce | ||
|
|
ed58949d24 |
||
|
|
c1d85bd3d9 |
||
|
|
8d3324465e |
||
|
|
8c72746edb |
||
|
|
ea3509d2e7 |
||
|
|
bb3a0cc54f |
||
|
|
d808654d99 | ||
|
|
a6cfdbb403 | ||
|
|
2f7c6834d0 | ||
|
|
ebdd57a7c4 | ||
|
|
4ff6d74054 |
||
|
|
0d8b4aafd5 |
||
|
|
0cca7e9189 |
||
|
|
a5812578c5 |
||
|
|
350b411afe |
||
|
|
9ca86c6093 |
||
|
|
01729ae22a |
||
|
|
9196dc2216 |
||
|
|
b925335bbb |
||
|
|
965f939967 |
||
|
|
00feccbb77 |
||
|
|
b6fc66ba0d |
||
|
|
c40debc0e9 |
||
|
|
3b31d70865 |
||
|
|
afa8b62de7 |
||
|
|
70fd15de2d |
||
|
|
c54d330f89 |
||
|
|
4028560d12 |
||
|
|
3c28c28623 |
||
|
|
a958fa06e7 |
||
|
|
4d39e9e15a |
||
|
|
679ec49e64 |
||
|
|
d98e1d3693 | ||
|
|
be3b7d754e |
||
|
|
ae524c4f84 |
||
|
|
d390cac8db |
||
|
|
17e20ab029 |
||
|
|
34b9b9b508 |
||
|
|
47fd06a445 |
||
|
|
b140ce546f | ||
|
|
08ec2beb7c |
||
|
|
5833f0f109 |
||
|
|
eb2ad258ed |
||
|
|
708aef53e4 |
||
|
|
e893c1c205 |
||
|
|
3e74255127 |
||
|
|
b8d7eed607 |
||
|
|
8eb62fb483 |
||
|
|
ee67bff9e3 |
||
|
|
21e47dcccf |
||
|
|
38ddcf59f8 |
||
|
|
4a62b6a5c7 | ||
|
|
6afbcb69f3 |
||
|
|
4bb522d303 |
||
|
|
f107173a73 |
||
|
|
eb5aff755f |
||
|
|
2384ae0819 |
||
|
|
4a5663c1cb |
||
|
|
9416e01042 | ||
|
|
54fcacfed1 | ||
|
|
69ac5caa4b |
||
|
|
cecbc156d5 |
||
|
|
8ca550cc9e |
||
|
|
d44c8eba1c |
||
|
|
6edd667bdf |
||
|
|
499ff50903 |
||
|
|
5e1f29eda3 |
||
|
|
e5571defb7 |
||
|
|
125d8a6f78 |
||
|
|
21790dc3ee |
||
|
|
cdf48e0589 |
||
|
|
2f9f63771b | ||
|
|
93335b3843 |
||
|
|
f50c8f447e | ||
|
|
bd9f7deb98 | ||
|
|
2171192934 | ||
|
|
3352ebef6e |
||
|
|
2a51ddadfc |
||
|
|
0745aea4d6 |
||
|
|
4804b34208 |
||
|
|
841289f1d1 |
||
|
|
c367ef461e |
||
|
|
ffed41553a | ||
|
|
79deb37675 |
||
|
|
77ca8fe9e6 |
||
|
|
25e58edf28 | ||
|
|
0f2d19c56e | ||
|
|
8bde3d7522 | ||
|
|
c169d26d95 | ||
|
|
946a4c56a0 | ||
|
|
23e87e0ad7 |
||
|
|
7d678154c6 |
||
|
|
0b9fec3f87 |
||
|
|
763c7708f4 |
||
|
|
5f2c1f4534 |
||
|
|
3ac557ccb1 |
||
|
|
e6c691a376 |
||
|
|
ee8eb001c2 |
||
|
|
db836b7a48 |
||
|
|
543b18dd54 |
||
|
|
ec0731d5d8 |
||
|
|
cc5c7d1d29 |
||
|
|
e79c1b7ea3 | ||
|
|
6cbead5bfe |
||
|
|
429bb2bf17 |
||
|
|
c03c41cb21 |
||
|
|
ee29faecbf |
||
|
|
d1d0105276 |
||
|
|
1059e36b52 |
||
|
|
15f602f867 |
||
|
|
13be4a333f |
||
|
|
2553fa1f74 |
||
|
|
f0f5011484 |
||
|
|
5671f3527b |
||
|
|
adb26fa99f |
||
|
|
805429a7c6 |
||
|
|
39af86e59d |
||
|
|
ecf970d6fe | ||
|
|
c9ce17a4d5 |
||
|
|
a6e279f0d3 | ||
|
|
842bc3733e | ||
|
|
5e76a5e76a | ||
|
|
52c3c49f25 |
||
|
|
705239ad7d |
||
|
|
dc865404a9 |
||
|
|
ba7ab2e607 |
||
|
|
d6cfe4414d |
||
|
|
ecbb135949 |
||
|
|
fcb98e6523 |
||
|
|
e7e5597c95 | ||
|
|
7f0479d8b4 | ||
|
|
f5c78f365d |
||
|
|
1fc5f9b12d |
||
|
|
3f55ce6dfc |
||
|
|
1d562d3c27 |
||
|
|
f3974deb88 |
||
|
|
1945616328 |
||
|
|
7db6604227 |
||
|
|
12ce6c5ac3 |
||
|
|
5d9bc4ca81 | ||
|
|
c0b4a3ff35 |
||
|
|
f0bf8cd827 |
||
|
|
10144adf61 |
||
|
|
3efab5ba23 |
||
|
|
3d323ab9d2 | ||
|
|
16ce9e562f | ||
|
|
90e66a7ad4 |
||
|
|
6b59216b32 |
||
|
|
9764ba6334 |
||
|
|
da5929ff34 |
||
|
|
e419822c77 |
||
|
|
b62ce4440e |
||
|
|
3c81fb06e8 |
||
|
|
c27366a270 |
||
|
|
5b6f6c1bff |
||
|
|
3fcac435b2 |
||
|
|
03a3edcdc9 |
||
|
|
5737b3cc7b | ||
|
|
b898b79aaf |
||
|
|
3827ca2d78 |
||
|
|
4de5e1b9f1 |
||
|
|
eb18f02fd2 | ||
|
|
1a7d105917 | ||
|
|
de5cff799e | ||
|
|
67cada78f6 | ||
|
|
5a40f25d03 | ||
|
|
1a09a8a4c8 | ||
|
|
daa0cf83d9 | ||
|
|
e92858f64d | ||
|
|
d52c26e82f | ||
|
|
83900b03d4 | ||
|
|
c123430f22 | ||
|
|
33e20cbc77 | ||
|
|
e942312c4c | ||
|
|
de2e78b507 | ||
|
|
da4a7ac64b | ||
|
|
e44fbc26ba | ||
|
|
bef454f950 | ||
|
|
94e1ec91ad | ||
|
|
56d11ab419 |
||
|
|
c96cccab2e |
||
|
|
989ef1b4a8 |
||
|
|
45cfbe917e |
||
|
|
2e313005e0 |
||
|
|
722c3a653c |
||
|
|
76672facfe |
||
|
|
8f075b5d8d | ||
|
|
b317efaf2c | ||
|
|
29b9c5200f |
||
|
|
4d2b4b4ee7 |
||
|
|
9f8f095a78 |
||
|
|
59c09ebee1 |
||
|
|
5f81a87912 |
||
|
|
7f6151d573 |
||
|
|
9816960995 |
||
|
|
3355d5f0af |
||
|
|
ab38b20444 |
||
|
|
f278229179 | ||
|
|
552390fb84 | ||
|
|
68573cdc48 |
||
|
|
cdf397aaa9 | ||
|
|
ed27558011 |
||
|
|
50387948df | ||
|
|
9b48cc1799 | ||
|
|
86f2ac0e96 | ||
|
|
1537a002cc |
||
|
|
ae9b158b04 |
||
|
|
72ec10b181 | ||
|
|
eed4002a4a | ||
|
|
155e34c7a8 | ||
|
|
22cc649e81 |
||
|
|
367ca745c3 |
||
|
|
01e2e46e0d |
||
|
|
c03078ca16 |
||
|
|
49e62aebe3 |
||
|
|
dc4daaebac |
||
|
|
f855b30c9f | ||
|
|
b614e2b100 | ||
|
|
eafbbab233 | ||
|
|
72a4e9cf6e |
||
|
|
1dbe100a43 |
||
|
|
287d3d066c |
||
|
|
9387d18e88 |
||
|
|
1600bcb1d0 |
||
|
|
2b2defb7c0 |
||
|
|
6d786902eb |
||
|
|
286ce206f0 |
||
|
|
7535f098bd |
||
|
|
b517461fbe |
||
|
|
ffbe67e21f |
||
|
|
833671d30c |
||
|
|
ae691b8e52 |
||
|
|
2b56b7b6b9 |
||
|
|
81a5380f67 |
||
|
|
7c45e3ac13 |
||
|
|
d1932c36ce |
||
|
|
adb7ddf8d2 |
||
|
|
3b0a57ca6d |
||
|
|
4ee75e93c9 |
||
|
|
ff218e5323 |
||
|
|
df0969d1c6 |
||
|
|
23d7ac0e58 |
||
|
|
f9a87944cf |
||
|
|
eff456aa1a |
||
|
|
1ce07cd67c |
||
|
|
fc7952ff3b |
||
|
|
bb28bdf565 |
||
|
|
04d5842124 |
||
|
|
1a12890556 |
||
|
|
d021d885ca |
||
|
|
3433b8ce8f |
||
|
|
6092730acc |
||
|
|
ba4ffe4ecc |
||
|
|
55b3e2d35a |
||
|
|
6b926ec463 |
||
|
|
9b686b5417 |
||
|
|
82ec56bc7d |
||
|
|
798e51d4d3 |
||
|
|
35c41552de |
||
|
|
19be7f61ac | ||
|
|
bbf0e8cdad | ||
|
|
7e2d2a29a1 | ||
|
|
671dc2aa3a | ||
|
|
294a2c701e | ||
|
|
01f03c552d | ||
|
|
dc46154d94 | ||
|
|
87737c23eb | ||
|
|
6e6f099a99 | ||
|
|
4cb3321c39 | ||
|
|
6a2343a1a0 | ||
|
|
f2d6dba2cf | ||
|
|
dd1ef7fae9 | ||
|
|
527cff9ec3 | ||
|
|
ba150eccae | ||
|
|
fa74986f1e | ||
|
|
d1085b5bea | ||
|
|
4d0a14d2eb | ||
|
|
8c3439b733 | ||
|
|
a0534d527a | ||
|
|
a5b52f2795 | ||
|
|
b526ebd679 | ||
|
|
51b9315ae9 | ||
|
|
8edf44dc31 | ||
|
|
9b7626e59e | ||
|
|
6dd092c7a9 | ||
|
|
46a0d467c0 | ||
|
|
e3b164ae93 | ||
|
|
d8f58ab20f | ||
|
|
0de2bccd28 | ||
|
|
2eaf724710 | ||
|
|
58138ac09b | ||
|
|
143f090422 | ||
|
|
f8f466ba7e | ||
|
|
cb28de47f8 | ||
|
|
4ad2475ed6 | ||
|
|
0172078536 | ||
|
|
0bb1fb512a | ||
|
|
b6940d95a2 | ||
|
|
75f0457375 | ||
|
|
ffe31b6265 | ||
|
|
8963610722 | ||
|
|
66bfcf0e36 | ||
|
|
0b3559abfe | ||
|
|
773389ee5e | ||
|
|
4c04991d4d | ||
|
|
d56bb59b72 | ||
|
|
6e92a4f71e | ||
|
|
1f6217c0d8 | ||
|
|
17204bebd0 | ||
|
|
728e2019d8 | ||
|
|
7f3fdd6977 | ||
|
|
e8798f8371 | ||
|
|
402b743553 | ||
|
|
f08ae2fc62 | ||
|
|
178ea9c8c5 | ||
|
|
7c63cee9e8 | ||
|
|
4a60dfc373 | ||
|
|
829a829cb4 | ||
|
|
34896ccb4e | ||
|
|
5df5eb6a04 | ||
|
|
31ba36baf3 | ||
|
|
bf10f71760 | ||
|
|
8aa61fff6d | ||
|
|
f645b530da |
||
|
|
27573d191e | ||
|
|
d6b4fdf979 |
||
|
|
39c834b83f |
||
|
|
f210357bfe |
||
|
|
3094c19cf3 | ||
|
|
225437f1e8 | ||
|
|
a23bb1e350 |
||
|
|
2fbb21a84e | ||
|
|
5c08fcb43e | ||
|
|
cc59655cb1 | ||
|
|
8ff0a2b0ff | ||
|
|
fe549af784 | ||
|
|
a4549c94c1 | ||
|
|
706256d3f0 | ||
|
|
3049773e7f | ||
|
|
9da5df354e | ||
|
|
54ba6d47f4 | ||
|
|
17647e2c2f | ||
|
|
9da5cea88d | ||
|
|
3784746ddb | ||
|
|
281f6335c1 | ||
|
|
5129c0f4e2 | ||
|
|
5078e89a71 | ||
|
|
41aef27631 | ||
|
|
754d0934bf | ||
|
|
be2d616190 | ||
|
|
ba34e47c4b | ||
|
|
a485b188b3 | ||
|
|
718e89ad1e | ||
|
|
9453a60254 | ||
|
|
f87ec9d401 | ||
|
|
cb1859a710 | ||
|
|
1ed95164db | ||
|
|
ac5d0e54f0 | ||
|
|
b1e79411e7 | ||
|
|
a9d834d715 | ||
|
|
68cfd130d3 | ||
|
|
93a4b823c8 | ||
|
|
769662d77a | ||
|
|
7fd627f169 |
||
|
|
b91468b6f2 | ||
|
|
0b9cd4be5d |
||
|
|
4c587ee1b8 |
||
|
|
19e1e8b8a6 |
||
|
|
67e9522c67 |
||
|
|
a829b38a34 |
||
|
|
c8dae94b5b |
||
|
|
87267758ac | ||
|
|
5f72df81fb | ||
|
|
1ed270fe05 |
||
|
|
19a654a2b1 |
||
|
|
f9bbc11711 |
||
|
|
42b1807c36 |
||
|
|
647982de1a |
||
|
|
f5557c612a |
||
|
|
f4749db8b3 | ||
|
|
86a1de6788 | ||
|
|
792c5e2d95 | ||
|
|
6758580be9 |
||
|
|
6f246eed4a | ||
|
|
fc3725d3f4 | ||
|
|
00c6f0dfdb |
||
|
|
cf7b4e2458 |
||
|
|
f682e44367 |
||
|
|
9d1f86c410 |
||
|
|
dac281ac32 |
||
|
|
29a58086a3 |
||
|
|
cb8eb755a7 |
||
|
|
1e8fc29ee4 |
||
|
|
9a05b49e3d |
||
|
|
79f8d92084 |
||
|
|
6e56542586 |
||
|
|
c53443b62b |
||
|
|
1128662c89 |
||
|
|
676787417f |
||
|
|
57422dccf3 |
||
|
|
7f3f51e36b |
||
|
|
ef184ec8bf | ||
|
|
9bfe3094dd |
||
|
|
3547b4d010 |
||
|
|
1222e3aa1b |
||
|
|
cff3ee5079 |
||
|
|
c91aa462aa |
||
|
|
62b3775e2f |
||
|
|
54bf8c1142 |
||
|
|
c4f613e4c5 |
||
|
|
a66d9ab0b1 |
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"files": [
|
||||
"website/src/pages/credits.mdx"
|
||||
"website/src/pages/credits.mdx",
|
||||
"docs/src/assets/contributors.html"
|
||||
],
|
||||
"imageSize": 75,
|
||||
"commit": false,
|
||||
|
|
|
|||
71
.coderabbit.yaml
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
language: en-US
|
||||
tone_instructions: ''
|
||||
early_access: false
|
||||
enable_free_tier: true
|
||||
reviews:
|
||||
profile: chill
|
||||
request_changes_workflow: false
|
||||
high_level_summary: true
|
||||
high_level_summary_placeholder: '@coderabbitai summary'
|
||||
auto_title_placeholder: '@coderabbitai'
|
||||
review_status: true
|
||||
poem: true
|
||||
collapse_walkthrough: false
|
||||
sequence_diagrams: true
|
||||
path_filters: []
|
||||
path_instructions: []
|
||||
abort_on_close: true
|
||||
auto_review:
|
||||
enabled: true
|
||||
auto_incremental_review: true
|
||||
ignore_title_keywords: []
|
||||
labels: []
|
||||
drafts: false
|
||||
base_branches: ['v3-alpha', 'master']
|
||||
tools:
|
||||
shellcheck:
|
||||
enabled: true
|
||||
ruff:
|
||||
enabled: true
|
||||
markdownlint:
|
||||
enabled: true
|
||||
github-checks:
|
||||
enabled: true
|
||||
timeout_ms: 90000
|
||||
languagetool:
|
||||
enabled: true
|
||||
enabled_only: false
|
||||
level: default
|
||||
biome:
|
||||
enabled: true
|
||||
hadolint:
|
||||
enabled: true
|
||||
swiftlint:
|
||||
enabled: true
|
||||
phpstan:
|
||||
enabled: true
|
||||
level: default
|
||||
golangci-lint:
|
||||
enabled: true
|
||||
yamllint:
|
||||
enabled: true
|
||||
gitleaks:
|
||||
enabled: true
|
||||
checkov:
|
||||
enabled: true
|
||||
detekt:
|
||||
enabled: true
|
||||
eslint:
|
||||
enabled: true
|
||||
chat:
|
||||
auto_reply: true
|
||||
knowledge_base:
|
||||
opt_out: false
|
||||
learnings:
|
||||
scope: auto
|
||||
issues:
|
||||
scope: auto
|
||||
jira:
|
||||
project_keys: []
|
||||
linear:
|
||||
team_keys: []
|
||||
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
|
@ -7,6 +7,8 @@ body:
|
|||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
***Please note: No bug reports are currently being accepted for Wails v3***
|
||||
***Please note: No bug reports are currently being accepted for Wails v3***
|
||||
***Please note: No bug reports are currently being accepted for Wails v3***
|
||||
Before submitting this issue, please do the following:
|
||||
- Do a web search for your error. This usually leads to a much better understanding of the issue.
|
||||
|
|
@ -70,7 +72,7 @@ body:
|
|||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: systemdetails
|
||||
id: systemetails
|
||||
attributes:
|
||||
label: System Details
|
||||
description: Please add the output of `wails doctor`.
|
||||
|
|
|
|||
3
.github/pull_request_template.md
vendored
|
|
@ -6,6 +6,7 @@
|
|||
* YOUR PR MAY BE REJECTED IF IT DOES NOT FOLLOW THESE STEPS *
|
||||
*********************************************************************
|
||||
|
||||
- *DO NOT* submit bugs for a source install of v3, ONLY tagged versions, e.g. v3.0.0-alpha.11
|
||||
- *DO NOT* submit PRs for v3 alpha enhancements, unless you have opened a post on the discord channel.
|
||||
All enhancements must be discussed first.
|
||||
The feedback guide for v3 is here: https://v3alpha.wails.io/getting-started/feedback/
|
||||
|
|
@ -47,7 +48,7 @@ Please paste the output of `wails doctor`. If you are unable to run this command
|
|||
|
||||
# Checklist:
|
||||
|
||||
- [ ] I have updated `website/src/pages/changelog.mdx` with details of this PR
|
||||
- [ ] I have updated `v3/UNRELEASED_CHANGELOG.md` with details of this PR
|
||||
- [ ] My code follows the general coding style of this project
|
||||
- [ ] I have performed a self-review of my own code
|
||||
- [ ] I have commented my code, particularly in hard-to-understand areas
|
||||
|
|
|
|||
2
.github/workflows/auto-label-issues.yml
vendored
|
|
@ -3,7 +3,7 @@ name: Auto Label Issues
|
|||
on:
|
||||
issues:
|
||||
types: [opened, edited, reopened]
|
||||
pull_request:
|
||||
pull_request_target:
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
jobs:
|
||||
|
|
|
|||
372
.github/workflows/automated-releases.yml
vendored
Normal file
|
|
@ -0,0 +1,372 @@
|
|||
name: Automated Nightly Releases
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
force_release:
|
||||
description: 'Force release even if no changes detected'
|
||||
required: false
|
||||
default: false
|
||||
type: boolean
|
||||
dry_run:
|
||||
description: 'Run in dry-run mode (no actual releases)'
|
||||
required: false
|
||||
default: false
|
||||
type: boolean
|
||||
# schedule:
|
||||
# Run at 2 AM UTC every day - DISABLED for safety until ready
|
||||
# - cron: '0 2 * * *'
|
||||
|
||||
env:
|
||||
GO_VERSION: '1.24'
|
||||
|
||||
jobs:
|
||||
check-permissions:
|
||||
name: Check Release Permissions
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
authorized: ${{ steps.check.outputs.authorized }}
|
||||
steps:
|
||||
- name: Check if user is authorized for releases
|
||||
id: check
|
||||
run: |
|
||||
# Only allow specific users to trigger releases
|
||||
AUTHORIZED_USERS="leaanthony"
|
||||
|
||||
if [[ "$AUTHORIZED_USERS" == *"${{ github.actor }}"* ]]; then
|
||||
echo "✅ User ${{ github.actor }} is authorized for releases"
|
||||
echo "authorized=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "❌ User ${{ github.actor }} is not authorized for releases"
|
||||
echo "authorized=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
detect-v2-changes:
|
||||
name: Detect v2 Changes
|
||||
runs-on: ubuntu-latest
|
||||
needs: check-permissions
|
||||
if: needs.check-permissions.outputs.authorized == 'true'
|
||||
outputs:
|
||||
has_changes: ${{ steps.changes.outputs.has_changes }}
|
||||
commits_since_last: ${{ steps.changes.outputs.commits_since_last }}
|
||||
last_release_tag: ${{ steps.changes.outputs.last_release_tag }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check for v2 changes since last release
|
||||
id: changes
|
||||
run: |
|
||||
echo "🔍 Checking for v2 changes since last release..."
|
||||
|
||||
# Find the last v2 release tag
|
||||
LAST_TAG=$(git tag -l "v2.*" --sort=-version:refname | head -n 1)
|
||||
if [ -z "$LAST_TAG" ]; then
|
||||
echo "No previous v2 tags found, assuming first release"
|
||||
LAST_TAG=$(git rev-list --max-parents=0 HEAD)
|
||||
echo "has_changes=true" >> $GITHUB_OUTPUT
|
||||
echo "commits_since_last=999" >> $GITHUB_OUTPUT
|
||||
echo "last_release_tag=none" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "Last v2 release tag: $LAST_TAG"
|
||||
echo "last_release_tag=$LAST_TAG" >> $GITHUB_OUTPUT
|
||||
|
||||
# Count commits since last release affecting v2 or root files
|
||||
COMMITS_COUNT=$(git rev-list --count ${LAST_TAG}..HEAD -- v2/ website/ README.md CHANGELOG.md || echo "0")
|
||||
echo "Commits since last v2 release: $COMMITS_COUNT"
|
||||
echo "commits_since_last=$COMMITS_COUNT" >> $GITHUB_OUTPUT
|
||||
|
||||
if [ "$COMMITS_COUNT" -gt 0 ] || [ "${{ github.event.inputs.force_release }}" == "true" ]; then
|
||||
echo "✅ Changes detected or forced release"
|
||||
echo "has_changes=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "ℹ️ No changes detected since last release"
|
||||
echo "has_changes=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
fi
|
||||
|
||||
detect-v3-changes:
|
||||
name: Detect v3-alpha Changes
|
||||
runs-on: ubuntu-latest
|
||||
needs: check-permissions
|
||||
if: needs.check-permissions.outputs.authorized == 'true'
|
||||
outputs:
|
||||
has_changes: ${{ steps.changes.outputs.has_changes }}
|
||||
commits_since_last: ${{ steps.changes.outputs.commits_since_last }}
|
||||
last_release_tag: ${{ steps.changes.outputs.last_release_tag }}
|
||||
steps:
|
||||
- name: Checkout v3-alpha branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: v3-alpha
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check for v3-alpha changes since last release
|
||||
id: changes
|
||||
run: |
|
||||
echo "🔍 Checking for v3-alpha changes since last release..."
|
||||
|
||||
# Find the last v3 alpha release tag
|
||||
LAST_TAG=$(git tag -l "v3.*-alpha.*" --sort=-version:refname | head -n 1)
|
||||
if [ -z "$LAST_TAG" ]; then
|
||||
echo "No previous v3-alpha tags found, assuming first release"
|
||||
LAST_TAG=$(git rev-list --max-parents=0 HEAD)
|
||||
echo "has_changes=true" >> $GITHUB_OUTPUT
|
||||
echo "commits_since_last=999" >> $GITHUB_OUTPUT
|
||||
echo "last_release_tag=none" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "Last v3-alpha release tag: $LAST_TAG"
|
||||
echo "last_release_tag=$LAST_TAG" >> $GITHUB_OUTPUT
|
||||
|
||||
# Count commits since last release affecting v3 or docs
|
||||
COMMITS_COUNT=$(git rev-list --count ${LAST_TAG}..HEAD -- v3/ docs/ || echo "0")
|
||||
echo "Commits since last v3-alpha release: $COMMITS_COUNT"
|
||||
echo "commits_since_last=$COMMITS_COUNT" >> $GITHUB_OUTPUT
|
||||
|
||||
if [ "$COMMITS_COUNT" -gt 0 ] || [ "${{ github.event.inputs.force_release }}" == "true" ]; then
|
||||
echo "✅ Changes detected or forced release"
|
||||
echo "has_changes=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "ℹ️ No changes detected since last release"
|
||||
echo "has_changes=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
fi
|
||||
|
||||
release-v2:
|
||||
name: Create v2 Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-permissions, detect-v2-changes]
|
||||
if: |
|
||||
needs.check-permissions.outputs.authorized == 'true' &&
|
||||
needs.detect-v2-changes.outputs.has_changes == 'true'
|
||||
outputs:
|
||||
version: ${{ steps.release.outputs.version }}
|
||||
release_notes: ${{ steps.release.outputs.release_notes }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
|
||||
- name: Run v2 release script and extract notes
|
||||
id: release
|
||||
run: |
|
||||
echo "🚀 Running v2 release script..."
|
||||
cd v2/tools/release
|
||||
|
||||
# Run release script and capture output
|
||||
RELEASE_OUTPUT=$(go run release.go 2>&1)
|
||||
echo "$RELEASE_OUTPUT"
|
||||
|
||||
# Extract version from output or version file
|
||||
NEW_VERSION=$(cat ../../cmd/wails/internal/version.txt)
|
||||
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
# Extract release notes from delimited output
|
||||
RELEASE_NOTES=$(echo "$RELEASE_OUTPUT" | sed -n '/=== RELEASE NOTES FOR/,/=== END RELEASE NOTES ===/p' | sed '1d;$d')
|
||||
|
||||
# Save release notes to file for multiline output
|
||||
echo "$RELEASE_NOTES" > ../../../release_notes_v2.md
|
||||
|
||||
# Set output (escape for GitHub Actions)
|
||||
{
|
||||
echo "release_notes<<EOF"
|
||||
echo "$RELEASE_NOTES"
|
||||
echo "EOF"
|
||||
} >> $GITHUB_OUTPUT
|
||||
|
||||
echo "✅ v2 release script completed - version: $NEW_VERSION"
|
||||
|
||||
- name: Create v2 git tag and release
|
||||
if: github.event.inputs.dry_run != 'true'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
VERSION="${{ steps.release.outputs.version }}"
|
||||
echo "📝 Creating v2 release: $VERSION"
|
||||
|
||||
# Configure git
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
# Commit the changelog changes
|
||||
git add website/src/pages/changelog.mdx v2/cmd/wails/internal/version.txt
|
||||
git commit -m "chore: release $VERSION
|
||||
|
||||
Automated release created by GitHub Actions
|
||||
|
||||
🤖 Generated with [Claude Code](https://claude.ai/code)
|
||||
|
||||
Co-Authored-By: Claude <noreply@anthropic.com>"
|
||||
|
||||
# Create and push tag
|
||||
git tag -a "$VERSION" -m "Release $VERSION"
|
||||
git push origin master
|
||||
git push origin "$VERSION"
|
||||
|
||||
# Create GitHub release with notes
|
||||
gh release create "$VERSION" \
|
||||
--title "Release $VERSION" \
|
||||
--notes-file release_notes_v2.md \
|
||||
--target master
|
||||
|
||||
- name: Log dry-run results for v2
|
||||
if: github.event.inputs.dry_run == 'true'
|
||||
run: |
|
||||
echo "🧪 DRY RUN - Would have created v2 release:"
|
||||
echo "Version: ${{ steps.release.outputs.version }}"
|
||||
echo "Release Notes:"
|
||||
cat release_notes_v2.md
|
||||
|
||||
release-v3:
|
||||
name: Create v3-alpha Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-permissions, detect-v3-changes]
|
||||
if: |
|
||||
needs.check-permissions.outputs.authorized == 'true' &&
|
||||
needs.detect-v3-changes.outputs.has_changes == 'true'
|
||||
outputs:
|
||||
version: ${{ steps.release.outputs.version }}
|
||||
release_notes: ${{ steps.release.outputs.release_notes }}
|
||||
steps:
|
||||
- name: Checkout v3-alpha branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: v3-alpha
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
|
||||
- name: Run v3 release script and extract notes
|
||||
id: release
|
||||
run: |
|
||||
echo "🚀 Running v3-alpha release script..."
|
||||
cd v3/tasks/release
|
||||
|
||||
# Run release script and capture output
|
||||
RELEASE_OUTPUT=$(go run release.go 2>&1)
|
||||
echo "$RELEASE_OUTPUT"
|
||||
|
||||
# Extract version from output or version file
|
||||
NEW_VERSION=$(cat ../../internal/version/version.txt)
|
||||
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
# Extract release notes from delimited output
|
||||
RELEASE_NOTES=$(echo "$RELEASE_OUTPUT" | sed -n '/=== RELEASE NOTES FOR/,/=== END RELEASE NOTES ===/p' | sed '1d;$d')
|
||||
|
||||
# Save release notes to file for multiline output
|
||||
echo "$RELEASE_NOTES" > ../../../release_notes_v3.md
|
||||
|
||||
# Set output (escape for GitHub Actions)
|
||||
{
|
||||
echo "release_notes<<EOF"
|
||||
echo "$RELEASE_NOTES"
|
||||
echo "EOF"
|
||||
} >> $GITHUB_OUTPUT
|
||||
|
||||
echo "✅ v3-alpha release script completed - version: $NEW_VERSION"
|
||||
|
||||
- name: Create v3-alpha git tag and release
|
||||
if: github.event.inputs.dry_run != 'true'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
VERSION="${{ steps.release.outputs.version }}"
|
||||
echo "📝 Creating v3-alpha release: $VERSION"
|
||||
|
||||
# Configure git
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
# Commit the changelog changes
|
||||
git add docs/src/content/docs/changelog.mdx v3/internal/version/version.txt
|
||||
git commit -m "chore: release $VERSION
|
||||
|
||||
Automated v3-alpha release created by GitHub Actions
|
||||
|
||||
🤖 Generated with [Claude Code](https://claude.ai/code)
|
||||
|
||||
Co-Authored-By: Claude <noreply@anthropic.com>"
|
||||
|
||||
# Create and push tag
|
||||
git tag -a "$VERSION" -m "Release $VERSION"
|
||||
git push origin v3-alpha
|
||||
git push origin "$VERSION"
|
||||
|
||||
# Create GitHub release with notes
|
||||
gh release create "$VERSION" \
|
||||
--title "Release $VERSION" \
|
||||
--notes-file release_notes_v3.md \
|
||||
--target v3-alpha \
|
||||
--prerelease
|
||||
|
||||
- name: Log dry-run results for v3-alpha
|
||||
if: github.event.inputs.dry_run == 'true'
|
||||
run: |
|
||||
echo "🧪 DRY RUN - Would have created v3-alpha release:"
|
||||
echo "Version: ${{ steps.release.outputs.version }}"
|
||||
echo "Release Notes:"
|
||||
cat release_notes_v3.md
|
||||
|
||||
summary:
|
||||
name: Release Summary
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-permissions, detect-v2-changes, detect-v3-changes, release-v2, release-v3]
|
||||
if: always() && needs.check-permissions.outputs.authorized == 'true'
|
||||
steps:
|
||||
- name: Create release summary
|
||||
run: |
|
||||
echo "# 🚀 Automated Release Summary" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Repository**: ${{ github.repository }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Triggered by**: ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Dry Run Mode**: ${{ github.event.inputs.dry_run || 'false' }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# v2 Summary
|
||||
echo "## v2 Release" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ needs.detect-v2-changes.outputs.has_changes }}" == "true" ]; then
|
||||
if [ "${{ needs.release-v2.result }}" == "success" ]; then
|
||||
echo "✅ **v2 Release**: Created successfully" >> $GITHUB_STEP_SUMMARY
|
||||
echo " - Version: ${{ needs.release-v2.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo " - Commits since last: ${{ needs.detect-v2-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "❌ **v2 Release**: Failed" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
else
|
||||
echo "⏭️ **v2 Release**: Skipped (no changes)" >> $GITHUB_STEP_SUMMARY
|
||||
echo " - Commits since last: ${{ needs.detect-v2-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
# v3 Summary
|
||||
echo "## v3-alpha Release" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ needs.detect-v3-changes.outputs.has_changes }}" == "true" ]; then
|
||||
if [ "${{ needs.release-v3.result }}" == "success" ]; then
|
||||
echo "✅ **v3-alpha Release**: Created successfully" >> $GITHUB_STEP_SUMMARY
|
||||
echo " - Version: ${{ needs.release-v3.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo " - Commits since last: ${{ needs.detect-v3-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "❌ **v3-alpha Release**: Failed" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
else
|
||||
echo "⏭️ **v3-alpha Release**: Skipped (no changes)" >> $GITHUB_STEP_SUMMARY
|
||||
echo " - Commits since last: ${{ needs.detect-v3-changes.outputs.commits_since_last }}" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "---" >> $GITHUB_STEP_SUMMARY
|
||||
echo "🤖 **Automated Release System** | Generated with [Claude Code](https://claude.ai/code)" >> $GITHUB_STEP_SUMMARY
|
||||
103
.github/workflows/build-and-test-v3.yml
vendored
|
|
@ -29,9 +29,68 @@ jobs:
|
|||
echo "approved=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
test_js:
|
||||
name: Run JS Tests
|
||||
needs: check_approval
|
||||
runs-on: ubuntu-latest
|
||||
if: github.base_ref == 'v3-alpha'
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.x]
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
- name: Install Task
|
||||
uses: arduino/setup-task@v2
|
||||
with:
|
||||
version: 3.x
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
run: |
|
||||
npm ci
|
||||
npx --yes esbuild@latest --version
|
||||
|
||||
- name: Clean build artifacts
|
||||
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
run: npm run clean
|
||||
|
||||
- name: Type-check runtime
|
||||
working-directory: v3
|
||||
run: task runtime:check
|
||||
|
||||
- name: Test runtime
|
||||
working-directory: v3
|
||||
run: task runtime:test
|
||||
|
||||
- name: Check that the bundled runtime builds
|
||||
working-directory: v3
|
||||
run: task runtime:build
|
||||
|
||||
- name: Check that the npm package builds
|
||||
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
run: npm run build
|
||||
|
||||
- name: Store runtime build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: runtime-build-artifacts
|
||||
path: |
|
||||
v3/internal/runtime/desktop/@wailsio/runtime/dist/
|
||||
v3/internal/runtime/desktop/@wailsio/runtime/types/
|
||||
v3/internal/runtime/desktop/@wailsio/runtime/tsconfig.tsbuildinfo
|
||||
|
||||
test_go:
|
||||
name: Run Go Tests v3
|
||||
needs: check_approval
|
||||
needs: [check_approval, test_js]
|
||||
runs-on: ${{ matrix.os }}
|
||||
if: github.base_ref == 'v3-alpha'
|
||||
strategy:
|
||||
|
|
@ -55,6 +114,7 @@ jobs:
|
|||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
cache: true
|
||||
cache-dependency-path: "v3/go.sum"
|
||||
|
||||
- name: Install Task
|
||||
|
|
@ -63,9 +123,18 @@ jobs:
|
|||
version: 3.x
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Retrieve runtime build artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: runtime-build-artifacts
|
||||
path: v3/internal/runtime/desktop/@wailsio/runtime/
|
||||
|
||||
- name: Build Examples
|
||||
working-directory: v3
|
||||
run: task test:examples
|
||||
run: |
|
||||
echo "Starting example compilation tests..."
|
||||
task test:examples
|
||||
echo "Example compilation tests completed successfully"
|
||||
|
||||
- name: Run tests (mac)
|
||||
if: matrix.os == 'macos-latest'
|
||||
|
|
@ -93,31 +162,16 @@ jobs:
|
|||
working-directory: v3
|
||||
run: task generator:test:check
|
||||
|
||||
test_js:
|
||||
name: Run JS Tests
|
||||
needs: check_approval
|
||||
cleanup:
|
||||
name: Cleanup build artifacts
|
||||
if: always()
|
||||
needs: [test_js, test_go]
|
||||
runs-on: ubuntu-latest
|
||||
if: github.base_ref == 'v3-alpha'
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.x]
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
- uses: geekyeggo/delete-artifact@v5
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
working-directory: v2/internal/frontend/runtime
|
||||
|
||||
- name: Run tests
|
||||
run: npm test
|
||||
working-directory: v2/internal/frontend/runtime
|
||||
name: runtime-build-artifacts
|
||||
failOnError: false
|
||||
|
||||
test_templates:
|
||||
name: Test Templates
|
||||
|
|
@ -157,6 +211,7 @@ jobs:
|
|||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
cache: true
|
||||
cache-dependency-path: "v3/go.sum"
|
||||
|
||||
- name: Install Task
|
||||
|
|
|
|||
36
.github/workflows/build-and-test.yml
vendored
|
|
@ -12,8 +12,8 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-22.04, ubuntu-24.04, windows-latest, macos-latest]
|
||||
go-version: ['1.22']
|
||||
os: [ubuntu-22.04, ubuntu-24.04, windows-latest, macos-latest, macos-11]
|
||||
go-version: ['1.21']
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
|
|
@ -28,7 +28,7 @@ jobs:
|
|||
- uses: awalsh128/cache-apt-pkgs-action@latest
|
||||
if: matrix.os == 'ubuntu-24.04'
|
||||
with:
|
||||
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config libegl1
|
||||
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Setup Go
|
||||
|
|
@ -38,14 +38,14 @@ jobs:
|
|||
cache-dependency-path: ./v2/go.sum
|
||||
|
||||
- name: Run tests (mac)
|
||||
if: matrix.os == 'macos-latest'
|
||||
if: matrix.os == 'macos-latest' || matrix.os == 'macos-11'
|
||||
env:
|
||||
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
|
||||
working-directory: ./v2
|
||||
run: go test -v ./...
|
||||
|
||||
- name: Run tests (!mac)
|
||||
if: matrix.os != 'macos-latest' && matrix.os != 'ubuntu-24.04'
|
||||
if: matrix.os != 'macos-latest' && matrix.os != 'macos-11' && matrix.os != 'ubuntu-24.04'
|
||||
working-directory: ./v2
|
||||
run: go test -v ./...
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
os: [ubuntu-22.04, windows-latest, macos-latest, ubuntu-24.04]
|
||||
os: [ubuntu-22.04, windows-latest, macos-latest, ubuntu-24.04, macos-11]
|
||||
template:
|
||||
[
|
||||
svelte,
|
||||
|
|
@ -103,13 +103,13 @@ jobs:
|
|||
vanilla-ts,
|
||||
plain,
|
||||
]
|
||||
go-version: ['1.22']
|
||||
go-version: ['1.21']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
cache-dependency-path: ./v2/go.sum
|
||||
|
|
@ -120,25 +120,13 @@ jobs:
|
|||
go install
|
||||
wails -help
|
||||
|
||||
- uses: awalsh128/cache-apt-pkgs-action@latest
|
||||
- name: Install linux dependencies ( 22.04 )
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
with:
|
||||
packages: libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
|
||||
version: 1.0
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
|
||||
|
||||
# - name: Install linux dependencies ( 22.04 )
|
||||
# if: matrix.os == 'ubuntu-22.04'
|
||||
# run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
|
||||
|
||||
- uses: awalsh128/cache-apt-pkgs-action@latest
|
||||
- name: Install linux dependencies ( 24.04 )
|
||||
if: matrix.os == 'ubuntu-24.04'
|
||||
with:
|
||||
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config libegl1
|
||||
version: 1.0
|
||||
|
||||
# - name: Install linux dependencies ( 24.04 )
|
||||
# if: matrix.os == 'ubuntu-24.04'
|
||||
# run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
|
||||
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
|
||||
|
||||
- name: Generate & Build template '${{ matrix.template }}'
|
||||
if: matrix.os != 'ubuntu-24.04'
|
||||
|
|
|
|||
423
.github/workflows/build-cross-image.yml
vendored
|
|
@ -1,423 +0,0 @@
|
|||
name: Build Cross-Compiler Image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
branch:
|
||||
description: 'Branch containing Dockerfile'
|
||||
required: true
|
||||
default: 'v3-alpha'
|
||||
sdk_version:
|
||||
description: 'macOS SDK version'
|
||||
required: true
|
||||
default: '14.5'
|
||||
zig_version:
|
||||
description: 'Zig version'
|
||||
required: true
|
||||
default: '0.14.0'
|
||||
image_version:
|
||||
description: 'Image version tag'
|
||||
required: true
|
||||
default: 'latest'
|
||||
skip_tests:
|
||||
description: 'Skip cross-compilation tests'
|
||||
required: false
|
||||
default: 'false'
|
||||
type: boolean
|
||||
push:
|
||||
branches:
|
||||
- v3-alpha
|
||||
paths:
|
||||
- 'v3/internal/commands/build_assets/docker/Dockerfile.cross'
|
||||
|
||||
env:
|
||||
REGISTRY: ghcr.io
|
||||
IMAGE_NAME: wailsapp/wails-cross
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
outputs:
|
||||
image_tag: ${{ steps.vars.outputs.image_version }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.branch || github.ref }}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set build variables
|
||||
id: vars
|
||||
run: |
|
||||
echo "sdk_version=${{ inputs.sdk_version || '14.5' }}" >> $GITHUB_OUTPUT
|
||||
echo "zig_version=${{ inputs.zig_version || '0.14.0' }}" >> $GITHUB_OUTPUT
|
||||
echo "image_version=${{ inputs.image_version || 'latest' }}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Extract metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
tags: |
|
||||
type=raw,value=latest
|
||||
type=raw,value=${{ steps.vars.outputs.image_version }}
|
||||
type=raw,value=sdk-${{ steps.vars.outputs.sdk_version }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: v3/internal/commands/build_assets/docker
|
||||
file: v3/internal/commands/build_assets/docker/Dockerfile.cross
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: |
|
||||
${{ steps.meta.outputs.labels }}
|
||||
io.wails.zig.version=${{ steps.vars.outputs.zig_version }}
|
||||
io.wails.sdk.version=${{ steps.vars.outputs.sdk_version }}
|
||||
build-args: |
|
||||
ZIG_VERSION=${{ steps.vars.outputs.zig_version }}
|
||||
MACOS_SDK_VERSION=${{ steps.vars.outputs.sdk_version }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
# Test cross-compilation for all platforms
|
||||
test-cross-compile:
|
||||
needs: build
|
||||
if: ${{ inputs.skip_tests != 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# Darwin targets (Zig + macOS SDK) - no platform emulation needed
|
||||
- os: darwin
|
||||
arch: arm64
|
||||
platform: ""
|
||||
expected_file: "Mach-O 64-bit.*arm64"
|
||||
- os: darwin
|
||||
arch: amd64
|
||||
platform: ""
|
||||
expected_file: "Mach-O 64-bit.*x86_64"
|
||||
# Linux targets (GCC) - need platform to match architecture
|
||||
- os: linux
|
||||
arch: amd64
|
||||
platform: "linux/amd64"
|
||||
expected_file: "ELF 64-bit LSB.*x86-64"
|
||||
- os: linux
|
||||
arch: arm64
|
||||
platform: "linux/arm64"
|
||||
expected_file: "ELF 64-bit LSB.*ARM aarch64"
|
||||
# Windows targets (Zig + mingw) - no platform emulation needed
|
||||
- os: windows
|
||||
arch: amd64
|
||||
platform: ""
|
||||
expected_file: "PE32\\+ executable.*x86-64"
|
||||
- os: windows
|
||||
arch: arm64
|
||||
platform: ""
|
||||
expected_file: "PE32\\+ executable.*Aarch64"
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.branch || github.ref }}
|
||||
|
||||
- name: Set up QEMU
|
||||
if: matrix.platform != ''
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Log in to Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Create test CGO project
|
||||
run: |
|
||||
mkdir -p test-project
|
||||
cd test-project
|
||||
|
||||
# Create a minimal CGO test program
|
||||
cat > main.go << 'EOF'
|
||||
package main
|
||||
|
||||
/*
|
||||
#include <stdlib.h>
|
||||
|
||||
int add(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
*/
|
||||
import "C"
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
result := C.add(1, 2)
|
||||
fmt.Printf("CGO test: 1 + 2 = %d\n", result)
|
||||
}
|
||||
EOF
|
||||
|
||||
cat > go.mod << 'EOF'
|
||||
module test-cgo
|
||||
|
||||
go 1.21
|
||||
EOF
|
||||
|
||||
- name: Build ${{ matrix.os }}/${{ matrix.arch }} (CGO)
|
||||
run: |
|
||||
cd test-project
|
||||
PLATFORM_FLAG=""
|
||||
if [ -n "${{ matrix.platform }}" ]; then
|
||||
PLATFORM_FLAG="--platform ${{ matrix.platform }}"
|
||||
fi
|
||||
|
||||
docker run --rm $PLATFORM_FLAG \
|
||||
-v "$(pwd):/app" \
|
||||
-e APP_NAME="test-cgo" \
|
||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ needs.build.outputs.image_tag || 'latest' }} \
|
||||
${{ matrix.os }} ${{ matrix.arch }}
|
||||
|
||||
- name: Verify binary format
|
||||
run: |
|
||||
cd test-project/bin
|
||||
ls -la
|
||||
|
||||
# Find the built binary
|
||||
if [ "${{ matrix.os }}" = "windows" ]; then
|
||||
BINARY=$(ls test-cgo-${{ matrix.os }}-${{ matrix.arch }}.exe 2>/dev/null || ls *.exe | head -1)
|
||||
else
|
||||
BINARY=$(ls test-cgo-${{ matrix.os }}-${{ matrix.arch }} 2>/dev/null || ls test-cgo* | grep -v '.exe' | head -1)
|
||||
fi
|
||||
|
||||
echo "Binary: $BINARY"
|
||||
FILE_OUTPUT=$(file "$BINARY")
|
||||
echo "File output: $FILE_OUTPUT"
|
||||
|
||||
# Verify the binary format matches expected
|
||||
if echo "$FILE_OUTPUT" | grep -qE "${{ matrix.expected_file }}"; then
|
||||
echo "✅ Binary format verified: ${{ matrix.os }}/${{ matrix.arch }}"
|
||||
else
|
||||
echo "❌ Binary format mismatch!"
|
||||
echo "Expected pattern: ${{ matrix.expected_file }}"
|
||||
echo "Got: $FILE_OUTPUT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Check library dependencies (Linux only)
|
||||
if: matrix.os == 'linux'
|
||||
run: |
|
||||
cd test-project/bin
|
||||
BINARY=$(ls test-cgo-${{ matrix.os }}-${{ matrix.arch }} 2>/dev/null || ls test-cgo* | grep -v '.exe' | head -1)
|
||||
|
||||
echo "## Library Dependencies for $BINARY"
|
||||
echo ""
|
||||
|
||||
# Use readelf to show dynamic dependencies
|
||||
echo "### NEEDED libraries:"
|
||||
readelf -d "$BINARY" | grep NEEDED || echo "No dynamic dependencies (statically linked)"
|
||||
|
||||
# Verify expected libraries are linked
|
||||
echo ""
|
||||
echo "### Verifying required libraries..."
|
||||
NEEDED=$(readelf -d "$BINARY" | grep NEEDED)
|
||||
|
||||
MISSING=""
|
||||
for lib in libwebkit2gtk-4.1.so libgtk-3.so libglib-2.0.so libc.so; do
|
||||
if echo "$NEEDED" | grep -q "$lib"; then
|
||||
echo "✅ $lib"
|
||||
else
|
||||
echo "❌ $lib MISSING"
|
||||
MISSING="$MISSING $lib"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$MISSING" ]; then
|
||||
echo ""
|
||||
echo "ERROR: Missing required libraries:$MISSING"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test non-CGO builds (pure Go cross-compilation)
|
||||
test-non-cgo:
|
||||
needs: build
|
||||
if: ${{ inputs.skip_tests != 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: darwin
|
||||
arch: arm64
|
||||
expected_file: "Mach-O 64-bit.*arm64"
|
||||
- os: darwin
|
||||
arch: amd64
|
||||
expected_file: "Mach-O 64-bit.*x86_64"
|
||||
- os: linux
|
||||
arch: amd64
|
||||
expected_file: "ELF 64-bit LSB"
|
||||
- os: linux
|
||||
arch: arm64
|
||||
expected_file: "ELF 64-bit LSB.*ARM aarch64"
|
||||
- os: windows
|
||||
arch: amd64
|
||||
expected_file: "PE32\\+ executable.*x86-64"
|
||||
- os: windows
|
||||
arch: arm64
|
||||
expected_file: "PE32\\+ executable.*Aarch64"
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.branch || github.ref }}
|
||||
|
||||
- name: Log in to Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Create test non-CGO project
|
||||
run: |
|
||||
mkdir -p test-project
|
||||
cd test-project
|
||||
|
||||
# Create a pure Go test program (no CGO)
|
||||
cat > main.go << 'EOF'
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Pure Go cross-compilation test")
|
||||
}
|
||||
EOF
|
||||
|
||||
cat > go.mod << 'EOF'
|
||||
module test-pure-go
|
||||
|
||||
go 1.21
|
||||
EOF
|
||||
|
||||
- name: Build ${{ matrix.os }}/${{ matrix.arch }} (non-CGO)
|
||||
run: |
|
||||
cd test-project
|
||||
|
||||
# For non-CGO, we can use any platform since Go handles cross-compilation
|
||||
# We set CGO_ENABLED=0 to ensure pure Go build
|
||||
docker run --rm \
|
||||
-v "$(pwd):/app" \
|
||||
-e APP_NAME="test-pure-go" \
|
||||
-e CGO_ENABLED=0 \
|
||||
--entrypoint /bin/sh \
|
||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ needs.build.outputs.image_tag || 'latest' }} \
|
||||
-c "GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} go build -o bin/test-pure-go-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.os == 'windows' && '.exe' || '' }} ."
|
||||
|
||||
- name: Verify binary format
|
||||
run: |
|
||||
cd test-project/bin
|
||||
ls -la
|
||||
|
||||
# Find the built binary
|
||||
if [ "${{ matrix.os }}" = "windows" ]; then
|
||||
BINARY="test-pure-go-${{ matrix.os }}-${{ matrix.arch }}.exe"
|
||||
else
|
||||
BINARY="test-pure-go-${{ matrix.os }}-${{ matrix.arch }}"
|
||||
fi
|
||||
|
||||
echo "Binary: $BINARY"
|
||||
FILE_OUTPUT=$(file "$BINARY")
|
||||
echo "File output: $FILE_OUTPUT"
|
||||
|
||||
# Verify the binary format matches expected
|
||||
if echo "$FILE_OUTPUT" | grep -qE "${{ matrix.expected_file }}"; then
|
||||
echo "✅ Binary format verified: ${{ matrix.os }}/${{ matrix.arch }} (non-CGO)"
|
||||
else
|
||||
echo "❌ Binary format mismatch!"
|
||||
echo "Expected pattern: ${{ matrix.expected_file }}"
|
||||
echo "Got: $FILE_OUTPUT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Check library dependencies (Linux only)
|
||||
if: matrix.os == 'linux'
|
||||
run: |
|
||||
cd test-project/bin
|
||||
BINARY="test-pure-go-${{ matrix.os }}-${{ matrix.arch }}"
|
||||
|
||||
echo "## Library Dependencies for $BINARY (non-CGO)"
|
||||
echo ""
|
||||
|
||||
# Non-CGO builds should have minimal dependencies (just libc or statically linked)
|
||||
echo "### NEEDED libraries:"
|
||||
readelf -d "$BINARY" | grep NEEDED || echo "No dynamic dependencies (statically linked)"
|
||||
|
||||
# Verify NO GTK/WebKit libraries (since CGO is disabled)
|
||||
NEEDED=$(readelf -d "$BINARY" | grep NEEDED || true)
|
||||
if echo "$NEEDED" | grep -q "libwebkit\|libgtk"; then
|
||||
echo "❌ ERROR: Non-CGO binary should not link to GTK/WebKit!"
|
||||
exit 1
|
||||
else
|
||||
echo "✅ Confirmed: No GTK/WebKit dependencies (expected for non-CGO)"
|
||||
fi
|
||||
|
||||
# Summary job
|
||||
test-summary:
|
||||
needs: [build, test-cross-compile, test-non-cgo]
|
||||
if: always() && inputs.skip_tests != 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check test results
|
||||
run: |
|
||||
echo "## Cross-Compilation Test Results" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
if [ "${{ needs.test-cross-compile.result }}" = "success" ]; then
|
||||
echo "✅ **CGO Tests**: All passed" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "❌ **CGO Tests**: Failed" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
if [ "${{ needs.test-non-cgo.result }}" = "success" ]; then
|
||||
echo "✅ **Non-CGO Tests**: All passed" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "❌ **Non-CGO Tests**: Failed" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Tested Platforms" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Platform | Architecture | CGO | Non-CGO |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "|----------|-------------|-----|---------|" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Darwin | arm64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Darwin | amd64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Linux | arm64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Linux | amd64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Windows | arm64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Windows | amd64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# Fail if any test failed
|
||||
if [ "${{ needs.test-cross-compile.result }}" != "success" ] || [ "${{ needs.test-non-cgo.result }}" != "success" ]; then
|
||||
echo ""
|
||||
echo "❌ Some tests failed. Check the individual job logs for details."
|
||||
exit 1
|
||||
fi
|
||||
216
.github/workflows/changelog-v3.yml
vendored
|
|
@ -1,216 +0,0 @@
|
|||
name: Changelog Validation (v3)
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ v3-alpha ]
|
||||
paths:
|
||||
- 'docs/src/content/docs/changelog.mdx'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr_number:
|
||||
description: 'PR number to validate'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
validate:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
actions: write
|
||||
|
||||
steps:
|
||||
- name: Checkout PR code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || format('refs/pull/{0}/head', github.event.inputs.pr_number) }}
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN || github.token }}
|
||||
|
||||
- name: Get REAL validation script from v3-alpha
|
||||
run: |
|
||||
echo "Fetching the REAL validation script from v3-alpha branch..."
|
||||
git fetch origin v3-alpha
|
||||
git checkout origin/v3-alpha -- v3/scripts/validate-changelog.go
|
||||
|
||||
echo "Validation script fetched successfully:"
|
||||
ls -la v3/scripts/
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.23'
|
||||
|
||||
- name: Get PR information
|
||||
id: pr_info
|
||||
run: |
|
||||
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
||||
echo "pr_number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
|
||||
echo "base_ref=${{ github.event.pull_request.base.ref }}" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "pr_number=${{ github.event.inputs.pr_number }}" >> $GITHUB_OUTPUT
|
||||
echo "base_ref=v3-alpha" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Check changelog modifications
|
||||
id: changelog_check
|
||||
run: |
|
||||
echo "Checking PR #${{ steps.pr_info.outputs.pr_number }} for changelog changes"
|
||||
git fetch origin ${{ steps.pr_info.outputs.base_ref }}
|
||||
|
||||
if git diff --name-only origin/${{ steps.pr_info.outputs.base_ref }}..HEAD | grep -q "docs/src/content/docs/changelog.mdx"; then
|
||||
echo "changelog_modified=true" >> $GITHUB_OUTPUT
|
||||
echo "✅ Changelog was modified in this PR"
|
||||
else
|
||||
echo "changelog_modified=false" >> $GITHUB_OUTPUT
|
||||
echo "ℹ️ Changelog was not modified - skipping validation"
|
||||
fi
|
||||
|
||||
- name: Get changelog diff
|
||||
id: get_diff
|
||||
if: steps.changelog_check.outputs.changelog_modified == 'true'
|
||||
run: |
|
||||
echo "Getting diff for changelog changes..."
|
||||
git diff origin/${{ steps.pr_info.outputs.base_ref }}..HEAD docs/src/content/docs/changelog.mdx | grep "^+" | grep -v "^+++" | sed 's/^+//' > /tmp/pr_added_lines.txt
|
||||
|
||||
echo "Lines added in this PR:"
|
||||
cat /tmp/pr_added_lines.txt
|
||||
echo "Total lines added: $(wc -l < /tmp/pr_added_lines.txt)"
|
||||
|
||||
- name: Validate changelog
|
||||
id: validate
|
||||
if: steps.changelog_check.outputs.changelog_modified == 'true'
|
||||
run: |
|
||||
echo "Running changelog validation..."
|
||||
cd v3/scripts
|
||||
OUTPUT=$(go run validate-changelog.go ../../docs/src/content/docs/changelog.mdx /tmp/pr_added_lines.txt 2>&1)
|
||||
echo "$OUTPUT"
|
||||
|
||||
RESULT=$(echo "$OUTPUT" | grep "VALIDATION_RESULT=" | cut -d'=' -f2)
|
||||
echo "result=$RESULT" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Commit fixes
|
||||
id: commit_fixes
|
||||
if: steps.validate.outputs.result == 'fixed'
|
||||
run: |
|
||||
echo "Committing automatic fixes..."
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
|
||||
# Check only the changelog file for changes
|
||||
if git diff --quiet docs/src/content/docs/changelog.mdx; then
|
||||
echo "No changes to commit"
|
||||
echo "committed=false" >> $GITHUB_OUTPUT
|
||||
else
|
||||
# Ensure validation script doesn't get committed
|
||||
echo "v3/scripts/validate-changelog.go" >> .git/info/exclude
|
||||
# Get the correct branch name to push to
|
||||
REPO_OWNER="wailsapp" # Always wailsapp for this repo
|
||||
|
||||
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
||||
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
|
||||
else
|
||||
# For manual workflow dispatch, get PR info
|
||||
PR_INFO=$(gh pr view ${{ steps.pr_info.outputs.pr_number }} --json headRefName,headRepository)
|
||||
BRANCH_NAME=$(echo "$PR_INFO" | jq -r '.headRefName')
|
||||
HEAD_REPO=$(echo "$PR_INFO" | jq -r '.headRepository.name')
|
||||
|
||||
echo "🔍 PR source branch: $BRANCH_NAME"
|
||||
echo "🔍 Head repository: $HEAD_REPO"
|
||||
|
||||
# Don't push if this is from a fork or if branch is v3-alpha (main branch)
|
||||
if [ "$HEAD_REPO" != "wails" ] || [ "$BRANCH_NAME" = "v3-alpha" ]; then
|
||||
echo "⚠️ Cannot push - either fork or direct v3-alpha branch. Manual fix required."
|
||||
echo "committed=false" >> $GITHUB_OUTPUT
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Pushing to branch: $BRANCH_NAME in repo: $REPO_OWNER"
|
||||
|
||||
# Only commit the changelog changes, not the validation script
|
||||
git add docs/src/content/docs/changelog.mdx
|
||||
git commit -m "🤖 Fix changelog: move entries to Unreleased section"
|
||||
|
||||
# Only push if running on the main wailsapp repository
|
||||
if [ "${{ github.repository }}" = "wailsapp/wails" ]; then
|
||||
# Pull latest changes and rebase our commit
|
||||
git fetch origin $BRANCH_NAME
|
||||
git rebase origin/$BRANCH_NAME
|
||||
git push origin HEAD:$BRANCH_NAME
|
||||
else
|
||||
echo "⚠️ Running on fork (${{ github.repository }}). Skipping push - manual fix required."
|
||||
echo "committed=false" >> $GITHUB_OUTPUT
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "committed=true" >> $GITHUB_OUTPUT
|
||||
echo "✅ Changes committed and pushed"
|
||||
fi
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Get PR author for tagging
|
||||
id: pr_author
|
||||
if: steps.validate.outputs.result && github.event.inputs.pr_number
|
||||
run: |
|
||||
PR_AUTHOR=$(gh pr view ${{ steps.pr_info.outputs.pr_number }} --json author --jq '.author.login')
|
||||
echo "author=$PR_AUTHOR" >> $GITHUB_OUTPUT
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Comment on PR
|
||||
if: steps.validate.outputs.result && github.event.inputs.pr_number
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const result = '${{ steps.validate.outputs.result }}';
|
||||
const committed = '${{ steps.commit_fixes.outputs.committed }}';
|
||||
const author = '${{ steps.pr_author.outputs.author }}';
|
||||
|
||||
let message;
|
||||
if (result === 'success') {
|
||||
message = '## ✅ Changelog Validation Passed\n\nNo misplaced changelog entries detected.';
|
||||
} else if (result === 'fixed' && committed === 'true') {
|
||||
message = '## 🔧 Changelog Updated\n\nMisplaced entries were automatically moved to the `[Unreleased]` section. The changes have been committed to this PR.';
|
||||
} else if (result === 'fixed' || result === 'cannot_fix' || result === 'error') {
|
||||
// Read the fixed changelog content
|
||||
const fs = require('fs');
|
||||
let fixedContent = '';
|
||||
try {
|
||||
fixedContent = fs.readFileSync('docs/src/content/docs/changelog.mdx', 'utf8');
|
||||
} catch (error) {
|
||||
fixedContent = 'Error reading fixed changelog content';
|
||||
}
|
||||
|
||||
message = '## ⚠️ Changelog Validation Issue\\n\\n' +
|
||||
'@' + author + ' Your PR contains changelog entries that were added to already-released versions. These need to be moved to the `[Unreleased]` section.\\n\\n' +
|
||||
(committed === 'true' ?
|
||||
'✅ **Auto-fix applied**: The changes have been automatically committed to this PR.' :
|
||||
'❌ **Manual fix required**: Please apply the changes shown below manually.') + '\\n\\n' +
|
||||
'<details>\\n' +
|
||||
'<summary>📝 Click to see the corrected changelog content</summary>\\n\\n' +
|
||||
'```mdx\\n' +
|
||||
fixedContent +
|
||||
'\\n```\\n\\n' +
|
||||
'</details>\\n\\n' +
|
||||
'**What happened?** \\n' +
|
||||
'The validation script detected that you added changelog entries to a version section that has already been released (like `v3.0.0-alpha.10`). All new entries should go in the `[Unreleased]` section under the appropriate category (`### Added`, `### Fixed`, etc.).\\n\\n' +
|
||||
(committed !== 'true' ? '**Action needed:** Please copy the corrected content from above and replace your changelog file.' : '');
|
||||
}
|
||||
|
||||
if (message) {
|
||||
await github.rest.issues.createComment({
|
||||
issue_number: ${{ steps.pr_info.outputs.pr_number }},
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: message
|
||||
});
|
||||
}
|
||||
|
||||
- name: Fail if validation failed
|
||||
if: steps.validate.outputs.result == 'cannot_fix' || steps.validate.outputs.result == 'error'
|
||||
run: |
|
||||
echo "❌ Changelog validation failed"
|
||||
exit 1
|
||||
74
.github/workflows/changelog-validation-v3.yml
vendored
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
name: Changelog Validation (v3)
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ v3-alpha ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr_number:
|
||||
description: 'PR number to validate (for manual testing)'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
validate-changelog:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'pull_request' || github.event.inputs.pr_number
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || format('refs/pull/{0}/head', github.event.inputs.pr_number) }}
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.23'
|
||||
|
||||
- name: Get PR information
|
||||
id: pr_info
|
||||
run: |
|
||||
if [ "${{ github.event_name }}" = "pull_request" ]; then
|
||||
echo "pr_number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
|
||||
echo "base_ref=${{ github.event.pull_request.base.ref }}" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "pr_number=${{ github.event.inputs.pr_number }}" >> $GITHUB_OUTPUT
|
||||
echo "base_ref=v3-alpha" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Check if changelog was modified
|
||||
id: changelog_check
|
||||
run: |
|
||||
git fetch origin ${{ steps.pr_info.outputs.base_ref }}
|
||||
if git diff --name-only origin/${{ steps.pr_info.outputs.base_ref }}..HEAD | grep -q "v3/UNRELEASED_CHANGELOG.md"; then
|
||||
echo "changelog_modified=true" >> $GITHUB_OUTPUT
|
||||
echo "✅ UNRELEASED_CHANGELOG.md was modified in this PR"
|
||||
else
|
||||
echo "changelog_modified=false" >> $GITHUB_OUTPUT
|
||||
echo "⚠️ UNRELEASED_CHANGELOG.md was not modified"
|
||||
fi
|
||||
|
||||
- name: Comment on PR about missing changelog
|
||||
if: steps.changelog_check.outputs.changelog_modified == 'false' && github.event_name == 'pull_request'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const author = context.payload.pull_request.user.login;
|
||||
const message = '## ⚠️ Missing Changelog Update\n\n' +
|
||||
`Hi @${author}, please update \`v3/UNRELEASED_CHANGELOG.md\` with a description of your changes.\n\n` +
|
||||
'This helps us keep track of changes for the next release.';
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
issue_number: ${{ steps.pr_info.outputs.pr_number }},
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: message
|
||||
});
|
||||
|
||||
44
.github/workflows/claude-code-review.yml
vendored
|
|
@ -1,44 +0,0 @@
|
|||
name: Claude Code Review
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, ready_for_review, reopened]
|
||||
# Optional: Only run on specific file changes
|
||||
# paths:
|
||||
# - "src/**/*.ts"
|
||||
# - "src/**/*.tsx"
|
||||
# - "src/**/*.js"
|
||||
# - "src/**/*.jsx"
|
||||
|
||||
jobs:
|
||||
claude-review:
|
||||
# Optional: Filter by PR author
|
||||
# if: |
|
||||
# github.event.pull_request.user.login == 'external-contributor' ||
|
||||
# github.event.pull_request.user.login == 'new-developer' ||
|
||||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
issues: read
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Run Claude Code Review
|
||||
id: claude-review
|
||||
uses: anthropics/claude-code-action@v1
|
||||
with:
|
||||
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
||||
plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
|
||||
plugins: 'code-review@claude-code-plugins'
|
||||
prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
|
||||
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
|
||||
# or https://code.claude.com/docs/en/cli-reference for available options
|
||||
|
||||
50
.github/workflows/claude.yml
vendored
|
|
@ -1,50 +0,0 @@
|
|||
name: Claude Code
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
pull_request_review_comment:
|
||||
types: [created]
|
||||
issues:
|
||||
types: [opened, assigned]
|
||||
pull_request_review:
|
||||
types: [submitted]
|
||||
|
||||
jobs:
|
||||
claude:
|
||||
if: |
|
||||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
|
||||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
|
||||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
|
||||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
issues: read
|
||||
id-token: write
|
||||
actions: read # Required for Claude to read CI results on PRs
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Run Claude Code
|
||||
id: claude
|
||||
uses: anthropics/claude-code-action@v1
|
||||
with:
|
||||
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
||||
|
||||
# This is an optional setting that allows Claude to read CI results on PRs
|
||||
additional_permissions: |
|
||||
actions: read
|
||||
|
||||
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
|
||||
# prompt: 'Update the pull request description to include a summary of changes.'
|
||||
|
||||
# Optional: Add claude_args to customize behavior and configuration
|
||||
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
|
||||
# or https://code.claude.com/docs/en/cli-reference for available options
|
||||
# claude_args: '--allowed-tools Bash(gh pr:*)'
|
||||
|
||||
2
.github/workflows/generate-sponsor-image.yml
vendored
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
SPONSORKIT_GITHUB_LOGIN: wailsapp
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
commit-message: "chore: update sponsors.svg"
|
||||
add-paths: "website/static/img/sponsors.svg"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ name: Issue Triage Automation
|
|||
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
types: [opened, reopened, labeled, unlabeled]
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
|
|
|
|||
559
.github/workflows/nightly-release-v3.yml
vendored
|
|
@ -168,43 +168,556 @@ jobs:
|
|||
if: |
|
||||
steps.quick_check.outputs.should_continue == 'true' ||
|
||||
github.event.inputs.force_release == 'true'
|
||||
run: |
|
||||
cd v3
|
||||
|
||||
echo "🚀 Running release task..."
|
||||
echo "======================================================="
|
||||
|
||||
# Initialize error tracking
|
||||
RELEASE_ERRORS=""
|
||||
RELEASE_SUCCESS=true
|
||||
|
||||
# Store the original version for comparison
|
||||
ORIGINAL_VERSION=$(cat internal/version/version.txt 2>/dev/null || echo "unknown")
|
||||
echo "📌 Current version: $ORIGINAL_VERSION"
|
||||
|
||||
# Run the release task and capture output with error handling
|
||||
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
|
||||
echo "🧪 DRY RUN MODE: Simulating release task execution"
|
||||
# In dry run, we'll simulate the task without making actual changes
|
||||
OUTPUT=$(task release 2>&1 || true)
|
||||
RELEASE_EXIT_CODE=0 # Always succeed in dry run
|
||||
echo "$OUTPUT"
|
||||
else
|
||||
echo "🚀 LIVE MODE: Executing release task"
|
||||
OUTPUT=$(task release 2>&1)
|
||||
RELEASE_EXIT_CODE=$?
|
||||
echo "$OUTPUT"
|
||||
|
||||
if [ $RELEASE_EXIT_CODE -ne 0 ]; then
|
||||
echo "❌ Release task failed with exit code $RELEASE_EXIT_CODE"
|
||||
RELEASE_ERRORS="$RELEASE_ERRORS\n- Release task execution failed: $OUTPUT"
|
||||
RELEASE_SUCCESS=false
|
||||
else
|
||||
echo "✅ Release task completed successfully"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Verify version file exists and is readable
|
||||
if [ ! -f "internal/version/version.txt" ]; then
|
||||
echo "❌ Version file not found: internal/version/version.txt"
|
||||
RELEASE_ERRORS="$RELEASE_ERRORS\n- Version file not found after release task execution"
|
||||
RELEASE_SUCCESS=false
|
||||
RELEASE_VERSION="unknown"
|
||||
else
|
||||
RELEASE_VERSION=$(cat internal/version/version.txt 2>/dev/null || echo "unknown")
|
||||
if [ "$RELEASE_VERSION" == "unknown" ]; then
|
||||
echo "❌ Failed to read version from file"
|
||||
RELEASE_ERRORS="$RELEASE_ERRORS\n- Failed to read version from version.txt"
|
||||
RELEASE_SUCCESS=false
|
||||
else
|
||||
echo "✅ Successfully read version: $RELEASE_VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check if version changed
|
||||
VERSION_CHANGED="false"
|
||||
if [ "$ORIGINAL_VERSION" != "$RELEASE_VERSION" ] && [ "$RELEASE_VERSION" != "unknown" ]; then
|
||||
echo "✅ Version changed from $ORIGINAL_VERSION to $RELEASE_VERSION"
|
||||
VERSION_CHANGED="true"
|
||||
else
|
||||
echo "ℹ️ Version unchanged: $RELEASE_VERSION"
|
||||
fi
|
||||
|
||||
RELEASE_TAG="${RELEASE_VERSION}"
|
||||
RELEASE_TITLE="Wails ${RELEASE_VERSION}"
|
||||
|
||||
# Set outputs for next steps
|
||||
echo "version=$RELEASE_VERSION" >> $GITHUB_OUTPUT
|
||||
echo "tag=$RELEASE_TAG" >> $GITHUB_OUTPUT
|
||||
echo "title=$RELEASE_TITLE" >> $GITHUB_OUTPUT
|
||||
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
||||
echo "is_latest=false" >> $GITHUB_OUTPUT
|
||||
echo "has_changes=${{ steps.changelog_check.outputs.has_unreleased_content }}" >> $GITHUB_OUTPUT
|
||||
echo "success=$RELEASE_SUCCESS" >> $GITHUB_OUTPUT
|
||||
echo "version_changed=$VERSION_CHANGED" >> $GITHUB_OUTPUT
|
||||
|
||||
# Generate release notes from UNRELEASED_CHANGELOG.md if it has content
|
||||
if [ "${{ steps.changelog_check.outputs.has_unreleased_content }}" == "true" ] && [ "$RELEASE_SUCCESS" == "true" ]; then
|
||||
echo "📝 Generating release notes from UNRELEASED_CHANGELOG.md..."
|
||||
|
||||
# Use the release script to extract changelog content
|
||||
cd tasks/release
|
||||
if CHANGELOG_CONTENT=$(go run release.go --extract-changelog 2>&1); then
|
||||
if [ -n "$CHANGELOG_CONTENT" ] && [ "$CHANGELOG_CONTENT" != "No changelog content found." ]; then
|
||||
echo "### Changes in this release:" > ../../release-notes.txt
|
||||
echo "" >> ../../release-notes.txt
|
||||
echo "$CHANGELOG_CONTENT" >> ../../release-notes.txt
|
||||
echo "✅ Successfully extracted changelog content"
|
||||
echo "release_notes_file=release-notes.txt" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "ℹ️ No changelog content to extract"
|
||||
echo "No detailed changelog available for this release." > ../../release-notes.txt
|
||||
echo "release_notes_file=release-notes.txt" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Failed to extract changelog content: $CHANGELOG_CONTENT"
|
||||
echo "No detailed changelog available for this release." > ../../release-notes.txt
|
||||
RELEASE_ERRORS="$RELEASE_ERRORS\n- Failed to extract changelog content for release notes"
|
||||
echo "release_notes_file=release-notes.txt" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
cd ../..
|
||||
else
|
||||
echo "release_notes_file=" >> $GITHUB_OUTPUT
|
||||
if [ "$RELEASE_SUCCESS" != "true" ]; then
|
||||
echo "⚠️ Skipping release notes generation due to release task failure"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set error output for later steps
|
||||
if [ -n "$RELEASE_ERRORS" ]; then
|
||||
echo "release_errors<<EOF" >> $GITHUB_OUTPUT
|
||||
echo -e "$RELEASE_ERRORS" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
echo "has_release_errors=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "has_release_errors=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Create and push git tag
|
||||
id: git_tag
|
||||
if: |
|
||||
(steps.quick_check.outputs.should_continue == 'true' || github.event.inputs.force_release == 'true') &&
|
||||
steps.check_tag.outputs.has_tag == 'false' &&
|
||||
github.event.inputs.dry_run != 'true' &&
|
||||
steps.release.outputs.success == 'true' &&
|
||||
steps.release.outputs.version_changed == 'true'
|
||||
env:
|
||||
WAILS_REPO_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
|
||||
GITHUB_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
|
||||
run: |
|
||||
cd v3/tasks/release
|
||||
ARGS=()
|
||||
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
|
||||
ARGS+=(--dry-run)
|
||||
echo "🏷️ Creating and pushing git tag: ${{ steps.release.outputs.tag }}"
|
||||
|
||||
# Initialize error tracking
|
||||
GIT_ERRORS=""
|
||||
GIT_SUCCESS=true
|
||||
|
||||
# Create git tag with error handling
|
||||
if git tag -a "${{ steps.release.outputs.tag }}" -m "Release ${{ steps.release.outputs.version }}" 2>&1; then
|
||||
echo "✅ Successfully created git tag: ${{ steps.release.outputs.tag }}"
|
||||
else
|
||||
echo "❌ Failed to create git tag"
|
||||
GIT_ERRORS="$GIT_ERRORS\n- Failed to create git tag: ${{ steps.release.outputs.tag }}"
|
||||
GIT_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Push tag with retry logic and error handling
|
||||
if [ "$GIT_SUCCESS" == "true" ]; then
|
||||
RETRY_COUNT=0
|
||||
MAX_RETRIES=3
|
||||
PUSH_SUCCESS=false
|
||||
|
||||
while [ $RETRY_COUNT -lt $MAX_RETRIES ] && [ "$PUSH_SUCCESS" == "false" ]; do
|
||||
RETRY_COUNT=$((RETRY_COUNT + 1))
|
||||
echo "🔄 Attempting to push tag (attempt $RETRY_COUNT/$MAX_RETRIES)..."
|
||||
|
||||
if git push "https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}.git" "${{ steps.release.outputs.tag }}" 2>&1; then
|
||||
echo "✅ Successfully pushed git tag to origin"
|
||||
PUSH_SUCCESS=true
|
||||
else
|
||||
echo "❌ Failed to push git tag (attempt $RETRY_COUNT/$MAX_RETRIES)"
|
||||
if [ $RETRY_COUNT -lt $MAX_RETRIES ]; then
|
||||
echo "⏳ Waiting 5 seconds before retry..."
|
||||
sleep 5
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$PUSH_SUCCESS" == "false" ]; then
|
||||
echo "❌ Failed to push git tag after $MAX_RETRIES attempts"
|
||||
GIT_ERRORS="$GIT_ERRORS\n- Failed to push git tag after $MAX_RETRIES attempts"
|
||||
GIT_SUCCESS=false
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set outputs for later steps
|
||||
echo "success=$GIT_SUCCESS" >> $GITHUB_OUTPUT
|
||||
|
||||
if [ -n "$GIT_ERRORS" ]; then
|
||||
echo "git_tag_errors<<EOF" >> $GITHUB_OUTPUT
|
||||
echo -e "$GIT_ERRORS" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
echo "has_git_errors=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "has_git_errors=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Commit and push changes
|
||||
id: git_commit
|
||||
if: |
|
||||
(steps.quick_check.outputs.should_continue == 'true' || github.event.inputs.force_release == 'true') &&
|
||||
github.event.inputs.dry_run != 'true' &&
|
||||
steps.release.outputs.success == 'true' &&
|
||||
steps.release.outputs.version_changed == 'true'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
|
||||
run: |
|
||||
echo "📝 Committing and pushing changes..."
|
||||
|
||||
# Initialize error tracking
|
||||
COMMIT_ERRORS=""
|
||||
COMMIT_SUCCESS=true
|
||||
|
||||
# Add any changes made by the release script with error handling
|
||||
if git add . 2>&1; then
|
||||
echo "✅ Successfully staged changes"
|
||||
else
|
||||
echo "❌ Failed to stage changes"
|
||||
COMMIT_ERRORS="$COMMIT_ERRORS\n- Failed to stage changes with git add"
|
||||
COMMIT_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Check if there are changes to commit
|
||||
if [ "$COMMIT_SUCCESS" == "true" ]; then
|
||||
if ! git diff --cached --quiet; then
|
||||
echo "📝 Changes detected, creating commit..."
|
||||
|
||||
# Create commit with error handling
|
||||
if git commit -m "${{ steps.release.outputs.version }}" 2>&1; then
|
||||
echo "✅ Successfully created commit"
|
||||
|
||||
# Push changes with retry logic
|
||||
RETRY_COUNT=0
|
||||
MAX_RETRIES=3
|
||||
PUSH_SUCCESS=false
|
||||
|
||||
while [ $RETRY_COUNT -lt $MAX_RETRIES ] && [ "$PUSH_SUCCESS" == "false" ]; do
|
||||
RETRY_COUNT=$((RETRY_COUNT + 1))
|
||||
echo "🔄 Attempting to push changes (attempt $RETRY_COUNT/$MAX_RETRIES)..."
|
||||
|
||||
if git push "https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }}.git" v3-alpha 2>&1; then
|
||||
echo "✅ Successfully pushed changes to v3-alpha branch"
|
||||
PUSH_SUCCESS=true
|
||||
else
|
||||
echo "❌ Failed to push changes (attempt $RETRY_COUNT/$MAX_RETRIES)"
|
||||
if [ $RETRY_COUNT -lt $MAX_RETRIES ]; then
|
||||
echo "⏳ Waiting 5 seconds before retry..."
|
||||
sleep 5
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$PUSH_SUCCESS" == "false" ]; then
|
||||
echo "❌ Failed to push changes after $MAX_RETRIES attempts"
|
||||
COMMIT_ERRORS="$COMMIT_ERRORS\n- Failed to push changes after $MAX_RETRIES attempts"
|
||||
COMMIT_SUCCESS=false
|
||||
fi
|
||||
else
|
||||
echo "❌ Failed to create commit"
|
||||
COMMIT_ERRORS="$COMMIT_ERRORS\n- Failed to create git commit"
|
||||
COMMIT_SUCCESS=false
|
||||
fi
|
||||
else
|
||||
echo "ℹ️ No changes to commit"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set outputs for later steps
|
||||
echo "success=$COMMIT_SUCCESS" >> $GITHUB_OUTPUT
|
||||
|
||||
if [ -n "$COMMIT_ERRORS" ]; then
|
||||
echo "commit_errors<<EOF" >> $GITHUB_OUTPUT
|
||||
echo -e "$COMMIT_ERRORS" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
echo "has_commit_errors=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "has_commit_errors=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Read release notes
|
||||
id: read_notes
|
||||
if: |
|
||||
(steps.quick_check.outputs.should_continue == 'true' || github.event.inputs.force_release == 'true') &&
|
||||
steps.release.outputs.release_notes_file != '' &&
|
||||
steps.release.outputs.version_changed == 'true'
|
||||
run: |
|
||||
cd v3
|
||||
if [ -f "release-notes.txt" ]; then
|
||||
# Read the release notes and handle multiline content
|
||||
RELEASE_NOTES=$(cat release-notes.txt)
|
||||
echo "release_notes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$RELEASE_NOTES" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "release_notes=No release notes available" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Test GitHub Release Creation (DRY RUN)
|
||||
if: |
|
||||
(steps.quick_check.outputs.should_continue == 'true' || github.event.inputs.force_release == 'true') &&
|
||||
github.event.inputs.dry_run == 'true' &&
|
||||
steps.release.outputs.version_changed == 'true'
|
||||
run: |
|
||||
echo "🧪 DRY RUN: Would create GitHub release with the following parameters:"
|
||||
echo "======================================================================="
|
||||
echo "Tag Name: ${{ steps.release.outputs.tag }}"
|
||||
echo "Release Name: ${{ steps.release.outputs.title }}"
|
||||
echo "Is Prerelease: ${{ steps.release.outputs.is_prerelease }}"
|
||||
echo "Is Latest: ${{ steps.release.outputs.is_latest }}"
|
||||
echo "Has Changes: ${{ steps.release.outputs.has_changes }}"
|
||||
echo ""
|
||||
echo "Release Body Preview:"
|
||||
echo "## Wails v3 Alpha Release - ${{ steps.release.outputs.version }}"
|
||||
echo ""
|
||||
cat << 'RELEASE_NOTES_EOF'
|
||||
${{ steps.read_notes.outputs.release_notes }}
|
||||
RELEASE_NOTES_EOF
|
||||
echo ""
|
||||
echo ""
|
||||
echo ""
|
||||
echo "---"
|
||||
echo ""
|
||||
echo "🤖 This is an automated nightly release generated from the latest changes in the v3-alpha branch."
|
||||
echo ""
|
||||
echo "**Installation:**"
|
||||
echo "\`\`\`bash"
|
||||
echo "go install github.com/wailsapp/wails/v3/cmd/wails@${{ steps.release.outputs.tag }}"
|
||||
echo "\`\`\`"
|
||||
echo ""
|
||||
echo "**⚠️ Alpha Warning:** This is pre-release software and may contain bugs or incomplete features."
|
||||
echo ""
|
||||
echo "✅ DRY RUN: GitHub release creation test completed successfully!"
|
||||
|
||||
- name: Create GitHub Release (LIVE)
|
||||
id: github_release
|
||||
if: |
|
||||
(steps.quick_check.outputs.should_continue == 'true' || github.event.inputs.force_release == 'true') &&
|
||||
github.event.inputs.dry_run != 'true' &&
|
||||
steps.release.outputs.success == 'true' &&
|
||||
steps.release.outputs.version_changed == 'true'
|
||||
continue-on-error: true
|
||||
run: |
|
||||
echo "🚀 Creating GitHub release using gh CLI..."
|
||||
|
||||
# Create release notes in a temporary file
|
||||
cat > release_notes.md << 'EOF'
|
||||
## Wails v3 Alpha Release - ${{ steps.release.outputs.version }}
|
||||
|
||||
${{ steps.read_notes.outputs.release_notes }}
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
🤖 This is an automated nightly release generated from the latest changes in the v3-alpha branch.
|
||||
|
||||
**Installation:**
|
||||
```bash
|
||||
go install github.com/wailsapp/wails/v3/cmd/wails@${{ steps.release.outputs.tag }}
|
||||
```
|
||||
|
||||
**⚠️ Alpha Warning:** This is pre-release software and may contain bugs or incomplete features.
|
||||
EOF
|
||||
|
||||
# Create the release
|
||||
if gh release create "${{ steps.release.outputs.tag }}" \
|
||||
--title "${{ steps.release.outputs.title }}" \
|
||||
--notes-file release_notes.md \
|
||||
--target v3-alpha \
|
||||
--prerelease; then
|
||||
echo "✅ Successfully created GitHub release"
|
||||
echo "outcome=success" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "❌ Failed to create GitHub release"
|
||||
echo "outcome=failure" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
|
||||
|
||||
- name: Handle GitHub Release Creation Result
|
||||
id: release_result
|
||||
if: |
|
||||
(steps.quick_check.outputs.should_continue == 'true' || github.event.inputs.force_release == 'true') &&
|
||||
github.event.inputs.dry_run != 'true' &&
|
||||
steps.release.outputs.success == 'true' &&
|
||||
steps.release.outputs.version_changed == 'true'
|
||||
run: |
|
||||
echo "📋 Checking GitHub release creation result..."
|
||||
|
||||
# Initialize error tracking
|
||||
GITHUB_ERRORS=""
|
||||
GITHUB_SUCCESS=true
|
||||
|
||||
# Check if GitHub release creation succeeded
|
||||
if [ "${{ steps.github_release.outcome }}" == "success" ]; then
|
||||
echo "✅ GitHub release created successfully"
|
||||
echo "🔗 Release URL: https://github.com/${{ github.repository }}/releases/tag/${{ steps.release.outputs.tag }}"
|
||||
else
|
||||
echo "❌ GitHub release creation failed"
|
||||
GITHUB_ERRORS="$GITHUB_ERRORS\n- GitHub release creation failed with outcome: ${{ steps.github_release.outcome }}"
|
||||
GITHUB_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Set outputs for summary
|
||||
echo "success=$GITHUB_SUCCESS" >> $GITHUB_OUTPUT
|
||||
|
||||
if [ -n "$GITHUB_ERRORS" ]; then
|
||||
echo "github_errors<<EOF" >> $GITHUB_OUTPUT
|
||||
echo -e "$GITHUB_ERRORS" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
echo "has_github_errors=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "has_github_errors=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Error Summary and Reporting
|
||||
id: error_summary
|
||||
if: always()
|
||||
run: |
|
||||
echo "📊 Generating comprehensive error summary..."
|
||||
|
||||
# Initialize error tracking
|
||||
TOTAL_ERRORS=0
|
||||
ERROR_SUMMARY=""
|
||||
OVERALL_SUCCESS=true
|
||||
|
||||
# Check for changelog errors
|
||||
if [ "${{ steps.changelog_check.outputs.has_errors }}" == "true" ]; then
|
||||
echo "❌ Changelog processing errors detected"
|
||||
ERROR_SUMMARY="$ERROR_SUMMARY\n### 📄 Changelog Processing Errors\n${{ steps.changelog_check.outputs.changelog_errors }}\n"
|
||||
TOTAL_ERRORS=$((TOTAL_ERRORS + 1))
|
||||
OVERALL_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Check for release script errors
|
||||
if [ "${{ steps.release.outputs.has_release_errors }}" == "true" ]; then
|
||||
echo "❌ Release script errors detected"
|
||||
ERROR_SUMMARY="$ERROR_SUMMARY\n### 🚀 Release Script Errors\n${{ steps.release.outputs.release_errors }}\n"
|
||||
TOTAL_ERRORS=$((TOTAL_ERRORS + 1))
|
||||
OVERALL_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Check for git tag errors
|
||||
if [ "${{ steps.git_tag.outputs.has_git_errors }}" == "true" ]; then
|
||||
echo "❌ Git tag errors detected"
|
||||
ERROR_SUMMARY="$ERROR_SUMMARY\n### 🏷️ Git Tag Errors\n${{ steps.git_tag.outputs.git_tag_errors }}\n"
|
||||
TOTAL_ERRORS=$((TOTAL_ERRORS + 1))
|
||||
OVERALL_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Check for git commit errors
|
||||
if [ "${{ steps.git_commit.outputs.has_commit_errors }}" == "true" ]; then
|
||||
echo "❌ Git commit errors detected"
|
||||
ERROR_SUMMARY="$ERROR_SUMMARY\n### 📝 Git Commit Errors\n${{ steps.git_commit.outputs.commit_errors }}\n"
|
||||
TOTAL_ERRORS=$((TOTAL_ERRORS + 1))
|
||||
OVERALL_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Check for GitHub release errors
|
||||
if [ "${{ steps.release_result.outputs.has_github_errors }}" == "true" ]; then
|
||||
echo "❌ GitHub release errors detected"
|
||||
ERROR_SUMMARY="$ERROR_SUMMARY\n### 🐙 GitHub Release Errors\n${{ steps.release_result.outputs.github_errors }}\n"
|
||||
TOTAL_ERRORS=$((TOTAL_ERRORS + 1))
|
||||
OVERALL_SUCCESS=false
|
||||
fi
|
||||
|
||||
# Set outputs for final summary
|
||||
echo "total_errors=$TOTAL_ERRORS" >> $GITHUB_OUTPUT
|
||||
echo "overall_success=$OVERALL_SUCCESS" >> $GITHUB_OUTPUT
|
||||
|
||||
if [ -n "$ERROR_SUMMARY" ]; then
|
||||
echo "error_summary<<EOF" >> $GITHUB_OUTPUT
|
||||
echo -e "$ERROR_SUMMARY" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
# Log summary
|
||||
if [ "$OVERALL_SUCCESS" == "true" ]; then
|
||||
echo "✅ Workflow completed successfully with no errors"
|
||||
else
|
||||
echo "⚠️ Workflow completed with $TOTAL_ERRORS error categories"
|
||||
fi
|
||||
go run release.go "${ARGS[@]}"
|
||||
|
||||
- name: Summary
|
||||
if: always()
|
||||
run: |
|
||||
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
|
||||
echo "## 🧪 DRY RUN Release Summary" >> $GITHUB_STEP_SUMMARY
|
||||
echo "## 🧪 DRY RUN Release Test Summary" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "## 🚀 Nightly Release Summary" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
echo "================================" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
if [ -n "${{ steps.release.outputs.release_version }}" ]; then
|
||||
echo "- **Version:** ${{ steps.release.outputs.release_version }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Tag:** ${{ steps.release.outputs.release_tag }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Status:** ${{ steps.release.outcome == 'success' && '✅ Success' || '⚠️ Failed' }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Mode:** ${{ steps.release.outputs.release_dry_run == 'true' && '🧪 Dry Run' || '🚀 Live release' }}" >> $GITHUB_STEP_SUMMARY
|
||||
if [ -n "${{ steps.release.outputs.release_url }}" ]; then
|
||||
echo "- **Release URL:** ${{ steps.release.outputs.release_url }}" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Changelog" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ steps.changelog_check.outputs.has_unreleased_content }}" == "true" ]; then
|
||||
echo "✅ Unreleased changelog processed and reset." >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Version:** ${{ steps.release.outputs.version }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Tag:** ${{ steps.release.outputs.tag }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Version Changed:** ${{ steps.release.outputs.version_changed }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Has existing tag:** ${{ steps.check_tag.outputs.has_tag }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Has unreleased changelog content:** ${{ steps.changelog_check.outputs.has_unreleased_content }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Has changes:** ${{ steps.release.outputs.has_changes }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Is prerelease:** ${{ steps.release.outputs.is_prerelease }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Is latest:** ${{ steps.release.outputs.is_latest }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# Overall status
|
||||
if [ "${{ steps.error_summary.outputs.overall_success }}" == "true" ]; then
|
||||
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
|
||||
echo "- **Mode:** 🧪 DRY RUN (no actual release created)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Status:** ✅ Test completed successfully" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "ℹ️ No unreleased changelog content detected." >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Mode:** 🚀 Live release" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Status:** ✅ Release created successfully" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
else
|
||||
echo "- Release script did not run (skipped or failed before execution)." >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Mode:** ${{ github.event.inputs.dry_run == 'true' && '🧪 DRY RUN' || '🚀 Live release' }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Status:** ⚠️ Completed with ${{ steps.error_summary.outputs.total_errors }} error(s)" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Release Processing" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ steps.release.outputs.version_changed }}" == "true" ]; then
|
||||
echo "✅ **Version was incremented** and release created" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "ℹ️ **Version was not changed** - no release created" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Changelog Processing" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ steps.changelog_check.outputs.has_unreleased_content }}" == "true" ]; then
|
||||
echo "✅ **UNRELEASED_CHANGELOG.md** had content and was processed" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Content moved to main changelog" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- UNRELEASED_CHANGELOG.md reset with template" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "ℹ️ **UNRELEASED_CHANGELOG.md** had no content to process" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
# Error reporting section
|
||||
if [ "${{ steps.error_summary.outputs.total_errors }}" -gt 0 ]; then
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "## ⚠️ Error Report" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Total Error Categories:** ${{ steps.error_summary.outputs.total_errors }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "${{ steps.error_summary.outputs.error_summary }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### 🔧 Troubleshooting Tips" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Check the individual step logs above for detailed error messages" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Verify GitHub token permissions (contents: write, pull-requests: read)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Ensure UNRELEASED_CHANGELOG.md follows the expected format" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Check for network connectivity issues if git/GitHub operations failed" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Re-run the workflow with 'force_release=true' if needed" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Release Notes Preview" >> $GITHUB_STEP_SUMMARY
|
||||
if [ -n "${{ steps.read_notes.outputs.release_notes }}" ]; then
|
||||
echo "${{ steps.read_notes.outputs.release_notes }}" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "No specific release notes generated" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "---" >> $GITHUB_STEP_SUMMARY
|
||||
echo "*Generated by automated nightly release workflow with enhanced error handling and changelog integration*" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# Set final workflow status
|
||||
if [ "${{ steps.error_summary.outputs.overall_success }}" != "true" ]; then
|
||||
echo "⚠️ Workflow completed with errors. Check the summary above for details."
|
||||
exit 1
|
||||
fi
|
||||
41
.github/workflows/pr-master.yml
vendored
|
|
@ -1,26 +1,17 @@
|
|||
# Updated to ensure "Run Go Tests" runs for pull requests as expected.
|
||||
# Key fix: the test_go job previously required github.event.review.state == 'approved'
|
||||
# which only exists on pull_request_review events. That prevented the job from
|
||||
# running for regular pull_request events (opened / synchronize / reopened).
|
||||
# New logic: run tests for pull_request events, and also allow running when a
|
||||
# pull_request_review is submitted with state == 'approved'.
|
||||
name: PR Checks (master)
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
branches:
|
||||
- master
|
||||
pull_request_review:
|
||||
types: [submitted]
|
||||
branches:
|
||||
- master
|
||||
workflow_dispatch: {}
|
||||
|
||||
name: PR Checks (master)
|
||||
|
||||
jobs:
|
||||
check_docs:
|
||||
name: Check Docs
|
||||
if: ${{ github.repository == 'wailsapp/wails' && github.base_ref == 'master' }}
|
||||
if: ${{github.repository == 'wailsapp/wails' && github.base_ref == 'master'}}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
|
@ -32,6 +23,7 @@ jobs:
|
|||
files: |
|
||||
website/**/*.mdx
|
||||
website/**/*.md
|
||||
|
||||
- name: Run step only when files change.
|
||||
if: steps.verify-changed-files.outputs.files_changed != 'true'
|
||||
run: |
|
||||
|
|
@ -40,18 +32,11 @@ jobs:
|
|||
test_go:
|
||||
name: Run Go Tests
|
||||
runs-on: ${{ matrix.os }}
|
||||
# Run when:
|
||||
# - the event is a pull_request (opened/synchronize/reopened) OR
|
||||
# - the event is a pull_request_review AND the review state is 'approved'
|
||||
# plus other existing filters (not the update-sponsors branch, repo and base_ref)
|
||||
if: >
|
||||
github.repository == 'wailsapp/wails' &&
|
||||
github.event.review.state == 'approved' &&
|
||||
github.repository == 'wailsapp/wails' &&
|
||||
github.base_ref == 'master' &&
|
||||
github.event.pull_request.head.ref != 'update-sponsors' &&
|
||||
(
|
||||
github.event_name == 'pull_request' ||
|
||||
(github.event_name == 'pull_request_review' && github.event.review.state == 'approved')
|
||||
)
|
||||
github.event.pull_request.head.ref != 'update-sponsors'
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-22.04, windows-latest, macos-latest, ubuntu-24.04]
|
||||
|
|
@ -90,15 +75,3 @@ jobs:
|
|||
if: matrix.os == 'ubuntu-24.04'
|
||||
working-directory: ./v2
|
||||
run: go test -v -tags webkit2_41 ./...
|
||||
|
||||
# This job will run instead of test_go for the update-sponsors branch
|
||||
skip_tests:
|
||||
name: Skip Tests (Sponsor Update)
|
||||
if: github.event.pull_request.head.ref == 'update-sponsors'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Skip tests for sponsor updates
|
||||
run: |
|
||||
echo "Skipping tests for sponsor update branch"
|
||||
echo "This is an automated update of the sponsors image."
|
||||
continue-on-error: true
|
||||
|
|
|
|||
114
.github/workflows/publish-npm.yml
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
on:
|
||||
push:
|
||||
branches: ['v3-alpha']
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: publish-npm-v3
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
detect:
|
||||
name: Detect committed changes
|
||||
if: github.event_name != 'workflow_dispatch'
|
||||
outputs:
|
||||
changed: ${{ steps.package-json-changes.outputs.any_modified == 'true' || steps.source-changes.outputs.any_modified == 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.sha }}
|
||||
persist-credentials: 'true'
|
||||
|
||||
- name: Detect committed package.json changes
|
||||
id: package-json-changes
|
||||
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
|
||||
with:
|
||||
files: |
|
||||
v3/internal/runtime/desktop/@wailsio/runtime/package.json
|
||||
|
||||
- name: Detect committed source changes
|
||||
if: >-
|
||||
steps.package-json-changes.outputs.any_modified != 'true'
|
||||
id: source-changes
|
||||
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
|
||||
with:
|
||||
files: |
|
||||
v3/internal/runtime/Taskfile.yaml
|
||||
v3/internal/runtime/desktop/@wailsio/compiled/main.js
|
||||
v3/internal/runtime/desktop/@wailsio/runtime/tsconfig.json
|
||||
v3/internal/runtime/desktop/@wailsio/runtime/src/**
|
||||
v3/pkg/events/events.txt
|
||||
v3/tasks/events/**
|
||||
|
||||
rebuild_and_publish:
|
||||
name: Rebuild and publish
|
||||
needs: [detect]
|
||||
if: >-
|
||||
!failure() && !cancelled()
|
||||
&& (github.event_name == 'workflow_dispatch' || needs.detect.outputs.changed == 'true')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: 'v3-alpha'
|
||||
ssh-key: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Configure git
|
||||
run: |
|
||||
git config --local user.email "github-actions@github.com"
|
||||
git config --local user.name "GitHub Actions"
|
||||
|
||||
- name: Install Task
|
||||
uses: arduino/setup-task@v2
|
||||
with:
|
||||
version: 3.x
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Use Node.js 20
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
run: |
|
||||
npm ci
|
||||
npx --yes esbuild@latest --version
|
||||
|
||||
- name: Clean build artifacts
|
||||
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
run: npm run clean
|
||||
|
||||
- name: Build bundled runtime
|
||||
working-directory: v3
|
||||
run: task runtime:build
|
||||
|
||||
- name: Test+Build npm package
|
||||
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
run: |
|
||||
npm test
|
||||
npm run build
|
||||
|
||||
- name: Bump version
|
||||
id: bump-version
|
||||
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
run: |
|
||||
echo "version=$(npm --no-git-tag-version --force version prerelease)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Commit changes
|
||||
run: |
|
||||
git add .
|
||||
git commit -m "[skip ci] Publish @wailsio/runtime ${{ steps.bump-version.outputs.version }}"
|
||||
git push
|
||||
fi
|
||||
|
||||
- name: Publish npm package
|
||||
uses: JS-DevTools/npm-publish@v3
|
||||
with:
|
||||
package: v3/internal/runtime/desktop/@wailsio/runtime
|
||||
access: public
|
||||
token: ${{ secrets.NPM_TOKEN }}
|
||||
11
.github/workflows/test-simple.yml
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
name: Test Simple
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Test
|
||||
run: echo "Hello World"
|
||||
129
.github/workflows/unreleased-changelog-trigger.yml
vendored
|
|
@ -1,129 +0,0 @@
|
|||
name: Auto Release on Changelog Update
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- v3-alpha
|
||||
paths:
|
||||
- 'v3/UNRELEASED_CHANGELOG.md'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
dry_run:
|
||||
description: 'Run in dry-run mode (no actual release)'
|
||||
required: false
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
check-permissions:
|
||||
name: Check Release Permissions
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
authorized: ${{ steps.check.outputs.authorized }}
|
||||
steps:
|
||||
- name: Check if user is authorized for releases
|
||||
id: check
|
||||
run: |
|
||||
# Only allow specific users to trigger releases
|
||||
AUTHORIZED_USERS="leaanthony"
|
||||
|
||||
if [[ "$AUTHORIZED_USERS" == *"${{ github.actor }}"* ]]; then
|
||||
echo "✅ User ${{ github.actor }} is authorized for releases"
|
||||
echo "authorized=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "❌ User ${{ github.actor }} is not authorized for releases"
|
||||
echo "authorized=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
trigger-release:
|
||||
name: Trigger v3-alpha Release
|
||||
permissions:
|
||||
contents: read
|
||||
actions: write
|
||||
runs-on: ubuntu-latest
|
||||
needs: check-permissions
|
||||
if: needs.check-permissions.outputs.authorized == 'true'
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: v3-alpha
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
|
||||
|
||||
- name: Check for unreleased changelog content
|
||||
id: changelog_check
|
||||
run: |
|
||||
echo "🔍 Checking UNRELEASED_CHANGELOG.md for content..."
|
||||
|
||||
cd v3
|
||||
# Check if UNRELEASED_CHANGELOG.md has actual content beyond the template
|
||||
if [ -f "UNRELEASED_CHANGELOG.md" ]; then
|
||||
# Use a simple check for actual content (bullet points starting with -)
|
||||
CONTENT_LINES=$(grep -E "^\s*-\s+[^[:space:]]" UNRELEASED_CHANGELOG.md | wc -l)
|
||||
if [ "$CONTENT_LINES" -gt 0 ]; then
|
||||
echo "✅ Found $CONTENT_LINES content lines in UNRELEASED_CHANGELOG.md"
|
||||
echo "has_content=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "ℹ️ No actual content found in UNRELEASED_CHANGELOG.md"
|
||||
echo "has_content=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
else
|
||||
echo "❌ UNRELEASED_CHANGELOG.md not found"
|
||||
echo "has_content=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Trigger nightly release workflow
|
||||
if: steps.changelog_check.outputs.has_content == 'true'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
|
||||
script: |
|
||||
const response = await github.rest.actions.createWorkflowDispatch({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
workflow_id: 'nightly-release-v3.yml',
|
||||
ref: 'v3-alpha',
|
||||
inputs: {
|
||||
force_release: 'true',
|
||||
dry_run: '${{ github.event.inputs.dry_run || "false" }}'
|
||||
}
|
||||
});
|
||||
|
||||
console.log('🚀 Successfully triggered nightly release workflow');
|
||||
console.log(`Workflow dispatch response status: ${response.status}`);
|
||||
|
||||
// Create a summary
|
||||
core.summary
|
||||
.addHeading('🚀 Auto Release Triggered')
|
||||
.addRaw('The v3-alpha release workflow has been automatically triggered due to changes in UNRELEASED_CHANGELOG.md')
|
||||
.addTable([
|
||||
[{data: 'Trigger', header: true}, {data: 'Value', header: true}],
|
||||
['Repository', context.repo.repo],
|
||||
['Branch', 'v3-alpha'],
|
||||
['Actor', context.actor],
|
||||
['Dry Run', '${{ github.event.inputs.dry_run || "false" }}'],
|
||||
['Force Release', 'true']
|
||||
])
|
||||
.addRaw('\n---\n*This release was automatically triggered by the unreleased-changelog-trigger workflow*')
|
||||
.write();
|
||||
|
||||
- name: No content found
|
||||
if: steps.changelog_check.outputs.has_content == 'false'
|
||||
run: |
|
||||
echo "ℹ️ No content found in UNRELEASED_CHANGELOG.md, skipping release trigger"
|
||||
echo "## ℹ️ No Release Triggered" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Reason:** UNRELEASED_CHANGELOG.md does not contain actual changelog content" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Action:** No release workflow was triggered" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "To trigger a release, add actual changelog entries to the UNRELEASED_CHANGELOG.md file." >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Unauthorized user
|
||||
if: needs.check-permissions.outputs.authorized == 'false'
|
||||
run: |
|
||||
echo "❌ User ${{ github.actor }} is not authorized to trigger releases"
|
||||
echo "## ❌ Unauthorized Release Attempt" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**User:** ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Action:** Release trigger was blocked due to insufficient permissions" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Only authorized users can trigger automatic releases via changelog updates." >> $GITHUB_STEP_SUMMARY
|
||||
42
.github/workflows/v3-docs.yml
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
name: Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
# Trigger the workflow every time you push to the `main` branch
|
||||
# Using a different branch name? Replace `main` with your branch’s name
|
||||
push:
|
||||
branches: [v3-alpha]
|
||||
# Allows you to run this workflow manually from the Actions tab on GitHub.
|
||||
workflow_dispatch:
|
||||
|
||||
# Allow this job to clone the repo and create a page deployment
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.repository.fork == false
|
||||
steps:
|
||||
- name: Checkout your repository using git
|
||||
uses: actions/checkout@v4
|
||||
- name: Install, build, and upload your site output
|
||||
uses: withastro/action@v2
|
||||
with:
|
||||
path: docs
|
||||
node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 18. (optional)
|
||||
# package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
|
||||
|
||||
deploy:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
52
.gitignore
vendored
|
|
@ -37,5 +37,55 @@ v2/cmd/wails/internal/commands/initialise/templates/testtemplates/
|
|||
/websitev3/site/
|
||||
/v3/examples/plugins/bin/testapp
|
||||
|
||||
# V3 Example binaries - ignore executables that match directory names
|
||||
/v3/examples/badge-custom/badge-custom
|
||||
/v3/examples/badge/badge
|
||||
/v3/examples/binding/binding
|
||||
/v3/examples/cancel-async/cancel-async
|
||||
/v3/examples/cancel-chaining/cancel-chaining
|
||||
/v3/examples/clipboard/clipboard
|
||||
/v3/examples/contextmenus/contextmenus
|
||||
/v3/examples/dev/dev
|
||||
/v3/examples/dialogs-basic/dialogs-basic
|
||||
/v3/examples/dialogs/dialogs
|
||||
/v3/examples/drag-n-drop/drag-n-drop
|
||||
/v3/examples/environment/environment
|
||||
/v3/examples/events-bug/events-bug
|
||||
/v3/examples/events/events
|
||||
/v3/examples/file-association/file-association
|
||||
/v3/examples/frameless/frameless
|
||||
/v3/examples/gin-example/gin-example
|
||||
/v3/examples/gin-routing/gin-routing
|
||||
/v3/examples/gin-service/gin-service
|
||||
/v3/examples/hide-window/hide-window
|
||||
/v3/examples/html-dnd-api/html-dnd-api
|
||||
/v3/examples/ignore-mouse/ignore-mouse
|
||||
/v3/examples/keybindings/keybindings
|
||||
/v3/examples/menu/menu
|
||||
/v3/examples/notifications/notifications
|
||||
/v3/examples/panic-handling/panic-handling
|
||||
/v3/examples/plain/plain
|
||||
/v3/examples/raw-message/raw-message
|
||||
/v3/examples/screen/screen
|
||||
/v3/examples/services/services
|
||||
/v3/examples/show-macos-toolbar/show-macos-toolbar
|
||||
/v3/examples/single-instance/single-instance
|
||||
/v3/examples/systray-basic/systray-basic
|
||||
/v3/examples/systray-custom/systray-custom
|
||||
/v3/examples/systray-menu/systray-menu
|
||||
/v3/examples/video/video
|
||||
/v3/examples/window-api/window-api
|
||||
/v3/examples/window-call/window-call
|
||||
/v3/examples/window-menu/window-menu
|
||||
/v3/examples/window/window
|
||||
/v3/examples/wml/wml
|
||||
|
||||
# Common binary names in examples
|
||||
/v3/examples/*/main
|
||||
/v3/examples/*/app
|
||||
/v3/examples/*/changeme
|
||||
/v3/examples/*/testbuild-*
|
||||
|
||||
# Temporary called mkdocs, should be renamed to more standard -website or similar
|
||||
/mkdocs-website/site
|
||||
/docs/site
|
||||
.aider*
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
overrides:
|
||||
- files:
|
||||
- "**/*.md"
|
||||
- "**/*.mdx"
|
||||
options:
|
||||
printWidth: 80
|
||||
proseWrap: always
|
||||
|
|
|
|||
8
.replit
|
|
@ -1,8 +0,0 @@
|
|||
modules = ["go-1.21", "web", "nodejs-20"]
|
||||
run = "go run v2/cmd/wails/main.go"
|
||||
|
||||
[nix]
|
||||
channel = "stable-24_05"
|
||||
|
||||
[deployment]
|
||||
run = ["sh", "-c", "go run v2/cmd/wails/main.go"]
|
||||
1
CNAME
Normal file
|
|
@ -0,0 +1 @@
|
|||
v3alpha.wails.io
|
||||
|
|
@ -25,7 +25,7 @@ Erschaffe Desktop Anwendungen mit Go & Web Technologien.
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
@ -98,9 +98,9 @@ The installation instructions are on the [official website](https://wails.io/doc
|
|||
This project is supported by these kind people / companies:
|
||||
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
|
||||
|
||||
## Powered By
|
||||
|
||||
[](https://jb.gg/OpenSource)
|
||||
<p align="center">
|
||||
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
|
||||
</p>
|
||||
|
||||
## FAQ
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
|
||||
</a>
|
||||
<a href="https://discord.gg/BrRSWTaxVK">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
|
||||
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
|
||||
</a>
|
||||
<br/>
|
||||
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
|
||||
|
|
|
|||
|
|
@ -16,6 +16,11 @@ includes:
|
|||
dir: v3
|
||||
optional: true
|
||||
|
||||
docs:
|
||||
taskfile: docs
|
||||
dir: docs
|
||||
optional: true
|
||||
|
||||
tasks:
|
||||
contributors:check:
|
||||
cmds:
|
||||
|
|
|
|||
21
docs/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# build output
|
||||
dist/
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
1
docs/.npmrc
Normal file
|
|
@ -0,0 +1 @@
|
|||
save-exact=true
|
||||
4
docs/.vscode/extensions.json
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"recommendations": ["astro-build.astro-vscode"],
|
||||
"unwantedRecommendations": []
|
||||
}
|
||||
11
docs/.vscode/launch.json
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"command": "./node_modules/.bin/astro dev",
|
||||
"name": "Development server",
|
||||
"request": "launch",
|
||||
"type": "node-terminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
1
docs/CNAME
Normal file
|
|
@ -0,0 +1 @@
|
|||
v3alpha.wails.io
|
||||
60
docs/README.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# Starlight Starter Kit: Basics
|
||||
|
||||
[](https://starlight.astro.build)
|
||||
|
||||
```sh
|
||||
npm create astro@latest -- --template starlight
|
||||
```
|
||||
|
||||
[](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
|
||||
[](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
|
||||
[](https://app.netlify.com/start/deploy?repository=https://github.com/withastro/starlight&create_from_path=examples/basics)
|
||||
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwithastro%2Fstarlight%2Ftree%2Fmain%2Fexamples%2Fbasics&project-name=my-starlight-docs&repository-name=my-starlight-docs)
|
||||
|
||||
> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
|
||||
|
||||
## 🚀 Project Structure
|
||||
|
||||
Inside of your Astro + Starlight project, you'll see the following folders and
|
||||
files:
|
||||
|
||||
```sh
|
||||
.
|
||||
├── public/
|
||||
├── src/
|
||||
│ ├── assets/
|
||||
│ ├── content/
|
||||
│ │ ├── docs/
|
||||
│ │ └── config.ts
|
||||
│ └── env.d.ts
|
||||
├── astro.config.mjs
|
||||
├── package.json
|
||||
└── tsconfig.json
|
||||
```
|
||||
|
||||
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory.
|
||||
Each file is exposed as a route based on its file name.
|
||||
|
||||
Images can be added to `src/assets/` and embedded in Markdown with a relative
|
||||
link.
|
||||
|
||||
Static assets, like favicons, can be placed in the `public/` directory.
|
||||
|
||||
## 🧞 Commands
|
||||
|
||||
All commands are run from the root of the project, from a terminal:
|
||||
|
||||
| Command | Action |
|
||||
| :------------------------ | :----------------------------------------------- |
|
||||
| `npm install` | Installs dependencies |
|
||||
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
||||
| `npm run build` | Build your production site to `./dist/` |
|
||||
| `npm run preview` | Preview your build locally, before deploying |
|
||||
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
||||
| `npm run astro -- --help` | Get help using the Astro CLI |
|
||||
|
||||
## 👀 Want to learn more?
|
||||
|
||||
Check out [Starlight’s docs](https://starlight.astro.build/), read
|
||||
[the Astro documentation](https://docs.astro.build), or jump into the
|
||||
[Astro Discord server](https://astro.build/chat).
|
||||
30
docs/Taskfile.yml
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# https://taskfile.dev
|
||||
|
||||
version: '3'
|
||||
|
||||
tasks:
|
||||
|
||||
setup:
|
||||
summary: Setup the project
|
||||
preconditions:
|
||||
- sh: npm --version
|
||||
msg: "Looks like npm isn't installed."
|
||||
cmds:
|
||||
- npm install
|
||||
|
||||
dev:
|
||||
summary: Run the dev server
|
||||
preconditions:
|
||||
- sh: npm --version
|
||||
msg: "Looks like npm isn't installed."
|
||||
cmds:
|
||||
- npm run dev
|
||||
|
||||
build:
|
||||
summary: Build the docs
|
||||
preconditions:
|
||||
- sh: npm --version
|
||||
msg: "Looks like npm isn't installed."
|
||||
cmds:
|
||||
- npm run build
|
||||
|
||||
145
docs/astro.config.mjs
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
// @ts-check
|
||||
import { defineConfig } from "astro/config";
|
||||
import starlight from "@astrojs/starlight";
|
||||
import sitemap from "@astrojs/sitemap";
|
||||
import starlightLinksValidator from "starlight-links-validator";
|
||||
import starlightImageZoom from "starlight-image-zoom";
|
||||
import starlightBlog from "starlight-blog";
|
||||
import { authors } from "./src/content/authors";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
// TODO: update this
|
||||
site: "https://wails.io",
|
||||
trailingSlash: "ignore",
|
||||
compressHTML: true,
|
||||
output: "static",
|
||||
build: { format: "directory" },
|
||||
devToolbar: { enabled: true },
|
||||
integrations: [
|
||||
sitemap(),
|
||||
starlight({
|
||||
title: "",
|
||||
// If a title is added, also update the delimiter.
|
||||
titleDelimiter: "",
|
||||
logo: {
|
||||
dark: "./src/assets/wails-logo-horizontal-dark.svg",
|
||||
light: "./src/assets/wails-logo-horizontal-light.svg",
|
||||
},
|
||||
favicon: "./public/favicon.svg",
|
||||
description: "Build desktop applications using Go & Web Technologies.",
|
||||
pagefind: true,
|
||||
customCss: ["./src/stylesheets/extra.css"],
|
||||
lastUpdated: true, // Note, this needs git clone with fetch depth 0 to work
|
||||
pagination: true,
|
||||
editLink: {
|
||||
// TODO: update this
|
||||
baseUrl: "https://github.com/wailsapp/wails/edit/v3-alpha/docs",
|
||||
},
|
||||
social: {
|
||||
github: "https://github.com/wailsapp/wails",
|
||||
discord: "https://discord.gg/JDdSxwjhGf",
|
||||
"x.com": "https://x.com/wailsapp",
|
||||
},
|
||||
defaultLocale: "root",
|
||||
locales: {
|
||||
root: { label: "English", lang: "en", dir: "ltr" },
|
||||
// Example of how a new language is added.
|
||||
// After this, you create a directory named after the language inside content/docs/
|
||||
// with the same structure as the root language
|
||||
// eg content/docs/gr/changelog.md or content/docs/gr/api/application.mdx
|
||||
// gr: { label: "Greek", lang: "el", dir: "ltr" },
|
||||
},
|
||||
plugins: [
|
||||
// https://starlight-links-validator.vercel.app/configuration/
|
||||
// starlightLinksValidator({
|
||||
// exclude: [
|
||||
// // TODO: Fix these links in the blog/wails-v2-released file
|
||||
// // "/docs/reference/options#theme",
|
||||
// // "/docs/reference/options#customtheme",
|
||||
// // "/docs/guides/application-development#application-menu",
|
||||
// // "/docs/reference/runtime/dialog",
|
||||
// // "/docs/reference/options#windowistranslucent",
|
||||
// // "/docs/reference/options#windowistranslucent-1",
|
||||
// // "/docs/guides/windows-installer",
|
||||
// // "/docs/reference/runtime/intro",
|
||||
// // "/docs/guides/obfuscated",
|
||||
// // "/docs/howdoesitwork#calling-bound-go-methods",
|
||||
// ],
|
||||
// }),
|
||||
// https://starlight-image-zoom.vercel.app/configuration/
|
||||
starlightImageZoom(),
|
||||
// https://starlight-blog-docs.vercel.app/configuration
|
||||
starlightBlog({
|
||||
title: "Wails Blog",
|
||||
authors: authors,
|
||||
}),
|
||||
],
|
||||
sidebar: [
|
||||
{ label: "Home", link: "/" },
|
||||
{
|
||||
label: "Getting Started",
|
||||
autogenerate: { directory: "getting-started", collapsed: false },
|
||||
},
|
||||
{
|
||||
label: "Tutorials",
|
||||
collapsed: true,
|
||||
autogenerate: { directory: "tutorials", collapsed: true },
|
||||
},
|
||||
{
|
||||
label: "What's New",
|
||||
link: "/whats-new",
|
||||
badge: { text: "New", variant: "tip" },
|
||||
},
|
||||
{ label: "v3 Alpha Feedback", link: "/feedback" },
|
||||
{
|
||||
label: "Learn",
|
||||
collapsed: true,
|
||||
autogenerate: { directory: "learn", collapsed: true },
|
||||
},
|
||||
{
|
||||
label: "Guides",
|
||||
collapsed: true,
|
||||
autogenerate: { directory: "guides", collapsed: true },
|
||||
},
|
||||
// {
|
||||
// label: "API",
|
||||
// collapsed: true,
|
||||
// autogenerate: { directory: "api", collapsed: true },
|
||||
// },
|
||||
{
|
||||
label: "Community",
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ label: "Links", link: "/community/links" },
|
||||
{ label: "Templates", link: "/community/templates" },
|
||||
{
|
||||
label: "Showcase",
|
||||
autogenerate: {
|
||||
directory: "community/showcase",
|
||||
collapsed: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
// {
|
||||
// label: "Development",
|
||||
// collapsed: true,
|
||||
// autogenerate: { directory: "development", collapsed: true },
|
||||
// },
|
||||
{ label: "Status", link: "/status" },
|
||||
{ label: "Changelog", link: "/changelog" },
|
||||
{
|
||||
label: "Sponsor",
|
||||
link: "https://github.com/sponsors/leaanthony",
|
||||
badge: { text: "❤️" },
|
||||
},
|
||||
{
|
||||
label: "Credits",
|
||||
link: "/credits",
|
||||
badge: { text: "👑" },
|
||||
},
|
||||
],
|
||||
}),
|
||||
],
|
||||
});
|
||||
9980
docs/package-lock.json
generated
Normal file
31
docs/package.json
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"name": "wails-docs",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"start": "astro dev",
|
||||
"build": "astro check && astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/check": "0.9.4",
|
||||
"@astrojs/react": "4.1.0",
|
||||
"@astrojs/starlight": "0.29.2",
|
||||
"@types/react": "19.0.1",
|
||||
"@types/react-dom": "19.0.2",
|
||||
"astro": "4.16.17",
|
||||
"framer-motion": "11.14.4",
|
||||
"mermaid": "^10.9.3",
|
||||
"motion": "11.14.4",
|
||||
"react": "19.0.0",
|
||||
"react-dom": "19.0.0",
|
||||
"sharp": "0.33.5",
|
||||
"starlight-blog": "0.15.0",
|
||||
"starlight-image-zoom": "0.9.0",
|
||||
"starlight-links-validator": "0.13.4",
|
||||
"starlight-showcases": "0.2.0",
|
||||
"typescript": "5.7.2"
|
||||
}
|
||||
}
|
||||
1
docs/public/favicon.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" version="1.1" viewBox="0 0 550 310" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><g><path d="M0.883,-0.081L0.121,0.081L0.256,-0.063L0.883,-0.081Z" transform="matrix(-166.599,4.57132,4.57132,166.599,147.403,167.648)" style="fill:url(#_Linear1);fill-rule:nonzero"/></g><g><path d="M0.878,-0.285L-0.073,0.71L-1.186,0.542L0.015,0.207L-0.846,0.077L0.355,-0.258L-0.505,-0.388L0.649,-0.71L0.878,-0.285Z" transform="matrix(-106.443,-16.0669,-16.0669,106.443,428.19,188.033)" style="fill:url(#_Linear2);fill-rule:nonzero"/></g><g><path d="M0.44,-0.04L0.265,-0.056L0.177,0.437L-0.311,-0.255L0.262,-0.437L0.568,-0.437L0.44,-0.04Z" transform="matrix(-114.484,-162.408,-162.408,114.484,333.291,285.804)" style="fill:url(#_Linear3);fill-rule:nonzero"/></g><g><path d="M0.622,-0.115L0.761,-0.115L0.806,-0.013L0.826,0.182L0.622,-0.115Z" transform="matrix(238.126,298.893,298.893,-238.126,113.516,-150.536)" style="fill:url(#_Linear4);fill-rule:nonzero"/></g><g><path d="M0.467,0.005L0.49,0.062L0.271,-0.062L0.467,0.005Z" transform="matrix(-369.529,-97.4118,-97.4118,369.529,582.38,94.027)" style="fill:url(#_Linear5);fill-rule:nonzero"/></g><g><path d="M0.2,0.001L0.219,-0.018L0.614,0.012L0.519,0.089L0.282,0.068L0.2,0.135L0.463,0.194L0.374,0.266L0.138,0.186L0.047,0.033L-0.131,-0.266L0.2,0.001Z" transform="matrix(-496.156,-53.9751,-53.9751,496.156,367.888,125.085)" style="fill:url(#_Linear6);fill-rule:nonzero"/></g><g><path d="M269.095,104.527L287.764,111.419L263.632,106.75L269.095,104.527Z" transform="matrix(0.436503,-1.22916,4.88651,1.73532,-368.043,253.619)" style="fill:#fff"/></g><defs><linearGradient id="_Linear1" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,-3.46945e-18,3.46945e-18,1,0,-3.05761e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear2" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,0,0,1,0,-2.75467e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear3" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,-1.11022e-16,1.11022e-16,1,0,-2.61861e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear4" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(-0.801899,-0.59746,0.59746,-0.801899,1.3495,0.447457)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear5" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,-2.77556e-17,2.77556e-17,1,0,-1.92826e-06)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient><linearGradient id="_Linear6" x1="0" x2="1" y1="0" y2="0" gradientTransform="matrix(1,0,0,1,0,9.68429e-07)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#e33232;stop-opacity:1"/><stop offset="1" style="stop-color:#6b000d;stop-opacity:1"/></linearGradient></defs></svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
BIN
docs/public/missing.png
Normal file
|
After Width: | Height: | Size: 498 KiB |
BIN
docs/public/sponsors/jetbrains-grayscale.webp
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
197
docs/public/sponsors/sponsors.svg
Normal file
|
After Width: | Height: | Size: 235 KiB |
BIN
docs/public/sponsors/zsa.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/src/assets/blog-images/browser.webp
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/src/assets/blog-images/build-cross-windows.webp
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
docs/src/assets/blog-images/build-darwin-amd.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/src/assets/blog-images/build-darwin-arm.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/src/assets/blog-images/build-darwin-universal.webp
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
docs/src/assets/blog-images/devtools.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
docs/src/assets/blog-images/linux-build-cross-windows.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/src/assets/blog-images/montage.png
Normal file
|
After Width: | Height: | Size: 177 KiB |
BIN
docs/src/assets/blog-images/multiwindow.webp
Normal file
|
After Width: | Height: | Size: 269 KiB |
BIN
docs/src/assets/blog-images/remote-linux.webp
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/src/assets/blog-images/remote-mac.webp
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/src/assets/blog-images/remote.webp
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
docs/src/assets/blog-images/vscode.webp
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/src/assets/blog-images/wails-linux.webp
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
docs/src/assets/blog-images/wails-mac.webp
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
docs/src/assets/blog-images/wails-menus-linux.webp
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
docs/src/assets/blog-images/wails-menus-mac.webp
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/src/assets/blog-images/wails-menus.webp
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/src/assets/blog-images/wails.webp
Normal file
|
After Width: | Height: | Size: 18 KiB |
246
docs/src/assets/contributors.html
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
<div class="container">
|
||||
|
||||
<!--GAMFC_DELIMITER-->
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/leaanthony"><img src="https://avatars.githubusercontent.com/u/1943904?v=4?s=75" width="75px;" alt="Lea Anthony"/><br /><sub><b>Lea Anthony</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=leaanthony" title="Code">💻</a> <a href="#ideas-leaanthony" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-leaanthony" title="Design">🎨</a> <a href="#content-leaanthony" title="Content">🖋</a> <a href="#example-leaanthony" title="Examples">💡</a> <a href="#mentoring-leaanthony" title="Mentoring">🧑🏫</a> <a href="#projectManagement-leaanthony" title="Project Management">📆</a> <a href="#tool-leaanthony" title="Tools">🔧</a> <a href="https://github.com/wailsapp/wails/yssues?q=author%3Aleaanthony" title="Bug reports">🐛</a> <a href="#blog-leaanthony" title="Blogposts">📝</a> <a href="#maintenance-leaanthony" title="Maintenance">🚧</a> <a href="#platform-leaanthony" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Aleaanthony" title="Reviewed Pull Requests">👀</a> <a href="#question-leaanthony" title="Answering Questions">💬</a> <a href="#research-leaanthony" title="Research">🔬</a> <a href="https://github.com/wailsapp/wails/commits?author=leaanthony" title="Tests">⚠️</a> <a href="#tutorial-leaanthony" title="Tutorials">✅</a> <a href="#talk-leaanthony" title="Talks">📢</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Aleaanthony" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=leaanthony" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/stffabi"><img src="https://avatars.githubusercontent.com/u/9464631?v=4?s=75" width="75px;" alt="stffabi"/><br /><sub><b>stffabi</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=stffabi" title="Code">💻</a> <a href="#ideas-stffabi" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-stffabi" title="Design">🎨</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Astffabi" title="Bug reports">🐛</a> <a href="#maintenance-stffabi" title="Maintenance">🚧</a> <a href="#platform-stffabi" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Astffabi" title="Reviewed Pull Requests">👀</a> <a href="#question-stffabi" title="Answering Questions">💬</a> <a href="#research-stffabi" title="Research">🔬</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Astffabi" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=stffabi" title="Documentation">📖</a> <a href="https://github.com/wailsapp/wails/commits?author=stffabi" title="Tests">⚠️</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tmclane"><img src="https://avatars.githubusercontent.com/u/511975?v=4?s=75" width="75px;" alt="Travis McLane"/><br /><sub><b>Travis McLane</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tmclane" title="Code">💻</a> <a href="#research-tmclane" title="Research">🔬</a> <a href="#platform-tmclane" title="Packaging/porting to new platform">📦</a> <a href="#ideas-tmclane" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Atmclane" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Atmclane" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=tmclane" title="Tests">⚠️</a> <a href="#question-tmclane" title="Answering Questions">💬</a> <a href="https://github.com/wailsapp/wails/commits?author=tmclane" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://misitebao.com/"><img src="https://avatars.githubusercontent.com/u/28185258?v=4?s=75" width="75px;" alt="Misite Bao"/><br /><sub><b>Misite Bao</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=misitebao" title="Documentation">📖</a> <a href="#translation-misitebao" title="Translation">🌍</a> <a href="#research-misitebao" title="Research">🔬</a> <a href="#maintenance-misitebao" title="Maintenance">🚧</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bh90210"><img src="https://avatars.githubusercontent.com/u/22690219?v=4?s=75" width="75px;" alt="Byron Chris"/><br /><sub><b>Byron Chris</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bh90210" title="Code">💻</a> <a href="#research-bh90210" title="Research">🔬</a> <a href="#maintenance-bh90210" title="Maintenance">🚧</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Abh90210" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Abh90210" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/wailsapp/wails/commits?author=bh90210" title="Tests">⚠️</a> <a href="#question-bh90210" title="Answering Questions">💬</a> <a href="#ideas-bh90210" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-bh90210" title="Design">🎨</a> <a href="#platform-bh90210" title="Packaging/porting to new platform">📦</a> <a href="#infra-bh90210" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/konez2k"><img src="https://avatars.githubusercontent.com/u/32417933?v=4?s=75" width="75px;" alt="konez2k"/><br /><sub><b>konez2k</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=konez2k" title="Code">💻</a> <a href="#platform-konez2k" title="Packaging/porting to new platform">📦</a> <a href="#ideas-konez2k" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/dedo1911"><img src="https://avatars.githubusercontent.com/u/1364496?v=4?s=75" width="75px;" alt="Dario Emerson"/><br /><sub><b>Dario Emerson</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=dedo1911" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Adedo1911" title="Bug reports">🐛</a> <a href="#ideas-dedo1911" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=dedo1911" title="Tests">⚠️</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://ianmjones.com/"><img src="https://avatars.githubusercontent.com/u/4710?v=4?s=75" width="75px;" alt="Ian M. Jones"/><br /><sub><b>Ian M. Jones</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ianmjones" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aianmjones" title="Bug reports">🐛</a> <a href="#ideas-ianmjones" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=ianmjones" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Aianmjones" title="Reviewed Pull Requests">👀</a> <a href="#platform-ianmjones" title="Packaging/porting to new platform">📦</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/marktohark"><img src="https://avatars.githubusercontent.com/u/19359934?v=4?s=75" width="75px;" alt="marktohark"/><br /><sub><b>marktohark</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=marktohark" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/rh12503"><img src="https://avatars.githubusercontent.com/u/48951973?v=4?s=75" width="75px;" alt="Ryan H"/><br /><sub><b>Ryan H</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=rh12503" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://codybentley.dev/"><img src="https://avatars.githubusercontent.com/u/6968902?v=4?s=75" width="75px;" alt="Cody Bentley"/><br /><sub><b>Cody Bentley</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=codydbentley" title="Code">💻</a> <a href="#platform-codydbentley" title="Packaging/porting to new platform">📦</a> <a href="#ideas-codydbentley" title="Ideas, Planning, & Feedback">🤔</a> <a href="#financial-codydbentley" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/napalu"><img src="https://avatars.githubusercontent.com/u/6690378?v=4?s=75" width="75px;" alt="Florent"/><br /><sub><b>Florent</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=napalu" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Anapalu" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/akhudek"><img src="https://avatars.githubusercontent.com/u/147633?v=4?s=75" width="75px;" alt="Alexander Hudek"/><br /><sub><b>Alexander Hudek</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=akhudek" title="Code">💻</a> <a href="#financial-akhudek" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://twitter.com/timkippdev"><img src="https://avatars.githubusercontent.com/u/37030721?v=4?s=75" width="75px;" alt="Tim Kipp"/><br /><sub><b>Tim Kipp</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=timkippdev" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gelleson"><img src="https://avatars.githubusercontent.com/u/44272887?v=4?s=75" width="75px;" alt="Altynbek Kaliakbarov"/><br /><sub><b>Altynbek Kaliakbarov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gelleson" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Chronophylos"><img src="https://avatars.githubusercontent.com/u/14890588?v=4?s=75" width="75px;" alt="Nikolai Zimmermann"/><br /><sub><b>Nikolai Zimmermann</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Chronophylos" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/k-muchmore"><img src="https://avatars.githubusercontent.com/u/16393095?v=4?s=75" width="75px;" alt="k-muchmore"/><br /><sub><b>k-muchmore</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=k-muchmore" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://peakd.com/@snider"><img src="https://avatars.githubusercontent.com/u/631881?v=4?s=75" width="75px;" alt="Snider"/><br /><sub><b>Snider</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Snider" title="Code">💻</a> <a href="#ideas-Snider" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=Snider" title="Documentation">📖</a> <a href="#financial-Snider" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/albert-sun"><img src="https://avatars.githubusercontent.com/u/54585592?v=4?s=75" width="75px;" alt="Albert Sun"/><br /><sub><b>Albert Sun</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=albert-sun" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=albert-sun" title="Tests">⚠️</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/adalessa"><img src="https://avatars.githubusercontent.com/u/7914601?v=4?s=75" width="75px;" alt="Ariel"/><br /><sub><b>Ariel</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=adalessa" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aadalessa" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://triplebits.com/"><img src="https://avatars.githubusercontent.com/u/4365245?v=4?s=75" width="75px;" alt="Ilgıt Yıldırım"/><br /><sub><b>Ilgıt Yıldırım</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ilgityildirim" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Ailgityildirim" title="Bug reports">🐛</a> <a href="#financial-ilgityildirim" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Vaelatern"><img src="https://avatars.githubusercontent.com/u/7906072?v=4?s=75" width="75px;" alt="Toyam Cox"/><br /><sub><b>Toyam Cox</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Vaelatern" title="Code">💻</a> <a href="#platform-Vaelatern" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AVaelatern" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/hi019"><img src="https://avatars.githubusercontent.com/u/65871571?v=4?s=75" width="75px;" alt="hi019"/><br /><sub><b>hi019</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=hi019" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Ahi019" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://artooro.com/"><img src="https://avatars.githubusercontent.com/u/393395?v=4?s=75" width="75px;" alt="Arthur Wiebe"/><br /><sub><b>Arthur Wiebe</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=artooro" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aartooro" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://sectcs.com/"><img src="https://avatars.githubusercontent.com/u/16898783?v=4?s=75" width="75px;" alt="Balakrishna Prasad Ganne"/><br /><sub><b>Balakrishna Prasad Ganne</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=aayush420" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/BillBuilt"><img src="https://avatars.githubusercontent.com/u/28831382?v=4?s=75" width="75px;" alt="BillBuilt"/><br /><sub><b>BillBuilt</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=BillBuilt" title="Code">💻</a> <a href="#platform-BillBuilt" title="Packaging/porting to new platform">📦</a> <a href="#ideas-BillBuilt" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-BillBuilt" title="Answering Questions">💬</a> <a href="#financial-BillBuilt" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Juneezee"><img src="https://avatars.githubusercontent.com/u/20135478?v=4?s=75" width="75px;" alt="Eng Zer Jun"/><br /><sub><b>Eng Zer Jun</b></sub></a><br /><a href="#maintenance-Juneezee" title="Maintenance">🚧</a> <a href="https://github.com/wailsapp/wails/commits?author=Juneezee" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://lgiki.net/"><img src="https://avatars.githubusercontent.com/u/20807713?v=4?s=75" width="75px;" alt="LGiki"/><br /><sub><b>LGiki</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=LGiki" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/lontten"><img src="https://avatars.githubusercontent.com/u/30745595?v=4?s=75" width="75px;" alt="Lontten"/><br /><sub><b>Lontten</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=lontten" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/phoenix147"><img src="https://avatars.githubusercontent.com/u/809358?v=4?s=75" width="75px;" alt="Lukas Crepaz"/><br /><sub><b>Lukas Crepaz</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=phoenix147" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aphoenix147" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://utf9k.net/"><img src="https://avatars.githubusercontent.com/u/14816406?v=4?s=75" width="75px;" alt="Marcus Crane"/><br /><sub><b>Marcus Crane</b></sub></a><br /><a href="https://github.com/wailsapp/wails/issues?q=author%3Amarcus-crane" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/commits?author=marcus-crane" title="Documentation">📖</a> <a href="#financial-marcus-crane" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://qaisjp.com/"><img src="https://avatars.githubusercontent.com/u/923242?v=4?s=75" width="75px;" alt="Qais Patankar"/><br /><sub><b>Qais Patankar</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=qaisjp" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://wakefulcloud.dev/"><img src="https://avatars.githubusercontent.com/u/38930607?v=4?s=75" width="75px;" alt="Wakeful-Cloud"/><br /><sub><b>Wakeful-Cloud</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Wakeful-Cloud" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AWakeful-Cloud" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Lyimmi"><img src="https://avatars.githubusercontent.com/u/8627125?v=4?s=75" width="75px;" alt="Zámbó, Levente"/><br /><sub><b>Zámbó, Levente</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Lyimmi" title="Code">💻</a> <a href="#platform-Lyimmi" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ALyimmi" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/commits?author=Lyimmi" title="Tests">⚠️</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Ironpark"><img src="https://avatars.githubusercontent.com/u/4973597?v=4?s=75" width="75px;" alt="Ironpark"/><br /><sub><b>Ironpark</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Ironpark" title="Code">💻</a> <a href="#ideas-Ironpark" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/mondy"><img src="https://avatars.githubusercontent.com/u/3961824?v=4?s=75" width="75px;" alt="mondy"/><br /><sub><b>mondy</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mondy" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=mondy" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://ryben.dev/"><img src="https://avatars.githubusercontent.com/u/6241454?v=4?s=75" width="75px;" alt="Benjamin Ryan"/><br /><sub><b>Benjamin Ryan</b></sub></a><br /><a href="https://github.com/wailsapp/wails/issues?q=author%3Aredraskal" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fallendusk"><img src="https://avatars.githubusercontent.com/u/565631?v=4?s=75" width="75px;" alt="fallendusk"/><br /><sub><b>fallendusk</b></sub></a><br /><a href="#platform-fallendusk" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/commits?author=fallendusk" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://twitter.com/matryer"><img src="https://avatars.githubusercontent.com/u/101659?v=4?s=75" width="75px;" alt="Mat Ryer"/><br /><sub><b>Mat Ryer</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=matryer" title="Code">💻</a> <a href="#ideas-matryer" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Amatryer" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/abtin"><img src="https://avatars.githubusercontent.com/u/441372?v=4?s=75" width="75px;" alt="Abtin"/><br /><sub><b>Abtin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=abtin" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aabtin" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/lanzafame"><img src="https://avatars.githubusercontent.com/u/5924712?v=4?s=75" width="75px;" alt="Adrian Lanzafame"/><br /><sub><b>Adrian Lanzafame</b></sub></a><br /><a href="#platform-lanzafame" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/wailsapp/wails/commits?author=lanzafame" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/polikow"><img src="https://avatars.githubusercontent.com/u/58259700?v=4?s=75" width="75px;" alt="Aleksey Polyakov"/><br /><sub><b>Aleksey Polyakov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/issues?q=author%3Apolikow" title="Bug reports">🐛</a> <a href="https://github.com/wailsapp/wails/commits?author=polikow" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/alexmat"><img src="https://avatars.githubusercontent.com/u/745421?v=4?s=75" width="75px;" alt="Alexander Matviychuk"/><br /><sub><b>Alexander Matviychuk</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=alexmat" title="Code">💻</a> <a href="#platform-alexmat" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/AlienRecall"><img src="https://avatars.githubusercontent.com/u/68950287?v=4?s=75" width="75px;" alt="AlienRecall"/><br /><sub><b>AlienRecall</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=AlienRecall" title="Code">💻</a> <a href="#platform-AlienRecall" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://blog.checkyo.tech/"><img src="https://avatars.githubusercontent.com/u/17457975?v=4?s=75" width="75px;" alt="Aman"/><br /><sub><b>Aman</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=achhabra2" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/amaury-tobias"><img src="https://avatars.githubusercontent.com/u/37311888?v=4?s=75" width="75px;" alt="Amaury Tobias Quiroz"/><br /><sub><b>Amaury Tobias Quiroz</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=amaury-tobias" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aamaury-tobias" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://blog.nms.de/"><img src="https://avatars.githubusercontent.com/u/51517?v=4?s=75" width="75px;" alt="Andreas Wenk"/><br /><sub><b>Andreas Wenk</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=andywenk" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/stankovic98"><img src="https://avatars.githubusercontent.com/u/29852655?v=4?s=75" width="75px;" alt="Antonio Stanković"/><br /><sub><b>Antonio Stanković</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=stankovic98" title="Code">💻</a> <a href="#platform-stankovic98" title="Packaging/porting to new platform">📦</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/antimatter96"><img src="https://avatars.githubusercontent.com/u/12068176?v=4?s=75" width="75px;" alt="Arpit Jain"/><br /><sub><b>Arpit Jain</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=antimatter96" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/aschey"><img src="https://avatars.githubusercontent.com/u/5882266?v=4?s=75" width="75px;" alt="Austin Schey"/><br /><sub><b>Austin Schey</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=aschey" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aaschey" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/benjamin-thomas"><img src="https://avatars.githubusercontent.com/u/1557738?v=4?s=75" width="75px;" alt="Benjamin Thomas"/><br /><sub><b>Benjamin Thomas</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=benjamin-thomas" title="Code">💻</a> <a href="#platform-benjamin-thomas" title="Packaging/porting to new platform">📦</a> <a href="#ideas-benjamin-thomas" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.bertramtruong.com/"><img src="https://avatars.githubusercontent.com/u/1100843?v=4?s=75" width="75px;" alt="Bertram Truong"/><br /><sub><b>Bertram Truong</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bt" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Abt" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://techwizworld.net/"><img src="https://avatars.githubusercontent.com/u/175873?v=4?s=75" width="75px;" alt="Blake Bourque"/><br /><sub><b>Blake Bourque</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=TechplexEngineer" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://vk.com/raitonoberu"><img src="https://avatars.githubusercontent.com/u/64320078?v=4?s=75" width="75px;" alt="Denis"/><br /><sub><b>Denis</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=raitonoberu" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/diogox"><img src="https://avatars.githubusercontent.com/u/13244408?v=4?s=75" width="75px;" alt="diogox"/><br /><sub><b>diogox</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=diogox" title="Code">💻</a> <a href="#platform-diogox" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/kyoto44"><img src="https://avatars.githubusercontent.com/u/17720761?v=4?s=75" width="75px;" alt="Dmitry Gomzyakov"/><br /><sub><b>Dmitry Gomzyakov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=kyoto44" title="Code">💻</a> <a href="#platform-kyoto44" title="Packaging/porting to new platform">📦</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/edwardbrowncross"><img src="https://avatars.githubusercontent.com/u/35063432?v=4?s=75" width="75px;" alt="Edward Browncross"/><br /><sub><b>Edward Browncross</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=edwardbrowncross" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://pr0gramming.ca/"><img src="https://avatars.githubusercontent.com/u/14944216?v=4?s=75" width="75px;" alt="Elie Grenon"/><br /><sub><b>Elie Grenon</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=elie-g" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fdidron"><img src="https://avatars.githubusercontent.com/u/1848786?v=4?s=75" width="75px;" alt="Florian Didron"/><br /><sub><b>Florian Didron</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=fdidron" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Afdidron" title="Bug reports">🐛</a> <a href="#ideas-fdidron" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=fdidron" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Afdidron" title="Reviewed Pull Requests">👀</a> <a href="#platform-fdidron" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/GargantuaX"><img src="https://avatars.githubusercontent.com/u/14013111?v=4?s=75" width="75px;" alt="GargantuaX"/><br /><sub><b>GargantuaX</b></sub></a><br /><a href="#financial-GargantuaX" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://bednya.ga/"><img src="https://avatars.githubusercontent.com/u/12101721?v=4?s=75" width="75px;" alt="Igor Minin"/><br /><sub><b>Igor Minin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Igogrek" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AIgogrek" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.jae-sung.com/"><img src="https://avatars.githubusercontent.com/u/39658806?v=4?s=75" width="75px;" alt="Jae-Sung Lee"/><br /><sub><b>Jae-Sung Lee</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=jaesung9507" title="Code">💻</a> <a href="#ideas-jaesung9507" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Jarek-SRT"><img src="https://avatars.githubusercontent.com/u/3391365?v=4?s=75" width="75px;" alt="Jarek"/><br /><sub><b>Jarek</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Jarek-SRT" title="Code">💻</a> <a href="#platform-Jarek-SRT" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Junkher"><img src="https://avatars.githubusercontent.com/u/85776620?v=4?s=75" width="75px;" alt="Junker"/><br /><sub><b>Junker</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Junkher" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/kraney"><img src="https://avatars.githubusercontent.com/u/5760081?v=4?s=75" width="75px;" alt="Kris Raney"/><br /><sub><b>Kris Raney</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=kraney" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Akraney" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/LukenSkyne"><img src="https://avatars.githubusercontent.com/u/29918069?v=4?s=75" width="75px;" alt="Luken"/><br /><sub><b>Luken</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=LukenSkyne" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://markstenglein.com/"><img src="https://avatars.githubusercontent.com/u/9255772?v=4?s=75" width="75px;" alt="Mark Stenglein"/><br /><sub><b>Mark Stenglein</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ocelotsloth" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Aocelotsloth" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/buddyabaddon"><img src="https://avatars.githubusercontent.com/u/33861511?v=4?s=75" width="75px;" alt="buddyabaddon"/><br /><sub><b>buddyabaddon</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=buddyabaddon" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/MikeSchaap"><img src="https://avatars.githubusercontent.com/u/35368821?v=4?s=75" width="75px;" alt="MikeSchaap"/><br /><sub><b>MikeSchaap</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=MikeSchaap" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AMikeSchaap" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Orijhins"><img src="https://avatars.githubusercontent.com/u/47521598?v=4?s=75" width="75px;" alt="NYSSEN Michaël"/><br /><sub><b>NYSSEN Michaël</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Orijhins" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AOrijhins" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/NanoNik"><img src="https://avatars.githubusercontent.com/u/11991329?v=4?s=75" width="75px;" alt="Nan0"/><br /><sub><b>Nan0</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=NanoNik" title="Code">💻</a> <a href="#ideas-NanoNik" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=NanoNik" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3ANanoNik" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/marcio199226"><img src="https://avatars.githubusercontent.com/u/10244404?v=4?s=75" width="75px;" alt="oskar"/><br /><sub><b>oskar</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=marcio199226" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/pierrejoye"><img src="https://avatars.githubusercontent.com/u/282408?v=4?s=75" width="75px;" alt="Pierre Joye"/><br /><sub><b>Pierre Joye</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=pierrejoye" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Apierrejoye" title="Bug reports">🐛</a> <a href="#ideas-pierrejoye" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=pierrejoye" title="Tests">⚠️</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Rested"><img src="https://avatars.githubusercontent.com/u/2003608?v=4?s=75" width="75px;" alt="Reuben Thomas-Davis"/><br /><sub><b>Reuben Thomas-Davis</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Rested" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ARested" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/mewmew"><img src="https://avatars.githubusercontent.com/u/1414531?v=4?s=75" width="75px;" alt="Robin"/><br /><sub><b>Robin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mewmew" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Amewmew" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://threema.id/YSB3TVF7"><img src="https://avatars.githubusercontent.com/u/70367451?v=4?s=75" width="75px;" alt="Sebastian Bauer"/><br /><sub><b>Sebastian Bauer</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sebastian0x62" title="Code">💻</a> <a href="#ideas-sebastian0x62" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=sebastian0x62" title="Tests">⚠️</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Asebastian0x62" title="Reviewed Pull Requests">👀</a> <a href="#question-sebastian0x62" title="Answering Questions">💬</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/sidwebworks"><img src="https://avatars.githubusercontent.com/u/58144379?v=4?s=75" width="75px;" alt="Sidharth Rathi"/><br /><sub><b>Sidharth Rathi</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sidwebworks" title="Documentation">📖</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Asidwebworks" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/sithembiso"><img src="https://avatars.githubusercontent.com/u/6559905?v=4?s=75" width="75px;" alt="Sithembiso Khumalo"/><br /><sub><b>Sithembiso Khumalo</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sithembiso" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Asithembiso" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/LanguageAgnostic"><img src="https://avatars.githubusercontent.com/u/19310562?v=4?s=75" width="75px;" alt="Soheib El-Harrache"/><br /><sub><b>Soheib El-Harrache</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=LanguageAgnostic" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ALanguageAgnostic" title="Bug reports">🐛</a> <a href="#financial-LanguageAgnostic" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.sophieau.com/"><img src="https://avatars.githubusercontent.com/u/11145039?v=4?s=75" width="75px;" alt="Sophie Au"/><br /><sub><b>Sophie Au</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SophieAu" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3ASophieAu" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/stefpap"><img src="https://avatars.githubusercontent.com/u/22637722?v=4?s=75" width="75px;" alt="Stefanos Papadakis"/><br /><sub><b>Stefanos Papadakis</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=stefpap" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Astefpap" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/s12chung"><img src="https://avatars.githubusercontent.com/u/263394?v=4?s=75" width="75px;" alt="Steve Chung"/><br /><sub><b>Steve Chung</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=s12chung" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3As12chung" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://tortloff.de/"><img src="https://avatars.githubusercontent.com/u/41272726?v=4?s=75" width="75px;" alt="Timm Ortloff"/><br /><sub><b>Timm Ortloff</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=TAINCER" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tomanagle"><img src="https://avatars.githubusercontent.com/u/8683577?v=4?s=75" width="75px;" alt="Tom"/><br /><sub><b>Tom</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tomanagle" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/valentintrinque"><img src="https://avatars.githubusercontent.com/u/4662842?v=4?s=75" width="75px;" alt="Valentin Trinqué"/><br /><sub><b>Valentin Trinqué</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ValentinTrinque" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AValentinTrinque" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://mattn.kaoriya.net/"><img src="https://avatars.githubusercontent.com/u/10111?v=4?s=75" width="75px;" alt="mattn"/><br /><sub><b>mattn</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mattn" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Amattn" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bearsh"><img src="https://avatars.githubusercontent.com/u/1089356?v=4?s=75" width="75px;" alt="bearsh"/><br /><sub><b>bearsh</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bearsh" title="Code">💻</a> <a href="#ideas-bearsh" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=bearsh" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/chenxiao1990"><img src="https://avatars.githubusercontent.com/u/16933565?v=4?s=75" width="75px;" alt="chenxiao"/><br /><sub><b>chenxiao</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=chenxiao1990" title="Code">💻</a> <a href="#ideas-chenxiao1990" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=chenxiao1990" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fengweiqiang"><img src="https://avatars.githubusercontent.com/u/22905300?v=4?s=75" width="75px;" alt="fengweiqiang"/><br /><sub><b>fengweiqiang</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=fengweiqiang" title="Code">💻</a> <a href="#platform-fengweiqiang" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/flin7"><img src="https://avatars.githubusercontent.com/u/58138185?v=4?s=75" width="75px;" alt="flin7"/><br /><sub><b>flin7</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=flin7" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fred21O4"><img src="https://avatars.githubusercontent.com/u/67189813?v=4?s=75" width="75px;" alt="fred21O4"/><br /><sub><b>fred21O4</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=fred21O4" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gardc"><img src="https://avatars.githubusercontent.com/u/41453409?v=4?s=75" width="75px;" alt="gardc"/><br /><sub><b>gardc</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gardc" title="Documentation">📖</a> <a href="#tutorial-gardc" title="Tutorials">✅</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/rayshoo"><img src="https://avatars.githubusercontent.com/u/52561899?v=4?s=75" width="75px;" alt="rayshoo"/><br /><sub><b>rayshoo</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=rayshoo" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Yz4230"><img src="https://avatars.githubusercontent.com/u/38999742?v=4?s=75" width="75px;" alt="Ishiyama Yuzuki"/><br /><sub><b>Ishiyama Yuzuki</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Yz4230" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3AYz4230" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://baiyue.one/"><img src="https://avatars.githubusercontent.com/u/43716063?v=4?s=75" width="75px;" alt="佰阅"/><br /><sub><b>佰阅</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Baiyuetribe" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/daodao97"><img src="https://avatars.githubusercontent.com/u/15009280?v=4?s=75" width="75px;" alt="刀刀"/><br /><sub><b>刀刀</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=daodao97" title="Documentation">📖</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Adaodao97" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/jicg"><img src="https://avatars.githubusercontent.com/u/6479672?v=4?s=75" width="75px;" alt="归位"/><br /><sub><b>归位</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=jicg" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/issues?q=author%3Ajicg" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/skamensky"><img src="https://avatars.githubusercontent.com/u/19151369?v=4?s=75" width="75px;" alt="skamensky"/><br /><sub><b>skamensky</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=skamensky" title="Code">💻</a> <a href="#ideas-skamensky" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/wailsapp/wails/commits?author=skamensky" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/dependabot"><img src="https://avatars.githubusercontent.com/in/29110?v=4?s=75" width="75px;" alt="dependabot[bot]"/><br /><sub><b>dependabot[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=dependabot[bot]" title="Code">💻</a> <a href="#maintenance-dependabot[bot]" title="Maintenance">🚧</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.linkedin.com/in/dsieradzki/"><img src="https://avatars.githubusercontent.com/u/10297559?v=4?s=75" width="75px;" alt="Damian Sieradzki"/><br /><sub><b>Damian Sieradzki</b></sub></a><br /><a href="#financial-dsieradzki" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/boostchicken"><img src="https://avatars.githubusercontent.com/u/427295?v=4?s=75" width="75px;" alt="John Dorman"/><br /><sub><b>John Dorman</b></sub></a><br /><a href="#financial-boostchicken" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://blog.iansinnott.com/"><img src="https://avatars.githubusercontent.com/u/3154865?v=4?s=75" width="75px;" alt="Ian Sinnott"/><br /><sub><b>Ian Sinnott</b></sub></a><br /><a href="#financial-iansinnott" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Shackelford-Arden"><img src="https://avatars.githubusercontent.com/u/7362263?v=4?s=75" width="75px;" alt="Arden Shackelford"/><br /><sub><b>Arden Shackelford</b></sub></a><br /><a href="#financial-Shackelford-Arden" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Bironou"><img src="https://avatars.githubusercontent.com/u/107761511?v=4?s=75" width="75px;" alt="Bironou"/><br /><sub><b>Bironou</b></sub></a><br /><a href="#financial-Bironou" title="Financial">💵</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/CharlieGo19"><img src="https://avatars.githubusercontent.com/u/62405980?v=4?s=75" width="75px;" alt="CharlieGo_"/><br /><sub><b>CharlieGo_</b></sub></a><br /><a href="#financial-CharlieGo19" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/overnet"><img src="https://avatars.githubusercontent.com/u/6376126?v=4?s=75" width="75px;" alt="overnet"/><br /><sub><b>overnet</b></sub></a><br /><a href="#financial-overnet" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://jugglingjsons.dev/"><img src="https://avatars.githubusercontent.com/u/20739064?v=4?s=75" width="75px;" alt="jugglingjsons"/><br /><sub><b>jugglingjsons</b></sub></a><br /><a href="#financial-jugglingjsons" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://selvin.dev/"><img src="https://avatars.githubusercontent.com/u/1922523?v=4?s=75" width="75px;" alt="Selvin Ortiz"/><br /><sub><b>Selvin Ortiz</b></sub></a><br /><a href="#financial-selvindev" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/zandercodes"><img src="https://avatars.githubusercontent.com/u/46308805?v=4?s=75" width="75px;" alt="ZanderCodes"/><br /><sub><b>ZanderCodes</b></sub></a><br /><a href="#financial-zandercodes" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/DonTomato"><img src="https://avatars.githubusercontent.com/u/1098084?v=4?s=75" width="75px;" alt="Michael Voronov"/><br /><sub><b>Michael Voronov</b></sub></a><br /><a href="#financial-DonTomato" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://lt.hn/"><img src="https://avatars.githubusercontent.com/u/83868036?v=4?s=75" width="75px;" alt="letheanVPN"/><br /><sub><b>letheanVPN</b></sub></a><br /><a href="#financial-letheanVPN" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://taigrr.com/"><img src="https://avatars.githubusercontent.com/u/8261498?v=4?s=75" width="75px;" alt="Tai Groot"/><br /><sub><b>Tai Groot</b></sub></a><br /><a href="#financial-taigrr" title="Financial">💵</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/easy-web-it"><img src="https://avatars.githubusercontent.com/u/95484991?v=4?s=75" width="75px;" alt="easy-web-it"/><br /><sub><b>easy-web-it</b></sub></a><br /><a href="#financial-easy-web-it" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://michaelolson1996.github.io/portfolio"><img src="https://avatars.githubusercontent.com/u/45323107?v=4?s=75" width="75px;" alt="Michael Olson"/><br /><sub><b>Michael Olson</b></sub></a><br /><a href="#financial-michaelolson1996" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://eden.network/"><img src="https://avatars.githubusercontent.com/u/4912777?v=4?s=75" width="75px;" alt="EdenNetwork Italia"/><br /><sub><b>EdenNetwork Italia</b></sub></a><br /><a href="#financial-EdenNetworkItalia" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ondoki"><img src="https://avatars.githubusercontent.com/u/88536792?v=4?s=75" width="75px;" alt="ondoki"/><br /><sub><b>ondoki</b></sub></a><br /><a href="#financial-ondoki" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/questrail"><img src="https://avatars.githubusercontent.com/u/3536569?v=4?s=75" width="75px;" alt="QuEST Rail LLC"/><br /><sub><b>QuEST Rail LLC</b></sub></a><br /><a href="#financial-questrail" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Gilgames000"><img src="https://avatars.githubusercontent.com/u/22778436?v=4?s=75" width="75px;" alt="Gilgameš"/><br /><sub><b>Gilgameš</b></sub></a><br /><a href="#financial-Gilgames000" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bbergshaven"><img src="https://avatars.githubusercontent.com/u/4091634?v=4?s=75" width="75px;" alt="Bernt-Johan Bergshaven"/><br /><sub><b>Bernt-Johan Bergshaven</b></sub></a><br /><a href="#financial-bbergshaven" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/bglw"><img src="https://avatars.githubusercontent.com/u/40188355?v=4?s=75" width="75px;" alt="Liam Bigelow"/><br /><sub><b>Liam Bigelow</b></sub></a><br /><a href="#financial-bglw" title="Financial">💵</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/nickarellano"><img src="https://avatars.githubusercontent.com/u/13930605?v=4?s=75" width="75px;" alt="Nick Arellano"/><br /><sub><b>Nick Arellano</b></sub></a><br /><a href="#financial-nickarellano" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/fcjr"><img src="https://avatars.githubusercontent.com/u/2053002?v=4?s=75" width="75px;" alt="Frank Chiarulli Jr."/><br /><sub><b>Frank Chiarulli Jr.</b></sub></a><br /><a href="#financial-fcjr" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tylertravisty"><img src="https://avatars.githubusercontent.com/u/8620352?v=4?s=75" width="75px;" alt="Tyler"/><br /><sub><b>Tyler</b></sub></a><br /><a href="#financial-tylertravisty" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/trea"><img src="https://avatars.githubusercontent.com/u/1181448?v=4?s=75" width="75px;" alt="Trea Hauet"/><br /><sub><b>Trea Hauet</b></sub></a><br /><a href="#financial-trea" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://picatz.github.io/"><img src="https://avatars.githubusercontent.com/u/14850816?v=4?s=75" width="75px;" alt="Kent 'picat' Gruber"/><br /><sub><b>Kent 'picat' Gruber</b></sub></a><br /><a href="#financial-picatz" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tc-hib"><img src="https://avatars.githubusercontent.com/u/55949036?v=4?s=75" width="75px;" alt="tc-hib"/><br /><sub><b>tc-hib</b></sub></a><br /><a href="#financial-tc-hib" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/acheong08"><img src="https://avatars.githubusercontent.com/u/36258159?v=4?s=75" width="75px;" alt="Antonio"/><br /><sub><b>Antonio</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=acheong08" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/MyNameIsAres"><img src="https://avatars.githubusercontent.com/u/32432637?v=4?s=75" width="75px;" alt="MyNameIsAres"/><br /><sub><b>MyNameIsAres</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=MyNameIsAres" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://mai.car.ons"><img src="https://avatars.githubusercontent.com/u/101958587?v=4?s=75" width="75px;" alt="Maicarons J"/><br /><sub><b>Maicarons J</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Maicarons2022" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/KiddoV"><img src="https://avatars.githubusercontent.com/u/28552977?v=4?s=75" width="75px;" alt="kiddov"/><br /><sub><b>kiddov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=KiddoV" title="Documentation">📖</a> <a href="#financial-KiddoV" title="Financial">💵</a> <a href="https://github.com/wailsapp/wails/commits?author=KiddoV" title="Tests">⚠️</a> <a href="#ideas-KiddoV" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://nicolas-coutin.com/"><img src="https://avatars.githubusercontent.com/u/6564012?v=4?s=75" width="75px;" alt="Nicolas Coutin"/><br /><sub><b>Nicolas Coutin</b></sub></a><br /><a href="#financial-Ilshidur" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ParvinEyvazov"><img src="https://avatars.githubusercontent.com/u/32189770?v=4?s=75" width="75px;" alt="Parvin Eyvazov"/><br /><sub><b>Parvin Eyvazov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ParvinEyvazov" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/github-actions"><img src="https://avatars.githubusercontent.com/in/15368?v=4?s=75" width="75px;" alt="github-actions[bot]"/><br /><sub><b>github-actions[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=github-actions[bot]" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/OlegGulevskyy"><img src="https://avatars.githubusercontent.com/u/43781031?v=4?s=75" width="75px;" alt="Oleg Gulevskyy"/><br /><sub><b>Oleg Gulevskyy</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=OlegGulevskyy" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=OlegGulevskyy" title="Documentation">📖</a> <a href="#maintenance-OlegGulevskyy" title="Maintenance">🚧</a> <a href="#platform-OlegGulevskyy" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://www.customct.com/"><img src="https://avatars.githubusercontent.com/u/2487495?v=4?s=75" width="75px;" alt="Richard Guay"/><br /><sub><b>Richard Guay</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=raguay" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ATenderholt"><img src="https://avatars.githubusercontent.com/u/740623?v=4?s=75" width="75px;" alt="Adam Tenderholt"/><br /><sub><b>Adam Tenderholt</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ATenderholt" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/JulioDRF"><img src="https://avatars.githubusercontent.com/u/15677708?v=4?s=75" width="75px;" alt="JulioDRF"/><br /><sub><b>JulioDRF</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=JulioDRF" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://scottopell.com/"><img src="https://avatars.githubusercontent.com/u/996472?v=4?s=75" width="75px;" alt="Scott Opell"/><br /><sub><b>Scott Opell</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=scottopell" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://aven.dev/"><img src="https://avatars.githubusercontent.com/u/2055581?v=4?s=75" width="75px;" alt="Vadim Shchepotev"/><br /><sub><b>Vadim Shchepotev</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=avengerweb" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://willdot.net/"><img src="https://avatars.githubusercontent.com/u/4906530?v=4?s=75" width="75px;" alt="Will Andrews"/><br /><sub><b>Will Andrews</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=willdot" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gwynforthewyn"><img src="https://avatars.githubusercontent.com/u/434656?v=4?s=75" width="75px;" alt="Gwyn"/><br /><sub><b>Gwyn</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gwynforthewyn" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/pulls?q=is%3Apr+reviewed-by%3Agwynforthewyn" title="Reviewed Pull Requests">👀</a> <a href="#question-gwynforthewyn" title="Answering Questions">💬</a> <a href="#research-gwynforthewyn" title="Research">🔬</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/xijaja"><img src="https://avatars.githubusercontent.com/u/47017666?v=4?s=75" width="75px;" alt="希嘉嘉"/><br /><sub><b>希嘉嘉</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=xijaja" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.almas.cc/"><img src="https://avatars.githubusercontent.com/u/9382335?v=4?s=75" width="75px;" alt="ALMAS"/><br /><sub><b>ALMAS</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=almas1992" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://stdout.com.cn/"><img src="https://avatars.githubusercontent.com/u/20666153?v=4?s=75" width="75px;" alt="Alex"/><br /><sub><b>Alex</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=o8x" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/arifali123"><img src="https://avatars.githubusercontent.com/u/51419655?v=4?s=75" width="75px;" alt="Arif Ali"/><br /><sub><b>Arif Ali</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=arifali123" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/hotafrika"><img src="https://avatars.githubusercontent.com/u/18332839?v=4?s=75" width="75px;" alt="Artur Siarohau"/><br /><sub><b>Artur Siarohau</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=hotafrika" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://binyam.in/"><img src="https://avatars.githubusercontent.com/u/39805353?v=4?s=75" width="75px;" alt="Binyamin Aron Green"/><br /><sub><b>Binyamin Aron Green</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=binyamin" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://bdwyertech.net/"><img src="https://avatars.githubusercontent.com/u/2973273?v=4?s=75" width="75px;" alt="Brian Dwyer"/><br /><sub><b>Brian Dwyer</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=bdwyertech" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://www.cilb.de/"><img src="https://avatars.githubusercontent.com/u/7283097?v=4?s=75" width="75px;" alt="Christian Kilb"/><br /><sub><b>Christian Kilb</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ckilb" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/edwargix"><img src="https://avatars.githubusercontent.com/u/22877007?v=4?s=75" width="75px;" alt="David Florness"/><br /><sub><b>David Florness</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=edwargix" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/BuckeyeCoder"><img src="https://avatars.githubusercontent.com/u/95933880?v=4?s=75" width="75px;" alt="David Walton"/><br /><sub><b>David Walton</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=BuckeyeCoder" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Debdut"><img src="https://avatars.githubusercontent.com/u/7561070?v=4?s=75" width="75px;" alt="Debdut Karmakar"/><br /><sub><b>Debdut Karmakar</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Debdut" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/gotid"><img src="https://avatars.githubusercontent.com/u/4010854?v=4?s=75" width="75px;" alt="Dieter Zhu"/><br /><sub><b>Dieter Zhu</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=gotid" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://fredrikholmqvist.com/"><img src="https://avatars.githubusercontent.com/u/22743750?v=4?s=75" width="75px;" alt="Fredrik Holmqvist"/><br /><sub><b>Fredrik Holmqvist</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Holmqvist1990" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/giopalma"><img src="https://avatars.githubusercontent.com/u/33783684?v=4?s=75" width="75px;" alt="Giovanni Palma"/><br /><sub><b>Giovanni Palma</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=giopalma" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Nexus26404"><img src="https://avatars.githubusercontent.com/u/83110373?v=4?s=75" width="75px;" alt="Hao"/><br /><sub><b>Hao</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Nexus26404" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/i7tsov"><img src="https://avatars.githubusercontent.com/u/44977153?v=4?s=75" width="75px;" alt="Igor Sementsov"/><br /><sub><b>Igor Sementsov</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=i7tsov" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/derhasi"><img src="https://avatars.githubusercontent.com/u/118502?v=4?s=75" width="75px;" alt="Johannes Haseitl"/><br /><sub><b>Johannes Haseitl</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=derhasi" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/joshbuddy"><img src="https://avatars.githubusercontent.com/u/8898?v=4?s=75" width="75px;" alt="Joshua Hull"/><br /><sub><b>Joshua Hull</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=joshbuddy" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/joshm998"><img src="https://avatars.githubusercontent.com/u/1779737?v=4?s=75" width="75px;" alt="Joshua Mangiola"/><br /><sub><b>Joshua Mangiola</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=joshm998" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/prurigro"><img src="https://avatars.githubusercontent.com/u/1149238?v=4?s=75" width="75px;" alt="Kevin MacMartin"/><br /><sub><b>Kevin MacMartin</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=prurigro" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/liang-li-dev"><img src="https://avatars.githubusercontent.com/u/112530363?v=4?s=75" width="75px;" alt="Liang Li"/><br /><sub><b>Liang Li</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=liang-li-dev" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://appslab.co.ke/"><img src="https://avatars.githubusercontent.com/u/7722584?v=4?s=75" width="75px;" alt="Marvin Collins Hosea"/><br /><sub><b>Marvin Collins Hosea</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=marvinhosea" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://matt.life/"><img src="https://avatars.githubusercontent.com/u/1128849?v=4?s=75" width="75px;" alt="Matt Holt"/><br /><sub><b>Matt Holt</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=mholt" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Gurkengewuerz"><img src="https://avatars.githubusercontent.com/u/10966337?v=4?s=75" width="75px;" alt="Niklas"/><br /><sub><b>Niklas</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Gurkengewuerz" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Xhofe"><img src="https://avatars.githubusercontent.com/u/36558727?v=4?s=75" width="75px;" alt="Andy Hsu"/><br /><sub><b>Andy Hsu</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Xhofe" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/NullCode1337"><img src="https://avatars.githubusercontent.com/u/70959549?v=4?s=75" width="75px;" alt="NullCode"/><br /><sub><b>NullCode</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=NullCode1337" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/oSethoum"><img src="https://avatars.githubusercontent.com/u/88779394?v=4?s=75" width="75px;" alt="Oussama Sethoum"/><br /><sub><b>Oussama Sethoum</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=oSethoum" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/ParkourLiu"><img src="https://avatars.githubusercontent.com/u/33681340?v=4?s=75" width="75px;" alt="ParkourLiu"/><br /><sub><b>ParkourLiu</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=ParkourLiu" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/zllovesuki"><img src="https://avatars.githubusercontent.com/u/298453?v=4?s=75" width="75px;" alt="Rachel Chen"/><br /><sub><b>Rachel Chen</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=zllovesuki" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/rnice01"><img src="https://avatars.githubusercontent.com/u/11394384?v=4?s=75" width="75px;" alt="Rob Nice"/><br /><sub><b>Rob Nice</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=rnice01" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/RyoTagami"><img src="https://avatars.githubusercontent.com/u/9672589?v=4?s=75" width="75px;" alt="Ryo TAGAMI"/><br /><sub><b>Ryo TAGAMI</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=RyoTagami" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/SamHennessy"><img src="https://avatars.githubusercontent.com/u/119867?v=4?s=75" width="75px;" alt="Sam Hennessy"/><br /><sub><b>Sam Hennessy</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SamHennessy" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://albinodrought.com/"><img src="https://avatars.githubusercontent.com/u/852873?v=4?s=75" width="75px;" alt="Sean"/><br /><sub><b>Sean</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=AlbinoDrought" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/sgosiaco"><img src="https://avatars.githubusercontent.com/u/212341?v=4?s=75" width="75px;" alt="Sean Gosiaco"/><br /><sub><b>Sean Gosiaco</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=sgosiaco" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://sheetjs.com/"><img src="https://avatars.githubusercontent.com/u/6070939?v=4?s=75" width="75px;" alt="Eric P Sheets"/><br /><sub><b>Eric P Sheets</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SheetJSDev" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.octopy.dev/"><img src="https://avatars.githubusercontent.com/u/37969970?v=4?s=75" width="75px;" alt="Supian M"/><br /><sub><b>Supian M</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=SupianIDz" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/Watson-Sei"><img src="https://avatars.githubusercontent.com/u/55475145?v=4?s=75" width="75px;" alt="Watson-Sei"/><br /><sub><b>Watson-Sei</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=Watson-Sei" title="Code">💻</a> <a href="https://github.com/wailsapp/wails/commits?author=Watson-Sei" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://shinshin86.com/"><img src="https://avatars.githubusercontent.com/u/8216064?v=4?s=75" width="75px;" alt="Yuki Shindo"/><br /><sub><b>Yuki Shindo</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=shinshin86" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/cuigege"><img src="https://avatars.githubusercontent.com/u/26080122?v=4?s=75" width="75px;" alt="cuigege"/><br /><sub><b>cuigege</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=cuigege" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://cybertramp.net/"><img src="https://avatars.githubusercontent.com/u/30935096?v=4?s=75" width="75px;" alt="cybertramp"/><br /><sub><b>cybertramp</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=cybertramp" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/h8gi"><img src="https://avatars.githubusercontent.com/u/10811057?v=4?s=75" width="75px;" alt="hiroki yagi"/><br /><sub><b>hiroki yagi</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=h8gi" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/imgbot"><img src="https://avatars.githubusercontent.com/in/4706?v=4?s=75" width="75px;" alt="imgbot[bot]"/><br /><sub><b>imgbot[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=imgbot[bot]" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tong3jie"><img src="https://avatars.githubusercontent.com/u/14191774?v=4?s=75" width="75px;" alt="juju"/><br /><sub><b>juju</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tong3jie" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="12.5%"><a href="http://meatherly.github.io/"><img src="https://avatars.githubusercontent.com/u/1327960?v=4?s=75" width="75px;" alt="Michael Eatherly"/><br /><sub><b>Michael Eatherly</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=meatherly" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/tk103331"><img src="https://avatars.githubusercontent.com/u/4404609?v=4?s=75" width="75px;" alt="tk"/><br /><sub><b>tk</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=tk103331" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://github.com/apps/allcontributors"><img src="https://avatars.githubusercontent.com/in/23186?v=4?s=75" width="75px;" alt="allcontributors[bot]"/><br /><sub><b>allcontributors[bot]</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=allcontributors[bot]" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="12.5%"><a href="https://www.ffactory.org/"><img src="https://avatars.githubusercontent.com/u/77320953?v=4?s=75" width="75px;" alt="wander"/><br /><sub><b>wander</b></sub></a><br /><a href="https://github.com/wailsapp/wails/commits?author=wandercn" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!--GAMFC_DELIMITER-END-->
|
||||
|
||||
</div>
|
||||
1
docs/src/assets/menus/context-menu.png
Normal file
|
|
@ -0,0 +1 @@
|
|||
iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTIzODU1NjI4RjU1MTFFQjg5QzVCNTY1QjY1NjY1QjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTIzODU1NjM4RjU1MTFFQjg5QzVCNTY1QjY1NjY1QjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMjM4NTU2MDhGNTUxMUVCODlDNUI1NjVCNjU2NjVCNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMjM4NTU2MThGNTUxMUVCODlDNUI1NjVCNjU2NjVCNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAAALAAAAAAsASwBAAL/hI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wsOi8fksvmMTqvX7Lb7DY/L5/S6/Y7P6/f8vv8PGCg4SFhoeIiYqLjI2Oj4CBkpOUlZaXmJmam5ydnp+QkaKjpKWmp6ipqqusra6voKGys7S1tre4ubq7vL2+v7CxwsPExcbHyMnKy8zNzs/AwdLT1NXW19jZ2tvc3d7f0NHi4+Tl5ufo6err7O3u7+Dh8vP09fb3+Pn6+/z9/v/w8woMCBBAsaPIgwocKFDBs6fAgxosSJFCtavIgxo8aN/xw7evwIMqTIkSRLmjyJMqXKlSxbunwJM6bMmTRr2ryJM6fOnTx7+vwJNKjQoUSLGj2KNKnSpUybOn0KNarUqVSrWr2KNavWrVy7ev0KNqzYsWTLmj2LNq3atWzbun0LN67cuXTr2r2LN6/evXz7+v0LOLDgwYQLGz6MOLHixYwbO34MObLkyZQrW76MObPmzZw7e/4MOrTo0aRLmz6NOrXq1axbu34NO7bs2bRr276NO7fu3bx7+/4NPLjw4cSLGz+OPLny5cybO38OPbr06dSrW7+OPbv27dy7e/8OPrz48eTLmz+PPr369ezbu38PP778+fTr27+PP7/+/fz7+9OPX7//fwAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeSSTDbp5JNQRinllFRWaeWVWGap5ZZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp55+ABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxirrqxEAADs=
|
||||
BIN
docs/src/assets/qr1.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/src/assets/qr2.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
docs/src/assets/showcase-images/bboard.webp
Normal file
|
After Width: | Height: | Size: 8 KiB |
BIN
docs/src/assets/showcase-images/cfntracker.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
docs/src/assets/showcase-images/clave.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
docs/src/assets/showcase-images/emailit.webp
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/src/assets/showcase-images/encrypteasy.webp
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/src/assets/showcase-images/esp-studio.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
docs/src/assets/showcase-images/filehound.webp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/src/assets/showcase-images/hiposter.webp
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/src/assets/showcase-images/mac-app.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
docs/src/assets/showcase-images/mchat.png
Normal file
|
After Width: | Height: | Size: 291 KiB |
BIN
docs/src/assets/showcase-images/minecraft-mod-updater.webp
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
docs/src/assets/showcase-images/minesweeper-xp.webp
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/src/assets/showcase-images/modalfilemanager.webp
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
docs/src/assets/showcase-images/mollywallet.webp
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
docs/src/assets/showcase-images/october.webp
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
docs/src/assets/showcase-images/optimus.webp
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
docs/src/assets/showcase-images/portfall.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/src/assets/showcase-images/resizem.webp
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
docs/src/assets/showcase-images/restic-browser-2.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
docs/src/assets/showcase-images/riftshare-main.webp
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/src/assets/showcase-images/scriptbar.webp
Normal file
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/src/assets/showcase-images/surge.png
Normal file
|
After Width: | Height: | Size: 22 KiB |