mirror of
https://github.com/apache/superset.git
synced 2026-05-20 07:15:17 +00:00
Compare commits
969 Commits
updating-s
...
5.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7076ff3342 | ||
|
|
49df35d012 | ||
|
|
d825b32e98 | ||
|
|
aa69ce43d9 | ||
|
|
878289a2e6 | ||
|
|
097f576244 | ||
|
|
e986496ef4 | ||
|
|
752f7aa80c | ||
|
|
882aba67d6 | ||
|
|
2696d3e800 | ||
|
|
ab886db246 | ||
|
|
8828e59dca | ||
|
|
d1ded45633 | ||
|
|
ee2a5915b2 | ||
|
|
bcbf17bdf3 | ||
|
|
c2238b92cc | ||
|
|
32accfff7d | ||
|
|
8a5dff8491 | ||
|
|
c6e628a384 | ||
|
|
5eb61ec1b6 | ||
|
|
fb035f4210 | ||
|
|
1926e90e12 | ||
|
|
21f77f3717 | ||
|
|
31098dee40 | ||
|
|
ffcc8a2c53 | ||
|
|
f313554040 | ||
|
|
41c82337b1 | ||
|
|
465e2a9631 | ||
|
|
f906adb551 | ||
|
|
9a6261b026 | ||
|
|
cff2ce04c0 | ||
|
|
ad10abd8f2 | ||
|
|
cdbdaf4179 | ||
|
|
4f1ea355c1 | ||
|
|
715fe6f6ef | ||
|
|
cbbf335984 | ||
|
|
24ec0c8c10 | ||
|
|
be139508f4 | ||
|
|
77d18498c5 | ||
|
|
94369ca6b5 | ||
|
|
e5c6d3e388 | ||
|
|
e83ac1d696 | ||
|
|
96298a01cf | ||
|
|
a5f0b24806 | ||
|
|
f9ff3259b3 | ||
|
|
00cd069af2 | ||
|
|
cfba5cdc57 | ||
|
|
685b259f6f | ||
|
|
8021a8ce42 | ||
|
|
979e3a228f | ||
|
|
405fcfc5b1 | ||
|
|
a86a156e49 | ||
|
|
ec2b168d7a | ||
|
|
c54778d7e7 | ||
|
|
6bdfb7ad6c | ||
|
|
cd12f30db2 | ||
|
|
602208d68a | ||
|
|
8ffcd7e960 | ||
|
|
782e11b59c | ||
|
|
aeb50c505f | ||
|
|
2f3658c750 | ||
|
|
7f57df5fa4 | ||
|
|
ce6d0d5963 | ||
|
|
8cc6f260c7 | ||
|
|
ee8edcf4b4 | ||
|
|
f56757a0e9 | ||
|
|
850f35add1 | ||
|
|
f8b0632f99 | ||
|
|
a6895e07b0 | ||
|
|
a3c08fd9bf | ||
|
|
5b178dfbc7 | ||
|
|
692d47c79d | ||
|
|
84b437d0a7 | ||
|
|
f4ea15e477 | ||
|
|
7c46374202 | ||
|
|
d9c1ee67f5 | ||
|
|
35d7e15841 | ||
|
|
454397fc17 | ||
|
|
aab564fa58 | ||
|
|
5e475ecb7b | ||
|
|
0c80ab07f7 | ||
|
|
03255819a4 | ||
|
|
49541333d0 | ||
|
|
65c76024f6 | ||
|
|
d0aa6338b8 | ||
|
|
bf2e014cde | ||
|
|
65c9375624 | ||
|
|
1a1986a191 | ||
|
|
d0355d57bf | ||
|
|
e0e2d329e0 | ||
|
|
f85f3f8b56 | ||
|
|
ddecaa4c11 | ||
|
|
8df4b6d4e0 | ||
|
|
052392e24d | ||
|
|
1b60d36513 | ||
|
|
4e8aa6de07 | ||
|
|
e756094efc | ||
|
|
6a78260b66 | ||
|
|
5620acac61 | ||
|
|
766c795106 | ||
|
|
5bc3ca295c | ||
|
|
e4d34902d3 | ||
|
|
f27bf9ea64 | ||
|
|
56f6e1196c | ||
|
|
2c6cdfe7ad | ||
|
|
2e0363ec36 | ||
|
|
34b4edb372 | ||
|
|
b5bb3c76a0 | ||
|
|
c63a33e76b | ||
|
|
ea3a823fff | ||
|
|
e593bc0a2e | ||
|
|
7ed236170d | ||
|
|
c070d9e8e1 | ||
|
|
2bdfe52075 | ||
|
|
fd1e44b8f6 | ||
|
|
e943604db8 | ||
|
|
59d03a3847 | ||
|
|
231d9a321a | ||
|
|
1c3c6dbe0f | ||
|
|
a530da2a36 | ||
|
|
a6576a1769 | ||
|
|
13b97af7f6 | ||
|
|
5d333ac6dc | ||
|
|
4a7014b5aa | ||
|
|
f6f1ffae2f | ||
|
|
6917362d78 | ||
|
|
6119d797e4 | ||
|
|
8ba265ca2b | ||
|
|
4a189945d8 | ||
|
|
9b8194fd8a | ||
|
|
30e3e2e437 | ||
|
|
980d912cc6 | ||
|
|
d2ba0fc9ae | ||
|
|
a1d7f7adcd | ||
|
|
2ff9faba0e | ||
|
|
3f2ddbac82 | ||
|
|
24c120135c | ||
|
|
45cf969d4b | ||
|
|
43e68c7a0f | ||
|
|
1f34e3cf7c | ||
|
|
2f9edd3b0e | ||
|
|
bdb9f48044 | ||
|
|
a0321945cc | ||
|
|
586d88c9ca | ||
|
|
91ba5b3c9e | ||
|
|
d493c9d3ca | ||
|
|
d33b81a43c | ||
|
|
2df776e944 | ||
|
|
405bc269d4 | ||
|
|
d0a5bd83c3 | ||
|
|
266fb7f2ad | ||
|
|
98c0eeccb2 | ||
|
|
5f1a5a1f98 | ||
|
|
6dd10ab1ca | ||
|
|
92549ef5c6 | ||
|
|
f1291390a3 | ||
|
|
8a09fd93e1 | ||
|
|
b11fd2f22b | ||
|
|
d611c25f2a | ||
|
|
ae3493aee9 | ||
|
|
654062db27 | ||
|
|
09a93d2803 | ||
|
|
98c82ad24e | ||
|
|
3eda2223ca | ||
|
|
7ef38fed24 | ||
|
|
724f2dc5fe | ||
|
|
7aa4cd4eef | ||
|
|
b2bd39cc28 | ||
|
|
e8246ea786 | ||
|
|
2c03455f61 | ||
|
|
45045d3a1c | ||
|
|
146311101a | ||
|
|
c7cc436b0b | ||
|
|
ed217ce903 | ||
|
|
4a298e83d7 | ||
|
|
39859e0d17 | ||
|
|
adce138484 | ||
|
|
e90b359d3e | ||
|
|
6b95ecda98 | ||
|
|
d0417c37b6 | ||
|
|
c6e764ebbe | ||
|
|
8b1de4c12c | ||
|
|
699d22c5fe | ||
|
|
8ba36abc87 | ||
|
|
000f2e3780 | ||
|
|
9ea2ad5105 | ||
|
|
d83ae362cf | ||
|
|
ed82e6ac75 | ||
|
|
53d05a460d | ||
|
|
8ad24fabc9 | ||
|
|
cbebac9404 | ||
|
|
50705e7253 | ||
|
|
e67089b5ce | ||
|
|
923d076603 | ||
|
|
92bc43e38b | ||
|
|
deb88e4174 | ||
|
|
faae9cc326 | ||
|
|
890186a8e2 | ||
|
|
b80aa864a1 | ||
|
|
b63256786d | ||
|
|
95694aa233 | ||
|
|
15c60e8f2b | ||
|
|
9e5876dc17 | ||
|
|
1064ad5d58 | ||
|
|
7db0589340 | ||
|
|
c590e90c87 | ||
|
|
101d3fa78d | ||
|
|
468bb5f47a | ||
|
|
1c1494d3e0 | ||
|
|
5fc11fb706 | ||
|
|
f73d61a597 | ||
|
|
3f46bcf142 | ||
|
|
aa67525b70 | ||
|
|
568f6d958b | ||
|
|
b12f515185 | ||
|
|
732de4ac7f | ||
|
|
e4bdb28ba2 | ||
|
|
a87a13c3ab | ||
|
|
19e8a7049b | ||
|
|
a21f184058 | ||
|
|
f4efce3475 | ||
|
|
23d9f46d30 | ||
|
|
6478bb7eab | ||
|
|
962fd4cca3 | ||
|
|
640d4f09bd | ||
|
|
7e2b7941f3 | ||
|
|
aa74ba3da2 | ||
|
|
1b375b715c | ||
|
|
09c1987de4 | ||
|
|
827042f12f | ||
|
|
925938b4d1 | ||
|
|
65c4d39c31 | ||
|
|
4b0e907c3d | ||
|
|
687f762457 | ||
|
|
6eb87e04c0 | ||
|
|
5fe6ef268e | ||
|
|
51e090d67a | ||
|
|
fc5dde15fe | ||
|
|
14f798afec | ||
|
|
6d117ffbb5 | ||
|
|
fcd166149c | ||
|
|
7482b20f7b | ||
|
|
1d6423e71f | ||
|
|
7cf7267085 | ||
|
|
f5fff5eaad | ||
|
|
e4e07eef5a | ||
|
|
b74da7963b | ||
|
|
7383e4348b | ||
|
|
983aa827a8 | ||
|
|
78cd635b7a | ||
|
|
dfb9af36df | ||
|
|
a02a2f5a96 | ||
|
|
dca3efb3dd | ||
|
|
43a97f86f5 | ||
|
|
b5ac415afc | ||
|
|
4417e6eaef | ||
|
|
f8fe780f52 | ||
|
|
eec374426f | ||
|
|
550123882c | ||
|
|
79f21b09d2 | ||
|
|
63843c5682 | ||
|
|
8960db4132 | ||
|
|
66c22f896b | ||
|
|
840773e626 | ||
|
|
2874096e27 | ||
|
|
b86572b084 | ||
|
|
e4f6e55e89 | ||
|
|
c1cbc334ad | ||
|
|
249fdf444a | ||
|
|
547b8b9314 | ||
|
|
ab6045691e | ||
|
|
fc8710f50a | ||
|
|
aacfe4d667 | ||
|
|
f235787703 | ||
|
|
4ca5846c7f | ||
|
|
754ccd0448 | ||
|
|
d4bd20ffb4 | ||
|
|
4bad1a258f | ||
|
|
ffb6913706 | ||
|
|
6531101517 | ||
|
|
bbf7586fe8 | ||
|
|
ef57318259 | ||
|
|
8050e351ed | ||
|
|
c2d7cf388d | ||
|
|
274aa143d3 | ||
|
|
855011360a | ||
|
|
44ff462718 | ||
|
|
9661afff16 | ||
|
|
1a43654207 | ||
|
|
822441e0bd | ||
|
|
66f1e1f714 | ||
|
|
b5e62753b7 | ||
|
|
aae8fda11d | ||
|
|
bebcd3dcdd | ||
|
|
5e0de04eab | ||
|
|
472ca9d8f6 | ||
|
|
41ed37ab02 | ||
|
|
bbdc195a3b | ||
|
|
740fbf72d7 | ||
|
|
8a2aada58d | ||
|
|
7bd53a84d5 | ||
|
|
5f18e849c1 | ||
|
|
49876c3f13 | ||
|
|
399b709aaf | ||
|
|
a477d84729 | ||
|
|
5acd03876b | ||
|
|
3a6fdf8bdf | ||
|
|
9cd3a8d5b0 | ||
|
|
840a920aba | ||
|
|
e4b3ecd372 | ||
|
|
f29eafd044 | ||
|
|
4f1a837bd3 | ||
|
|
d5a4815836 | ||
|
|
210537a4d2 | ||
|
|
0eca79cb6c | ||
|
|
550d893c38 | ||
|
|
71dca5c076 | ||
|
|
7f72b062d1 | ||
|
|
d68f8d11fe | ||
|
|
b54de611d3 | ||
|
|
f3c5d1c608 | ||
|
|
9e17304523 | ||
|
|
0460415bcb | ||
|
|
b4c5f65a5f | ||
|
|
62486a7dd1 | ||
|
|
8e32aca282 | ||
|
|
c7ae5c587a | ||
|
|
2cea1bcc82 | ||
|
|
5ff2dfb8e2 | ||
|
|
4b54b2b953 | ||
|
|
7e4570bc9c | ||
|
|
78d7df02cb | ||
|
|
ee36cf058c | ||
|
|
668194d574 | ||
|
|
c13cb8a1f2 | ||
|
|
72e87d6980 | ||
|
|
a986a61b5f | ||
|
|
5484db34f9 | ||
|
|
109e6c69ff | ||
|
|
e311bc1ca5 | ||
|
|
553d41fedd | ||
|
|
2996d9ab9c | ||
|
|
bf1da0f91f | ||
|
|
ca12a1d466 | ||
|
|
7c90323649 | ||
|
|
27e42b5091 | ||
|
|
65c72c12c4 | ||
|
|
bcf649a116 | ||
|
|
e371de4ea3 | ||
|
|
b27df30222 | ||
|
|
892349d7c9 | ||
|
|
dec8a65730 | ||
|
|
3084cebd6b | ||
|
|
879e795147 | ||
|
|
509c0a6aab | ||
|
|
91d1648230 | ||
|
|
640dac1eff | ||
|
|
9321ab9deb | ||
|
|
a193d790b2 | ||
|
|
b382ef1058 | ||
|
|
488e7b4692 | ||
|
|
be7df6c16f | ||
|
|
ddd964e49a | ||
|
|
a275a86d12 | ||
|
|
1c99f399c2 | ||
|
|
c38c7a29fd | ||
|
|
0fde78cb17 | ||
|
|
5df3317ad0 | ||
|
|
e88c4e1100 | ||
|
|
d85bb8b6a0 | ||
|
|
fd9c2b399e | ||
|
|
e8daa63d7e | ||
|
|
640d6f848a | ||
|
|
8c5e525c57 | ||
|
|
e87feba45d | ||
|
|
9d3438a8b3 | ||
|
|
fd6ef4f870 | ||
|
|
d94bd413e5 | ||
|
|
0c2f697f6d | ||
|
|
b831bed7cd | ||
|
|
d9554622c0 | ||
|
|
89ad48764a | ||
|
|
5ab3c5ea99 | ||
|
|
fdc7273d56 | ||
|
|
a59a0fe475 | ||
|
|
16e29c466e | ||
|
|
35d109389f | ||
|
|
e5b561c87f | ||
|
|
3999c0fc41 | ||
|
|
e2a1ce220e | ||
|
|
369346c03d | ||
|
|
d09ccb2504 | ||
|
|
c514b6b0b9 | ||
|
|
040f27e6da | ||
|
|
a5fdf6d14a | ||
|
|
16c9418ee1 | ||
|
|
d8aba2f7e6 | ||
|
|
db11a2a308 | ||
|
|
f362c6f508 | ||
|
|
7458c4bbd5 | ||
|
|
531f1b6aa4 | ||
|
|
723ef591a5 | ||
|
|
e51b95ffa8 | ||
|
|
9da65d6bfd | ||
|
|
88cde7225e | ||
|
|
e788b858d0 | ||
|
|
c0feb99f0e | ||
|
|
567380ffe1 | ||
|
|
a5e36c9aab | ||
|
|
4c380b48e7 | ||
|
|
3375e65486 | ||
|
|
a1adb7f31c | ||
|
|
9b28a6eed6 | ||
|
|
8be69aa647 | ||
|
|
48510d2ffb | ||
|
|
04077ce934 | ||
|
|
092faa019b | ||
|
|
1f17b975d6 | ||
|
|
15ede02c25 | ||
|
|
4bccf36375 | ||
|
|
21e794a66f | ||
|
|
e1f98e246f | ||
|
|
bf56a327f4 | ||
|
|
cd200f07a5 | ||
|
|
4ff9aac1fa | ||
|
|
988da2c477 | ||
|
|
f510f42b96 | ||
|
|
43314dc8db | ||
|
|
423a0fefa5 | ||
|
|
fd57fce977 | ||
|
|
d8fbaa4cbe | ||
|
|
a6e05f4558 | ||
|
|
42f4490bbc | ||
|
|
852e9ae173 | ||
|
|
26ec6b78eb | ||
|
|
d6a82f7852 | ||
|
|
232e2055aa | ||
|
|
955efdac1a | ||
|
|
654701af4c | ||
|
|
73d21a87ae | ||
|
|
878c7f0267 | ||
|
|
cb78c778dd | ||
|
|
310558508e | ||
|
|
3daca8d251 | ||
|
|
28b01c5464 | ||
|
|
1fbdd21133 | ||
|
|
55a6c3a10a | ||
|
|
fc45647440 | ||
|
|
3bfead66c4 | ||
|
|
b54a97b5f0 | ||
|
|
931f69d6c7 | ||
|
|
ae8c6865c9 | ||
|
|
0133bab038 | ||
|
|
48c5ee4f8b | ||
|
|
9315a8838c | ||
|
|
592564b623 | ||
|
|
79aff6827c | ||
|
|
079e7327a2 | ||
|
|
48864ce8c7 | ||
|
|
2816a70af3 | ||
|
|
6af22a9cdd | ||
|
|
827fe06903 | ||
|
|
45815d8642 | ||
|
|
cf5c770adc | ||
|
|
638f82b46d | ||
|
|
e0e1eea9ce | ||
|
|
27c7240185 | ||
|
|
5ca2a8f670 | ||
|
|
2d60a2d48c | ||
|
|
b70c8ee7a8 | ||
|
|
a3fd7423b0 | ||
|
|
f679a18e82 | ||
|
|
77f3764fea | ||
|
|
1e0c04fc15 | ||
|
|
56b973f3cc | ||
|
|
3479574bd4 | ||
|
|
aa55751b1d | ||
|
|
6c2aade375 | ||
|
|
f51f19bcba | ||
|
|
1d44662b1d | ||
|
|
25f4226dbb | ||
|
|
dd1ba96adf | ||
|
|
d4888fa4af | ||
|
|
b3559f644c | ||
|
|
fe80fb1090 | ||
|
|
43efa05113 | ||
|
|
e5e3f9e210 | ||
|
|
468dfed416 | ||
|
|
3564740255 | ||
|
|
8020729ced | ||
|
|
deec63bb5b | ||
|
|
339d491dfc | ||
|
|
d66ac9f3f4 | ||
|
|
06fb330569 | ||
|
|
ce0e06a935 | ||
|
|
5006f97f70 | ||
|
|
24d001e498 | ||
|
|
eab888c63a | ||
|
|
3d3c09d299 | ||
|
|
97dde8c485 | ||
|
|
14682b9054 | ||
|
|
93ba8e16c3 | ||
|
|
dbcb473040 | ||
|
|
f0811c8863 | ||
|
|
0166db9663 | ||
|
|
c26f073134 | ||
|
|
45668e31fc | ||
|
|
529aed5da1 | ||
|
|
09802acf0d | ||
|
|
9224051b80 | ||
|
|
fd9d3301f6 | ||
|
|
68499a1199 | ||
|
|
f077323e6f | ||
|
|
7f2e752796 | ||
|
|
97683ec052 | ||
|
|
73164c61ad | ||
|
|
564c168420 | ||
|
|
95f4fe0cb8 | ||
|
|
bbc6d374ea | ||
|
|
316da5e5f5 | ||
|
|
e2b9b8e9fd | ||
|
|
7154b8d40f | ||
|
|
fcb3ff3a41 | ||
|
|
342cfc41ec | ||
|
|
aa7d3b0f96 | ||
|
|
3e28bd2cfa | ||
|
|
cc1eec69df | ||
|
|
3fa0de4293 | ||
|
|
2ad8af71b5 | ||
|
|
b648cc1168 | ||
|
|
f24bf873bf | ||
|
|
e0a5033596 | ||
|
|
ef14d58c64 | ||
|
|
547a4adef5 | ||
|
|
5256a2f194 | ||
|
|
0560c2615d | ||
|
|
ff282492a1 | ||
|
|
312dc1c749 | ||
|
|
1e26c34758 | ||
|
|
decaba72c3 | ||
|
|
7e8c77e636 | ||
|
|
ba99980cf4 | ||
|
|
c62f722f99 | ||
|
|
3fd23508bc | ||
|
|
9ff9e0299b | ||
|
|
6488ced3d3 | ||
|
|
9a2be95159 | ||
|
|
ef4e03c9fe | ||
|
|
ca2f0288e5 | ||
|
|
ca63760a4b | ||
|
|
83924f7e10 | ||
|
|
c4a56c3f6e | ||
|
|
cf134ab3aa | ||
|
|
043c585008 | ||
|
|
0d346d4414 | ||
|
|
9067371234 | ||
|
|
40fe05c5e2 | ||
|
|
e3bdfb5def | ||
|
|
55f0713a2f | ||
|
|
5aee59cc3a | ||
|
|
94d3774d9e | ||
|
|
b665254f39 | ||
|
|
4dc8cce8e8 | ||
|
|
d206a20ce7 | ||
|
|
6fcc282a4e | ||
|
|
93c35a7ba5 | ||
|
|
9dfa8d5f8f | ||
|
|
87504056fe | ||
|
|
429c18f9e8 | ||
|
|
5bddc81f60 | ||
|
|
9837b4a61e | ||
|
|
454f143661 | ||
|
|
7376dfc6e9 | ||
|
|
838d47d578 | ||
|
|
14e81d0a9a | ||
|
|
f68c2b2454 | ||
|
|
814c3dfecc | ||
|
|
b8aade776b | ||
|
|
e092e6002d | ||
|
|
673754d16e | ||
|
|
27deeb2f51 | ||
|
|
9a7a84c7a0 | ||
|
|
a3d2588313 | ||
|
|
5c87fee282 | ||
|
|
b24323d500 | ||
|
|
824aca85d0 | ||
|
|
1e4098a29e | ||
|
|
3aa8f32ca9 | ||
|
|
bf42ea70ba | ||
|
|
d69da5f0f5 | ||
|
|
078257dd1b | ||
|
|
8c1c2570b3 | ||
|
|
a80803566d | ||
|
|
f551f5b7b6 | ||
|
|
1978cde4f1 | ||
|
|
c5f6cc6382 | ||
|
|
e9e2c0bee8 | ||
|
|
33a9817388 | ||
|
|
91301bcd5b | ||
|
|
67ad7da5cc | ||
|
|
e0deb704f9 | ||
|
|
abf3790ea6 | ||
|
|
f8adaf66c1 | ||
|
|
832fed1db5 | ||
|
|
ccce9abf57 | ||
|
|
7d60a88048 | ||
|
|
8905508d8f | ||
|
|
0b647b2dcc | ||
|
|
f58b5295a9 | ||
|
|
9e5b568cc9 | ||
|
|
90572be95a | ||
|
|
3c326598a8 | ||
|
|
ae04959175 | ||
|
|
1e224398e1 | ||
|
|
fa7b66424c | ||
|
|
d1feef51c7 | ||
|
|
1102d41842 | ||
|
|
d22b7860a4 | ||
|
|
4c072b8314 | ||
|
|
4f899dd164 | ||
|
|
9437d9cf5e | ||
|
|
b84e5250f1 | ||
|
|
c6685a706d | ||
|
|
1b63b8f3c7 | ||
|
|
e528cb48c4 | ||
|
|
824eaf84be | ||
|
|
c648cb2de5 | ||
|
|
1991d1f6e5 | ||
|
|
df479940a6 | ||
|
|
87c73175a7 | ||
|
|
a3e89cbfab | ||
|
|
f38f5ac3cf | ||
|
|
58f9be9b85 | ||
|
|
a7069e60e2 | ||
|
|
6e665c3e07 | ||
|
|
4e8eba802a | ||
|
|
ac3a10d8f1 | ||
|
|
c2885a166e | ||
|
|
0e165c1a21 | ||
|
|
629bbc5d4d | ||
|
|
4d50d4944f | ||
|
|
88934265c0 | ||
|
|
16ad5a8f5a | ||
|
|
24b8a94c2c | ||
|
|
a1f86baab2 | ||
|
|
0af124eaae | ||
|
|
57af97d1a2 | ||
|
|
f4c36a6d05 | ||
|
|
683ed0d943 | ||
|
|
88eb95c39a | ||
|
|
dd39138e6e | ||
|
|
5b2f005e80 | ||
|
|
de8282cea0 | ||
|
|
710c6f9412 | ||
|
|
8c7a3bf85a | ||
|
|
3be6cef597 | ||
|
|
d217a78857 | ||
|
|
63b97ab76d | ||
|
|
6b9122bb3b | ||
|
|
5a59dcf06e | ||
|
|
fb6ad3240f | ||
|
|
2eadc1f086 | ||
|
|
d1bc986d93 | ||
|
|
0b263697ca | ||
|
|
f0b86f877f | ||
|
|
a91daab1f7 | ||
|
|
54cc69a382 | ||
|
|
41464931a4 | ||
|
|
e01c8792ec | ||
|
|
4b33353165 | ||
|
|
8b815a3aac | ||
|
|
2a96a9c734 | ||
|
|
b73ee7f2e0 | ||
|
|
f85175e16d | ||
|
|
305b6df6e3 | ||
|
|
64f8140731 | ||
|
|
5820d31b5c | ||
|
|
29e3f4bcc4 | ||
|
|
b02d18a39e | ||
|
|
d466383df2 | ||
|
|
3ec3f0a610 | ||
|
|
ab95bff7b6 | ||
|
|
b3edbe45cf | ||
|
|
ccc2f66e92 | ||
|
|
5d42dfb1e6 | ||
|
|
fa9d2cefcc | ||
|
|
f19c4280c0 | ||
|
|
402c29c2bc | ||
|
|
3e29777526 | ||
|
|
2518190b2d | ||
|
|
31aad28a31 | ||
|
|
58edc79820 | ||
|
|
a729f04695 | ||
|
|
849d426e06 | ||
|
|
bc5da631c8 | ||
|
|
9bb69ab311 | ||
|
|
dc9dd5fabf | ||
|
|
4511e1c28d | ||
|
|
e79778ac6d | ||
|
|
d5a98e0189 | ||
|
|
73768f6313 | ||
|
|
eb14c762af | ||
|
|
a74ef412fb | ||
|
|
60cd2550a7 | ||
|
|
576ad85eb4 | ||
|
|
f2a9f31135 | ||
|
|
98c0fdc7e8 | ||
|
|
bdb79a0630 | ||
|
|
fbd7c0ce01 | ||
|
|
b9ac800bfb | ||
|
|
eecb537808 | ||
|
|
09d3f60d85 | ||
|
|
c03bf80864 | ||
|
|
299cea0601 | ||
|
|
a12ccf2c1d | ||
|
|
1c56857f0c | ||
|
|
3d443e0126 | ||
|
|
ec2d3307fd | ||
|
|
e4d8f7af61 | ||
|
|
19f840cde7 | ||
|
|
c9ff09a418 | ||
|
|
ee3befb9fc | ||
|
|
16981d6316 | ||
|
|
34131c2948 | ||
|
|
87deb19bcb | ||
|
|
6fef6ac3a2 | ||
|
|
4433ef47fe | ||
|
|
4d5f70c694 | ||
|
|
f8fd2ec4ad | ||
|
|
4a5d978abb | ||
|
|
e0ebeacd4d | ||
|
|
d9a1db044a | ||
|
|
47c5334502 | ||
|
|
950a21a020 | ||
|
|
bad48d0722 | ||
|
|
c8edd1fb25 | ||
|
|
53a121d9e1 | ||
|
|
74b63a4ba4 | ||
|
|
362948324c | ||
|
|
4cac7feb67 | ||
|
|
d6b2e86155 | ||
|
|
7132d5a86a | ||
|
|
55f18a34a9 | ||
|
|
2c3ba95768 | ||
|
|
6ede3271ff | ||
|
|
0e9c0f621a | ||
|
|
47c1e09c75 | ||
|
|
9a2b1a5cf7 | ||
|
|
9c12b1c7da | ||
|
|
0db59b45b8 | ||
|
|
ef0ede7c13 | ||
|
|
62b94d5abf | ||
|
|
318eff7327 | ||
|
|
211564a6da | ||
|
|
7a8e8f890f | ||
|
|
7b47e43fd0 | ||
|
|
fc857d987b | ||
|
|
a849c29288 | ||
|
|
1f013055d2 | ||
|
|
2e887598ba | ||
|
|
aa94488065 | ||
|
|
163b71e019 | ||
|
|
a098809294 | ||
|
|
95325c4673 | ||
|
|
68c9a8177c | ||
|
|
f314685a8e | ||
|
|
0b34197815 | ||
|
|
b627011463 | ||
|
|
2aa9348759 | ||
|
|
6217cb636f | ||
|
|
2a458a4802 | ||
|
|
989744aba2 | ||
|
|
4dfee727e8 | ||
|
|
b2fd56094f | ||
|
|
03146b21be | ||
|
|
e0172a24b8 | ||
|
|
bd42e336c7 | ||
|
|
84d3e3d25f | ||
|
|
a194393efc | ||
|
|
bc8e9513bf | ||
|
|
f4094829c2 | ||
|
|
657377b0ab | ||
|
|
8019c8b665 | ||
|
|
4c73b040c8 | ||
|
|
d3a208eb8a | ||
|
|
7d0cb39f2a | ||
|
|
553932dc72 | ||
|
|
da7a74e604 | ||
|
|
15f3ea8d05 | ||
|
|
62350f2e5f | ||
|
|
e5ddb3bbd6 | ||
|
|
f425c9d315 | ||
|
|
a8500abd8f | ||
|
|
ee9ece8992 | ||
|
|
7468904968 | ||
|
|
8a68a96f77 | ||
|
|
fa34e0fae3 | ||
|
|
54679c5f49 | ||
|
|
d1d9011f4d | ||
|
|
9f476b2ce2 | ||
|
|
70ef40eb33 | ||
|
|
2e5016713a | ||
|
|
9a5e8a4b70 | ||
|
|
daa4b1dc65 | ||
|
|
c7aeb2160e | ||
|
|
4834390e6a | ||
|
|
bdd50c7553 | ||
|
|
999dca76c1 | ||
|
|
63e17ca546 | ||
|
|
a3bfbd0186 | ||
|
|
cc9fd88c0d | ||
|
|
96b0bcfd78 | ||
|
|
4ac0bb1bed | ||
|
|
92680b3fe4 | ||
|
|
4f5f8fd216 | ||
|
|
36f7a3f524 | ||
|
|
0fdcd8b27e | ||
|
|
20b1eabb9b | ||
|
|
b7ac697dce | ||
|
|
abf2943e4d | ||
|
|
43721f1206 | ||
|
|
0e8fa54f81 | ||
|
|
ad2998598f | ||
|
|
69d5f766a8 | ||
|
|
18c2376b50 | ||
|
|
39f1b714a5 | ||
|
|
0baac62099 | ||
|
|
046c096d86 | ||
|
|
de3af85ee1 | ||
|
|
cc1bb69671 | ||
|
|
30ca30370d | ||
|
|
710406aa76 | ||
|
|
ee3a56714e | ||
|
|
a095b08758 | ||
|
|
bfdab40aaf | ||
|
|
55d9d57112 | ||
|
|
f3e4347a8b | ||
|
|
d4351668ba | ||
|
|
ac66ae813f | ||
|
|
038ef32454 | ||
|
|
994de1f812 | ||
|
|
36f3cd1f70 | ||
|
|
ef9e5e523d | ||
|
|
9b87ca9209 | ||
|
|
186e75f9b2 | ||
|
|
6c2bd2a968 | ||
|
|
68594d97cb | ||
|
|
a90aa055f5 | ||
|
|
78099b0d1f | ||
|
|
1441ad8546 | ||
|
|
0dcfe74bc6 | ||
|
|
e54353c4da | ||
|
|
08145d88b9 | ||
|
|
a3952051e1 | ||
|
|
930078b6f5 | ||
|
|
cd8b56706b | ||
|
|
2f0c9947ce | ||
|
|
c33d49ecab | ||
|
|
f315a4f02c | ||
|
|
46b1d869b1 | ||
|
|
2166cbdd80 | ||
|
|
63f4f4f60c | ||
|
|
f553344aa1 | ||
|
|
0679454b48 | ||
|
|
3ad0fd48ef | ||
|
|
d1bdbd8189 | ||
|
|
bcbd679a75 | ||
|
|
e9094659d3 | ||
|
|
bdf29cb7c2 | ||
|
|
8cd18cac8c | ||
|
|
3877355555 | ||
|
|
dbab2fb955 | ||
|
|
c5594f2979 | ||
|
|
ff3b86b5ff | ||
|
|
23467bd7e4 | ||
|
|
8c0b873ae2 | ||
|
|
2e107398ae | ||
|
|
c4c0845b3b | ||
|
|
f8a77537a7 | ||
|
|
be0a0ced25 | ||
|
|
88b698c092 | ||
|
|
0f44362348 | ||
|
|
750888f6d3 | ||
|
|
4385b44e86 | ||
|
|
1b34ad65fa | ||
|
|
dca970946d | ||
|
|
e2a6d370f0 | ||
|
|
a31a4eebdd | ||
|
|
7bb6a14944 | ||
|
|
5a0e88771b | ||
|
|
d0c9cde0ba | ||
|
|
dd4f223a39 | ||
|
|
d191e67e51 | ||
|
|
cddf1530da | ||
|
|
52a03f18a1 | ||
|
|
6baeb659a7 | ||
|
|
fed117fbf7 | ||
|
|
ff5cc09eac | ||
|
|
100b31cb71 | ||
|
|
0080374a77 | ||
|
|
d685497a10 | ||
|
|
1f890718a2 | ||
|
|
05197db71b | ||
|
|
3aafd29768 | ||
|
|
0744abe87b | ||
|
|
d7547fc4ef | ||
|
|
601e55656c | ||
|
|
c6ccd2ee6a | ||
|
|
aa50eb3b03 | ||
|
|
4d1db9e32c | ||
|
|
6294e339e2 | ||
|
|
d3f5c795ff | ||
|
|
043b5d4b9a | ||
|
|
1fe5db2ec3 | ||
|
|
63eb7e5519 | ||
|
|
1317af8d85 | ||
|
|
b178675276 | ||
|
|
a1143228b2 | ||
|
|
02c47b8eb5 | ||
|
|
75f19312ec | ||
|
|
4bf441149d | ||
|
|
5374a4c9c4 | ||
|
|
e02b18c63c | ||
|
|
de3de541e7 | ||
|
|
2097b716f4 | ||
|
|
acea58ebe7 | ||
|
|
3f2e2371ef | ||
|
|
272ed98db5 | ||
|
|
d406c80942 | ||
|
|
1338c25896 | ||
|
|
5e42d7aed0 | ||
|
|
34e240ef0e | ||
|
|
cc39afef46 | ||
|
|
9cb9e5beee | ||
|
|
880d634dc8 | ||
|
|
ff449ad8ab | ||
|
|
6009023fad | ||
|
|
09dfe2f2ab | ||
|
|
0415ed34ce | ||
|
|
c929f5ed7a | ||
|
|
5c5b4d0f5f | ||
|
|
af066a4630 | ||
|
|
2b27e9eda1 | ||
|
|
db06a4e241 | ||
|
|
02adf44768 | ||
|
|
78a53bfa06 | ||
|
|
d3760f3000 | ||
|
|
dd6c0ad001 | ||
|
|
9c3eb8f51f | ||
|
|
72a520fba4 | ||
|
|
9596e458c6 | ||
|
|
548d543efe | ||
|
|
103cd3d6f3 | ||
|
|
cd6b8b2f6d | ||
|
|
1f2f66bcb0 | ||
|
|
4fe3000275 | ||
|
|
e2c4435cab | ||
|
|
606ddc3181 | ||
|
|
07985e2f5a | ||
|
|
75c500c9a5 | ||
|
|
e886cc40fe | ||
|
|
c428108713 | ||
|
|
d80f23ed94 | ||
|
|
07a90ad4fe | ||
|
|
2afb66d68d | ||
|
|
fcf0450294 | ||
|
|
4e346180e0 | ||
|
|
029799e2e8 | ||
|
|
764d4fa1ad |
15
.asf.yaml
15
.asf.yaml
@@ -18,6 +18,7 @@
|
||||
# https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories
|
||||
---
|
||||
github:
|
||||
del_branch_on_merge: true
|
||||
description: "Apache Superset is a Data Visualization and Data Exploration Platform"
|
||||
homepage: https://superset.apache.org/
|
||||
labels:
|
||||
@@ -53,6 +54,9 @@ github:
|
||||
merge: false
|
||||
rebase: false
|
||||
|
||||
ghp_branch: gh-pages
|
||||
ghp_path: /
|
||||
|
||||
protected_branches:
|
||||
master:
|
||||
required_status_checks:
|
||||
@@ -69,18 +73,16 @@ github:
|
||||
- cypress-matrix (3, chrome)
|
||||
- cypress-matrix (4, chrome)
|
||||
- cypress-matrix (5, chrome)
|
||||
- dependency-review
|
||||
- frontend-build
|
||||
- pre-commit (current)
|
||||
- pre-commit (next)
|
||||
- pre-commit (previous)
|
||||
- test-mysql
|
||||
- test-postgres (current)
|
||||
- test-postgres (next)
|
||||
- test-postgres-hive
|
||||
- test-postgres-presto
|
||||
- test-sqlite
|
||||
- unit-tests (current)
|
||||
- unit-tests (next)
|
||||
|
||||
required_pull_request_reviews:
|
||||
dismiss_stale_reviews: false
|
||||
@@ -88,3 +90,10 @@ github:
|
||||
required_approving_review_count: 1
|
||||
|
||||
required_signatures: false
|
||||
gh-pages:
|
||||
required_pull_request_reviews:
|
||||
dismiss_stale_reviews: false
|
||||
require_code_owner_reviews: true
|
||||
required_approving_review_count: 1
|
||||
|
||||
required_signatures: false
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
**/*.sqllite
|
||||
**/*.swp
|
||||
**/.terser-plugin-cache/
|
||||
**/.storybook/
|
||||
**/node_modules/
|
||||
|
||||
tests/
|
||||
@@ -42,6 +41,8 @@ docs/
|
||||
install/
|
||||
superset-frontend/cypress-base/
|
||||
superset-frontend/coverage/
|
||||
superset-frontend/.temp_cache/
|
||||
superset/static/assets/
|
||||
superset-websocket/dist/
|
||||
venv
|
||||
.venv
|
||||
|
||||
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -1 +1,3 @@
|
||||
docker/**/*.sh text eol=lf
|
||||
*.svg binary
|
||||
*.ipynb binary
|
||||
|
||||
12
.github/CODEOWNERS
vendored
12
.github/CODEOWNERS
vendored
@@ -12,21 +12,21 @@
|
||||
|
||||
# Notify Helm Chart maintainers about changes in it
|
||||
|
||||
/helm/superset/ @craig-rueda @dpgaspar @villebro
|
||||
/helm/superset/ @craig-rueda @dpgaspar @villebro @nytai @michael-s-molina @mistercrunch @rusackas @Antonio-RiveroMartnez
|
||||
|
||||
# Notify E2E test maintainers of changes
|
||||
|
||||
/superset-frontend/cypress-base/ @jinghua-qa @geido @eschutho @rusackas @betodealmeida
|
||||
/superset-frontend/cypress-base/ @sadpandajoe @geido @eschutho @rusackas @betodealmeida
|
||||
|
||||
# Notify PMC members of changes to GitHub Actions
|
||||
|
||||
/.github/ @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @john-bodley @kgabryje @dpgaspar
|
||||
/.github/ @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @kgabryje @dpgaspar
|
||||
|
||||
# Notify PMC members of changes to required Github Actions
|
||||
# Notify PMC members of changes to required GitHub Actions
|
||||
|
||||
/.asf.yaml @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @john-bodley @kgabryje @dpgaspar
|
||||
/.asf.yaml @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @kgabryje @dpgaspar @Antonio-RiveroMartnez
|
||||
|
||||
# Maps are a finnicky contribution process we care about
|
||||
# Maps are a finicky contribution process we care about
|
||||
|
||||
**/*.geojson @villebro @rusackas
|
||||
/superset-frontend/plugins/legacy-plugin-chart-country-map/ @villebro @rusackas
|
||||
|
||||
11
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
11
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@@ -15,14 +15,9 @@ body:
|
||||
id: bug-description
|
||||
attributes:
|
||||
label: Bug description
|
||||
description: A clear and concise description of what the bug is.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: repro-steps
|
||||
attributes:
|
||||
label: How to reproduce the bug
|
||||
description: A clear description of what the bug is, including reproduction steps and expected behavior.
|
||||
placeholder: |
|
||||
The bug is that...
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
@@ -46,8 +41,8 @@ body:
|
||||
label: Superset version
|
||||
options:
|
||||
- master / latest-dev
|
||||
- "4.1.1"
|
||||
- "4.0.2"
|
||||
- "3.1.3"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
|
||||
23
.github/actions/change-detector/label-draft-pr.yml
vendored
Normal file
23
.github/actions/change-detector/label-draft-pr.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Label Draft PRs
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- opened
|
||||
- converted_to_draft
|
||||
jobs:
|
||||
label-draft:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check if the PR is a draft
|
||||
id: check-draft
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const isDraft = context.payload.pull_request.draft;
|
||||
core.setOutput('isDraft', isDraft);
|
||||
- name: Add `review:draft` Label
|
||||
if: steps.check-draft.outputs.isDraft == 'true'
|
||||
uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
labels: "review:draft"
|
||||
2
.github/actions/chart-releaser-action
vendored
2
.github/actions/chart-releaser-action
vendored
Submodule .github/actions/chart-releaser-action updated: 120944e663...a917fd15b2
17
.github/actions/setup-backend/action.yml
vendored
17
.github/actions/setup-backend/action.yml
vendored
@@ -26,11 +26,12 @@ runs:
|
||||
shell: bash
|
||||
run: |
|
||||
if [ "${{ inputs.python-version }}" = "current" ]; then
|
||||
echo "PYTHON_VERSION=3.10" >> $GITHUB_ENV
|
||||
elif [ "${{ inputs.python-version }}" = "next" ]; then
|
||||
echo "PYTHON_VERSION=3.11" >> $GITHUB_ENV
|
||||
elif [ "${{ inputs.python-version }}" = "next" ]; then
|
||||
# currently disabled in GHA matrixes because of library compatibility issues
|
||||
echo "PYTHON_VERSION=3.12" >> $GITHUB_ENV
|
||||
elif [ "${{ inputs.python-version }}" = "previous" ]; then
|
||||
echo "PYTHON_VERSION=3.9" >> $GITHUB_ENV
|
||||
echo "PYTHON_VERSION=3.10" >> $GITHUB_ENV
|
||||
else
|
||||
echo "PYTHON_VERSION=${{ inputs.python-version }}" >> $GITHUB_ENV
|
||||
fi
|
||||
@@ -43,11 +44,15 @@ runs:
|
||||
run: |
|
||||
if [ "${{ inputs.install-superset }}" = "true" ]; then
|
||||
sudo apt-get update && sudo apt-get -y install libldap2-dev libsasl2-dev
|
||||
pip install --upgrade pip setuptools wheel
|
||||
|
||||
pip install --upgrade pip setuptools wheel uv
|
||||
|
||||
if [ "${{ inputs.requirements-type }}" = "dev" ]; then
|
||||
pip install -r requirements/development.txt
|
||||
uv pip install --system -r requirements/development.txt
|
||||
elif [ "${{ inputs.requirements-type }}" = "base" ]; then
|
||||
pip install -r requirements/base.txt
|
||||
uv pip install --system -r requirements/base.txt
|
||||
fi
|
||||
|
||||
uv pip install --system -e .
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
69
.github/actions/setup-docker/action.yml
vendored
Normal file
69
.github/actions/setup-docker/action.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
name: "Setup Docker Environment"
|
||||
description: "Reusable steps for setting up QEMU, Docker Buildx, DockerHub login, Supersetbot, and optionally Docker Compose"
|
||||
inputs:
|
||||
build:
|
||||
description: "Used for building?"
|
||||
required: false
|
||||
default: "false"
|
||||
dockerhub-user:
|
||||
description: "DockerHub username"
|
||||
required: false
|
||||
dockerhub-token:
|
||||
description: "DockerHub token"
|
||||
required: false
|
||||
install-docker-compose:
|
||||
description: "Flag to install Docker Compose"
|
||||
required: false
|
||||
default: "true"
|
||||
login-to-dockerhub:
|
||||
description: "Whether you want to log into dockerhub"
|
||||
required: false
|
||||
default: "true"
|
||||
outputs: {}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
|
||||
- name: Set up QEMU
|
||||
if: ${{ inputs.build == 'true' }}
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
if: ${{ inputs.build == 'true' }}
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Try to login to DockerHub
|
||||
if: ${{ inputs.login-to-dockerhub == 'true' }}
|
||||
continue-on-error: true
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ inputs.dockerhub-user }}
|
||||
password: ${{ inputs.dockerhub-token }}
|
||||
|
||||
- name: Install Docker Compose
|
||||
if: ${{ inputs.install-docker-compose == 'true' }}
|
||||
shell: bash
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ca-certificates curl
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
|
||||
# Download and save the Docker GPG key in the correct format
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
|
||||
# Ensure the key file is readable
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
|
||||
# Add the Docker repository using the correct key
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
# Update package lists and install Docker Compose plugin
|
||||
sudo apt update
|
||||
sudo apt install -y docker-compose-plugin
|
||||
|
||||
- name: Docker Version Info
|
||||
shell: bash
|
||||
run: docker info
|
||||
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -22,8 +22,7 @@ updates:
|
||||
|
||||
|
||||
# - package-ecosystem: "pip"
|
||||
# NOTE: as dependabot isn't compatible with our python
|
||||
# dependency setup (pip-compile-multi), we'll be using
|
||||
# NOTE: as dependabot isn't compatible with our usage of `uv pip compile` we're using
|
||||
# `supersetbot` instead
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
@@ -323,6 +322,10 @@ updates:
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/superset-frontend/packages/superset-ui-core/"
|
||||
ignore:
|
||||
# not until React >= 18.0.0
|
||||
- dependency-name: "react-markdown"
|
||||
- dependency-name: "remark-gfm"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
labels:
|
||||
|
||||
21
.github/workflows/bashlib.sh
vendored
21
.github/workflows/bashlib.sh
vendored
@@ -162,7 +162,11 @@ cypress-run-all() {
|
||||
USE_DASHBOARD_FLAG='--use-dashboard'
|
||||
fi
|
||||
|
||||
python ../../scripts/cypress_run.py --parallelism $PARALLELISM --parallelism-id $PARALLEL_ID $USE_DASHBOARD_FLAG
|
||||
# UNCOMMENT the next few commands to monitor memory usage
|
||||
# monitor_memory & # Start memory monitoring in the background
|
||||
# memoryMonitorPid=$!
|
||||
python ../../scripts/cypress_run.py --parallelism $PARALLELISM --parallelism-id $PARALLEL_ID --group $PARALLEL_ID --retries 5 $USE_DASHBOARD_FLAG
|
||||
# kill $memoryMonitorPid
|
||||
|
||||
# After job is done, print out Flask log for debugging
|
||||
echo "::group::Flask log for default run"
|
||||
@@ -178,6 +182,21 @@ eyes-storybook-dependencies() {
|
||||
say "::endgroup::"
|
||||
}
|
||||
|
||||
monitor_memory() {
|
||||
# This is a small utility to monitor memory usage. Useful for debugging memory in GHA.
|
||||
# To use wrap your command as follows
|
||||
#
|
||||
# monitor_memory & # Start memory monitoring in the background
|
||||
# memoryMonitorPid=$!
|
||||
# YOUR_COMMAND_HERE
|
||||
# kill $memoryMonitorPid
|
||||
while true; do
|
||||
echo "$(date) - Top 5 memory-consuming processes:"
|
||||
ps -eo pid,comm,%mem --sort=-%mem | head -n 6 # First line is the header, next 5 are top processes
|
||||
sleep 2
|
||||
done
|
||||
}
|
||||
|
||||
cypress-run-applitools() {
|
||||
cd "$GITHUB_WORKSPACE/superset-frontend/cypress-base"
|
||||
|
||||
|
||||
17
.github/workflows/bump-python-package.yml
vendored
17
.github/workflows/bump-python-package.yml
vendored
@@ -14,10 +14,16 @@ on:
|
||||
required: true
|
||||
description: Max number of PRs to open (0 for no limit)
|
||||
default: 5
|
||||
extra-flags:
|
||||
required: false
|
||||
default: --only-base
|
||||
description: Additional flags to pass to the bump-python command
|
||||
#schedule:
|
||||
# - cron: '0 0 * * *' # Runs daily at midnight UTC
|
||||
|
||||
jobs:
|
||||
bump-python-package:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
actions: write
|
||||
contents: write
|
||||
@@ -39,8 +45,8 @@ jobs:
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Install pip-compile-multi
|
||||
run: pip install pip-compile-multi
|
||||
- name: Install uv
|
||||
run: pip install uv
|
||||
|
||||
- name: supersetbot bump-python -p "${{ github.event.inputs.package }}"
|
||||
env:
|
||||
@@ -59,10 +65,13 @@ jobs:
|
||||
GROUP_OPT="-g ${{ github.event.inputs.group }}"
|
||||
fi
|
||||
|
||||
EXTRA_FLAGS="${{ github.event.inputs.extra-flags }}"
|
||||
|
||||
supersetbot bump-python \
|
||||
--verbose \
|
||||
--use-current-repo \
|
||||
--include-subpackages \
|
||||
--limit ${{ github.event.inputs.limit }} \
|
||||
$PACKAGE_OPT \
|
||||
$GROUP_OPT
|
||||
$GROUP_OPT \
|
||||
$EXTRA_FLAGS
|
||||
|
||||
2
.github/workflows/cancel_duplicates.yml
vendored
2
.github/workflows/cancel_duplicates.yml
vendored
@@ -9,7 +9,7 @@ on:
|
||||
jobs:
|
||||
cancel-duplicate-runs:
|
||||
name: Cancel duplicate workflow runs
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
actions: write
|
||||
contents: read
|
||||
|
||||
44
.github/workflows/check-python-deps.yml
vendored
Normal file
44
.github/workflows/check-python-deps.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: Check python dependencies
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "master"
|
||||
- "[0-9].[0-9]*"
|
||||
pull_request:
|
||||
types: [synchronize, opened, reopened, ready_for_review]
|
||||
|
||||
# cancel previous workflow jobs for PRs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
check-python-deps:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: recursive
|
||||
depth: 1
|
||||
|
||||
- name: Setup Python
|
||||
if: steps.check.outputs.python
|
||||
uses: ./.github/actions/setup-backend/
|
||||
|
||||
- name: Run uv
|
||||
if: steps.check.outputs.python
|
||||
run: ./scripts/uv-pip-compile.sh
|
||||
|
||||
- name: Check for uncommitted changes
|
||||
run: |
|
||||
if [[ -n "$(git diff)" ]]; then
|
||||
echo "ERROR: The pinned dependencies are not up-to-date."
|
||||
echo "Please run './scripts/uv-pip-compile.sh' and commit the changes."
|
||||
exit 1
|
||||
else
|
||||
echo "Pinned dependencies are up-to-date."
|
||||
fi
|
||||
@@ -19,7 +19,7 @@ concurrency:
|
||||
jobs:
|
||||
check_db_migration_conflict:
|
||||
name: Check DB migration conflict
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
@@ -17,7 +17,7 @@ concurrency:
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
|
||||
40
.github/workflows/dependency-review.yml
vendored
40
.github/workflows/dependency-review.yml
vendored
@@ -5,19 +5,32 @@
|
||||
# Source repository: https://github.com/actions/dependency-review-action
|
||||
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
||||
name: "Dependency Review"
|
||||
on: [pull_request]
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "master"
|
||||
- "[0-9].[0-9]*"
|
||||
pull_request:
|
||||
types: [synchronize, opened, reopened, ready_for_review]
|
||||
|
||||
# cancel previous workflow jobs for PRs
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
dependency-review:
|
||||
runs-on: ubuntu-22.04
|
||||
if: github.event_name == 'pull_request'
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout Repository"
|
||||
uses: actions/checkout@v4
|
||||
- name: "Dependency Review"
|
||||
uses: actions/dependency-review-action@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
fail-on-severity: critical
|
||||
# compatible/incompatible licenses addressed here: https://www.apache.org/legal/resolved.html
|
||||
@@ -32,4 +45,25 @@ jobs:
|
||||
# license: https://applitools.com/legal/open-source-terms-of-use/
|
||||
# pkg:npm/node-forge@1.3.1
|
||||
# selecting BSD-3-Clause licensing terms for node-forge to ensure compatibility with Apache
|
||||
allow-dependencies-licenses: pkg:npm/store2@2.14.2, pkg:npm/applitools/core, pkg:npm/applitools/core-base, pkg:npm/applitools/css-tree, pkg:npm/applitools/ec-client, pkg:npm/applitools/eg-socks5-proxy-server, pkg:npm/applitools/eyes, pkg:npm/applitools/eyes-cypress, pkg:npm/applitools/nml-client, pkg:npm/applitools/tunnel-client, pkg:npm/applitools/utils, pkg:npm/node-forge@1.3.1
|
||||
allow-dependencies-licenses: pkg:npm/store2@2.14.2, pkg:npm/applitools/core, pkg:npm/applitools/core-base, pkg:npm/applitools/css-tree, pkg:npm/applitools/ec-client, pkg:npm/applitools/eg-socks5-proxy-server, pkg:npm/applitools/eyes, pkg:npm/applitools/eyes-cypress, pkg:npm/applitools/nml-client, pkg:npm/applitools/tunnel-client, pkg:npm/applitools/utils, pkg:npm/node-forge@1.3.1, pkg:npm/rgbcolor, pkg:npm/jszip@3.10.1
|
||||
|
||||
python-dependency-liccheck:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: "Checkout Repository"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Python
|
||||
uses: ./.github/actions/setup-backend/
|
||||
with:
|
||||
requirements-type: base
|
||||
|
||||
- name: "Set up liccheck"
|
||||
run: |
|
||||
uv pip install --system liccheck
|
||||
- name: "Run liccheck"
|
||||
run: |
|
||||
# run the checks
|
||||
liccheck -R output.txt
|
||||
# Print the report
|
||||
cat output.txt
|
||||
|
||||
79
.github/workflows/docker.yml
vendored
79
.github/workflows/docker.yml
vendored
@@ -14,21 +14,22 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
|
||||
setup_matrix:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
matrix_config: ${{ steps.set_matrix.outputs.matrix_config }}
|
||||
steps:
|
||||
- id: set_matrix
|
||||
run: |
|
||||
MATRIX_CONFIG=$(if [ "${{ github.event_name }}" == "pull_request" ]; then echo '["dev"]'; else echo '["dev", "lean", "py310", "websocket", "dockerize"]'; fi)
|
||||
MATRIX_CONFIG=$(if [ "${{ github.event_name }}" == "pull_request" ]; then echo '["dev", "lean"]'; else echo '["dev", "lean", "py310", "websocket", "dockerize", "py311"]'; fi)
|
||||
echo "matrix_config=${MATRIX_CONFIG}" >> $GITHUB_OUTPUT
|
||||
echo $GITHUB_OUTPUT
|
||||
|
||||
docker-build:
|
||||
name: docker-build
|
||||
needs: setup_matrix
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
build_preset: ${{fromJson(needs.setup_matrix.outputs.matrix_config)}}
|
||||
@@ -36,6 +37,7 @@ jobs:
|
||||
env:
|
||||
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
|
||||
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
IMAGE_TAG: apache/superset:GHA-${{ matrix.build_preset }}-${{ github.run_id }}
|
||||
|
||||
steps:
|
||||
|
||||
@@ -50,21 +52,13 @@ jobs:
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up QEMU
|
||||
- name: Setup Docker Environment
|
||||
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Try to login to DockerHub
|
||||
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
|
||||
continue-on-error: true
|
||||
uses: docker/login-action@v3
|
||||
uses: ./.github/actions/setup-docker
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
dockerhub-user: ${{ secrets.DOCKERHUB_USER }}
|
||||
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
build: "true"
|
||||
|
||||
- name: Setup supersetbot
|
||||
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
|
||||
@@ -79,12 +73,65 @@ jobs:
|
||||
# Single platform builds in pull_request context to speed things up
|
||||
if [ "${{ github.event_name }}" = "push" ]; then
|
||||
PLATFORM_ARG="--platform linux/arm64 --platform linux/amd64"
|
||||
# can only --load images in single-platform builds
|
||||
PUSH_OR_LOAD="--push"
|
||||
elif [ "${{ github.event_name }}" = "pull_request" ]; then
|
||||
PLATFORM_ARG="--platform linux/amd64"
|
||||
PUSH_OR_LOAD="--load"
|
||||
fi
|
||||
|
||||
supersetbot docker \
|
||||
$PUSH_OR_LOAD \
|
||||
--preset ${{ matrix.build_preset }} \
|
||||
--context "$EVENT" \
|
||||
--context-ref "$RELEASE" $FORCE_LATEST \
|
||||
--extra-flags "--build-arg INCLUDE_CHROMIUM=false --tag $IMAGE_TAG" \
|
||||
$PLATFORM_ARG
|
||||
|
||||
# in the context of push (using multi-platform build), we need to pull the image locally
|
||||
- name: Docker pull
|
||||
if: github.event_name == 'push' && (steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker)
|
||||
run: docker pull $IMAGE_TAG
|
||||
|
||||
- name: Print docker stats
|
||||
if: steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker
|
||||
run: |
|
||||
echo "SHA: ${{ github.sha }}"
|
||||
echo "IMAGE: $IMAGE_TAG"
|
||||
docker images $IMAGE_TAG
|
||||
docker history $IMAGE_TAG
|
||||
|
||||
- name: docker-compose sanity check
|
||||
if: (steps.check.outputs.python || steps.check.outputs.frontend || steps.check.outputs.docker) && (matrix.build_preset == 'dev' || matrix.build_preset == 'lean')
|
||||
shell: bash
|
||||
run: |
|
||||
export SUPERSET_BUILD_TARGET=${{ matrix.build_preset }}
|
||||
# This should reuse the CACHED image built in the previous steps
|
||||
docker compose build superset-init --build-arg DEV_MODE=false --build-arg INCLUDE_CHROMIUM=false
|
||||
docker compose up superset-init --exit-code-from superset-init
|
||||
|
||||
docker-compose-image-tag:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Check for file changes
|
||||
id: check
|
||||
uses: ./.github/actions/change-detector/
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Setup Docker Environment
|
||||
if: steps.check.outputs.docker
|
||||
uses: ./.github/actions/setup-docker
|
||||
with:
|
||||
dockerhub-user: ${{ secrets.DOCKERHUB_USER }}
|
||||
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
build: "false"
|
||||
install-docker-compose: "true"
|
||||
- name: docker-compose sanity check
|
||||
if: steps.check.outputs.docker
|
||||
shell: bash
|
||||
run: |
|
||||
docker compose -f docker-compose-image-tag.yml up superset-init --exit-code-from superset-init
|
||||
|
||||
4
.github/workflows/embedded-sdk-release.yml
vendored
4
.github/workflows/embedded-sdk-release.yml
vendored
@@ -8,7 +8,7 @@ on:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
build:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
defaults:
|
||||
run:
|
||||
working-directory: superset-embedded-sdk
|
||||
|
||||
2
.github/workflows/embedded-sdk-test.yml
vendored
2
.github/workflows/embedded-sdk-test.yml
vendored
@@ -13,7 +13,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
embedded-sdk-test:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
defaults:
|
||||
run:
|
||||
working-directory: superset-embedded-sdk
|
||||
|
||||
4
.github/workflows/ephemeral-env-pr-close.yml
vendored
4
.github/workflows/ephemeral-env-pr-close.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
name: Cleanup ephemeral envs
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
pull-requests: write
|
||||
steps:
|
||||
|
||||
482
.github/workflows/ephemeral-env.yml
vendored
482
.github/workflows/ephemeral-env.yml
vendored
@@ -1,132 +1,177 @@
|
||||
name: Ephemeral env workflow
|
||||
|
||||
# Example manual trigger:
|
||||
# gh workflow run ephemeral-env.yml --ref fix_ephemerals --field label_name="testenv-up" --field issue_number=666
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
pull_request_target:
|
||||
types:
|
||||
- labeled
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
label_name:
|
||||
description: 'Label name to simulate label-based /testenv trigger'
|
||||
required: true
|
||||
default: 'testenv-up'
|
||||
issue_number:
|
||||
description: 'Issue or PR number'
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
if: github.event.issue.pull_request
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
- name: "Check for secrets"
|
||||
id: check
|
||||
shell: bash
|
||||
run: |
|
||||
if [ -n "${{ (secrets.AWS_ACCESS_KEY_ID != '' && secrets.AWS_SECRET_ACCESS_KEY != '') || '' }}" ]; then
|
||||
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
ephemeral-env-comment:
|
||||
ephemeral-env-label:
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.issue.number || github.run_id }}-comment
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}-label
|
||||
cancel-in-progress: true
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
name: Evaluate ephemeral env comment trigger (/testenv)
|
||||
runs-on: ubuntu-22.04
|
||||
name: Evaluate ephemeral env label trigger
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
pull-requests: write
|
||||
outputs:
|
||||
slash-command: ${{ steps.eval-body.outputs.result }}
|
||||
slash-command: ${{ steps.eval-label.outputs.result }}
|
||||
feature-flags: ${{ steps.eval-feature-flags.outputs.result }}
|
||||
sha: ${{ steps.get-sha.outputs.sha }}
|
||||
env:
|
||||
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
|
||||
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
steps:
|
||||
- name: Debug
|
||||
run: |
|
||||
echo "Comment on PR #${{ github.event.issue.number }} by ${{ github.event.issue.user.login }}, ${{ github.event.comment.author_association }}"
|
||||
- name: Check for the "testenv-up" label
|
||||
id: eval-label
|
||||
run: |
|
||||
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
|
||||
LABEL_NAME="${{ github.event.inputs.label_name }}"
|
||||
else
|
||||
LABEL_NAME="${{ github.event.label.name }}"
|
||||
fi
|
||||
|
||||
- name: Eval comment body for /testenv slash command
|
||||
uses: actions/github-script@v7
|
||||
id: eval-body
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
const pattern = /^\/testenv (up|down)/
|
||||
const result = pattern.exec(context.payload.comment.body)
|
||||
return result === null ? 'noop' : result[1]
|
||||
echo "Evaluating label: $LABEL_NAME"
|
||||
|
||||
- name: Eval comment body for feature flags
|
||||
uses: actions/github-script@v7
|
||||
id: eval-feature-flags
|
||||
with:
|
||||
script: |
|
||||
const pattern = /FEATURE_(\w+)=(\w+)/g;
|
||||
let results = [];
|
||||
[...context.payload.comment.body.matchAll(pattern)].forEach(match => {
|
||||
const config = {
|
||||
name: `SUPERSET_FEATURE_${match[1]}`,
|
||||
value: match[2],
|
||||
};
|
||||
results.push(config);
|
||||
});
|
||||
return results;
|
||||
if [[ "$LABEL_NAME" == "testenv-up" ]]; then
|
||||
echo "result=up" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "result=noop" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Limit to committers
|
||||
if: >
|
||||
steps.eval-body.outputs.result != 'noop' &&
|
||||
github.event.comment.author_association != 'MEMBER' &&
|
||||
github.event.comment.author_association != 'OWNER'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{github.token}}
|
||||
script: |
|
||||
const errMsg = '@${{ github.event.comment.user.login }} Ephemeral environment creation is currently limited to committers.'
|
||||
github.rest.issues.createComment({
|
||||
issue_number: ${{ github.event.issue.number }},
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: errMsg
|
||||
})
|
||||
core.setFailed(errMsg)
|
||||
- name: Get event SHA
|
||||
id: get-sha
|
||||
if: steps.eval-label.outputs.result == 'up'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
let prSha;
|
||||
|
||||
// If event is workflow_dispatch, use the issue_number from inputs
|
||||
if (context.eventName === "workflow_dispatch") {
|
||||
const prNumber = "${{ github.event.inputs.issue_number }}";
|
||||
if (!prNumber) {
|
||||
console.log("No PR number found.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Fetch PR details using the provided issue_number
|
||||
const { data: pr } = await github.rest.pulls.get({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: prNumber
|
||||
});
|
||||
|
||||
prSha = pr.head.sha;
|
||||
} else {
|
||||
// If it's not workflow_dispatch, use the PR head sha from the event
|
||||
prSha = context.payload.pull_request.head.sha;
|
||||
}
|
||||
|
||||
console.log(`PR SHA: ${prSha}`);
|
||||
core.setOutput("sha", prSha);
|
||||
|
||||
- name: Looking for feature flags in PR description
|
||||
uses: actions/github-script@v7
|
||||
id: eval-feature-flags
|
||||
if: steps.eval-label.outputs.result == 'up'
|
||||
with:
|
||||
script: |
|
||||
const description = context.payload.pull_request
|
||||
? context.payload.pull_request.body || ''
|
||||
: context.payload.inputs.pr_description || '';
|
||||
|
||||
const pattern = /FEATURE_(\w+)=(\w+)/g;
|
||||
let results = [];
|
||||
[...description.matchAll(pattern)].forEach(match => {
|
||||
const config = {
|
||||
name: `SUPERSET_FEATURE_${match[1]}`,
|
||||
value: match[2],
|
||||
};
|
||||
results.push(config);
|
||||
});
|
||||
|
||||
return results;
|
||||
|
||||
- name: Reply with confirmation comment
|
||||
uses: actions/github-script@v7
|
||||
if: steps.eval-label.outputs.result == 'up'
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
const action = '${{ steps.eval-label.outputs.result }}';
|
||||
const user = context.actor;
|
||||
const runId = context.runId;
|
||||
const workflowUrl = `${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
|
||||
|
||||
const issueNumber = context.payload.pull_request
|
||||
? context.payload.pull_request.number
|
||||
: context.payload.inputs.issue_number;
|
||||
|
||||
if (!issueNumber) {
|
||||
throw new Error("Issue number is not available.");
|
||||
}
|
||||
|
||||
const body = `@${user} Processing your ephemeral environment request [here](${workflowUrl}). Action: **${action}**.`;
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issueNumber,
|
||||
body,
|
||||
});
|
||||
|
||||
ephemeral-docker-build:
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.issue.number || github.run_id }}-build
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}-build
|
||||
cancel-in-progress: true
|
||||
needs: ephemeral-env-comment
|
||||
needs: ephemeral-env-label
|
||||
if: needs.ephemeral-env-label.outputs.slash-command == 'up'
|
||||
name: ephemeral-docker-build
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Get Info from comment
|
||||
uses: actions/github-script@v7
|
||||
id: get-pr-info
|
||||
with:
|
||||
script: |
|
||||
const request = {
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: ${{ github.event.issue.number }},
|
||||
}
|
||||
core.info(`Getting PR #${request.pull_number} from ${request.owner}/${request.repo}`)
|
||||
const pr = await github.rest.pulls.get(request);
|
||||
return pr.data;
|
||||
|
||||
- name: Debug
|
||||
id: get-sha
|
||||
run: |
|
||||
echo "sha=${{ fromJSON(steps.get-pr-info.outputs.result).head.sha }}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} : ${{steps.get-sha.outputs.sha}} )"
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ needs.ephemeral-env-label.outputs.sha }} : ${{steps.get-sha.outputs.sha}} )"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ steps.get-sha.outputs.sha }}
|
||||
ref: ${{ needs.ephemeral-env-label.outputs.sha }}
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
- name: Setup Docker Environment
|
||||
uses: ./.github/actions/setup-docker
|
||||
with:
|
||||
dockerhub-user: ${{ secrets.DOCKERHUB_USER }}
|
||||
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
build: "true"
|
||||
install-docker-compose: "false"
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Setup supersetbot
|
||||
uses: ./.github/actions/setup-supersetbot/
|
||||
|
||||
- name: Build ephemeral env image
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
./scripts/build_docker.py \
|
||||
"ci" \
|
||||
"pull_request" \
|
||||
--build_context_ref ${{ github.event.issue.number }}
|
||||
supersetbot docker \
|
||||
--push \
|
||||
--load \
|
||||
--preset ci \
|
||||
--platform linux/amd64 \
|
||||
--context-ref "$RELEASE" \
|
||||
--extra-flags "--build-arg INCLUDE_CHROMIUM=false"
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
@@ -144,140 +189,141 @@ jobs:
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: superset-ci
|
||||
IMAGE_TAG: apache/superset:${{ steps.get-sha.outputs.sha }}-ci
|
||||
IMAGE_TAG: apache/superset:${{ needs.ephemeral-env-label.outputs.sha }}-ci
|
||||
PR_NUMBER: ${{ github.event.inputs.issue_number || github.event.pull_request.number }}
|
||||
run: |
|
||||
docker tag $IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:pr-${{ github.event.issue.number }}-ci
|
||||
docker tag $IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:pr-$PR_NUMBER-ci
|
||||
docker push -a $ECR_REGISTRY/$ECR_REPOSITORY
|
||||
|
||||
ephemeral-env-up:
|
||||
needs: [ephemeral-env-comment, ephemeral-docker-build]
|
||||
if: needs.ephemeral-env-comment.outputs.slash-command == 'up'
|
||||
needs: [ephemeral-env-label, ephemeral-docker-build]
|
||||
if: needs.ephemeral-env-label.outputs.slash-command == 'up'
|
||||
name: Spin up an ephemeral environment
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-west-2
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v4
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-west-2
|
||||
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v2
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v2
|
||||
|
||||
- name: Check target image exists in ECR
|
||||
id: check-image
|
||||
continue-on-error: true
|
||||
run: |
|
||||
aws ecr describe-images \
|
||||
--registry-id $(echo "${{ steps.login-ecr.outputs.registry }}" | grep -Eo "^[0-9]+") \
|
||||
--repository-name superset-ci \
|
||||
--image-ids imageTag=pr-${{ github.event.issue.number }}-ci
|
||||
- name: Check target image exists in ECR
|
||||
id: check-image
|
||||
continue-on-error: true
|
||||
env:
|
||||
PR_NUMBER: ${{ github.event.inputs.issue_number || github.event.pull_request.number }}
|
||||
run: |
|
||||
aws ecr describe-images \
|
||||
--registry-id $(echo "${{ steps.login-ecr.outputs.registry }}" | grep -Eo "^[0-9]+") \
|
||||
--repository-name superset-ci \
|
||||
--image-ids imageTag=pr-$PR_NUMBER-ci
|
||||
|
||||
- name: Fail on missing container image
|
||||
if: steps.check-image.outcome == 'failure'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{github.token}}
|
||||
script: |
|
||||
const errMsg = '@${{ github.event.comment.user.login }} Container image not yet published for this PR. Please try again when build is complete.'
|
||||
github.rest.issues.createComment({
|
||||
issue_number: ${{ github.event.issue.number }},
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: errMsg
|
||||
})
|
||||
core.setFailed(errMsg)
|
||||
- name: Fail on missing container image
|
||||
if: steps.check-image.outcome == 'failure'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
script: |
|
||||
const errMsg = '@${{ github.event.comment.user.login }} Container image not yet published for this PR. Please try again when build is complete.';
|
||||
github.rest.issues.createComment({
|
||||
issue_number: ${{ github.event.inputs.issue_number || github.event.pull_request.number }},
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: errMsg
|
||||
});
|
||||
core.setFailed(errMsg);
|
||||
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: .github/workflows/ecs-task-definition.json
|
||||
container-name: superset-ci
|
||||
image: ${{ steps.login-ecr.outputs.registry }}/superset-ci:pr-${{ github.event.issue.number }}-ci
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: .github/workflows/ecs-task-definition.json
|
||||
container-name: superset-ci
|
||||
image: ${{ steps.login-ecr.outputs.registry }}/superset-ci:pr-${{ github.event.inputs.issue_number || github.event.pull_request.number }}-ci
|
||||
|
||||
- name: Update env vars in the Amazon ECS task definition
|
||||
run: |
|
||||
cat <<< "$(jq '.containerDefinitions[0].environment += ${{ needs.ephemeral-env-comment.outputs.feature-flags }}' < ${{ steps.task-def.outputs.task-definition }})" > ${{ steps.task-def.outputs.task-definition }}
|
||||
- name: Update env vars in the Amazon ECS task definition
|
||||
run: |
|
||||
cat <<< "$(jq '.containerDefinitions[0].environment += ${{ needs.ephemeral-env-label.outputs.feature-flags }}' < ${{ steps.task-def.outputs.task-definition }})" > ${{ steps.task-def.outputs.task-definition }}
|
||||
|
||||
- name: Describe ECS service
|
||||
id: describe-services
|
||||
run: |
|
||||
echo "active=$(aws ecs describe-services --cluster superset-ci --services pr-${{ github.event.issue.number }}-service | jq '.services[] | select(.status == "ACTIVE") | any')" >> $GITHUB_OUTPUT
|
||||
- name: Create ECS service
|
||||
if: steps.describe-services.outputs.active != 'true'
|
||||
id: create-service
|
||||
env:
|
||||
ECR_SUBNETS: subnet-0e15a5034b4121710,subnet-0e8efef4a72224974
|
||||
ECR_SECURITY_GROUP: sg-092ff3a6ae0574d91
|
||||
run: |
|
||||
aws ecs create-service \
|
||||
--cluster superset-ci \
|
||||
--service-name pr-${{ github.event.issue.number }}-service \
|
||||
--task-definition superset-ci \
|
||||
--launch-type FARGATE \
|
||||
--desired-count 1 \
|
||||
--platform-version LATEST \
|
||||
--network-configuration "awsvpcConfiguration={subnets=[$ECR_SUBNETS],securityGroups=[$ECR_SECURITY_GROUP],assignPublicIp=ENABLED}" \
|
||||
--tags key=pr,value=${{ github.event.issue.number }} key=github_user,value=${{ github.actor }}
|
||||
- name: Describe ECS service
|
||||
id: describe-services
|
||||
run: |
|
||||
echo "active=$(aws ecs describe-services --cluster superset-ci --services pr-${{ github.event.inputs.issue_number || github.event.pull_request.number }}-service | jq '.services[] | select(.status == "ACTIVE") | any')" >> $GITHUB_OUTPUT
|
||||
- name: Create ECS service
|
||||
id: create-service
|
||||
if: steps.describe-services.outputs.active != 'true'
|
||||
env:
|
||||
ECR_SUBNETS: subnet-0e15a5034b4121710,subnet-0e8efef4a72224974
|
||||
ECR_SECURITY_GROUP: sg-092ff3a6ae0574d91
|
||||
PR_NUMBER: ${{ github.event.inputs.issue_number || github.event.pull_request.number }}
|
||||
run: |
|
||||
aws ecs create-service \
|
||||
--cluster superset-ci \
|
||||
--service-name pr-$PR_NUMBER-service \
|
||||
--task-definition superset-ci \
|
||||
--launch-type FARGATE \
|
||||
--desired-count 1 \
|
||||
--platform-version LATEST \
|
||||
--network-configuration "awsvpcConfiguration={subnets=[$ECR_SUBNETS],securityGroups=[$ECR_SECURITY_GROUP],assignPublicIp=ENABLED}" \
|
||||
--tags key=pr,value=$PR_NUMBER key=github_user,value=${{ github.actor }}
|
||||
- name: Deploy Amazon ECS task definition
|
||||
id: deploy-task
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v2
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: pr-${{ github.event.inputs.issue_number || github.event.pull_request.number }}-service
|
||||
cluster: superset-ci
|
||||
wait-for-service-stability: true
|
||||
wait-for-minutes: 10
|
||||
|
||||
- name: Deploy Amazon ECS task definition
|
||||
id: deploy-task
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def.outputs.task-definition }}
|
||||
service: pr-${{ github.event.issue.number }}-service
|
||||
cluster: superset-ci
|
||||
wait-for-service-stability: true
|
||||
wait-for-minutes: 10
|
||||
|
||||
- name: List tasks
|
||||
id: list-tasks
|
||||
run: |
|
||||
echo "task=$(aws ecs list-tasks --cluster superset-ci --service-name pr-${{ github.event.issue.number }}-service | jq '.taskArns | first')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get network interface
|
||||
id: get-eni
|
||||
run: |
|
||||
echo "eni=$(aws ecs describe-tasks --cluster superset-ci --tasks ${{ steps.list-tasks.outputs.task }} | jq '.tasks | .[0] | .attachments | .[0] | .details | map(select(.name=="networkInterfaceId")) | .[0] | .value')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get public IP
|
||||
id: get-ip
|
||||
run: |
|
||||
echo "ip=$(aws ec2 describe-network-interfaces --network-interface-ids ${{ steps.get-eni.outputs.eni }} | jq -r '.NetworkInterfaces | first | .Association.PublicIp')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Comment (success)
|
||||
if: ${{ success() }}
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{github.token}}
|
||||
script: |
|
||||
github.rest.issues.createComment({
|
||||
issue_number: ${{ github.event.issue.number }},
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: '@${{ github.event.comment.user.login }} Ephemeral environment spinning up at http://${{ steps.get-ip.outputs.ip }}:8080. Credentials are `admin`/`admin`. Please allow several minutes for bootstrapping and startup.'
|
||||
})
|
||||
|
||||
- name: Comment (failure)
|
||||
if: ${{ failure() }}
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{github.token}}
|
||||
script: |
|
||||
github.rest.issues.createComment({
|
||||
issue_number: ${{ github.event.issue.number }},
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: '@${{ github.event.comment.user.login }} Ephemeral environment creation failed. Please check the Actions logs for details.'
|
||||
})
|
||||
- name: List tasks
|
||||
id: list-tasks
|
||||
run: |
|
||||
echo "task=$(aws ecs list-tasks --cluster superset-ci --service-name pr-${{ github.event.inputs.issue_number || github.event.pull_request.number }}-service | jq '.taskArns | first')" >> $GITHUB_OUTPUT
|
||||
- name: Get network interface
|
||||
id: get-eni
|
||||
run: |
|
||||
echo "eni=$(aws ecs describe-tasks --cluster superset-ci --tasks ${{ steps.list-tasks.outputs.task }} | jq '.tasks[0].attachments[0].details | map(select(.name==\"networkInterfaceId\"))[0].value')" >> $GITHUB_OUTPUT
|
||||
- name: Get public IP
|
||||
id: get-ip
|
||||
run: |
|
||||
echo "ip=$(aws ec2 describe-network-interfaces --network-interface-ids ${{ steps.get-eni.outputs.eni }} | jq -r '.NetworkInterfaces | first | .Association.PublicIp')" >> $GITHUB_OUTPUT
|
||||
- name: Comment (success)
|
||||
if: ${{ success() }}
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{github.token}}
|
||||
script: |
|
||||
const issue_number = context.payload.inputs?.issue_number || context.issue.number;
|
||||
github.rest.issues.createComment({
|
||||
issue_number: issue_number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: `@${{ github.actor }} Ephemeral environment spinning up at http://${{ steps.get-ip.outputs.ip }}:8080. Credentials are 'admin'/'admin'. Please allow several minutes for bootstrapping and startup.`
|
||||
});
|
||||
- name: Comment (failure)
|
||||
if: ${{ failure() }}
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{github.token}}
|
||||
script: |
|
||||
const issue_number = context.payload.inputs?.issue_number || context.issue.number;
|
||||
github.rest.issues.createComment({
|
||||
issue_number: issue_number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: '@${{ github.event.inputs.user_login || github.event.comment.user.login }} Ephemeral environment creation failed. Please check the Actions logs for details.'
|
||||
})
|
||||
|
||||
4
.github/workflows/generate-FOSSA-report.yml
vendored
4
.github/workflows/generate-FOSSA-report.yml
vendored
@@ -8,7 +8,7 @@ on:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
name: Generate Report
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
@@ -11,7 +11,7 @@ on:
|
||||
jobs:
|
||||
|
||||
validate-all-ghas:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
2
.github/workflows/issue_creation.yml
vendored
2
.github/workflows/issue_creation.yml
vendored
@@ -9,7 +9,7 @@ on:
|
||||
|
||||
jobs:
|
||||
superbot-orglabel:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
2
.github/workflows/labeler.yml
vendored
2
.github/workflows/labeler.yml
vendored
@@ -7,7 +7,7 @@ jobs:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/labeler@v5
|
||||
with:
|
||||
|
||||
2
.github/workflows/latest-release-tag.yml
vendored
2
.github/workflows/latest-release-tag.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
jobs:
|
||||
latest-release:
|
||||
name: Add/update tag to new release
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
|
||||
2
.github/workflows/license-check.yml
vendored
2
.github/workflows/license-check.yml
vendored
@@ -12,7 +12,7 @@ concurrency:
|
||||
jobs:
|
||||
license_check:
|
||||
name: License Check
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
2
.github/workflows/no-hold-label.yml
vendored
2
.github/workflows/no-hold-label.yml
vendored
@@ -11,7 +11,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
check-hold-label:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Check for 'hold' label
|
||||
uses: actions/github-script@v7
|
||||
|
||||
2
.github/workflows/pr-lint.yml
vendored
2
.github/workflows/pr-lint.yml
vendored
@@ -10,7 +10,7 @@ on:
|
||||
|
||||
jobs:
|
||||
lint-check:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
6
.github/workflows/pre-commit.yml
vendored
6
.github/workflows/pre-commit.yml
vendored
@@ -15,10 +15,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["current", "next", "previous"]
|
||||
python-version: ["current", "previous"]
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
@@ -41,6 +41,8 @@ jobs:
|
||||
- name: pre-commit
|
||||
run: |
|
||||
set +e # Don't exit immediately on failure
|
||||
# Skip eslint as it requires `npm ci` and is executed in another job
|
||||
export SKIP=eslint
|
||||
pre-commit run --all-files
|
||||
if [ $? -ne 0 ] || ! git diff --quiet --exit-code; then
|
||||
echo "❌ Pre-commit check failed."
|
||||
|
||||
2
.github/workflows/prefer-typescript.yml
vendored
2
.github/workflows/prefer-typescript.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
prefer_typescript:
|
||||
if: github.ref == 'ref/heads/master' && github.event_name == 'pull_request'
|
||||
name: Prefer TypeScript
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -8,7 +8,7 @@ on:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
if: needs.config.outputs.has-secrets
|
||||
name: Bump version and publish package(s)
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
|
||||
@@ -6,7 +6,7 @@ on:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
cypress-applitools:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
||||
@@ -12,7 +12,7 @@ env:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
cron:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
node: [20]
|
||||
|
||||
2
.github/workflows/superset-cli.yml
vendored
2
.github/workflows/superset-cli.yml
vendored
@@ -15,7 +15,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
test-load-examples:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||
|
||||
4
.github/workflows/superset-docs-deploy.yml
vendored
4
.github/workflows/superset-docs-deploy.yml
vendored
@@ -12,7 +12,7 @@ on:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
name: Build & Deploy
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
17
.github/workflows/superset-docs-verify.yml
vendored
17
.github/workflows/superset-docs-verify.yml
vendored
@@ -4,6 +4,7 @@ on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "docs/**"
|
||||
- ".github/workflows/superset-docs-verify.yml"
|
||||
types: [synchronize, opened, reopened, ready_for_review]
|
||||
|
||||
# cancel previous workflow jobs for PRs
|
||||
@@ -18,13 +19,15 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: JustinBeckwith/linkinator-action@v1.10.4
|
||||
# Do not bump this linkinator-action version without opening
|
||||
# an ASF Infra ticket to allow the new verison first!
|
||||
- uses: JustinBeckwith/linkinator-action@v1.11.0
|
||||
continue-on-error: true # This will make the job advisory (non-blocking, no red X)
|
||||
with:
|
||||
paths: "**/*.md, **/*.mdx"
|
||||
paths: "**/*.md, **/*.mdx, !superset-frontend/CHANGELOG.md"
|
||||
linksToSkip: >-
|
||||
^https://github.com/apache/(superset|incubator-superset)/(pull|issue)/\d+,
|
||||
http://localhost:8088/,
|
||||
docker/.env-non-dev,
|
||||
http://127.0.0.1:3000/,
|
||||
http://localhost:9001/,
|
||||
https://charts.bitnami.com/bitnami,
|
||||
@@ -39,9 +42,15 @@ jobs:
|
||||
https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html,
|
||||
^https://img\.shields\.io/.*,
|
||||
https://vkusvill.ru/
|
||||
https://www.linkedin.com/in/mark-thomas-b16751158/
|
||||
https://theiconic.com.au/
|
||||
https://wattbewerb.de/
|
||||
https://timbr.ai/
|
||||
https://opensource.org/license/apache-2-0
|
||||
https://www.plaidcloud.com/
|
||||
build-deploy:
|
||||
name: Build & Deploy
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
defaults:
|
||||
run:
|
||||
working-directory: docs
|
||||
|
||||
9
.github/workflows/superset-e2e.yml
vendored
9
.github/workflows/superset-e2e.yml
vendored
@@ -28,6 +28,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
cypress-matrix:
|
||||
# Somehow one test flakes on 24.04 for unknown reasons, this is the only GHA left on 22.04
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
@@ -48,7 +49,8 @@ jobs:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
REDIS_PORT: 16379
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
USE_DASHBOARD: ${{ github.event.inputs.use_dashboard || (github.ref == 'refs/heads/master' && 'true') || 'false' }}
|
||||
# use the dashboard feature when running manually OR merging to master
|
||||
USE_DASHBOARD: ${{ github.event.inputs.use_dashboard == 'true'|| (github.ref == 'refs/heads/master' && 'true') || 'false' }}
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
@@ -131,11 +133,12 @@ jobs:
|
||||
PARALLEL_ID: ${{ matrix.parallel_id }}
|
||||
PARALLELISM: 6
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
NODE_OPTIONS: "--max-old-space-size=4096"
|
||||
with:
|
||||
run: cypress-run-all ${{ env.USE_DASHBOARD }}
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
if: github.event_name == 'workflow_dispatch' && (steps.check.outputs.python || steps.check.outputs.frontend)
|
||||
if: failure()
|
||||
with:
|
||||
path: ${{ github.workspace }}/superset-frontend/cypress-base/cypress/screenshots
|
||||
name: cypress-artifact-${{ github.run_id }}-${{ github.job }}
|
||||
name: cypress-artifact-${{ github.run_id }}-${{ github.job }}-${{ matrix.browser }}-${{ matrix.parallel_id }}
|
||||
|
||||
201
.github/workflows/superset-frontend.yml
vendored
201
.github/workflows/superset-frontend.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Frontend
|
||||
name: "Frontend Build CI (unit tests, linting & sanity checks)"
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -13,73 +13,168 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
TAG: apache/superset:GHA-${{ github.run_id }}
|
||||
|
||||
jobs:
|
||||
frontend-build:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
should-run: ${{ steps.check.outputs.frontend }}
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: recursive
|
||||
- name: Check npm lock file version
|
||||
run: ./scripts/ci_check_npm_lock_version.sh ./superset-frontend/package-lock.json
|
||||
- name: Check for file changes
|
||||
|
||||
- name: Check for File Changes
|
||||
id: check
|
||||
uses: ./.github/actions/change-detector/
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Setup Node.js
|
||||
|
||||
- name: Build Docker Image
|
||||
if: steps.check.outputs.frontend
|
||||
uses: actions/setup-node@v4
|
||||
shell: bash
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
docker buildx build \
|
||||
-t $TAG \
|
||||
--cache-from=type=registry,ref=apache/superset-cache:3.10-slim-bookworm \
|
||||
--target superset-node-ci \
|
||||
.
|
||||
|
||||
- name: Save Docker Image as Artifact
|
||||
if: steps.check.outputs.frontend
|
||||
run: |
|
||||
docker save $TAG | gzip > docker-image.tar.gz
|
||||
|
||||
- name: Upload Docker Image Artifact
|
||||
if: steps.check.outputs.frontend
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
- name: Install dependencies
|
||||
if: steps.check.outputs.frontend
|
||||
uses: ./.github/actions/cached-dependencies
|
||||
name: docker-image
|
||||
path: docker-image.tar.gz
|
||||
|
||||
sharded-jest-tests:
|
||||
needs: frontend-build
|
||||
if: needs.frontend-build.outputs.should-run == 'true'
|
||||
strategy:
|
||||
matrix:
|
||||
shard: [1, 2, 3, 4, 5, 6, 7, 8]
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Download Docker Image Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
run: npm-install
|
||||
- name: eslint
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend
|
||||
name: docker-image
|
||||
|
||||
- name: Load Docker Image
|
||||
run: docker load < docker-image.tar.gz
|
||||
|
||||
- name: npm run test with coverage
|
||||
run: |
|
||||
npm run eslint -- . --quiet
|
||||
- name: tsc
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend
|
||||
run: |
|
||||
npm run type
|
||||
- name: prettier
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend
|
||||
run: |
|
||||
npm run prettier-check
|
||||
- name: Build plugins packages
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend
|
||||
run: npm run plugins:build
|
||||
- name: Build plugins Storybook
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend
|
||||
run: npm run plugins:build-storybook
|
||||
- name: superset-ui/core coverage
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend
|
||||
run: |
|
||||
npm run core:cover
|
||||
- name: unit tests
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend
|
||||
run: |
|
||||
npm run test -- --coverage --silent
|
||||
# todo: remove this step when fix generator as a project in root jest.config.js
|
||||
- name: generator-superset unit tests
|
||||
if: steps.check.outputs.frontend
|
||||
working-directory: ./superset-frontend/packages/generator-superset
|
||||
run: npm run test
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
mkdir -p ${{ github.workspace }}/superset-frontend/coverage
|
||||
docker run \
|
||||
-v ${{ github.workspace }}/superset-frontend/coverage:/app/superset-frontend/coverage \
|
||||
--rm $TAG \
|
||||
bash -c \
|
||||
"npm run test -- --coverage --shard=${{ matrix.shard }}/8 --coverageReporters=json-summary"
|
||||
|
||||
- name: Upload Coverage Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: coverage-artifacts-${{ matrix.shard }}
|
||||
path: superset-frontend/coverage
|
||||
|
||||
report-coverage:
|
||||
needs: [sharded-jest-tests]
|
||||
if: needs.frontend-build.outputs.should-run == 'true'
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Download Coverage Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
pattern: coverage-artifacts-*
|
||||
path: coverage/
|
||||
|
||||
- name: Show Files
|
||||
run: find coverage/
|
||||
|
||||
- name: Merge Code Coverage
|
||||
run: npx nyc merge coverage/ merged-output/coverage-summary.json
|
||||
|
||||
- name: Upload Code Coverage
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: javascript
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
verbose: true
|
||||
files: merged-output/coverage-summary.json
|
||||
slug: apache/superset
|
||||
|
||||
core-cover:
|
||||
needs: frontend-build
|
||||
if: needs.frontend-build.outputs.should-run == 'true'
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Download Docker Image Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: docker-image
|
||||
|
||||
- name: Load Docker Image
|
||||
run: docker load < docker-image.tar.gz
|
||||
|
||||
- name: superset-ui/core coverage
|
||||
run: |
|
||||
docker run --rm $TAG bash -c \
|
||||
"npm run core:cover"
|
||||
|
||||
lint-frontend:
|
||||
needs: frontend-build
|
||||
if: needs.frontend-build.outputs.should-run == 'true'
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Download Docker Image Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: docker-image
|
||||
|
||||
- name: Load Docker Image
|
||||
run: docker load < docker-image.tar.gz
|
||||
|
||||
- name: eslint
|
||||
run: |
|
||||
docker run --rm $TAG bash -c \
|
||||
"npm i && npm run eslint -- . --quiet"
|
||||
|
||||
- name: tsc
|
||||
run: |
|
||||
docker run --rm $TAG bash -c \
|
||||
"npm run type"
|
||||
|
||||
validate-frontend:
|
||||
needs: frontend-build
|
||||
if: needs.frontend-build.outputs.should-run == 'true'
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Download Docker Image Artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: docker-image
|
||||
|
||||
- name: Load Docker Image
|
||||
run: docker load < docker-image.tar.gz
|
||||
|
||||
- name: Build Plugins Packages
|
||||
run: |
|
||||
docker run --rm $TAG bash -c \
|
||||
"npm run plugins:build"
|
||||
|
||||
- name: Build Plugins Storybook
|
||||
run: |
|
||||
docker run --rm $TAG bash -c \
|
||||
"npm run plugins:build-storybook"
|
||||
|
||||
6
.github/workflows/superset-helm-lint.yml
vendored
6
.github/workflows/superset-helm-lint.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Lint and Test Charts
|
||||
name: "Helm: lint and test charts"
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
@@ -13,7 +13,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
lint-test:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Set up Helm
|
||||
uses: azure/setup-helm@v4
|
||||
with:
|
||||
version: v3.5.4
|
||||
version: v3.16.4
|
||||
|
||||
- name: Setup Python
|
||||
uses: ./.github/actions/setup-backend/
|
||||
|
||||
90
.github/workflows/superset-helm-release.yml
vendored
90
.github/workflows/superset-helm-release.yml
vendored
@@ -1,4 +1,8 @@
|
||||
name: Release Charts
|
||||
# This workflow automates the release process for Helm charts.
|
||||
# The workflow creates a new branch for the release and opens a pull request against the 'gh-pages' branch,
|
||||
# allowing the changes to be reviewed and merged manually.
|
||||
|
||||
name: "Helm: release charts"
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -7,18 +11,28 @@ on:
|
||||
- "[0-9].[0-9]*"
|
||||
paths:
|
||||
- "helm/**"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
ref:
|
||||
description: "The branch, tag, or commit SHA to check out"
|
||||
required: false
|
||||
default: "master"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ inputs.ref || github.ref_name }}
|
||||
persist-credentials: true
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -35,11 +49,77 @@ jobs:
|
||||
- name: Add bitnami repo dependency
|
||||
run: helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
|
||||
- name: Fetch/list all tags
|
||||
run: |
|
||||
# Debugging tags
|
||||
git fetch --tags --force
|
||||
git tag -d superset-helm-chart-0.13.4 || true
|
||||
echo "DEBUG TAGS"
|
||||
git show-ref --tags
|
||||
|
||||
- name: Create unique pages branch name
|
||||
id: vars
|
||||
run: echo "branch_name=helm-publish-${GITHUB_SHA:0:7}" >> $GITHUB_ENV
|
||||
|
||||
- name: Force recreate branch from gh-pages
|
||||
run: |
|
||||
# Ensure a clean working directory
|
||||
git reset --hard
|
||||
git clean -fdx
|
||||
git checkout -b local_gha_temp
|
||||
git submodule update
|
||||
|
||||
# Fetch the latest gh-pages branch
|
||||
git fetch origin gh-pages
|
||||
|
||||
# Check out and reset the target branch based on gh-pages
|
||||
git checkout -B ${{ env.branch_name }} origin/gh-pages
|
||||
|
||||
# Remove submodules from the branch
|
||||
git submodule deinit -f --all
|
||||
|
||||
# Force push to the remote branch
|
||||
git push origin ${{ env.branch_name }} --force
|
||||
|
||||
# Return to the original branch
|
||||
git checkout local_gha_temp
|
||||
|
||||
- name: Fetch/list all tags
|
||||
run: |
|
||||
git submodule update
|
||||
cat .github/actions/chart-releaser-action/action.yml
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.6.0
|
||||
uses: ./.github/actions/chart-releaser-action
|
||||
with:
|
||||
version: v1.6.0
|
||||
charts_dir: helm
|
||||
mark_as_latest: false
|
||||
pages_branch: ${{ env.branch_name }}
|
||||
env:
|
||||
CR_TOKEN: "${{ github.token }}"
|
||||
CR_RELEASE_NAME_TEMPLATE: "superset-helm-chart-{{ .Version }}"
|
||||
|
||||
- name: Open Pull Request
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const branchName = '${{ env.branch_name }}';
|
||||
const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');
|
||||
|
||||
if (!branchName) {
|
||||
throw new Error("Branch name is not defined.");
|
||||
}
|
||||
|
||||
const pr = await github.rest.pulls.create({
|
||||
owner,
|
||||
repo,
|
||||
title: `Helm chart release for ${branchName}`,
|
||||
head: branchName,
|
||||
base: "gh-pages", // Adjust if the target branch is different
|
||||
body: `This PR releases Helm charts to the gh-pages branch.`,
|
||||
});
|
||||
|
||||
core.info(`Pull request created: ${pr.data.html_url}`);
|
||||
env:
|
||||
BRANCH_NAME: ${{ env.branch_name }}
|
||||
|
||||
@@ -15,7 +15,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
test-mysql:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||
@@ -68,16 +68,16 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,mysql
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
verbose: true
|
||||
test-postgres:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["current", "next", "previous"]
|
||||
python-version: ["current", "previous"]
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||
@@ -129,14 +129,14 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,postgres
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
verbose: true
|
||||
|
||||
test-sqlite:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||
@@ -181,7 +181,7 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,sqlite
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@@ -16,7 +16,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
test-postgres-presto:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||
@@ -77,14 +77,14 @@ jobs:
|
||||
run: |
|
||||
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,presto
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
verbose: true
|
||||
|
||||
test-postgres-hive:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||
@@ -142,9 +142,10 @@ jobs:
|
||||
- name: Python unit tests (PostgreSQL)
|
||||
if: steps.check.outputs.python
|
||||
run: |
|
||||
pip install -e .[hive]
|
||||
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,hive
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@@ -16,10 +16,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
unit-tests:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["current", "next"]
|
||||
python-version: ["previous", "current"]
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
steps:
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
run: |
|
||||
pytest --durations-min=0.5 --cov-report= --cov=superset ./tests/common ./tests/unit_tests --cache-clear
|
||||
- name: Upload code coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
flags: python,unit
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
4
.github/workflows/superset-translations.yml
vendored
4
.github/workflows/superset-translations.yml
vendored
@@ -15,7 +15,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
frontend-check-translations:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
npm run build-translation
|
||||
|
||||
babel-extract:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
2
.github/workflows/superset-websocket.yml
vendored
2
.github/workflows/superset-websocket.yml
vendored
@@ -18,7 +18,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
app-checks:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
2
.github/workflows/supersetbot.yml
vendored
2
.github/workflows/supersetbot.yml
vendored
@@ -15,7 +15,7 @@ on:
|
||||
|
||||
jobs:
|
||||
supersetbot:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
if: >
|
||||
github.event_name == 'workflow_dispatch' ||
|
||||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@supersetbot'))
|
||||
|
||||
29
.github/workflows/tag-release.yml
vendored
29
.github/workflows/tag-release.yml
vendored
@@ -23,7 +23,7 @@ on:
|
||||
- 'false'
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -39,23 +39,26 @@ jobs:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
name: docker-release
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
matrix:
|
||||
build_preset: ["dev", "lean", "py310", "websocket", "dockerize"]
|
||||
build_preset: ["dev", "lean", "py310", "websocket", "dockerize", "py311"]
|
||||
fail-fast: false
|
||||
steps:
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Docker Environment
|
||||
uses: ./.github/actions/setup-docker
|
||||
with:
|
||||
dockerhub-user: ${{ secrets.DOCKERHUB_USER }}
|
||||
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
install-docker-compose: "false"
|
||||
build: "true"
|
||||
|
||||
- name: Use Node.js 20
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
@@ -64,13 +67,6 @@ jobs:
|
||||
- name: Setup supersetbot
|
||||
uses: ./.github/actions/setup-supersetbot/
|
||||
|
||||
- name: Try to login to DockerHub
|
||||
continue-on-error: true
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Execute custom Node.js script
|
||||
env:
|
||||
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
|
||||
@@ -91,6 +87,7 @@ jobs:
|
||||
fi
|
||||
|
||||
supersetbot docker \
|
||||
--push \
|
||||
--preset ${{ matrix.build_preset }} \
|
||||
--context "$EVENT" \
|
||||
--context-ref "$RELEASE" $FORCE_LATEST \
|
||||
@@ -103,7 +100,7 @@ jobs:
|
||||
update-prs-with-release-info:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
4
.github/workflows/tech-debt.yml
vendored
4
.github/workflows/tech-debt.yml
vendored
@@ -8,7 +8,7 @@ on:
|
||||
|
||||
jobs:
|
||||
config:
|
||||
runs-on: "ubuntu-22.04"
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
has-secrets: ${{ steps.check.outputs.has-secrets }}
|
||||
steps:
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
process-and-upload:
|
||||
needs: config
|
||||
if: needs.config.outputs.has-secrets
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
name: Generate Reports
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
|
||||
2
.github/workflows/welcome-new-users.yml
vendored
2
.github/workflows/welcome-new-users.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
|
||||
jobs:
|
||||
welcome:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -50,7 +50,6 @@ env
|
||||
venv*
|
||||
env_py3
|
||||
envpy3
|
||||
env36
|
||||
local_config.py
|
||||
/superset_config.py
|
||||
/superset_text.yml
|
||||
@@ -66,7 +65,10 @@ superset-websocket/config.json
|
||||
*.js.map
|
||||
node_modules
|
||||
npm-debug.log*
|
||||
superset/static/assets
|
||||
superset/static/assets/*
|
||||
!superset/static/assets/.gitkeep
|
||||
superset/static/uploads/*
|
||||
!superset/static/uploads/.gitkeep
|
||||
superset/static/version_info.json
|
||||
superset-frontend/**/esm/*
|
||||
superset-frontend/**/lib/*
|
||||
@@ -122,3 +124,4 @@ docker/*local*
|
||||
# Jest test report
|
||||
test-report.html
|
||||
superset/static/stats/statistics.html
|
||||
.aider*
|
||||
|
||||
@@ -16,11 +16,11 @@
|
||||
#
|
||||
repos:
|
||||
- repo: https://github.com/MarcoGorelli/auto-walrus
|
||||
rev: v0.2.2
|
||||
rev: 0.3.4
|
||||
hooks:
|
||||
- id: auto-walrus
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: v1.3.0
|
||||
rev: v1.13.0
|
||||
hooks:
|
||||
- id: mypy
|
||||
args: [--check-untyped-defs]
|
||||
@@ -38,30 +38,36 @@ repos:
|
||||
types-paramiko,
|
||||
types-Markdown,
|
||||
]
|
||||
- repo: https://github.com/peterdemin/pip-compile-multi
|
||||
rev: v2.6.2
|
||||
hooks:
|
||||
- id: pip-compile-multi-verify
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.4.0
|
||||
rev: v5.0.0
|
||||
hooks:
|
||||
- id: check-docstring-first
|
||||
- id: check-added-large-files
|
||||
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*
|
||||
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*|^superset-frontend/CHANGELOG\.md$
|
||||
- id: check-yaml
|
||||
exclude: ^helm/superset/templates/
|
||||
- id: debug-statements
|
||||
- id: end-of-file-fixer
|
||||
exclude: .*/lerna\.json$
|
||||
- id: trailing-whitespace
|
||||
exclude: ^.*\.(snap)
|
||||
args: ["--markdown-linebreak-ext=md"]
|
||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||
rev: v3.1.0 # Use the sha or tag you want to point at
|
||||
rev: v4.0.0-alpha.8 # Use the sha or tag you want to point at
|
||||
hooks:
|
||||
- id: prettier
|
||||
additional_dependencies:
|
||||
- prettier@3.3.3
|
||||
args: ["--ignore-path=./superset-frontend/.prettierignore"]
|
||||
files: "superset-frontend"
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: eslint
|
||||
name: eslint
|
||||
entry: bash -c 'cd superset-frontend && npm run eslint -- $(echo "$@" | sed "s|superset-frontend/||g")'
|
||||
language: system
|
||||
pass_filenames: true
|
||||
files: \.(js|jsx|ts|tsx)$
|
||||
# blacklist unsafe functions like make_url (see #19526)
|
||||
- repo: https://github.com/skorokithakis/blacklist-pre-commit-hook
|
||||
rev: e2f070289d8eddcaec0b580d3bde29437e7c8221
|
||||
@@ -69,27 +75,13 @@ repos:
|
||||
- id: blacklist
|
||||
args: ["--blacklisted-names=make_url", "--ignore=tests/"]
|
||||
- repo: https://github.com/norwoodj/helm-docs
|
||||
rev: v1.11.0
|
||||
rev: v1.14.2
|
||||
hooks:
|
||||
- id: helm-docs
|
||||
files: helm
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: v0.4.0
|
||||
rev: v0.8.0
|
||||
hooks:
|
||||
- id: ruff
|
||||
args: [ --fix ]
|
||||
- id: ruff-format
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: pylint
|
||||
name: pylint
|
||||
entry: pylint
|
||||
language: system
|
||||
types: [python]
|
||||
exclude: ^(tests/|superset/migrations/|scripts/|RELEASING/|docker/)
|
||||
args:
|
||||
[
|
||||
"-rn", # Only display messages
|
||||
"-sn", # Don't display the score
|
||||
"--rcfile=.pylintrc",
|
||||
]
|
||||
|
||||
380
.pylintrc
380
.pylintrc
@@ -1,380 +0,0 @@
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
[MASTER]
|
||||
|
||||
# Specify a configuration file.
|
||||
#rcfile=
|
||||
|
||||
# Python code to execute, usually for sys.path manipulation such as
|
||||
# pygtk.require().
|
||||
#init-hook=
|
||||
|
||||
# Add files or directories to the blacklist. They should be base names, not
|
||||
# paths.
|
||||
ignore=CVS,migrations
|
||||
|
||||
# Add files or directories matching the regex patterns to the blacklist. The
|
||||
# regex matches against base names, not paths.
|
||||
ignore-patterns=
|
||||
|
||||
# Pickle collected data for later comparisons.
|
||||
persistent=yes
|
||||
|
||||
# List of plugins (as comma separated values of python modules names) to load,
|
||||
# usually to register additional checkers.
|
||||
load-plugins=superset.extensions.pylint
|
||||
|
||||
# Use multiple processes to speed up Pylint.
|
||||
jobs=2
|
||||
|
||||
# Allow loading of arbitrary C extensions. Extensions are imported into the
|
||||
# active Python interpreter and may run arbitrary code.
|
||||
unsafe-load-any-extension=no
|
||||
|
||||
# A comma-separated list of package or module names from where C extensions may
|
||||
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||
# run arbitrary code
|
||||
extension-pkg-whitelist=pyarrow
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Only show warnings with the listed confidence levels. Leave empty to show
|
||||
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
|
||||
confidence=
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
# either give multiple identifier separated by comma (,) or put this option
|
||||
# multiple time (only on the command line, not in the configuration file where
|
||||
# it should appear only once). See also the "--disable" option for examples.
|
||||
enable=
|
||||
useless-suppression,
|
||||
|
||||
# Disable the message, report, category or checker with the given id(s). You
|
||||
# can either give multiple identifiers separated by comma (,) or put this
|
||||
# option multiple times (only on the command line, not in the configuration
|
||||
# file where it should appear only once).You can also use "--disable=all" to
|
||||
# disable everything first and then reenable specific checks. For example, if
|
||||
# you want to run only the similarities checker, you can use "--disable=all
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use"--disable=all --enable=classes
|
||||
# --disable=W"
|
||||
disable=
|
||||
cyclic-import, # re-enable once this no longer raises false positives
|
||||
missing-docstring,
|
||||
duplicate-code,
|
||||
line-too-long,
|
||||
unspecified-encoding,
|
||||
too-many-instance-attributes # re-enable once this no longer raises false positives
|
||||
|
||||
[REPORTS]
|
||||
|
||||
# Set the output format. Available formats are text, parseable, colorized, msvs
|
||||
# (visual studio) and html. You can also give a reporter class, eg
|
||||
# mypackage.mymodule.MyReporterClass.
|
||||
output-format=text
|
||||
|
||||
# Tells whether to display a full report or only the messages
|
||||
reports=yes
|
||||
|
||||
# Python expression which should return a note less than 10 (10 is the highest
|
||||
# note). You have access to the variables errors warning, statement which
|
||||
# respectively contain the number of errors / warnings messages and the total
|
||||
# number of statements analyzed. This is used by the global evaluation report
|
||||
# (RP0004).
|
||||
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
|
||||
|
||||
# Template used to display messages. This is a python new-style format string
|
||||
# used to format the message information. See doc for all details
|
||||
#msg-template=
|
||||
|
||||
|
||||
[BASIC]
|
||||
|
||||
# Good variable names which should always be accepted, separated by a comma
|
||||
good-names=_,df,ex,f,i,id,j,k,l,o,pk,Run,ts,v,x,y
|
||||
|
||||
# Bad variable names which should always be refused, separated by a comma
|
||||
bad-names=bar,baz,db,fd,foo,sesh,session,tata,toto,tutu
|
||||
|
||||
# Colon-delimited sets of names that determine each other's naming style when
|
||||
# the name regexes allow several styles.
|
||||
name-group=
|
||||
|
||||
# Include a hint for the correct naming format with invalid-name
|
||||
include-naming-hint=no
|
||||
|
||||
# List of decorators that produce properties, such as abc.abstractproperty. Add
|
||||
# to this list to register other decorators that produce valid properties.
|
||||
property-classes=
|
||||
abc.abstractproperty,
|
||||
sqlalchemy.ext.hybrid.hybrid_property
|
||||
|
||||
# Regular expression matching correct argument names
|
||||
argument-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct method names
|
||||
method-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct variable names
|
||||
variable-rgx=[a-z_][a-z0-9_]{1,30}$
|
||||
|
||||
# Regular expression matching correct inline iteration names
|
||||
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
|
||||
|
||||
# Regular expression matching correct constant names
|
||||
const-rgx=(([A-Za-z_][A-Za-z0-9_]*)|(__.*__))$
|
||||
|
||||
# Regular expression matching correct class names
|
||||
class-rgx=[A-Z_][a-zA-Z0-9]+$
|
||||
|
||||
# Regular expression matching correct class attribute names
|
||||
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
|
||||
|
||||
# Regular expression matching correct module names
|
||||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
||||
|
||||
# Regular expression matching correct attribute names
|
||||
attr-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct function names
|
||||
function-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression which should only match function or class names that do
|
||||
# not require a docstring.
|
||||
no-docstring-rgx=^_
|
||||
|
||||
# Minimum line length for functions/classes that require docstrings, shorter
|
||||
# ones are exempt.
|
||||
docstring-min-length=10
|
||||
|
||||
|
||||
[ELIF]
|
||||
|
||||
# Maximum number of nested blocks for function / method body
|
||||
max-nested-blocks=5
|
||||
|
||||
|
||||
[FORMAT]
|
||||
|
||||
# Maximum number of characters on a single line.
|
||||
max-line-length=100
|
||||
|
||||
# Regexp for a line that is allowed to be longer than the limit.
|
||||
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
|
||||
|
||||
# Allow the body of an if to be on the same line as the test if there is no
|
||||
# else.
|
||||
single-line-if-stmt=no
|
||||
|
||||
# Maximum number of lines in a module
|
||||
max-module-lines=1000
|
||||
|
||||
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
|
||||
# tab).
|
||||
indent-string=' '
|
||||
|
||||
# Number of spaces of indent required inside a hanging or continued line.
|
||||
indent-after-paren=4
|
||||
|
||||
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
|
||||
expected-line-ending-format=
|
||||
|
||||
|
||||
[LOGGING]
|
||||
|
||||
# Logging modules to check that the string format arguments are in logging
|
||||
# function parameter format
|
||||
logging-modules=logging
|
||||
|
||||
|
||||
[MISCELLANEOUS]
|
||||
|
||||
# List of note tags to take in consideration, separated by a comma.
|
||||
notes=FIXME,XXX
|
||||
|
||||
|
||||
[SIMILARITIES]
|
||||
|
||||
# Minimum lines number of a similarity.
|
||||
min-similarity-lines=5
|
||||
|
||||
# Ignore comments when computing similarities.
|
||||
ignore-comments=yes
|
||||
|
||||
# Ignore docstrings when computing similarities.
|
||||
ignore-docstrings=yes
|
||||
|
||||
# Ignore imports when computing similarities.
|
||||
ignore-imports=no
|
||||
|
||||
|
||||
[SPELLING]
|
||||
|
||||
# Spelling dictionary name. Available dictionaries: none. To make it working
|
||||
# install python-enchant package.
|
||||
spelling-dict=
|
||||
|
||||
# List of comma separated words that should not be checked.
|
||||
spelling-ignore-words=
|
||||
|
||||
# A path to a file that contains private dictionary; one word per line.
|
||||
spelling-private-dict-file=
|
||||
|
||||
# Tells whether to store unknown words to indicated private dictionary in
|
||||
# --spelling-private-dict-file option instead of raising a message.
|
||||
spelling-store-unknown-words=no
|
||||
|
||||
|
||||
[TYPECHECK]
|
||||
|
||||
# Tells whether missing members accessed in mixin class should be ignored. A
|
||||
# mixin class is detected if its name ends with "mixin" (case insensitive).
|
||||
ignore-mixin-members=yes
|
||||
|
||||
# List of module names for which member attributes should not be checked
|
||||
# (useful for modules/projects where namespaces are manipulated during runtime
|
||||
# and thus existing member attributes cannot be deduced by static analysis. It
|
||||
# supports qualified module names, as well as Unix pattern matching.
|
||||
ignored-modules=numpy,pandas,alembic.op,sqlalchemy,alembic.context,flask_appbuilder.security.sqla.PermissionView.role,flask_appbuilder.Model.metadata,flask_appbuilder.Base.metadata
|
||||
|
||||
# List of class names for which member attributes should not be checked (useful
|
||||
# for classes with dynamically set attributes). This supports the use of
|
||||
# qualified names.
|
||||
ignored-classes=contextlib.closing,optparse.Values,thread._local,_thread._local
|
||||
|
||||
# List of members which are set dynamically and missed by pylint inference
|
||||
# system, and so shouldn't trigger E1101 when accessed. Python regular
|
||||
# expressions are accepted.
|
||||
generated-members=
|
||||
|
||||
# List of decorators that produce context managers, such as
|
||||
# contextlib.contextmanager. Add to this list to register other decorators that
|
||||
# produce valid context managers.
|
||||
contextmanager-decorators=contextlib.contextmanager
|
||||
|
||||
|
||||
[VARIABLES]
|
||||
|
||||
# Tells whether we should check for unused import in __init__ files.
|
||||
init-import=no
|
||||
|
||||
# A regular expression matching the name of dummy variables (i.e. expectedly
|
||||
# not used).
|
||||
dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy
|
||||
|
||||
# List of additional names supposed to be defined in builtins. Remember that
|
||||
# you should avoid to define new builtins when possible.
|
||||
additional-builtins=
|
||||
|
||||
# List of strings which can identify a callback function by name. A callback
|
||||
# name must start or end with one of those strings.
|
||||
callbacks=cb_,_cb
|
||||
|
||||
# List of qualified module names which can have objects that can redefine
|
||||
# builtins.
|
||||
redefining-builtins-modules=six.moves,future.builtins
|
||||
|
||||
|
||||
[CLASSES]
|
||||
|
||||
# List of method names used to declare (i.e. assign) instance attributes.
|
||||
defining-attr-methods=__init__,__new__,setUp
|
||||
|
||||
# List of valid names for the first argument in a class method.
|
||||
valid-classmethod-first-arg=cls
|
||||
|
||||
# List of valid names for the first argument in a metaclass class method.
|
||||
valid-metaclass-classmethod-first-arg=mcs
|
||||
|
||||
# List of member names, which should be excluded from the protected access
|
||||
# warning.
|
||||
exclude-protected=_asdict,_fields,_replace,_source,_make
|
||||
|
||||
|
||||
[DESIGN]
|
||||
|
||||
# Maximum number of arguments for function / method
|
||||
max-args=5
|
||||
|
||||
# Argument names that match this expression will be ignored. Default to name
|
||||
# with leading underscore
|
||||
ignored-argument-names=_.*
|
||||
|
||||
# Maximum number of locals for function / method body
|
||||
max-locals=15
|
||||
|
||||
# Maximum number of return / yield for function / method body
|
||||
max-returns=10
|
||||
|
||||
# Maximum number of branch for function / method body
|
||||
max-branches=15
|
||||
|
||||
# Maximum number of statements in function / method body
|
||||
max-statements=50
|
||||
|
||||
# Maximum number of parents for a class (see R0901).
|
||||
max-parents=7
|
||||
|
||||
# Maximum number of attributes for a class (see R0902).
|
||||
max-attributes=8
|
||||
|
||||
# Minimum number of public methods for a class (see R0903).
|
||||
min-public-methods=2
|
||||
|
||||
# Maximum number of public methods for a class (see R0904).
|
||||
max-public-methods=20
|
||||
|
||||
# Maximum number of boolean expressions in a if statement
|
||||
max-bool-expr=5
|
||||
|
||||
|
||||
[IMPORTS]
|
||||
|
||||
# Deprecated modules which should not be used, separated by a comma
|
||||
deprecated-modules=optparse
|
||||
|
||||
# Create a graph of every (i.e. internal and external) dependencies in the
|
||||
# given file (report RP0402 must not be disabled)
|
||||
import-graph=
|
||||
|
||||
# Create a graph of external dependencies in the given file (report RP0402 must
|
||||
# not be disabled)
|
||||
ext-import-graph=
|
||||
|
||||
# Create a graph of internal dependencies in the given file (report RP0402 must
|
||||
# not be disabled)
|
||||
int-import-graph=
|
||||
|
||||
# Force import order to recognize a module as part of the standard
|
||||
# compatibility libraries.
|
||||
known-standard-library=
|
||||
|
||||
# Force import order to recognize a module as part of a third party library.
|
||||
known-third-party=enchant
|
||||
|
||||
# Analyse import fallback blocks. This can be used to support both Python 2 and
|
||||
# 3 compatible code, which means that the block might have code that exists
|
||||
# only in one or another interpreter, leading to false positives when analysed.
|
||||
analyse-fallback-blocks=no
|
||||
|
||||
|
||||
[EXCEPTIONS]
|
||||
|
||||
# Exceptions that will emit a warning when being caught. Defaults to
|
||||
# "Exception"
|
||||
overgeneral-exceptions=builtins.Exception
|
||||
@@ -61,12 +61,16 @@ tsconfig.tsbuildinfo
|
||||
generator-superset/*
|
||||
temporary_superset_ui/*
|
||||
|
||||
# skip license checks for auto-generated test snapshots
|
||||
.*snap
|
||||
|
||||
# docs overrides for third party logos we don't have the rights to
|
||||
google-big-query.svg
|
||||
google-sheets.svg
|
||||
ibm-db2.svg
|
||||
postgresql.svg
|
||||
snowflake.svg
|
||||
ydb.svg
|
||||
|
||||
# docs-related
|
||||
erd.puml
|
||||
|
||||
@@ -43,3 +43,5 @@ under the License.
|
||||
- [4.0.0](./CHANGELOG/4.0.0.md)
|
||||
- [4.0.1](./CHANGELOG/4.0.1.md)
|
||||
- [4.0.2](./CHANGELOG/4.0.2.md)
|
||||
- [4.1.0](./CHANGELOG/4.1.0.md)
|
||||
- [5.0.0](./CHANGELOG/5.0.0.md)
|
||||
|
||||
995
CHANGELOG/4.1.0.md
Normal file
995
CHANGELOG/4.1.0.md
Normal file
@@ -0,0 +1,995 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
## Change Log
|
||||
|
||||
### 4.1 (Fri Nov 1 15:24:51 2024 -0700)
|
||||
|
||||
**Database Migrations**
|
||||
|
||||
- [#30275](https://github.com/apache/superset/pull/30275) fix(migration): 87d38ad83218 failing on upgrade (@villebro)
|
||||
- [#30017](https://github.com/apache/superset/pull/30017) fix: pass if table is already removed on upgrade (@sadpandajoe)
|
||||
- [#30029](https://github.com/apache/superset/pull/30029) fix(migrations): Fix the time comparison migration (@Antonio-RiveroMartnez)
|
||||
- [#29625](https://github.com/apache/superset/pull/29625) fix: try to prevent deadlocks when running upgrade (@sadpandajoe)
|
||||
- [#29906](https://github.com/apache/superset/pull/29906) fix: Error when downgrading add_catalog_perm_to_tables migration (@michael-s-molina)
|
||||
- [#29799](https://github.com/apache/superset/pull/29799) fix: Downgrade of revision 678eefb4ab44 throws error (@michael-s-molina)
|
||||
- [#29166](https://github.com/apache/superset/pull/29166) chore: enable ruff lint rule TRY201 and B904 to improve `raise` stack traces (@mistercrunch)
|
||||
- [#28838](https://github.com/apache/superset/pull/28838) fix: Update downgrade path for migration to remove sl_tables (@sadpandajoe)
|
||||
- [#28704](https://github.com/apache/superset/pull/28704) chore: remove sl\_ tables (@mistercrunch)
|
||||
- [#28482](https://github.com/apache/superset/pull/28482) fix: Update migration logic in #27119 (@john-bodley)
|
||||
- [#28556](https://github.com/apache/superset/pull/28556) fix: db migration revision (@justinpark)
|
||||
- [#28416](https://github.com/apache/superset/pull/28416) feat: add support for catalogs (@betodealmeida)
|
||||
- [#27718](https://github.com/apache/superset/pull/27718) refactor(plugins): BigNumber Time Comparison with existing time_offset API (@Antonio-RiveroMartnez)
|
||||
- [#26327](https://github.com/apache/superset/pull/26327) feat: Customizable email subject name (@puridach-w)
|
||||
- [#28422](https://github.com/apache/superset/pull/28422) fix: Update migration logic in #27119 (@john-bodley)
|
||||
- [#28394](https://github.com/apache/superset/pull/28394) feat: catalog support for Databricks native (@betodealmeida)
|
||||
- [#28361](https://github.com/apache/superset/pull/28361) chore: fix master build by merging alembic migration heads (@mistercrunch)
|
||||
- [#27392](https://github.com/apache/superset/pull/27392) fix: Missing sql_editor_id index (@justinpark)
|
||||
- [#28317](https://github.com/apache/superset/pull/28317) feat(SIP-95): permissions for catalogs (@betodealmeida)
|
||||
- [#28192](https://github.com/apache/superset/pull/28192) feat: new Columnar upload form and API (@dpgaspar)
|
||||
- [#28267](https://github.com/apache/superset/pull/28267) chore: enable ruff's isort equivalent (@mistercrunch)
|
||||
- [#28122](https://github.com/apache/superset/pull/28122) feat(SIP-95): new endpoint for table metadata (@betodealmeida)
|
||||
- [#28158](https://github.com/apache/superset/pull/28158) chore: set up ruff as a new linter/formatter (@mistercrunch)
|
||||
- [#28105](https://github.com/apache/superset/pull/28105) feat: new Excel upload form and API (@dpgaspar)
|
||||
- [#28106](https://github.com/apache/superset/pull/28106) fix: db migrations on downgrade (@dpgaspar)
|
||||
- [#27849](https://github.com/apache/superset/pull/27849) feat: Slack Avatar integration (@mistercrunch)
|
||||
- [#27840](https://github.com/apache/superset/pull/27840) feat: new CSV upload form and API (@dpgaspar)
|
||||
- [#27631](https://github.com/apache/superset/pull/27631) feat(SIP-85): OAuth2 for databases (@betodealmeida)
|
||||
- [#27351](https://github.com/apache/superset/pull/27351) fix: Migration for single metric in Big Number with Time Comparison (@kgabryje)
|
||||
|
||||
**Features**
|
||||
|
||||
- [#30614](https://github.com/apache/superset/pull/30614) feat: use dialect when tokenizing (@betodealmeida)
|
||||
- [#30132](https://github.com/apache/superset/pull/30132) feat(embedded): add hook to allow superset admins to validate guest token parameters (@dmarkey)
|
||||
- [#29959](https://github.com/apache/superset/pull/29959) feat(sqllab): Add timeout on fetching query results (@justinpark)
|
||||
- [#30177](https://github.com/apache/superset/pull/30177) feat: `is_mutating` method (@betodealmeida)
|
||||
- [#29088](https://github.com/apache/superset/pull/29088) feat(alert/report): Added optional CC and BCC fields for email notifi… (@nsivarajan)
|
||||
- [#29264](https://github.com/apache/superset/pull/29264) feat: add slackv2 notification (@eschutho)
|
||||
- [#29584](https://github.com/apache/superset/pull/29584) feat(frontend/hooks): replace 3rd-party BroadcastChannel with native Web API equivalence (@hainenber)
|
||||
- [#29590](https://github.com/apache/superset/pull/29590) feat: custom values to sandbox iframe (@dacopan)
|
||||
- [#29419](https://github.com/apache/superset/pull/29419) feat(build): uplift Lerna + replace insecure shortid with nanoid + uplift Yeoman-related packages + ESM-ize generator-superset (@hainenber)
|
||||
- [#29225](https://github.com/apache/superset/pull/29225) feat: add connector for CouchbaseDB (@ayush33143314)
|
||||
- [#29408](https://github.com/apache/superset/pull/29408) feat(build): uplift Storybook to v8 (@hainenber)
|
||||
- [#29496](https://github.com/apache/superset/pull/29496) feat(database): Add OceanBase support (@yuanoOo)
|
||||
- [#29384](https://github.com/apache/superset/pull/29384) feat: add support to NOT LIKE operator (@dacopan)
|
||||
- [#29498](https://github.com/apache/superset/pull/29498) feat: Enable customizing the docker admin password (@c-w)
|
||||
- [#29187](https://github.com/apache/superset/pull/29187) feat(dashboard): add API endpoints for generating and downloading screenshots (@eulloa10)
|
||||
- [#27221](https://github.com/apache/superset/pull/27221) feat(CLI command): Apache Superset "Factory Reset" CLI command #27207 (@mknadh)
|
||||
- [#29328](https://github.com/apache/superset/pull/29328) feat: Add Ant Design 5 Theme (@geido)
|
||||
- [#29351](https://github.com/apache/superset/pull/29351) feat(e2e): implementing Cypress Dashboard on `master` branch merges (@rusackas)
|
||||
- [#29361](https://github.com/apache/superset/pull/29361) feat: Adds chart IDs option to migrate-viz (@michael-s-molina)
|
||||
- [#29329](https://github.com/apache/superset/pull/29329) feat: Adds the ECharts Sankey chart (@michael-s-molina)
|
||||
- [#29118](https://github.com/apache/superset/pull/29118) feat(build): uplift `Jest` to v29 (@hainenber)
|
||||
- [#29231](https://github.com/apache/superset/pull/29231) feat: add new SQLLAB_FORCE_RUN_ASYNC feature flag (@mistercrunch)
|
||||
- [#29123](https://github.com/apache/superset/pull/29123) feat(dashboard): Enables pivot table download option at dashboard level (@adimyth)
|
||||
- [#27962](https://github.com/apache/superset/pull/27962) feat: Dashboard tabs api endpoint (@fisjac)
|
||||
- [#29242](https://github.com/apache/superset/pull/29242) feat: Improves the Drill By feature (@michael-s-molina)
|
||||
- [#28057](https://github.com/apache/superset/pull/28057) feat(table): Table with Time Comparison (@Antonio-RiveroMartnez)
|
||||
- [#29241](https://github.com/apache/superset/pull/29241) feat: Support a dynamic minimum interval for alerts and reports (@Vitor-Avila)
|
||||
- [#29164](https://github.com/apache/superset/pull/29164) feat(trino): Add functionality to upload data (@john-bodley)
|
||||
- [#28774](https://github.com/apache/superset/pull/28774) feat(echarts-pie): add string template support for labels (@hexcafe)
|
||||
- [#24263](https://github.com/apache/superset/pull/24263) feat(formatters): Add custom d3-time-format locale (@matheusbsilva)
|
||||
- [#29109](https://github.com/apache/superset/pull/29109) feat: OAuth2 client initial work (@betodealmeida)
|
||||
- [#28637](https://github.com/apache/superset/pull/28637) feat: add Current time-range options for time filter (@pranav1699)
|
||||
- [#28780](https://github.com/apache/superset/pull/28780) feat: Adds Histogram chart migration logic (@michael-s-molina)
|
||||
- [#28762](https://github.com/apache/superset/pull/28762) feat(helm): allow removal of Node & Worker replicas for custom HPA solutions (@hanslemm)
|
||||
- [#28789](https://github.com/apache/superset/pull/28789) feat: Adds the Featured Charts dashboard (@michael-s-molina)
|
||||
- [#28652](https://github.com/apache/superset/pull/28652) feat: Adds the ECharts Histogram chart (@michael-s-molina)
|
||||
- [#28770](https://github.com/apache/superset/pull/28770) feat: impersonate with email prefix (@betodealmeida)
|
||||
- [#28483](https://github.com/apache/superset/pull/28483) feat: bake translations as part of the build processes (@mistercrunch)
|
||||
- [#27851](https://github.com/apache/superset/pull/27851) feat(reports): allowing the email mutator to update recipients (@SkinnyPigeon)
|
||||
- [#28597](https://github.com/apache/superset/pull/28597) feat: add Nightingale chart support for echarts pie chart (@hexcafe)
|
||||
- [#28602](https://github.com/apache/superset/pull/28602) feat: Adds Bar chart migration logic (@michael-s-molina)
|
||||
- [#28521](https://github.com/apache/superset/pull/28521) feat: unpack payload into log function (@mistercrunch)
|
||||
- [#28629](https://github.com/apache/superset/pull/28629) feat: Data Zoom scrolls using the mouse (mark II) (@hughhhh)
|
||||
- [#28265](https://github.com/apache/superset/pull/28265) feat(maps): Adding ALL the countries to the Country Map plugin! 🌎 (@rusackas)
|
||||
- [#27857](https://github.com/apache/superset/pull/27857) feat(dashboard): Add metadata bar to the header (@justinpark)
|
||||
- [#28425](https://github.com/apache/superset/pull/28425) feat: clarify that 'Text' supports markdown (@mistercrunch)
|
||||
- [#27995](https://github.com/apache/superset/pull/27995) feat(explore): Color scheme groups, new color schemes (@kgabryje)
|
||||
- [#28376](https://github.com/apache/superset/pull/28376) feat(SIP-95): catalogs in SQL Lab and datasets (@betodealmeida)
|
||||
- [#28176](https://github.com/apache/superset/pull/28176) feat(reports): Set a minimum interval for each report's execution (@Vitor-Avila)
|
||||
- [#27950](https://github.com/apache/superset/pull/27950) feat: Utility function to render chart tooltips (@michael-s-molina)
|
||||
- [#28345](https://github.com/apache/superset/pull/28345) feat(docs): uplift Docusaurus to v3 (@hainenber)
|
||||
- [#28282](https://github.com/apache/superset/pull/28282) feat: accelerate webpack builds with filesystem cache (@mistercrunch)
|
||||
- [#28035](https://github.com/apache/superset/pull/28035) feat: Add Czech Republic country map. (@martinspudich)
|
||||
- [#27933](https://github.com/apache/superset/pull/27933) feat(country-map): Adds Philippines regional map and updates/cleans existing Philippines provincial map (@jdruii)
|
||||
- [#28169](https://github.com/apache/superset/pull/28169) feat(translations): Traditional Chinese translation files added (@bestlong)
|
||||
- [#24449](https://github.com/apache/superset/pull/24449) feat: custom refresh frequency (@Abhishek-kumar-samsung)
|
||||
- [#27943](https://github.com/apache/superset/pull/27943) feat: improve event logging for queries + refactor (@mistercrunch)
|
||||
- [#28107](https://github.com/apache/superset/pull/28107) feat: label PR with release tags (@mistercrunch)
|
||||
- [#28063](https://github.com/apache/superset/pull/28063) feat(SIP-95): new endpoint for extra table metadata (@betodealmeida)
|
||||
- [#27908](https://github.com/apache/superset/pull/27908) feat(dbview): Add token request button to DuckDB and MotherDuck database modal (@guenp)
|
||||
- [#27953](https://github.com/apache/superset/pull/27953) feat: optimize docker-compose up for faster boot time (@mistercrunch)
|
||||
- [#27969](https://github.com/apache/superset/pull/27969) feat: add option to disable rendering of html in sql lab and table chart (@soniagtm)
|
||||
- [#27773](https://github.com/apache/superset/pull/27773) feat(alert report tabs): adding feature flag (@fisjac)
|
||||
- [#27863](https://github.com/apache/superset/pull/27863) feat: GHA to bump python packages using supersetbot (@mistercrunch)
|
||||
- [#27788](https://github.com/apache/superset/pull/27788) feat(explore): Clear temporal filter value (@kgabryje)
|
||||
- [#26138](https://github.com/apache/superset/pull/26138) feat(accessibility): add tabbing to chart menu in dashboard (@eschutho)
|
||||
- [#27708](https://github.com/apache/superset/pull/27708) feat(viz picker): Remove some tags, refactor Recommended section (@kgabryje)
|
||||
- [#27647](https://github.com/apache/superset/pull/27647) feat: move supersetbot out of repo (@mistercrunch)
|
||||
- [#27859](https://github.com/apache/superset/pull/27859) feat: setup a pyproject.toml (@mistercrunch)
|
||||
- [#27847](https://github.com/apache/superset/pull/27847) feat(db): Adding DB_SQLA_URI_VALIDATOR (@craig-rueda)
|
||||
- [#27771](https://github.com/apache/superset/pull/27771) feat: Adds Heatmap chart migration logic (@michael-s-molina)
|
||||
- [#27665](https://github.com/apache/superset/pull/27665) feat(db_engine): Add custom_user_agent when connecting to MotherDuck (@guenp)
|
||||
- [#25353](https://github.com/apache/superset/pull/25353) feat: Adds the ECharts Heatmap chart (@michael-s-molina)
|
||||
- [#27615](https://github.com/apache/superset/pull/27615) feat: use the local supersetbot (@mistercrunch)
|
||||
- [#27582](https://github.com/apache/superset/pull/27582) feat(jinja): metric macro (@Vitor-Avila)
|
||||
- [#27497](https://github.com/apache/superset/pull/27497) feat(alerts-reports): adding pdf filetype to email and slack reports (@fisjac)
|
||||
- [#27522](https://github.com/apache/superset/pull/27522) feat: support for KQL in `SQLScript` (@betodealmeida)
|
||||
- [#27589](https://github.com/apache/superset/pull/27589) feat(bar_chart): Stacked Bar chart with Time comparison in separated stacks (@Antonio-RiveroMartnez)
|
||||
- [#27536](https://github.com/apache/superset/pull/27536) feat: Adds option to disable drill to detail per database (@michael-s-molina)
|
||||
- [#27571](https://github.com/apache/superset/pull/27571) feat(supersetbot): label PRs and issues with author's public org (@mistercrunch)
|
||||
- [#27542](https://github.com/apache/superset/pull/27542) feat(maps): Add Italy regions code to the map generator notebook (@iskenderulgen)
|
||||
- [#27524](https://github.com/apache/superset/pull/27524) feat(plugins): add color options for big number with time comparison (@lilykuang)
|
||||
- [#27455](https://github.com/apache/superset/pull/27455) feat: Add Turkey's regions to country map visualization (@iskenderulgen)
|
||||
- [#27046](https://github.com/apache/superset/pull/27046) feat(supersetbot): introduce `supersetbot` as its own npm package, CLI and comment-operated bot (@mistercrunch)
|
||||
- [#27255](https://github.com/apache/superset/pull/27255) feat: show more information when loading chart (@betodealmeida)
|
||||
- [#27434](https://github.com/apache/superset/pull/27434) feat: docker-compose to work off repo Dockerfile (@mistercrunch)
|
||||
- [#27244](https://github.com/apache/superset/pull/27244) feat(translations): Turkish translation files added (@coteli)
|
||||
- [#27372](https://github.com/apache/superset/pull/27372) feat: Add repo activity stats to README.md (@rusackas)
|
||||
- [#27375](https://github.com/apache/superset/pull/27375) feat: Responsive UI for Big Number with Time Comparison (@kgabryje)
|
||||
- [#27370](https://github.com/apache/superset/pull/27370) feat: support to fetch multiple date time in time_range endpoint (@zhaoyongjie)
|
||||
- [#27368](https://github.com/apache/superset/pull/27368) feat: datediff in datetime_parser (@zhaoyongjie)
|
||||
- [#24408](https://github.com/apache/superset/pull/24408) feat(embedded-sdk): Add 'urlParams' option to pass query parameters to embedded dashboard (@grvoicu)
|
||||
- [#27298](https://github.com/apache/superset/pull/27298) feat(logs context): Adding dashboard id to logs context (@Vitor-Avila)
|
||||
- [#27197](https://github.com/apache/superset/pull/27197) feat(jinja): current_user_email macro (@Vitor-Avila)
|
||||
- [#27146](https://github.com/apache/superset/pull/27146) feat(ci): no more docker builds on PR-related events (@mistercrunch)
|
||||
- [#27193](https://github.com/apache/superset/pull/27193) feat: Use standardized controls in Big Number with Time Comparison (@kgabryje)
|
||||
- [#27176](https://github.com/apache/superset/pull/27176) feat(docs): Adds an "Edit this page on GitHub" button to docs pages (@rusackas)
|
||||
- [#27163](https://github.com/apache/superset/pull/27163) feat(helm): optionally set pod disruption budgets (@pradasouvanlasy)
|
||||
- [#27162](https://github.com/apache/superset/pull/27162) feat(adt): add 403 to api response status codes (@anirudh-hegde)
|
||||
|
||||
**Fixes**
|
||||
|
||||
- [#30819](https://github.com/apache/superset/pull/30819) fix(plugin-chart-echarts): sort tooltip correctly (@villebro)
|
||||
- [#30755](https://github.com/apache/superset/pull/30755) fix(Dashboard): Sync/Async Dashboard Screenshot Generation and Default Cache (@geido)
|
||||
- [#30773](https://github.com/apache/superset/pull/30773) fix: catalog migration w/o connection (@betodealmeida)
|
||||
- [#30429](https://github.com/apache/superset/pull/30429) fix: CI remove cypress command --headed (@mistercrunch)
|
||||
- [#30735](https://github.com/apache/superset/pull/30735) fix(Jinja): Extra cache keys for calculated columns and metrics using Jinja (@Vitor-Avila)
|
||||
- [#30699](https://github.com/apache/superset/pull/30699) fix: Nested transaction is inactive when embedding dashboard (@michael-s-molina)
|
||||
- [#30675](https://github.com/apache/superset/pull/30675) fix(dashboard): Include `urlParams` in the screenshot generation (@Vitor-Avila)
|
||||
- [#30715](https://github.com/apache/superset/pull/30715) fix(Jinja): Extra cache keys for Jinja columns (@geido)
|
||||
- [#30680](https://github.com/apache/superset/pull/30680) fix(chart): Table and page entries misaligned (@justinpark)
|
||||
- [#30348](https://github.com/apache/superset/pull/30348) fix(explore): Missing markarea component broke annotations in echarts (@kgabryje)
|
||||
- [#30628](https://github.com/apache/superset/pull/30628) fix: First item hovered on stacked bar (@michael-s-molina)
|
||||
- [#30617](https://github.com/apache/superset/pull/30617) fix(docs): address two linkinator failures (@sfirke)
|
||||
- [#30438](https://github.com/apache/superset/pull/30438) fix(Filters): Apply native & cross filters on common columns (@geido)
|
||||
- [#30581](https://github.com/apache/superset/pull/30581) fix(filters): Adds a fix for saving time range adhoc_filters (@ObservabilityTeam)
|
||||
- [#30578](https://github.com/apache/superset/pull/30578) fix: `sqlparse` fallback for formatting queries (@betodealmeida)
|
||||
- [#30565](https://github.com/apache/superset/pull/30565) fix: update html rendering to true from false (@sadpandajoe)
|
||||
- [#30202](https://github.com/apache/superset/pull/30202) fix: adhoc metrics (@betodealmeida)
|
||||
- [#30549](https://github.com/apache/superset/pull/30549) fix(Jinja): Extra cache keys to consider vars with set (@geido)
|
||||
- [#30425](https://github.com/apache/superset/pull/30425) fix(dashboard-export): Fixes datasetId is not replaced with datasetUuid in Dashboard export in 4.1.x (@fmannhardt)
|
||||
- [#30563](https://github.com/apache/superset/pull/30563) fix: Horizon Chart are not working any more (@michael-s-molina)
|
||||
- [#30564](https://github.com/apache/superset/pull/30564) fix: Incorrect type in config.py (@michael-s-molina)
|
||||
- [#30560](https://github.com/apache/superset/pull/30560) fix: Unable to parse escaped tables (@michael-s-molina)
|
||||
- [#30447](https://github.com/apache/superset/pull/30447) fix(explore): don't discard controls on deprecated (@justinpark)
|
||||
- [#30532](https://github.com/apache/superset/pull/30532) fix(migration): replace unquote with double percentages (@villebro)
|
||||
- [#30490](https://github.com/apache/superset/pull/30490) fix(Explore): Apply RLS at column values (@geido)
|
||||
- [#30503](https://github.com/apache/superset/pull/30503) fix(imports): Error when importing charts / dashboards with missing DB credentials (@fisjac)
|
||||
- [#30350](https://github.com/apache/superset/pull/30350) fix: don't reformat generated queries (@betodealmeida)
|
||||
- [#30502](https://github.com/apache/superset/pull/30502) fix: Open control with Simple tab selected when there is no column selected (@michael-s-molina)
|
||||
- [#30491](https://github.com/apache/superset/pull/30491) fix(embedded): sankey charts (@betodealmeida)
|
||||
- [#30416](https://github.com/apache/superset/pull/30416) fix: Histogram chart not able to use decimal datatype column (@michael-s-molina)
|
||||
- [#30405](https://github.com/apache/superset/pull/30405) fix: Incorrect hovered items in tooltips (@michael-s-molina)
|
||||
- [#30393](https://github.com/apache/superset/pull/30393) fix: Allows X-Axis Sort By for custom SQL (@michael-s-molina)
|
||||
- [#30389](https://github.com/apache/superset/pull/30389) fix: Pre-query normalization with custom SQL (@michael-s-molina)
|
||||
- [#30339](https://github.com/apache/superset/pull/30339) fix: KeyError 'sql' when opening a Trino virtual dataset (@michael-s-molina)
|
||||
- [#30335](https://github.com/apache/superset/pull/30335) fix(table): Use extras in queries (@Antonio-RiveroMartnez)
|
||||
- [#30272](https://github.com/apache/superset/pull/30272) fix(dashboard): Invalid owner's name displayed after updates (@justinpark)
|
||||
- [#30271](https://github.com/apache/superset/pull/30271) fix: unable to disallow csv upload on header menu (@justinpark)
|
||||
- [#30265](https://github.com/apache/superset/pull/30265) fix(Screenshot): Dashboard screenshot cache key to include state (@geido)
|
||||
- [#30252](https://github.com/apache/superset/pull/30252) fix(CrossFilters): Do not reload unrelated filters in global scope (@geido)
|
||||
- [#30215](https://github.com/apache/superset/pull/30215) fix(Fave): Charts and Dashboards fave/unfave do not commit transactions (@geido)
|
||||
- [#30222](https://github.com/apache/superset/pull/30222) fix(uploads): respect db engine spec's supports_multivalues_insert value for file uploads & enable multi-insert for MSSQL (@sfirke)
|
||||
- [#30180](https://github.com/apache/superset/pull/30180) fix: filters panel broken due to tabs scroll (@justinpark)
|
||||
- [#30224](https://github.com/apache/superset/pull/30224) fix(Celery): Pass guest_token as user context is not available in Celery (@geido)
|
||||
- [#30212](https://github.com/apache/superset/pull/30212) fix(Dashboard download): Download dashboard screenshot/PDF using SupersetClient (@Vitor-Avila)
|
||||
- [#30200](https://github.com/apache/superset/pull/30200) fix(Embedded): Dashboard screenshot should use GuestUser (@geido)
|
||||
- [#28706](https://github.com/apache/superset/pull/28706) fix: Chart cache-warmup task fails on Superset 4.0 (@rmasters)
|
||||
- [#30174](https://github.com/apache/superset/pull/30174) fix: set default mysql isolation level to 'READ COMMITTED' (@mistercrunch)
|
||||
- [#30176](https://github.com/apache/superset/pull/30176) fix: Disable cross filtering on charts with no dimensions (@kgabryje)
|
||||
- [#30060](https://github.com/apache/superset/pull/30060) fix: Delete modal button with lowercase text (@michael-s-molina)
|
||||
- [#30171](https://github.com/apache/superset/pull/30171) fix(sqllab): Skip AceEditor in inactive tabs (@justinpark)
|
||||
- [#30164](https://github.com/apache/superset/pull/30164) fix(native filter): undefined layout type on filterInScope (@justinpark)
|
||||
- [#30023](https://github.com/apache/superset/pull/30023) fix(plugins): display correct tooltip (fixes #3342) (@jonaschn)
|
||||
- [#30156](https://github.com/apache/superset/pull/30156) fix: FacePile is requesting avatars when SLACK_ENABLE_AVATARS is false (@michael-s-molina)
|
||||
- [#30154](https://github.com/apache/superset/pull/30154) fix(sqllab): race condition when updating cursor position (@justinpark)
|
||||
- [#30139](https://github.com/apache/superset/pull/30139) fix(catalog): Table Schema View with no catalog (@Antonio-RiveroMartnez)
|
||||
- [#30137](https://github.com/apache/superset/pull/30137) fix: New tooltip inappropriately combines series on mixed chart (@michael-s-molina)
|
||||
- [#30138](https://github.com/apache/superset/pull/30138) fix: JSON loading logs (@michael-s-molina)
|
||||
- [#30140](https://github.com/apache/superset/pull/30140) fix: DeckGL legend layout (@michael-s-molina)
|
||||
- [#30077](https://github.com/apache/superset/pull/30077) fix(accessibility): logo outline on tab navigation, but not on click (@rusackas)
|
||||
- [#30042](https://github.com/apache/superset/pull/30042) fix: use StrEnum type for GuestTokenResourceType to fix token parsing (@hao-zhuventures)
|
||||
- [#30073](https://github.com/apache/superset/pull/30073) fix: When hovering Drill By the dashboard is scrolled to the top (@michael-s-molina)
|
||||
- [#30074](https://github.com/apache/superset/pull/30074) fix: Retrieving Slack channels when Slack is disabled (@michael-s-molina)
|
||||
- [#30019](https://github.com/apache/superset/pull/30019) fix: Partition calls from Jinja context (@michael-s-molina)
|
||||
- [#30025](https://github.com/apache/superset/pull/30025) fix: Dashboard list row height does not match other lists (@michael-s-molina)
|
||||
- [#30020](https://github.com/apache/superset/pull/30020) fix(user-dao): return user model instances (@villebro)
|
||||
- [#29989](https://github.com/apache/superset/pull/29989) fix(screenshots): dashboard screenshots do not capture filter state (@fisjac)
|
||||
- [#27229](https://github.com/apache/superset/pull/27229) fix: set columns numeric datatypes when exporting to excel (@squalou)
|
||||
- [#29997](https://github.com/apache/superset/pull/29997) fix(trino): handle missing db in migration (@villebro)
|
||||
- [#29687](https://github.com/apache/superset/pull/29687) fix: Gamma users shouldn't be able to create roles (@hughhhh)
|
||||
- [#29884](https://github.com/apache/superset/pull/29884) fix: Security manager incorrect calls (@michael-s-molina)
|
||||
- [#29993](https://github.com/apache/superset/pull/29993) fix: Duplicated example dataset (@michael-s-molina)
|
||||
- [#29981](https://github.com/apache/superset/pull/29981) fix: trino thread app missing full context (@dpgaspar)
|
||||
- [#29978](https://github.com/apache/superset/pull/29978) fix(sqllab): flaky json explore modal due to shallow equality checks for extra data (@justinpark)
|
||||
- [#29830](https://github.com/apache/superset/pull/29830) fix(ci): remove unused "type: ignore" comment to unblock precommit check in CI (@hainenber)
|
||||
- [#29956](https://github.com/apache/superset/pull/29956) fix(sqllab): Add abort call on query refresh timeout (@justinpark)
|
||||
- [#29860](https://github.com/apache/superset/pull/29860) fix: upgrade_catalog_perms and downgrade_catalog_perms implementation (@michael-s-molina)
|
||||
- [#29953](https://github.com/apache/superset/pull/29953) fix(embedded): Remove CSRF requirement for dashboard download API (@Vitor-Avila)
|
||||
- [#29672](https://github.com/apache/superset/pull/29672) fix(explore): missing column autocomplete in custom SQL (@justinpark)
|
||||
- [#29840](https://github.com/apache/superset/pull/29840) fix: handle empty catalog when DB supports them (@betodealmeida)
|
||||
- [#29287](https://github.com/apache/superset/pull/29287) fix: Add user filtering to changed_by. Fixes #27986 (@marre)
|
||||
- [#29921](https://github.com/apache/superset/pull/29921) fix: add imports back to celery file (@sadpandajoe)
|
||||
- [#29894](https://github.com/apache/superset/pull/29894) fix(Embedded): Deleting Embedded Dashboards does not commit the transaction (@geido)
|
||||
- [#29862](https://github.com/apache/superset/pull/29862) fix: update celery config imports (@mistercrunch)
|
||||
- [#29846](https://github.com/apache/superset/pull/29846) fix: load slack channels earlier (@eschutho)
|
||||
- [#29805](https://github.com/apache/superset/pull/29805) fix: bump packages to unblock ci (@eschutho)
|
||||
- [#29802](https://github.com/apache/superset/pull/29802) fix: create permissions on DB import (@betodealmeida)
|
||||
- [#29780](https://github.com/apache/superset/pull/29780) fix: catalog upgrade/downgrade (@betodealmeida)
|
||||
- [#29776](https://github.com/apache/superset/pull/29776) fix(Dashboard): Copying a Dashboard does not commit the transaction (@geido)
|
||||
- [#29721](https://github.com/apache/superset/pull/29721) fix: pass slack recipients correctly (@eschutho)
|
||||
- [#29681](https://github.com/apache/superset/pull/29681) fix(Database): Refresh catalogs on db update returns database error (@geido)
|
||||
- [#29669](https://github.com/apache/superset/pull/29669) fix: Use default custom time range time without timezone (@kgabryje)
|
||||
- [#29667](https://github.com/apache/superset/pull/29667) fix: Dashboard editable title weird behavior when adding spaces (@kgabryje)
|
||||
- [#29648](https://github.com/apache/superset/pull/29648) fix: Layout of native filters modal with lengthy columns (@michael-s-molina)
|
||||
- [#29647](https://github.com/apache/superset/pull/29647) fix: Loading of native filter column (@michael-s-molina)
|
||||
- [#29643](https://github.com/apache/superset/pull/29643) fix: Required native filter message wrongfully appearing (@michael-s-molina)
|
||||
- [#29638](https://github.com/apache/superset/pull/29638) fix(sqllab): prev shema/table options remained on fail (@justinpark)
|
||||
- [#29567](https://github.com/apache/superset/pull/29567) fix: Add Japanese Translations (@avintonOfficial)
|
||||
- [#29607](https://github.com/apache/superset/pull/29607) fix(sqllab): Show warning message when deprecated db is selected (@justinpark)
|
||||
- [#29610](https://github.com/apache/superset/pull/29610) fix: sort schemas when uploading data (@betodealmeida)
|
||||
- [#29604](https://github.com/apache/superset/pull/29604) fix: schemas for upload API (@betodealmeida)
|
||||
- [#28496](https://github.com/apache/superset/pull/28496) fix(docs): fix broken indexed link from Google search (@sfirke)
|
||||
- [#29587](https://github.com/apache/superset/pull/29587) fix(storybook): fix broken Storybook stories during development (@hainenber)
|
||||
- [#29581](https://github.com/apache/superset/pull/29581) fix: catalog permission check (@betodealmeida)
|
||||
- [#29579](https://github.com/apache/superset/pull/29579) fix: small fixes to the catalog migration (@betodealmeida)
|
||||
- [#29566](https://github.com/apache/superset/pull/29566) fix: Trino `get_columns` (@betodealmeida)
|
||||
- [#29576](https://github.com/apache/superset/pull/29576) fix(dataset import): Support catalog field during dataset import (@Vitor-Avila)
|
||||
- [#29549](https://github.com/apache/superset/pull/29549) fix: make catalog migration lenient (@betodealmeida)
|
||||
- [#29412](https://github.com/apache/superset/pull/29412) fix(Tags filter): Filter assets by tag ID (@Vitor-Avila)
|
||||
- [#29548](https://github.com/apache/superset/pull/29548) fix: babel_update script crash (@CodeWithEmad)
|
||||
- [#29530](https://github.com/apache/superset/pull/29530) fix: prevent guest users from changing columns (@betodealmeida)
|
||||
- [#29538](https://github.com/apache/superset/pull/29538) fix(websocket): add error handling (@harshit2283)
|
||||
- [#29330](https://github.com/apache/superset/pull/29330) fix: refactor view error handling into a separate module (@mistercrunch)
|
||||
- [#29525](https://github.com/apache/superset/pull/29525) fix: Table time comparison breaking after form data update (@kgabryje)
|
||||
- [#29520](https://github.com/apache/superset/pull/29520) fix(plugins): Big Number with Time Comparison (@Antonio-RiveroMartnez)
|
||||
- [#29517](https://github.com/apache/superset/pull/29517) fix(plugins): Fix dashboard filter for Table and Big Number with Time Comparison (@Antonio-RiveroMartnez)
|
||||
- [#29454](https://github.com/apache/superset/pull/29454) fix: add more disallowed pg functions (@dpgaspar)
|
||||
- [#29470](https://github.com/apache/superset/pull/29470) fix: remove info from datasource access error (@dpgaspar)
|
||||
- [#28364](https://github.com/apache/superset/pull/28364) fix: Enable explore button on SQL Lab view when connected to Apache Pinot as a database (@soumitra-st)
|
||||
- [#29456](https://github.com/apache/superset/pull/29456) fix: Dashboard hangs when initial filters cannot be loaded (@michael-s-molina)
|
||||
- [#29461](https://github.com/apache/superset/pull/29461) fix: OAuth2 in async DBs (@betodealmeida)
|
||||
- [#29446](https://github.com/apache/superset/pull/29446) fix: re-add missing code from PR #28132 (@sadpandajoe)
|
||||
- [#29451](https://github.com/apache/superset/pull/29451) fix(metastore-cache): import dao in methods (@villebro)
|
||||
- [#29420](https://github.com/apache/superset/pull/29420) fix: SQL label missing for non-group-by queries (@hexcafe)
|
||||
- [#29392](https://github.com/apache/superset/pull/29392) fix(readme): changing video from mp4 to webm format (@rusackas)
|
||||
- [#29368](https://github.com/apache/superset/pull/29368) fix(tox): Address issue with generative environment variables (@john-bodley)
|
||||
- [#29367](https://github.com/apache/superset/pull/29367) fix(explore): don't respect y-axis formatting (@justinpark)
|
||||
- [#29321](https://github.com/apache/superset/pull/29321) fix(Query): Parse html string error responses to avoid displaying raw HTML as error message (@rtexelm)
|
||||
- [#27777](https://github.com/apache/superset/pull/27777) fix: default logging (@jessie-ross)
|
||||
- [#29352](https://github.com/apache/superset/pull/29352) fix(tests): Ensure fixture is invoked (@john-bodley)
|
||||
- [#29345](https://github.com/apache/superset/pull/29345) fix(revert 27883): Excess padding in horizontal Bar charts (@michael-s-molina)
|
||||
- [#14817](https://github.com/apache/superset/pull/14817) fix: actually write changes on "superset import-datasources" (@regisb)
|
||||
- [#29349](https://github.com/apache/superset/pull/29349) fix(explore): restored hidden field values has discarded (@justinpark)
|
||||
- [#29346](https://github.com/apache/superset/pull/29346) fix: Cannot delete empty column inside a tab using the dashboard editor (@michael-s-molina)
|
||||
- [#29314](https://github.com/apache/superset/pull/29314) fix: Remove recursive repr call (@jessie-ross)
|
||||
- [#28753](https://github.com/apache/superset/pull/28753) fix: don't strip SQL comments in Explore - 2nd try (@mistercrunch)
|
||||
- [#28429](https://github.com/apache/superset/pull/28429) fix(ui): Disable ability to export data when user does not have the correct permission (@edjannoo)
|
||||
- [#27439](https://github.com/apache/superset/pull/27439) fix(Dashboard): Color inconsistency on refreshes and conflicts (@geido)
|
||||
- [#29286](https://github.com/apache/superset/pull/29286) fix(key-value): use flush instead of commit (@villebro)
|
||||
- [#29301](https://github.com/apache/superset/pull/29301) fix(metastore-cache): prune before add (@villebro)
|
||||
- [#29279](https://github.com/apache/superset/pull/29279) fix(sqllab): excessive API calls for schemas (@justinpark)
|
||||
- [#29278](https://github.com/apache/superset/pull/29278) fix(sqllab): invalid empty state on switch tab (@justinpark)
|
||||
- [#29291](https://github.com/apache/superset/pull/29291) fix: filters not updating with force update when caching is enabled (@ka-weihe)
|
||||
- [#28744](https://github.com/apache/superset/pull/28744) fix(permalink): adding anchor to dashboard permalink generation (@fisjac)
|
||||
- [#29257](https://github.com/apache/superset/pull/29257) fix: Catalog with restricted permissions produces an error during database connection (@geido)
|
||||
- [#29260](https://github.com/apache/superset/pull/29260) fix: Custom SQL filter control (@michael-s-molina)
|
||||
- [#29248](https://github.com/apache/superset/pull/29248) fix(sqllab): Do not strip comments when executing SQL statements (@john-bodley)
|
||||
- [#29234](https://github.com/apache/superset/pull/29234) fix(Explore): Keep necessary form data to allow query mode switching (@rtexelm)
|
||||
- [#28755](https://github.com/apache/superset/pull/28755) fix: Workaround for Pandas.DataFrame.to_csv bug (@john-bodley)
|
||||
- [#29230](https://github.com/apache/superset/pull/29230) fix(sqllab): run previous state query (@justinpark)
|
||||
- [#29229](https://github.com/apache/superset/pull/29229) fix: Improving handling for tag relationship when deleting assets v2 (@Vitor-Avila)
|
||||
- [#29170](https://github.com/apache/superset/pull/29170) fix(maps): Load indian map borders correctly (Restores #24927 fixes) (@PushpenderSaini0)
|
||||
- [#29117](https://github.com/apache/superset/pull/29117) fix: Improving handling for tag relationship when deleting assets (@Vitor-Avila)
|
||||
- [#29119](https://github.com/apache/superset/pull/29119) fix(mixed-timeseries-plugin): Second query stacks stacked on top of first query series (@kgabryje)
|
||||
- [#29110](https://github.com/apache/superset/pull/29110) fix: CI failture due to Default React import (@justinpark)
|
||||
- [#29091](https://github.com/apache/superset/pull/29091) fix(helm): Set priorityClassName to pods (superset, celeryBeat, celeryBeatFlower, celeryBeatWorker, celeryBeatWebsocket, jobs) (@sabyrzhan)
|
||||
- [#28932](https://github.com/apache/superset/pull/28932) fix(embedded): add missing GUEST_TOKEN_HEADER_NAME to bootstrap data (@hexcafe)
|
||||
- [#29098](https://github.com/apache/superset/pull/29098) fix: Cypress CI process while opening PR from a fork (@mistercrunch)
|
||||
- [#28572](https://github.com/apache/superset/pull/28572) fix(i18n): improved Russian translation (@goldjee)
|
||||
- [#29084](https://github.com/apache/superset/pull/29084) fix: Remove BASE_AXIS from pre-query (@john-bodley)
|
||||
- [#29081](https://github.com/apache/superset/pull/29081) fix(explore): Drill to detail truncates int64 IDs (@justinpark)
|
||||
- [#29089](https://github.com/apache/superset/pull/29089) fix: CI errors as the result of removing React imports (@michael-s-molina)
|
||||
- [#27017](https://github.com/apache/superset/pull/27017) fix(embedded-sdk): add accessible title to iframe (@bhaugeea)
|
||||
- [#28797](https://github.com/apache/superset/pull/28797) fix: use channel id with new slack api for file uploads (@eschutho)
|
||||
- [#28771](https://github.com/apache/superset/pull/28771) fix(Mixed Chart Filter Control): Allow delete condition for `adhoc_filters_b` (@rtexelm)
|
||||
- [#28783](https://github.com/apache/superset/pull/28783) fix: use upload v2 for slack (@eschutho)
|
||||
- [#28772](https://github.com/apache/superset/pull/28772) fix(dashboard): unable to resize due to the overlapped droptarget (@justinpark)
|
||||
- [#28750](https://github.com/apache/superset/pull/28750) fix: do not close database modal on mask click (@eschutho)
|
||||
- [#28745](https://github.com/apache/superset/pull/28745) fix(reports): Update the element class to wait for when taking a screenshot (@Vitor-Avila)
|
||||
- [#28749](https://github.com/apache/superset/pull/28749) fix(sqllab): Sort db selector options by the API order (@justinpark)
|
||||
- [#28765](https://github.com/apache/superset/pull/28765) fix(docs): fix url typo to fix a broken image (@rusackas)
|
||||
- [#28639](https://github.com/apache/superset/pull/28639) fix: adds the ability to disallow SQL functions per engine (@dpgaspar)
|
||||
- [#28609](https://github.com/apache/superset/pull/28609) fix: dashboard performance (@dpgaspar)
|
||||
- [#28653](https://github.com/apache/superset/pull/28653) fix: Handling of column types for Presto, Trino, et al. (@john-bodley)
|
||||
- [#28633](https://github.com/apache/superset/pull/28633) fix(ci): restrict issue comments to members or owners (@dpgaspar)
|
||||
- [#28613](https://github.com/apache/superset/pull/28613) fix: revert fix(presto preview): re-enable schema previsualization for Trino/Presto table/schemas" (@john-bodley)
|
||||
- [#28568](https://github.com/apache/superset/pull/28568) fix: add listener to repaint on visibility change for canvas (@eschutho)
|
||||
- [#28566](https://github.com/apache/superset/pull/28566) fix: Fixes workflow Applitools Cypress (@geido)
|
||||
- [#28349](https://github.com/apache/superset/pull/28349) fix: Add back description column to saved queries #12431 (@imancrsrk)
|
||||
- [#28567](https://github.com/apache/superset/pull/28567) fix: Revert "fix: don't strip SQL comments in Explore (#28363)" (@michael-s-molina)
|
||||
- [#28497](https://github.com/apache/superset/pull/28497) fix: Correction translation (@aehanno)
|
||||
- [#28555](https://github.com/apache/superset/pull/28555) fix(explore): hide a control wrapped with StashFormDataContainer correctly (@justinpark)
|
||||
- [#28487](https://github.com/apache/superset/pull/28487) fix(i18n): Adding and modifying Japanese translations (@aikawa-ohno)
|
||||
- [#28550](https://github.com/apache/superset/pull/28550) fix(Dashboard): Prevent scroll when hovering filters (@geido)
|
||||
- [#28423](https://github.com/apache/superset/pull/28423) fix: move to slack-sdk files_upload_v2 (@mistercrunch)
|
||||
- [#28486](https://github.com/apache/superset/pull/28486) fix: utf-16 json encoder support (@eyalezer)
|
||||
- [#28512](https://github.com/apache/superset/pull/28512) fix: improve df to records performance (@dpgaspar)
|
||||
- [#28507](https://github.com/apache/superset/pull/28507) fix(dashboard): invalid drop item on a tab (@justinpark)
|
||||
- [#28432](https://github.com/apache/superset/pull/28432) fix: Time shifts calculation for ECharts plugins (@michael-s-molina)
|
||||
- [#28144](https://github.com/apache/superset/pull/28144) fix: bump sqlparse to 0.5.0 (@dpgaspar)
|
||||
- [#26782](https://github.com/apache/superset/pull/26782) fix(presto preview): re-enable schema previsualization for Trino/Presto table/schemas (@brouberol)
|
||||
- [#28451](https://github.com/apache/superset/pull/28451) fix: jwt extended broken by flask bump (@dpgaspar)
|
||||
- [#28409](https://github.com/apache/superset/pull/28409) fix(ar-modal): updateNotificationSettings not updating state (@fisjac)
|
||||
- [#28457](https://github.com/apache/superset/pull/28457) fix: Color scheme control crashing when dashboardId present (@kgabryje)
|
||||
- [#28442](https://github.com/apache/superset/pull/28442) fix(ci): fix failed `docker-build` CI job (@hainenber)
|
||||
- [#28433](https://github.com/apache/superset/pull/28433) fix(docs): add missing link to meta-cross-db feature flag docs (@sfirke)
|
||||
- [#28395](https://github.com/apache/superset/pull/28395) fix(dashboard): Change class name on last Droppable in a column (@rtexelm)
|
||||
- [#28419](https://github.com/apache/superset/pull/28419) fix: run some CI tests against previous python version (@mistercrunch)
|
||||
- [#28415](https://github.com/apache/superset/pull/28415) fix(SIP-95): missing catalog cache key (@justinpark)
|
||||
- [#28418](https://github.com/apache/superset/pull/28418) fix: set supersetbot orglabel to always succeed (@mistercrunch)
|
||||
- [#28412](https://github.com/apache/superset/pull/28412) fix(docs): fix typo in development.mdx (@eschutho)
|
||||
- [#28410](https://github.com/apache/superset/pull/28410) fix: pass catalog when estimating query cost (@betodealmeida)
|
||||
- [#28413](https://github.com/apache/superset/pull/28413) fix: table autocomplete should pass catalog (@betodealmeida)
|
||||
- [#28408](https://github.com/apache/superset/pull/28408) fix: export/import catalogs (@betodealmeida)
|
||||
- [#28396](https://github.com/apache/superset/pull/28396) fix: type annotation breaking on py3.9 (@dpgaspar)
|
||||
- [#28397](https://github.com/apache/superset/pull/28397) fix: tests on database, dataset, saved_queries apis (@dpgaspar)
|
||||
- [#28312](https://github.com/apache/superset/pull/28312) fix(explore): hide advanced analytics for non temporal xaxis (@justinpark)
|
||||
- [#28389](https://github.com/apache/superset/pull/28389) fix: update links to reference docs listing Superset issue codes (@jonaschn)
|
||||
- [#28368](https://github.com/apache/superset/pull/28368) fix: Contribution percentages for ECharts plugins (@michael-s-molina)
|
||||
- [#28386](https://github.com/apache/superset/pull/28386) fix: Scroll to top when selecting a global dashboard tab (@michael-s-molina)
|
||||
- [#28384](https://github.com/apache/superset/pull/28384) fix: Revert "chore(build): uplift `webpack`-related packages to v5 (#28342)" (@kgabryje)
|
||||
- [#28363](https://github.com/apache/superset/pull/28363) fix: don't strip SQL comments in Explore (@mistercrunch)
|
||||
- [#28341](https://github.com/apache/superset/pull/28341) fix: Remedy logic for UpdateDatasetCommand uniqueness check (@john-bodley)
|
||||
- [#28334](https://github.com/apache/superset/pull/28334) fix: Small tweaks for Line and Area chart migrations (ECharts) (@michael-s-molina)
|
||||
- [#28266](https://github.com/apache/superset/pull/28266) fix: use pessimistic json encoder in SQL Lab (@mistercrunch)
|
||||
- [#28343](https://github.com/apache/superset/pull/28343) fix(ci): correct input type for `allow-dependencies-licenses` in Dependency Review GH action (@hainenber)
|
||||
- [#28340](https://github.com/apache/superset/pull/28340) fix: database logos look stretched (@mistercrunch)
|
||||
- [#28333](https://github.com/apache/superset/pull/28333) fix(website): links corrected (@frankzimper)
|
||||
- [#28113](https://github.com/apache/superset/pull/28113) fix: Rename legacy line and area charts (@john-bodley)
|
||||
- [#28279](https://github.com/apache/superset/pull/28279) fix(sql_parse): Ignore USE SQL keyword when determining SELECT statement (@john-bodley)
|
||||
- [#28319](https://github.com/apache/superset/pull/28319) fix(docs): prevent browser to download the entire video in first page load + fix empty `controls` attribute (@hainenber)
|
||||
- [#28322](https://github.com/apache/superset/pull/28322) fix(sql_parse): Add Apache Spark to SQLGlot dialect mapping (@john-bodley)
|
||||
- [#28205](https://github.com/apache/superset/pull/28205) fix: all_database_access should enable access to all datasets/charts/dashboards (@mistercrunch)
|
||||
- [#28269](https://github.com/apache/superset/pull/28269) fix(explore): cannot reorder dnd of Metrics (@justinpark)
|
||||
- [#28283](https://github.com/apache/superset/pull/28283) fix: silence docker-compose useless warnings (@mistercrunch)
|
||||
- [#28271](https://github.com/apache/superset/pull/28271) fix: % replace in `values_for_column` (@betodealmeida)
|
||||
- [#28277](https://github.com/apache/superset/pull/28277) fix(ci): adding codecov token (@rusackas)
|
||||
- [#28225](https://github.com/apache/superset/pull/28225) fix(Dev-Server): Edit ChartPropsConfig reexport to be a type object (@rtexelm)
|
||||
- [#28232](https://github.com/apache/superset/pull/28232) fix(Webpack dev-sever warnings): Add ignoreWarning to webpack config for @data-ui error (@rtexelm)
|
||||
- [#28242](https://github.com/apache/superset/pull/28242) fix(dashboard): unable to drop tabs in columns (@justinpark)
|
||||
- [#28229](https://github.com/apache/superset/pull/28229) fix(Webpack dev-server build warning): Create false value alias for `moment-with-locales` (@rtexelm)
|
||||
- [#28241](https://github.com/apache/superset/pull/28241) fix(explore): temporal column mixin (@justinpark)
|
||||
- [#28156](https://github.com/apache/superset/pull/28156) fix(sqllab): invalid css scope for ace editor autocomplete (@justinpark)
|
||||
- [#28222](https://github.com/apache/superset/pull/28222) fix: Dremio alias (@betodealmeida)
|
||||
- [#28152](https://github.com/apache/superset/pull/28152) fix(sql_parse): Provide more lenient logic when extracting latest[_sub]\_partition (@john-bodley)
|
||||
- [#28226](https://github.com/apache/superset/pull/28226) fix(maps): adds Crimea back to Ukraine 🇺🇦 (@rusackas)
|
||||
- [#28197](https://github.com/apache/superset/pull/28197) fix: Remove deprecated ignoreTestFiles from Applitools Cypress (@geido)
|
||||
- [#28189](https://github.com/apache/superset/pull/28189) fix(docs): ERD docs fail on master (@mistercrunch)
|
||||
- [#27554](https://github.com/apache/superset/pull/27554) fix(AlertsReports): making log retention "None" option valid (@fisjac)
|
||||
- [#28117](https://github.com/apache/superset/pull/28117) fix(sql_parse): Support Jinja format() filter when extracting latest[_sub]\_partition (@john-bodley)
|
||||
- [#27195](https://github.com/apache/superset/pull/27195) fix: Upgrade eyes-cypress to latest (@geido)
|
||||
- [#28061](https://github.com/apache/superset/pull/28061) fix: switch off dependabot for pip/python (@mistercrunch)
|
||||
- [#28054](https://github.com/apache/superset/pull/28054) fix(Dashboard): Support "Edit chart" click on a new window (@geido)
|
||||
- [#28036](https://github.com/apache/superset/pull/28036) fix: Dynamic filter does not show all values on blur/clear events (@michael-s-molina)
|
||||
- [#28018](https://github.com/apache/superset/pull/28018) fix: bump client side chart timeouts to use the SUPERSET_WEBSERVER_TIMEOUT (@eschutho)
|
||||
- [#28039](https://github.com/apache/superset/pull/28039) fix: support docker/.env-local for docker-compose (@mistercrunch)
|
||||
- [#28017](https://github.com/apache/superset/pull/28017) fix: Select is accepting unknown pasted values when `allowNewOptions` is false (@michael-s-molina)
|
||||
- [#27996](https://github.com/apache/superset/pull/27996) fix: Incorrect onChange value when an unloaded value is pasted into AsyncSelect (@michael-s-molina)
|
||||
- [#27934](https://github.com/apache/superset/pull/27934) fix(time_offset): improved LIMIT-handling in advanced analytics (@Antonio-RiveroMartnez)
|
||||
- [#27992](https://github.com/apache/superset/pull/27992) fix(docs): add missing code formatting, fix broken link (@sfirke)
|
||||
- [#27941](https://github.com/apache/superset/pull/27941) fix(drillby): Enable DrillBy in charts w/o filters (dimensions) (@sowo)
|
||||
- [#27994](https://github.com/apache/superset/pull/27994) fix(superset-frontend): remove unused `@superset-ui/plugin-chart-period-over-period-kpi` package (@corocoto)
|
||||
- [#27239](https://github.com/apache/superset/pull/27239) fix(alerts/reports): removing duplicate notification method options (@fisjac)
|
||||
- [#27974](https://github.com/apache/superset/pull/27974) fix(node): bump node version in nvmrc files (@rusackas)
|
||||
- [#27963](https://github.com/apache/superset/pull/27963) fix(asf): removing google hosted analytics and fonts (@rusackas)
|
||||
- [#27968](https://github.com/apache/superset/pull/27968) fix(Dashboard): Add aria-label to filters and search forms (@geido)
|
||||
- [#27955](https://github.com/apache/superset/pull/27955) fix(node): missed one bump from node 16 to 18. (@rusackas)
|
||||
- [#27701](https://github.com/apache/superset/pull/27701) fix: useTruncation infinite loop, reenable dashboard cross links on ChartList (@kgabryje)
|
||||
- [#27904](https://github.com/apache/superset/pull/27904) fix: improve change detection for GHAs (@mistercrunch)
|
||||
- [#27942](https://github.com/apache/superset/pull/27942) fix(docs): CSP mods to re-enable Algolia search (@rusackas)
|
||||
- [#27926](https://github.com/apache/superset/pull/27926) fix: Locale sent to frontend (@michael-s-molina)
|
||||
- [#27925](https://github.com/apache/superset/pull/27925) fix: docker-release GHA fails with pathspec error (@mistercrunch)
|
||||
- [#27922](https://github.com/apache/superset/pull/27922) fix: fix-zh-translation-2 (@listeng)
|
||||
- [#25407](https://github.com/apache/superset/pull/25407) fix(frontend): allow "constructor" property in response data (@SpencerTorres)
|
||||
- [#27912](https://github.com/apache/superset/pull/27912) fix(docs): restoring search capability with new public key (@rusackas)
|
||||
- [#27919](https://github.com/apache/superset/pull/27919) fix: add mariadb engine spec same as MySQL (@dpgaspar)
|
||||
- [#27593](https://github.com/apache/superset/pull/27593) fix(Dashboard): Add border to row when hovering HoverMenu in edit mode (@rtexelm)
|
||||
- [#27794](https://github.com/apache/superset/pull/27794) fix: corrects some inaccuracies zh translation (@listeng)
|
||||
- [#27889](https://github.com/apache/superset/pull/27889) fix(pylint): Address errors/warnings introduced by #27867 (@john-bodley)
|
||||
- [#27883](https://github.com/apache/superset/pull/27883) fix(bar-chart): change legend padding for horizontal orientation (@lilykuang)
|
||||
- [#27861](https://github.com/apache/superset/pull/27861) fix: run pip-compile-multi --no-upgrade (@mistercrunch)
|
||||
- [#27860](https://github.com/apache/superset/pull/27860) fix: GHA update-monorepo-lockfiles (@mistercrunch)
|
||||
- [#27700](https://github.com/apache/superset/pull/27700) fix: row limits & row count labels are confusing (@mistercrunch)
|
||||
- [#27855](https://github.com/apache/superset/pull/27855) fix: pkg-config dependency in Dockerfile (@mistercrunch)
|
||||
- [#27845](https://github.com/apache/superset/pull/27845) fix(dashboard): missing null check in error extra (@justinpark)
|
||||
- [#27846](https://github.com/apache/superset/pull/27846) fix: alembic's 'superset db migrate' fails with CompileError (@mistercrunch)
|
||||
- [#27785](https://github.com/apache/superset/pull/27785) fix: Select's storybook (@michael-s-molina)
|
||||
- [#27710](https://github.com/apache/superset/pull/27710) fix: Pylint errors on master (@michael-s-molina)
|
||||
- [#27714](https://github.com/apache/superset/pull/27714) fix: Revert "chore: bump pylint (#27711)" (@michael-s-molina)
|
||||
- [#27611](https://github.com/apache/superset/pull/27611) fix(dashboard,css): center align 'waiting on database' (@mistercrunch)
|
||||
- [#27608](https://github.com/apache/superset/pull/27608) fix(docker): error around missing requirements/base.txt (@mistercrunch)
|
||||
- [#27595](https://github.com/apache/superset/pull/27595) fix: skip another Hive test (@betodealmeida)
|
||||
- [#27523](https://github.com/apache/superset/pull/27523) fix: Hive integration test (@betodealmeida)
|
||||
- [#27541](https://github.com/apache/superset/pull/27541) fix: typo in configuring-superset.mdx (@armando-fandango)
|
||||
- [#27502](https://github.com/apache/superset/pull/27502) fix(big-number-chart): number format is not applying to percentage number of the time comparison (@lilykuang)
|
||||
- [#27515](https://github.com/apache/superset/pull/27515) fix: master build 4th attempt (@mistercrunch)
|
||||
- [#27514](https://github.com/apache/superset/pull/27514) fix: another attempt at fixing docker master builds (@mistercrunch)
|
||||
- [#27507](https://github.com/apache/superset/pull/27507) fix: master docker build is broken (@mistercrunch)
|
||||
- [#27503](https://github.com/apache/superset/pull/27503) fix: docker builds in master fail (@mistercrunch)
|
||||
- [#27209](https://github.com/apache/superset/pull/27209) fix: Allow only dttm columns in comparison filter in Period over Period chart (@kgabryje)
|
||||
- [#27312](https://github.com/apache/superset/pull/27312) fix(docs): just a missing backtick (@rusackas)
|
||||
- [#27303](https://github.com/apache/superset/pull/27303) fix(ci): check file changes for python should include the scripts folders (@dpgaspar)
|
||||
- [#27296](https://github.com/apache/superset/pull/27296) fix: Revert "chore: Replace deprecated command with environment file (#240… (@eschutho)
|
||||
- [#27282](https://github.com/apache/superset/pull/27282) fix(ci): docker builds don't work from remote forks (@mistercrunch)
|
||||
- [#27280](https://github.com/apache/superset/pull/27280) fix(docs): more CSP tweaks (@rusackas)
|
||||
- [#27279](https://github.com/apache/superset/pull/27279) fix(docs): more csp tweaks (@rusackas)
|
||||
- [#27278](https://github.com/apache/superset/pull/27278) fix(docs): even more CSP adjustments... (@rusackas)
|
||||
- [#27277](https://github.com/apache/superset/pull/27277) fix(docs): Even more access in CSP policies! (@rusackas)
|
||||
- [#27275](https://github.com/apache/superset/pull/27275) fix(docs): More CSP touchups (@rusackas)
|
||||
- [#27274](https://github.com/apache/superset/pull/27274) fix(docs): removing meta tag CSP, poking more holes in htaccess (@rusackas)
|
||||
- [#27261](https://github.com/apache/superset/pull/27261) fix: docker CI job doesn't trigger on master (@mistercrunch)
|
||||
- [#27259](https://github.com/apache/superset/pull/27259) fix(docs site): CSP changes, take 2 (@rusackas)
|
||||
- [#27256](https://github.com/apache/superset/pull/27256) fix(docs site): Opening up CSP for 3rd party frame content. (@rusackas)
|
||||
- [#27203](https://github.com/apache/superset/pull/27203) fix(plugin-chart-period-over-period-kpi): Blank chart when switching from BigNumberTotal (@kgabryje)
|
||||
- [#27179](https://github.com/apache/superset/pull/27179) fix: docker-compose point to master tag (@dpgaspar)
|
||||
- [#27168](https://github.com/apache/superset/pull/27168) fix: CSRF exempt unit_tests (@dpgaspar)
|
||||
|
||||
**Others**
|
||||
|
||||
- [#30729](https://github.com/apache/superset/pull/30729) chore: bump werkzeug to address vulnerability (@dpgaspar)
|
||||
- [#30733](https://github.com/apache/superset/pull/30733) ci: Add Python 3.11 images to Docker Hub (@padbk)
|
||||
- [#30397](https://github.com/apache/superset/pull/30397) chore: alter scripts/cypress_run to run one file per command + retry (@mistercrunch)
|
||||
- [#30354](https://github.com/apache/superset/pull/30354) chore: split cypress files for less memory (@eschutho)
|
||||
- [#30719](https://github.com/apache/superset/pull/30719) chore(Dashboard): Simplify scoping logic for cross/native filters (@geido)
|
||||
- [#29937](https://github.com/apache/superset/pull/29937) chore: Update to Dockerfile to get creating releases to work (@sadpandajoe)
|
||||
- [#29874](https://github.com/apache/superset/pull/29874) perf: Implement Echarts treeshaking (@kgabryje)
|
||||
- [#26257](https://github.com/apache/superset/pull/26257) chore(chart-controls): migrate enzyme to RTL (@justinpark)
|
||||
- [#30417](https://github.com/apache/superset/pull/30417) chore: improve DML check (@betodealmeida)
|
||||
- [#30258](https://github.com/apache/superset/pull/30258) chore: organize SQL parsing files (@betodealmeida)
|
||||
- [#30274](https://github.com/apache/superset/pull/30274) chore: move SLACK_ENABLE_AVATARS from config to feature flag (@mistercrunch)
|
||||
- [#30173](https://github.com/apache/superset/pull/30173) chore(sqllab): Add shortcuts for switching tabs (@justinpark)
|
||||
- [#30213](https://github.com/apache/superset/pull/30213) chore: remove duplicate `_process_sql_expression` (@betodealmeida)
|
||||
- [#30243](https://github.com/apache/superset/pull/30243) chore(docs): note that release-tagged docker images no longer ship with metadata db drivers as of 4.1.0 (@sfirke)
|
||||
- [#26258](https://github.com/apache/superset/pull/26258) chore(shared components): Migrate enzyme to RTL (@justinpark)
|
||||
- [#30144](https://github.com/apache/superset/pull/30144) docs: document how docker-compose-image-tag requires -dev suffixed images (@mistercrunch)
|
||||
- [#29943](https://github.com/apache/superset/pull/29943) chore: improve mask/unmask encrypted_extra (@betodealmeida)
|
||||
- [#29936](https://github.com/apache/superset/pull/29936) chore: Allow auto pruning of the query table (@michael-s-molina)
|
||||
- [#29893](https://github.com/apache/superset/pull/29893) chore: Logs the duration of migrations execution (@michael-s-molina)
|
||||
- [#29262](https://github.com/apache/superset/pull/29262) chore: Add the 4.1 release notes (@sadpandajoe)
|
||||
- [#29666](https://github.com/apache/superset/pull/29666) refactor(ProgressBar): Upgrade ProgressBar to Antd 5 (@geido)
|
||||
- [#29631](https://github.com/apache/superset/pull/29631) docs: fix query typo in creating-your-first-dashboard.mdx (@Jaswanth-Sriram-Veturi)
|
||||
- [#29650](https://github.com/apache/superset/pull/29650) chore: add catalog_access to OBJECT_SPEC_PERMISSIONS (@betodealmeida)
|
||||
- [#29594](https://github.com/apache/superset/pull/29594) refactor: Remove dead code from the Word Cloud plugin (@michael-s-molina)
|
||||
- [#29637](https://github.com/apache/superset/pull/29637) chore: Adds 4.1.0 RC1 daa to CHANGELOG.md and UPDATING.md (@sadpandajoe)
|
||||
- [#29272](https://github.com/apache/superset/pull/29272) refactor(Dashboard): Fetch dashboard screenshot via dedicated endpoint (@geido)
|
||||
- [#29593](https://github.com/apache/superset/pull/29593) refactor(Tag): Upgrade Tag and TagsList to Ant Design 5 (@geido)
|
||||
- [#29612](https://github.com/apache/superset/pull/29612) docs: fix code comment explaining local override (@oscep)
|
||||
- [#29602](https://github.com/apache/superset/pull/29602) chore: Clear redux localStorage on logout (@geido)
|
||||
- [#29600](https://github.com/apache/superset/pull/29600) chore: Updates CHANGELOG.md with 4.0.2 data (@michael-s-molina)
|
||||
- [#28124](https://github.com/apache/superset/pull/28124) docs(Database): Clarify host value expected when running in docker (@Carmageddon)
|
||||
- [#28481](https://github.com/apache/superset/pull/28481) chore(docs): create architecture page (@sfirke)
|
||||
- [#29603](https://github.com/apache/superset/pull/29603) docs(contributing): removing old blog post link (@rusackas)
|
||||
- [#29599](https://github.com/apache/superset/pull/29599) docs: update CVEs for 4.0.2 (@dpgaspar)
|
||||
- [#29552](https://github.com/apache/superset/pull/29552) chore: cleanup documentation (@CodeWithEmad)
|
||||
- [#29487](https://github.com/apache/superset/pull/29487) docs: Added Keycloak auth configuration (@lindner-tj)
|
||||
- [#29436](https://github.com/apache/superset/pull/29436) chore(deps): bump deck.gl from 8.9.22 to 9.0.20 in /superset-frontend (@dependabot[bot])
|
||||
- [#29537](https://github.com/apache/superset/pull/29537) docs(intro): Add OceanBase to the Supported Databases section of readme.md. (@yuanoOo)
|
||||
- [#29437](https://github.com/apache/superset/pull/29437) chore(deps): bump regenerator-runtime from 0.13.11 to 0.14.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#29529](https://github.com/apache/superset/pull/29529) chore(deps): bump deck.gl from 8.9.22 to 9.0.21 in /superset-frontend (@dependabot[bot])
|
||||
- [#29510](https://github.com/apache/superset/pull/29510) docs: Add frontend dependency installation steps (@CodeWithEmad)
|
||||
- [#29124](https://github.com/apache/superset/pull/29124) refactor: Upgrade Badge component to Ant Design 5 (@geido)
|
||||
- [#29414](https://github.com/apache/superset/pull/29414) chore(build): sync Jest version across plugins (@hainenber)
|
||||
- [#29486](https://github.com/apache/superset/pull/29486) docs: Add Vasu and Jamie to the Users List (@vasu-ram)
|
||||
- [#29511](https://github.com/apache/superset/pull/29511) docs: cleanup markdown warnings (@CodeWithEmad)
|
||||
- [#29389](https://github.com/apache/superset/pull/29389) refactor: Upgrade Card to Ant Design 5 (@geido)
|
||||
- [#29493](https://github.com/apache/superset/pull/29493) chore(Home): Avoid firing API requests when a custom Home is used (@Vitor-Avila)
|
||||
- [#29459](https://github.com/apache/superset/pull/29459) chore(utils): Support select_columns with getUserOwnedObjects and split recentActivityObjs (@Vitor-Avila)
|
||||
- [#29476](https://github.com/apache/superset/pull/29476) chore: run babel_update.sh to update po files (@mistercrunch)
|
||||
- [#29377](https://github.com/apache/superset/pull/29377) chore(i18n): Translated charts and filters into Russian (@goldjee)
|
||||
- [#29468](https://github.com/apache/superset/pull/29468) docs(docker compose): fix step 4 list formatting (@easontm)
|
||||
- [#29426](https://github.com/apache/superset/pull/29426) chore(deps): bump deck.gl from 9.0.12 to 9.0.20 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#29425](https://github.com/apache/superset/pull/29425) chore(deps-dev): update @types/lodash requirement from ^4.17.4 to ^4.17.6 in /superset-frontend/plugins/plugin-chart-handlebars (@dependabot[bot])
|
||||
- [#29434](https://github.com/apache/superset/pull/29434) chore(deps): bump actions/checkout from 2 to 4 (@dependabot[bot])
|
||||
- [#29429](https://github.com/apache/superset/pull/29429) chore(deps-dev): bump webpack from 5.91.0 to 5.92.1 in /docs (@dependabot[bot])
|
||||
- [#29428](https://github.com/apache/superset/pull/29428) chore(deps): bump @algolia/client-search from 4.23.3 to 4.24.0 in /docs (@dependabot[bot])
|
||||
- [#29439](https://github.com/apache/superset/pull/29439) chore(deps): bump react-markdown from 8.0.3 to 8.0.7 in /superset-frontend (@dependabot[bot])
|
||||
- [#29447](https://github.com/apache/superset/pull/29447) chore: move all GHAs to ubuntu-22.04 (@mistercrunch)
|
||||
- [#29442](https://github.com/apache/superset/pull/29442) chore: Added 10Web to the list of organizations that use Apache Superset (@saghatelian)
|
||||
- [#29344](https://github.com/apache/superset/pull/29344) chore(key-value): convert command to dao (@villebro)
|
||||
- [#29423](https://github.com/apache/superset/pull/29423) chore(deps-dev): bump ts-jest from 29.1.2 to 29.1.5 in /superset-websocket (@dependabot[bot])
|
||||
- [#29435](https://github.com/apache/superset/pull/29435) chore(deps-dev): bump eslint-import-resolver-typescript from 2.5.0 to 3.6.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#29433](https://github.com/apache/superset/pull/29433) chore(deps): bump rehype-raw from 6.1.1 to 7.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29432](https://github.com/apache/superset/pull/29432) chore(deps-dev): bump typescript from 5.4.5 to 5.5.2 in /docs (@dependabot[bot])
|
||||
- [#29431](https://github.com/apache/superset/pull/29431) chore(deps): bump stream from 0.0.2 to 0.0.3 in /docs (@dependabot[bot])
|
||||
- [#29413](https://github.com/apache/superset/pull/29413) docs: Update INTHEWILD.md with Aveti Learning (@TheShubhendra)
|
||||
- [#29399](https://github.com/apache/superset/pull/29399) docs: update INTHEWILD.md with bluquist (@ari-jane)
|
||||
- [#29405](https://github.com/apache/superset/pull/29405) chore(frontend): remove obsolete ESLint rules in tests (@hainenber)
|
||||
- [#24969](https://github.com/apache/superset/pull/24969) chore(dao/command): Add transaction decorator to try to enforce "unit of work" (@john-bodley)
|
||||
- [#29380](https://github.com/apache/superset/pull/29380) refactor(src/explore/comp/controls/metricControl): migrate Enzyme test to RTL syntax (@hainenber)
|
||||
- [#29400](https://github.com/apache/superset/pull/29400) docs: fix typos (@jansule)
|
||||
- [#28816](https://github.com/apache/superset/pull/28816) chore(deps): bump scroll-into-view-if-needed from 2.2.28 to 3.1.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29391](https://github.com/apache/superset/pull/29391) chore(Table): Add aria-label to Table page size selector (@geido)
|
||||
- [#29390](https://github.com/apache/superset/pull/29390) docs: fix typo in docker compose doc (@jansule)
|
||||
- [#29388](https://github.com/apache/superset/pull/29388) ci: remove update repo on issue comment (@dpgaspar)
|
||||
- [#29386](https://github.com/apache/superset/pull/29386) chore(tests): Remove unnecessary mock (@john-bodley)
|
||||
- [#29381](https://github.com/apache/superset/pull/29381) chore(security): Clean up session/commit logic (@john-bodley)
|
||||
- [#29371](https://github.com/apache/superset/pull/29371) chore(ci): Start Celery worker as a background process (@john-bodley)
|
||||
- [#29366](https://github.com/apache/superset/pull/29366) chore(tests): Mark TestConnectionDatabaseCommand as non-test related (@john-bodley)
|
||||
- [#29353](https://github.com/apache/superset/pull/29353) refactor(Homepage): Migrate Home.test to RTL (@rtexelm)
|
||||
- [#29356](https://github.com/apache/superset/pull/29356) chore(tests): Fix MySQL logic (@john-bodley)
|
||||
- [#29355](https://github.com/apache/superset/pull/29355) chore(tests): Cleanup Celery tests (@john-bodley)
|
||||
- [#29360](https://github.com/apache/superset/pull/29360) chore: Rename Totals to Summary in table chart (@michael-s-molina)
|
||||
- [#29337](https://github.com/apache/superset/pull/29337) docs: Update INTHEWILD.md with Bluesquare (@madewulf)
|
||||
- [#29327](https://github.com/apache/superset/pull/29327) chore(e2e): simplify Cypress record key usage (@rusackas)
|
||||
- [#29325](https://github.com/apache/superset/pull/29325) refactor: Adds the sort_by_metric control to sharedControls (@michael-s-molina)
|
||||
- [#29313](https://github.com/apache/superset/pull/29313) docs: update CVEs fixed on 4.0.1 and 3.1.3 (@dpgaspar)
|
||||
- [#28296](https://github.com/apache/superset/pull/28296) build(deps): bump deck.gl from 9.0.6 to 9.0.12 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#29319](https://github.com/apache/superset/pull/29319) chore(e2e): more instructions for manual test runs. (@rusackas)
|
||||
- [#28201](https://github.com/apache/superset/pull/28201) chore(applitools): making tests more static for consistent testing (@rusackas)
|
||||
- [#29302](https://github.com/apache/superset/pull/29302) chore(distributed-lock): refactor tests (@villebro)
|
||||
- [#29308](https://github.com/apache/superset/pull/29308) build(deps-dev): bump ws from 7.5.7 to 7.5.10 in /superset-embedded-sdk (@dependabot[bot])
|
||||
- [#29296](https://github.com/apache/superset/pull/29296) chore(e2e): using updated repo secret, new Cypress project id (@rusackas)
|
||||
- [#29300](https://github.com/apache/superset/pull/29300) docs: add Agoda to users list (@oBoMBaYo)
|
||||
- [#29285](https://github.com/apache/superset/pull/29285) chore: use json codec for key value lock (@villebro)
|
||||
- [#29277](https://github.com/apache/superset/pull/29277) chore: make flask-talisman work with test config (@mistercrunch)
|
||||
- [#29273](https://github.com/apache/superset/pull/29273) docs: remove comment header in README.md (@mistercrunch)
|
||||
- [#29275](https://github.com/apache/superset/pull/29275) build(deps): bump ws from 7.5.9 to 7.5.10 in /docs (@dependabot[bot])
|
||||
- [#29276](https://github.com/apache/superset/pull/29276) build(deps): bump ws from 8.17.0 to 8.17.1 in /superset-websocket (@dependabot[bot])
|
||||
- [#29274](https://github.com/apache/superset/pull/29274) chore: trigger CI jobs on all release-related branches (@mistercrunch)
|
||||
- [#29247](https://github.com/apache/superset/pull/29247) chore: translate strings to French (@eschutho)
|
||||
- [#29233](https://github.com/apache/superset/pull/29233) refactor(sqllab): nonblocking delete query editor (@justinpark)
|
||||
- [#29249](https://github.com/apache/superset/pull/29249) test(Explorer): Fix minor errors in ExploreViewContainer syntax, add tests (@rtexelm)
|
||||
- [#28876](https://github.com/apache/superset/pull/28876) chore(sqllab): Add logging for actions (@justinpark)
|
||||
- [#29245](https://github.com/apache/superset/pull/29245) test(storybook): fix component stories (@msyavuz)
|
||||
- [#29235](https://github.com/apache/superset/pull/29235) chore: Remove the need for explicit bubble up of certain exceptions (@john-bodley)
|
||||
- [#28628](https://github.com/apache/superset/pull/28628) chore: Set isolation level to READ COMMITTED for testing et al. (@john-bodley)
|
||||
- [#29108](https://github.com/apache/superset/pull/29108) refactor(sqllab): nonblocking switch query editor (@justinpark)
|
||||
- [#29232](https://github.com/apache/superset/pull/29232) build(deps-dev): bump braces from 3.0.2 to 3.0.3 in /superset-embedded-sdk (@dependabot[bot])
|
||||
- [#29226](https://github.com/apache/superset/pull/29226) chore(intros): Update INTHEWILD.md (@RIS3cz)
|
||||
- [#29167](https://github.com/apache/superset/pull/29167) build(deps-dev): bump braces from 3.0.2 to 3.0.3 in /superset-websocket (@dependabot[bot])
|
||||
- [#28836](https://github.com/apache/superset/pull/28836) chore(deps): bump distributions from 1.1.0 to 2.2.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29168](https://github.com/apache/superset/pull/29168) build(deps): bump braces from 3.0.2 to 3.0.3 in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#29169](https://github.com/apache/superset/pull/29169) build(deps): bump braces from 3.0.2 to 3.0.3 in /docs (@dependabot[bot])
|
||||
- [#28295](https://github.com/apache/superset/pull/28295) build(deps): update urijs requirement from ^1.19.8 to ^1.19.11 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#29160](https://github.com/apache/superset/pull/29160) chore: `s/MockFixture/MockerFixture/g` (@betodealmeida)
|
||||
- [#29142](https://github.com/apache/superset/pull/29142) docs: Add Analytics Aura to INTHEWILD (@visharavana)
|
||||
- [#29104](https://github.com/apache/superset/pull/29104) docs: Add Gavagai to INTHEWILD (@ninaviereckel)
|
||||
- [#28786](https://github.com/apache/superset/pull/28786) refactor: Removes the export of QueryFormData (@EnxDev)
|
||||
- [#28641](https://github.com/apache/superset/pull/28641) chore: change security error level (@eschutho)
|
||||
- [#29093](https://github.com/apache/superset/pull/29093) docs: various adjustments across the docs (@mholthausen)
|
||||
- [#29077](https://github.com/apache/superset/pull/29077) chore: only use cypress.io when triggered manually (@mistercrunch)
|
||||
- [#28571](https://github.com/apache/superset/pull/28571) chore: remove React 16.4's obsolete React imports (@hainenber)
|
||||
- [#28795](https://github.com/apache/superset/pull/28795) refactor(sqllab): nonblocking new query editor (@justinpark)
|
||||
- [#28822](https://github.com/apache/superset/pull/28822) chore(deps-dev): update @types/lodash requirement from ^4.17.0 to ^4.17.4 in /superset-frontend/plugins/plugin-chart-handlebars (@dependabot[bot])
|
||||
- [#28814](https://github.com/apache/superset/pull/28814) chore(deps): bump core-js from 3.8.3 to 3.37.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#28812](https://github.com/apache/superset/pull/28812) chore(deps): bump @types/lodash from 4.17.0 to 4.17.4 in /superset-websocket (@dependabot[bot])
|
||||
- [#28811](https://github.com/apache/superset/pull/28811) chore(deps): bump react-intersection-observer from 9.8.2 to 9.10.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#28808](https://github.com/apache/superset/pull/28808) chore(deps): bump @types/json-bigint from 1.0.1 to 1.0.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#28801](https://github.com/apache/superset/pull/28801) chore(deps-dev): bump @docusaurus/tsconfig from 3.3.2 to 3.4.0 in /docs (@dependabot[bot])
|
||||
- [#28799](https://github.com/apache/superset/pull/28799) chore(deps): bump @ant-design/icons from 5.3.6 to 5.3.7 in /docs (@dependabot[bot])
|
||||
- [#28802](https://github.com/apache/superset/pull/28802) chore(deps-dev): bump @types/react from 18.3.1 to 18.3.3 in /docs (@dependabot[bot])
|
||||
- [#28805](https://github.com/apache/superset/pull/28805) chore(deps): bump swagger-ui-react from 5.17.5 to 5.17.14 in /docs (@dependabot[bot])
|
||||
- [#28806](https://github.com/apache/superset/pull/28806) chore(deps-dev): bump @docusaurus/module-type-aliases from 3.2.1 to 3.4.0 in /docs (@dependabot[bot])
|
||||
- [#28809](https://github.com/apache/superset/pull/28809) chore(deps-dev): bump @types/node from 20.12.7 to 20.13.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#28817](https://github.com/apache/superset/pull/28817) chore(deps-dev): bump @hot-loader/react-dom from 16.13.0 to 16.14.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28827](https://github.com/apache/superset/pull/28827) chore(deps-dev): bump exports-loader from 0.7.0 to 5.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28826](https://github.com/apache/superset/pull/28826) chore(deps-dev): bump imports-loader from 3.1.1 to 5.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28824](https://github.com/apache/superset/pull/28824) chore(deps): bump react-window and @types/react-window in /superset-frontend (@dependabot[bot])
|
||||
- [#28823](https://github.com/apache/superset/pull/28823) chore(deps): bump debug from 4.3.4 to 4.3.5 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#28773](https://github.com/apache/superset/pull/28773) chore: make docker-compose use less memory (@mistercrunch)
|
||||
- [#28654](https://github.com/apache/superset/pull/28654) chore(revert): "add listener to repaint on visibility change for canvas" (@eschutho)
|
||||
- [#28752](https://github.com/apache/superset/pull/28752) chore: remove duplicate code in `SqlaTable` (@betodealmeida)
|
||||
- [#28710](https://github.com/apache/superset/pull/28710) chore: updated Dutch translations (@Seboeb)
|
||||
- [#28471](https://github.com/apache/superset/pull/28471) chore(🦾): bump python celery 5.3.6 -> 5.4.0 (@github-actions[bot])
|
||||
- [#28742](https://github.com/apache/superset/pull/28742) chore(deps): bump pug from 3.0.2 to 3.0.3 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#28716](https://github.com/apache/superset/pull/28716) chore(🦾): bump python importlib-resources 5.12.0 -> 6.4.0 (@github-actions[bot])
|
||||
- [#28718](https://github.com/apache/superset/pull/28718) chore(🦾): bump python zipp 3.18.2 -> 3.19.0 (@github-actions[bot])
|
||||
- [#28719](https://github.com/apache/superset/pull/28719) chore(🦾): bump python cachetools 5.3.2 -> 5.3.3 (@github-actions[bot])
|
||||
- [#28720](https://github.com/apache/superset/pull/28720) chore(🦾): bump python markdown-it-py 2.2.0 -> 3.0.0 (@github-actions[bot])
|
||||
- [#28721](https://github.com/apache/superset/pull/28721) chore(🦾): bump python slack-sdk 3.21.3 -> 3.27.2 (@github-actions[bot])
|
||||
- [#28727](https://github.com/apache/superset/pull/28727) chore(🦾): bump python prompt-toolkit 3.0.38 -> 3.0.44 (@github-actions[bot])
|
||||
- [#28729](https://github.com/apache/superset/pull/28729) chore(🦾): bump python attrs 23.1.0 -> 23.2.0 (@github-actions[bot])
|
||||
- [#28730](https://github.com/apache/superset/pull/28730) chore(🦾): bump python apsw 3.45.3.0 -> 3.46.0.0 (@github-actions[bot])
|
||||
- [#28731](https://github.com/apache/superset/pull/28731) chore(🦾): bump python pytz 2021.3 -> 2024.1 (@github-actions[bot])
|
||||
- [#28570](https://github.com/apache/superset/pull/28570) chore(tags): Handle tagging as part of asset update call (@Vitor-Avila)
|
||||
- [#28722](https://github.com/apache/superset/pull/28722) chore(🦾): bump python wrapt 1.15.0 -> 1.16.0 (@github-actions[bot])
|
||||
- [#28717](https://github.com/apache/superset/pull/28717) chore(🦾): bump python limits 3.4.0 -> 3.12.0 (@github-actions[bot])
|
||||
- [#28723](https://github.com/apache/superset/pull/28723) chore(🦾): bump python mako 1.3.3 -> 1.3.5 (@github-actions[bot])
|
||||
- [#28724](https://github.com/apache/superset/pull/28724) chore(🦾): bump python marshmallow-sqlalchemy 0.23.1 -> 0.28.2 (@github-actions[bot])
|
||||
- [#28725](https://github.com/apache/superset/pull/28725) chore(🦾): bump python wcwidth 0.2.5 -> 0.2.13 (@github-actions[bot])
|
||||
- [#28726](https://github.com/apache/superset/pull/28726) chore(🦾): bump python pyasn1 0.5.1 -> 0.6.0 (@github-actions[bot])
|
||||
- [#28732](https://github.com/apache/superset/pull/28732) chore(🦾): bump python google-auth 2.27.0 -> 2.29.0 (@github-actions[bot])
|
||||
- [#28733](https://github.com/apache/superset/pull/28733) chore(🦾): bump python certifi 2023.7.22 -> 2024.2.2 (@github-actions[bot])
|
||||
- [#28679](https://github.com/apache/superset/pull/28679) chore(🦾): bump python boto3 1.26.130 -> 1.34.112 (@github-actions[bot])
|
||||
- [#28703](https://github.com/apache/superset/pull/28703) chore: remove ipython from development dependencies (@mistercrunch)
|
||||
- [#28661](https://github.com/apache/superset/pull/28661) chore(🦾): bump python stack-data 0.6.2 -> 0.6.3 (@github-actions[bot])
|
||||
- [#28663](https://github.com/apache/superset/pull/28663) chore(🦾): bump python googleapis-common-protos 1.59.0 -> 1.63.0 (@github-actions[bot])
|
||||
- [#28669](https://github.com/apache/superset/pull/28669) chore(🦾): bump python ruff 0.4.4 -> 0.4.5 (@github-actions[bot])
|
||||
- [#28674](https://github.com/apache/superset/pull/28674) chore(🦾): bump python matplotlib 3.7.1 -> 3.9.0 (@github-actions[bot])
|
||||
- [#28696](https://github.com/apache/superset/pull/28696) chore(docs): address common docker compose error message in Quickstart (@sfirke)
|
||||
- [#28681](https://github.com/apache/superset/pull/28681) chore(🦾): bump python requests-oauthlib 1.3.1 -> 2.0.0 (@github-actions[bot])
|
||||
- [#28670](https://github.com/apache/superset/pull/28670) chore(🦾): bump python flask-limiter 3.3.1 -> 3.7.0 (@github-actions[bot])
|
||||
- [#28655](https://github.com/apache/superset/pull/28655) chore(🦾): bump python marshmallow 3.19.0 -> 3.21.2 (@github-actions[bot])
|
||||
- [#28590](https://github.com/apache/superset/pull/28590) chore(🦾): bump python bcrypt 4.0.1 -> 4.1.3 (@github-actions[bot])
|
||||
- [#28657](https://github.com/apache/superset/pull/28657) chore(🦾): bump python bottleneck 1.3.7 -> 1.3.8 (@github-actions[bot])
|
||||
- [#28658](https://github.com/apache/superset/pull/28658) chore(🦾): bump python cattrs 23.2.1 -> 23.2.3 (@github-actions[bot])
|
||||
- [#28659](https://github.com/apache/superset/pull/28659) chore(🦾): bump python typing-extensions 4.11.0 -> 4.12.0 (@github-actions[bot])
|
||||
- [#28660](https://github.com/apache/superset/pull/28660) chore(🦾): bump python wheel 0.40.0 -> 0.43.0 (@github-actions[bot])
|
||||
- [#28662](https://github.com/apache/superset/pull/28662) chore(🦾): bump python pexpect 4.8.0 -> 4.9.0 (@github-actions[bot])
|
||||
- [#28665](https://github.com/apache/superset/pull/28665) chore(🦾): bump python traitlets 5.9.0 -> 5.14.3 (@github-actions[bot])
|
||||
- [#28666](https://github.com/apache/superset/pull/28666) chore(🦾): bump python freezegun 1.4.0 -> 1.5.1 (@github-actions[bot])
|
||||
- [#28668](https://github.com/apache/superset/pull/28668) chore(🦾): bump python babel 2.9.1 -> 2.15.0 (@github-actions[bot])
|
||||
- [#28672](https://github.com/apache/superset/pull/28672) chore(🦾): bump python pyproject-api 1.5.2 -> 1.6.1 (@github-actions[bot])
|
||||
- [#28671](https://github.com/apache/superset/pull/28671) chore(🦾): bump python click-repl 0.2.0 -> 0.3.0 (@github-actions[bot])
|
||||
- [#28675](https://github.com/apache/superset/pull/28675) chore(🦾): bump python kombu 5.3.4 -> 5.3.7 (@github-actions[bot])
|
||||
- [#28676](https://github.com/apache/superset/pull/28676) chore(🦾): bump python cffi 1.15.1 -> 1.16.0 (@github-actions[bot])
|
||||
- [#28677](https://github.com/apache/superset/pull/28677) chore(🦾): bump python click-didyoumean 0.3.0 -> 0.3.1 (@github-actions[bot])
|
||||
- [#28680](https://github.com/apache/superset/pull/28680) chore(🦾): bump python identify 2.5.24 -> 2.5.36 (@github-actions[bot])
|
||||
- [#28682](https://github.com/apache/superset/pull/28682) chore(🦾): bump python pydruid 0.6.6 -> 0.6.9 (@github-actions[bot])
|
||||
- [#28683](https://github.com/apache/superset/pull/28683) chore(🦾): bump python kiwisolver 1.4.4 -> 1.4.5 (@github-actions[bot])
|
||||
- [#28684](https://github.com/apache/superset/pull/28684) chore(🦾): bump python requests 2.31.0 -> 2.32.2 (@github-actions[bot])
|
||||
- [#28574](https://github.com/apache/superset/pull/28574) chore(🦾): bump python dnspython 2.1.0 -> 2.6.1 (@github-actions[bot])
|
||||
- [#28573](https://github.com/apache/superset/pull/28573) chore(🦾): bump python rich 13.3.4 -> 13.7.1 (@github-actions[bot])
|
||||
- [#28535](https://github.com/apache/superset/pull/28535) chore(🦾): bump python pygments 2.15.0 -> 2.18.0 (@github-actions[bot])
|
||||
- [#28580](https://github.com/apache/superset/pull/28580) chore(🦾): bump python deprecated 1.2.13 -> 1.2.14 (@github-actions[bot])
|
||||
- [#28526](https://github.com/apache/superset/pull/28526) chore(🦾): bump python tzlocal 4.3 -> 5.2 (@github-actions[bot])
|
||||
- [#28533](https://github.com/apache/superset/pull/28533) chore(🦾): bump python lazy-object-proxy 1.9.0 -> 1.10.0 (@github-actions[bot])
|
||||
- [#28527](https://github.com/apache/superset/pull/28527) chore(🦾): bump python jsonlines 3.1.0 -> 4.0.0 (@github-actions[bot])
|
||||
- [#28576](https://github.com/apache/superset/pull/28576) chore(🦾): bump python flask-babel 1.0.0 -> 2.0.0 (@github-actions[bot])
|
||||
- [#28577](https://github.com/apache/superset/pull/28577) chore(🦾): bump python tqdm 4.65.0 -> 4.66.4 (@github-actions[bot])
|
||||
- [#28578](https://github.com/apache/superset/pull/28578) chore(🦾): bump python parso 0.8.3 -> 0.8.4 (@github-actions[bot])
|
||||
- [#28579](https://github.com/apache/superset/pull/28579) chore(🦾): bump python tzdata 2023.3 -> 2024.1 (@github-actions[bot])
|
||||
- [#28581](https://github.com/apache/superset/pull/28581) chore(🦾): bump python ijson 3.2.0.post0 -> 3.2.3 (@github-actions[bot])
|
||||
- [#28582](https://github.com/apache/superset/pull/28582) chore(🦾): bump python apsw 3.42.0.1 -> 3.45.3.0 (@github-actions[bot])
|
||||
- [#28583](https://github.com/apache/superset/pull/28583) chore(🦾): bump python distlib 0.3.6 -> 0.3.8 (@github-actions[bot])
|
||||
- [#28585](https://github.com/apache/superset/pull/28585) chore(🦾): bump python pycparser 2.20 -> 2.22 (@github-actions[bot])
|
||||
- [#28589](https://github.com/apache/superset/pull/28589) chore(🦾): bump python idna 3.2 -> 3.7 (@github-actions[bot])
|
||||
- [#28586](https://github.com/apache/superset/pull/28586) chore(🦾): bump python pre-commit 3.7.0 -> 3.7.1 (@github-actions[bot])
|
||||
- [#28587](https://github.com/apache/superset/pull/28587) chore(🦾): bump python sqlalchemy-bigquery 1.10.0 -> 1.11.0 (@github-actions[bot])
|
||||
- [#28588](https://github.com/apache/superset/pull/28588) chore(🦾): bump python google-resumable-media 2.5.0 -> 2.7.0 (@github-actions[bot])
|
||||
- [#28591](https://github.com/apache/superset/pull/28591) chore(🦾): bump python zipp 3.18.1 -> 3.18.2 (@github-actions[bot])
|
||||
- [#28593](https://github.com/apache/superset/pull/28593) chore(🦾): bump python pip-tools 7.3.0 -> 7.4.1 (@github-actions[bot])
|
||||
- [#28584](https://github.com/apache/superset/pull/28584) chore(🦾): bump python ruff 0.4.0 -> 0.4.4 (@github-actions[bot])
|
||||
- [#28540](https://github.com/apache/superset/pull/28540) chore(🦾): bump python tomlkit 0.11.8 -> 0.12.5 (@github-actions[bot])
|
||||
- [#28541](https://github.com/apache/superset/pull/28541) chore(🦾): bump python db-dtypes 1.1.1 -> 1.2.0 (@github-actions[bot])
|
||||
- [#28563](https://github.com/apache/superset/pull/28563) refactor(superset-ui-core): Migrate ChartFrame to RTL (@rtexelm)
|
||||
- [#28522](https://github.com/apache/superset/pull/28522) refactor: Migration of json utilities from core (@eyalezer)
|
||||
- [#28532](https://github.com/apache/superset/pull/28532) chore(🦾): bump python nodeenv 1.7.0 -> 1.8.0 (@github-actions[bot])
|
||||
- [#28537](https://github.com/apache/superset/pull/28537) chore(🦾): bump python numba 0.57.1 -> 0.59.1 (@github-actions[bot])
|
||||
- [#28539](https://github.com/apache/superset/pull/28539) chore(🦾): bump python dill 0.3.6 -> 0.3.8 (@github-actions[bot])
|
||||
- [#28531](https://github.com/apache/superset/pull/28531) chore(🦾): bump python charset-normalizer 3.2.0 -> 3.3.2 (@github-actions[bot])
|
||||
- [#28530](https://github.com/apache/superset/pull/28530) chore(🦾): bump python jsonschema-spec 0.1.4 -> 0.1.6 (@github-actions[bot])
|
||||
- [#28474](https://github.com/apache/superset/pull/28474) chore(🦾): bump python croniter 2.0.3 -> 2.0.5 (@github-actions[bot])
|
||||
- [#28536](https://github.com/apache/superset/pull/28536) chore(🦾): bump python amqp 5.1.1 -> 5.2.0 (@github-actions[bot])
|
||||
- [#28544](https://github.com/apache/superset/pull/28544) chore(🦾): bump python flask-jwt-extended 4.5.3 -> 4.6.0 (@github-actions[bot])
|
||||
- [#28542](https://github.com/apache/superset/pull/28542) chore(🦾): bump python requests-cache 1.1.1 -> 1.2.0 (@github-actions[bot])
|
||||
- [#28528](https://github.com/apache/superset/pull/28528) chore(🦾): bump python zope-event 4.5.0 -> 5.0 (@github-actions[bot])
|
||||
- [#28545](https://github.com/apache/superset/pull/28545) chore(🦾): bump python pyasn1-modules 0.3.0 -> 0.4.0 (@github-actions[bot])
|
||||
- [#28500](https://github.com/apache/superset/pull/28500) chore(🦾): bump python fonttools 4.43.0 -> 4.51.0 (@github-actions[bot])
|
||||
- [#28503](https://github.com/apache/superset/pull/28503) chore(🦾): bump python email-validator 1.1.3 -> 2.1.1 (@github-actions[bot])
|
||||
- [#28506](https://github.com/apache/superset/pull/28506) chore(🦾): bump python numexpr 2.9.0 -> 2.10.0 (@github-actions[bot])
|
||||
- [#28508](https://github.com/apache/superset/pull/28508) chore(docker): Reduce image size and update GECKODRIVER_VERSION ,FIRE… (@alekseyolg)
|
||||
- [#28499](https://github.com/apache/superset/pull/28499) docs: creating a redirect for a legacy link about pre-commit hook (@rusackas)
|
||||
- [#28520](https://github.com/apache/superset/pull/28520) chore: Adds setActiveTabs back (@michael-s-molina)
|
||||
- [#27951](https://github.com/apache/superset/pull/27951) chore(docs): updating alerts & reports documentation WEBDRIVER_BASEURL settings for docker compose (@fisjac)
|
||||
- [#28435](https://github.com/apache/superset/pull/28435) chore(D2D): Add granular permission for dashboard drilling operations (@Vitor-Avila)
|
||||
- [#28399](https://github.com/apache/superset/pull/28399) chore: deprecate old Dashboard endpoints (@dpgaspar)
|
||||
- [#28492](https://github.com/apache/superset/pull/28492) chore: deprecate multiple old APIs (@dpgaspar)
|
||||
- [#28490](https://github.com/apache/superset/pull/28490) chore: bump gunicorn to 22.0.0 (@dpgaspar)
|
||||
- [#28498](https://github.com/apache/superset/pull/28498) chore: Don't mark Helm releases as latest (@michael-s-molina)
|
||||
- [#28046](https://github.com/apache/superset/pull/28046) refactor: Migrate saveModalActions to TypeScript (@EnxDev)
|
||||
- [#28484](https://github.com/apache/superset/pull/28484) chore: remove lost file (@betodealmeida)
|
||||
- [#28309](https://github.com/apache/superset/pull/28309) build(deps): bump ejs from 3.1.8 to 3.1.10 in /superset-frontend (@dependabot[bot])
|
||||
- [#28467](https://github.com/apache/superset/pull/28467) chore(🦾): bump python redis subpackage(s) (@github-actions[bot])
|
||||
- [#28469](https://github.com/apache/superset/pull/28469) chore(🦾): bump python flask-compress 1.14 -> 1.15 (@github-actions[bot])
|
||||
- [#28453](https://github.com/apache/superset/pull/28453) chore: deprecate old Dataset related endpoints (@dpgaspar)
|
||||
- [#28479](https://github.com/apache/superset/pull/28479) chore(🦾): bump python geopy subpackage(s) (@github-actions[bot])
|
||||
- [#28468](https://github.com/apache/superset/pull/28468) chore(🦾): bump python cryptography 42.0.5 -> 42.0.7 (@github-actions[bot])
|
||||
- [#28472](https://github.com/apache/superset/pull/28472) chore(🦾): bump python flask-session subpackage(s) (@github-actions[bot])
|
||||
- [#28465](https://github.com/apache/superset/pull/28465) chore(🦾): bump python flask-migrate subpackage(s) (@github-actions[bot])
|
||||
- [#28464](https://github.com/apache/superset/pull/28464) chore(🦾): bump python markdown subpackage(s) (@github-actions[bot])
|
||||
- [#28463](https://github.com/apache/superset/pull/28463) chore(🦾): bump python flask-caching 2.1.0 -> 2.3.0 (@github-actions[bot])
|
||||
- [#28436](https://github.com/apache/superset/pull/28436) chore(models): Adding encrypted field checks (@craig-rueda)
|
||||
- [#28456](https://github.com/apache/superset/pull/28456) chore(helm): bumping app version to 4.0.1 in helm chart (@lodu)
|
||||
- [#28452](https://github.com/apache/superset/pull/28452) chore: Updates CHANGELOG.md with 4.0.1 data (@michael-s-molina)
|
||||
- [#28404](https://github.com/apache/superset/pull/28404) chore: deprecate old Database endpoints (@dpgaspar)
|
||||
- [#28421](https://github.com/apache/superset/pull/28421) chore(🦾): bump python werkzeug 3.0.1 -> 3.0.3 (@mistercrunch)
|
||||
- [#28430](https://github.com/apache/superset/pull/28430) chore(docs): fix two broken Docusaurus redirect links (@sfirke)
|
||||
- [#28379](https://github.com/apache/superset/pull/28379) chore(build): fix issue that prevent `eslint` displaying type-check report during build (@hainenber)
|
||||
- [#28393](https://github.com/apache/superset/pull/28393) chore(Databricks): New Databricks driver (@Vitor-Avila)
|
||||
- [#28406](https://github.com/apache/superset/pull/28406) chore: unit tests for `catalog_access` (@betodealmeida)
|
||||
- [#28398](https://github.com/apache/superset/pull/28398) chore: Updates CHANGELOG.md with 3.1.3 data (@michael-s-molina)
|
||||
- [#28358](https://github.com/apache/superset/pull/28358) chore: add a github "action-validator" in CI (@mistercrunch)
|
||||
- [#28387](https://github.com/apache/superset/pull/28387) chore: remove and deprecate old CSS templates endpoints (@dpgaspar)
|
||||
- [#28342](https://github.com/apache/superset/pull/28342) chore(build): uplift `webpack`-related packages to v5 (@hainenber)
|
||||
- [#28373](https://github.com/apache/superset/pull/28373) docs: update CVE list (@dpgaspar)
|
||||
- [#28359](https://github.com/apache/superset/pull/28359) refactor(superset-ui-core): Migrate FallbackComponent.test to RTL (@rtexelm)
|
||||
- [#28360](https://github.com/apache/superset/pull/28360) docs: clarifying that config.SQL_QUERY_MUTATOR does not affect cache (@mistercrunch)
|
||||
- [#28362](https://github.com/apache/superset/pull/28362) build(deps): bump swagger-ui-react from 5.17.2 to 5.17.5 in /docs (@dependabot[bot])
|
||||
- [#28344](https://github.com/apache/superset/pull/28344) docs(intro): embed overview video into README.md (@hainenber)
|
||||
- [#28335](https://github.com/apache/superset/pull/28335) chore: Add Apache Spark Jinja template processor (@john-bodley)
|
||||
- [#28285](https://github.com/apache/superset/pull/28285) docs: various improvements across the docs (@mistercrunch)
|
||||
- [#28288](https://github.com/apache/superset/pull/28288) build(deps): bump ws from 8.16.0 to 8.17.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#23730](https://github.com/apache/superset/pull/23730) docs: add npm publish steps to release/readme (@lilykuang)
|
||||
- [#28308](https://github.com/apache/superset/pull/28308) refactor(helm): Allow chart operators to exclude the creation of the secret manifest (@asaf400)
|
||||
- [#28321](https://github.com/apache/superset/pull/28321) chore(dev): remove obsolete image reference to `superset-websocket` + fix minor typo (@hainenber)
|
||||
- [#28311](https://github.com/apache/superset/pull/28311) chore: Move #26288 from "Database Migration" to "Other" (@john-bodley)
|
||||
- [#28154](https://github.com/apache/superset/pull/28154) chore(commands): Remove unnecessary commit (@john-bodley)
|
||||
- [#28298](https://github.com/apache/superset/pull/28298) build(deps): bump markdown-to-jsx from 7.4.1 to 7.4.7 in /superset-frontend (@dependabot[bot])
|
||||
- [#28301](https://github.com/apache/superset/pull/28301) build(deps): bump clsx from 2.1.0 to 2.1.1 in /docs (@dependabot[bot])
|
||||
- [#28306](https://github.com/apache/superset/pull/28306) build(deps-dev): bump eslint-plugin-testing-library from 6.2.0 to 6.2.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#28246](https://github.com/apache/superset/pull/28246) chore: clean up DB create command (@betodealmeida)
|
||||
- [#28284](https://github.com/apache/superset/pull/28284) chore(docs): video now hosted by ASF instead of GitHub (@rusackas)
|
||||
- [#28281](https://github.com/apache/superset/pull/28281) docs: merge database config under Configuration section (@mistercrunch)
|
||||
- [#28278](https://github.com/apache/superset/pull/28278) chore: allow codecov to detect SHA (@mistercrunch)
|
||||
- [#28276](https://github.com/apache/superset/pull/28276) chore: use depth=1 for cloning (@rantoniuk)
|
||||
- [#28163](https://github.com/apache/superset/pull/28163) docs(intro): embed overview video into Intro document (@hainenber)
|
||||
- [#28275](https://github.com/apache/superset/pull/28275) docs(upgrading): clarify upgrade process (@SaTae66)
|
||||
- [#28187](https://github.com/apache/superset/pull/28187) chore(superset-ui-core and NoResultsComponent): Migrate to RTL, add RTL modules to the ui-core (@rtexelm)
|
||||
- [#27891](https://github.com/apache/superset/pull/27891) chore(AlteredSliceTag): Migrate to functional (@rtexelm)
|
||||
- [#28247](https://github.com/apache/superset/pull/28247) docs: set up redirects (@mistercrunch)
|
||||
- [#28240](https://github.com/apache/superset/pull/28240) build(deps): bump polished from 3.7.2 to 4.3.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#27003](https://github.com/apache/superset/pull/27003) docs(maps): jupyter notebook now auto-updates docs site (@rusackas)
|
||||
- [#28220](https://github.com/apache/superset/pull/28220) docs: reorganize the CONTRIBUTING section (@mistercrunch)
|
||||
- [#28243](https://github.com/apache/superset/pull/28243) chore(docs): Move ::: onto its own line to fix caution formatting (@sfirke)
|
||||
- [#28236](https://github.com/apache/superset/pull/28236) chore(docs): add closing ::: to caution tag (@sfirke)
|
||||
- [#28237](https://github.com/apache/superset/pull/28237) chore(docs): reorder pages in the Configuring Superset section (@sfirke)
|
||||
- [#28153](https://github.com/apache/superset/pull/28153) chore: Add custom keywords for SQL Lab autocomplete (@justinpark)
|
||||
- [#28223](https://github.com/apache/superset/pull/28223) chore(plugin-chart-country-map): fix broken urls (@villebro)
|
||||
- [#28217](https://github.com/apache/superset/pull/28217) docs: update README.md to avoid 404 issue (@schuberng)
|
||||
- [#28137](https://github.com/apache/superset/pull/28137) chore: add pylint to pre-commit hook (@mistercrunch)
|
||||
- [#28161](https://github.com/apache/superset/pull/28161) docs: Refactor Documentation Structure (@artofcomputing)
|
||||
- [#28159](https://github.com/apache/superset/pull/28159) chore(tests): Remove unnecessary/problematic app contexts (@john-bodley)
|
||||
- [#28130](https://github.com/apache/superset/pull/28130) docs: add dynamic entity-relationship diagram to docs (@mistercrunch)
|
||||
- [#27831](https://github.com/apache/superset/pull/27831) build(deps): update @types/fetch-mock requirement from ^7.3.3 to ^7.3.8 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#28177](https://github.com/apache/superset/pull/28177) build(deps): bump gh-pages from 3.2.3 to 5.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28134](https://github.com/apache/superset/pull/28134) chore: clean up console upon firing up the CLI (@mistercrunch)
|
||||
- [#28135](https://github.com/apache/superset/pull/28135) chore: get websocket service to start in docker-compose (@mistercrunch)
|
||||
- [#28164](https://github.com/apache/superset/pull/28164) chore: refactor file upload commands (@dpgaspar)
|
||||
- [#28019](https://github.com/apache/superset/pull/28019) chore: change deprecation versions post 4.0 (@eschutho)
|
||||
- [#28129](https://github.com/apache/superset/pull/28129) chore(translations): add Arabic translations stub (@OmarIthawi)
|
||||
- [#28031](https://github.com/apache/superset/pull/28031) chore(translations): fix translations order (@lscheibel)
|
||||
- [#28082](https://github.com/apache/superset/pull/28082) build(deps): bump match-sorter from 6.3.3 to 6.3.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#28085](https://github.com/apache/superset/pull/28085) build(deps): bump react-virtualized-auto-sizer from 1.0.7 to 1.0.24 in /superset-frontend (@dependabot[bot])
|
||||
- [#28069](https://github.com/apache/superset/pull/28069) build(deps): update underscore requirement from ^1.12.1 to ^1.13.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#28075](https://github.com/apache/superset/pull/28075) build(deps): update prop-types requirement from ^15.6.0 to ^15.8.1 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#28068](https://github.com/apache/superset/pull/28068) build(deps-dev): bump fs-extra from 10.1.0 to 11.2.0 in /superset-frontend/packages/generator-superset (@dependabot[bot])
|
||||
- [#28083](https://github.com/apache/superset/pull/28083) build(deps): bump @types/node from 18.0.0 to 20.12.7 in /superset-frontend (@dependabot[bot])
|
||||
- [#28071](https://github.com/apache/superset/pull/28071) build(deps): update xss requirement from ^1.0.10 to ^1.0.15 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#27965](https://github.com/apache/superset/pull/27965) build(deps): bump deck.gl from 8.8.27 to 9.0.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#28131](https://github.com/apache/superset/pull/28131) docs: Updated quick start page. Docker compose command had a typo (@jonedmiston)
|
||||
- [#26746](https://github.com/apache/superset/pull/26746) build(deps): bump chrono-node from 2.2.6 to 2.7.5 in /superset-frontend (@dependabot[bot])
|
||||
- [#26896](https://github.com/apache/superset/pull/26896) build(deps): bump d3-interpolate and @types/d3-interpolate in /superset-frontend (@dependabot[bot])
|
||||
- [#26564](https://github.com/apache/superset/pull/26564) build(deps-dev): bump babel-plugin-jsx-remove-data-test-id from 2.1.3 to 3.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#26563](https://github.com/apache/superset/pull/26563) build(deps-dev): bump @types/js-levenshtein from 1.1.0 to 1.1.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#28080](https://github.com/apache/superset/pull/28080) build(deps-dev): bump @docusaurus/module-type-aliases from 3.2.0 to 3.2.1 in /docs (@dependabot[bot])
|
||||
- [#28084](https://github.com/apache/superset/pull/28084) build(deps-dev): bump @applitools/eyes-storybook from 3.46.0 to 3.49.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28086](https://github.com/apache/superset/pull/28086) build(deps-dev): bump eslint-plugin-storybook from 0.6.15 to 0.8.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28089](https://github.com/apache/superset/pull/28089) build(deps-dev): bump jsdom from 20.0.0 to 24.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28088](https://github.com/apache/superset/pull/28088) build(deps-dev): bump esbuild-loader from 4.0.3 to 4.1.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#28067](https://github.com/apache/superset/pull/28067) build(deps): bump @types/d3-scale from 2.2.10 to 4.0.8 in /superset-frontend/plugins/plugin-chart-word-cloud (@dependabot[bot])
|
||||
- [#27340](https://github.com/apache/superset/pull/27340) build(deps): bump azure/setup-helm from 3 to 4 (@dependabot[bot])
|
||||
- [#28070](https://github.com/apache/superset/pull/28070) build(deps-dev): bump @types/node from 20.12.4 to 20.12.7 in /superset-websocket (@dependabot[bot])
|
||||
- [#28065](https://github.com/apache/superset/pull/28065) build(deps): update dompurify requirement from ^3.0.11 to ^3.1.0 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (@dependabot[bot])
|
||||
- [#28066](https://github.com/apache/superset/pull/28066) build(deps): update @types/lodash requirement from ^4.14.149 to ^4.17.0 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#26602](https://github.com/apache/superset/pull/26602) refactor: add "button" role to clickable UI elements for improved accessibility (@eulloa10)
|
||||
- [#28127](https://github.com/apache/superset/pull/28127) chore(Dashboard): Improve accessibility chart descriptions (@geido)
|
||||
- [#28081](https://github.com/apache/superset/pull/28081) build(deps): bump react-intersection-observer from 9.6.0 to 9.8.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#28090](https://github.com/apache/superset/pull/28090) build(deps-dev): bump babel-loader from 8.3.0 to 9.1.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#28092](https://github.com/apache/superset/pull/28092) build(deps-dev): bump @types/react-gravatar from 2.6.8 to 2.6.14 in /superset-frontend (@dependabot[bot])
|
||||
- [#28102](https://github.com/apache/superset/pull/28102) docs: small fixes and update of README screenshots (@artofcomputing)
|
||||
- [#28059](https://github.com/apache/superset/pull/28059) chore(Dashboard): Improve Table accessibility (@geido)
|
||||
- [#28099](https://github.com/apache/superset/pull/28099) chore(asf): setting website staging server to point at superset-site's lfs branch (@rusackas)
|
||||
- [#28016](https://github.com/apache/superset/pull/28016) chore(docs): splitting out "stable" feature flags by intent (config vs feature dev) (@rusackas)
|
||||
- [#28077](https://github.com/apache/superset/pull/28077) build(deps): bump @algolia/client-search from 4.23.2 to 4.23.3 in /docs (@dependabot[bot])
|
||||
- [#28074](https://github.com/apache/superset/pull/28074) build(deps-dev): bump typescript from 5.4.3 to 5.4.5 in /docs (@dependabot[bot])
|
||||
- [#28048](https://github.com/apache/superset/pull/28048) chore(asf): disable calendar display by default, click to show (@rusackas)
|
||||
- [#27921](https://github.com/apache/superset/pull/27921) docs: add more warnings for default secrets and docker-compose (@dpgaspar)
|
||||
- [#28064](https://github.com/apache/superset/pull/28064) chore(csp): nix bugherd, add githubusercontent (@rusackas)
|
||||
- [#27998](https://github.com/apache/superset/pull/27998) docs: move mp4 video to superset-site/tree/lfs (@mistercrunch)
|
||||
- [#27978](https://github.com/apache/superset/pull/27978) chore(ASF): adds DOAP file and bumping apache-rat (@rusackas)
|
||||
- [#28041](https://github.com/apache/superset/pull/28041) chore: Updates release related assets (@michael-s-molina)
|
||||
- [#28045](https://github.com/apache/superset/pull/28045) chore(docs): disable bugherd for now (@rusackas)
|
||||
- [#28028](https://github.com/apache/superset/pull/28028) chore: stabilize MySQL tests by aligning isolation levels (@mistercrunch)
|
||||
- [#27884](https://github.com/apache/superset/pull/27884) chore: consolidate the Superset python package metadata (@mistercrunch)
|
||||
- [#28040](https://github.com/apache/superset/pull/28040) docs: Updated NOTICE to 2024 (@esivakumar26)
|
||||
- [#28015](https://github.com/apache/superset/pull/28015) chore(Dashboard): Accessibility filters Popover (@geido)
|
||||
- [#27999](https://github.com/apache/superset/pull/27999) chore: Revert "chore(ci): make pre-commit step faster by skipping superset install" (@mistercrunch)
|
||||
- [#28012](https://github.com/apache/superset/pull/28012) refactor: rename get_sqla_engine_with_context (@betodealmeida)
|
||||
- [#27980](https://github.com/apache/superset/pull/27980) chore: remove no-op.yml as it's not needed anymore (@mistercrunch)
|
||||
- [#27979](https://github.com/apache/superset/pull/27979) chore(ci): make pre-commit step faster by skipping superset install (@mistercrunch)
|
||||
- [#27956](https://github.com/apache/superset/pull/27956) docs: deploy docs when merging to master (@mistercrunch)
|
||||
- [#27906](https://github.com/apache/superset/pull/27906) chore: [proposal] de-matrix python-version in GHAs (@mistercrunch)
|
||||
- [#27976](https://github.com/apache/superset/pull/27976) chore(docs): remove seemingly unused unpkg domain from CSPs (@rusackas)
|
||||
- [#27977](https://github.com/apache/superset/pull/27977) chore(docs): removing Superset Community Newsletter archive (@rusackas)
|
||||
- [#27975](https://github.com/apache/superset/pull/27975) chore(docs): adding ASF Privacy Link. (@rusackas)
|
||||
- [#27954](https://github.com/apache/superset/pull/27954) docs(k8s): making it clear users MUST update secrets for prod instances. (@rusackas)
|
||||
- [#27810](https://github.com/apache/superset/pull/27810) build(deps-dev): update @types/mapbox\_\_geojson-extent requirement from ^1.0.0 to ^1.0.3 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#27946](https://github.com/apache/superset/pull/27946) chore(helm): bumping app version to 4.0.0 in helm chart (@lodu)
|
||||
- [#27149](https://github.com/apache/superset/pull/27149) chore(tests): Remove ineffectual login (@john-bodley)
|
||||
- [#27937](https://github.com/apache/superset/pull/27937) chore: Adds 4.0.0 data to CHANGELOG.md and UPDATING.md (@michael-s-molina)
|
||||
- [#27932](https://github.com/apache/superset/pull/27932) docs: fix broken OS Dependencies link in CONTRIBUTING.md (@bgreenlee)
|
||||
- [#27717](https://github.com/apache/superset/pull/27717) chore(explore): Hide non-droppable metric and column list (@justinpark)
|
||||
- [#27880](https://github.com/apache/superset/pull/27880) chore(OAuth2): refactor for custom OAuth2 clients (@betodealmeida)
|
||||
- [#27915](https://github.com/apache/superset/pull/27915) chore(helm): Bumping app version to 3.1.2 in helm chart (@joshkoeneHawking)
|
||||
- [#27334](https://github.com/apache/superset/pull/27334) build(deps-dev): update @babel/types requirement from ^7.23.9 to ^7.24.0 in /superset-frontend/plugins/plugin-chart-pivot-table (@dependabot[bot])
|
||||
- [#27321](https://github.com/apache/superset/pull/27321) build(deps-dev): bump fork-ts-checker-webpack-plugin from 5.2.1 to 9.0.2 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#27322](https://github.com/apache/superset/pull/27322) build(deps): bump memoize-one from 5.2.1 to 6.0.0 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#27319](https://github.com/apache/superset/pull/27319) build(deps): update @types/d3-time requirement from ^3.0.0 to ^3.0.3 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#27903](https://github.com/apache/superset/pull/27903) docs: replace broken david badges with libraries.io (@10xLaCroixDrinker)
|
||||
- [#27725](https://github.com/apache/superset/pull/27725) chore(sqllab): Do not strip comments when executing SQL statements (@john-bodley)
|
||||
- [#27888](https://github.com/apache/superset/pull/27888) build(deps-dev): bump @types/node from 20.11.24 to 20.12.4 in /superset-websocket (@dependabot[bot])
|
||||
- [#27805](https://github.com/apache/superset/pull/27805) build(deps): bump @types/lodash from 4.14.202 to 4.17.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#27887](https://github.com/apache/superset/pull/27887) build(deps): bump fetch-retry from 4.1.1 to 6.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#27772](https://github.com/apache/superset/pull/27772) chore: Cleanup table access check naming (@john-bodley)
|
||||
- [#27804](https://github.com/apache/superset/pull/27804) build(deps): bump winston from 3.11.0 to 3.13.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#27800](https://github.com/apache/superset/pull/27800) build(deps-dev): update @types/lodash requirement from ^4.14.202 to ^4.17.0 in /superset-frontend/plugins/plugin-chart-handlebars (@dependabot[bot])
|
||||
- [#27318](https://github.com/apache/superset/pull/27318) build(deps): update lodash requirement from ^4.17.15 to ^4.17.21 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#27317](https://github.com/apache/superset/pull/27317) build(deps): bump bootstrap-slider from 10.6.2 to 11.0.2 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#26975](https://github.com/apache/superset/pull/26975) build(deps-dev): update @types/jest requirement from ^29.5.11 to ^29.5.12 in /superset-frontend/plugins/plugin-chart-pivot-table (@dependabot[bot])
|
||||
- [#27833](https://github.com/apache/superset/pull/27833) build(deps): update @types/react-table requirement from ^7.7.19 to ^7.7.20 in /superset-frontend/plugins/plugin-chart-table (@dependabot[bot])
|
||||
- [#27813](https://github.com/apache/superset/pull/27813) build(deps): bump @docsearch/react from 3.5.2 to 3.6.0 in /docs (@dependabot[bot])
|
||||
- [#27864](https://github.com/apache/superset/pull/27864) chore(🦾): bump python pytest 7.3.1 -> 7.4.4 (@github-actions[bot])
|
||||
- [#27343](https://github.com/apache/superset/pull/27343) build(deps-dev): bump @types/underscore from 1.11.6 to 1.11.15 in /superset-frontend (@dependabot[bot])
|
||||
- [#27852](https://github.com/apache/superset/pull/27852) refactor: Move fetchTimeRange to core package (@kgabryje)
|
||||
- [#27843](https://github.com/apache/superset/pull/27843) chore: Default to engine specification regarding using wildcard (@john-bodley)
|
||||
- [#27878](https://github.com/apache/superset/pull/27878) chore: Updates CHANGELOG.md with 3.1.2 data (@michael-s-molina)
|
||||
- [#27867](https://github.com/apache/superset/pull/27867) chore(🦾): bump python pylint 2.17.7 -> 3.1.0 (@github-actions[bot])
|
||||
- [#27836](https://github.com/apache/superset/pull/27836) build(deps-dev): bump @types/redux-mock-store from 1.0.2 to 1.0.6 in /superset-frontend (@dependabot[bot])
|
||||
- [#27858](https://github.com/apache/superset/pull/27858) chore(sql_parse): Provide more meaningful SQLGlot errors (@john-bodley)
|
||||
- [#27824](https://github.com/apache/superset/pull/27824) build(deps): bump @algolia/client-search from 4.22.1 to 4.23.2 in /docs (@dependabot[bot])
|
||||
- [#27816](https://github.com/apache/superset/pull/27816) build(deps): bump dompurify from 2.4.9 to 3.0.11 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (@dependabot[bot])
|
||||
- [#27874](https://github.com/apache/superset/pull/27874) chore(🦾): bump python pyfakefs 5.2.2 -> 5.3.5 (@github-actions[bot])
|
||||
- [#27872](https://github.com/apache/superset/pull/27872) chore(🦾): bump python grpcio 1.60.1 -> 1.62.1 (@github-actions[bot])
|
||||
- [#27868](https://github.com/apache/superset/pull/27868) chore(🦾): bump python google-cloud-bigquery 3.20.0 -> 3.20.1 (@github-actions[bot])
|
||||
- [#27866](https://github.com/apache/superset/pull/27866) chore(🦾): bump python pytest-cov 4.0.0 -> 5.0.0 (@github-actions[bot])
|
||||
- [#27871](https://github.com/apache/superset/pull/27871) chore(🦾): bump python sqloxide 0.1.33 -> 0.1.43 (@github-actions[bot])
|
||||
- [#27875](https://github.com/apache/superset/pull/27875) chore(🦾): bump python sqlglot 23.2.0 -> 23.6.3 (@github-actions[bot])
|
||||
- [#27870](https://github.com/apache/superset/pull/27870) chore(🦾): bump python docker 6.1.1 -> 7.0.0 (@github-actions[bot])
|
||||
- [#27869](https://github.com/apache/superset/pull/27869) chore(🦾): bump python freezegun 1.2.2 -> 1.4.0 (@github-actions[bot])
|
||||
- [#27873](https://github.com/apache/superset/pull/27873) chore(🦾): bump python pillow 10.2.0 -> 10.3.0 (@github-actions[bot])
|
||||
- [#27865](https://github.com/apache/superset/pull/27865) chore(🦾): bump python pre-commit 3.3.3 -> 3.7.0 (@github-actions[bot])
|
||||
- [#27791](https://github.com/apache/superset/pull/27791) docs: small cleanup (@artofcomputing)
|
||||
- [#27835](https://github.com/apache/superset/pull/27835) build(deps): update xss requirement from ^1.0.14 to ^1.0.15 in /superset-frontend/plugins/plugin-chart-table (@dependabot[bot])
|
||||
- [#27808](https://github.com/apache/superset/pull/27808) build(deps-dev): bump react-test-renderer from 16.9.0 to 16.14.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#27819](https://github.com/apache/superset/pull/27819) build(deps): bump @ant-design/icons from 5.3.1 to 5.3.6 in /docs (@dependabot[bot])
|
||||
- [#27842](https://github.com/apache/superset/pull/27842) chore(sql_parse): Strip leading/trailing whitespace in Jinja macro extraction (@john-bodley)
|
||||
- [#27198](https://github.com/apache/superset/pull/27198) chore(node): bumping Superset to Node 18 (@rusackas)
|
||||
- [#27814](https://github.com/apache/superset/pull/27814) build(deps-dev): bump typescript from 5.3.3 to 5.4.3 in /docs (@dependabot[bot])
|
||||
- [#27818](https://github.com/apache/superset/pull/27818) build(deps-dev): bump @docusaurus/module-type-aliases from 3.1.1 to 3.2.0 in /docs (@dependabot[bot])
|
||||
- [#27823](https://github.com/apache/superset/pull/27823) build(deps-dev): bump @tsconfig/docusaurus from 2.0.2 to 2.0.3 in /docs (@dependabot[bot])
|
||||
- [#24112](https://github.com/apache/superset/pull/24112) chore: Bump to Python3.10 (@EugeneTorap)
|
||||
- [#27802](https://github.com/apache/superset/pull/27802) build(deps): bump actions/github-script from 5 to 7 (@dependabot[bot])
|
||||
- [#27751](https://github.com/apache/superset/pull/27751) chore(🦾): bump python flask-session 0.5.0 -> 0.8.0 (@github-actions[bot])
|
||||
- [#27757](https://github.com/apache/superset/pull/27757) chore(🦾): bump python simplejson 3.17.3 -> 3.19.2 (@github-actions[bot])
|
||||
- [#27839](https://github.com/apache/superset/pull/27839) chore: Updates translation owners (@michael-s-molina)
|
||||
- [#27754](https://github.com/apache/superset/pull/27754) chore(🦾): bump python thrift 0.16.0 -> 0.20.0 (@github-actions[bot])
|
||||
- [#27612](https://github.com/apache/superset/pull/27612) docs: simplify the Quickstart guide (@mistercrunch)
|
||||
- [#27750](https://github.com/apache/superset/pull/27750) chore(🦾): bump python pandas-gbq 0.19.1 -> 0.22.0 (@github-actions[bot])
|
||||
- [#27747](https://github.com/apache/superset/pull/27747) chore(🦾): bump python xlsxwriter 3.0.7 -> 3.0.9 (@github-actions[bot])
|
||||
- [#27758](https://github.com/apache/superset/pull/27758) chore(🦾): bump python google-cloud-bigquery 3.10.0 -> 3.20.0 (@github-actions[bot])
|
||||
- [#27759](https://github.com/apache/superset/pull/27759) chore(🦾): bump python python-dotenv 0.19.0 -> 1.0.1 (@github-actions[bot])
|
||||
- [#27748](https://github.com/apache/superset/pull/27748) chore(🦾): bump python flask-cors 3.0.10 -> 4.0.0 (@github-actions[bot])
|
||||
- [#27746](https://github.com/apache/superset/pull/27746) chore(🦾): bump python cron-descriptor 1.2.24 -> 1.4.3 (@github-actions[bot])
|
||||
- [#27749](https://github.com/apache/superset/pull/27749) chore(🦾): bump python sqlglot 23.0.2 -> 23.2.0 (@github-actions[bot])
|
||||
- [#27756](https://github.com/apache/superset/pull/27756) chore(🦾): bump python humanize 3.11.0 -> 4.9.0 (@github-actions[bot])
|
||||
- [#27755](https://github.com/apache/superset/pull/27755) chore(🦾): bump python flask-talisman 1.0.0 -> 1.1.0 (@github-actions[bot])
|
||||
- [#27753](https://github.com/apache/superset/pull/27753) chore(🦾): bump python packaging 23.1 -> 23.2 (@github-actions[bot])
|
||||
- [#27752](https://github.com/apache/superset/pull/27752) chore(🦾): bump python google-cloud-bigquery 3.10.0 -> 3.20.0 (@github-actions[bot])
|
||||
- [#27728](https://github.com/apache/superset/pull/27728) chore(🦾): bump python gevent 23.9.1 -> 24.2.1 (@github-actions[bot])
|
||||
- [#27740](https://github.com/apache/superset/pull/27740) chore(🦾): bump python flask-compress 1.13 -> 1.14 (@github-actions[bot])
|
||||
- [#27729](https://github.com/apache/superset/pull/27729) chore(🦾): bump python mysqlclient 2.1.0 -> 2.2.4 (@github-actions[bot])
|
||||
- [#27727](https://github.com/apache/superset/pull/27727) chore(🦾): bump python sqlalchemy-bigquery 1.6.1 -> 1.10.0 (@github-actions[bot])
|
||||
- [#27732](https://github.com/apache/superset/pull/27732) chore(🦾): bump python tableschema 1.20.2 -> 1.20.10 (@github-actions[bot])
|
||||
- [#27733](https://github.com/apache/superset/pull/27733) chore(🦾): bump python tabulate 0.8.9 -> 0.8.10 (@github-actions[bot])
|
||||
- [#27735](https://github.com/apache/superset/pull/27735) chore(🦾): bump python mako 1.2.4 -> 1.3.2 (@github-actions[bot])
|
||||
- [#27736](https://github.com/apache/superset/pull/27736) chore(🦾): bump python python-dateutil 2.8.2 -> 2.9.0.post0 (@github-actions[bot])
|
||||
- [#27737](https://github.com/apache/superset/pull/27737) chore(🦾): bump python pyjwt 2.4.0 -> 2.8.0 (@github-actions[bot])
|
||||
- [#27741](https://github.com/apache/superset/pull/27741) chore(🦾): bump python click-option-group 0.5.5 -> 0.5.6 (@github-actions[bot])
|
||||
- [#27742](https://github.com/apache/superset/pull/27742) chore(🦾): bump python typing-extensions 4.4.0 -> 4.10.0 (@github-actions[bot])
|
||||
- [#27726](https://github.com/apache/superset/pull/27726) chore(🦾): bump python playwright 1.41.2 -> 1.42.0 (@github-actions[bot])
|
||||
- [#27731](https://github.com/apache/superset/pull/27731) chore(🦾): bump python pydruid 0.6.5 -> 0.6.6 (@github-actions[bot])
|
||||
- [#27730](https://github.com/apache/superset/pull/27730) chore(🦾): bump python thrift 0.16.0 -> 0.20.0 (@github-actions[bot])
|
||||
- [#27695](https://github.com/apache/superset/pull/27695) chore(🦾): bump python "sqlalchemy==1.4.52" (@github-actions[bot])
|
||||
- [#27687](https://github.com/apache/superset/pull/27687) chore(🦾): bump python "nh3==0.2.17" (@github-actions[bot])
|
||||
- [#27680](https://github.com/apache/superset/pull/27680) chore(🦾): bump python "isodate==0.6.1" (@github-actions[bot])
|
||||
- [#27711](https://github.com/apache/superset/pull/27711) chore: bump pylint (@betodealmeida)
|
||||
- [#27696](https://github.com/apache/superset/pull/27696) chore(🦾): bump python "msgpack==1.0.8" (@github-actions[bot])
|
||||
- [#27688](https://github.com/apache/superset/pull/27688) chore(🦾): bump python "wtforms==3.1.2" (@github-actions[bot])
|
||||
- [#27634](https://github.com/apache/superset/pull/27634) other: Add TechAuditBI to supersetbot metadata.js (@TechAuditBI)
|
||||
- [#27699](https://github.com/apache/superset/pull/27699) chore(🦾): bump python "geopy==2.4.1" (@github-actions[bot])
|
||||
- [#27698](https://github.com/apache/superset/pull/27698) chore(🦾): bump python "backoff==2.2.1" (@github-actions[bot])
|
||||
- [#27692](https://github.com/apache/superset/pull/27692) chore(🦾): bump python "pyparsing==3.1.2" (@github-actions[bot])
|
||||
- [#27693](https://github.com/apache/superset/pull/27693) chore(🦾): bump python "croniter==2.0.3" (@github-actions[bot])
|
||||
- [#27682](https://github.com/apache/superset/pull/27682) chore(🦾): bump python "click==8.1.7" (@github-actions[bot])
|
||||
- [#27681](https://github.com/apache/superset/pull/27681) chore(🦾): bump python "polyline==2.0.2" (@github-actions[bot])
|
||||
- [#27684](https://github.com/apache/superset/pull/27684) chore(🦾): bump python "pyarrow==14.0.2" (@github-actions[bot])
|
||||
- [#27657](https://github.com/apache/superset/pull/27657) chore(🤖): bump python "flask==2.3.3" (@mistercrunch)
|
||||
- [#27655](https://github.com/apache/superset/pull/27655) chore(🤖): bump python "sqlalchemy==1.4.52" (@mistercrunch)
|
||||
- [#27641](https://github.com/apache/superset/pull/27641) chore: fix master builds + bump python library "cryptography" (@mistercrunch)
|
||||
- [#27650](https://github.com/apache/superset/pull/27650) chore(🤖): bump python "alembic==1.13.1" (@github-actions[bot])
|
||||
- [#27653](https://github.com/apache/superset/pull/27653) build(deps-dev): bump express from 4.17.3 to 4.19.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#27651](https://github.com/apache/superset/pull/27651) build(deps): bump express from 4.18.3 to 4.19.2 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#27652](https://github.com/apache/superset/pull/27652) build(deps): bump express from 4.18.2 to 4.19.2 in /docs (@dependabot[bot])
|
||||
- [#27649](https://github.com/apache/superset/pull/27649) chore(🤖): bump python "markdown==3.6" (@github-actions[bot])
|
||||
- [#27498](https://github.com/apache/superset/pull/27498) refactor: Migrate CssEditor to typescript (@EnxDev)
|
||||
- [#27422](https://github.com/apache/superset/pull/27422) test(Migration to RTL): Refactor ActivityTable.test.tsx from Enzyme to RTL (@rtexelm)
|
||||
- [#27626](https://github.com/apache/superset/pull/27626) build(deps-dev): bump webpack from 5.90.1 to 5.91.0 in /docs (@dependabot[bot])
|
||||
- [#25540](https://github.com/apache/superset/pull/25540) chore: replace "dashboard" -> "report" in chart email report modal (@sfirke)
|
||||
- [#27596](https://github.com/apache/superset/pull/27596) docs: updates list of countries in country-map-tools.mdx (@jbat)
|
||||
- [#27609](https://github.com/apache/superset/pull/27609) build(deps): bump webpack-dev-middleware from 5.3.1 to 5.3.4 in /docs (@dependabot[bot])
|
||||
- [#27309](https://github.com/apache/superset/pull/27309) refactor: Migrate CopyToClipboard to typescript (@EnxDev)
|
||||
- [#27579](https://github.com/apache/superset/pull/27579) chore(docs): clarifying doc comments about LOGO_TARGET_PATH (@rusackas)
|
||||
- [#27572](https://github.com/apache/superset/pull/27572) chore(examples): organizing example chart yaml files into dashboard folders (@rusackas)
|
||||
- [#27610](https://github.com/apache/superset/pull/27610) build(deps-dev): bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#27540](https://github.com/apache/superset/pull/27540) docs: make k8s top item in Installation section (@mistercrunch)
|
||||
- [#27574](https://github.com/apache/superset/pull/27574) chore: Update required jobs in .asf.yml (@john-bodley)
|
||||
- [#27569](https://github.com/apache/superset/pull/27569) chore(helm): Bumping app version to 3.1.1 in helm chart (@craig-rueda)
|
||||
- [#27505](https://github.com/apache/superset/pull/27505) chore: 2nd try - simplify python dependencies (@mistercrunch)
|
||||
- [#27533](https://github.com/apache/superset/pull/27533) chore(docs): fix last broken Slack join link in docs (@sfirke)
|
||||
- [#27518](https://github.com/apache/superset/pull/27518) build(deps-dev): bump follow-redirects from 1.15.4 to 1.15.6 in /superset-frontend (@dependabot[bot])
|
||||
- [#27516](https://github.com/apache/superset/pull/27516) build(deps-dev): bump follow-redirects from 1.15.4 to 1.15.6 in /superset-embedded-sdk (@dependabot[bot])
|
||||
- [#27517](https://github.com/apache/superset/pull/27517) build(deps): bump follow-redirects from 1.15.4 to 1.15.6 in /docs (@dependabot[bot])
|
||||
- [#27520](https://github.com/apache/superset/pull/27520) chore: add annotations to `sql_parse.py` (@betodealmeida)
|
||||
- [#27486](https://github.com/apache/superset/pull/27486) chore(docs): relocating the edit page button a tad. (@rusackas)
|
||||
- [#26767](https://github.com/apache/superset/pull/26767) chore: improve SQL parsing (@betodealmeida)
|
||||
- [#27480](https://github.com/apache/superset/pull/27480) chore: Add an extension for Home submenu (@kgabryje)
|
||||
- [#27429](https://github.com/apache/superset/pull/27429) test(Migration to RTL): Refactor ChartTable.test.tsx from Enzyme to RTL (@rtexelm)
|
||||
- [#27469](https://github.com/apache/superset/pull/27469) chore: add unit test for `values_for_column` (@betodealmeida)
|
||||
- [#27327](https://github.com/apache/superset/pull/27327) build(deps-dev): bump eslint from 8.56.0 to 8.57.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#27326](https://github.com/apache/superset/pull/27326) build(deps-dev): bump @types/node from 20.11.16 to 20.11.24 in /superset-websocket (@dependabot[bot])
|
||||
- [#27347](https://github.com/apache/superset/pull/27347) build(deps): bump @storybook/types from 7.6.13 to 7.6.17 in /superset-frontend (@dependabot[bot])
|
||||
- [#27405](https://github.com/apache/superset/pull/27405) chore: upgrade setuptools/pip in Dockerfile (@mistercrunch)
|
||||
- [#27290](https://github.com/apache/superset/pull/27290) docs(import_datasources): Remove legacy documentation and update current use (@ddxv)
|
||||
- [#27325](https://github.com/apache/superset/pull/27325) build(deps-dev): bump @types/jsonwebtoken from 9.0.5 to 9.0.6 in /superset-websocket (@dependabot[bot])
|
||||
- [#27324](https://github.com/apache/superset/pull/27324) build(deps-dev): bump @typescript-eslint/eslint-plugin from 5.61.0 to 5.62.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#27328](https://github.com/apache/superset/pull/27328) build(deps-dev): bump prettier from 3.2.4 to 3.2.5 in /superset-websocket (@dependabot[bot])
|
||||
- [#27342](https://github.com/apache/superset/pull/27342) build(deps): bump react-lines-ellipsis from 0.15.0 to 0.15.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#27337](https://github.com/apache/superset/pull/27337) build(deps): bump express from 4.18.2 to 4.18.3 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#27331](https://github.com/apache/superset/pull/27331) build(deps): bump @ant-design/icons from 5.3.0 to 5.3.1 in /docs (@dependabot[bot])
|
||||
- [#27356](https://github.com/apache/superset/pull/27356) chore(docs): remove filterbox section from Exploring docs page (@sfirke)
|
||||
- [#27250](https://github.com/apache/superset/pull/27250) chore: update redis to >= 4.6.0 (@nigzak)
|
||||
- [#27304](https://github.com/apache/superset/pull/27304) chore: Replace deprecated command with environment file (@jongwooo)
|
||||
- [#27297](https://github.com/apache/superset/pull/27297) chore(ci): run unit tests on script changes (@eschutho)
|
||||
- [#27287](https://github.com/apache/superset/pull/27287) docs: update CVEs for 3.0.4 and 3.1.1 (@dpgaspar)
|
||||
- [#27219](https://github.com/apache/superset/pull/27219) build(deps): bump re-resizable from 6.6.1 to 6.9.11 in /superset-frontend (@justinpark)
|
||||
- [#27264](https://github.com/apache/superset/pull/27264) build(deps): bump es5-ext from 0.10.53 to 0.10.63 in /docs (@dependabot[bot])
|
||||
- [#24063](https://github.com/apache/superset/pull/24063) chore: Replace deprecated command with environment file (@jongwooo)
|
||||
- [#26932](https://github.com/apache/superset/pull/26932) build(deps): bump @ant-design/icons from 4.7.0 to 5.3.0 in /docs (@dependabot[bot])
|
||||
- [#27145](https://github.com/apache/superset/pull/27145) refactor(plugins): Time Comparison Utils (@Antonio-RiveroMartnez)
|
||||
- [#26732](https://github.com/apache/superset/pull/26732) build(deps-dev): bump prettier from 3.0.3 to 3.2.4 in /superset-websocket (@dependabot[bot])
|
||||
- [#26765](https://github.com/apache/superset/pull/26765) perf(export): export generates unnecessary files content (@Always-prog)
|
||||
- [#27180](https://github.com/apache/superset/pull/27180) build(deps): bump ip from 1.1.8 to 1.1.9 in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#27175](https://github.com/apache/superset/pull/27175) chore(docs): change 'install from scratch' to 'install from PyPI' (@sfirke)
|
||||
- [#27178](https://github.com/apache/superset/pull/27178) build(deps-dev): bump ip from 2.0.0 to 2.0.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#27147](https://github.com/apache/superset/pull/27147) chore: Remove obsolete actor (@john-bodley)
|
||||
- [#27170](https://github.com/apache/superset/pull/27170) chore: Updates CHANGELOG.md with 3.1.1 data (@michael-s-molina)
|
||||
937
CHANGELOG/5.0.0.md
Normal file
937
CHANGELOG/5.0.0.md
Normal file
@@ -0,0 +1,937 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
## Change Log
|
||||
|
||||
### 5.0.0 (Wed Jun 18 13:54:10 2025 -0300)
|
||||
|
||||
**Database Migrations**
|
||||
|
||||
- [#31959](https://github.com/apache/superset/pull/31959) refactor: upload data unification, less permissions and less endpoints (@dpgaspar)
|
||||
- [#31582](https://github.com/apache/superset/pull/31582) refactor: Removes 5.0 approved legacy charts (@michael-s-molina)
|
||||
- [#31490](https://github.com/apache/superset/pull/31490) feat: use docker in frontend GHA to parallelize work (@mistercrunch)
|
||||
- [#30398](https://github.com/apache/superset/pull/30398) feat: add and use UUIDMixin for most models (@mistercrunch)
|
||||
- [#29649](https://github.com/apache/superset/pull/29649) fix: remove old database constraint on the Dataset model (@betodealmeida)
|
||||
- [#31447](https://github.com/apache/superset/pull/31447) chore: enforce more ruff rules (@mistercrunch)
|
||||
- [#31303](https://github.com/apache/superset/pull/31303) feat: Adds helper functions for migrations (@luizotavio32)
|
||||
|
||||
**Features**
|
||||
|
||||
- [#32052](https://github.com/apache/superset/pull/32052) feat: add connector for Parseable (@AdheipSingh)
|
||||
- [#32051](https://github.com/apache/superset/pull/32051) feat(sqllab): improve table metadata UI (@justinpark)
|
||||
- [#29900](https://github.com/apache/superset/pull/29900) feat(sqllab): Replace FilterableTable by AgGrid Table (@justinpark)
|
||||
- [#31979](https://github.com/apache/superset/pull/31979) feat(fe): upgrade `superset-frontend` to Typescript v5 (@hainenber)
|
||||
- [#31413](https://github.com/apache/superset/pull/31413) feat: add date format to the email subject (@US579)
|
||||
- [#31984](https://github.com/apache/superset/pull/31984) feat: run prettier before eslint in pre-commit hooks (@mistercrunch)
|
||||
- [#31889](https://github.com/apache/superset/pull/31889) feat(CalendarFrame): adding previous calendar quarter (@alexandrusoare)
|
||||
- [#31796](https://github.com/apache/superset/pull/31796) feat: get docker-compose to work as the backend for Cypress tests (@mistercrunch)
|
||||
- [#31876](https://github.com/apache/superset/pull/31876) feat: use npm run dev-server in docker-compose (@mistercrunch)
|
||||
- [#31849](https://github.com/apache/superset/pull/31849) feat: old Firebolt dialect (@betodealmeida)
|
||||
- [#31840](https://github.com/apache/superset/pull/31840) feat: Mutate SQL query executed by alerts (@Vitor-Avila)
|
||||
- [#31825](https://github.com/apache/superset/pull/31825) feat: Firebolt sqlglot dialect (@betodealmeida)
|
||||
- [#31575](https://github.com/apache/superset/pull/31575) feat: redesign labels (@mistercrunch)
|
||||
- [#31747](https://github.com/apache/superset/pull/31747) feat: improve docker-compose services boot sequence (@mistercrunch)
|
||||
- [#31760](https://github.com/apache/superset/pull/31760) feat: allowing print() statements to be unbuffered in docker (@mistercrunch)
|
||||
- [#31486](https://github.com/apache/superset/pull/31486) feat: push predicates into virtual datasets (@betodealmeida)
|
||||
- [#31518](https://github.com/apache/superset/pull/31518) feat: adds a github action to auto label draft prs (@sadpandajoe)
|
||||
- [#31740](https://github.com/apache/superset/pull/31740) feat: make CI against 'next' python version not-required (@mistercrunch)
|
||||
- [#31602](https://github.com/apache/superset/pull/31602) feat(Sqllab): Enabling selection and copying of columns and rows in sql lab and dataset view (@samraHanif0340)
|
||||
- [#31580](https://github.com/apache/superset/pull/31580) feat(doris): add catalog support for Apache Doris (@liujiwen-up)
|
||||
- [#25869](https://github.com/apache/superset/pull/25869) feat(plugin): add plugin-chart-cartodiagram (@jansule)
|
||||
- [#31037](https://github.com/apache/superset/pull/31037) feat(country-map): add map for France with all overseas territories (@tarraschk)
|
||||
- [#31386](https://github.com/apache/superset/pull/31386) feat(gha): various docker / docker-compose build improvements (@mistercrunch)
|
||||
- [#31316](https://github.com/apache/superset/pull/31316) feat(sqllab): giving the query history pane a facelift (@mistercrunch)
|
||||
- [#31273](https://github.com/apache/superset/pull/31273) feat: fine-grain chart data telemetry (@betodealmeida)
|
||||
- [#31141](https://github.com/apache/superset/pull/31141) feat: add YDB as a new database engine (@vgvoleg)
|
||||
- [#31261](https://github.com/apache/superset/pull/31261) feat(Handlebars): formatNumber and group helpers (@Vitor-Avila)
|
||||
- [#31260](https://github.com/apache/superset/pull/31260) feat: use uv in CI (@mistercrunch)
|
||||
- [#31187](https://github.com/apache/superset/pull/31187) feat(sqllab): Popup notification when download data can exceed row count (@justinpark)
|
||||
- [#31166](https://github.com/apache/superset/pull/31166) feat: make sure to quote formulas on Excel export (@betodealmeida)
|
||||
- [#31164](https://github.com/apache/superset/pull/31164) feat: purge OAuth2 tokens when DB changes (@betodealmeida)
|
||||
- [#30870](https://github.com/apache/superset/pull/30870) feat: make ephemeral env use supersetbot + deprecate build_docker.py (@mistercrunch)
|
||||
- [#30926](https://github.com/apache/superset/pull/30926) feat(trino,presto): add missing time grains (@villebro)
|
||||
- [#30884](https://github.com/apache/superset/pull/30884) feat: add logging durations for screenshot async service (@mistercrunch)
|
||||
- [#29609](https://github.com/apache/superset/pull/29609) feat: add a script to check environment software versions (@mistercrunch)
|
||||
- [#30081](https://github.com/apache/superset/pull/30081) feat(oauth2): add support for trino (@joaoferrao)
|
||||
- [#30694](https://github.com/apache/superset/pull/30694) feat: allow exporting all tabs to a single PDF in report (@US579)
|
||||
- [#30674](https://github.com/apache/superset/pull/30674) feat(oauth): adding necessary changes to support bigquery oauth (@fisjac)
|
||||
- [#30721](https://github.com/apache/superset/pull/30721) feat(dataset API): Add parameter to optionally render Jinja macros in API response (@Vitor-Avila)
|
||||
- [#30412](https://github.com/apache/superset/pull/30412) feat: cancel impala query on stop (@wugeer)
|
||||
- [#30710](https://github.com/apache/superset/pull/30710) feat(helm-chart): Add extraLabels to all resources (@maxforasteiro)
|
||||
- [#29927](https://github.com/apache/superset/pull/29927) feat(db_engine_specs): added support for Denodo Virtual DataPort (@denodo-research-labs)
|
||||
- [#30593](https://github.com/apache/superset/pull/30593) feat(number-format): Add duration formatter with colon notation (@gerbermichi)
|
||||
- [#30559](https://github.com/apache/superset/pull/30559) feat(formatting): Add memory units adaptive formatter to format bytes (@mkopec87)
|
||||
- [#30501](https://github.com/apache/superset/pull/30501) feat(SQL Lab): better SQL parsing error messages (@betodealmeida)
|
||||
- [#30390](https://github.com/apache/superset/pull/30390) feat(be/cfg): replace deprecated imp.load_source with importlib.util (@hainenber)
|
||||
- [#29395](https://github.com/apache/superset/pull/29395) feat(dashboard): update tab drag and drop reordering with positional placement and indicators for UI (@rtexelm)
|
||||
- [#30380](https://github.com/apache/superset/pull/30380) feat(auth): when user is not logged in, failure to access a dashboard should redirect to login screen (@sfirke)
|
||||
- [#30364](https://github.com/apache/superset/pull/30364) feat(datasets): Allow swap dataset after deletion (@Antonio-RiveroMartnez)
|
||||
- [#30336](https://github.com/apache/superset/pull/30336) feat(Digest): Add RLS at digest generation for Charts and Dashboards (@geido)
|
||||
- [#30266](https://github.com/apache/superset/pull/30266) feat: allow configuring an engine context manager (@betodealmeida)
|
||||
- [#30323](https://github.com/apache/superset/pull/30323) feat(jinja): add option to format time filters using strftime (@villebro)
|
||||
- [#29897](https://github.com/apache/superset/pull/29897) feat(explore): Add time shift color control to ECharts (@rtexelm)
|
||||
- [#30016](https://github.com/apache/superset/pull/30016) feat: Displaying details to Dataset/Database deletion modals (@rusackas)
|
||||
- [#30142](https://github.com/apache/superset/pull/30142) feat(jinja): add advanced temporal filter functionality (@villebro)
|
||||
- [#28110](https://github.com/apache/superset/pull/28110) feat(db_engine): Implement user impersonation support for StarRocks (@Woellchen)
|
||||
- [#30126](https://github.com/apache/superset/pull/30126) feat: OAuth2 database field (@betodealmeida)
|
||||
- [#30082](https://github.com/apache/superset/pull/30082) feat: Oauth2 in DatabaseSelector (@betodealmeida)
|
||||
- [#30071](https://github.com/apache/superset/pull/30071) feat: allow create/update OAuth2 DB (@betodealmeida)
|
||||
- [#29912](https://github.com/apache/superset/pull/29912) feat(GAQ): Add Redis Sentinel Support for Global Async Queries (@nsivarajan)
|
||||
- [#24308](https://github.com/apache/superset/pull/24308) feat(docker): add GUNICORN_LOGLEVEL env var (@drummerwolli)
|
||||
- [#29333](https://github.com/apache/superset/pull/29333) feat(alert/reports): adding logic to handle downstream reports when tab is deleted from dashboard (@fisjac)
|
||||
- [#30002](https://github.com/apache/superset/pull/30002) feat(time_comparison): Support all date formats when computing custom and inherit offsets (@Antonio-RiveroMartnez)
|
||||
- [#25775](https://github.com/apache/superset/pull/25775) feat: Adding Elestio as deployment option (@kaiwalyakoparkar)
|
||||
- [#29941](https://github.com/apache/superset/pull/29941) feat(docs): fix bug google chrome < 114 not found (@hoalongnatsu)
|
||||
- [#29917](https://github.com/apache/superset/pull/29917) feat: Enable injecting custom html into head (@kgabryje)
|
||||
- [#29875](https://github.com/apache/superset/pull/29875) feat(build): webpack visualizer (@rusackas)
|
||||
- [#29724](https://github.com/apache/superset/pull/29724) feat: get html (links/styling/img/...) to work in pivot table (@mistercrunch)
|
||||
- [#29795](https://github.com/apache/superset/pull/29795) feat: adding AntdThemeProvider to storybook config (@rusackas)
|
||||
- [#29096](https://github.com/apache/superset/pull/29096) feat(alerts): enable tab selection for dashboard alerts/reports (@fisjac)
|
||||
- [#29553](https://github.com/apache/superset/pull/29553) feat(explorer): Add configs and formatting to discrete comparison columns (@rtexelm)
|
||||
- [#29627](https://github.com/apache/superset/pull/29627) feat(country map): Adding Hungary (and other touchups) (@rusackas)
|
||||
|
||||
**Fixes**
|
||||
|
||||
- [#33817](https://github.com/apache/superset/pull/33817) fix: SQL Lab warning message sizes (@michael-s-molina)
|
||||
- [#33779](https://github.com/apache/superset/pull/33779) fix(Echarts): Echarts Legend Scroll fix (@amaannawab923)
|
||||
- [#33765](https://github.com/apache/superset/pull/33765) fix(tooltip): Sanitize tooltip html (@msyavuz)
|
||||
- [#33759](https://github.com/apache/superset/pull/33759) fix: apply d3 format to BigNumber(s) (@betodealmeida)
|
||||
- [#33752](https://github.com/apache/superset/pull/33752) fix(create chart page): add missing space between words (@Quatters)
|
||||
- [#33748](https://github.com/apache/superset/pull/33748) fix: sync dot color between dashboard chart and edit chart (@anantaoutlook)
|
||||
- [#33743](https://github.com/apache/superset/pull/33743) fix(dataset): Fix plural toast messages (@rad-pat)
|
||||
- [#33717](https://github.com/apache/superset/pull/33717) fix(explore): add gap to the "Cached" button (@Quatters)
|
||||
- [#33719](https://github.com/apache/superset/pull/33719) fix(Alerts & reports): invalid "Last updated" time formatting (@Quatters)
|
||||
- [#33726](https://github.com/apache/superset/pull/33726) fix(dashboard): show dashboard thumbnail images when retrieved (@rad-pat)
|
||||
- [#33296](https://github.com/apache/superset/pull/33296) fix(template_processing): get_filters now works for IS_NULL and IS_NOT_NULL operators (@Prokos)
|
||||
- [#32414](https://github.com/apache/superset/pull/32414) fix(api): Added uuid to list api calls (@withnale)
|
||||
- [#33710](https://github.com/apache/superset/pull/33710) fix: Migrate charts with empty query_context (@luizotavio32)
|
||||
- [#33592](https://github.com/apache/superset/pull/33592) fix: Makes time compare migration more resilient (@michael-s-molina)
|
||||
- [#33596](https://github.com/apache/superset/pull/33596) fix: Missing processor context when rendering Jinja (@michael-s-molina)
|
||||
- [#33285](https://github.com/apache/superset/pull/33285) fix: Adjust viz migrations to also migrate the queries object (@luizotavio32)
|
||||
- [#33431](https://github.com/apache/superset/pull/33431) fix(sankey): incorrect nodeValues (@richardfogaca)
|
||||
- [#33553](https://github.com/apache/superset/pull/33553) fix(AllEntities): Display action buttons according to the user permissions (@Vitor-Avila)
|
||||
- [#30577](https://github.com/apache/superset/pull/30577) fix(user settings): Update forked cosmo theme to resolve down chevron in caret style (#30514) (@mklumpen)
|
||||
- [#33540](https://github.com/apache/superset/pull/33540) fix(table): table sort by fix (@amaannawab923)
|
||||
- [#33522](https://github.com/apache/superset/pull/33522) fix(Sqllab): Autocomplete got stuck in UI when open it too fast (@rebenitez1802)
|
||||
- [#33444](https://github.com/apache/superset/pull/33444) fix: allow metadata to parse json (@eschutho)
|
||||
- [#33425](https://github.com/apache/superset/pull/33425) fix(table-chart): time shift is not working (@justinpark)
|
||||
- [#33364](https://github.com/apache/superset/pull/33364) fix(deckgl): fix deckgl multiple layers chart filter and viewport (@syedbarimanjan)
|
||||
- [#33422](https://github.com/apache/superset/pull/33422) fix(Row): don't unload charts while embedded to reduce rerenders (@msyavuz)
|
||||
- [#33354](https://github.com/apache/superset/pull/33354) fix: loading examples from raw.githubusercontent.com fails with 429 errors (@mistercrunch)
|
||||
- [#31917](https://github.com/apache/superset/pull/31917) fix(be/utils): sync cache timeout for memoized function (@hainenber)
|
||||
- [#33345](https://github.com/apache/superset/pull/33345) fix(i18n): zh_TW pybabel compile error: placeholders are incompatible (@bestlong)
|
||||
- [#33337](https://github.com/apache/superset/pull/33337) fix: Edge case with metric not getting quoted in sort by when normalize_columns is enabled (@Vitor-Avila)
|
||||
- [#33224](https://github.com/apache/superset/pull/33224) fix: Temporal filter conversion in viz migrations (@michael-s-molina)
|
||||
- [#33306](https://github.com/apache/superset/pull/33306) fix: improve function detection (@betodealmeida)
|
||||
- [#33269](https://github.com/apache/superset/pull/33269) fix(echarts): rename time series shifted colnames (@justinpark)
|
||||
- [#33267](https://github.com/apache/superset/pull/33267) fix: mask password on DB import (@betodealmeida)
|
||||
- [#33025](https://github.com/apache/superset/pull/33025) fix: LocalProxy is not mapped warning (@dpgaspar)
|
||||
- [#33248](https://github.com/apache/superset/pull/33248) fix(histogram): remove extra single quotes (@rusackas)
|
||||
- [#33250](https://github.com/apache/superset/pull/33250) fix(DB update): Gracefully handle querry error during DB update (@Vitor-Avila)
|
||||
- [#33238](https://github.com/apache/superset/pull/33238) fix(heatmap): correctly render int and boolean falsy values on axes (@sfirke)
|
||||
- [#33237](https://github.com/apache/superset/pull/33237) fix(sqllab permalink): Commit SQL Lab permalinks (@Vitor-Avila)
|
||||
- [#33234](https://github.com/apache/superset/pull/33234) fix(standalone): Ensure correct URL param value for standalone mode (@Vitor-Avila)
|
||||
- [#33291](https://github.com/apache/superset/pull/33291) fix(antd): Invalid dashed border in tertiary button (@justinpark)
|
||||
- [#33214](https://github.com/apache/superset/pull/33214) fix(export): Full CSV/Excel exports respecting SQL_MAX_ROW config (@Vitor-Avila)
|
||||
- [#33164](https://github.com/apache/superset/pull/33164) fix(sqllab): Invalid SQL Error breaks SQL Lab (@justinpark)
|
||||
- [#33154](https://github.com/apache/superset/pull/33154) fix(deckgl): Update Arc to properly adjust line width (@rusackas)
|
||||
- [#33161](https://github.com/apache/superset/pull/33161) fix: os.makedirs race condition (@jamra)
|
||||
- [#33143](https://github.com/apache/superset/pull/33143) fix(echart): Thrown errors shown after resized (@justinpark)
|
||||
- [#33138](https://github.com/apache/superset/pull/33138) fix(echart): Tooltip date format doesn't follow time grain (@justinpark)
|
||||
- [#31692](https://github.com/apache/superset/pull/31692) fix(lang): patch FAB's LocaleView to redirect to previous page (@pomegranited)
|
||||
- [#33106](https://github.com/apache/superset/pull/33106) fix(dashboard): invalid active tab state (@justinpark)
|
||||
- [#33037](https://github.com/apache/superset/pull/33037) fix: Viz migration error handling (@michael-s-molina)
|
||||
- [#33107](https://github.com/apache/superset/pull/33107) fix(playwright): allow screenshotting empty dashboards (@hxtmdev)
|
||||
- [#33110](https://github.com/apache/superset/pull/33110) fix: resolve recent merge collisio (@mistercrunch)
|
||||
- [#33103](https://github.com/apache/superset/pull/33103) fix: Allows configuration of Selenium Webdriver binary (@michael-s-molina)
|
||||
- [#33109](https://github.com/apache/superset/pull/33109) fix(thumbnails): ensure consistent cache_key (@hxtmdev)
|
||||
- [#32193](https://github.com/apache/superset/pull/32193) fix(dashboard): Generate screenshot via celery (@tahvane1)
|
||||
- [#33087](https://github.com/apache/superset/pull/33087) fix(docker): fallback to pip if uv is not available (@hossein-khalilian)
|
||||
- [#33059](https://github.com/apache/superset/pull/33059) fix: Adds missing **init** file to commands/logs (@michael-s-molina)
|
||||
- [#33048](https://github.com/apache/superset/pull/33048) fix: improve error type on parse error (@justinpark)
|
||||
- [#31720](https://github.com/apache/superset/pull/31720) fix(export): charts csv export in dashboards (@EmmanuelCbd)
|
||||
- [#33024](https://github.com/apache/superset/pull/33024) fix(log): Missing failed query log on async queries (@justinpark)
|
||||
- [#32839](https://github.com/apache/superset/pull/32839) fix: fix bug where dashboard did not enter fullscreen mode. (@LevisNgigi)
|
||||
- [#28428](https://github.com/apache/superset/pull/28428) fix(dashboard): chart fullscreen issue when filter pane is collapsed (@hlvhe)
|
||||
- [#29422](https://github.com/apache/superset/pull/29422) fix: `show_filters` URL parameter is not working (@hexcafe)
|
||||
- [#32965](https://github.com/apache/superset/pull/32965) fix: Bar Chart (legacy) migration to keep labels layout (@michael-s-molina)
|
||||
- [#30679](https://github.com/apache/superset/pull/30679) fix: fixed Add Metrics to Tree Chart (#29158) (@SBIN2010)
|
||||
- [#32968](https://github.com/apache/superset/pull/32968) fix(pivot-table): Revert "fix(Pivot Table): Fix column width to respect currency config (#31414)" (@justinpark)
|
||||
- [#32384](https://github.com/apache/superset/pull/32384) fix: Clicking in the body of a Markdown component does not put it into edit mode (@notHuman9504)
|
||||
- [#32763](https://github.com/apache/superset/pull/32763) fix(sqllab): Invalid display of table column keys (@justinpark)
|
||||
- [#32871](https://github.com/apache/superset/pull/32871) fix(Jinja): Emit time grain to table charts even if they don't have a temporal column (@Vitor-Avila)
|
||||
- [#32372](https://github.com/apache/superset/pull/32372) fix(backend/async_events): allow user to configure username for Redis authentication in GLOBAL_ASYNC_QUERIES_CACHE_BACKEND (@hainenber)
|
||||
- [#32873](https://github.com/apache/superset/pull/32873) fix: use role_model from security manager (@lohart13)
|
||||
- [#32851](https://github.com/apache/superset/pull/32851) fix(ColorPickerControl): change color picker control width (@SBIN2010)
|
||||
- [#32863](https://github.com/apache/superset/pull/32863) fix(table-chart): Do not show comparison columns config if time_compare is set to [] (@Vitor-Avila)
|
||||
- [#31869](https://github.com/apache/superset/pull/31869) fix(translation): Dutch translations for Current datetime filter (@christiaan)
|
||||
- [#32829](https://github.com/apache/superset/pull/32829) fix: update dataset/query catalog on DB changes (@betodealmeida)
|
||||
- [#32850](https://github.com/apache/superset/pull/32850) fix(echarts): Sort series by name using natural comparison (@Vitor-Avila)
|
||||
- [#32795](https://github.com/apache/superset/pull/32795) fix(log): store navigation path to get correct logging path (@justinpark)
|
||||
- [#32665](https://github.com/apache/superset/pull/32665) fix: Time Comparison Feature Reverts Metric Labels to Metric Keys in Table Charts (@fardin-developer)
|
||||
- [#32792](https://github.com/apache/superset/pull/32792) fix: key error in frontend on disallowed GSheets (@chrisvnimbus)
|
||||
- [#32797](https://github.com/apache/superset/pull/32797) fix: CSV/Excel upload form change column dates description (@SBIN2010)
|
||||
- [#32802](https://github.com/apache/superset/pull/32802) fix(sec): resolve CVE-2025-29907 and CVE-2025-25977 by pinning `jspdf` to v3 (@hainenber)
|
||||
- [#32406](https://github.com/apache/superset/pull/32406) fix(model/helper): represent RLS filter clause in proper textual SQL string (@hainenber)
|
||||
- [#32739](https://github.com/apache/superset/pull/32739) fix(excel export): big number truncation handling (@CharlesNkdl)
|
||||
- [#32778](https://github.com/apache/superset/pull/32778) fix(config): correct slack image url in talisman (@v9dev)
|
||||
- [#28350](https://github.com/apache/superset/pull/28350) fix(css): typos in styles (@Kukusik8)
|
||||
- [#32775](https://github.com/apache/superset/pull/32775) fix(import): Missing catalog field in saved query schema (@Quatters)
|
||||
- [#32774](https://github.com/apache/superset/pull/32774) fix(sqllab): Pass query_id as kwarg so backoff can see it (@Antonio-RiveroMartnez)
|
||||
- [#32720](https://github.com/apache/superset/pull/32720) fix(chart control): Change default of "Y Axis Title Margin" (@Quatters)
|
||||
- [#32761](https://github.com/apache/superset/pull/32761) fix: do not add calculated columns when syncing (@eschutho)
|
||||
- [#31751](https://github.com/apache/superset/pull/31751) fix: Changing language doesn't affect echarts charts (@jpchev)
|
||||
- [#28203](https://github.com/apache/superset/pull/28203) fix(contextmenu): uncaught TypeError (@sowo)
|
||||
- [#32679](https://github.com/apache/superset/pull/32679) fix: ensure datasource permission in explore (@hxtmdev)
|
||||
- [#32410](https://github.com/apache/superset/pull/32410) fix(import): Ensure import exceptions are logged (@withnale)
|
||||
- [#32683](https://github.com/apache/superset/pull/32683) fix: coerce datetime conversion errors (@betodealmeida)
|
||||
- [#32708](https://github.com/apache/superset/pull/32708) fix(logging): missing path in event data (@justinpark)
|
||||
- [#32701](https://github.com/apache/superset/pull/32701) fix: boolean filters in Explore (@betodealmeida)
|
||||
- [#32696](https://github.com/apache/superset/pull/32696) fix(spreadsheet uploads): make file extension comparisons case-insensitive (@sfirke)
|
||||
- [#32691](https://github.com/apache/superset/pull/32691) fix(cosmetics): allow toast message to be toggled off when modal is opened (@hainenber)
|
||||
- [#32699](https://github.com/apache/superset/pull/32699) fix: Signature of Celery pruner jobs (@michael-s-molina)
|
||||
- [#32681](https://github.com/apache/superset/pull/32681) fix(log): Update recent_activity by event name (@justinpark)
|
||||
- [#32678](https://github.com/apache/superset/pull/32678) fix: Update RELEASING/README.md (@michael-s-molina)
|
||||
- [#32661](https://github.com/apache/superset/pull/32661) fix(gsheets): update params from encrypted extra (@betodealmeida)
|
||||
- [#32657](https://github.com/apache/superset/pull/32657) fix(import): Import a DB connection with expanded rows enabled (@Vitor-Avila)
|
||||
- [#32646](https://github.com/apache/superset/pull/32646) fix(dashboard): Ensure `dashboardId` is included in `form_data` for embedded mode (@mostopalove)
|
||||
- [#32652](https://github.com/apache/superset/pull/32652) fix: Upgrade node base image to Debian 12 bookworm (@dolph)
|
||||
- [#32608](https://github.com/apache/superset/pull/32608) fix(welcome): perf on distinct recent activities (@justinpark)
|
||||
- [#32549](https://github.com/apache/superset/pull/32549) fix(dashboard): Support bigint value in native filters (@justinpark)
|
||||
- [#32599](https://github.com/apache/superset/pull/32599) fix(Slack V2): Specify the filename for the Slack upload method (@Vitor-Avila)
|
||||
- [#32572](https://github.com/apache/superset/pull/32572) fix: Log table retention policy (@michael-s-molina)
|
||||
- [#32532](https://github.com/apache/superset/pull/32532) fix: add DateOffset to json serializer (@eschutho)
|
||||
- [#32523](https://github.com/apache/superset/pull/32523) fix: keep calculated columns when datasource is updated (@eschutho)
|
||||
- [#32507](https://github.com/apache/superset/pull/32507) fix: Show response message as default error (@eschutho)
|
||||
- [#32336](https://github.com/apache/superset/pull/32336) fix(Slack): Fix Slack recipients migration to V2 (@Vitor-Avila)
|
||||
- [#32511](https://github.com/apache/superset/pull/32511) fix(beat): prune_query celery task args fix (@Usiel)
|
||||
- [#32499](https://github.com/apache/superset/pull/32499) fix(explore): Glitch in a tooltip with metric's name (@kgabryje)
|
||||
- [#32486](https://github.com/apache/superset/pull/32486) fix: skip DB filter when doing OAuth2 (@betodealmeida)
|
||||
- [#32488](https://github.com/apache/superset/pull/32488) fix(tooltip): displaying <a> tags correctly (@rusackas)
|
||||
- [#32473](https://github.com/apache/superset/pull/32473) fix(plugin-chart-echarts): remove erroneous upper bound value (@villebro)
|
||||
- [#32420](https://github.com/apache/superset/pull/32420) fix(com/grid-comp/markdown): pin `remark-gfm` to v3 to allow inline code block by backticks in Markdown (@hainenber)
|
||||
- [#32423](https://github.com/apache/superset/pull/32423) fix(clickhouse): get_parameters_from_uri failing when secure is true (@codenamelxl)
|
||||
- [#32290](https://github.com/apache/superset/pull/32290) fix(viz): update nesting logic to handle multiple dimensions in PartitionViz (@DamianPendrak)
|
||||
- [#32382](https://github.com/apache/superset/pull/32382) fix(pinot): revert join and subquery flags (@yuribogomolov)
|
||||
- [#32325](https://github.com/apache/superset/pull/32325) fix: bump FAB to 4.5.4 (@dpgaspar)
|
||||
- [#32344](https://github.com/apache/superset/pull/32344) fix: ensure metric_macro expands templates (@betodealmeida)
|
||||
- [#32348](https://github.com/apache/superset/pull/32348) fix: clickhouse-connect engine SSH parameter (@maybedino)
|
||||
- [#32362](https://github.com/apache/superset/pull/32362) fix(docker): Configure nginx for consistent port mapping and hot reloading (@vedantprajapati)
|
||||
- [#32350](https://github.com/apache/superset/pull/32350) fix(firebolt): allow backslach escape for single quotes (@betodealmeida)
|
||||
- [#32356](https://github.com/apache/superset/pull/32356) fix(SSHTunnelForm): make the password tooltip visible (@EnxDev)
|
||||
- [#32284](https://github.com/apache/superset/pull/32284) fix(roles): Add SqlLabPermalinkRestApi as default sqlab roles. (@LevisNgigi)
|
||||
- [#32035](https://github.com/apache/superset/pull/32035) fix(fe/dashboard-list): display modifier info for `Last modified` data (@hainenber)
|
||||
- [#32337](https://github.com/apache/superset/pull/32337) fix: revert "fix: remove sort values on stacked totals (#31333)" (@eschutho)
|
||||
- [#31993](https://github.com/apache/superset/pull/31993) fix: oauth2 trino (@aurokk)
|
||||
- [#32332](https://github.com/apache/superset/pull/32332) fix: Download as PDF fails due to cache error (@kgabryje)
|
||||
- [#30888](https://github.com/apache/superset/pull/30888) fix: keep the tab order (@US579)
|
||||
- [#32272](https://github.com/apache/superset/pull/32272) fix(viz/table): selected column not shown in Conditional Formatting popover (@hainenber)
|
||||
- [#32253](https://github.com/apache/superset/pull/32253) fix: Decimal values for Histogram bins (@michael-s-molina)
|
||||
- [#32218](https://github.com/apache/superset/pull/32218) fix(Datasource): handle undefined datasource_type in fetchSyncedColumns (@tahvane1)
|
||||
- [#32240](https://github.com/apache/superset/pull/32240) fix: upgrade to 3.11.11-slim-bookworm to address critical vulnerabilities (@gpchandran)
|
||||
- [#31333](https://github.com/apache/superset/pull/31333) fix: remove sort values on stacked totals (@eschutho)
|
||||
- [#32227](https://github.com/apache/superset/pull/32227) fix: Update 'Last modified' time when modifying RLS rules (@fardin-developer)
|
||||
- [#32115](https://github.com/apache/superset/pull/32115) fix(Scope): Correct issue where filters appear out of scope when sort is unchecked. (@LevisNgigi)
|
||||
- [#32224](https://github.com/apache/superset/pull/32224) fix(sqllab): close the table tab (@justinpark)
|
||||
- [#32212](https://github.com/apache/superset/pull/32212) fix: set `Rich tooltip` -> 'Show percentage' to false by default (@mistercrunch)
|
||||
- [#32222](https://github.com/apache/superset/pull/32222) fix(SaveDatasetModal): repairs field alignment in the SaveDatasetModal component (@EnxDev)
|
||||
- [#32211](https://github.com/apache/superset/pull/32211) fix: hydrate datasetsStatus (@betodealmeida)
|
||||
- [#32195](https://github.com/apache/superset/pull/32195) fix: handlebars html and css templates reset on dataset update (@DamianPendrak)
|
||||
- [#32176](https://github.com/apache/superset/pull/32176) fix: TDengine move tdengine.png to databases/ subfolder (@DuanKuanJun)
|
||||
- [#32185](https://github.com/apache/superset/pull/32185) fix: Adds an entry to UPDATING.md about DISABLE_LEGACY_DATASOURCE_EDITOR (@michael-s-molina)
|
||||
- [#32154](https://github.com/apache/superset/pull/32154) fix(sqllab): correct URL format for SQL Lab permalinks (@LevisNgigi)
|
||||
- [#30903](https://github.com/apache/superset/pull/30903) fix(virtual dataset sync): Sync virtual dataset columns when changing the SQL query (@fisjac)
|
||||
- [#32163](https://github.com/apache/superset/pull/32163) fix(docker): Docker python-translation-build (@EmmanuelCbd)
|
||||
- [#32156](https://github.com/apache/superset/pull/32156) fix: ScreenshotCachePayload serialization (@betodealmeida)
|
||||
- [#32151](https://github.com/apache/superset/pull/32151) fix(releasing): fix borked SVN-based image building process (@hainenber)
|
||||
- [#32137](https://github.com/apache/superset/pull/32137) fix: copy oauth2 capture to `get_sqla_engine` (@betodealmeida)
|
||||
- [#32135](https://github.com/apache/superset/pull/32135) fix: Local tarball Docker container is missing zstd dependency (@michael-s-molina)
|
||||
- [#32133](https://github.com/apache/superset/pull/32133) fix: No virtual environment when running Docker translation compiler (@michael-s-molina)
|
||||
- [#32040](https://github.com/apache/superset/pull/32040) fix(ci): ephemeral env, handle different label, create comment (@dpgaspar)
|
||||
- [#32064](https://github.com/apache/superset/pull/32064) fix(datepicker): Full width datepicker on filter value select (@msyavuz)
|
||||
- [#32122](https://github.com/apache/superset/pull/32122) fix: Histogram examples config (@michael-s-molina)
|
||||
- [#32053](https://github.com/apache/superset/pull/32053) fix: enforce `ALERT_REPORTS_MAX_CUSTOM_SCREENSHOT_WIDTH` (@betodealmeida)
|
||||
- [#31757](https://github.com/apache/superset/pull/31757) fix(thumbnail cache): Enabling force parameter on screenshot/thumbnail cache (@fisjac)
|
||||
- [#32061](https://github.com/apache/superset/pull/32061) fix(DatePicker): Increase z-index over Modal (@geido)
|
||||
- [#32031](https://github.com/apache/superset/pull/32031) fix(fe/explore): prevent runtime error when editing Dataset-origin Chart with empty title (@hainenber)
|
||||
- [#32045](https://github.com/apache/superset/pull/32045) fix: Revert "fix: re-enable cypress checks" (@mistercrunch)
|
||||
- [#32008](https://github.com/apache/superset/pull/32008) fix: re-enable cypress checks (@mistercrunch)
|
||||
- [#32017](https://github.com/apache/superset/pull/32017) fix: eph env + improve docker images to run in userspace (@mistercrunch)
|
||||
- [#31340](https://github.com/apache/superset/pull/31340) fix(ci): change ephemeral env to use github labels instead of comments (@dpgaspar)
|
||||
- [#32025](https://github.com/apache/superset/pull/32025) fix: Filters badge disappeared (@kgabryje)
|
||||
- [#32015](https://github.com/apache/superset/pull/32015) fix(issue #31927): TimeGrain.WEEK_STARTING_MONDAY (@AdrianMastronardi)
|
||||
- [#30716](https://github.com/apache/superset/pull/30716) fix: Reordering echart props to fix confidence interval in Mixed Charts (@geotab-data-platform)
|
||||
- [#32005](https://github.com/apache/superset/pull/32005) fix(sqllab): tab layout truncated (@justinpark)
|
||||
- [#29417](https://github.com/apache/superset/pull/29417) fix(verbose map): Correct raw metrics handling in verbose map (@mcdogg17)
|
||||
- [#31962](https://github.com/apache/superset/pull/31962) fix: proper URL building (@betodealmeida)
|
||||
- [#31941](https://github.com/apache/superset/pull/31941) fix(timezoneselector): Correct the order to match names first (@msyavuz)
|
||||
- [#25166](https://github.com/apache/superset/pull/25166) fix: correct value for config variable `UPLOAD_FOLDER` (@sebastianliebscher)
|
||||
- [#31948](https://github.com/apache/superset/pull/31948) fix: Load cached DB metadata as DatasourceName and add catalog to schema_list cache key (@Vitor-Avila)
|
||||
- [#31809](https://github.com/apache/superset/pull/31809) fix: Prevent undo functionality from referencing incorrect dashboard edits (@fardin-developer)
|
||||
- [#30949](https://github.com/apache/superset/pull/30949) fix: adjust line type as well as weight for time series (@eschutho)
|
||||
- [#31933](https://github.com/apache/superset/pull/31933) fix(E2E): Fix flaky Dashboard list delete test (@geido)
|
||||
- [#31867](https://github.com/apache/superset/pull/31867) fix(date_parser): fixed bug for advanced time range filter (@alexandrusoare)
|
||||
- [#31873](https://github.com/apache/superset/pull/31873) fix(documentation): updated link to CORS_OPTIONS in Networking Settings (@ankur-zignite91)
|
||||
- [#31910](https://github.com/apache/superset/pull/31910) fix: add catalog to cache key when getting tables/views (@betodealmeida)
|
||||
- [#31837](https://github.com/apache/superset/pull/31837) fix(bigquery): return no catalogs when creds not set (@betodealmeida)
|
||||
- [#31848](https://github.com/apache/superset/pull/31848) fix: d3.count doesn't exist (@mistercrunch)
|
||||
- [#31830](https://github.com/apache/superset/pull/31830) fix: fix/suppress webpack console warnings (@mistercrunch)
|
||||
- [#31834](https://github.com/apache/superset/pull/31834) fix(OAuth): Remove masked_encrypted_extra from DB update properties (@Vitor-Avila)
|
||||
- [#31798](https://github.com/apache/superset/pull/31798) fix(Embedded): Skip CSRF validation for dashboard download endpoints (@Vitor-Avila)
|
||||
- [#31815](https://github.com/apache/superset/pull/31815) fix(modal): fixed z-index issue (@alexandrusoare)
|
||||
- [#31774](https://github.com/apache/superset/pull/31774) fix: corrects spelling of USE_ANALAGOUS_COLORS to be USE_ANALOGOUS_COLORS (@rusackas)
|
||||
- [#31777](https://github.com/apache/superset/pull/31777) fix(oauth): Handle updates to the OAuth config (@Vitor-Avila)
|
||||
- [#31789](https://github.com/apache/superset/pull/31789) fix(button): change back button styles for dropdown buttons (@msyavuz)
|
||||
- [#31752](https://github.com/apache/superset/pull/31752) fix: Heatmap sorting (@michael-s-molina)
|
||||
- [#31742](https://github.com/apache/superset/pull/31742) fix: GHA frontend builds fail when frontends hasn't changed (@mistercrunch)
|
||||
- [#31732](https://github.com/apache/superset/pull/31732) fix: docker builds in forks (@mistercrunch)
|
||||
- [#31606](https://github.com/apache/superset/pull/31606) fix: docker-compose-image-tag fails to start (@mistercrunch)
|
||||
- [#31710](https://github.com/apache/superset/pull/31710) fix(inthewild): Update companies using superset (@gwthm-in)
|
||||
- [#31673](https://github.com/apache/superset/pull/31673) fix: typo in plugin-chart-echats controls (@vhf)
|
||||
- [#31688](https://github.com/apache/superset/pull/31688) fix(helm): change values.yaml comments (@sule26)
|
||||
- [#31588](https://github.com/apache/superset/pull/31588) fix: install uv in docker-bootstrap (@mistercrunch)
|
||||
- [#31583](https://github.com/apache/superset/pull/31583) fix(docs): get quickstart guide working again (@sfirke)
|
||||
- [#31561](https://github.com/apache/superset/pull/31561) fix: add various recent issues on master CI (@mistercrunch)
|
||||
- [#31493](https://github.com/apache/superset/pull/31493) fix: master docker builds fail because of multi-platform builds can't --load (@mistercrunch)
|
||||
- [#31483](https://github.com/apache/superset/pull/31483) fix: Card component background color (@kgabryje)
|
||||
- [#31472](https://github.com/apache/superset/pull/31472) fix: Tooltip covers the date selector in native filters (@kgabryje)
|
||||
- [#31473](https://github.com/apache/superset/pull/31473) fix(explore): Styling issue in Search Metrics input field (@kgabryje)
|
||||
- [#31449](https://github.com/apache/superset/pull/31449) fix(filter options): full size list item targets (@rusackas)
|
||||
- [#31458](https://github.com/apache/superset/pull/31458) fix(api): typo api.py (@zero-stroke)
|
||||
- [#31385](https://github.com/apache/superset/pull/31385) fix: docker refactor (@mistercrunch)
|
||||
- [#31374](https://github.com/apache/superset/pull/31374) fix(Dashboard): Sync color configuration via dedicated endpoint (@geido)
|
||||
- [#31411](https://github.com/apache/superset/pull/31411) fix: pkg_resources is getting deprecated (@mistercrunch)
|
||||
- [#31391](https://github.com/apache/superset/pull/31391) fix: don't include chromium on ephemeral envs (@mistercrunch)
|
||||
- [#31387](https://github.com/apache/superset/pull/31387) fix: Revert "chore(deps-dev): bump esbuild from 0.20.0 to 0.24.0 in /super… (@sadpandajoe)
|
||||
- [#31236](https://github.com/apache/superset/pull/31236) fix: ephemeral envs fail on noop (@dpgaspar)
|
||||
- [#31350](https://github.com/apache/superset/pull/31350) fix(alerts&reports): tabs with userfriendly urls (@tahvane1)
|
||||
- [#30956](https://github.com/apache/superset/pull/30956) fix: added missing pod labels for init job (@glothriel)
|
||||
- [#31279](https://github.com/apache/superset/pull/31279) fix(filters): improving the add filter/divider UI. (@rusackas)
|
||||
- [#31155](https://github.com/apache/superset/pull/31155) fix: helm chart deploy to open PRs to now-protected gh-pages branch (@mistercrunch)
|
||||
- [#31152](https://github.com/apache/superset/pull/31152) fix: try to re-enable gh-pages (@mistercrunch)
|
||||
- [#31148](https://github.com/apache/superset/pull/31148) fix: touch helm/ folder to trigger doc deploy in CI (@mistercrunch)
|
||||
- [#31035](https://github.com/apache/superset/pull/31035) fix: ephemeral environments missing env var (@mistercrunch)
|
||||
- [#30966](https://github.com/apache/superset/pull/30966) fix(helm-chart): Fix broken PodDisruptionBudget due to introduction of extraLabels. (@theoriginalgri)
|
||||
- [#30964](https://github.com/apache/superset/pull/30964) fix(Card): Use correct class names for Ant Design 5 Card component (@geido)
|
||||
- [#30924](https://github.com/apache/superset/pull/30924) fix(helm): use submodule on helm release action (@villebro)
|
||||
- [#30767](https://github.com/apache/superset/pull/30767) fix(empty dashboards): Allow downloading a screenshot of an empty dashboard (@msyavuz)
|
||||
- [#30885](https://github.com/apache/superset/pull/30885) fix(docs): add missing bracket in openID config (@samarsrivastav)
|
||||
- [#30858](https://github.com/apache/superset/pull/30858) fix(chart data): removing query from /chart/data payload when accessing as guest user (@fisjac)
|
||||
- [#30848](https://github.com/apache/superset/pull/30848) fix(time_comparison): Allow deleting dates when using custom shift (@Antonio-RiveroMartnez)
|
||||
- [#28524](https://github.com/apache/superset/pull/28524) fix: warning emits an error (@eschutho)
|
||||
- [#30682](https://github.com/apache/superset/pull/30682) fix(explore): Update tooltip copy for rendering html in tables and pivot tables (@yousoph)
|
||||
- [#30618](https://github.com/apache/superset/pull/30618) fix(mssql db_engine_spec): adds uniqueidentifier to column_type_mappings (@rparsonsbb)
|
||||
- [#27142](https://github.com/apache/superset/pull/27142) fix(chart): apply number format in Box Plot tooltip only where necessary (@goto-loop)
|
||||
- [#30608](https://github.com/apache/superset/pull/30608) fix(country-map): Rename incorrect Vietnam province name for Country Map (@tienhung2812)
|
||||
- [#30702](https://github.com/apache/superset/pull/30702) fix(Dashboard): DatePicker to not autoclose modal (@geido)
|
||||
- [#30688](https://github.com/apache/superset/pull/30688) fix: bump FAB to 4.5.2 (@dpgaspar)
|
||||
- [#30659](https://github.com/apache/superset/pull/30659) fix: Link Checking (@CodeWithEmad)
|
||||
- [#30661](https://github.com/apache/superset/pull/30661) fix: Domain 'undefined' error in Storybook (@kgabryje)
|
||||
- [#30626](https://github.com/apache/superset/pull/30626) fix: Module is not defined in Partition chart (@michael-s-molina)
|
||||
- [#30616](https://github.com/apache/superset/pull/30616) fix(docs): leading whitespace line is causing page title and header to be malformed (@sfirke)
|
||||
- [#30606](https://github.com/apache/superset/pull/30606) fix: Set correct amount of steps to avoid confusing logs while loading examples (@deathstrokedarksky)
|
||||
- [#30522](https://github.com/apache/superset/pull/30522) fix(SQL Lab): hang when result set size is too big (@anamitraadhikari)
|
||||
- [#30443](https://github.com/apache/superset/pull/30443) fix(Jinja metric macro): Support Drill By and Excel/CSV download without a dataset ID (@Vitor-Avila)
|
||||
- [#30569](https://github.com/apache/superset/pull/30569) fix(dev-server): Revert "chore(fe): bump webpack-related packages to v5" (@geido)
|
||||
- [#30069](https://github.com/apache/superset/pull/30069) fix(frontend/generator): fix failed Viz plugin build due to missing JSDOM config and dep (@hainenber)
|
||||
- [#30277](https://github.com/apache/superset/pull/30277) fix(examples): fix examples uri for sqlite (@villebro)
|
||||
- [#30509](https://github.com/apache/superset/pull/30509) fix(plugin/echarts): correct enum values for LABEL_POSITION map (@hainenber)
|
||||
- [#30500](https://github.com/apache/superset/pull/30500) fix(sqllab): Remove redundant scrolling (@justinpark)
|
||||
- [#30349](https://github.com/apache/superset/pull/30349) fix(radar-chart): metric options not available & add `min` option (@goncaloacteixeira)
|
||||
- [#30493](https://github.com/apache/superset/pull/30493) fix(Package.json): Bump dayjs version (@geido)
|
||||
- [#30406](https://github.com/apache/superset/pull/30406) fix(language): pt_BR translation (@diegolnasc)
|
||||
- [#30441](https://github.com/apache/superset/pull/30441) fix: battling cypress' dashboard feature (@mistercrunch)
|
||||
- [#30430](https://github.com/apache/superset/pull/30430) fix: cypress on master doesn't work because of --parallel flag (@mistercrunch)
|
||||
- [#29444](https://github.com/apache/superset/pull/29444) fix(plugin/country/map): rectify naming for some Vietnamese provinces (@hainenber)
|
||||
- [#30388](https://github.com/apache/superset/pull/30388) fix(ECharts): Revert ECharts version bump (@geido)
|
||||
- [#30340](https://github.com/apache/superset/pull/30340) fix(CI): increase node JS heap size (@rusackas)
|
||||
- [#30325](https://github.com/apache/superset/pull/30325) fix(db_engine_specs): add a few missing time grains to Postgres spec (@sfirke)
|
||||
- [#30273](https://github.com/apache/superset/pull/30273) fix(dashboard): invalid button style in undo/redo button (@justinpark)
|
||||
- [#30099](https://github.com/apache/superset/pull/30099) fix: Move copying translation files before npm run build in Docker (@martyngigg)
|
||||
- [#30279](https://github.com/apache/superset/pull/30279) fix(install/docker): use zstd-baked image for building superset-frontend in containerized env (@hainenber)
|
||||
- [#30234](https://github.com/apache/superset/pull/30234) fix(deps): release new embedded sdk (@rusackas)
|
||||
- [#30237](https://github.com/apache/superset/pull/30237) fix(docs): change flask-oidc url (@drblack666)
|
||||
- [#30217](https://github.com/apache/superset/pull/30217) fix(sdk): use latest @supserset-ui/switchboard version to avoid pulling empty dependency (@hainenber)
|
||||
- [#30147](https://github.com/apache/superset/pull/30147) fix(docs): typo in docker-compose.mdx (@alexengrig)
|
||||
- [#30148](https://github.com/apache/superset/pull/30148) fix: Adds the Deprecated label to Time-series Percent Change chart (@michael-s-molina)
|
||||
- [#30141](https://github.com/apache/superset/pull/30141) fix(sqllab): race condition when updating same cursor position (@justinpark)
|
||||
- [#30041](https://github.com/apache/superset/pull/30041) fix: Revert "fix(list/chart views): Chart Properties modal now has transitions" (@rusackas)
|
||||
- [#30034](https://github.com/apache/superset/pull/30034) fix: Handle zstd encoding in webpack proxy config (@kgabryje)
|
||||
- [#29916](https://github.com/apache/superset/pull/29916) fix: duplicate `truncateXAxis` option in `BarChart` (@dmitriyVasilievich1986)
|
||||
- [#30013](https://github.com/apache/superset/pull/30013) fix(translations): Fixed APPLY translation in Spanish (@jvines)
|
||||
- [#30001](https://github.com/apache/superset/pull/30001) fix: Reports are not sent when selecting to send as PNG, CSV or text (@eschutho)
|
||||
- [#29686](https://github.com/apache/superset/pull/29686) fix: Removed fixed width constraint from Save button (@goldjee)
|
||||
- [#29951](https://github.com/apache/superset/pull/29951) fix(i18n): translation fix in server side generated time grains (@Seboeb)
|
||||
- [#29938](https://github.com/apache/superset/pull/29938) fix: thumbnail url json response was malformed (@eschutho)
|
||||
- [#29944](https://github.com/apache/superset/pull/29944) fix: only show dataset name in list (@eschutho)
|
||||
- [#29935](https://github.com/apache/superset/pull/29935) fix: Fix delete_fake_db (@stamplevskiyd)
|
||||
- [#29522](https://github.com/apache/superset/pull/29522) fix(cli): add impersonate_user to db import (@chessman)
|
||||
- [#29895](https://github.com/apache/superset/pull/29895) fix(PivotTable): Pass string only to safeHtmlSpan (@geido)
|
||||
- [#29864](https://github.com/apache/superset/pull/29864) fix: mypy issue on py3.9 + prevent similar issues (@mistercrunch)
|
||||
- [#29861](https://github.com/apache/superset/pull/29861) fix: mypy fails related to simplejson.dumps (@mistercrunch)
|
||||
- [#24411](https://github.com/apache/superset/pull/24411) fix(docs): update timescale.png (@mathisve)
|
||||
- [#29851](https://github.com/apache/superset/pull/29851) fix: Add missing icons (@kgabryje)
|
||||
- [#29591](https://github.com/apache/superset/pull/29591) fix: machine auth for GAQ enabled deployments (@harshit2283)
|
||||
- [#29798](https://github.com/apache/superset/pull/29798) fix: set default timezone to UTC for cron timezone conversions (@danielli-ziprecruiter)
|
||||
- [#28796](https://github.com/apache/superset/pull/28796) fix(list/chart views): Chart Properties modal now has transitions (@rusackas)
|
||||
- [#29688](https://github.com/apache/superset/pull/29688) fix(ci): release process for labeling PRs (@mistercrunch)
|
||||
- [#29779](https://github.com/apache/superset/pull/29779) fix: remove --no-optional from docker-compose build (@mistercrunch)
|
||||
|
||||
**Others**
|
||||
|
||||
- [#33745](https://github.com/apache/superset/pull/33745) build: update Dockerfile to 3.11.13-slim-bookworm (@gpchandran)
|
||||
- [#33612](https://github.com/apache/superset/pull/33612) chore: update Dockerfile - Upgrade to 3.11.12 (@gpchandran)
|
||||
- [#33339](https://github.com/apache/superset/pull/33339) chore(🦾): bump python h11 0.14.0 -> 0.16.0 (@github-actions[bot])
|
||||
- [#32745](https://github.com/apache/superset/pull/32745) chore(🦾): bump python sqlglot 26.1.3 -> 26.11.1 (@github-actions[bot])
|
||||
- [#32239](https://github.com/apache/superset/pull/32239) docs: adding notes about using uv instead of raw pip (@mistercrunch)
|
||||
- [#32221](https://github.com/apache/superset/pull/32221) chore(ci): fix ephemeral env null issue number (v2) (@dpgaspar)
|
||||
- [#32220](https://github.com/apache/superset/pull/32220) chore(ci): fix ephemeral env null issue number (@dpgaspar)
|
||||
- [#32030](https://github.com/apache/superset/pull/32030) chore(timeseries charts): adjust legend width by padding (@eschutho)
|
||||
- [#32062](https://github.com/apache/superset/pull/32062) chore: Re-enable asnyc event API tests (@Vitor-Avila)
|
||||
- [#32004](https://github.com/apache/superset/pull/32004) refactor(Radio): Upgrade Radio Component to Ant Design 5 (@EnxDev)
|
||||
- [#32054](https://github.com/apache/superset/pull/32054) chore: Add more database-related tests (follow up to #31948) (@Vitor-Avila)
|
||||
- [#31811](https://github.com/apache/superset/pull/31811) chore(Network Errors): Update network errors on filter bars and charts (@msyavuz)
|
||||
- [#31794](https://github.com/apache/superset/pull/31794) chore: Removing DASHBOARD_CROSS_FILTERS flag and all that comes with it. (@rusackas)
|
||||
- [#32013](https://github.com/apache/superset/pull/32013) chore: add UPDATING note for CSV_UPLOAD_MAX_SIZE removal (@dpgaspar)
|
||||
- [#31961](https://github.com/apache/superset/pull/31961) refactor: Upgrade to React 17 (@kgabryje)
|
||||
- [#32007](https://github.com/apache/superset/pull/32007) chore(fe): correct typing for sheetsColumnNames (@hainenber)
|
||||
- [#32000](https://github.com/apache/superset/pull/32000) refactor: Remove CSV upload size limit and related validation (@sha174n)
|
||||
- [#31421](https://github.com/apache/superset/pull/31421) refactor(Shared_url_query): Fix shared query URL access for SQL Lab users. (@LevisNgigi)
|
||||
- [#31980](https://github.com/apache/superset/pull/31980) chore: Add FYND to INTHEWILD.md (@darpanjain07)
|
||||
- [#31976](https://github.com/apache/superset/pull/31976) refactor: Removes the legacy dataset editor (@michael-s-molina)
|
||||
- [#31858](https://github.com/apache/superset/pull/31858) chore: refactor Alert-related components (@mistercrunch)
|
||||
- [#31547](https://github.com/apache/superset/pull/31547) chore(deps): bump react-transition-group and @types/react-transition-group in /superset-frontend (@dependabot[bot])
|
||||
- [#31963](https://github.com/apache/superset/pull/31963) chore(build): enforce eslint rule banning antd imports outside of core Superset components (@rusackas)
|
||||
- [#31965](https://github.com/apache/superset/pull/31965) chore: fix `tsc` errors (@hainenber)
|
||||
- [#31860](https://github.com/apache/superset/pull/31860) chore: Empty state refactor (@mistercrunch)
|
||||
- [#31844](https://github.com/apache/superset/pull/31844) chore: replace selenium user with fixed user (@villebro)
|
||||
- [#31943](https://github.com/apache/superset/pull/31943) refactor: Removes legacy dashboard endpoints (@michael-s-molina)
|
||||
- [#31942](https://github.com/apache/superset/pull/31942) refactor: Removes legacy CSS template endpoint (@michael-s-molina)
|
||||
- [#31819](https://github.com/apache/superset/pull/31819) chore(fe): migrate 6 Enzyme-based unit tests to RTL (@hainenber)
|
||||
- [#31947](https://github.com/apache/superset/pull/31947) chore: bump FAB to 4.5.3 (@dpgaspar)
|
||||
- [#30284](https://github.com/apache/superset/pull/30284) chore(GAQ): Remove GLOBAL_ASYNC_QUERIES_REDIS_CONFIG (@nsivarajan)
|
||||
- [#31926](https://github.com/apache/superset/pull/31926) chore: cypress set up tweaks (@mistercrunch)
|
||||
- [#31905](https://github.com/apache/superset/pull/31905) chore: Reduces the form_data_key length (@michael-s-molina)
|
||||
- [#31460](https://github.com/apache/superset/pull/31460) docs: Removed mentioning of .env-non-dev in docker/README.md (@nikelborm)
|
||||
- [#31907](https://github.com/apache/superset/pull/31907) chore: replace Lodash usage with native JS implementation (@hainenber)
|
||||
- [#31699](https://github.com/apache/superset/pull/31699) refactor(Menu): Upgrade Menu Component to Ant Design 5 (@geido)
|
||||
- [#31908](https://github.com/apache/superset/pull/31908) chore(fe): dev deps cleanup (@hainenber)
|
||||
- [#31916](https://github.com/apache/superset/pull/31916) docs: clarify port configuration for Cypress (@mistercrunch)
|
||||
- [#29163](https://github.com/apache/superset/pull/29163) refactor(sqllab): migrate share queries via kv by permalink (@justinpark)
|
||||
- [#29121](https://github.com/apache/superset/pull/29121) perf(dashboard): dashboard list endpoint returning large and unnecessary data (@Always-prog)
|
||||
- [#31894](https://github.com/apache/superset/pull/31894) chore(config): Deprecating Domain Sharding (@rusackas)
|
||||
- [#31795](https://github.com/apache/superset/pull/31795) chore: Re-enable skipped tests (@michael-s-molina)
|
||||
- [#31875](https://github.com/apache/superset/pull/31875) chore: add a disable for pylint (@betodealmeida)
|
||||
- [#31874](https://github.com/apache/superset/pull/31874) docs: add a note about accessing the dev env's postgres database (@mistercrunch)
|
||||
- [#31845](https://github.com/apache/superset/pull/31845) chore: add eslint to pre-commit hooks (@mistercrunch)
|
||||
- [#31847](https://github.com/apache/superset/pull/31847) chore(ci): auto delete branches on merge (@rusackas)
|
||||
- [#31846](https://github.com/apache/superset/pull/31846) chore: properly import expect from chai in cypress-base/cypress/support/e2e.ts (@mistercrunch)
|
||||
- [#31831](https://github.com/apache/superset/pull/31831) chore: bump @ant-design/icons to fix fill-rule console warning (@mistercrunch)
|
||||
- [#31503](https://github.com/apache/superset/pull/31503) chore: python version to 3.11 (while supporting 3.10) (@mistercrunch)
|
||||
- [#31761](https://github.com/apache/superset/pull/31761) build(eslint): disabling wildcard imports with eslint (@rusackas)
|
||||
- [#25933](https://github.com/apache/superset/pull/25933) chore(deps): bump selenium 4.14.0+ (@gnought)
|
||||
- [#31820](https://github.com/apache/superset/pull/31820) chore(tests): Changing the logic for an intermittent tag test (@Vitor-Avila)
|
||||
- [#31631](https://github.com/apache/superset/pull/31631) refactor(bulk_select): Fix bulk select tagging issues for users (@LevisNgigi)
|
||||
- [#31019](https://github.com/apache/superset/pull/31019) refactor(date picker): Migrate Date Picker to Ant Design 5 (@msyavuz)
|
||||
- [#31787](https://github.com/apache/superset/pull/31787) docs: improve dev python environment install (@sha174n)
|
||||
- [#31797](https://github.com/apache/superset/pull/31797) chore: adding Antonio as a helm codeowner (@eschutho)
|
||||
- [#31452](https://github.com/apache/superset/pull/31452) refactor(dashboard): Migrate ResizableContainer to TypeScript and functional component (@EnxDev)
|
||||
- [#31791](https://github.com/apache/superset/pull/31791) chore: Skips integration tests affected by legacy charts removal (@michael-s-molina)
|
||||
- [#31661](https://github.com/apache/superset/pull/31661) build(deps-dev): bump css-loader from 6.8.1 to 7.1.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#31668](https://github.com/apache/superset/pull/31668) build(deps-dev): bump css-minimizer-webpack-plugin from 5.0.1 to 7.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#31754](https://github.com/apache/superset/pull/31754) refactor: Removes Apply to all panels filters scope configuration (@michael-s-molina)
|
||||
- [#31623](https://github.com/apache/superset/pull/31623) refactor(Button): Upgrade Button component to Antd5 (@alexandrusoare)
|
||||
- [#31756](https://github.com/apache/superset/pull/31756) docs: add Remita to list (@mujibishola)
|
||||
- [#31750](https://github.com/apache/superset/pull/31750) docs: add cover genius to the user list (@US579)
|
||||
- [#31412](https://github.com/apache/superset/pull/31412) chore(ff): deprecating `DRILL_TO_DETAIL` feature flag to launch it prime-time (@rusackas)
|
||||
- [#31718](https://github.com/apache/superset/pull/31718) refactor(Steps): Migrate Steps to Ant Design 5 (@msyavuz)
|
||||
- [#31537](https://github.com/apache/superset/pull/31537) chore(deps): bump react-virtualized-auto-sizer from 1.0.24 to 1.0.25 in /superset-frontend (@dependabot[bot])
|
||||
- [#31552](https://github.com/apache/superset/pull/31552) chore(deps-dev): bump eslint-plugin-react-hooks from 4.6.0 to 4.6.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#31545](https://github.com/apache/superset/pull/31545) chore(deps-dev): bump webpack from 5.94.0 to 5.97.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#31551](https://github.com/apache/superset/pull/31551) chore(deps-dev): bump eslint-plugin-cypress from 3.5.0 to 3.6.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#31559](https://github.com/apache/superset/pull/31559) chore(deps): bump abortcontroller-polyfill from 1.7.5 to 1.7.8 in /superset-frontend (@dependabot[bot])
|
||||
- [#31653](https://github.com/apache/superset/pull/31653) build(deps): update @emotion/cache requirement from ^11.4.0 to ^11.14.0 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31664](https://github.com/apache/superset/pull/31664) build(deps): bump markdown-to-jsx from 7.4.7 to 7.7.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#31665](https://github.com/apache/superset/pull/31665) build(deps): bump html-webpack-plugin from 5.6.0 to 5.6.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#31666](https://github.com/apache/superset/pull/31666) build(deps-dev): bump @emotion/babel-plugin from 11.12.0 to 11.13.5 in /superset-frontend (@dependabot[bot])
|
||||
- [#31667](https://github.com/apache/superset/pull/31667) build(deps-dev): bump jsdom from 24.1.1 to 25.0.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#31685](https://github.com/apache/superset/pull/31685) build(deps): bump jinja2 from 3.1.4 to 3.1.5 in /superset/translations (@dependabot[bot])
|
||||
- [#31622](https://github.com/apache/superset/pull/31622) chore: replace `imp` built-in module usage for future Python3.12 usage (@hainenber)
|
||||
- [#31712](https://github.com/apache/superset/pull/31712) chore(fe/sec): resolve High CVE-2024-21538 and Moderate CVE-2024-55565 by bumping `nanoid` and `cross-spawn` (@hainenber)
|
||||
- [#31627](https://github.com/apache/superset/pull/31627) chore(helm): bump helm on CI to latest version (@villebro)
|
||||
- [#31701](https://github.com/apache/superset/pull/31701) chore: add helm code owners (@villebro)
|
||||
- [#31691](https://github.com/apache/superset/pull/31691) docs: add Open edX to users list (@pomegranited)
|
||||
- [#31693](https://github.com/apache/superset/pull/31693) refactor(space): Migrate Space to Ant Design 5 (@msyavuz)
|
||||
- [#31530](https://github.com/apache/superset/pull/31530) chore(deps-dev): bump eslint from 9.14.0 to 9.17.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#31670](https://github.com/apache/superset/pull/31670) build(deps): update echarts requirement from ^5.4.1 to ^5.6.0 in /superset-frontend/plugins/plugin-chart-echarts (@dependabot[bot])
|
||||
- [#31652](https://github.com/apache/superset/pull/31652) build(deps): update chalk requirement from ^5.4.0 to ^5.4.1 in /superset-frontend/packages/generator-superset (@dependabot[bot])
|
||||
- [#31655](https://github.com/apache/superset/pull/31655) build(deps): bump core-js from 3.38.1 to 3.39.0 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31656](https://github.com/apache/superset/pull/31656) build(deps): bump antd from 5.22.5 to 5.22.7 in /docs (@dependabot[bot])
|
||||
- [#31657](https://github.com/apache/superset/pull/31657) build(deps-dev): update @babel/core requirement from ^7.23.9 to ^7.26.0 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31658](https://github.com/apache/superset/pull/31658) build(deps): update @emotion/react requirement from ^11.13.3 to ^11.14.0 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31662](https://github.com/apache/superset/pull/31662) build(deps-dev): bump @types/node from 22.7.4 to 22.10.3 in /superset-websocket (@dependabot[bot])
|
||||
- [#31663](https://github.com/apache/superset/pull/31663) build(deps-dev): bump typescript-eslint from 8.12.2 to 8.19.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#31672](https://github.com/apache/superset/pull/31672) build(deps-dev): update @types/node requirement from ^22.5.4 to ^22.10.3 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#31633](https://github.com/apache/superset/pull/31633) refactor(empty): Migrate Empty component to Ant Design 5 (@msyavuz)
|
||||
- [#31607](https://github.com/apache/superset/pull/31607) refactor(Divider): Migrate Divider to Ant Design 5 (@msyavuz)
|
||||
- [#31310](https://github.com/apache/superset/pull/31310) refactor(moment): Replace Moment.js with DayJs (@msyavuz)
|
||||
- [#30778](https://github.com/apache/superset/pull/30778) build(deps-dev): update @types/jest requirement from ^29.5.12 to ^29.5.14 in /superset-frontend/plugins/plugin-chart-handlebars (@dependabot[bot])
|
||||
- [#31526](https://github.com/apache/superset/pull/31526) chore(deps): bump hot-shots from 10.0.0 to 10.2.1 in /superset-websocket (@dependabot[bot])
|
||||
- [#31538](https://github.com/apache/superset/pull/31538) chore(deps-dev): update @babel/preset-react requirement from ^7.23.3 to ^7.26.3 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31217](https://github.com/apache/superset/pull/31217) chore(deps-dev): bump eslint-plugin-jest-dom from 3.6.5 to 5.5.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#31541](https://github.com/apache/superset/pull/31541) chore(deps): bump antd from 5.22.2 to 5.22.5 in /docs (@dependabot[bot])
|
||||
- [#31536](https://github.com/apache/superset/pull/31536) chore(deps): bump prism-react-renderer from 2.4.0 to 2.4.1 in /docs (@dependabot[bot])
|
||||
- [#30322](https://github.com/apache/superset/pull/30322) build(deps): bump find-my-way and @applitools/eyes-cypress in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#30789](https://github.com/apache/superset/pull/30789) build(deps-dev): update @types/lodash requirement from ^4.17.7 to ^4.17.13 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#31523](https://github.com/apache/superset/pull/31523) chore(deps-dev): bump @types/lodash from 4.17.7 to 4.17.13 in /superset-websocket (@dependabot[bot])
|
||||
- [#31546](https://github.com/apache/superset/pull/31546) chore(deps-dev): bump @types/rison from 0.0.9 to 0.1.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#31557](https://github.com/apache/superset/pull/31557) chore(deps): bump react-reverse-portal from 2.1.1 to 2.1.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#31577](https://github.com/apache/superset/pull/31577) docs: add Virtuoso QA to users list (@shubham-rohatgi)
|
||||
- [#31520](https://github.com/apache/superset/pull/31520) chore(deps): bump debug from 4.3.7 to 4.4.0 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#30474](https://github.com/apache/superset/pull/30474) build(deps-dev): bump thread-loader from 4.0.2 to 4.0.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#30085](https://github.com/apache/superset/pull/30085) build(deps): bump gh-pages from 5.0.0 to 6.1.1 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31558](https://github.com/apache/superset/pull/31558) chore(deps-dev): bump eslint-import-resolver-typescript from 3.6.3 to 3.7.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#31521](https://github.com/apache/superset/pull/31521) chore(deps-dev): bump prettier from 3.3.3 to 3.4.2 in /superset-websocket (@dependabot[bot])
|
||||
- [#30785](https://github.com/apache/superset/pull/30785) build(deps-dev): update @types/underscore requirement from ^1.11.15 to ^1.13.0 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#30779](https://github.com/apache/superset/pull/30779) build(deps-dev): update @types/lodash requirement from ^4.17.7 to ^4.17.13 in /superset-frontend/plugins/plugin-chart-handlebars (@dependabot[bot])
|
||||
- [#31539](https://github.com/apache/superset/pull/31539) chore(deps-dev): bump webpack from 5.96.1 to 5.97.1 in /docs (@dependabot[bot])
|
||||
- [#31540](https://github.com/apache/superset/pull/31540) chore(deps): bump @algolia/client-search from 5.15.0 to 5.18.0 in /docs (@dependabot[bot])
|
||||
- [#27809](https://github.com/apache/superset/pull/27809) build(deps): bump @math.gl/web-mercator from 3.6.3 to 4.0.1 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#31529](https://github.com/apache/superset/pull/31529) chore(deps): update @deck.gl/aggregation-layers requirement from ^9.0.37 to ^9.0.38 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#31572](https://github.com/apache/superset/pull/31572) chore(deps): bump gh-pages from 5.0.0 to 6.2.0 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#30458](https://github.com/apache/superset/pull/30458) build(deps): bump @types/d3-format from 1.4.5 to 3.0.4 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#31542](https://github.com/apache/superset/pull/31542) chore(deps): bump @docsearch/react from 3.6.3 to 3.8.2 in /docs (@dependabot[bot])
|
||||
- [#31225](https://github.com/apache/superset/pull/31225) chore(deps-dev): bump typescript from 4.9.5 to 5.7.2 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31388](https://github.com/apache/superset/pull/31388) chore(deps): update dompurify requirement from ^3.1.3 to ^3.2.3 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (@dependabot[bot])
|
||||
- [#31543](https://github.com/apache/superset/pull/31543) chore(deps): bump @storybook/types from 8.1.11 to 8.4.7 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31533](https://github.com/apache/superset/pull/31533) chore(deps): update chalk requirement from ^5.3.0 to ^5.4.0 in /superset-frontend/packages/generator-superset (@dependabot[bot])
|
||||
- [#31532](https://github.com/apache/superset/pull/31532) chore(deps-dev): update @types/d3-time requirement from ^3.0.3 to ^3.0.4 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#31531](https://github.com/apache/superset/pull/31531) chore(deps): update yeoman-generator requirement from ^7.3.2 to ^7.4.0 in /superset-frontend/packages/generator-superset (@dependabot[bot])
|
||||
- [#31525](https://github.com/apache/superset/pull/31525) chore(deps): update @deck.gl/layers requirement from ^9.0.37 to ^9.0.38 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#31524](https://github.com/apache/superset/pull/31524) chore(deps-dev): update @babel/types requirement from ^7.25.6 to ^7.26.3 in /superset-frontend/plugins/plugin-chart-pivot-table (@dependabot[bot])
|
||||
- [#31389](https://github.com/apache/superset/pull/31389) chore(deps): update @emotion/styled requirement from ^11.3.0 to ^11.14.0 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#31519](https://github.com/apache/superset/pull/31519) chore: remove dependency on func_timeout because LGPL (@mistercrunch)
|
||||
- [#31517](https://github.com/apache/superset/pull/31517) chore: update browser list (@mistercrunch)
|
||||
- [#31420](https://github.com/apache/superset/pull/31420) refactor(Modal): Upgrade Modal component to Antd5 (@alexandrusoare)
|
||||
- [#31511](https://github.com/apache/superset/pull/31511) chore: rename `apply_post_process` (@betodealmeida)
|
||||
- [#31390](https://github.com/apache/superset/pull/31390) chore(gha): bump ubuntu to latest fresh release (@mistercrunch)
|
||||
- [#31313](https://github.com/apache/superset/pull/31313) chore: deprecate pip-compile-multi in favor or uv (@mistercrunch)
|
||||
- [#31515](https://github.com/apache/superset/pull/31515) chore: deprecate fossa in favor of liccheck to validate python licenses (@mistercrunch)
|
||||
- [#31501](https://github.com/apache/superset/pull/31501) chore(code owners): Update CODEOWNERS file to remove a couple inactive contributors (@rusackas)
|
||||
- [#31496](https://github.com/apache/superset/pull/31496) docs: Update new user for Careem to user's list (@samraHanif0340)
|
||||
- [#31451](https://github.com/apache/superset/pull/31451) chore: remove numba and llvmlite deps as they are large and we don't use them (@mistercrunch)
|
||||
- [#30605](https://github.com/apache/superset/pull/30605) chore(translations): German translation update (@gerbermichi)
|
||||
- [#31262](https://github.com/apache/superset/pull/31262) chore: deprecate `pylint` in favor of `ruff` (@mistercrunch)
|
||||
- [#31422](https://github.com/apache/superset/pull/31422) docs: CVEs fixed on 4.1.0 v2 (@dpgaspar)
|
||||
- [#31268](https://github.com/apache/superset/pull/31268) refactor: Migrate AdhocFilterEditPopoverSqlTabContent to TypeScript (@EnxDev)
|
||||
- [#30196](https://github.com/apache/superset/pull/30196) build(packages): npm build/publish improvements. Making packages publishable again. (@rusackas)
|
||||
- [#31378](https://github.com/apache/superset/pull/31378) chore(deps): bump nanoid from 3.3.7 to 3.3.8 in /docs (@dependabot[bot])
|
||||
- [#31381](https://github.com/apache/superset/pull/31381) chore(embedded sdk): bump sdk version number (@rusackas)
|
||||
- [#31380](https://github.com/apache/superset/pull/31380) chore(embedded sdk): bumping dependencies (@rusackas)
|
||||
- [#31362](https://github.com/apache/superset/pull/31362) chore(deps): bump nanoid from 5.0.7 to 5.0.9 in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#31209](https://github.com/apache/superset/pull/31209) chore(deps): bump antd from 5.21.6 to 5.22.2 in /docs (@dependabot[bot])
|
||||
- [#31219](https://github.com/apache/superset/pull/31219) chore(deps-dev): bump esbuild from 0.20.0 to 0.24.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#31314](https://github.com/apache/superset/pull/31314) chore(deps): bump path-to-regexp and express in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#31220](https://github.com/apache/superset/pull/31220) chore(deps): bump winston from 3.15.0 to 3.17.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#31218](https://github.com/apache/superset/pull/31218) chore(deps-dev): bump @babel/eslint-parser from 7.23.10 to 7.25.9 in /superset-frontend (@dependabot[bot])
|
||||
- [#31222](https://github.com/apache/superset/pull/31222) chore(deps-dev): bump @eslint/js from 9.14.0 to 9.16.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#31352](https://github.com/apache/superset/pull/31352) docs: CVEs fixed on 4.1.0 (@dpgaspar)
|
||||
- [#31168](https://github.com/apache/superset/pull/31168) refactor(Alert): Migrate Alert component to Ant Design V5 (@LevisNgigi)
|
||||
- [#31290](https://github.com/apache/superset/pull/31290) chore(FilterBar): move the "Add/edit filters" button in the FilterBar to the settings menu (@alexandrusoare)
|
||||
- [#31312](https://github.com/apache/superset/pull/31312) refactor(Name_column): Make 'Name' column of Saved Query page into links (@LevisNgigi)
|
||||
- [#31203](https://github.com/apache/superset/pull/31203) chore(deps): bump deck.gl from 9.0.34 to 9.0.36 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#31275](https://github.com/apache/superset/pull/31275) chore: relax greenlet requirements (@sadpandajoe)
|
||||
- [#31205](https://github.com/apache/superset/pull/31205) chore(deps-dev): bump typescript from 5.6.3 to 5.7.2 in /docs (@dependabot[bot])
|
||||
- [#31207](https://github.com/apache/superset/pull/31207) chore(deps): bump @algolia/client-search from 5.12.0 to 5.15.0 in /docs (@dependabot[bot])
|
||||
- [#31208](https://github.com/apache/superset/pull/31208) chore(deps): bump less from 4.2.0 to 4.2.1 in /docs (@dependabot[bot])
|
||||
- [#31204](https://github.com/apache/superset/pull/31204) chore(deps-dev): bump @docusaurus/tsconfig from 3.5.2 to 3.6.3 in /docs (@dependabot[bot])
|
||||
- [#31206](https://github.com/apache/superset/pull/31206) chore(deps): bump swagger-ui-react from 5.17.14 to 5.18.2 in /docs (@dependabot[bot])
|
||||
- [#31224](https://github.com/apache/superset/pull/31224) chore(deps-dev): bump @types/jest from 29.5.12 to 29.5.14 in /superset-websocket (@dependabot[bot])
|
||||
- [#31228](https://github.com/apache/superset/pull/31228) chore(deps): bump @types/react-table from 7.7.19 to 7.7.20 in /superset-frontend (@dependabot[bot])
|
||||
- [#31210](https://github.com/apache/superset/pull/31210) chore(deps-dev): bump @docusaurus/module-type-aliases from 3.5.2 to 3.6.3 in /docs (@dependabot[bot])
|
||||
- [#31213](https://github.com/apache/superset/pull/31213) chore(deps): bump @ant-design/icons from 5.5.1 to 5.5.2 in /docs (@dependabot[bot])
|
||||
- [#31230](https://github.com/apache/superset/pull/31230) chore(deps): bump @scarf/scarf from 1.3.0 to 1.4.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#31259](https://github.com/apache/superset/pull/31259) chore(bug report template): bump Superset versions to reflect 4.1.1 release (@sfirke)
|
||||
- [#31231](https://github.com/apache/superset/pull/31231) chore(deps): bump re-resizable from 6.10.0 to 6.10.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#31270](https://github.com/apache/superset/pull/31270) refactor: Split SliceHeaderControls into smaller files (@kgabryje)
|
||||
- [#30864](https://github.com/apache/superset/pull/30864) docs: adapt docs to suggest 'docker compose up --build' (@mistercrunch)
|
||||
- [#31034](https://github.com/apache/superset/pull/31034) chore: simplify Dockerfile package install calls with bash wrappers (@mistercrunch)
|
||||
- [#31214](https://github.com/apache/superset/pull/31214) chore(deps): bump codecov/codecov-action from 4 to 5 (@dependabot[bot])
|
||||
- [#31250](https://github.com/apache/superset/pull/31250) chore(🦾): bump python flask-migrate subpackage(s) (@github-actions[bot])
|
||||
- [#31249](https://github.com/apache/superset/pull/31249) chore(🦾): bump python nh3 0.2.18 -> 0.2.19 (@github-actions[bot])
|
||||
- [#31253](https://github.com/apache/superset/pull/31253) chore(🦾): bump python pyjwt 2.10.0 -> 2.10.1 (@github-actions[bot])
|
||||
- [#31254](https://github.com/apache/superset/pull/31254) chore: pin greenlet in base dependencies (@mistercrunch)
|
||||
- [#31186](https://github.com/apache/superset/pull/31186) docs(contributing): how to nuke the docker-compose postgres (@mistercrunch)
|
||||
- [#31244](https://github.com/apache/superset/pull/31244) perf: Optimize DashboardPage and SyncDashboardState (@kgabryje)
|
||||
- [#31243](https://github.com/apache/superset/pull/31243) perf: Optimize native filters and cross filters (@kgabryje)
|
||||
- [#31240](https://github.com/apache/superset/pull/31240) perf: Optimize dashboard grid components (@kgabryje)
|
||||
- [#31242](https://github.com/apache/superset/pull/31242) perf: Optimize Dashboard components (@kgabryje)
|
||||
- [#31241](https://github.com/apache/superset/pull/31241) perf: Optimize dashboard chart-related components (@kgabryje)
|
||||
- [#31182](https://github.com/apache/superset/pull/31182) chore(Tooltip): Upgrade Tooltip to Ant Design 5 (@alexandrusoare)
|
||||
- [#31193](https://github.com/apache/superset/pull/31193) refactor: Creates the VizType enum (@michael-s-molina)
|
||||
- [#31165](https://github.com/apache/superset/pull/31165) docs: update slack alert instructions to work with V2 slack API (@PJDuszynski)
|
||||
- [#28461](https://github.com/apache/superset/pull/28461) chore(🦾): bump python sqlglot 23.6.3 -> 23.15.8 (@github-actions[bot])
|
||||
- [#31171](https://github.com/apache/superset/pull/31171) chore(🦾): bump python pyparsing 3.1.2 -> 3.2.0 (@github-actions[bot])
|
||||
- [#31170](https://github.com/apache/superset/pull/31170) chore(deps): cap async_timeout<5.0.0 (@mistercrunch)
|
||||
- [#31032](https://github.com/apache/superset/pull/31032) refactor: remove more sqlparse (@betodealmeida)
|
||||
- [#31126](https://github.com/apache/superset/pull/31126) chore(🦾): bump python importlib-metadata 7.1.0 -> 8.5.0 (@github-actions[bot])
|
||||
- [#29382](https://github.com/apache/superset/pull/29382) chore: deprecate tox in favor of act (@mistercrunch)
|
||||
- [#31109](https://github.com/apache/superset/pull/31109) chore(🦾): bump python billiard 4.2.0 -> 4.2.1 (@github-actions[bot])
|
||||
- [#31138](https://github.com/apache/superset/pull/31138) chore(🦾): bump python flask-limiter 3.7.0 -> 3.8.0 (@github-actions[bot])
|
||||
- [#31140](https://github.com/apache/superset/pull/31140) chore(🦾): bump python mako 1.3.5 -> 1.3.6 (@github-actions[bot])
|
||||
- [#31127](https://github.com/apache/superset/pull/31127) chore(🦾): bump python celery subpackage(s) (@github-actions[bot])
|
||||
- [#31128](https://github.com/apache/superset/pull/31128) chore(🦾): bump python humanize 4.9.0 -> 4.11.0 (@github-actions[bot])
|
||||
- [#31129](https://github.com/apache/superset/pull/31129) chore(🦾): bump python simplejson 3.19.2 -> 3.19.3 (@github-actions[bot])
|
||||
- [#31130](https://github.com/apache/superset/pull/31130) chore(🦾): bump python numexpr 2.10.1 -> 2.10.2 (@github-actions[bot])
|
||||
- [#31132](https://github.com/apache/superset/pull/31132) chore(🦾): bump python slack-sdk 3.27.2 -> 3.33.4 (@github-actions[bot])
|
||||
- [#31133](https://github.com/apache/superset/pull/31133) chore(🦾): bump python pyopenssl 24.1.0 -> 24.2.1 (@github-actions[bot])
|
||||
- [#31135](https://github.com/apache/superset/pull/31135) chore(🦾): bump python dnspython 2.6.1 -> 2.7.0 (@github-actions[bot])
|
||||
- [#31136](https://github.com/apache/superset/pull/31136) chore(🦾): bump python zstandard 0.22.0 -> 0.23.0 (@github-actions[bot])
|
||||
- [#31137](https://github.com/apache/superset/pull/31137) chore(🦾): bump python limits 3.12.0 -> 3.13.0 (@github-actions[bot])
|
||||
- [#31139](https://github.com/apache/superset/pull/31139) chore(🦾): bump python flask-jwt-extended 4.6.0 -> 4.7.1 (@github-actions[bot])
|
||||
- [#31125](https://github.com/apache/superset/pull/31125) chore(🦾): bump python gunicorn 22.0.0 -> 23.0.0 (@github-actions[bot])
|
||||
- [#31124](https://github.com/apache/superset/pull/31124) chore(🦾): bump python zipp 3.19.0 -> 3.21.0 (@github-actions[bot])
|
||||
- [#31123](https://github.com/apache/superset/pull/31123) chore(🦾): bump python flask-compress 1.15 -> 1.17 (@github-actions[bot])
|
||||
- [#31108](https://github.com/apache/superset/pull/31108) chore(🦾): bump python dill 0.3.8 -> 0.3.9 (@github-actions[bot])
|
||||
- [#31116](https://github.com/apache/superset/pull/31116) chore(🦾): bump python email-validator 2.1.1 -> 2.2.0 (@github-actions[bot])
|
||||
- [#31153](https://github.com/apache/superset/pull/31153) chore(asf): add `gh-pages` to protected branches (@rusackas)
|
||||
- [#31122](https://github.com/apache/superset/pull/31122) chore(🦾): bump python async-timeout 4.0.3 -> 5.0.1 (@github-actions[bot])
|
||||
- [#31121](https://github.com/apache/superset/pull/31121) chore(🦾): bump python prompt-toolkit 3.0.44 -> 3.0.48 (@github-actions[bot])
|
||||
- [#31119](https://github.com/apache/superset/pull/31119) chore(🦾): bump python sqlparse 0.5.0 -> 0.5.2 (@github-actions[bot])
|
||||
- [#30963](https://github.com/apache/superset/pull/30963) refactor(List): Upgrade List from antdesign4 to antdesign5 (@alexandrusoare)
|
||||
- [#31113](https://github.com/apache/superset/pull/31113) chore(🦾): bump python mysqlclient 2.2.4 -> 2.2.6 (@github-actions[bot])
|
||||
- [#31114](https://github.com/apache/superset/pull/31114) chore(🦾): bump python grpcio-status subpackage(s) (@github-actions[bot])
|
||||
- [#31112](https://github.com/apache/superset/pull/31112) chore(🦾): bump python cycler 0.11.0 -> 0.12.1 (@github-actions[bot])
|
||||
- [#31091](https://github.com/apache/superset/pull/31091) chore(🦾): bump python croniter 2.0.5 -> 5.0.1 (@github-actions[bot])
|
||||
- [#31107](https://github.com/apache/superset/pull/31107) chore(🦾): bump python google-auth 2.29.0 -> 2.36.0 (@github-actions[bot])
|
||||
- [#31106](https://github.com/apache/superset/pull/31106) chore(🦾): bump python psutil 6.0.0 -> 6.1.0 (@github-actions[bot])
|
||||
- [#31105](https://github.com/apache/superset/pull/31105) chore(🦾): bump python dnspython 2.6.1 -> 2.7.0 (@github-actions[bot])
|
||||
- [#31102](https://github.com/apache/superset/pull/31102) chore(🦾): bump python markdown 3.6 -> 3.7 (@github-actions[bot])
|
||||
- [#31101](https://github.com/apache/superset/pull/31101) chore(🦾): bump python pluggy 1.4.0 -> 1.5.0 (@github-actions[bot])
|
||||
- [#31100](https://github.com/apache/superset/pull/31100) chore(🦾): bump python sqloxide 0.1.43 -> 0.1.51 (@github-actions[bot])
|
||||
- [#31099](https://github.com/apache/superset/pull/31099) chore(🦾): bump python wheel 0.43.0 -> 0.45.1 (@github-actions[bot])
|
||||
- [#31098](https://github.com/apache/superset/pull/31098) chore(🦾): bump python pyproject-api 1.6.1 -> 1.8.0 (@github-actions[bot])
|
||||
- [#31096](https://github.com/apache/superset/pull/31096) chore(🦾): bump python pytest-cov 5.0.0 -> 6.0.0 (@github-actions[bot])
|
||||
- [#31094](https://github.com/apache/superset/pull/31094) chore(🦾): bump python chardet 5.1.0 -> 5.2.0 (@github-actions[bot])
|
||||
- [#31093](https://github.com/apache/superset/pull/31093) chore(🦾): bump python jsonpath-ng 1.6.1 -> 1.7.0 (@github-actions[bot])
|
||||
- [#31092](https://github.com/apache/superset/pull/31092) chore(🦾): bump python sshtunnel subpackage(s) (@github-actions[bot])
|
||||
- [#31097](https://github.com/apache/superset/pull/31097) chore(🦾): bump python mako 1.3.5 -> 1.3.6 (@github-actions[bot])
|
||||
- [#31090](https://github.com/apache/superset/pull/31090) chore(🦾): bump python tomlkit 0.12.5 -> 0.13.2 (@github-actions[bot])
|
||||
- [#31087](https://github.com/apache/superset/pull/31087) chore(🦾): bump python isodate 0.6.1 -> 0.7.2 (@github-actions[bot])
|
||||
- [#31082](https://github.com/apache/superset/pull/31082) chore(🦾): bump python db-dtypes 1.2.0 -> 1.3.1 (@github-actions[bot])
|
||||
- [#31081](https://github.com/apache/superset/pull/31081) chore(🦾): bump python trino 0.328.0 -> 0.330.0 (@github-actions[bot])
|
||||
- [#31089](https://github.com/apache/superset/pull/31089) chore(🦾): bump python certifi 2024.2.2 -> 2024.8.30 (@github-actions[bot])
|
||||
- [#31088](https://github.com/apache/superset/pull/31088) chore(🦾): bump python pydata-google-auth 1.7.0 -> 1.9.0 (@github-actions[bot])
|
||||
- [#31086](https://github.com/apache/superset/pull/31086) chore(🦾): bump python pyproject-hooks 1.0.0 -> 1.2.0 (@github-actions[bot])
|
||||
- [#31085](https://github.com/apache/superset/pull/31085) chore(🦾): bump python sqlalchemy-bigquery 1.11.0 -> 1.12.0 (@github-actions[bot])
|
||||
- [#31084](https://github.com/apache/superset/pull/31084) chore(🦾): bump python kiwisolver 1.4.5 -> 1.4.7 (@github-actions[bot])
|
||||
- [#31083](https://github.com/apache/superset/pull/31083) chore(🦾): bump python coverage subpackage(s) (@github-actions[bot])
|
||||
- [#31077](https://github.com/apache/superset/pull/31077) chore(🦾): bump python cfgv 3.3.1 -> 3.4.0 (@github-actions[bot])
|
||||
- [#31075](https://github.com/apache/superset/pull/31075) chore(🦾): bump python fonttools 4.51.0 -> 4.55.0 (@github-actions[bot])
|
||||
- [#31076](https://github.com/apache/superset/pull/31076) chore(🦾): bump python pyasn1-modules 0.4.0 -> 0.4.1 (@github-actions[bot])
|
||||
- [#31079](https://github.com/apache/superset/pull/31079) chore(🦾): bump python pyhive subpackage(s) (@github-actions[bot])
|
||||
- [#31078](https://github.com/apache/superset/pull/31078) chore(🦾): bump python google-cloud-core 2.3.2 -> 2.4.1 (@github-actions[bot])
|
||||
- [#31048](https://github.com/apache/superset/pull/31048) chore(🦾): bump python sqlalchemy-utils subpackage(s) (@github-actions[bot])
|
||||
- [#31073](https://github.com/apache/superset/pull/31073) chore(🦾): bump python amqp 5.2.0 -> 5.3.1 (@github-actions[bot])
|
||||
- [#31071](https://github.com/apache/superset/pull/31071) chore(🦾): bump python cachetools 5.3.3 -> 5.5.0 (@github-actions[bot])
|
||||
- [#31074](https://github.com/apache/superset/pull/31074) chore(🦾): bump python kombu 5.3.7 -> 5.4.2 (@github-actions[bot])
|
||||
- [#31066](https://github.com/apache/superset/pull/31066) chore(🦾): bump python pyyaml 6.0.1 -> 6.0.2 (@github-actions[bot])
|
||||
- [#31068](https://github.com/apache/superset/pull/31068) chore(🦾): bump python tqdm 4.66.4 -> 4.67.1 (@github-actions[bot])
|
||||
- [#31069](https://github.com/apache/superset/pull/31069) chore(🦾): bump python proto-plus 1.22.2 -> 1.25.0 (@github-actions[bot])
|
||||
- [#31067](https://github.com/apache/superset/pull/31067) chore(🦾): bump python importlib-resources 6.4.0 -> 6.4.5 (@github-actions[bot])
|
||||
- [#31062](https://github.com/apache/superset/pull/31062) chore(🦾): bump python apispec subpackage(s) (@github-actions[bot])
|
||||
- [#31056](https://github.com/apache/superset/pull/31056) chore(🦾): bump python deprecated 1.2.14 -> 1.2.15 (@github-actions[bot])
|
||||
- [#31050](https://github.com/apache/superset/pull/31050) chore(🦾): bump python pre-commit 3.7.1 -> 4.0.1 (@github-actions[bot])
|
||||
- [#31064](https://github.com/apache/superset/pull/31064) chore(🦾): bump python charset-normalizer 3.3.2 -> 3.4.0 (@github-actions[bot])
|
||||
- [#31001](https://github.com/apache/superset/pull/31001) chore(🦾): bump python ruff 0.4.5 -> 0.8.0 (@github-actions[bot])
|
||||
- [#31049](https://github.com/apache/superset/pull/31049) chore(🦾): bump python googleapis-common-protos 1.63.0 -> 1.66.0 (@github-actions[bot])
|
||||
- [#31046](https://github.com/apache/superset/pull/31046) chore(🦾): bump python cron-descriptor 1.4.3 -> 1.4.5 (@github-actions[bot])
|
||||
- [#31052](https://github.com/apache/superset/pull/31052) chore(🦾): bump python flask-wtf 1.2.1 -> 1.2.2 (@github-actions[bot])
|
||||
- [#31044](https://github.com/apache/superset/pull/31044) docs: updated the install process in pypi.mdx (@Rkejji)
|
||||
- [#31054](https://github.com/apache/superset/pull/31054) chore(🦾): bump python nh3 0.2.17 -> 0.2.18 (@github-actions[bot])
|
||||
- [#31045](https://github.com/apache/superset/pull/31045) chore(🦾): bump python marshmallow 3.21.2 -> 3.23.1 (@github-actions[bot])
|
||||
- [#31041](https://github.com/apache/superset/pull/31041) chore(🦾): bump python idna 3.7 -> 3.10 (@github-actions[bot])
|
||||
- [#31042](https://github.com/apache/superset/pull/31042) chore(🦾): bump python pyjwt 2.8.0 -> 2.10.0 (@github-actions[bot])
|
||||
- [#31040](https://github.com/apache/superset/pull/31040) chore(🦾): bump python et-xmlfile 1.1.0 -> 2.0.0 & remove pyhive[hive] from requirements/development.in (@github-actions[bot])
|
||||
- [#30651](https://github.com/apache/superset/pull/30651) chore(legacy-plugin-chart-map-box): replace viewport-mercator-project with @math.gl/web-mercator (@birkskyum)
|
||||
- [#31004](https://github.com/apache/superset/pull/31004) chore(🦾): bump python pandas subpackage(s) (@github-actions[bot])
|
||||
- [#31030](https://github.com/apache/superset/pull/31030) chore: Cleanup code related to MetadataBar, fix types (@kgabryje)
|
||||
- [#31029](https://github.com/apache/superset/pull/31029) chore: Refactor dashboard header to func component (@kgabryje)
|
||||
- [#30998](https://github.com/apache/superset/pull/30998) chore(🦾): bump python cattrs 23.2.3 -> 24.1.2 (@github-actions[bot])
|
||||
- [#30867](https://github.com/apache/superset/pull/30867) docs: Update doc about CSV upload (@seiyab)
|
||||
- [#30972](https://github.com/apache/superset/pull/30972) docs: Embedded sdk (@jpchev)
|
||||
- [#30981](https://github.com/apache/superset/pull/30981) chore: publish wheels (@dimbleby)
|
||||
- [#31000](https://github.com/apache/superset/pull/31000) chore(🦾): bump python flask-babel subpackage(s) (@github-actions[bot])
|
||||
- [#31002](https://github.com/apache/superset/pull/31002) chore(🦾): bump python cffi 1.16.0 -> 1.17.1 (@github-actions[bot])
|
||||
- [#31006](https://github.com/apache/superset/pull/31006) chore(🦾): bump python numexpr 2.10.0 -> 2.10.1 (@github-actions[bot])
|
||||
- [#31021](https://github.com/apache/superset/pull/31021) chore: add unit tests for `is_mutating()` (@betodealmeida)
|
||||
- [#30918](https://github.com/apache/superset/pull/30918) chore(helm): bumping app version to 4.1.1 in helm chart (@lodu)
|
||||
- [#30948](https://github.com/apache/superset/pull/30948) chore: add performance information to tooltip (@eschutho)
|
||||
- [#30970](https://github.com/apache/superset/pull/30970) build(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs (@dependabot[bot])
|
||||
- [#30969](https://github.com/apache/superset/pull/30969) build(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#30818](https://github.com/apache/superset/pull/30818) chore(Accessibility): Fix accessibility for 'Show x entries' dropdown in tables (@LevisNgigi)
|
||||
- [#30946](https://github.com/apache/superset/pull/30946) chore(docs): Update list of supported databases to include CrateDB (@amotl)
|
||||
- [#30915](https://github.com/apache/superset/pull/30915) chore: update change log, UPDATING.md and bug-report.yml for 4.1 release (@sadpandajoe)
|
||||
- [#29243](https://github.com/apache/superset/pull/29243) chore(deps): Migrate from `crate[sqlalchemy]` to `sqlalchemy-cratedb` (@amotl)
|
||||
- [#30930](https://github.com/apache/superset/pull/30930) docs: add Free2Move to INTHEWILD.md (@PaoloTerzi)
|
||||
- [#30925](https://github.com/apache/superset/pull/30925) chore(ci): add tai and michael to helm owners (@villebro)
|
||||
- [#30730](https://github.com/apache/superset/pull/30730) refactor(input): Migrate Input component to Ant Design 5 (@msyavuz)
|
||||
- [#30740](https://github.com/apache/superset/pull/30740) refactor(Avatar): Migrate Avatar to Ant Design 5 (@msyavuz)
|
||||
- [#30806](https://github.com/apache/superset/pull/30806) build(deps): bump remark-gfm from 3.0.1 to 4.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29545](https://github.com/apache/superset/pull/29545) chore(AntD5): touchup on component imports/exports, theming ListViewCard (@rusackas)
|
||||
- [#30775](https://github.com/apache/superset/pull/30775) chore: update help text copy on dataset settings (@yousoph)
|
||||
- [#30792](https://github.com/apache/superset/pull/30792) build(deps): bump @algolia/client-search from 4.24.0 to 5.12.0 in /docs (@dependabot[bot])
|
||||
- [#30770](https://github.com/apache/superset/pull/30770) docs: make it more clear that GLOBAL_ASYNC_QUERIES is experimental/beta (@mistercrunch)
|
||||
- [#30883](https://github.com/apache/superset/pull/30883) perf: Prevent redundant calls to getRelevantDataMask (@kgabryje)
|
||||
- [#30847](https://github.com/apache/superset/pull/30847) chore(GHA): Making the Linkinator STEP non-blocking, rather than the JOB. (@rusackas)
|
||||
- [#30812](https://github.com/apache/superset/pull/30812) chore(FilterBar): Filter bar accessibility (@alexandrusoare)
|
||||
- [#30854](https://github.com/apache/superset/pull/30854) chore: Chart context menu permissions cleanup (@kgabryje)
|
||||
- [#30255](https://github.com/apache/superset/pull/30255) chore(scripts): purge node_modules folder on `npm prune` (@rusackas)
|
||||
- [#30846](https://github.com/apache/superset/pull/30846) chore(actions): Bump Linkinator in superset-docs-verify.yml (@rusackas)
|
||||
- [#30797](https://github.com/apache/superset/pull/30797) build(deps): bump @docsearch/react from 3.6.2 to 3.6.3 in /docs (@dependabot[bot])
|
||||
- [#30796](https://github.com/apache/superset/pull/30796) build(deps): bump @mdx-js/react from 3.0.1 to 3.1.0 in /docs (@dependabot[bot])
|
||||
- [#30793](https://github.com/apache/superset/pull/30793) build(deps-dev): bump @types/react from 18.3.10 to 18.3.12 in /docs (@dependabot[bot])
|
||||
- [#30795](https://github.com/apache/superset/pull/30795) build(deps-dev): bump typescript from 5.6.2 to 5.6.3 in /docs (@dependabot[bot])
|
||||
- [#30799](https://github.com/apache/superset/pull/30799) build(deps): bump @saucelabs/theme-github-codeblock from 0.2.3 to 0.3.0 in /docs (@dependabot[bot])
|
||||
- [#30824](https://github.com/apache/superset/pull/30824) docs: Update INTHEWILD.md with 2070Health Org (@sanjaynayak007)
|
||||
- [#30838](https://github.com/apache/superset/pull/30838) chore: Revert "build(deps): bump JustinBeckwith/linkinator-action from 1.10.4 to 1.11.0" (@rusackas)
|
||||
- [#30832](https://github.com/apache/superset/pull/30832) build(deps-dev): bump webpack from 5.95.0 to 5.96.1 in /docs (@dependabot[bot])
|
||||
- [#30822](https://github.com/apache/superset/pull/30822) docs: Update INTHEWILD.md (@Habeeb556)
|
||||
- [#30835](https://github.com/apache/superset/pull/30835) build(deps-dev): bump eslint from 9.11.0 to 9.14.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#30782](https://github.com/apache/superset/pull/30782) build(deps): bump uuid from 10.0.0 to 11.0.2 in /superset-websocket (@dependabot[bot])
|
||||
- [#30784](https://github.com/apache/superset/pull/30784) build(deps): bump winston from 3.13.0 to 3.15.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#30786](https://github.com/apache/superset/pull/30786) build(deps): bump deck.gl from 9.0.28 to 9.0.34 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#30803](https://github.com/apache/superset/pull/30803) build(deps-dev): bump eslint-plugin-react from 7.33.2 to 7.37.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#30781](https://github.com/apache/superset/pull/30781) build(deps-dev): bump typescript-eslint from 8.8.0 to 8.12.2 in /superset-websocket (@dependabot[bot])
|
||||
- [#30809](https://github.com/apache/superset/pull/30809) build(deps-dev): bump prettier-plugin-packagejson from 2.5.2 to 2.5.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#30817](https://github.com/apache/superset/pull/30817) build(deps): bump webpack from 5.80.0 to 5.96.1 in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#30794](https://github.com/apache/superset/pull/30794) build(deps): bump antd from 5.20.5 to 5.21.6 in /docs (@dependabot[bot])
|
||||
- [#30811](https://github.com/apache/superset/pull/30811) build(deps): bump @rjsf/validator-ajv8 from 5.19.4 to 5.22.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#30804](https://github.com/apache/superset/pull/30804) build(deps): bump ace-builds from 1.35.4 to 1.36.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#30810](https://github.com/apache/superset/pull/30810) build(deps-dev): bump eslint-plugin-testing-library from 6.2.2 to 6.4.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#30805](https://github.com/apache/superset/pull/30805) build(deps-dev): bump eslint-import-resolver-typescript from 3.6.1 to 3.6.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#30802](https://github.com/apache/superset/pull/30802) build(deps): bump JustinBeckwith/linkinator-action from 1.10.4 to 1.11.0 (@dependabot[bot])
|
||||
- [#30758](https://github.com/apache/superset/pull/30758) style(databases-upload-form): update Upload Form cosmetics (@vine-trellis)
|
||||
- [#30697](https://github.com/apache/superset/pull/30697) refactor: Migrate SliceAdder to typescript (@EnxDev)
|
||||
- [#30731](https://github.com/apache/superset/pull/30731) refactor(Switch): Upgrade Switch to Ant Design 5 (@alexandrusoare)
|
||||
- [#30757](https://github.com/apache/superset/pull/30757) docs: Adding link to StarRocks official docs (@rusackas)
|
||||
- [#30747](https://github.com/apache/superset/pull/30747) docs: Update INTHEWILD.md (@MSTartan)
|
||||
- [#30753](https://github.com/apache/superset/pull/30753) docs: add Sarathi to users list (@SaiSkandaTNI)
|
||||
- [#30749](https://github.com/apache/superset/pull/30749) docs: Update INTHEWILD.md with Medic (@1yuv)
|
||||
- [#30355](https://github.com/apache/superset/pull/30355) chore(fe): replace deprecate aliased Jest matchers with corresponding substituents (@hainenber)
|
||||
- [#30536](https://github.com/apache/superset/pull/30536) build(deps): bump cookie from 0.6.0 to 0.7.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#30480](https://github.com/apache/superset/pull/30480) build(deps-dev): bump webpack from 5.94.0 to 5.95.0 in /docs (@dependabot[bot])
|
||||
- [#30571](https://github.com/apache/superset/pull/30571) build(deps): bump cookie, cookie-parser and express in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#30738](https://github.com/apache/superset/pull/30738) docs: rename Twitter to X in the INTHEWILD.md (@wugeer)
|
||||
- [#30743](https://github.com/apache/superset/pull/30743) docs(templating): Replace "true" with "1 = 1" and explain its purpose (@sfirke)
|
||||
- [#30709](https://github.com/apache/superset/pull/30709) build(deps-dev): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /superset-frontend (@dependabot[bot])
|
||||
- [#30654](https://github.com/apache/superset/pull/30654) refactor: Migrate UndoRedoKeyListeners to typescript (@EnxDev)
|
||||
- [#30653](https://github.com/apache/superset/pull/30653) refactor: Migration publishedStatus to typescript (@EnxDev)
|
||||
- [#30683](https://github.com/apache/superset/pull/30683) build(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /docs (@dependabot[bot])
|
||||
- [#30568](https://github.com/apache/superset/pull/30568) refactor: Migrate HeaderActionsDropdown to typescript (@EnxDev)
|
||||
- [#30655](https://github.com/apache/superset/pull/30655) docs: frontend long build time (@CodeWithEmad)
|
||||
- [#30662](https://github.com/apache/superset/pull/30662) refactor: Split FastVizSwitcher into multiple files for readability (@kgabryje)
|
||||
- [#30609](https://github.com/apache/superset/pull/30609) refactor(Dashboard): Native filters form update endpoint (@geido)
|
||||
- [#30613](https://github.com/apache/superset/pull/30613) chore: Enable suppressing default chart context menu (@kgabryje)
|
||||
- [#30523](https://github.com/apache/superset/pull/30523) docs: Clarification on which command to use on which Ubuntu version. (@kkovacs)
|
||||
- [#30599](https://github.com/apache/superset/pull/30599) chore(number-formatter): upgrade pretty-ms to 9.1.0 (@villebro)
|
||||
- [#30572](https://github.com/apache/superset/pull/30572) build(deps): bump cookie, @applitools/eyes-storybook and express in /superset-frontend (@dependabot[bot])
|
||||
- [#30357](https://github.com/apache/superset/pull/30357) chore(fe): uplift FE packages to latest version (@hainenber)
|
||||
- [#30521](https://github.com/apache/superset/pull/30521) chore: enable lint PT009 'use regular assert over self.assert.\*' (@mistercrunch)
|
||||
- [#28370](https://github.com/apache/superset/pull/28370) refactor: Migration of Chart to TypeScript (@EnxDev)
|
||||
- [#30528](https://github.com/apache/superset/pull/30528) chore(fe): bump webpack-related packages to v5 (@hainenber)
|
||||
- [#30526](https://github.com/apache/superset/pull/30526) chore(translations): Slovenian translation update (@dkrat7)
|
||||
- [#30495](https://github.com/apache/superset/pull/30495) chore: add native filters to Covid Vaccines dashboard (@sadpandajoe)
|
||||
- [#30463](https://github.com/apache/superset/pull/30463) build(deps-dev): bump typescript from 5.5.4 to 5.6.2 in /superset-websocket (@dependabot[bot])
|
||||
- [#30472](https://github.com/apache/superset/pull/30472) build(deps): bump express from 4.20.0 to 4.21.0 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#30496](https://github.com/apache/superset/pull/30496) docs: fix broken links in CI (@mistercrunch)
|
||||
- [#30476](https://github.com/apache/superset/pull/30476) build(deps-dev): bump typescript from 5.5.4 to 5.6.2 in /docs (@dependabot[bot])
|
||||
- [#30461](https://github.com/apache/superset/pull/30461) build(deps): bump @rjsf/core from 5.19.4 to 5.21.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#30465](https://github.com/apache/superset/pull/30465) build(deps-dev): bump typescript-eslint from 8.6.0 to 8.8.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#30466](https://github.com/apache/superset/pull/30466) build(deps-dev): bump @types/node from 22.0.2 to 22.7.4 in /superset-websocket (@dependabot[bot])
|
||||
- [#30467](https://github.com/apache/superset/pull/30467) build(deps): bump @types/prop-types from 15.7.5 to 15.7.13 in /superset-frontend (@dependabot[bot])
|
||||
- [#30469](https://github.com/apache/superset/pull/30469) build(deps): bump @types/react-loadable from 5.5.6 to 5.5.11 in /superset-frontend (@dependabot[bot])
|
||||
- [#30471](https://github.com/apache/superset/pull/30471) build(deps): bump debug from 4.3.6 to 4.3.7 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#30281](https://github.com/apache/superset/pull/30281) refactor(frontend): migrate 6 Enzyme-based tests to RTL, part 2 (@hainenber)
|
||||
- [#30487](https://github.com/apache/superset/pull/30487) build(deps-dev): bump esbuild-loader from 4.1.0 to 4.2.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#30460](https://github.com/apache/superset/pull/30460) build(deps-dev): bump eslint-plugin-file-progress from 1.4.0 to 1.5.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#30459](https://github.com/apache/superset/pull/30459) build(deps-dev): bump @cypress/react from 5.12.5 to 8.0.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#30464](https://github.com/apache/superset/pull/30464) build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.6.0 to 8.8.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#30477](https://github.com/apache/superset/pull/30477) build(deps): bump re-resizable from 6.9.11 to 6.10.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#30473](https://github.com/apache/superset/pull/30473) build(deps-dev): bump webpack-manifest-plugin from 4.1.1 to 5.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#30481](https://github.com/apache/superset/pull/30481) build(deps-dev): bump @types/react from 18.3.5 to 18.3.10 in /docs (@dependabot[bot])
|
||||
- [#30483](https://github.com/apache/superset/pull/30483) build(deps): bump @docsearch/react from 3.6.1 to 3.6.2 in /docs (@dependabot[bot])
|
||||
- [#30484](https://github.com/apache/superset/pull/30484) build(deps): bump handlebars from 4.7.7 to 4.7.8 in /superset-frontend (@dependabot[bot])
|
||||
- [#30485](https://github.com/apache/superset/pull/30485) build(deps-dev): bump @types/yargs from 17.0.32 to 17.0.33 in /superset-frontend (@dependabot[bot])
|
||||
- [#30445](https://github.com/apache/superset/pull/30445) docs(dashboard): add docs for named and index colors (@villebro)
|
||||
- [#30410](https://github.com/apache/superset/pull/30410) chore: log warnings for database tables api (@eschutho)
|
||||
- [#28747](https://github.com/apache/superset/pull/28747) chore: document upper bound for python lib 'holidays' >= 0.26 (@mistercrunch)
|
||||
- [#30440](https://github.com/apache/superset/pull/30440) chore(Dashboard): Unblock Global Styles (@geido)
|
||||
- [#30365](https://github.com/apache/superset/pull/30365) chore: add logging for dashboards/get warnings (@eschutho)
|
||||
- [#30128](https://github.com/apache/superset/pull/30128) chore(View): Remove unnecessary theme view and defer basic styles (@geido)
|
||||
- [#30407](https://github.com/apache/superset/pull/30407) chore: Merge description and reproduction steps in the issue template (@michael-s-molina)
|
||||
- [#30305](https://github.com/apache/superset/pull/30305) chore(legacy-plugin-chart-map-box): bump supercluster to v8 (@birkskyum)
|
||||
- [#30086](https://github.com/apache/superset/pull/30086) build(deps): update @emotion/react requirement from ^11.4.1 to ^11.13.3 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#27827](https://github.com/apache/superset/pull/27827) build(deps): bump @emotion/react from 11.4.1 to 11.11.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#28346](https://github.com/apache/superset/pull/28346) refactor: Migration of AnnotationLayerControl to TypeScript (@EnxDev)
|
||||
- [#30251](https://github.com/apache/superset/pull/30251) build(deps-dev): bump sinon from 18.0.0 to 18.0.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#30315](https://github.com/apache/superset/pull/30315) docs: Corrected Dremio connection string (@doernemt)
|
||||
- [#30352](https://github.com/apache/superset/pull/30352) chore(docs): fix an agreement error in caching docs (@sfirke)
|
||||
- [#30346](https://github.com/apache/superset/pull/30346) docs: add HANA database logo in README.md (@axuew)
|
||||
- [#28290](https://github.com/apache/superset/pull/28290) build(deps): update dompurify requirement from ^3.1.0 to ^3.1.2 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (@dependabot[bot])
|
||||
- [#30089](https://github.com/apache/superset/pull/30089) build(deps-dev): bump @storybook/react-webpack5 from 8.1.11 to 8.2.9 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#30359](https://github.com/apache/superset/pull/30359) build(websocket): upgrade ESLint to v9 (@hainenber)
|
||||
- [#30084](https://github.com/apache/superset/pull/30084) build(deps): bump deck.gl from 9.0.24 to 9.0.28 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#30300](https://github.com/apache/superset/pull/30300) build(deps): bump dompurify from 3.1.0 to 3.1.3 in /superset-frontend (@dependabot[bot])
|
||||
- [#30247](https://github.com/apache/superset/pull/30247) build(deps): bump path-to-regexp from 1.8.0 to 1.9.0 in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#30337](https://github.com/apache/superset/pull/30337) docs: sql-templating (@torgge)
|
||||
- [#30333](https://github.com/apache/superset/pull/30333) docs: Update cache.mdx, add needed space (@varfigstar)
|
||||
- [#30123](https://github.com/apache/superset/pull/30123) chore: correct a typo (@dl57934)
|
||||
- [#30262](https://github.com/apache/superset/pull/30262) chore: bump cypress to v 11 (@eschutho)
|
||||
- [#30313](https://github.com/apache/superset/pull/30313) chore(UPDATING.md): Add item to UPDATING describing translations build flag (@martyngigg)
|
||||
- [#30227](https://github.com/apache/superset/pull/30227) build(deps): bump express from 4.19.2 to 4.20.0 in /docs (@dependabot[bot])
|
||||
- [#30032](https://github.com/apache/superset/pull/30032) docs: HTML embedding of charts/dashboards without authentication (@lindner-tj)
|
||||
- [#30254](https://github.com/apache/superset/pull/30254) style(explore): clarify ambiguously named "sort by" field (@sfirke)
|
||||
- [#30321](https://github.com/apache/superset/pull/30321) chore(explore): Medium font weight for section headers (@kasiazjc)
|
||||
- [#30261](https://github.com/apache/superset/pull/30261) chore: remove redundant code (@villebro)
|
||||
- [#25910](https://github.com/apache/superset/pull/25910) chore(deps): bump dremio deps (@gnought)
|
||||
- [#30268](https://github.com/apache/superset/pull/30268) docs: Update kubernetes.mdx (@nyandajr)
|
||||
- [#29771](https://github.com/apache/superset/pull/29771) chore(docker): move mysql os-level deps (GPL) to dev image only (@mistercrunch)
|
||||
- [#30151](https://github.com/apache/superset/pull/30151) refactor(frontend): migrate 6 tests from Enzyme to RTL (@hainenber)
|
||||
- [#30253](https://github.com/apache/superset/pull/30253) chore(build): remove extraneous prettier step in superset-frontend CI (@hainenber)
|
||||
- [#30257](https://github.com/apache/superset/pull/30257) build(ci): make linkinator advisory (@rusackas)
|
||||
- [#30242](https://github.com/apache/superset/pull/30242) build(deps, deps-dev): upgrade major versions for dependencies of `@superset/embedded-sdk` (@hainenber)
|
||||
- [#30228](https://github.com/apache/superset/pull/30228) build(deps): bump send and express in /superset-frontend (@dependabot[bot])
|
||||
- [#30229](https://github.com/apache/superset/pull/30229) build(deps): bump serve-static and express in /superset-frontend (@dependabot[bot])
|
||||
- [#30232](https://github.com/apache/superset/pull/30232) refactor(explore): Migrate MetricsControl test suite to RTL (@rtexelm)
|
||||
- [#30226](https://github.com/apache/superset/pull/30226) build(deps): bump serve-static and express in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#30225](https://github.com/apache/superset/pull/30225) build(deps): bump send and express in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#30091](https://github.com/apache/superset/pull/30091) build(deps): update @babel/runtime requirement from ^7.1.2 to ^7.25.6 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#25452](https://github.com/apache/superset/pull/25452) chore(frontend): Spelling (@jsoref)
|
||||
- [#30103](https://github.com/apache/superset/pull/30103) build(deps-dev): update @babel/types requirement from ^7.25.2 to ^7.25.6 in /superset-frontend/plugins/plugin-chart-pivot-table (@dependabot[bot])
|
||||
- [#30199](https://github.com/apache/superset/pull/30199) chore(docs): Removing dead link from INTHEWILD.md (@rusackas)
|
||||
- [#30101](https://github.com/apache/superset/pull/30101) build(deps-dev): bump @types/react from 18.3.3 to 18.3.5 in /docs (@dependabot[bot])
|
||||
- [#30036](https://github.com/apache/superset/pull/30036) build(deps-dev): bump webpack from 5.93.0 to 5.94.0 in /docs (@dependabot[bot])
|
||||
- [#30179](https://github.com/apache/superset/pull/30179) build(deps): bump antd from 5.20.0 to 5.20.5 in /docs (@dependabot[bot])
|
||||
- [#30166](https://github.com/apache/superset/pull/30166) build(deps): bump @types/node from 20.12.7 to 22.5.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#30097](https://github.com/apache/superset/pull/30097) build(deps-dev): bump typescript from 4.9.5 to 5.5.4 in /superset-websocket (@dependabot[bot])
|
||||
- [#30088](https://github.com/apache/superset/pull/30088) build(deps): bump core-js from 3.37.1 to 3.38.1 in /superset-frontend/packages/superset-ui-demo (@dependabot[bot])
|
||||
- [#29963](https://github.com/apache/superset/pull/29963) build(dev-deps, deps): upgrade major versions for FE deps (@hainenber)
|
||||
- [#30167](https://github.com/apache/superset/pull/30167) chore(docs): bump docusaurus from 3.4.0 to 3.5.2 (@villebro)
|
||||
- [#30094](https://github.com/apache/superset/pull/30094) build(deps): bump ws and @types/ws in /superset-websocket (@dependabot[bot])
|
||||
- [#30105](https://github.com/apache/superset/pull/30105) build(deps-dev): bump @docusaurus/module-type-aliases from 3.4.0 to 3.5.2 in /docs (@dependabot[bot])
|
||||
- [#30111](https://github.com/apache/superset/pull/30111) build(deps): bump react-ultimate-pagination and @types/react-ultimate-pagination in /superset-frontend (@dependabot[bot])
|
||||
- [#30106](https://github.com/apache/superset/pull/30106) build(deps): bump prism-react-renderer from 2.3.1 to 2.4.0 in /docs (@dependabot[bot])
|
||||
- [#30107](https://github.com/apache/superset/pull/30107) build(deps-dev): bump @docusaurus/tsconfig from 3.4.0 to 3.5.2 in /docs (@dependabot[bot])
|
||||
- [#30108](https://github.com/apache/superset/pull/30108) build(deps): bump react-svg-pan-zoom from 3.12.1 to 3.13.1 in /docs (@dependabot[bot])
|
||||
- [#30095](https://github.com/apache/superset/pull/30095) build(deps-dev): bump ts-jest from 29.1.5 to 29.2.5 in /superset-websocket (@dependabot[bot])
|
||||
- [#30096](https://github.com/apache/superset/pull/30096) build(deps): bump uuid and @types/uuid in /superset-websocket (@dependabot[bot])
|
||||
- [#30143](https://github.com/apache/superset/pull/30143) build(deps): bump cryptography from 42.0.7 to 42.0.8 (@dependabot[bot])
|
||||
- [#30118](https://github.com/apache/superset/pull/30118) build(deps-dev): bump prettier-plugin-packagejson from 2.4.10 to 2.5.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#30127](https://github.com/apache/superset/pull/30127) docs: Fixing missing 'c' in installation guide documentation (@JordanTB)
|
||||
- [#30155](https://github.com/apache/superset/pull/30155) chore(docs): replace http with https (@villebro)
|
||||
- [#30072](https://github.com/apache/superset/pull/30072) chore(tests): skip extremely flaky gaq test (@villebro)
|
||||
- [#30153](https://github.com/apache/superset/pull/30153) chore(docs): update xendit link (@villebro)
|
||||
- [#30021](https://github.com/apache/superset/pull/30021) chore: accelerate docker compose by skipping frontend build (@mistercrunch)
|
||||
- [#30090](https://github.com/apache/superset/pull/30090) build(deps): bump aws-actions/amazon-ecs-deploy-task-definition from 1 to 2 (@dependabot[bot])
|
||||
- [#30037](https://github.com/apache/superset/pull/30037) build(deps-dev): bump webpack from 5.76.0 to 5.94.0 in /superset-embedded-sdk (@dependabot[bot])
|
||||
- [#30038](https://github.com/apache/superset/pull/30038) build(deps-dev): bump webpack from 5.93.0 to 5.94.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#30102](https://github.com/apache/superset/pull/30102) build(deps-dev): bump eslint-plugin-react-prefer-function-component from 0.0.7 to 3.3.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#30117](https://github.com/apache/superset/pull/30117) build(deps): bump d3-time-format and @types/d3-time-format in /superset-frontend (@dependabot[bot])
|
||||
- [#30116](https://github.com/apache/superset/pull/30116) build(deps-dev): bump eslint-plugin-no-only-tests from 2.4.0 to 3.3.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#30027](https://github.com/apache/superset/pull/30027) refactor(databases): Create constants.ts, move interface to types.ts (@rtexelm)
|
||||
- [#30030](https://github.com/apache/superset/pull/30030) chore(docs): docker instructions use `docker compose` instead of the deprecated `docker-compose` (@rusackas)
|
||||
- [#30057](https://github.com/apache/superset/pull/30057) chore(docs): clean up a few md errors (@villebro)
|
||||
- [#29586](https://github.com/apache/superset/pull/29586) chore(translations): Arabic translations (@abdilra7eem)
|
||||
- [#30011](https://github.com/apache/superset/pull/30011) chore(deps): bump core-js (@rusackas)
|
||||
- [#30007](https://github.com/apache/superset/pull/30007) chore(deps): bump cross-env (@rusackas)
|
||||
- [#30008](https://github.com/apache/superset/pull/30008) build(deps): bump micromatch from 4.0.4 to 4.0.8 in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#30009](https://github.com/apache/superset/pull/30009) build(deps): bump micromatch from 4.0.5 to 4.0.8 in /docs (@dependabot[bot])
|
||||
- [#27832](https://github.com/apache/superset/pull/27832) build(deps): bump remark-gfm from 3.0.1 to 4.0.0 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#28292](https://github.com/apache/superset/pull/28292) build(deps): bump d3-time from 1.1.0 to 3.1.0 in /superset-frontend/packages/superset-ui-core (@dependabot[bot])
|
||||
- [#29990](https://github.com/apache/superset/pull/29990) chore(init): adding link to secret key instructions (@rusackas)
|
||||
- [#29947](https://github.com/apache/superset/pull/29947) build(deps): bump ws and @applitools/eyes-cypress in /superset-frontend/cypress-base (@dependabot[bot])
|
||||
- [#29988](https://github.com/apache/superset/pull/29988) build(node): Bumping to Node 20 (@rusackas)
|
||||
- [#25454](https://github.com/apache/superset/pull/25454) chore(tests): Spelling (@jsoref)
|
||||
- [#29970](https://github.com/apache/superset/pull/29970) docs: improve pre-commit docs and discoverability when CI fails (@mistercrunch)
|
||||
- [#29964](https://github.com/apache/superset/pull/29964) build(deps-dev): bump eslint-plugin-cypress from 2.11.2 to 3.4.0 in /superset-frontend + corresponding refactor (@hainenber)
|
||||
- [#29969](https://github.com/apache/superset/pull/29969) chore(antd): straightening out button import paths (@rusackas)
|
||||
- [#29948](https://github.com/apache/superset/pull/29948) chore(deps): bump micromatch (@rusackas)
|
||||
- [#29952](https://github.com/apache/superset/pull/29952) chore: add additional code owners to migrations (@sadpandajoe)
|
||||
- [#29945](https://github.com/apache/superset/pull/29945) build(deps): bump axios from 1.6.8 to 1.7.4 in /docs (@dependabot[bot])
|
||||
- [#29949](https://github.com/apache/superset/pull/29949) build(deps-dev): bump axios from 1.7.3 to 1.7.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#29946](https://github.com/apache/superset/pull/29946) build(deps-dev): bump axios from 1.6.0 to 1.7.4 in /superset-embedded-sdk (@dependabot[bot])
|
||||
- [#29904](https://github.com/apache/superset/pull/29904) chore: Changes the migrations owners (@michael-s-molina)
|
||||
- [#29868](https://github.com/apache/superset/pull/29868) chore: remove useless GitHub action (@mistercrunch)
|
||||
- [#29869](https://github.com/apache/superset/pull/29869) chore: remove useless GitHub action required check (@mistercrunch)
|
||||
- [#29859](https://github.com/apache/superset/pull/29859) chore(deps): bumping underscore via npm override (@rusackas)
|
||||
- [#29876](https://github.com/apache/superset/pull/29876) chore(docs): reorder fs users (@villebro)
|
||||
- [#29841](https://github.com/apache/superset/pull/29841) chore(deps): bumping jquery (@rusackas)
|
||||
- [#29870](https://github.com/apache/superset/pull/29870) docs: add unit to companies list (@amitmiran137)
|
||||
- [#29652](https://github.com/apache/superset/pull/29652) chore(build): uplift several outdated frontend packages (@hainenber)
|
||||
- [#29866](https://github.com/apache/superset/pull/29866) chore: pre-matrixify pre-commit check (@mistercrunch)
|
||||
- [#29844](https://github.com/apache/superset/pull/29844) chore(cleanup): Removing bootstrap (experimental) (@rusackas)
|
||||
- [#29863](https://github.com/apache/superset/pull/29863) chore: describe timezone issue with alerts and reports scheduler in UPDATING.md (@danielli-ziprecruiter)
|
||||
- [#29855](https://github.com/apache/superset/pull/29855) perf: Lazy load rehype-raw and react-markdown (@kgabryje)
|
||||
- [#29788](https://github.com/apache/superset/pull/29788) perf: Remove antd-with-locales import (@kgabryje)
|
||||
- [#29791](https://github.com/apache/superset/pull/29791) perf: Lazy load moment-timezone (@kgabryje)
|
||||
- [#29808](https://github.com/apache/superset/pull/29808) build(deps-dev): update @babel/types requirement from ^7.24.5 to ^7.25.2 in /superset-frontend/plugins/plugin-chart-pivot-table (@dependabot[bot])
|
||||
- [#29838](https://github.com/apache/superset/pull/29838) chore(deps): npm audit fix results (@rusackas)
|
||||
- [#28294](https://github.com/apache/superset/pull/28294) build(deps): bump react-bootstrap-slider from 2.1.5 to 3.0.0 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#29756](https://github.com/apache/superset/pull/29756) build(deps): bump react-diff-viewer-continued from 3.2.5 to 3.4.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29759](https://github.com/apache/superset/pull/29759) build(deps-dev): bump eslint-plugin-file-progress from 1.2.0 to 1.4.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29812](https://github.com/apache/superset/pull/29812) build(deps): bump @fontsource/inter from 5.0.19 to 5.0.20 in /superset-frontend (@dependabot[bot])
|
||||
- [#29813](https://github.com/apache/superset/pull/29813) build(deps): bump chrono-node from 2.7.5 to 2.7.6 in /superset-frontend (@dependabot[bot])
|
||||
- [#29815](https://github.com/apache/superset/pull/29815) build(deps): bump mustache from 2.3.2 to 4.2.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29816](https://github.com/apache/superset/pull/29816) build(deps-dev): bump @types/react-syntax-highlighter from 15.5.11 to 15.5.13 in /superset-frontend (@dependabot[bot])
|
||||
- [#29820](https://github.com/apache/superset/pull/29820) build(deps-dev): bump style-loader from 3.3.4 to 4.0.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29821](https://github.com/apache/superset/pull/29821) build(deps): bump memoize-one from 5.1.1 to 5.2.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#29809](https://github.com/apache/superset/pull/29809) build(deps-dev): bump @types/jest from 27.0.2 to 29.5.12 in /superset-websocket (@dependabot[bot])
|
||||
- [#29811](https://github.com/apache/superset/pull/29811) build(deps-dev): bump @types/node from 22.0.0 to 22.0.2 in /superset-websocket (@dependabot[bot])
|
||||
- [#29758](https://github.com/apache/superset/pull/29758) build(deps): bump rimraf from 3.0.2 to 6.0.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#29787](https://github.com/apache/superset/pull/29787) perf: Antd icons tree shaking (@kgabryje)
|
||||
- [#29796](https://github.com/apache/superset/pull/29796) perf: Lazy load React Ace (@kgabryje)
|
||||
- [#29792](https://github.com/apache/superset/pull/29792) chore: deleting vestigial EMAIL_NOTIFICATIONS (@rusackas)
|
||||
- [#29673](https://github.com/apache/superset/pull/29673) style: remove uppercase from labels, buttons, tabs to align with design system (@mistercrunch)
|
||||
- [#29755](https://github.com/apache/superset/pull/29755) build(deps): bump @types/lodash from 4.17.0 to 4.17.7 in /superset-frontend (@dependabot[bot])
|
||||
- [#29765](https://github.com/apache/superset/pull/29765) build(deps-dev): bump webpack from 5.89.0 to 5.93.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29794](https://github.com/apache/superset/pull/29794) chore(deps): bump dayjs to unblock CI. (@rusackas)
|
||||
- [#29790](https://github.com/apache/superset/pull/29790) chore(docs): remove mention of MariaDB in dev environment setup (@sfirke)
|
||||
- [#29738](https://github.com/apache/superset/pull/29738) build(deps-dev): bump @types/node from 20.13.0 to 22.0.0 in /superset-websocket (@dependabot[bot])
|
||||
- [#29748](https://github.com/apache/superset/pull/29748) build(deps): bump @ant-design/icons from 5.3.7 to 5.4.0 in /docs (@dependabot[bot])
|
||||
- [#29747](https://github.com/apache/superset/pull/29747) build(deps-dev): bump webpack from 5.92.1 to 5.93.0 in /docs (@dependabot[bot])
|
||||
- [#29427](https://github.com/apache/superset/pull/29427) chore(deps): bump abortcontroller-polyfill from 1.2.1 to 1.7.5 in /superset-frontend (@dependabot[bot])
|
||||
- [#28820](https://github.com/apache/superset/pull/28820) chore(deps): bump d3-hierarchy from 1.1.9 to 3.1.2 in /superset-frontend (@dependabot[bot])
|
||||
- [#29740](https://github.com/apache/superset/pull/29740) build(deps-dev): update @types/lodash requirement from ^4.17.6 to ^4.17.7 in /superset-frontend/plugins/plugin-chart-handlebars (@dependabot[bot])
|
||||
- [#29743](https://github.com/apache/superset/pull/29743) build(deps): update underscore requirement from ^1.13.6 to ^1.13.7 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#29763](https://github.com/apache/superset/pull/29763) build(deps-dev): bump history from 4.10.1 to 5.3.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29760](https://github.com/apache/superset/pull/29760) build(deps-dev): bump ts-loader from 7.0.5 to 9.5.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#28297](https://github.com/apache/superset/pull/28297) build(deps-dev): update @babel/types requirement from ^7.24.0 to ^7.24.5 in /superset-frontend/plugins/plugin-chart-pivot-table (@dependabot[bot])
|
||||
- [#29767](https://github.com/apache/superset/pull/29767) build(deps): bump fast-xml-parser from 4.2.7 to 4.4.1 in /superset-frontend (@dependabot[bot])
|
||||
- [#29739](https://github.com/apache/superset/pull/29739) build(deps): bump debug from 4.3.5 to 4.3.6 in /superset-websocket/utils/client-ws-app (@dependabot[bot])
|
||||
- [#29742](https://github.com/apache/superset/pull/29742) build(deps-dev): bump prettier from 3.2.5 to 3.3.3 in /superset-websocket (@dependabot[bot])
|
||||
- [#29744](https://github.com/apache/superset/pull/29744) build(deps): bump deck.gl from 9.0.21 to 9.0.24 in /superset-frontend/plugins/legacy-preset-chart-deckgl (@dependabot[bot])
|
||||
- [#29746](https://github.com/apache/superset/pull/29746) build(deps): bump @types/lodash from 4.17.4 to 4.17.7 in /superset-websocket (@dependabot[bot])
|
||||
- [#29750](https://github.com/apache/superset/pull/29750) build(deps-dev): bump typescript from 5.5.2 to 5.5.4 in /docs (@dependabot[bot])
|
||||
- [#29751](https://github.com/apache/superset/pull/29751) build(deps): bump @docsearch/react from 3.6.0 to 3.6.1 in /docs (@dependabot[bot])
|
||||
- [#29753](https://github.com/apache/superset/pull/29753) build(deps-dev): bump mini-css-extract-plugin from 2.7.6 to 2.9.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29754](https://github.com/apache/superset/pull/29754) build(deps-dev): bump @svgr/webpack from 8.0.1 to 8.1.0 in /superset-frontend (@dependabot[bot])
|
||||
- [#29762](https://github.com/apache/superset/pull/29762) build(deps): bump ace-builds from 1.4.14 to 1.35.4 in /superset-frontend (@dependabot[bot])
|
||||
- [#29731](https://github.com/apache/superset/pull/29731) chore(build): pin Storybook-related packages to 8.1.11 as further v8+ version requires React 18 (@hainenber)
|
||||
- [#26557](https://github.com/apache/superset/pull/26557) build(deps-dev): bump thread-loader from 3.0.4 to 4.0.2 in /superset-frontend (@dependabot[bot])
|
||||
@@ -80,9 +80,9 @@ If you believe someone is violating this code of conduct, you may reply to them
|
||||
|
||||
Or one of our volunteers:
|
||||
|
||||
* [Mark Thomas](http://home.apache.org/~markt/coc.html)
|
||||
* [Joan Touzet](http://home.apache.org/~wohali/)
|
||||
* [Sharan Foga](http://home.apache.org/~sharan/coc.html)
|
||||
* [Mark Thomas](https://www.linkedin.com/in/mark-thomas-b16751158/)
|
||||
* [Joan Touzet](https://www.apache.org/foundation/conduct-team/wohali.html)
|
||||
* [Sharan Foga](https://www.linkedin.com/in/sfoga/)
|
||||
|
||||
If the violation is in documentation or code, for example inappropriate pronoun usage or word choice within official documentation, we ask that people report these privately to the project in question at <private@project.apache.org>, and, if they have sufficient ability within the project, to resolve or remove the concerning material, being mindful of the perspective of the person originally reporting the issue.
|
||||
|
||||
|
||||
330
Dockerfile
330
Dockerfile
@@ -18,162 +18,246 @@
|
||||
######################################################################
|
||||
# Node stage to deal with static asset construction
|
||||
######################################################################
|
||||
ARG PY_VER=3.10-slim-bookworm
|
||||
ARG PY_VER=3.11.13-slim-bookworm
|
||||
|
||||
# if BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
|
||||
# If BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
|
||||
ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64}
|
||||
FROM --platform=${BUILDPLATFORM} node:20-bullseye-slim AS superset-node
|
||||
|
||||
# Include translations in the final build
|
||||
ARG BUILD_TRANSLATIONS="false"
|
||||
|
||||
######################################################################
|
||||
# superset-node-ci used as a base for building frontend assets and CI
|
||||
######################################################################
|
||||
FROM --platform=${BUILDPLATFORM} node:20-bookworm-slim AS superset-node-ci
|
||||
ARG BUILD_TRANSLATIONS
|
||||
ENV BUILD_TRANSLATIONS=${BUILD_TRANSLATIONS}
|
||||
ARG DEV_MODE="false" # Skip frontend build in dev mode
|
||||
ENV DEV_MODE=${DEV_MODE}
|
||||
|
||||
COPY docker/ /app/docker/
|
||||
# Arguments for build configuration
|
||||
ARG NPM_BUILD_CMD="build"
|
||||
|
||||
# Somehow we need python3 + build-essential on this side of the house to install node-gyp
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install \
|
||||
-yqq --no-install-recommends \
|
||||
build-essential \
|
||||
python3
|
||||
# Install system dependencies required for node-gyp
|
||||
RUN /app/docker/apt-install.sh build-essential python3 zstd
|
||||
|
||||
# Define environment variables for frontend build
|
||||
ENV BUILD_CMD=${NPM_BUILD_CMD} \
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||
# NPM ci first, as to NOT invalidate previous steps except for when package.json changes
|
||||
|
||||
RUN --mount=type=bind,target=/frontend-mem-nag.sh,src=./docker/frontend-mem-nag.sh \
|
||||
/frontend-mem-nag.sh
|
||||
# Run the frontend memory monitoring script
|
||||
RUN /app/docker/frontend-mem-nag.sh
|
||||
|
||||
WORKDIR /app/superset-frontend
|
||||
RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json \
|
||||
--mount=type=bind,target=./package-lock.json,src=./superset-frontend/package-lock.json \
|
||||
npm ci
|
||||
|
||||
# Create necessary folders to avoid errors in subsequent steps
|
||||
RUN mkdir -p /app/superset/static/assets \
|
||||
/app/superset/translations
|
||||
|
||||
# Mount package files and install dependencies if not in dev mode
|
||||
# NOTE: we mount packages and plugins as they are referenced in package.json as workspaces
|
||||
# ideally we'd COPY only their package.json. Here npm ci will be cached as long
|
||||
# as the full content of these folders don't change, yielding a decent cache reuse rate.
|
||||
# Note that's it's not possible selectively COPY of mount using blobs.
|
||||
RUN --mount=type=bind,source=./superset-frontend/package.json,target=./package.json \
|
||||
--mount=type=bind,source=./superset-frontend/package-lock.json,target=./package-lock.json \
|
||||
--mount=type=cache,target=/root/.cache \
|
||||
--mount=type=cache,target=/root/.npm \
|
||||
if [ "$DEV_MODE" = "false" ]; then \
|
||||
npm ci; \
|
||||
else \
|
||||
echo "Skipping 'npm ci' in dev mode"; \
|
||||
fi
|
||||
|
||||
# Runs the webpack build process
|
||||
COPY superset-frontend /app/superset-frontend
|
||||
RUN npm run ${BUILD_CMD}
|
||||
|
||||
# This copies the .po files needed for translation
|
||||
RUN mkdir -p /app/superset/translations
|
||||
######################################################################
|
||||
# superset-node used for compile frontend assets
|
||||
######################################################################
|
||||
FROM superset-node-ci AS superset-node
|
||||
|
||||
# Build the frontend if not in dev mode
|
||||
RUN --mount=type=cache,target=/root/.npm \
|
||||
if [ "$DEV_MODE" = "false" ]; then \
|
||||
echo "Running 'npm run ${BUILD_CMD}'"; \
|
||||
npm run ${BUILD_CMD}; \
|
||||
else \
|
||||
echo "Skipping 'npm run ${BUILD_CMD}' in dev mode"; \
|
||||
fi;
|
||||
|
||||
# Copy translation files
|
||||
COPY superset/translations /app/superset/translations
|
||||
# Compiles .json files from the .po files, then deletes the .po files
|
||||
RUN npm run build-translation
|
||||
RUN rm /app/superset/translations/*/LC_MESSAGES/*.po
|
||||
RUN rm /app/superset/translations/messages.pot
|
||||
|
||||
# Build the frontend if not in dev mode
|
||||
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
|
||||
npm run build-translation; \
|
||||
fi; \
|
||||
rm -rf /app/superset/translations/*/*/*.po; \
|
||||
rm -rf /app/superset/translations/*/*/*.mo;
|
||||
|
||||
|
||||
######################################################################
|
||||
# Base python layer
|
||||
######################################################################
|
||||
FROM python:${PY_VER} AS python-base
|
||||
|
||||
ARG SUPERSET_HOME="/app/superset_home"
|
||||
ENV SUPERSET_HOME=${SUPERSET_HOME}
|
||||
|
||||
RUN mkdir -p $SUPERSET_HOME
|
||||
RUN useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \
|
||||
&& chmod -R 1777 $SUPERSET_HOME \
|
||||
&& chown -R superset:superset $SUPERSET_HOME
|
||||
|
||||
# Some bash scripts needed throughout the layers
|
||||
COPY --chmod=755 docker/*.sh /app/docker/
|
||||
|
||||
RUN pip install --no-cache-dir --upgrade uv
|
||||
|
||||
# Using uv as it's faster/simpler than pip
|
||||
RUN uv venv /app/.venv
|
||||
ENV PATH="/app/.venv/bin:${PATH}"
|
||||
|
||||
######################################################################
|
||||
# Python translation compiler layer
|
||||
######################################################################
|
||||
FROM python-base AS python-translation-compiler
|
||||
|
||||
ARG BUILD_TRANSLATIONS
|
||||
ENV BUILD_TRANSLATIONS=${BUILD_TRANSLATIONS}
|
||||
|
||||
# Install Python dependencies using docker/pip-install.sh
|
||||
COPY requirements/translations.txt requirements/
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
. /app/.venv/bin/activate && /app/docker/pip-install.sh --requires-build-essential -r requirements/translations.txt
|
||||
|
||||
COPY superset/translations/ /app/translations_mo/
|
||||
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
|
||||
pybabel compile -d /app/translations_mo | true; \
|
||||
fi; \
|
||||
rm -f /app/translations_mo/*/*/*.po; \
|
||||
rm -f /app/translations_mo/*/*/*.json;
|
||||
|
||||
######################################################################
|
||||
# Python APP common layer
|
||||
######################################################################
|
||||
FROM python-base AS python-common
|
||||
|
||||
ENV SUPERSET_HOME="/app/superset_home" \
|
||||
HOME="/app/superset_home" \
|
||||
SUPERSET_ENV="production" \
|
||||
FLASK_APP="superset.app:create_app()" \
|
||||
PYTHONPATH="/app/pythonpath" \
|
||||
SUPERSET_PORT="8088"
|
||||
|
||||
# Copy the entrypoints, make them executable in userspace
|
||||
COPY --chmod=755 docker/entrypoints /app/docker/entrypoints
|
||||
|
||||
WORKDIR /app
|
||||
# Set up necessary directories and user
|
||||
RUN mkdir -p \
|
||||
${PYTHONPATH} \
|
||||
superset/static \
|
||||
requirements \
|
||||
superset-frontend \
|
||||
apache_superset.egg-info \
|
||||
requirements \
|
||||
&& touch superset/static/version_info.json
|
||||
|
||||
# Install Playwright and optionally setup headless browsers
|
||||
ARG INCLUDE_CHROMIUM="true"
|
||||
ARG INCLUDE_FIREFOX="false"
|
||||
RUN --mount=type=cache,target=${SUPERSET_HOME}/.cache/uv \
|
||||
if [ "$INCLUDE_CHROMIUM" = "true" ] || [ "$INCLUDE_FIREFOX" = "true" ]; then \
|
||||
uv pip install playwright && \
|
||||
playwright install-deps && \
|
||||
if [ "$INCLUDE_CHROMIUM" = "true" ]; then playwright install chromium; fi && \
|
||||
if [ "$INCLUDE_FIREFOX" = "true" ]; then playwright install firefox; fi; \
|
||||
else \
|
||||
echo "Skipping browser installation"; \
|
||||
fi
|
||||
|
||||
# Copy required files for Python build
|
||||
COPY pyproject.toml setup.py MANIFEST.in README.md ./
|
||||
COPY superset-frontend/package.json superset-frontend/
|
||||
COPY scripts/check-env.py scripts/
|
||||
|
||||
# keeping for backward compatibility
|
||||
COPY --chmod=755 ./docker/entrypoints/run-server.sh /usr/bin/
|
||||
|
||||
# Some debian libs
|
||||
RUN /app/docker/apt-install.sh \
|
||||
curl \
|
||||
libsasl2-dev \
|
||||
libsasl2-modules-gssapi-mit \
|
||||
libpq-dev \
|
||||
libecpg-dev \
|
||||
libldap2-dev
|
||||
|
||||
# Copy compiled things from previous stages
|
||||
COPY --from=superset-node /app/superset/static/assets superset/static/assets
|
||||
|
||||
# TODO, when the next version comes out, use --exclude superset/translations
|
||||
COPY superset superset
|
||||
# TODO in the meantime, remove the .po files
|
||||
RUN rm superset/translations/*/*/*.po
|
||||
|
||||
# Merging translations from backend and frontend stages
|
||||
COPY --from=superset-node /app/superset/translations superset/translations
|
||||
COPY --from=python-translation-compiler /app/translations_mo superset/translations
|
||||
|
||||
HEALTHCHECK CMD curl -f "http://localhost:${SUPERSET_PORT}/health"
|
||||
CMD ["/app/docker/entrypoints/run-server.sh"]
|
||||
EXPOSE ${SUPERSET_PORT}
|
||||
|
||||
######################################################################
|
||||
# Final lean image...
|
||||
######################################################################
|
||||
FROM python:${PY_VER} AS lean
|
||||
FROM python-common AS lean
|
||||
|
||||
WORKDIR /app
|
||||
ENV LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
SUPERSET_ENV=production \
|
||||
FLASK_APP="superset.app:create_app()" \
|
||||
PYTHONPATH="/app/pythonpath" \
|
||||
SUPERSET_HOME="/app/superset_home" \
|
||||
SUPERSET_PORT=8088
|
||||
# Install Python dependencies using docker/pip-install.sh
|
||||
COPY requirements/base.txt requirements/
|
||||
RUN --mount=type=cache,target=${SUPERSET_HOME}/.cache/uv \
|
||||
/app/docker/pip-install.sh --requires-build-essential -r requirements/base.txt
|
||||
# Install the superset package
|
||||
RUN --mount=type=cache,target=${SUPERSET_HOME}/.cache/uv \
|
||||
uv pip install .
|
||||
RUN python -m compileall /app/superset
|
||||
|
||||
RUN mkdir -p ${PYTHONPATH} superset/static requirements superset-frontend apache_superset.egg-info requirements \
|
||||
&& useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \
|
||||
&& apt-get update -qq && apt-get install -yqq --no-install-recommends \
|
||||
curl \
|
||||
default-libmysqlclient-dev \
|
||||
libsasl2-dev \
|
||||
libsasl2-modules-gssapi-mit \
|
||||
libpq-dev \
|
||||
libecpg-dev \
|
||||
libldap2-dev \
|
||||
&& touch superset/static/version_info.json \
|
||||
&& chown -R superset:superset ./* \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --chown=superset:superset pyproject.toml setup.py MANIFEST.in README.md ./
|
||||
# setup.py uses the version information in package.json
|
||||
COPY --chown=superset:superset superset-frontend/package.json superset-frontend/
|
||||
COPY --chown=superset:superset requirements/base.txt requirements/
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
apt-get update -qq && apt-get install -yqq --no-install-recommends \
|
||||
build-essential \
|
||||
&& pip install --upgrade setuptools pip \
|
||||
&& pip install -r requirements/base.txt \
|
||||
&& apt-get autoremove -yqq --purge build-essential \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copy the compiled frontend assets
|
||||
COPY --chown=superset:superset --from=superset-node /app/superset/static/assets superset/static/assets
|
||||
|
||||
## Lastly, let's install superset itself
|
||||
COPY --chown=superset:superset superset superset
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
pip install -e .
|
||||
|
||||
# Copy the .json translations from the frontend layer
|
||||
COPY --chown=superset:superset --from=superset-node /app/superset/translations superset/translations
|
||||
|
||||
# Compile translations for the backend - this generates .mo files, then deletes the .po files
|
||||
COPY ./scripts/translations/generate_mo_files.sh ./scripts/translations/
|
||||
RUN ./scripts/translations/generate_mo_files.sh \
|
||||
&& chown -R superset:superset superset/translations \
|
||||
&& rm superset/translations/messages.pot \
|
||||
&& rm superset/translations/*/LC_MESSAGES/*.po
|
||||
|
||||
COPY --chmod=755 ./docker/run-server.sh /usr/bin/
|
||||
USER superset
|
||||
|
||||
HEALTHCHECK CMD curl -f "http://localhost:${SUPERSET_PORT}/health"
|
||||
|
||||
EXPOSE ${SUPERSET_PORT}
|
||||
|
||||
CMD ["/usr/bin/run-server.sh"]
|
||||
|
||||
######################################################################
|
||||
# Dev image...
|
||||
######################################################################
|
||||
FROM lean AS dev
|
||||
FROM python-common AS dev
|
||||
|
||||
USER root
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
libnss3 \
|
||||
libdbus-glib-1-2 \
|
||||
libgtk-3-0 \
|
||||
libx11-xcb1 \
|
||||
libasound2 \
|
||||
libxtst6 \
|
||||
git \
|
||||
pkg-config \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
# Debian libs needed for dev
|
||||
RUN /app/docker/apt-install.sh \
|
||||
git \
|
||||
pkg-config \
|
||||
default-libmysqlclient-dev
|
||||
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
pip install playwright
|
||||
RUN playwright install-deps
|
||||
RUN playwright install chromium
|
||||
# Copy development requirements and install them
|
||||
COPY requirements/*.txt requirements/
|
||||
# Install Python dependencies using docker/pip-install.sh
|
||||
RUN --mount=type=cache,target=${SUPERSET_HOME}/.cache/uv \
|
||||
/app/docker/pip-install.sh --requires-build-essential -r requirements/development.txt
|
||||
# Install the superset package
|
||||
RUN --mount=type=cache,target=${SUPERSET_HOME}/.cache/uv \
|
||||
uv pip install .
|
||||
|
||||
# Install GeckoDriver WebDriver
|
||||
ARG GECKODRIVER_VERSION=v0.34.0 \
|
||||
FIREFOX_VERSION=125.0.3
|
||||
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yqq --no-install-recommends wget bzip2 \
|
||||
&& wget -q https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O - | tar xfz - -C /usr/local/bin \
|
||||
# Install Firefox
|
||||
&& wget -q https://download-installer.cdn.mozilla.net/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 -O - | tar xfj - -C /opt \
|
||||
&& ln -s /opt/firefox/firefox /usr/local/bin/firefox \
|
||||
&& apt-get autoremove -yqq --purge wget bzip2 && rm -rf /var/[log,tmp]/* /tmp/* /var/lib/apt/lists/*
|
||||
# Cache everything for dev purposes...
|
||||
|
||||
COPY --chown=superset:superset requirements/development.txt requirements/
|
||||
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||
apt-get update -qq && apt-get install -yqq --no-install-recommends \
|
||||
build-essential \
|
||||
&& pip install -r requirements/development.txt \
|
||||
&& apt-get autoremove -yqq --purge build-essential \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN uv pip install .[postgres]
|
||||
RUN python -m compileall /app/superset
|
||||
|
||||
USER superset
|
||||
|
||||
######################################################################
|
||||
# CI image...
|
||||
######################################################################
|
||||
FROM lean AS ci
|
||||
|
||||
COPY --chown=superset:superset --chmod=755 ./docker/*.sh /app/docker/
|
||||
|
||||
CMD ["/app/docker/docker-ci.sh"]
|
||||
USER root
|
||||
RUN uv pip install .[postgres]
|
||||
USER superset
|
||||
CMD ["/app/docker/entrypoints/docker-ci.sh"]
|
||||
|
||||
3
Makefile
3
Makefile
@@ -87,9 +87,6 @@ format: py-format js-format
|
||||
py-format: pre-commit
|
||||
pre-commit run black --all-files
|
||||
|
||||
py-lint: pre-commit
|
||||
pylint -j 0 superset
|
||||
|
||||
js-format:
|
||||
cd superset-frontend; npm run prettier
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ under the License.
|
||||
|
||||
# Superset
|
||||
|
||||
[](https://opensource.org/licenses/Apache-2.0)
|
||||
[](https://opensource.org/license/apache-2-0)
|
||||
[](https://github.com/apache/superset/tree/latest)
|
||||
[](https://github.com/apache/superset/actions)
|
||||
[](https://badge.fury.io/py/apache-superset)
|
||||
@@ -134,6 +134,9 @@ Here are some of the major database solutions that are supported:
|
||||
<img src="https://superset.apache.org/img/databases/starrocks.png" alt="starrocks" border="0" width="200" />
|
||||
<img src="https://superset.apache.org/img/databases/doris.png" alt="doris" border="0" width="200" />
|
||||
<img src="https://superset.apache.org/img/databases/oceanbase.svg" alt="oceanbase" border="0" width="220" />
|
||||
<img src="https://superset.apache.org/img/databases/sap-hana.png" alt="oceanbase" border="0" width="220" />
|
||||
<img src="https://superset.apache.org/img/databases/denodo.png" alt="denodo" border="0" width="200" />
|
||||
<img src="https://superset.apache.org/img/databases/ydb.svg" alt="ydb" border="0" width="200" />
|
||||
</p>
|
||||
|
||||
**A more comprehensive list of supported databases** along with the configuration instructions can be found [here](https://superset.apache.org/docs/configuration/databases).
|
||||
|
||||
@@ -30,12 +30,12 @@ RUN apt-get install -y apt-transport-https apt-utils
|
||||
# Install superset dependencies
|
||||
# https://superset.apache.org/docs/installation/installing-superset-from-scratch
|
||||
RUN apt-get install -y build-essential libssl-dev \
|
||||
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium
|
||||
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium zstd
|
||||
|
||||
# Install nodejs for custom build
|
||||
# https://nodejs.org/en/download/package-manager/
|
||||
RUN set -eux; \
|
||||
curl -sL https://deb.nodesource.com/setup_18.x | bash -; \
|
||||
curl -sL https://deb.nodesource.com/setup_20.x | bash -; \
|
||||
apt-get install -y nodejs; \
|
||||
node --version;
|
||||
RUN if ! which npm; then apt-get install -y npm; fi
|
||||
@@ -64,7 +64,7 @@ RUN pip install --upgrade setuptools pip \
|
||||
RUN flask fab babel-compile --target superset/translations
|
||||
|
||||
ENV PATH=/home/superset/superset/bin:$PATH \
|
||||
PYTHONPATH=/home/superset/superset/:$PYTHONPATH \
|
||||
PYTHONPATH=/home/superset/superset/ \
|
||||
SUPERSET_TESTENV=true
|
||||
COPY from_tarball_entrypoint.sh /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
@@ -29,13 +29,16 @@ RUN apt-get install -y apt-transport-https apt-utils
|
||||
|
||||
# Install superset dependencies
|
||||
# https://superset.apache.org/docs/installation/installing-superset-from-scratch
|
||||
RUN apt-get install -y build-essential libssl-dev \
|
||||
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium
|
||||
RUN apt-get install -y subversion build-essential libssl-dev \
|
||||
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev chromium zstd
|
||||
|
||||
# Install nodejs for custom build
|
||||
# https://nodejs.org/en/download/package-manager/
|
||||
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - \
|
||||
&& apt-get install -y nodejs
|
||||
RUN set -eux; \
|
||||
curl -sL https://deb.nodesource.com/setup_20.x | bash -; \
|
||||
apt-get install -y nodejs; \
|
||||
node --version;
|
||||
RUN if ! which npm; then apt-get install -y npm; fi
|
||||
|
||||
RUN mkdir -p /home/superset
|
||||
RUN chown superset /home/superset
|
||||
@@ -46,14 +49,12 @@ ARG VERSION
|
||||
# Can fetch source from svn or copy tarball from local mounted directory
|
||||
RUN svn co https://dist.apache.org/repos/dist/dev/superset/$VERSION ./
|
||||
RUN tar -xvf *.tar.gz
|
||||
WORKDIR apache-superset-$VERSION
|
||||
WORKDIR /home/superset/apache-superset-$VERSION/superset-frontend
|
||||
|
||||
RUN cd superset-frontend \
|
||||
&& npm ci \
|
||||
RUN npm ci \
|
||||
&& npm run build \
|
||||
&& rm -rf node_modules
|
||||
|
||||
|
||||
WORKDIR /home/superset/apache-superset-$VERSION
|
||||
RUN pip install --upgrade setuptools pip \
|
||||
&& pip install -r requirements/base.txt \
|
||||
@@ -62,6 +63,6 @@ RUN pip install --upgrade setuptools pip \
|
||||
RUN flask fab babel-compile --target superset/translations
|
||||
|
||||
ENV PATH=/home/superset/superset/bin:$PATH \
|
||||
PYTHONPATH=/home/superset/superset/:$PYTHONPATH
|
||||
PYTHONPATH=/home/superset/superset/
|
||||
COPY from_tarball_entrypoint.sh /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
@@ -437,7 +437,7 @@ cd ${SUPERSET_RELEASE_RC}
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements/base.txt
|
||||
pip install twine
|
||||
pip install build twine
|
||||
```
|
||||
|
||||
Create the distribution
|
||||
@@ -452,10 +452,10 @@ cd ../
|
||||
|
||||
|
||||
# Compile translations for the backend
|
||||
./scripts/translations/generate_po_files.sh
|
||||
./scripts/translations/generate_mo_files.sh
|
||||
|
||||
# build the python distribution
|
||||
python setup.py sdist
|
||||
python -m build
|
||||
```
|
||||
|
||||
Publish to PyPI
|
||||
@@ -466,6 +466,7 @@ an account first if you don't have one, and reference your username
|
||||
while requesting access to push packages.
|
||||
|
||||
```bash
|
||||
twine upload dist/apache_superset-${SUPERSET_VERSION}-py3-none-any.whl
|
||||
twine upload dist/apache-superset-${SUPERSET_VERSION}.tar.gz
|
||||
```
|
||||
|
||||
|
||||
@@ -272,14 +272,14 @@ class GitLogs:
|
||||
|
||||
@staticmethod
|
||||
def _git_get_current_head() -> str:
|
||||
output = os.popen("git status | head -1").read()
|
||||
output = os.popen("git status | head -1").read() # noqa: S605, S607
|
||||
match = re.match("(?:HEAD detached at|On branch) (.*)", output)
|
||||
if not match:
|
||||
return ""
|
||||
return match.group(1)
|
||||
|
||||
def _git_checkout(self, git_ref: str) -> None:
|
||||
os.popen(f"git checkout {git_ref}").read()
|
||||
os.popen(f"git checkout {git_ref}").read() # noqa: S605
|
||||
current_head = self._git_get_current_head()
|
||||
if current_head != git_ref:
|
||||
print(f"Could not checkout {git_ref}")
|
||||
@@ -290,7 +290,7 @@ class GitLogs:
|
||||
current_git_ref = self._git_get_current_head()
|
||||
self._git_checkout(self._git_ref)
|
||||
output = (
|
||||
os.popen('git --no-pager log --pretty=format:"%h|%an|%ae|%ad|%s|"')
|
||||
os.popen('git --no-pager log --pretty=format:"%h|%an|%ae|%ad|%s|"') # noqa: S605, S607
|
||||
.read()
|
||||
.split("\n")
|
||||
)
|
||||
|
||||
@@ -31,7 +31,7 @@ except ModuleNotFoundError:
|
||||
RECEIVER_EMAIL = "dev@superset.apache.org"
|
||||
PROJECT_NAME = "Superset"
|
||||
PROJECT_MODULE = "superset"
|
||||
PROJECT_DESCRIPTION = "Apache Superset is a modern, enterprise-ready business intelligence web application."
|
||||
PROJECT_DESCRIPTION = "Apache Superset is a modern, enterprise-ready business intelligence web application." # noqa: E501
|
||||
|
||||
|
||||
def string_comma_to_list(message: str) -> list[str]:
|
||||
|
||||
@@ -19,7 +19,11 @@ under the License.
|
||||
|
||||
# Release Notes for Superset 4.1.0
|
||||
|
||||
Superset 4.1.0 brings a range of new features and quality of life improvements. This release is a minor version, meaning it doesn't include any breaking changes to ensure a seamless transition for our users. Here are some of the highlights of this release.
|
||||
Superset 4.1.0 brings a range of new features and quality of life improvements. This release is a minor version, meaning it doesn't include any breaking changes. However, users of basic Superset docker images like `4.1.0` should see the note at the bottom of this file about [changes to those builds](/RELEASING/release-notes-4-1/README.md#change-to-docker-image-builds).
|
||||
|
||||
## Highlights
|
||||
|
||||
Here are some of the highlights of this release.
|
||||
|
||||
### Big Number With Time Period Updates
|
||||
|
||||
@@ -30,7 +34,7 @@ We released a [Big Number with Time Period Comparison](https://github.com/apache
|
||||
</div>
|
||||
|
||||
### Table with Time Comparison
|
||||
Added functionality to do [table time comparisons](https://github.com/apache/superset/pull/28057) behind the `CHART_PLUGINS_EXPERIMENTAL` feature flag. This will help improve and facilitate efficient data analysis.
|
||||
Added functionality to do [table time comparisons](https://github.com/apache/superset/pull/28057). This will help improve and facilitate efficient data analysis.
|
||||
|
||||
<div>
|
||||
<image src="media/table_with_time.png" alt="Image" width="100%">
|
||||
@@ -129,3 +133,8 @@ Users can now see both the [total and percentage in tooltips](https://github.com
|
||||
### Additional Metadata Bar To Dashboards
|
||||
|
||||
There is now a [metadata bar](https://github.com/apache/superset/pull/27857) added to the header of dashboards. This will now show viewers of the dashboard both the owners and last modified time of the dashboard.
|
||||
|
||||
|
||||
## Change to Docker image builds
|
||||
|
||||
Starting in 4.1.0, the release's docker image does not ship with drivers needed to operate Superset. Users may need to install a driver for their metadata database (MySQL or Postgres) as well as the driver for their data warehouse. This is a result of changes to the `lean` docker image that official releases come from; see [Docker Build Presets](/docs/docs/installation/docker-builds.mdx#build-presets) for more details.
|
||||
|
||||
@@ -23,12 +23,12 @@ from typing import Optional
|
||||
|
||||
import requests
|
||||
|
||||
# Part 1: Verify SHA512 hash - this is the same as running `shasum -a 512 {release}` and comparing it against `{release}.sha512`
|
||||
# Part 1: Verify SHA512 hash - this is the same as running `shasum -a 512 {release}` and comparing it against `{release}.sha512` # noqa: E501
|
||||
|
||||
|
||||
def get_sha512_hash(filename: str) -> str:
|
||||
"""Run the shasum command on the file and return the SHA512 hash."""
|
||||
result = subprocess.run(["shasum", "-a", "512", filename], stdout=subprocess.PIPE)
|
||||
result = subprocess.run(["shasum", "-a", "512", filename], stdout=subprocess.PIPE) # noqa: S603, S607
|
||||
sha512_hash = result.stdout.decode().split()[0]
|
||||
return sha512_hash
|
||||
|
||||
@@ -43,7 +43,7 @@ def read_sha512_file(filename: str) -> str:
|
||||
|
||||
|
||||
def verify_sha512(filename: str) -> str:
|
||||
"""Verify if the SHA512 hash of the file matches with the hash in the .sha512 file."""
|
||||
"""Verify if the SHA512 hash of the file matches with the hash in the .sha512 file.""" # noqa: E501
|
||||
sha512_hash = get_sha512_hash(filename)
|
||||
sha512_file_content = read_sha512_file(filename)
|
||||
|
||||
@@ -53,47 +53,56 @@ def verify_sha512(filename: str) -> str:
|
||||
return "SHA failed"
|
||||
|
||||
|
||||
# Part 2: Verify RSA key - this is the same as running `gpg --verify {release}.asc {release}` and comparing the RSA key and email address against the KEYS file
|
||||
# Part 2: Verify RSA key - this is the same as running `gpg --verify {release}.asc {release}` and comparing the RSA key and email address against the KEYS file # noqa: E501
|
||||
|
||||
|
||||
def get_gpg_info(filename: str) -> tuple[Optional[str], Optional[str]]:
|
||||
"""Run the GPG verify command and extract RSA key and email address."""
|
||||
asc_filename = filename + ".asc"
|
||||
result = subprocess.run(
|
||||
["gpg", "--verify", asc_filename, filename], capture_output=True
|
||||
result = subprocess.run( # noqa: S603
|
||||
["gpg", "--verify", asc_filename, filename], # noqa: S607
|
||||
capture_output=True, # noqa: S607
|
||||
)
|
||||
output = result.stderr.decode()
|
||||
|
||||
rsa_key = re.search(r"RSA key ([0-9A-F]+)", output)
|
||||
eddsa_key = re.search(r"EDDSA key ([0-9A-F]+)", output)
|
||||
email = re.search(r'issuer "([^"]+)"', output)
|
||||
|
||||
rsa_key_result = rsa_key.group(1) if rsa_key else None
|
||||
eddsa_key_result = eddsa_key.group(1) if eddsa_key else None
|
||||
email_result = email.group(1) if email else None
|
||||
|
||||
# Debugging: print warnings if rsa_key or email is not found
|
||||
if rsa_key_result is None:
|
||||
print("Warning: No RSA key found in GPG verification output.")
|
||||
if email_result is None:
|
||||
key_result = rsa_key_result or eddsa_key_result
|
||||
|
||||
# Debugging:
|
||||
if key_result:
|
||||
print("RSA or EDDSA Key found")
|
||||
else:
|
||||
print("Warning: No RSA or EDDSA key found in GPG verification output.")
|
||||
if email_result:
|
||||
print("email found")
|
||||
else:
|
||||
print("Warning: No email address found in GPG verification output.")
|
||||
|
||||
return rsa_key_result, email_result
|
||||
return key_result, email_result
|
||||
|
||||
|
||||
def verify_rsa_key(rsa_key: str, email: Optional[str]) -> str:
|
||||
"""Fetch the KEYS file and verify if the RSA key and email match."""
|
||||
def verify_key(key: str, email: Optional[str]) -> str:
|
||||
"""Fetch the KEYS file and verify if the RSA/EDDSA key and email match."""
|
||||
url = "https://downloads.apache.org/superset/KEYS"
|
||||
response = requests.get(url)
|
||||
response = requests.get(url) # noqa: S113
|
||||
if response.status_code == 200:
|
||||
if rsa_key not in response.text:
|
||||
return "RSA key not found on KEYS page"
|
||||
if key not in response.text:
|
||||
return "RSA/EDDSA key not found on KEYS page"
|
||||
|
||||
# Check if email is None or not in response.text
|
||||
if email and email in response.text:
|
||||
return "RSA key and email verified against Apache KEYS file"
|
||||
return "RSA/EDDSA key and email verified against Apache KEYS file"
|
||||
elif email:
|
||||
return "RSA key verified, but Email not found on KEYS page"
|
||||
return "RSA/EDDSA key verified, but Email not found on KEYS page"
|
||||
else:
|
||||
return "RSA key verified, but Email not available for verification"
|
||||
return "RSA/EDDSA key verified, but Email not available for verification"
|
||||
else:
|
||||
return "Failed to fetch KEYS file"
|
||||
|
||||
@@ -103,9 +112,9 @@ def verify_sha512_and_rsa(filename: str) -> None:
|
||||
sha_result = verify_sha512(filename)
|
||||
print(sha_result)
|
||||
|
||||
rsa_key, email = get_gpg_info(filename)
|
||||
if rsa_key:
|
||||
rsa_result = verify_rsa_key(rsa_key, email)
|
||||
key, email = get_gpg_info(filename)
|
||||
if key:
|
||||
rsa_result = verify_key(key, email)
|
||||
print(rsa_result)
|
||||
else:
|
||||
print("GPG verification failed: RSA key or email not found")
|
||||
|
||||
@@ -44,8 +44,8 @@ These features are **finished** but currently being tested. They are usable, but
|
||||
- ALLOW_FULL_CSV_EXPORT
|
||||
- CACHE_IMPERSONATION
|
||||
- CONFIRM_DASHBOARD_DIFF
|
||||
- DRILL_TO_DETAIL
|
||||
- DYNAMIC_PLUGINS
|
||||
- DATE_FORMAT_IN_EMAIL_SUBJECT: [(docs)](https://superset.apache.org/docs/configuration/alerts-reports#commons)
|
||||
- ENABLE_SUPERSET_META_DB: [(docs)](https://superset.apache.org/docs/configuration/databases/#querying-across-databases)
|
||||
- ESTIMATE_QUERY_COST
|
||||
- GLOBAL_ASYNC_QUERIES [(docs)](https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries)
|
||||
@@ -63,15 +63,22 @@ These features flags are **safe for production**. They have been tested and will
|
||||
[//]: # "PLEASE KEEP THESE LISTS SORTED ALPHABETICALLY"
|
||||
|
||||
### Flags on the path to feature launch and flag deprecation/removal
|
||||
|
||||
- DASHBOARD_VIRTUALIZATION
|
||||
- DRILL_BY
|
||||
- DISABLE_LEGACY_DATASOURCE_EDITOR
|
||||
|
||||
### Flags retained for runtime configuration
|
||||
|
||||
Currently some of our feature flags act as dynamic configurations that can changed
|
||||
on the fly. This acts in contradiction with the typical ephemeral feature flag use case,
|
||||
where the flag is used to mature a feature, and eventually deprecated once the feature is
|
||||
solid. Eventually we'll likely refactor these under a more formal "dynamic configurations" managed
|
||||
independently. This new framework will also allow for non-boolean configurations.
|
||||
|
||||
- ALERTS_ATTACH_REPORTS
|
||||
- ALLOW_ADHOC_SUBQUERY
|
||||
- DASHBOARD_RBAC [(docs)](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard#manage-access-to-dashboards)
|
||||
- DATAPANEL_CLOSED_BY_DEFAULT
|
||||
- DRILL_BY
|
||||
- DRUID_JOINS
|
||||
- EMBEDDABLE_CHARTS
|
||||
- EMBEDDED_SUPERSET
|
||||
@@ -79,6 +86,7 @@ These features flags are **safe for production**. They have been tested and will
|
||||
- ESCAPE_MARKDOWN_HTML
|
||||
- LISTVIEWS_DEFAULT_CARD_VIEW
|
||||
- SCHEDULED_QUERIES [(docs)](https://superset.apache.org/docs/configuration/alerts-reports)
|
||||
- SLACK_ENABLE_AVATARS (see `superset/config.py` for more information)
|
||||
- SQLLAB_BACKEND_PERSISTENCE
|
||||
- SQL_VALIDATORS_BY_ENGINE [(docs)](https://superset.apache.org/docs/configuration/sql-templating)
|
||||
- THUMBNAILS [(docs)](https://superset.apache.org/docs/configuration/cache)
|
||||
@@ -90,6 +98,6 @@ These features flags currently default to True and **will be removed in a future
|
||||
[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY"
|
||||
|
||||
- AVOID_COLORS_COLLISION
|
||||
- DASHBOARD_CROSS_FILTERS
|
||||
- DRILL_TO_DETAIL
|
||||
- ENABLE_JAVASCRIPT_CONTROLS
|
||||
- KV_STORE
|
||||
|
||||
@@ -28,7 +28,8 @@ Join our growing community!
|
||||
|
||||
### Sharing Economy
|
||||
- [Airbnb](https://github.com/airbnb)
|
||||
- [Faasos](http://faasos.com/) [@shashanksingh]
|
||||
- [Faasos](https://faasos.com/) [@shashanksingh]
|
||||
- [Free2Move](https://www.free2move.com/) [@PaoloTerzi]
|
||||
- [Hostnfly](https://www.hostnfly.com/) [@alexisrosuel]
|
||||
- [Lime](https://www.li.me/) [@cxmcc]
|
||||
- [Lyft](https://www.lyft.com/)
|
||||
@@ -39,13 +40,15 @@ Join our growing community!
|
||||
- [American Express](https://www.americanexpress.com) [@TheLastSultan]
|
||||
- [bumper](https://www.bumper.co/) [@vasu-ram, @JamiePercival]
|
||||
- [Cape Crypto](https://capecrypto.com)
|
||||
- [Capital Service S.A.](http://capitalservice.pl) [@pkonarzewski]
|
||||
- [Clark.de](http://clark.de/)
|
||||
- [Capital Service S.A.](https://capitalservice.pl) [@pkonarzewski]
|
||||
- [Clark.de](https://clark.de/)
|
||||
- [KarrotPay](https://www.daangnpay.com/)
|
||||
- [Remita](https://remita.net) [@mujibishola]
|
||||
- [Taveo](https://www.taveo.com) [@codek]
|
||||
- [Unit](https://www.unit.co/about-us) [@amitmiran137]
|
||||
- [Wise](https://wise.com) [@koszti]
|
||||
- [Xendit](http://xendit.co/) [@LieAlbertTriAdrian]
|
||||
- [Xendit](https://xendit.co/) [@LieAlbertTriAdrian]
|
||||
- [Cover Genius](https://covergenius.com/)
|
||||
|
||||
### Gaming
|
||||
- [Popoko VM Games Studio](https://popoko.live)
|
||||
@@ -56,20 +59,24 @@ Join our growing community!
|
||||
- [Dragonpass](https://www.dragonpass.com.cn/) [@zhxjdwh]
|
||||
- [Dropit Shopping](https://www.dropit.shop/) [@dropit-dev]
|
||||
- [Fanatics](https://www.fanatics.com/) [@coderfender]
|
||||
- [Fordeal](http://www.fordeal.com) [@Renkai]
|
||||
- [Fordeal](https://www.fordeal.com) [@Renkai]
|
||||
- [Fynd](https://www.fynd.com/) [@darpanjain07]
|
||||
- [GFG - Global Fashion Group](https://global-fashion-group.com) [@ksaagariconic]
|
||||
- [HuiShouBao](http://www.huishoubao.com/) [@Yukinoshita-Yukino]
|
||||
- [GoTo/Gojek](https://www.gojek.io/) [@gwthm-in]
|
||||
- [HuiShouBao](https://www.huishoubao.com/) [@Yukinoshita-Yukino]
|
||||
- [Now](https://www.now.vn/) [@davidkohcw]
|
||||
- [Qunar](https://www.qunar.com/) [@flametest]
|
||||
- [Rakuten Viki](https://www.viki.com)
|
||||
- [Shopee](https://shopee.sg) [@xiaohanyu]
|
||||
- [Shopkick](https://www.shopkick.com) [@LAlbertalli]
|
||||
- [ShopUp](https://www.shopup.org/) [@gwthm-in]
|
||||
- [Tails.com](https://tails.com/gb/) [@alanmcruickshank]
|
||||
- [THE ICONIC](http://theiconic.com.au/) [@ksaagariconic]
|
||||
- [THE ICONIC](https://theiconic.com.au/) [@ksaagariconic]
|
||||
- [Utair](https://www.utair.ru) [@utair-digital]
|
||||
- [VkusVill](https://vkusvill.ru/) [@ETselikov]
|
||||
- [Zalando](https://www.zalando.com) [@dmigo]
|
||||
- [Zalora](https://www.zalora.com) [@ksaagariconic]
|
||||
- [Zepto](https://www.zeptonow.com/) [@gwthm-in]
|
||||
|
||||
### Enterprise Technology
|
||||
- [A3Data](https://a3data.com.br) [@neylsoncrepalde]
|
||||
@@ -78,32 +85,33 @@ Join our growing community!
|
||||
- [Astronomer](https://www.astronomer.io) [@ryw]
|
||||
- [Avesta Technologies](https://avestatechnologies.com/) [@TheRum]
|
||||
- [Caizin](https://caizin.com/) [@tejaskatariya]
|
||||
- [Careem](https://www.careem.com/) [@SamraHanifCareem]
|
||||
- [Careem](https://www.careem.com/) [@samraHanif0340]
|
||||
- [Cloudsmith](https://cloudsmith.io) [@alancarson]
|
||||
- [CnOvit](https://www.cnovit.com/) [@xieshaohu]
|
||||
- [Cyberhaven](https://www.cyberhaven.com/) [@toliver-ch]
|
||||
- [Deepomatic](https://deepomatic.com/) [@Zanoellia]
|
||||
- [Dial Once](https://www.dial-once.com/)
|
||||
- [Dremio](https://dremio.com) [@narendrans]
|
||||
- [EFinance](https://www.efinance.com.eg) [@habeeb556]
|
||||
- [Elestio](https://elest.io/) [@kaiwalyakoparkar]
|
||||
- [ELMO Cloud HR & Payroll](https://elmosoftware.com.au/)
|
||||
- [Endress+Hauser](http://www.endress.com/) [@rumbin]
|
||||
- [FBK - ICT center](http://ict.fbk.eu)
|
||||
- [Endress+Hauser](https://www.endress.com/) [@rumbin]
|
||||
- [FBK - ICT center](https://ict.fbk.eu)
|
||||
- [Gavagai](https://gavagai.io) [@gavagai-corp]
|
||||
- [GfK Data Lab](https://www.gfk.com/home) [@mherr]
|
||||
- [Hydrolix](https://www.hydrolix.io/)
|
||||
- [Intercom](https://www.intercom.com/) [@kate-gallo]
|
||||
- [jampp](https://jampp.com/)
|
||||
- [Konfío](http://konfio.mx) [@uis-rodriguez]
|
||||
- [Konfío](https://konfio.mx) [@uis-rodriguez]
|
||||
- [Mainstrat](https://mainstrat.com/)
|
||||
- [mishmash io](https://mishmash.io/)[@mishmash-io]
|
||||
- [Myra Labs](http://www.myralabs.com/) [@viksit]
|
||||
- [Nielsen](http://www.nielsen.com/) [@amitNielsen]
|
||||
- [mishmash io](https://mishmash.io/) [@mishmash-io]
|
||||
- [Myra Labs](https://www.myralabs.com/) [@viksit]
|
||||
- [Nielsen](https://www.nielsen.com/) [@amitNielsen]
|
||||
- [Ona](https://ona.io) [@pld]
|
||||
- [Orange](https://www.orange.com) [@icsu]
|
||||
- [Oslandia](https://oslandia.com)
|
||||
- [Peak AI](https://www.peak.ai/) [@azhar22k]
|
||||
- [PeopleDoc](https://www.people-doc.com) [@rodo]
|
||||
- [PlaidCloud](https://www.plaidcloud.com)
|
||||
- [Preset, Inc.](https://preset.io)
|
||||
- [PubNub](https://pubnub.com) [@jzucker2]
|
||||
- [ReadyTech](https://www.readytech.io)
|
||||
@@ -112,12 +120,13 @@ Join our growing community!
|
||||
- [Showmax](https://showmax.com) [@bobek]
|
||||
- [TechAudit](https://www.techaudit.info) [@ETselikov]
|
||||
- [Tenable](https://www.tenable.com) [@dflionis]
|
||||
- [Tentacle](https://tentaclecmi.com) [@jdclarke5]
|
||||
- [Tentacle](https://www.linkedin.com/company/tentacle-cmi/) [@jdclarke5]
|
||||
- [timbr.ai](https://timbr.ai/) [@semantiDan]
|
||||
- [Tobii](http://www.tobii.com/) [@dwa]
|
||||
- [Tobii](https://www.tobii.com/) [@dwa]
|
||||
- [Tooploox](https://www.tooploox.com/) [@jakubczaplicki]
|
||||
- [Unvired](https://unvired.com)[@srinisubramanian]
|
||||
- [Whale](http://whale.im)
|
||||
- [Unvired](https://unvired.com) [@srinisubramanian]
|
||||
- [Virtuoso QA](https://www.virtuosoqa.com)
|
||||
- [Whale](https://whale.im)
|
||||
- [Windsor.ai](https://www.windsor.ai/) [@octaviancorlade]
|
||||
- [Zeta](https://www.zeta.tech/) [@shaikidris]
|
||||
|
||||
@@ -129,16 +138,17 @@ Join our growing community!
|
||||
- [Kuaishou](https://www.kuaishou.com/) [@zhaoyu89730105]
|
||||
- [Netflix](https://www.netflix.com/)
|
||||
- [Prensa Iberica](https://www.prensaiberica.es/) [@zamar-roura]
|
||||
- [TME QQMUSIC/WESING](https://www.tencentmusic.com/)[@shenyuanli,@marklaw]
|
||||
- [TME QQMUSIC/WESING](https://www.tencentmusic.com/) [@shenyuanli,@marklaw]
|
||||
- [Xite](https://xite.com/) [@shashankkoppar]
|
||||
- [Zaihang](http://www.zaih.com/)
|
||||
- [Zaihang](https://www.zaih.com/)
|
||||
|
||||
### Education
|
||||
- [Aveti Learning](https://avetilearning.com/) [@TheShubhendra]
|
||||
- [Brilliant.org](https://brilliant.org/)
|
||||
- [Open edX](https://openedx.org/)
|
||||
- [Platzi.com](https://platzi.com/)
|
||||
- [Sunbird](https://www.sunbird.org/) [@eksteporg]
|
||||
- [The GRAPH Network](https://thegraphnetwork.org/)[@fccoelho]
|
||||
- [The GRAPH Network](https://thegraphnetwork.org/) [@fccoelho]
|
||||
- [Udemy](https://www.udemy.com/) [@sungjuly]
|
||||
- [VIPKID](https://www.vipkid.com.cn/) [@illpanda]
|
||||
- [WikiMedia Foundation](https://wikimediafoundation.org) [@vg]
|
||||
@@ -153,22 +163,24 @@ Join our growing community!
|
||||
### Healthcare
|
||||
- [Amino](https://amino.com) [@shkr]
|
||||
- [Bluesquare](https://www.bluesquarehub.com/) [@madewulf]
|
||||
- [Care](https://www.getcare.io/)[@alandao2021]
|
||||
- [Care](https://www.getcare.io/) [@alandao2021]
|
||||
- [Living Goods](https://www.livinggoods.org) [@chelule]
|
||||
- [Maieutical Labs](https://maieuticallabs.it) [@xrmx]
|
||||
- [QPID Health](http://www.qpidhealth.com/)
|
||||
- [Medic](https://medic.org) [@1yuv]
|
||||
- [REDCap Cloud](https://www.redcapcloud.com/)
|
||||
- [TrustMedis](https://trustmedis.com/) [@famasya]
|
||||
- [WeSure](https://www.wesure.cn/)
|
||||
- [2070Health](https://2070health.com/)
|
||||
|
||||
### HR / Staffing
|
||||
- [Swile](https://www.swile.co/) [@PaoloTerzi]
|
||||
- [Symmetrics](https://www.symmetrics.fyi)
|
||||
- [bluquist](https://bluquist.com/)
|
||||
|
||||
### Government
|
||||
### Government / Non-Profit
|
||||
- [City of Ann Arbor, MI](https://www.a2gov.org/) [@sfirke]
|
||||
- [RIS3 Strategy of CZ, MIT CR](https://www.ris3.cz/) [@RIS3CZ]
|
||||
- [NRLM - Sarathi, India](https://pib.gov.in/PressReleasePage.aspx?PRID=1999586)
|
||||
|
||||
### Travel
|
||||
- [Agoda](https://www.agoda.com/) [@lostseaway, @maiake, @obombayo]
|
||||
@@ -185,6 +197,6 @@ Join our growing community!
|
||||
- [komoot](https://www.komoot.com/) [@christophlingg]
|
||||
- [Let's Roam](https://www.letsroam.com/)
|
||||
- [Onebeat](https://1beat.com/) [@GuyAttia]
|
||||
- [Twitter](https://twitter.com/)
|
||||
- [X](https://x.com/)
|
||||
- [VLMedia](https://www.vlmedia.com.tr/) [@ibotheperfect]
|
||||
- [Yahoo!](https://yahoo.com/)
|
||||
|
||||
43
UPDATING.md
43
UPDATING.md
@@ -22,7 +22,33 @@ under the License.
|
||||
This file documents any backwards-incompatible changes in Superset and
|
||||
assists people when migrating to a new version.
|
||||
|
||||
## Next
|
||||
## 5.0.0
|
||||
|
||||
- [31976](https://github.com/apache/superset/pull/31976) Removed the `DISABLE_LEGACY_DATASOURCE_EDITOR` feature flag. The previous value of the feature flag was `True` and now the feature is permanently removed.
|
||||
- [31959](https://github.com/apache/superset/pull/32000) Removes CSV_UPLOAD_MAX_SIZE config, use your web server to control file upload size.
|
||||
- [31959](https://github.com/apache/superset/pull/31959) Removes the following endpoints from data uploads: `/api/v1/database/<id>/<file type>_upload` and `/api/v1/database/<file type>_metadata`, in favour of new one (Details on the PR). And simplifies permissions.
|
||||
- [31844](https://github.com/apache/superset/pull/31844) The `ALERT_REPORTS_EXECUTE_AS` and `THUMBNAILS_EXECUTE_AS` config parameters have been renamed to `ALERT_REPORTS_EXECUTORS` and `THUMBNAILS_EXECUTORS` respectively. A new config flag `CACHE_WARMUP_EXECUTORS` has also been introduced to be able to control which user is used to execute cache warmup tasks. Finally, the config flag `THUMBNAILS_SELENIUM_USER` has been removed. To use a fixed executor for async tasks, use the new `FixedExecutor` class. See the config and docs for more info on setting up different executor profiles.
|
||||
- [31894](https://github.com/apache/superset/pull/31894) Domain sharding is deprecated in favor of HTTP2. The `SUPERSET_WEBSERVER_DOMAINS` configuration will be removed in the next major version (6.0)
|
||||
- [31794](https://github.com/apache/superset/pull/31794) Removed the previously deprecated `DASHBOARD_CROSS_FILTERS` feature flag
|
||||
- [31774](https://github.com/apache/superset/pull/31774): Fixes the spelling of the `USE-ANALAGOUS-COLORS` feature flag. Please update any scripts/configuration item to use the new/corrected `USE-ANALOGOUS-COLORS` flag spelling.
|
||||
- [31582](https://github.com/apache/superset/pull/31582) Removed the legacy Area, Bar, Event Flow, Heatmap, Histogram, Line, Sankey, and Sankey Loop charts. They were all automatically migrated to their ECharts counterparts with the exception of the Event Flow and Sankey Loop charts which were removed as they were not actively maintained and not widely used. If you were using the Event Flow or Sankey Loop charts, you will need to find an alternative solution.
|
||||
- [31198](https://github.com/apache/superset/pull/31198) Disallows by default the use of the following ClickHouse functions: "version", "currentDatabase", "hostName".
|
||||
- [29798](https://github.com/apache/superset/pull/29798) Since 3.1.0, the intial schedule for an alert or report was mistakenly offset by the specified timezone's relation to UTC. The initial schedule should now begin at the correct time.
|
||||
- [30021](https://github.com/apache/superset/pull/30021) The `dev` layer in our Dockerfile no long includes firefox binaries, only Chromium to reduce bloat/docker-build-time.
|
||||
- [30099](https://github.com/apache/superset/pull/30099) Translations are no longer included in the default docker image builds. If your environment requires translations, you'll want to set the docker build arg `BUILD_TRANSACTION=true`.
|
||||
- [31262](https://github.com/apache/superset/pull/31262) NOTE: deprecated `pylint` in favor of `ruff` as our only python linter. Only affect development workflows positively (not the release itself). It should cover most important rules, be much faster, but some things linting rules that were enforced before may not be enforce in the exact same way as before.
|
||||
- [31173](https://github.com/apache/superset/pull/31173) Modified `fetch_csrf_token` to align with HTTP standards, particularly regarding how cookies are handled. If you encounter any issues related to CSRF functionality, please report them as a new issue and reference this PR for context.
|
||||
- [31413](https://github.com/apache/superset/pull/31413) Enable the DATE_FORMAT_IN_EMAIL_SUBJECT feature flag to allow users to specify a date format for the email subject, which will then be replaced with the actual date.
|
||||
- [31385](https://github.com/apache/superset/pull/31385) Significant docker refactor, reducing access levels for the `superset` user, streamlining layer building, ...
|
||||
- [31503](https://github.com/apache/superset/pull/31503) Deprecating python 3.9.x support, 3.11 is now the recommended version and 3.10 is still supported over the Superset 5.0 lifecycle.
|
||||
- [29121](https://github.com/apache/superset/pull/29121) Removed the `css`, `position_json`, and `json_metadata` from the payload of the dashboard list endpoint (`GET api/v1/dashboard`) for performance reasons.
|
||||
- [29163](https://github.com/apache/superset/pull/29163) Removed the `SHARE_QUERIES_VIA_KV_STORE` and `KV_STORE` feature flags and changed the way Superset shares SQL Lab queries to use permalinks. The legacy `/kv` API was removed but we still support legacy links in 5.0. In 6.0, only permalinks will be supported.
|
||||
- [25166](https://github.com/apache/superset/pull/25166) Changed the default configuration of `UPLOAD_FOLDER` from `/app/static/uploads/` to `/static/uploads/`. It also removed the unused `IMG_UPLOAD_FOLDER` and `IMG_UPLOAD_URL` configuration options.
|
||||
- [30284](https://github.com/apache/superset/pull/30284) Deprecated GLOBAL_ASYNC_QUERIES_REDIS_CONFIG in favor of the new GLOBAL_ASYNC_QUERIES_CACHE_BACKEND configuration. To leverage Redis Sentinel, set CACHE_TYPE to RedisSentinelCache, or use RedisCache for standalone Redis
|
||||
- [31961](https://github.com/apache/superset/pull/31961) Upgraded React from version 16.13.1 to 17.0.2. If you are using custom frontend extensions or plugins, you may need to update them to be compatible with React 17.
|
||||
- [31260](https://github.com/apache/superset/pull/31260) Docker images now use `uv pip install` instead of `pip install` to manage the python envrionment. Most docker-based deployments will be affected, whether you derive one of the published images, or have custom bootstrap script that install python libraries (drivers)
|
||||
|
||||
## 4.1.0
|
||||
|
||||
- [29274](https://github.com/apache/superset/pull/29274): We made it easier to trigger CI on your
|
||||
forks, whether they are public or private. Simply push to a branch that fits `[0-9].[0-9]*` and
|
||||
@@ -32,9 +58,9 @@ assists people when migrating to a new version.
|
||||
`requirements/` folder. If you use these files for your builds you may want to double
|
||||
check that your builds are not affected. `base.txt` should be the same as before, though
|
||||
`development.txt` becomes a bigger set, incorporating the now defunct local,testing,integration, and docker
|
||||
- [27434](https://github.com/apache/superset/pull/27434/files): DO NOT USE our docker-compose.\*
|
||||
- [27434](https://github.com/apache/superset/pull/27434/files): DO NOT USE our docker compose.\*
|
||||
files for production use cases! While we never really supported
|
||||
or should have tried to support docker-compose for production use cases, we now actively
|
||||
or should have tried to support docker compose for production use cases, we now actively
|
||||
have taken a stance against supporting it. See the PR for details.
|
||||
- [24112](https://github.com/apache/superset/pull/24112): Python 3.10 is now the recommended python version to use, 3.9 still
|
||||
supported but getting deprecated in the nearish future. CI/CD runs on py310 so you probably want to align. If you
|
||||
@@ -58,7 +84,7 @@ assists people when migrating to a new version.
|
||||
backend, as well as the .json files used by the frontend. If you were doing anything before
|
||||
as part of your bundling to expose translation packages, it's probably not needed anymore.
|
||||
- [29264](https://github.com/apache/superset/pull/29264) Slack has updated its file upload api, and we are now supporting this new api in Superset, although the Slack api is not backward compatible. The original Slack integration is deprecated and we will require a new Slack scope `channels:read` to be added to Slack workspaces in order to use this new api. In an upcoming release, we will make this new Slack scope mandatory and remove the old Slack functionality.
|
||||
- [29798](https://github.com/apache/superset/pull/29798) Since 3.1.0, the intial schedule for an alert or report was mistakenly offset by the specified timezone's relation to UTC. The initial schedule should now begin at the correct time.
|
||||
- [30274](https://github.com/apache/superset/pull/30274) Moved SLACK_ENABLE_AVATAR from config.py to the feature flag framework, please adapt your configs.
|
||||
|
||||
### Potential Downtime
|
||||
|
||||
@@ -116,7 +142,7 @@ assists people when migrating to a new version.
|
||||
- [24911](https://github.com/apache/superset/pull/24911): Changes the column type from `TEXT` to `MediumText` in table `logs`, potentially requiring a table lock on MySQL dbs or taking some time to complete on large deployments.
|
||||
- [24939](https://github.com/apache/superset/pull/24939): Augments the foreign key constraints for the `embedded_dashboards` table to include an explicit CASCADE ON DELETE to ensure the relevant records are deleted when a dashboard is deleted. Scheduled downtime may be advised.
|
||||
- [24938](https://github.com/apache/superset/pull/24938): Augments the foreign key constraints for the `dashboard_slices` table to include an explicit CASCADE ON DELETE to ensure the relevant records are deleted when a dashboard or slice is deleted. Scheduled downtime may be advised.
|
||||
- [24628]https://github.com/apache/superset/pull/24628): Augments the foreign key constraints for the `dashboard_owner`, `report_schedule_owner`, and `slice_owner` tables to include an explicit CASCADE ON DELETE to ensure the relevant ownership records are deleted when a dataset is deleted. Scheduled downtime may be advised.
|
||||
- [24628](https://github.com/apache/superset/pull/24628): Augments the foreign key constraints for the `dashboard_owner`, `report_schedule_owner`, and `slice_owner` tables to include an explicit CASCADE ON DELETE to ensure the relevant ownership records are deleted when a dataset is deleted. Scheduled downtime may be advised.
|
||||
- [24488](https://github.com/apache/superset/pull/24488): Augments the foreign key constraints for the `sql_metrics`, `sqlatable_user`, and `table_columns` tables which reference the `tables` table to include an explicit CASCADE ON DELETE to ensure the relevant records are deleted when a dataset is deleted. Scheduled downtime may be advised.
|
||||
- [24232](https://github.com/apache/superset/pull/24232): Enables ENABLE_TEMPLATE_REMOVE_FILTERS, DRILL_TO_DETAIL, DASHBOARD_CROSS_FILTERS by default, marks VERSIONED_EXPORT and ENABLE_TEMPLATE_REMOVE_FILTERS as deprecated.
|
||||
- [23652](https://github.com/apache/superset/pull/23652): Enables GENERIC_CHART_AXES feature flag by default.
|
||||
@@ -132,7 +158,7 @@ assists people when migrating to a new version.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- [24686]https://github.com/apache/superset/pull/24686): All dataset's custom explore_url are handled as relative URLs on the frontend, behaviour controlled by PREVENT_UNSAFE_DEFAULT_URLS_ON_DATASET.
|
||||
- [24686](https://github.com/apache/superset/pull/24686): All dataset's custom explore_url are handled as relative URLs on the frontend, behaviour controlled by PREVENT_UNSAFE_DEFAULT_URLS_ON_DATASET.
|
||||
- [24262](https://github.com/apache/superset/pull/24262): Enabled `TALISMAN_ENABLED` flag by default and provided stricter default Content Security Policy
|
||||
- [24415](https://github.com/apache/superset/pull/24415): Removed the obsolete Druid NoSQL REGEX operator.
|
||||
- [24423](https://github.com/apache/superset/pull/24423): Removed deprecated APIs `/superset/slice_json/...`, `/superset/annotation_json/...`
|
||||
@@ -229,7 +255,7 @@ assists people when migrating to a new version.
|
||||
- [19231](https://github.com/apache/superset/pull/19231): The `ENABLE_REACT_CRUD_VIEWS` feature flag has been removed (permanently enabled). Any deployments which had set this flag to false will need to verify that the React views support their use case.
|
||||
- [19230](https://github.com/apache/superset/pull/19230): The `ROW_LEVEL_SECURITY` feature flag has been removed (permanently enabled). Any deployments which had set this flag to false will need to verify that the presence of the Row Level Security feature does not interfere with their use case.
|
||||
- [19168](https://github.com/apache/superset/pull/19168): Celery upgrade to 5.X resulted in breaking changes to its command line invocation.
|
||||
html#step-1-adjust-your-command-line-invocation) instructions for adjustments. Also consider migrating you Celery config per [here](https://docs.celeryq.dev/en/stable/userguide/configuration.html#conf-old-settings-map).
|
||||
html#step-1-adjust-your-command-line-invocation) instructions for adjustments. Also consider migrating you Celery config per [here](https://docs.celeryq.dev/en/stable/userguide/configuration.html#conf-old-settings-map).
|
||||
- [19142](https://github.com/apache/superset/pull/19142): The `VERSIONED_EXPORT` config key is now `True` by default.
|
||||
- [19113](https://github.com/apache/superset/pull/19113): The `ENABLE_JAVASCRIPT_CONTROLS` config key has moved from an app config to a feature flag. Any deployments who overrode this setting will now need to override the feature flag from here onward.
|
||||
- [19107](https://github.com/apache/superset/pull/19107): The `SQLLAB_BACKEND_PERSISTENCE` feature flag is now `True` by default, which enables persisting SQL Lab tabs in the backend instead of the browser's `localStorage`.
|
||||
@@ -317,8 +343,7 @@ html#step-1-adjust-your-command-line-invocation) instructions for adjustments. A
|
||||
### Potential Downtime
|
||||
|
||||
- [14234](https://github.com/apache/superset/pull/14234): Adds the `limiting_factor` column to the `query` table. Give the migration includes a DDL operation on a heavily trafficked table, potential service downtime may be required.
|
||||
|
||||
-[16454](https://github.com/apache/superset/pull/16454): Adds the `extra` column to the `table_columns` table. Users using MySQL will either need to schedule downtime or use the percona toolkit (or similar) to perform the migration.
|
||||
- [16454](https://github.com/apache/superset/pull/16454): Adds the `extra` column to the `table_columns` table. Users using MySQL will either need to schedule downtime or use the percona toolkit (or similar) to perform the migration.
|
||||
|
||||
## 1.2.0
|
||||
|
||||
|
||||
@@ -16,21 +16,17 @@
|
||||
#
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# We don't support docker-compose for production environments.
|
||||
# We don't support docker compose for production environments.
|
||||
# If you choose to use this type of deployment make sure to
|
||||
# create you own docker environment file (docker/.env) with your own
|
||||
# unique random secure passwords and SECRET_KEY.
|
||||
# -----------------------------------------------------------------------
|
||||
x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest}
|
||||
x-superset-depends-on: &superset-depends-on
|
||||
- db
|
||||
- redis
|
||||
x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest-dev}
|
||||
x-superset-volumes:
|
||||
&superset-volumes # /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
|
||||
- ./docker:/app/docker
|
||||
- superset_home:/app/superset_home
|
||||
|
||||
version: "3.7"
|
||||
services:
|
||||
redis:
|
||||
image: redis:7
|
||||
@@ -65,8 +61,12 @@ services:
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8088:8088
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
volumes: *superset-volumes
|
||||
environment:
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-init:
|
||||
image: *superset-image
|
||||
@@ -77,11 +77,18 @@ services:
|
||||
required: true
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_started
|
||||
redis:
|
||||
condition: service_started
|
||||
user: "root"
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
disable: true
|
||||
environment:
|
||||
SUPERSET_LOAD_EXAMPLES: "${SUPERSET_LOAD_EXAMPLES:-yes}"
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-worker:
|
||||
image: *superset-image
|
||||
@@ -93,7 +100,9 @@ services:
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
restart: unless-stopped
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
user: "root"
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
@@ -102,6 +111,8 @@ services:
|
||||
"CMD-SHELL",
|
||||
"celery -A superset.tasks.celery_app:app inspect ping -d celery@$$HOSTNAME",
|
||||
]
|
||||
environment:
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-worker-beat:
|
||||
image: *superset-image
|
||||
@@ -113,11 +124,15 @@ services:
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
restart: unless-stopped
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
user: "root"
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
disable: true
|
||||
environment:
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
volumes:
|
||||
superset_home:
|
||||
|
||||
@@ -16,14 +16,11 @@
|
||||
#
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# We don't support docker-compose for production environments.
|
||||
# We don't support docker compose for production environments.
|
||||
# If you choose to use this type of deployment make sure to
|
||||
# create you own docker environment file (docker/.env) with your own
|
||||
# unique random secure passwords and SECRET_KEY.
|
||||
# -----------------------------------------------------------------------
|
||||
x-superset-depends-on: &superset-depends-on
|
||||
- db
|
||||
- redis
|
||||
x-superset-volumes:
|
||||
&superset-volumes # /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
|
||||
- ./docker:/app/docker
|
||||
@@ -35,7 +32,6 @@ x-common-build: &common-build
|
||||
cache_from:
|
||||
- apache/superset-cache:3.10-slim-bookworm
|
||||
|
||||
version: "4.0"
|
||||
services:
|
||||
redis:
|
||||
image: redis:7
|
||||
@@ -71,8 +67,12 @@ services:
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8088:8088
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
volumes: *superset-volumes
|
||||
environment:
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-init:
|
||||
container_name: superset_init
|
||||
@@ -84,11 +84,18 @@ services:
|
||||
required: true
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_started
|
||||
redis:
|
||||
condition: service_started
|
||||
user: "root"
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
disable: true
|
||||
environment:
|
||||
SUPERSET_LOAD_EXAMPLES: "${SUPERSET_LOAD_EXAMPLES:-yes}"
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-worker:
|
||||
build:
|
||||
@@ -101,7 +108,9 @@ services:
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
restart: unless-stopped
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
user: "root"
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
@@ -110,6 +119,8 @@ services:
|
||||
"CMD-SHELL",
|
||||
"celery -A superset.tasks.celery_app:app inspect ping -d celery@$$HOSTNAME",
|
||||
]
|
||||
environment:
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-worker-beat:
|
||||
build:
|
||||
@@ -122,11 +133,15 @@ services:
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
restart: unless-stopped
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
user: "root"
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
disable: true
|
||||
environment:
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
volumes:
|
||||
superset_home:
|
||||
|
||||
@@ -16,15 +16,12 @@
|
||||
#
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# We don't support docker-compose for production environments.
|
||||
# We don't support docker compose for production environments.
|
||||
# If you choose to use this type of deployment make sure to
|
||||
# create you own docker environment file (docker/.env) with your own
|
||||
# unique random secure passwords and SECRET_KEY.
|
||||
# -----------------------------------------------------------------------
|
||||
x-superset-user: &superset-user root
|
||||
x-superset-depends-on: &superset-depends-on
|
||||
- db
|
||||
- redis
|
||||
x-superset-volumes: &superset-volumes
|
||||
# /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
|
||||
- ./docker:/app/docker
|
||||
@@ -35,9 +32,14 @@ x-superset-volumes: &superset-volumes
|
||||
|
||||
x-common-build: &common-build
|
||||
context: .
|
||||
target: dev
|
||||
target: ${SUPERSET_BUILD_TARGET:-dev} # can use `dev` (default) or `lean`
|
||||
cache_from:
|
||||
- apache/superset-cache:3.10-slim-bookworm
|
||||
args:
|
||||
DEV_MODE: "true"
|
||||
INCLUDE_CHROMIUM: ${INCLUDE_CHROMIUM:-false}
|
||||
INCLUDE_FIREFOX: ${INCLUDE_FIREFOX:-false}
|
||||
BUILD_TRANSLATIONS: ${BUILD_TRANSLATIONS:-false}
|
||||
|
||||
services:
|
||||
nginx:
|
||||
@@ -87,13 +89,18 @@ services:
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8088:8088
|
||||
# When in cypress-mode ->
|
||||
- 8081:8081
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
user: *superset-user
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
volumes: *superset-volumes
|
||||
environment:
|
||||
CYPRESS_CONFIG: "${CYPRESS_CONFIG:-}"
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-websocket:
|
||||
container_name: superset_websocket
|
||||
@@ -120,7 +127,7 @@ services:
|
||||
- /home/superset-websocket/dist
|
||||
|
||||
# Mounting a config file that contains a dummy secret required to boot up.
|
||||
# do not use this docker-compose in production
|
||||
# do not use this docker compose in production
|
||||
- ./docker/superset-websocket/config.json:/home/superset-websocket/config.json
|
||||
environment:
|
||||
- PORT=8080
|
||||
@@ -138,21 +145,40 @@ services:
|
||||
required: true
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_started
|
||||
redis:
|
||||
condition: service_started
|
||||
user: *superset-user
|
||||
volumes: *superset-volumes
|
||||
environment:
|
||||
CYPRESS_CONFIG: "${CYPRESS_CONFIG:-}"
|
||||
SUPERSET_LOAD_EXAMPLES: "${SUPERSET_LOAD_EXAMPLES:-yes}"
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
healthcheck:
|
||||
disable: true
|
||||
|
||||
superset-node:
|
||||
image: node:20
|
||||
build:
|
||||
context: .
|
||||
target: superset-node
|
||||
args:
|
||||
# This prevents building the frontend bundle since we'll mount local folder
|
||||
# and build it on startup while firing docker-frontend.sh in dev mode, where
|
||||
# it'll mount and watch local files and rebuild as you update them
|
||||
DEV_MODE: "true"
|
||||
BUILD_TRANSLATIONS: ${BUILD_TRANSLATIONS:-false}
|
||||
environment:
|
||||
# set this to false if you have perf issues running the npm i; npm run dev in-docker
|
||||
# if you do so, you have to run this manually on the host, which should perform better!
|
||||
BUILD_SUPERSET_FRONTEND_IN_DOCKER: true
|
||||
NPM_RUN_PRUNE: false
|
||||
SCARF_ANALYTICS: "${SCARF_ANALYTICS:-}"
|
||||
# configuring the dev-server to use the host.docker.internal to connect to the backend
|
||||
superset: "http://host.docker.internal:8088"
|
||||
ports:
|
||||
- "127.0.0.1:9000:9000" # exposing the dynamic webpack dev server
|
||||
container_name: superset_node
|
||||
command: ["/app/docker/docker-frontend.sh"]
|
||||
env_file:
|
||||
@@ -160,7 +186,6 @@ services:
|
||||
required: true
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
depends_on: *superset-depends-on
|
||||
volumes: *superset-volumes
|
||||
|
||||
superset-worker:
|
||||
@@ -175,8 +200,12 @@ services:
|
||||
required: false
|
||||
environment:
|
||||
CELERYD_CONCURRENCY: 2
|
||||
CYPRESS_CONFIG: "${CYPRESS_CONFIG:-}"
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
restart: unless-stopped
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
user: *superset-user
|
||||
volumes: *superset-volumes
|
||||
extra_hosts:
|
||||
@@ -198,11 +227,15 @@ services:
|
||||
- path: docker/.env-local # optional override
|
||||
required: false
|
||||
restart: unless-stopped
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
- superset-worker
|
||||
user: *superset-user
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
disable: true
|
||||
environment:
|
||||
CYPRESS_CONFIG: "${CYPRESS_CONFIG:-}"
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
|
||||
superset-tests-worker:
|
||||
build:
|
||||
@@ -223,8 +256,11 @@ services:
|
||||
REDIS_RESULTS_DB: 3
|
||||
REDIS_HOST: localhost
|
||||
CELERYD_CONCURRENCY: 8
|
||||
SUPERSET_LOG_LEVEL: "${SUPERSET_LOG_LEVEL:-info}"
|
||||
network_mode: host
|
||||
depends_on: *superset-depends-on
|
||||
depends_on:
|
||||
superset-init:
|
||||
condition: service_completed_successfully
|
||||
user: *superset-user
|
||||
volumes: *superset-volumes
|
||||
healthcheck:
|
||||
|
||||
@@ -15,8 +15,11 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Allowing python to print() in docker
|
||||
PYTHONUNBUFFERED=1
|
||||
|
||||
COMPOSE_PROJECT_NAME=superset
|
||||
DEV_MODE=true
|
||||
|
||||
# database configurations (do not modify)
|
||||
DATABASE_DB=superset
|
||||
@@ -63,3 +66,4 @@ SUPERSET_SECRET_KEY=TEST_NON_DEV_SECRET
|
||||
ENABLE_PLAYWRIGHT=false
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||
BUILD_SUPERSET_FRONTEND_IN_DOCKER=true
|
||||
SUPERSET_LOG_LEVEL=info
|
||||
|
||||
@@ -68,7 +68,7 @@ Don't forget to reload the page to take the new frontend into account though.
|
||||
|
||||
## Production
|
||||
|
||||
It is possible to run Superset in non-development mode by using [`docker-compose-non-dev.yml`](../docker-compose-non-dev.yml). This file excludes the volumes needed for development and uses [`./docker/.env-non-dev`](./.env-non-dev) which sets the variable `SUPERSET_ENV` to `production`.
|
||||
It is possible to run Superset in non-development mode by using [`docker-compose-non-dev.yml`](../docker-compose-non-dev.yml). This file excludes the volumes needed for development.
|
||||
|
||||
## Resource Constraints
|
||||
|
||||
|
||||
51
docker/apt-install.sh
Executable file
51
docker/apt-install.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
# Ensure this script is run as root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for required arguments
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "Usage: $0 <package1> [<package2> ...]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Colors for better logging (optional)
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
RESET='\033[0m'
|
||||
|
||||
# Install packages with clean-up
|
||||
echo -e "${GREEN}Updating package lists...${RESET}"
|
||||
apt-get update -qq
|
||||
|
||||
echo -e "${GREEN}Installing packages: $@${RESET}"
|
||||
apt-get install -yqq --no-install-recommends "$@"
|
||||
|
||||
echo -e "${GREEN}Autoremoving unnecessary packages...${RESET}"
|
||||
apt-get autoremove -y
|
||||
|
||||
echo -e "${GREEN}Cleaning up package cache and metadata...${RESET}"
|
||||
apt-get clean
|
||||
rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* /tmp/* /var/tmp/*
|
||||
|
||||
echo -e "${GREEN}Installation and cleanup complete.${RESET}"
|
||||
@@ -18,19 +18,43 @@
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
# Make python interactive
|
||||
if [ "$DEV_MODE" == "true" ]; then
|
||||
if [ "$(whoami)" = "root" ] && command -v uv > /dev/null 2>&1; then
|
||||
echo "Reinstalling the app in editable mode"
|
||||
uv pip install -e .
|
||||
fi
|
||||
fi
|
||||
REQUIREMENTS_LOCAL="/app/docker/requirements-local.txt"
|
||||
PORT=${PORT:-8088}
|
||||
# If Cypress run – overwrite the password for admin and export env variables
|
||||
if [ "$CYPRESS_CONFIG" == "true" ]; then
|
||||
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
|
||||
export SUPERSET_TESTENV=true
|
||||
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset
|
||||
export POSTGRES_DB=superset_cypress
|
||||
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset_cypress
|
||||
PORT=8081
|
||||
fi
|
||||
if [[ "$DATABASE_DIALECT" == postgres* ]] && [ "$(whoami)" = "root" ]; then
|
||||
# older images may not have the postgres dev requirements installed
|
||||
echo "Installing postgres requirements"
|
||||
if command -v uv > /dev/null 2>&1; then
|
||||
# Use uv in newer images
|
||||
uv pip install -e .[postgres]
|
||||
else
|
||||
# Use pip in older images
|
||||
pip install -e .[postgres]
|
||||
fi
|
||||
fi
|
||||
#
|
||||
# Make sure we have dev requirements installed
|
||||
#
|
||||
if [ -f "${REQUIREMENTS_LOCAL}" ]; then
|
||||
echo "Installing local overrides at ${REQUIREMENTS_LOCAL}"
|
||||
pip install --no-cache-dir -r "${REQUIREMENTS_LOCAL}"
|
||||
if command -v uv > /dev/null 2>&1; then
|
||||
uv pip install --no-cache-dir -r "${REQUIREMENTS_LOCAL}"
|
||||
else
|
||||
pip install --no-cache-dir -r "${REQUIREMENTS_LOCAL}"
|
||||
fi
|
||||
else
|
||||
echo "Skipping local overrides"
|
||||
fi
|
||||
@@ -48,7 +72,7 @@ case "${1}" in
|
||||
;;
|
||||
app)
|
||||
echo "Starting web app (using development server)..."
|
||||
flask run -p 8088 --with-threads --reload --debugger --host=0.0.0.0
|
||||
flask run -p $PORT --with-threads --reload --debugger --host=0.0.0.0
|
||||
;;
|
||||
app-gunicorn)
|
||||
echo "Starting web app..."
|
||||
|
||||
28
docker/docker-entrypoint-initdb.d/cypress-init.sh
Executable file
28
docker/docker-entrypoint-initdb.d/cypress-init.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# Creates the examples database and respective user. This database location
|
||||
# and access credentials are defined on the environment variables
|
||||
# ------------------------------------------------------------------------
|
||||
set -e
|
||||
|
||||
psql -v ON_ERROR_STOP=1 --username "${POSTGRES_USER}" <<-EOSQL
|
||||
CREATE DATABASE superset_cypress;
|
||||
EOSQL
|
||||
@@ -27,11 +27,18 @@ if [ "$BUILD_SUPERSET_FRONTEND_IN_DOCKER" = "true" ]; then
|
||||
echo "Building Superset frontend in dev mode inside docker container"
|
||||
cd /app/superset-frontend
|
||||
|
||||
if [ "$NPM_RUN_PRUNE" = "true" ]; then
|
||||
echo "Running `npm run prune`"
|
||||
npm run prune
|
||||
fi
|
||||
|
||||
echo "Running `npm install`"
|
||||
npm install
|
||||
|
||||
echo "Running frontend"
|
||||
npm run dev
|
||||
echo "Start webpack dev server"
|
||||
# start the webpack dev server, serving dynamically at http://localhost:9000
|
||||
# it proxies to the backend served at http://localhost:8088
|
||||
npm run dev-server
|
||||
|
||||
else
|
||||
echo "Skipping frontend build steps - YOU NEED TO RUN IT MANUALLY ON THE HOST!"
|
||||
|
||||
@@ -22,28 +22,26 @@ set -e
|
||||
#
|
||||
/app/docker/docker-bootstrap.sh
|
||||
|
||||
STEP_CNT=4
|
||||
if [ "$SUPERSET_LOAD_EXAMPLES" = "yes" ]; then
|
||||
STEP_CNT=4
|
||||
else
|
||||
STEP_CNT=3
|
||||
fi
|
||||
|
||||
echo_step() {
|
||||
cat <<EOF
|
||||
|
||||
######################################################################
|
||||
|
||||
|
||||
Init Step ${1}/${STEP_CNT} [${2}] -- ${3}
|
||||
|
||||
|
||||
######################################################################
|
||||
|
||||
EOF
|
||||
}
|
||||
ADMIN_PASSWORD="${ADMIN_PASSWORD:-admin}"
|
||||
# If Cypress run – overwrite the password for admin and export env variables
|
||||
if [ "$CYPRESS_CONFIG" == "true" ]; then
|
||||
ADMIN_PASSWORD="general"
|
||||
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
|
||||
export SUPERSET_TESTENV=true
|
||||
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset
|
||||
export POSTGRES_DB=superset_cypress
|
||||
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset_cypress
|
||||
fi
|
||||
# Initialize the database
|
||||
echo_step "1" "Starting" "Applying DB migrations"
|
||||
@@ -52,12 +50,16 @@ echo_step "1" "Complete" "Applying DB migrations"
|
||||
|
||||
# Create an admin user
|
||||
echo_step "2" "Starting" "Setting up admin user ( admin / $ADMIN_PASSWORD )"
|
||||
superset fab create-admin \
|
||||
--username admin \
|
||||
--firstname Superset \
|
||||
--lastname Admin \
|
||||
--email admin@superset.com \
|
||||
--password "$ADMIN_PASSWORD"
|
||||
if [ "$CYPRESS_CONFIG" == "true" ]; then
|
||||
superset load_test_users
|
||||
else
|
||||
superset fab create-admin \
|
||||
--username admin \
|
||||
--email admin@superset.com \
|
||||
--password "$ADMIN_PASSWORD" \
|
||||
--firstname Superset \
|
||||
--lastname Admin
|
||||
fi
|
||||
echo_step "2" "Complete" "Setting up admin user"
|
||||
# Create default roles and permissions
|
||||
echo_step "3" "Starting" "Setting up roles and perms"
|
||||
@@ -69,10 +71,9 @@ if [ "$SUPERSET_LOAD_EXAMPLES" = "yes" ]; then
|
||||
echo_step "4" "Starting" "Loading examples"
|
||||
# If Cypress run which consumes superset_test_config – load required data for tests
|
||||
if [ "$CYPRESS_CONFIG" == "true" ]; then
|
||||
superset load_test_users
|
||||
superset load_examples --load-test-data
|
||||
else
|
||||
superset load_examples --force
|
||||
superset load_examples
|
||||
fi
|
||||
echo_step "4" "Complete" "Loading examples"
|
||||
fi
|
||||
|
||||
@@ -23,4 +23,4 @@
|
||||
export SERVER_THREADS_AMOUNT=8
|
||||
# start up the web server
|
||||
|
||||
/usr/bin/run-server.sh
|
||||
/app/docker/entrypoints/run-server.sh
|
||||
@@ -26,6 +26,7 @@ gunicorn \
|
||||
--workers ${SERVER_WORKER_AMOUNT:-1} \
|
||||
--worker-class ${SERVER_WORKER_CLASS:-gthread} \
|
||||
--threads ${SERVER_THREADS_AMOUNT:-20} \
|
||||
--log-level "${GUNICORN_LOGLEVEL:info}" \
|
||||
--timeout ${GUNICORN_TIMEOUT:-60} \
|
||||
--keep-alive ${GUNICORN_KEEPALIVE:-2} \
|
||||
--max-requests ${WORKER_MAX_REQUESTS:-0} \
|
||||
@@ -112,6 +112,12 @@ http {
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
location /static {
|
||||
proxy_pass http://host.docker.internal:9000; # Proxy to superset-node
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://superset_app;
|
||||
proxy_set_header Host $host;
|
||||
|
||||
64
docker/pip-install.sh
Executable file
64
docker/pip-install.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
# Default flag
|
||||
REQUIRES_BUILD_ESSENTIAL=false
|
||||
USE_CACHE=true
|
||||
|
||||
# Filter arguments
|
||||
ARGS=()
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--requires-build-essential)
|
||||
REQUIRES_BUILD_ESSENTIAL=true
|
||||
;;
|
||||
--no-cache)
|
||||
USE_CACHE=false
|
||||
;;
|
||||
*)
|
||||
ARGS+=("$arg")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Install build-essential if required
|
||||
if $REQUIRES_BUILD_ESSENTIAL; then
|
||||
echo "Installing build-essential for package builds..."
|
||||
apt-get update -qq \
|
||||
&& apt-get install -yqq --no-install-recommends build-essential
|
||||
fi
|
||||
|
||||
# Choose whether to use pip cache
|
||||
if $USE_CACHE; then
|
||||
echo "Using pip cache..."
|
||||
uv pip install "${ARGS[@]}"
|
||||
else
|
||||
echo "Disabling pip cache..."
|
||||
uv pip install --no-cache-dir "${ARGS[@]}"
|
||||
fi
|
||||
|
||||
# Remove build-essential if it was installed
|
||||
if $REQUIRES_BUILD_ESSENTIAL; then
|
||||
echo "Removing build-essential to keep the image lean..."
|
||||
apt-get autoremove -yqq --purge build-essential \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
|
||||
fi
|
||||
|
||||
echo "Python packages installed successfully."
|
||||
@@ -22,6 +22,7 @@
|
||||
#
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
from celery.schedules import crontab
|
||||
from flask_caching.backends.filesystemcache import FileSystemCache
|
||||
@@ -99,11 +100,26 @@ CELERY_CONFIG = CeleryConfig
|
||||
|
||||
FEATURE_FLAGS = {"ALERT_REPORTS": True}
|
||||
ALERT_REPORTS_NOTIFICATION_DRY_RUN = True
|
||||
WEBDRIVER_BASEURL = "http://superset:8088/" # When using docker compose baseurl should be http://superset_app:8088/
|
||||
WEBDRIVER_BASEURL = "http://superset:8088/" # When using docker compose baseurl should be http://superset_app:8088/ # noqa: E501
|
||||
# The base URL for the email report hyperlinks.
|
||||
WEBDRIVER_BASEURL_USER_FRIENDLY = WEBDRIVER_BASEURL
|
||||
SQLLAB_CTAS_NO_LIMIT = True
|
||||
|
||||
log_level_text = os.getenv("SUPERSET_LOG_LEVEL", "INFO")
|
||||
LOG_LEVEL = getattr(logging, log_level_text.upper(), logging.INFO)
|
||||
|
||||
if os.getenv("CYPRESS_CONFIG") == "true":
|
||||
# When running the service as a cypress backend, we need to import the config
|
||||
# located @ tests/integration_tests/superset_test_config.py
|
||||
base_dir = os.path.dirname(__file__)
|
||||
module_folder = os.path.abspath(
|
||||
os.path.join(base_dir, "../../tests/integration_tests/")
|
||||
)
|
||||
sys.path.insert(0, module_folder)
|
||||
from superset_test_config import * # noqa
|
||||
|
||||
sys.path.pop(0)
|
||||
|
||||
#
|
||||
# Optionally import superset_config_docker.py (which will have been included on
|
||||
# the PYTHONPATH) in order to allow for local settings to be overridden
|
||||
|
||||
@@ -16,6 +16,7 @@ KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
This is the public documentation site for Superset, built using
|
||||
[Docusaurus 2](https://docusaurus.io/). See
|
||||
[CONTRIBUTING.md](../CONTRIBUTING.md#documentation) for documentation on
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
"Fiji",
|
||||
"Finland",
|
||||
"France",
|
||||
"France (with overseas)",
|
||||
"France (regions)",
|
||||
"French Polynesia",
|
||||
"Gabon",
|
||||
|
||||
@@ -25,6 +25,9 @@ Alerts and reports are disabled by default. To turn them on, you need to do some
|
||||
- At least one of those must be configured, depending on what you want to use:
|
||||
- emails: `SMTP_*` settings
|
||||
- Slack messages: `SLACK_API_TOKEN`
|
||||
- Users can customize the email subject by including date code placeholders, which will automatically be replaced with the corresponding UTC date when the email is sent. To enable this functionality, activate the `"DATE_FORMAT_IN_EMAIL_SUBJECT"` [feature flag](/docs/configuration/configuring-superset#feature-flags). This enables date formatting in email subjects, preventing all reporting emails from being grouped into the same thread (optional for the reporting feature).
|
||||
- Use date codes from [strftime.org](https://strftime.org/) to create the email subject.
|
||||
- If no date code is provided, the original string will be used as the email subject.
|
||||
|
||||
##### Disable dry-run mode
|
||||
|
||||
@@ -53,11 +56,14 @@ To send alerts and reports to Slack channels, you need to create a new Slack App
|
||||
- `incoming-webhook`
|
||||
- `files:write`
|
||||
- `chat:write`
|
||||
- `channels:read`
|
||||
- `groups:read`
|
||||
4. At the top of the "OAuth and Permissions" section, click "install to workspace".
|
||||
5. Select a default channel for your app and continue.
|
||||
(You can post to any channel by inviting your Superset app into that channel).
|
||||
6. The app should now be installed in your workspace, and a "Bot User OAuth Access Token" should have been created. Copy that token in the `SLACK_API_TOKEN` variable of your `superset_config.py`.
|
||||
7. Restart the service (or run `superset init`) to pull in the new configuration.
|
||||
7. Ensure the feature flag `ALERT_REPORT_SLACK_V2` is set to True in `superset_config.py`
|
||||
8. Restart the service (or run `superset init`) to pull in the new configuration.
|
||||
|
||||
Note: when you configure an alert or a report, the Slack channel list takes channel names without the leading '#' e.g. use `alerts` instead of `#alerts`.
|
||||
|
||||
@@ -174,10 +180,9 @@ By default, Alerts and Reports are executed as the owner of the alert/report obj
|
||||
just change the config as follows (`admin` in this example):
|
||||
|
||||
```python
|
||||
from superset.tasks.types import ExecutorType
|
||||
from superset.tasks.types import FixedExecutor
|
||||
|
||||
THUMBNAIL_SELENIUM_USER = 'admin'
|
||||
ALERT_REPORTS_EXECUTE_AS = [ExecutorType.SELENIUM]
|
||||
ALERT_REPORTS_EXECUTORS = [FixedExecutor("admin")]
|
||||
```
|
||||
|
||||
Please refer to `ExecutorType` in the codebase for other executor types.
|
||||
|
||||
@@ -13,8 +13,8 @@ SimpleCache (in-memory), or the local filesystem.
|
||||
[Custom cache backends](https://flask-caching.readthedocs.io/en/latest/#custom-cache-backends)
|
||||
are also supported.
|
||||
|
||||
Caching can be configured by providing a dictionaries in
|
||||
`superset_config.py` that comply with[the Flask-Caching config specifications](https://flask-caching.readthedocs.io/en/latest/#configuring-flask-caching).
|
||||
Caching can be configured by providing dictionaries in
|
||||
`superset_config.py` that comply with [the Flask-Caching config specifications](https://flask-caching.readthedocs.io/en/latest/#configuring-flask-caching).
|
||||
|
||||
The following cache configurations can be customized in this way:
|
||||
- Dashboard filter state (required): `FILTER_STATE_CACHE_CONFIG`.
|
||||
@@ -22,7 +22,7 @@ The following cache configurations can be customized in this way:
|
||||
- Metadata cache (optional): `CACHE_CONFIG`
|
||||
- Charting data queried from datasets (optional): `DATA_CACHE_CONFIG`
|
||||
|
||||
For example, to configure the filter state cache using redis:
|
||||
For example, to configure the filter state cache using Redis:
|
||||
|
||||
```python
|
||||
FILTER_STATE_CACHE_CONFIG = {
|
||||
@@ -94,10 +94,9 @@ By default thumbnails are rendered per user, and will fall back to the Selenium
|
||||
To always render thumbnails as a fixed user (`admin` in this example), use the following configuration:
|
||||
|
||||
```python
|
||||
from superset.tasks.types import ExecutorType
|
||||
from superset.tasks.types import FixedExecutor
|
||||
|
||||
THUMBNAIL_SELENIUM_USER = "admin"
|
||||
THUMBNAIL_EXECUTE_AS = [ExecutorType.SELENIUM]
|
||||
THUMBNAIL_EXECUTORS = [FixedExecutor("admin")]
|
||||
```
|
||||
|
||||
|
||||
@@ -130,8 +129,6 @@ def init_thumbnail_cache(app: Flask) -> S3Cache:
|
||||
|
||||
|
||||
THUMBNAIL_CACHE_CONFIG = init_thumbnail_cache
|
||||
# Async selenium thumbnail task will use the following user
|
||||
THUMBNAIL_SELENIUM_USER = "Admin"
|
||||
```
|
||||
|
||||
Using the above example cache keys for dashboards will be `superset_thumb__dashboard__{ID}`. You can
|
||||
|
||||
@@ -37,7 +37,7 @@ ENV SUPERSET_CONFIG_PATH /app/superset_config.py
|
||||
```
|
||||
|
||||
Docker compose deployments handle application configuration differently using specific conventions.
|
||||
Refer to the [docker-compose tips & configuration](/docs/installation/docker-compose#docker-compose-tips--configuration)
|
||||
Refer to the [docker compose tips & configuration](/docs/installation/docker-compose#docker-compose-tips--configuration)
|
||||
for details.
|
||||
|
||||
The following is an example of just a few of the parameters you can set in your `superset_config.py` file:
|
||||
@@ -314,9 +314,9 @@ CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager
|
||||
]
|
||||
```
|
||||
### Keycloak-Specific Configuration using Flask-OIDC
|
||||
If you are using Keycloak as OpenID Connect 1.0 Provider, the above configuration based on [`Authlib`](https://authlib.org/) might not work. In this case using [`Flask-OIDC`](https://https://pypi.org/project/flask-oidc/) is a viable option.
|
||||
If you are using Keycloak as OpenID Connect 1.0 Provider, the above configuration based on [`Authlib`](https://authlib.org/) might not work. In this case using [`Flask-OIDC`](https://pypi.org/project/flask-oidc/) is a viable option.
|
||||
|
||||
Make sure the pip package [`Flask-OIDC`](https://https://pypi.org/project/flask-oidc/) is installed on the webserver. This was succesfully tested using version 2.2.0. This package requires [`Flask-OpenID`](https://pypi.org/project/Flask-OpenID/) as a dependency.
|
||||
Make sure the pip package [`Flask-OIDC`](https://pypi.org/project/flask-oidc/) is installed on the webserver. This was succesfully tested using version 2.2.0. This package requires [`Flask-OpenID`](https://pypi.org/project/Flask-OpenID/) as a dependency.
|
||||
|
||||
The following code defines a new security manager. Add it to a new file named `keycloak_security_manager.py`, placed in the same directory as your `superset_config.py` file.
|
||||
```python
|
||||
|
||||
@@ -55,7 +55,9 @@ are compatible with Superset.
|
||||
| [ClickHouse](/docs/configuration/databases#clickhouse) | `pip install clickhouse-connect` | `clickhousedb://{username}:{password}@{hostname}:{port}/{database}` |
|
||||
| [CockroachDB](/docs/configuration/databases#cockroachdb) | `pip install cockroachdb` | `cockroachdb://root@{hostname}:{port}/{database}?sslmode=disable` |
|
||||
| [Couchbase](/docs/configuration/databases#couchbase) | `pip install couchbase-sqlalchemy` | `couchbase://{username}:{password}@{hostname}:{port}?truststorepath={ssl certificate path}` |
|
||||
| [Dremio](/docs/configuration/databases#dremio) | `pip install sqlalchemy_dremio` | `dremio://user:pwd@host:31010/` |
|
||||
| [CrateDB](/docs/configuration/databases#cratedb) | `pip install sqlalchemy-cratedb` | `crate://{username}:{password}@{hostname}:{port}`, often useful: `?ssl=true/false` or `?schema=testdrive`. |
|
||||
| [Denodo](/docs/configuration/databases#denodo) | `pip install denodo-sqlalchemy` | `denodo://{username}:{password}@{hostname}:{port}/{database}` |
|
||||
| [Dremio](/docs/configuration/databases#dremio) | `pip install sqlalchemy_dremio` |`dremio+flight://{username}:{password}@{host}:32010`, often useful: `?UseEncryption=true/false`. For Legacy ODBC: `dremio+pyodbc://{username}:{password}@{host}:31010` |
|
||||
| [Elasticsearch](/docs/configuration/databases#elasticsearch) | `pip install elasticsearch-dbapi` | `elasticsearch+http://{user}:{password}@{host}:9200/` |
|
||||
| [Exasol](/docs/configuration/databases#exasol) | `pip install sqlalchemy-exasol` | `exa+pyodbc://{username}:{password}@{hostname}:{port}/my_schema?CONNECTIONLCALL=en_US.UTF-8&driver=EXAODBC` |
|
||||
| [Google BigQuery](/docs/configuration/databases#google-bigquery) | `pip install sqlalchemy-bigquery` | `bigquery://{project_id}` |
|
||||
@@ -67,6 +69,7 @@ are compatible with Superset.
|
||||
| [MySQL](/docs/configuration/databases#mysql) | `pip install mysqlclient` | `mysql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
|
||||
| [OceanBase](/docs/configuration/databases#oceanbase) | `pip install oceanbase_py` | `oceanbase://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
|
||||
| [Oracle](/docs/configuration/databases#oracle) | `pip install cx_Oracle` | `oracle://` |
|
||||
| [Parseable](/docs/configuration/databases#parseable) | `pip install sqlalchemy-parseable` | `parseable://<UserName>:<DBPassword>@<Database Host>/<Stream Name>` |
|
||||
| [PostgreSQL](/docs/configuration/databases#postgres) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
|
||||
| [Presto](/docs/configuration/databases#presto) | `pip install pyhive` | `presto://` |
|
||||
| [Rockset](/docs/configuration/databases#rockset) | `pip install rockset-sqlalchemy` | `rockset://<api_key>:@<api_server>` |
|
||||
@@ -79,6 +82,7 @@ are compatible with Superset.
|
||||
| [TimescaleDB](/docs/configuration/databases#timescaledb) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>:<Port>/<Database Name>` |
|
||||
| [Trino](/docs/configuration/databases#trino) | `pip install trino` | `trino://{username}:{password}@{hostname}:{port}/{catalog}` |
|
||||
| [Vertica](/docs/configuration/databases#vertica) | `pip install sqlalchemy-vertica-python` | `vertica+vertica_python://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
|
||||
| [YDB](/docs/configuration/databases#ydb) | `pip install ydb-sqlalchemy` | `ydb://{host}:{port}/{database_name}` |
|
||||
| [YugabyteDB](/docs/configuration/databases#yugabytedb) | `pip install psycopg2` | `postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>` |
|
||||
---
|
||||
|
||||
@@ -393,21 +397,33 @@ couchbase://{username}:{password}@{hostname}:{port}?truststorepath={certificate
|
||||
|
||||
#### CrateDB
|
||||
|
||||
The recommended connector library for CrateDB is
|
||||
[crate](https://pypi.org/project/crate/).
|
||||
You need to install the extras as well for this library.
|
||||
We recommend adding something like the following
|
||||
text to your requirements file:
|
||||
|
||||
The connector library for CrateDB is [sqlalchemy-cratedb].
|
||||
We recommend to add the following item to your `requirements.txt` file:
|
||||
```
|
||||
crate[sqlalchemy]==0.26.0
|
||||
sqlalchemy-cratedb>=0.40.1,<1
|
||||
```
|
||||
|
||||
The expected connection string is formatted as follows:
|
||||
|
||||
An SQLAlchemy connection string for [CrateDB Self-Managed] on localhost,
|
||||
for evaluation purposes, looks like this:
|
||||
```
|
||||
crate://crate@127.0.0.1:4200
|
||||
```
|
||||
An SQLAlchemy connection string for connecting to [CrateDB Cloud] looks like
|
||||
this:
|
||||
```
|
||||
crate://<username>:<password>@<clustername>.cratedb.net:4200/?ssl=true
|
||||
```
|
||||
|
||||
Follow the steps [here](/docs/configuration/databases#installing-database-drivers)
|
||||
to install the CrateDB connector package when setting up Superset locally using
|
||||
Docker Compose.
|
||||
```
|
||||
echo "sqlalchemy-cratedb" >> ./docker/requirements-local.txt
|
||||
```
|
||||
|
||||
[CrateDB Cloud]: https://cratedb.com/product/cloud
|
||||
[CrateDB Self-Managed]: https://cratedb.com/product/self-managed
|
||||
[sqlalchemy-cratedb]: https://pypi.org/project/sqlalchemy-cratedb/
|
||||
|
||||
|
||||
#### Databend
|
||||
@@ -512,6 +528,16 @@ For a connection to a SQL endpoint you need to use the HTTP path from the endpoi
|
||||
```
|
||||
|
||||
|
||||
#### Denodo
|
||||
|
||||
The recommended connector library for Denodo is
|
||||
[denodo-sqlalchemy](https://pypi.org/project/denodo-sqlalchemy/).
|
||||
|
||||
The expected connection string is formatted as follows (default port is 9996):
|
||||
|
||||
```
|
||||
denodo://{username}:{password}@{hostname}:{port}/{database}
|
||||
```
|
||||
|
||||
|
||||
#### Dremio
|
||||
@@ -522,7 +548,7 @@ The recommended connector library for Dremio is
|
||||
The expected connection string for ODBC (Default port is 31010) is formatted as follows:
|
||||
|
||||
```
|
||||
dremio://{username}:{password}@{host}:{port}/{database_name}/dremio?SSL=1
|
||||
dremio+pyodbc://{username}:{password}@{host}:{port}/{database_name}/dremio?SSL=1
|
||||
```
|
||||
|
||||
The expected connection string for Arrow Flight (Dremio 4.9.1+. Default port is 32010) is formatted as follows:
|
||||
@@ -1049,6 +1075,23 @@ The connection string is formatted as follows:
|
||||
oracle://<username>:<password>@<hostname>:<port>
|
||||
```
|
||||
|
||||
#### Parseable
|
||||
|
||||
[Parseable](https://www.parseable.io) is a distributed log analytics database that provides SQL-like query interface for log data. The recommended connector library is [sqlalchemy-parseable](https://github.com/parseablehq/sqlalchemy-parseable).
|
||||
|
||||
The connection string is formatted as follows:
|
||||
|
||||
```
|
||||
parseable://<username>:<password>@<hostname>:<port>/<stream_name>
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
parseable://admin:admin@demo.parseable.com:443/ingress-nginx
|
||||
```
|
||||
|
||||
Note: The stream_name in the URI represents the Parseable logstream you want to query. You can use both HTTP (port 80) and HTTPS (port 443) connections.
|
||||
|
||||
|
||||
#### Apache Pinot
|
||||
@@ -1307,6 +1350,10 @@ Here's what the connection string looks like:
|
||||
starrocks://<User>:<Password>@<Host>:<Port>/<Catalog>.<Database>
|
||||
```
|
||||
|
||||
:::note
|
||||
StarRocks maintains their Superset docuementation [here](https://docs.starrocks.io/docs/integrations/BI_integrations/Superset/).
|
||||
:::
|
||||
|
||||
#### Teradata
|
||||
|
||||
The recommended connector library is
|
||||
@@ -1509,6 +1556,78 @@ Other parameters:
|
||||
- Load Balancer - Backup Host
|
||||
|
||||
|
||||
|
||||
#### YDB
|
||||
|
||||
The recommended connector library for [YDB](https://ydb.tech/) is
|
||||
[ydb-sqlalchemy](https://pypi.org/project/ydb-sqlalchemy/).
|
||||
|
||||
##### Connection String
|
||||
|
||||
The connection string for YDB looks like this:
|
||||
|
||||
```
|
||||
ydb://{host}:{port}/{database_name}
|
||||
```
|
||||
|
||||
##### Protocol
|
||||
You can specify `protocol` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"protocol": "grpcs"
|
||||
}
|
||||
```
|
||||
|
||||
Default is `grpc`.
|
||||
|
||||
|
||||
##### Authentication Methods
|
||||
###### Static Credentials
|
||||
To use `Static Credentials` you should provide `username`/`password` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"credentials": {
|
||||
"username": "...",
|
||||
"password": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
###### Access Token Credentials
|
||||
To use `Access Token Credentials` you should provide `token` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"credentials": {
|
||||
"token": "...",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
##### Service Account Credentials
|
||||
To use Service Account Credentials, you should provide `service_account_json` in the `Secure Extra` field at `Advanced / Security`:
|
||||
|
||||
```
|
||||
{
|
||||
"credentials": {
|
||||
"service_account_json": {
|
||||
"id": "...",
|
||||
"service_account_id": "...",
|
||||
"created_at": "...",
|
||||
"key_algorithm": "...",
|
||||
"public_key": "...",
|
||||
"private_key": "..."
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### YugabyteDB
|
||||
|
||||
[YugabyteDB](https://www.yugabyte.com/) is a distributed SQL database built on top of PostgreSQL.
|
||||
|
||||
@@ -18,15 +18,71 @@ The following keys in `superset_config.py` can be specified to configure CORS:
|
||||
|
||||
- `ENABLE_CORS`: Must be set to `True` in order to enable CORS
|
||||
- `CORS_OPTIONS`: options passed to Flask-CORS
|
||||
([documentation](https://flask-cors.corydolphin.com/en/latest/api.html#extension))
|
||||
([documentation](https://flask-cors.readthedocs.io/en/latest/api.html#extension))
|
||||
|
||||
|
||||
## HTTP headers
|
||||
|
||||
Note that Superset bundles [flask-talisman](https://pypi.org/project/talisman/)
|
||||
Self-descried as a small Flask extension that handles setting HTTP headers that can help
|
||||
Self-described as a small Flask extension that handles setting HTTP headers that can help
|
||||
protect against a few common web application security issues.
|
||||
|
||||
|
||||
## HTML Embedding of Dashboards and Charts
|
||||
|
||||
There are two ways to embed a dashboard: Using the [SDK](https://www.npmjs.com/package/@superset-ui/embedded-sdk) or embedding a direct link. Note that in the latter case everybody who knows the link is able to access the dashboard.
|
||||
|
||||
### Embedding a Public Direct Link to a Dashboard
|
||||
|
||||
This works by first changing the content security policy (CSP) of [flask-talisman](https://github.com/GoogleCloudPlatform/flask-talisman) to allow for certain domains to display Superset content. Then a dashboard can be made publicly accessible, i.e. **bypassing authentication**. Once made public, the dashboard's URL can be added to an iframe in another website's HTML code.
|
||||
|
||||
#### Changing flask-talisman CSP
|
||||
|
||||
Add to `superset_config.py` the entire `TALISMAN_CONFIG` section from `config.py` and include a `frame-ancestors` section:
|
||||
```python
|
||||
TALISMAN_ENABLED = True
|
||||
TALISMAN_CONFIG = {
|
||||
"content_security_policy": {
|
||||
...
|
||||
"frame-ancestors": ["*.my-domain.com", "*.another-domain.com"],
|
||||
...
|
||||
```
|
||||
Restart Superset for this configuration change to take effect.
|
||||
|
||||
#### Making a Dashboard Public
|
||||
|
||||
1. Add the `'DASHBOARD_RBAC': True` [Feature Flag](https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md) to `superset_config.py`
|
||||
2. Add the `Public` role to your dashboard as described [here](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard/#manage-access-to-dashboards)
|
||||
|
||||
#### Embedding a Public Dashboard
|
||||
|
||||
Now anybody can directly access the dashboard's URL. You can embed it in an iframe like so:
|
||||
|
||||
```html
|
||||
<iframe
|
||||
width="600"
|
||||
height="400"
|
||||
seamless
|
||||
frameBorder="0"
|
||||
scrolling="no"
|
||||
src="https://superset.my-domain.com/superset/dashboard/10/?standalone=1&height=400"
|
||||
>
|
||||
</iframe>
|
||||
```
|
||||
#### Embedding a Chart
|
||||
|
||||
A chart's embed code can be generated by going to a chart's edit view and then clicking at the top right on `...` > `Share` > `Embed code`
|
||||
|
||||
### Enabling Embedding via the SDK
|
||||
|
||||
Clicking on `...` next to `EDIT DASHBOARD` on the top right of the dashboard's overview page should yield a drop-down menu including the entry "Embed dashboard".
|
||||
|
||||
To enable this entry, add the following line to the `.env` file:
|
||||
|
||||
```text
|
||||
SUPERSET_FEATURE_EMBEDDED_SUPERSET=true
|
||||
```
|
||||
|
||||
## CSRF settings
|
||||
|
||||
Similarly, [flask-wtf](https://flask-wtf.readthedocs.io/en/0.15.x/config/) is used manage
|
||||
@@ -52,6 +108,10 @@ running a custom auth postback endpoint), you can add the endpoints to `WTF_CSRF
|
||||
|
||||
## Domain Sharding
|
||||
|
||||
:::note
|
||||
Domain Sharding is deprecated as of Superset 5.0.0, and will be removed in Superset 6.0.0. Please Enable HTTP2 to keep more open connections per domain.
|
||||
:::
|
||||
|
||||
Chrome allows up to 6 open connections per domain at a time. When there are more than 6 slices in
|
||||
dashboard, a lot of time fetch requests are queued up and wait for next available socket.
|
||||
[PR 5039](https://github.com/apache/superset/pull/5039) adds domain sharding to Superset,
|
||||
|
||||
@@ -17,8 +17,8 @@ made available in the Jinja context:
|
||||
|
||||
- `columns`: columns which to group by in the query
|
||||
- `filter`: filters applied in the query
|
||||
- `from_dttm`: start `datetime` value from the selected time range (`None` if undefined)
|
||||
- `to_dttm`: end `datetime` value from the selected time range (`None` if undefined)
|
||||
- `from_dttm`: start `datetime` value from the selected time range (`None` if undefined) (deprecated beginning in version 5.0, use `get_time_filter` instead)
|
||||
- `to_dttm`: end `datetime` value from the selected time range (`None` if undefined). (deprecated beginning in version 5.0, use `get_time_filter` instead)
|
||||
- `groupby`: columns which to group by in the query (deprecated)
|
||||
- `metrics`: aggregate expressions in the query
|
||||
- `row_limit`: row limit of the query
|
||||
@@ -48,12 +48,15 @@ WHERE (
|
||||
{% if to_dttm is not none %}
|
||||
dttm_col < '{{ to_dttm }}' AND
|
||||
{% endif %}
|
||||
true
|
||||
1 = 1
|
||||
)
|
||||
```
|
||||
|
||||
Note how the Jinja parameters are called within double brackets in the query, and without in the
|
||||
logic blocks.
|
||||
The `1 = 1` at the end ensures a value is present for the `WHERE` clause even when
|
||||
the time filter is not set. For many database engines, this could be replaced with `true`.
|
||||
|
||||
Note that the Jinja parameters are called within _double_ brackets in the query and with
|
||||
_single_ brackets in the logic blocks.
|
||||
|
||||
To add custom functionality to the Jinja context, you need to overload the default Jinja
|
||||
context in your environment by defining the `JINJA_CONTEXT_ADDONS` in your superset configuration
|
||||
@@ -94,7 +97,7 @@ There is a special ``_filters`` parameter which can be used to test filters used
|
||||
```sql
|
||||
SELECT action, count(*) as times
|
||||
FROM logs
|
||||
WHERE action in {{ filter_values('action_type'))|where_in }}
|
||||
WHERE action in {{ filter_values('action_type')|where_in }}
|
||||
GROUP BY action
|
||||
```
|
||||
|
||||
@@ -346,6 +349,78 @@ Here's a concrete example:
|
||||
order by lineage, level
|
||||
```
|
||||
|
||||
**Time Filter**
|
||||
|
||||
The `{{ get_time_filter() }}` macro returns the time filter applied to a specific column. This is useful if you want
|
||||
to handle time filters inside the virtual dataset, as by default the time filter is placed on the outer query. This can
|
||||
considerably improve performance, as many databases and query engines are able to optimize the query better
|
||||
if the temporal filter is placed on the inner query, as opposed to the outer query.
|
||||
|
||||
The macro takes the following parameters:
|
||||
- `column`: Name of the temporal column. Leave undefined to reference the time range from a Dashboard Native Time Range
|
||||
filter (when present).
|
||||
- `default`: The default value to fall back to if the time filter is not present, or has the value `No filter`
|
||||
- `target_type`: The target temporal type as recognized by the target database (e.g. `TIMESTAMP`, `DATE` or
|
||||
`DATETIME`). If `column` is defined, the format will default to the type of the column. This is used to produce
|
||||
the format of the `from_expr` and `to_expr` properties of the returned `TimeFilter` object.
|
||||
- `strftime`: format using the `strftime` method of `datetime` for custom time formatting.
|
||||
([see docs for valid format codes](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes)).
|
||||
When defined `target_type` will be ignored.
|
||||
- `remove_filter`: When set to true, mark the filter as processed, removing it from the outer query. Useful when a
|
||||
filter should only apply to the inner query.
|
||||
|
||||
The return type has the following properties:
|
||||
- `from_expr`: the start of the time filter (if any)
|
||||
- `to_expr`: the end of the time filter (if any)
|
||||
- `time_range`: The applied time range
|
||||
|
||||
Here's a concrete example using the `logs` table from the Superset metastore:
|
||||
|
||||
```
|
||||
{% set time_filter = get_time_filter("dttm", remove_filter=True) %}
|
||||
{% set from_expr = time_filter.from_expr %}
|
||||
{% set to_expr = time_filter.to_expr %}
|
||||
{% set time_range = time_filter.time_range %}
|
||||
SELECT
|
||||
*,
|
||||
'{{ time_range }}' as time_range
|
||||
FROM logs
|
||||
{% if from_expr or to_expr %}WHERE 1 = 1
|
||||
{% if from_expr %}AND dttm >= {{ from_expr }}{% endif %}
|
||||
{% if to_expr %}AND dttm < {{ to_expr }}{% endif %}
|
||||
{% endif %}
|
||||
```
|
||||
|
||||
Assuming we are creating a table chart with a simple `COUNT(*)` as the metric with a time filter `Last week` on the
|
||||
`dttm` column, this would render the following query on Postgres (note the formatting of the temporal filters, and
|
||||
the absence of time filters on the outer query):
|
||||
|
||||
```
|
||||
SELECT COUNT(*) AS count
|
||||
FROM
|
||||
(SELECT *,
|
||||
'Last week' AS time_range
|
||||
FROM public.logs
|
||||
WHERE 1 = 1
|
||||
AND dttm >= TO_TIMESTAMP('2024-08-27 00:00:00.000000', 'YYYY-MM-DD HH24:MI:SS.US')
|
||||
AND dttm < TO_TIMESTAMP('2024-09-03 00:00:00.000000', 'YYYY-MM-DD HH24:MI:SS.US')) AS virtual_table
|
||||
ORDER BY count DESC
|
||||
LIMIT 1000;
|
||||
```
|
||||
|
||||
When using the `default` parameter, the templated query can be simplified, as the endpoints will always be defined
|
||||
(to use a fixed time range, you can also use something like `default="2024-08-27 : 2024-09-03"`)
|
||||
```
|
||||
{% set time_filter = get_time_filter("dttm", default="Last week", remove_filter=True) %}
|
||||
SELECT
|
||||
*,
|
||||
'{{ time_filter.time_range }}' as time_range
|
||||
FROM logs
|
||||
WHERE
|
||||
dttm >= {{ time_filter.from_expr }}
|
||||
AND dttm < {{ time_filter.to_expr }}
|
||||
```
|
||||
|
||||
**Datasets**
|
||||
|
||||
It's possible to query physical and virtual datasets using the `dataset` macro. This is useful if you've defined computed columns and metrics on your datasets, and want to reuse the definition in adhoc SQL Lab queries.
|
||||
|
||||
@@ -6,13 +6,13 @@ version: 1
|
||||
# Setting up a Development Environment
|
||||
|
||||
The documentation in this section is a bit of a patchwork of knowledge representing the
|
||||
multitude of ways that exist to run Superset (`docker-compose`, just "docker", on "metal", using
|
||||
multitude of ways that exist to run Superset (`docker compose`, just "docker", on "metal", using
|
||||
a Makefile).
|
||||
|
||||
:::note
|
||||
Now we have evolved to recommend and support `docker-compose` more actively as the main way
|
||||
Now we have evolved to recommend and support `docker compose` more actively as the main way
|
||||
to run Superset for development and preserve your sanity. **Most people should stick to
|
||||
the first few sections - ("Fork & Clone", "docker-compose" and "Installing Dev Tools")**
|
||||
the first few sections - ("Fork & Clone", "docker compose" and "Installing Dev Tools")**
|
||||
:::
|
||||
|
||||
## Fork and Clone
|
||||
@@ -27,12 +27,14 @@ git clone git@github.com:your-username/superset.git
|
||||
cd superset
|
||||
```
|
||||
|
||||
## docker-compose (recommended!)
|
||||
## docker compose (recommended!)
|
||||
|
||||
Setting things up to squeeze an "hello world" into any part of Superset should be as simple as
|
||||
Setting things up to squeeze a "hello world" into any part of Superset should be as simple as
|
||||
|
||||
```bash
|
||||
docker-compose up
|
||||
# getting docker compose to fire up services, and rebuilding if some docker layers have changed
|
||||
# using the `--build` suffix may be slower and optional if layers like py dependencies haven't changed
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Note that:
|
||||
@@ -45,7 +47,7 @@ Note that:
|
||||
- **Postgres** as the metadata database and to store example datasets, charts and dashboards which
|
||||
should be populated upon startup
|
||||
- **Redis** as the message queue for our async backend and caching backend
|
||||
- It'll load up examples into the database upon first startup
|
||||
- It'll load up examples into the database upon the first startup
|
||||
- all other details and pointers available in
|
||||
[docker-compose.yml](https://github.com/apache/superset/blob/master/docker-compose.yml)
|
||||
- The local repository is mounted within the services, meaning updating
|
||||
@@ -53,23 +55,77 @@ Note that:
|
||||
- Superset is served at localhost:8088/
|
||||
- You can login with admin/admin
|
||||
|
||||
:::note
|
||||
Installing and building Node modules for Apache Superset inside `superset-node` can take a
|
||||
significant amount of time. This is normal due to the size of the dependencies. Please be
|
||||
patient while the process completes, as long wait times do not indicate an issue with your setup.
|
||||
If delays seem excessive, check your internet connection or system resources.
|
||||
:::
|
||||
|
||||
:::caution
|
||||
Since `docker-compose` is primarily designed to run a set of containers on **a single host**
|
||||
Since `docker compose` is primarily designed to run a set of containers on **a single host**
|
||||
and can't credibly support **high availability** as a result, we do not support nor recommend
|
||||
using our `docker-compose` constructs to support production-type use-cases. For single host
|
||||
using our `docker compose` constructs to support production-type use-cases. For single host
|
||||
environments, we recommend using [minikube](https://minikube.sigs.k8s.io/docs/start/) along
|
||||
our [installing on k8s](https://superset.apache.org/docs/installation/running-on-kubernetes)
|
||||
documentation.
|
||||
configured to be secure.
|
||||
:::
|
||||
|
||||
|
||||
### Supported environment variables
|
||||
|
||||
Affecting the Docker build process:
|
||||
- **SUPERSET_BUILD_TARGET (default=dev):** which --target to build, either `lean` or `dev` are commonly used
|
||||
- **INCLUDE_FIREFOX (default=false):** whether to include the Firefox headless browser in the build
|
||||
- **INCLUDE_CHROMIUM (default=false):** whether to include the Firefox headless browser in the build
|
||||
- **BUILD_TRANSLATIONS(default=false):** whether to compile the translations from the .po files available
|
||||
- **SUPERSET_LOAD_EXAMPLES (default=yes):** whether to load the examples into the database upon startup,
|
||||
save some precious time on startup by `SUPERSET_LOAD_EXAMPLES=no docker compose up`
|
||||
- **SUPERSET_LOG_LEVEL (default=info)**: Can be set to debug, info, warning, error, critical
|
||||
for more verbose logging
|
||||
|
||||
For more env vars that affect your configuration, see this
|
||||
[superset_config.py](https://github.com/apache/superset/blob/master/docker/pythonpath_dev/superset_config.py)
|
||||
used in the `docker compose` context to assign env vars to the superset configuration.
|
||||
|
||||
### Accessing the postgres database
|
||||
Sometimes it's useful to access the database in the docker container directly.
|
||||
You can enter a `psql` shell (the official Postgres client) by running the following command:
|
||||
|
||||
```bash
|
||||
docker compose exec db psql -U superset
|
||||
```
|
||||
|
||||
Also note that the database is exposed on port 5432, so you can connect to it using your favorite
|
||||
Postgres client or even SQL Lab itselft directly in Superset by creating a new database connection
|
||||
to `localhost:5432`.
|
||||
|
||||
### Nuking the postgres database
|
||||
|
||||
At times, it's possible to end up with your development database in a bad state, it's
|
||||
common while switching branches that contain migrations for instance, where the database
|
||||
version stamp that `alembic` manages is no longer available after switching branch.
|
||||
|
||||
In that case, the easy solution is to nuke the postgres db and start fresh. Note that the full
|
||||
state of the database will be gone after doing this, so be cautious.
|
||||
|
||||
```bash
|
||||
# first stop docker-compose if it's running
|
||||
docker-compose down
|
||||
# delete the volume containing the database
|
||||
docker volume rm superset_db_home
|
||||
# restart docker-compose, which will init a fresh database and load examples
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
## Installing Development Tools
|
||||
|
||||
:::note
|
||||
While docker-compose simplifies a lot of the setup, there are still
|
||||
While `docker compose` simplifies a lot of the setup, there are still
|
||||
many things you'll want to set up locally to power your IDE, and things like
|
||||
**commit hooks**, **linters**, and **test-runners**. Note that you can do these
|
||||
things inside docker images with commands like `docker-compose exec superset_app bash` for
|
||||
things inside docker images with commands like `docker compose exec superset_app bash` for
|
||||
instance, but many people like to run that tooling from their host.
|
||||
:::
|
||||
|
||||
@@ -77,7 +133,8 @@ instance, but many people like to run that tooling from their host.
|
||||
|
||||
Assuming you already have a way to setup your python environments
|
||||
like `pyenv`, `virtualenv` or something else, all you should have to
|
||||
do is to install our dev, pinned python requirements bundle
|
||||
do is to install our dev, pinned python requirements bundle, after installing
|
||||
the prerequisites mentioned in [OS Dependencies](https://superset.apache.org/docs/installation/pypi/#os-dependencies)
|
||||
|
||||
```bash
|
||||
pip install -r requirements/development.txt
|
||||
@@ -136,12 +193,11 @@ You can also run the pre-commit checks manually in various ways:
|
||||
Replace `<hook_id>` with the ID of the specific hook you want to run. You can find the list
|
||||
of available hooks in the `.pre-commit-config.yaml` file.
|
||||
|
||||
|
||||
## Alternatives to docker-compose
|
||||
## Alternatives to `docker compose`
|
||||
|
||||
:::caution
|
||||
This part of the documentation is a patchwork of information related to setting up
|
||||
development environments without `docker-compose` and are documented/supported to varying
|
||||
development environments without `docker compose` and is documented/supported to varying
|
||||
degrees. It's been difficult to maintain this wide array of methods and insure they're
|
||||
functioning across environments.
|
||||
:::
|
||||
@@ -181,11 +237,11 @@ superset load-examples
|
||||
|
||||
# Start the Flask dev web server from inside your virtualenv.
|
||||
# Note that your page may not have CSS at this point.
|
||||
# See instructions below how to build the front-end assets.
|
||||
# See instructions below on how to build the front-end assets.
|
||||
superset run -p 8088 --with-threads --reload --debugger --debug
|
||||
```
|
||||
|
||||
Or you can install via our Makefile
|
||||
Or you can install it via our Makefile
|
||||
|
||||
```bash
|
||||
# Create a virtual environment and activate it (recommended)
|
||||
@@ -203,7 +259,7 @@ $ make pre-commit
|
||||
```
|
||||
|
||||
**Note: the FLASK_APP env var should not need to be set, as it's currently controlled
|
||||
via `.flaskenv`, however if needed, it should be set to `superset.app:create_app()`**
|
||||
via `.flaskenv`, however, if needed, it should be set to `superset.app:create_app()`**
|
||||
|
||||
If you have made changes to the FAB-managed templates, which are not built the same way as the newer, React-powered front-end assets, you need to start the app without the `--with-threads` argument like so:
|
||||
`superset run -p 8088 --reload --debugger --debug`
|
||||
@@ -216,19 +272,19 @@ If you add a new requirement or update an existing requirement (per the `install
|
||||
$ python3 -m venv venv
|
||||
$ source venv/bin/activate
|
||||
$ python3 -m pip install -r requirements/development.txt
|
||||
$ pip-compile-multi --no-upgrade
|
||||
$ ./scripts/uv-pip-compile.sh
|
||||
```
|
||||
|
||||
When upgrading the version number of a single package, you should run `pip-compile-multi` with the `-P` flag:
|
||||
When upgrading the version number of a single package, you should run `./scripts/uv-pip-compile.sh` with the `-P` flag:
|
||||
|
||||
```bash
|
||||
$ pip-compile-multi -P my-package
|
||||
$ ./scripts/uv-pip-compile.sh -P some-package-to-upgrade
|
||||
```
|
||||
|
||||
To bring all dependencies up to date as per the restrictions defined in `setup.py` and `requirements/*.in`, run pip-compile-multi` without any flags:
|
||||
To bring all dependencies up to date as per the restrictions defined in `setup.py` and `requirements/*.in`, run `./scripts/uv-pip-compile.sh --upgrade`
|
||||
|
||||
```bash
|
||||
$ pip-compile-multi
|
||||
$ ./scripts/uv-pip-compile.sh --upgrade
|
||||
```
|
||||
|
||||
This should be done periodically, but it is recommended to do thorough manual testing of the application to ensure no breaking changes have been introduced that aren't caught by the unit and integration tests.
|
||||
@@ -306,7 +362,7 @@ cd superset-frontend
|
||||
npm ci
|
||||
```
|
||||
|
||||
Note that Superset uses [Scarf](https://docs.scarf.sh) to capture telemetry/analytics about versions being installed, including the `scarf-js` npm package and an analytics pixel. As noted elsewhere in this documentation, Scarf gathers aggregated stats for the sake of security/release strategy, and does not capture/retain PII. [You can read here](https://docs.scarf.sh/package-analytics/) about the `scarf-js` package, and various means to opt out of it, but you can opt out of the npm package _and_ the pixel by setting the `SCARF_ANALYTICS` environment variable to `false` or opt out of the pixel by adding this setting in `superset-frontent/package.json`:
|
||||
Note that Superset uses [Scarf](https://docs.scarf.sh) to capture telemetry/analytics about versions being installed, including the `scarf-js` npm package and an analytics pixel. As noted elsewhere in this documentation, Scarf gathers aggregated stats for the sake of security/release strategy and does not capture/retain PII. [You can read here](https://docs.scarf.sh/package-analytics/) about the `scarf-js` package, and various means to opt out of it, but you can opt out of the npm package _and_ the pixel by setting the `SCARF_ANALYTICS` environment variable to `false` or opt out of the pixel by adding this setting in `superset-frontent/package.json`:
|
||||
|
||||
```json
|
||||
// your-package/package.json
|
||||
@@ -334,7 +390,7 @@ Error: ENOSPC: System limit for number of file watchers reached
|
||||
```
|
||||
|
||||
The error is thrown because the number of files monitored by the system has reached the limit.
|
||||
You can address this this error by increasing the number of inotify watchers.
|
||||
You can address this error by increasing the number of inotify watchers.
|
||||
|
||||
The current value of max watches can be checked with:
|
||||
|
||||
@@ -345,13 +401,13 @@ cat /proc/sys/fs/inotify/max_user_watches
|
||||
Edit the file `/etc/sysctl.conf` to increase this value.
|
||||
The value needs to be decided based on the system memory [(see this StackOverflow answer for more context)](https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux).
|
||||
|
||||
Open the file in editor and add a line at the bottom specifying the max watches values.
|
||||
Open the file in an editor and add a line at the bottom specifying the max watches values.
|
||||
|
||||
```bash
|
||||
fs.inotify.max_user_watches=524288
|
||||
```
|
||||
|
||||
Save the file and exit editor.
|
||||
Save the file and exit the editor.
|
||||
To confirm that the change succeeded, run the following command to load the updated value of max_user_watches from `sysctl.conf`:
|
||||
|
||||
```bash
|
||||
@@ -449,97 +505,124 @@ pre-commit install
|
||||
|
||||
A series of checks will now run when you make a git commit.
|
||||
|
||||
Alternatively it is possible to run pre-commit via tox:
|
||||
|
||||
```bash
|
||||
tox -e pre-commit
|
||||
```
|
||||
|
||||
Or by running pre-commit manually:
|
||||
|
||||
```bash
|
||||
pre-commit run --all-files
|
||||
```
|
||||
|
||||
## Linting
|
||||
|
||||
### Python
|
||||
See [how tos](/docs/contributing/howtos#linting)
|
||||
|
||||
We use [Pylint](https://pylint.org/) for linting which can be invoked via:
|
||||
|
||||
## GitHub Actions and `act`
|
||||
|
||||
:::tip
|
||||
`act` compatibility of Superset's GHAs is not fully tested. Running `act` locally may or may not
|
||||
work for different actions, and may require fine tunning and local secret-handling.
|
||||
For those more intricate GHAs that are tricky to run locally, we recommend iterating
|
||||
directly on GHA's infrastructure, by pushing directly on a branch and monitoring GHA logs.
|
||||
For more targetted iteration, see the `gh workflow run --ref {BRANCH}` subcommand of the GitHub CLI.
|
||||
:::
|
||||
|
||||
For automation and CI/CD, Superset makes extensive use of GitHub Actions (GHA). You
|
||||
can find all of the workflows and other assets under the `.github/` folder. This includes:
|
||||
- running the backend unit test suites (`tests/`)
|
||||
- running the frontend test suites (`superset-frontend/src/**.*.test.*`)
|
||||
- running our Cypress end-to-end tests (`superset-frontend/cypress-base/`)
|
||||
- linting the codebase, including all Python, Typescript and Javascript, yaml and beyond
|
||||
- checking for all sorts of other rules conventions
|
||||
|
||||
When you open a pull request (PR), the appropriate GitHub Actions (GHA) workflows will
|
||||
automatically run depending on the changes in your branch. It's perfectly reasonable
|
||||
(and required!) to rely on this automation. However, the downside is that it's mostly an
|
||||
all-or-nothing approach and doesn't provide much control to target specific tests or
|
||||
iterate quickly.
|
||||
|
||||
At times, it may be more convenient to run GHA workflows locally. For that purpose
|
||||
we use [act](https://github.com/nektos/act), a tool that allows you to run GitHub Actions (GHA)
|
||||
workflows locally. It simulates the GitHub Actions environment, enabling developers to
|
||||
test and debug workflows on their local machines before pushing changes to the repository. More
|
||||
on how to use it in the next section.
|
||||
|
||||
:::note
|
||||
In both GHA and `act`, we can run a more complex matrix for our tests, executing against different
|
||||
database engines (PostgreSQL, MySQL, SQLite) and different versions of Python.
|
||||
This enables us to ensure compatibility and stability across various environments.
|
||||
:::
|
||||
|
||||
### Using `act`
|
||||
|
||||
First, install `act` -> https://nektosact.com/
|
||||
|
||||
To list the workflows, simply:
|
||||
|
||||
```bash
|
||||
# for python
|
||||
tox -e pylint
|
||||
act --list
|
||||
```
|
||||
|
||||
In terms of best practices please avoid blanket disabling of Pylint messages globally (via `.pylintrc`) or top-level within the file header, albeit there being a few exceptions. Disabling should occur inline as it prevents masking issues and provides context as to why said message is disabled.
|
||||
|
||||
Additionally, the Python code is auto-formatted using [Black](https://github.com/python/black) which
|
||||
is configured as a pre-commit hook. There are also numerous [editor integrations](https://black.readthedocs.io/en/stable/integrations/editors.html)
|
||||
|
||||
### TypeScript
|
||||
To run a specific workflow:
|
||||
|
||||
```bash
|
||||
cd superset-frontend
|
||||
npm ci
|
||||
# run eslint checks
|
||||
npm run eslint -- .
|
||||
# run tsc (typescript) checks
|
||||
npm run type
|
||||
act pull_request --job {workflow_name} --secret GITHUB_TOKEN=$GITHUB_TOKEN --container-architecture linux/amd64
|
||||
```
|
||||
|
||||
If using the eslint extension with vscode, put the following in your workspace `settings.json` file:
|
||||
In the example above, notice that:
|
||||
- we target a specific workflow, using `--job`
|
||||
- we pass a secret using `--secret`, as many jobs require read access (public) to the repo
|
||||
- we simulate a `pull_request` event by specifying it as the first arg,
|
||||
similarly, we could simulate a `push` event or something else
|
||||
- we specify `--container-architecture`, which tends to emulate GHA more reliably
|
||||
|
||||
```json
|
||||
"eslint.workingDirectories": [
|
||||
"superset-frontend"
|
||||
]
|
||||
```
|
||||
:::note
|
||||
`act` is a rich tool that offers all sorts of features, allowing you to simulate different
|
||||
events (pull_request, push, ...), semantics around passing secrets where required and much
|
||||
more. For more information, refer to [act's documentation](https://nektosact.com/)
|
||||
:::
|
||||
|
||||
:::note
|
||||
Some jobs require secrets to interact with external systems and accounts that you may
|
||||
not have in your possession. In those cases you may have to rely on remote CI or parameterize the
|
||||
job further to target a different environment/sandbox or your own alongside the related
|
||||
secrets.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Testing
|
||||
|
||||
### Python Testing
|
||||
|
||||
All python tests are carried out in [tox](https://tox.readthedocs.io/en/latest/index.html)
|
||||
a standardized testing framework.
|
||||
All python tests can be run with any of the tox [environments](https://tox.readthedocs.io/en/latest/example/basic.html#a-simple-tox-ini-default-environments), via,
|
||||
#### Unit Tests
|
||||
|
||||
For unit tests located in `tests/unit_tests/`, it's usually easy to simply run the script locally using:
|
||||
|
||||
```bash
|
||||
tox -e <environment>
|
||||
pytest tests/unit_tests/*
|
||||
```
|
||||
|
||||
For example,
|
||||
#### Integration Tests
|
||||
|
||||
For more complex pytest-defined integration tests (not to be confused with our end-to-end Cypress tests), many tests will require having a working test environment. Some tests require a database, Celery, and potentially other services or libraries installed.
|
||||
|
||||
### Running Tests with `act`
|
||||
|
||||
To run integration tests locally using `act`, ensure you have followed the setup instructions from the [GitHub Actions and `act`](#github-actions-and-act) section. You can run specific workflows or jobs that include integration tests. For example:
|
||||
|
||||
```bash
|
||||
tox -e py38
|
||||
act --job test-python-38 --secret GITHUB_TOKEN=$GITHUB_TOKEN --event pull_request --container-architecture linux/amd64
|
||||
```
|
||||
|
||||
Alternatively, you can run all tests in a single file via,
|
||||
#### Running locally using a test script
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py
|
||||
```
|
||||
|
||||
or for a specific test via,
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py::TestClassName::test_method_name
|
||||
```
|
||||
|
||||
Note that the test environment uses a temporary directory for defining the
|
||||
SQLite databases which will be cleared each time before the group of test
|
||||
commands are invoked.
|
||||
There is also a utility script included in the Superset codebase to run Python integration tests. The [readme can be found here](https://github.com/apache/superset/tree/master/scripts/tests).
|
||||
|
||||
There is also a utility script included in the Superset codebase to run python integration tests. The [readme can be
|
||||
found here](https://github.com/apache/superset/tree/master/scripts/tests)
|
||||
|
||||
To run all integration tests for example, run this script from the root directory:
|
||||
To run all integration tests, for example, run this script from the root directory:
|
||||
|
||||
```bash
|
||||
scripts/tests/run.sh
|
||||
```
|
||||
|
||||
You can run unit tests found in './tests/unit_tests' for example with pytest. It is a simple way to run an isolated test that doesn't need any database setup
|
||||
You can run unit tests found in `./tests/unit_tests` with pytest. It is a simple way to run an isolated test that doesn't need any database setup:
|
||||
|
||||
```bash
|
||||
pytest ./link_to_test.py
|
||||
@@ -560,71 +643,6 @@ To run a single test file:
|
||||
npm run test -- path/to/file.js
|
||||
```
|
||||
|
||||
### Integration Testing
|
||||
|
||||
We use [Cypress](https://www.cypress.io/) for integration tests. Tests can be run by `tox -e cypress`. To open Cypress and explore tests first setup and run test server:
|
||||
|
||||
```bash
|
||||
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
|
||||
export SUPERSET_TESTENV=true
|
||||
export CYPRESS_BASE_URL="http://localhost:8081"
|
||||
superset db upgrade
|
||||
superset load_test_users
|
||||
superset load-examples --load-test-data
|
||||
superset init
|
||||
superset run --port 8081
|
||||
```
|
||||
|
||||
Run Cypress tests:
|
||||
|
||||
```bash
|
||||
cd superset-frontend
|
||||
npm run build-instrumented
|
||||
|
||||
cd cypress-base
|
||||
npm install
|
||||
|
||||
# run tests via headless Chrome browser (requires Chrome 64+)
|
||||
npm run cypress-run-chrome
|
||||
|
||||
# run tests from a specific file
|
||||
npm run cypress-run-chrome -- --spec cypress/e2e/explore/link.test.ts
|
||||
|
||||
# run specific file with video capture
|
||||
npm run cypress-run-chrome -- --spec cypress/e2e/dashboard/index.test.js --config video=true
|
||||
|
||||
# to open the cypress ui
|
||||
npm run cypress-debug
|
||||
|
||||
# to point cypress to a url other than the default (http://localhost:8088) set the environment variable before running the script
|
||||
# e.g., CYPRESS_BASE_URL="http://localhost:9000"
|
||||
CYPRESS_BASE_URL=<your url> npm run cypress open
|
||||
```
|
||||
|
||||
See [`superset-frontend/cypress_build.sh`](https://github.com/apache/superset/blob/master/superset-frontend/cypress_build.sh).
|
||||
|
||||
As an alternative you can use docker compose environment for testing:
|
||||
|
||||
Make sure you have added below line to your /etc/hosts file:
|
||||
`127.0.0.1 db`
|
||||
|
||||
If you already have launched Docker environment please use the following command to assure a fresh database instance:
|
||||
`docker compose down -v`
|
||||
|
||||
Launch environment:
|
||||
|
||||
`CYPRESS_CONFIG=true docker compose up`
|
||||
|
||||
It will serve backend and frontend on port 8088.
|
||||
|
||||
Run Cypress tests:
|
||||
|
||||
```bash
|
||||
cd cypress-base
|
||||
npm install
|
||||
npm run cypress open
|
||||
```
|
||||
|
||||
### Debugging Server App
|
||||
|
||||
#### Local
|
||||
@@ -652,12 +670,12 @@ For debugging locally using VSCode, you can configure a launch configuration fil
|
||||
}
|
||||
```
|
||||
|
||||
#### Raw Docker (without docker-compose)
|
||||
#### Raw Docker (without `docker compose`)
|
||||
|
||||
Follow these instructions to debug the Flask app running inside a docker container. Note that
|
||||
this will run a barebones Superset web server,
|
||||
|
||||
First add the following to the ./docker-compose.yaml file
|
||||
First, add the following to the ./docker-compose.yaml file
|
||||
|
||||
```diff
|
||||
superset:
|
||||
@@ -681,7 +699,7 @@ superset:
|
||||
Start Superset as usual
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Install the required libraries and packages to the docker container
|
||||
@@ -771,7 +789,7 @@ See (set capabilities for a container)[https://kubernetes.io/docs/tasks/configur
|
||||
|
||||
Once the pod is running as root and has the SYS_PTRACE capability it will be able to debug the Flask app.
|
||||
|
||||
You can follow the same instructions as in the docker-compose. Enter the pod and install the required library and packages; gdb, netstat and debugpy.
|
||||
You can follow the same instructions as in `docker compose`. Enter the pod and install the required library and packages; gdb, netstat and debugpy.
|
||||
|
||||
Often in a Kubernetes environment nodes are not addressable from outside the cluster. VSCode will thus be unable to remotely connect to port 5678 on a Kubernetes node. In order to do this you need to create a tunnel that port forwards 5678 to your local machine.
|
||||
|
||||
@@ -779,11 +797,11 @@ Often in a Kubernetes environment nodes are not addressable from outside the clu
|
||||
kubectl port-forward pod/superset-<some random id> 5678:5678
|
||||
```
|
||||
|
||||
You can now launch your VSCode debugger with the same config as above. VSCode will connect to to 127.0.0.1:5678 which is forwarded by kubectl to your remote kubernetes POD.
|
||||
You can now launch your VSCode debugger with the same config as above. VSCode will connect to 127.0.0.1:5678 which is forwarded by kubectl to your remote kubernetes POD.
|
||||
|
||||
### Storybook
|
||||
|
||||
Superset includes a [Storybook](https://storybook.js.org/) to preview the layout/styling of various Superset components, and variations thereof. To open and view the Storybook:
|
||||
Superset includes a [Storybook](https://storybook.js.org/) to preview the layout/styling of various Superset components and variations thereof. To open and view the Storybook:
|
||||
|
||||
```bash
|
||||
cd superset-frontend
|
||||
@@ -933,7 +951,7 @@ To fix it:
|
||||
from alembic import op
|
||||
```
|
||||
|
||||
Alternatively you may also run `superset db merge` to create a migration script
|
||||
Alternatively, you may also run `superset db merge` to create a migration script
|
||||
just for merging the heads.
|
||||
|
||||
```bash
|
||||
|
||||
@@ -170,31 +170,10 @@ npm run dev-server
|
||||
|
||||
### Python Testing
|
||||
|
||||
All python tests are carried out in [tox](https://tox.readthedocs.io/en/latest/index.html)
|
||||
a standardized testing framework.
|
||||
All python tests can be run with any of the tox [environments](https://tox.readthedocs.io/en/latest/example/basic.html#a-simple-tox-ini-default-environments), via,
|
||||
`pytest`, backend by docker-compose is how we recommend running tests locally.
|
||||
|
||||
```bash
|
||||
tox -e <environment>
|
||||
```
|
||||
|
||||
For example,
|
||||
|
||||
```bash
|
||||
tox -e py38
|
||||
```
|
||||
|
||||
Alternatively, you can run all tests in a single file via,
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py
|
||||
```
|
||||
|
||||
or for a specific test via,
|
||||
|
||||
```bash
|
||||
tox -e <environment> -- tests/test_file.py::TestClassName::test_method_name
|
||||
```
|
||||
For a more complex test matrix (against different database backends, python versions, ...) you
|
||||
can rely on our GitHub Actions by simply opening a draft pull request.
|
||||
|
||||
Note that the test environment uses a temporary directory for defining the
|
||||
SQLite databases which will be cleared each time before the group of test
|
||||
@@ -246,40 +225,37 @@ npm run test -- path/to/file.js
|
||||
|
||||
### e2e Integration Testing
|
||||
|
||||
We use [Cypress](https://www.cypress.io/) for end-to-end integration
|
||||
tests. One easy option to get started quickly is to leverage `tox` to
|
||||
run the whole suite in an isolated environment.
|
||||
For e2e testing, we recommend that you use a `docker compose` backend
|
||||
|
||||
```bash
|
||||
tox -e cypress
|
||||
CYPRESS_CONFIG=true docker compose up --build
|
||||
```
|
||||
`docker compose` will get to work and expose a Cypress-ready Superset app.
|
||||
This app uses a different database schema (`superset_cypress`) to keep it isolated from
|
||||
your other dev environmen(s)t, a specific set of examples, and a set of configurations that
|
||||
aligns with the expectations within the end-to-end tests. Also note that it's served on a
|
||||
different port than the default port for the backend (`8088`).
|
||||
|
||||
Now in another terminal, let's get ready to execute some Cypress commands. First, tell cypress
|
||||
to connect to the Cypress-ready Superset backend.
|
||||
|
||||
```
|
||||
CYPRESS_BASE_URL=http://localhost:8081
|
||||
```
|
||||
|
||||
Alternatively, you can go lower level and set things up in your
|
||||
development environment by following these steps:
|
||||
|
||||
First set up a python/flask backend:
|
||||
|
||||
```bash
|
||||
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
|
||||
export SUPERSET_TESTENV=true
|
||||
export CYPRESS_BASE_URL="http://localhost:8081"
|
||||
superset db upgrade
|
||||
superset load_test_users
|
||||
superset init
|
||||
superset load-examples --load-test-data
|
||||
superset run --port 8081
|
||||
```
|
||||
|
||||
In another terminal, prepare the frontend and run Cypress tests:
|
||||
|
||||
```bash
|
||||
cd superset-frontend
|
||||
npm run build-instrumented
|
||||
|
||||
cd cypress-base
|
||||
# superset-frontend/cypress-base is the base folder for everything Cypress-related
|
||||
# It's essentially its own npm app, with its own dependencies, configurations and utilities
|
||||
cd superset-frontend/cypress-base
|
||||
npm install
|
||||
|
||||
# run tests via headless Chrome browser (requires Chrome 64+)
|
||||
# use interactive mode to run tests, while keeping memory usage contained
|
||||
# this will fire up an interactive Cypress UI
|
||||
# as you alter the code, the tests will re-run automatically, and you can visualize each
|
||||
# and every step for debugging purposes
|
||||
npx cypress open --config numTestsKeptInMemory=5
|
||||
|
||||
# to run the test suite on the command line using chrome (same as CI)
|
||||
npm run cypress-run-chrome
|
||||
|
||||
# run tests from a specific file
|
||||
@@ -291,9 +267,6 @@ npm run cypress-run-chrome -- --spec cypress/e2e/dashboard/index.test.js --confi
|
||||
# to open the cypress ui
|
||||
npm run cypress-debug
|
||||
|
||||
# to point cypress to a url other than the default (http://localhost:8088) set the environment variable before running the script
|
||||
# e.g., CYPRESS_BASE_URL="http://localhost:9000"
|
||||
CYPRESS_BASE_URL=<your url> npm run cypress open
|
||||
```
|
||||
|
||||
See [`superset-frontend/cypress_build.sh`](https://github.com/apache/superset/blob/master/superset-frontend/cypress_build.sh).
|
||||
@@ -438,7 +411,7 @@ See [set capabilities for a container](https://kubernetes.io/docs/tasks/configur
|
||||
|
||||
Once the pod is running as root and has the `SYS_PTRACE` capability it will be able to debug the Flask app.
|
||||
|
||||
You can follow the same instructions as in the docker-compose. Enter the pod and install the required library and packages; gdb, netstat and debugpy.
|
||||
You can follow the same instructions as in `docker compose`. Enter the pod and install the required library and packages; gdb, netstat and debugpy.
|
||||
|
||||
Often in a Kubernetes environment nodes are not addressable from outside the cluster. VSCode will thus be unable to remotely connect to port 5678 on a Kubernetes node. In order to do this you need to create a tunnel that port forwards 5678 to your local machine.
|
||||
|
||||
@@ -598,17 +571,24 @@ pybabel compile -d superset/translations
|
||||
|
||||
### Python
|
||||
|
||||
We use [Pylint](https://pylint.org/) for linting which can be invoked via:
|
||||
We use [ruff](https://github.com/astral-sh/ruff) for linting which can be invoked via:
|
||||
|
||||
```bash
|
||||
# for python
|
||||
tox -e pylint
|
||||
```
|
||||
# auto-reformat using ruff
|
||||
ruff format
|
||||
|
||||
# lint check with ruff
|
||||
ruff check
|
||||
|
||||
# lint fix with ruff
|
||||
ruff check --fix
|
||||
```
|
||||
|
||||
In terms of best practices please avoid blanket disabling of Pylint messages globally (via `.pylintrc`) or top-level within the file header, albeit there being a few exceptions. Disabling should occur inline as it prevents masking issues and provides context as to why said message is disabled.
|
||||
Ruff configuration is located in our
|
||||
(pyproject.toml)[https://github.com/apache/superset/blob/master/pyproject.toml] file
|
||||
|
||||
Additionally, the Python code is auto-formatted using [Black](https://github.com/python/black) which
|
||||
is configured as a pre-commit hook. There are also numerous [editor integrations](https://black.readthedocs.io/en/stable/integrations/editors.html)
|
||||
All this is configured to run in pre-commit hooks, which we encourage you to setup
|
||||
with `pre-commit install`
|
||||
|
||||
### TypeScript
|
||||
|
||||
|
||||
@@ -174,13 +174,16 @@ You can take a look at this Flask-AppBuilder
|
||||
## Is there a way to force the dashboard to use specific colors?
|
||||
|
||||
It is possible on a per-dashboard basis by providing a mapping of labels to colors in the JSON
|
||||
Metadata attribute using the `label_colors` key.
|
||||
Metadata attribute using the `label_colors` key. You can use either the full hex color, a named color,
|
||||
like `red`, `coral` or `lightblue`, or the index in the current color palette (0 for first color, 1 for
|
||||
second etc). Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"label_colors": {
|
||||
"Girls": "#FF69B4",
|
||||
"Boys": "#ADD8E6"
|
||||
"foo": "#FF69B4",
|
||||
"bar": "lightblue",
|
||||
"baz": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -29,11 +29,18 @@ We have a set of build "presets" that each represent a combination of
|
||||
parameters for the build, mostly pointing to either different target layer
|
||||
for the build, and/or base image.
|
||||
|
||||
Here are the build presets that are exposed through the `build_docker.py` script:
|
||||
Here are the build presets that are exposed through the `supersetbot docker` utility:
|
||||
|
||||
- `lean`: The default Docker image, including both frontend and backend. Tags
|
||||
without a build_preset are lean builds, e.g., `latest`.
|
||||
- `dev`: For development, with a headless browser, dev-related utilities and root access.
|
||||
without a build_preset are lean builds (ie: `latest`, `4.0.0`, `3.0.0`, ...). `lean`
|
||||
builds do not contain database
|
||||
drivers, meaning you need to install your own. That applies to analytics databases **AND
|
||||
the metadata database**. You'll likely want to layer either `mysqlclient` or `psycopg2-binary`
|
||||
depending on the metadata database you choose for your installation, plus the required
|
||||
drivers to connect to your analytics database(s).
|
||||
- `dev`: For development, with a headless browser, dev-related utilities and root access. This
|
||||
includes some commonly used database drivers like `mysqlclient`, `psycopg2-binary` and
|
||||
some other used for development/CI
|
||||
- `py311`, e.g., Py311: Similar to lean but with a different Python version (in this example, 3.11).
|
||||
- `ci`: For certain CI workloads.
|
||||
- `websocket`: For Superset clusters supporting advanced features.
|
||||
@@ -52,11 +59,29 @@ without a build_preset are lean builds, e.g., `latest`.
|
||||
this specific SHA, which could be from a `master` merge, or release.
|
||||
- `websocket-latest`: The WebSocket image for use in a Superset cluster.
|
||||
|
||||
|
||||
|
||||
For insights or modifications to the build matrix and tagging conventions,
|
||||
check the [build_docker.py](https://github.com/apache/superset/blob/master/scripts/build_docker.py)
|
||||
script and the [docker.yml](https://github.com/apache/superset/blob/master/.github/workflows/docker.yml)
|
||||
check the [supersetbot docker](https://github.com/apache-superset/supersetbot)
|
||||
subcommand and the [docker.yml](https://github.com/apache/superset/blob/master/.github/workflows/docker.yml)
|
||||
GitHub action.
|
||||
|
||||
## Key ARGs in Dockerfile
|
||||
- `BUILD_TRANSLATIONS`: whether to build the translations into the image. For the
|
||||
frontend build this tells webpack to strip out all locales other than `en` from
|
||||
the `moment-timezone` library. For the backendthis skips compiling the
|
||||
`*.po` translation files
|
||||
- `DEV_MODE`: whether to skip the frontend build, this is used by our `docker-compose` dev setup
|
||||
where we mount the local volume and build using `webpack` in `--watch` mode, meaning as you
|
||||
alter the code in the local file system, webpack, from within a docker image used for this
|
||||
purpose, will constantly rebuild the frontend as you go. This ARG enables the initial
|
||||
`docker-compose` build to take much less time and resources
|
||||
- `INCLUDE_CHROMIUM`: whether to include chromium in the backend build so that it can be
|
||||
used as a headless browser for workloads related to "Alerts & Reports" and thumbnail generation
|
||||
- `INCLUDE_FIREFOX`: same as above, but for firefox
|
||||
- `PY_VER`: specifying the base image for the python backend, we don't recommend altering
|
||||
this setting if you're not working on forwards or backwards compatibility
|
||||
|
||||
## Caching
|
||||
|
||||
To accelerate builds, we follow Docker best practices and use `apache/superset-cache`.
|
||||
@@ -76,7 +101,7 @@ add database support for the database you need.
|
||||
|
||||
Currently all automated builds are multi-platform, supporting both `linux/arm64`
|
||||
and `linux/amd64`. This enables higher level constructs like `helm` and
|
||||
docker-compose to point to these images and effectively be multi-platform
|
||||
`docker compose` to point to these images and effectively be multi-platform
|
||||
as well.
|
||||
|
||||
Pull requests and master builds
|
||||
|
||||
@@ -13,9 +13,9 @@ import useBaseUrl from "@docusaurus/useBaseUrl";
|
||||
<br /><br />
|
||||
|
||||
:::caution
|
||||
Since `docker-compose` is primarily designed to run a set of containers on **a single host**
|
||||
Since `docker compose` is primarily designed to run a set of containers on **a single host**
|
||||
and can't support requirements for **high availability**, we do not support nor recommend
|
||||
using our `docker-compose` constructs to support production-type use-cases. For single host
|
||||
using our `docker compose` constructs to support production-type use-cases. For single host
|
||||
environments, we recommend using [minikube](https://minikube.sigs.k8s.io/docs/start/) along
|
||||
our [installing on k8s](https://superset.apache.org/docs/installation/running-on-kubernetes)
|
||||
documentation.
|
||||
@@ -26,7 +26,7 @@ Superset locally is using Docker Compose on a Linux or Mac OSX
|
||||
computer. Superset does not have official support for Windows. It's also the easiest
|
||||
way to launch a fully functioning **development environment** quickly.
|
||||
|
||||
Note that there are 3 major ways we support to run docker-compose:
|
||||
Note that there are 3 major ways we support to run `docker compose`:
|
||||
|
||||
1. **docker-compose.yml:** for interactive development, where we mount your local folder with the
|
||||
frontend/backend files that you can edit and experience the changes you
|
||||
@@ -38,15 +38,20 @@ Note that there are 3 major ways we support to run docker-compose:
|
||||
1. **docker-compose-image-tag.yml** where we fetch an image from docker-hub say for the
|
||||
`3.0.0` release for instance, and fire it up so you can try it. Here what's in
|
||||
the local branch has no effects on what's running, we just fetch and run
|
||||
pre-built images from docker-hub
|
||||
pre-built images from docker-hub. For `docker compose` to work along with the
|
||||
Postgres image it boots up, you'll want to point to a `-dev`-suffixed TAG, as in
|
||||
`export TAG=4.0.0-dev` or `export TAG=3.0.0-dev`, with `latest-dev` being the default.
|
||||
That's because The `dev` builds happen to package the `psycopg2-binary` required to connect
|
||||
to the Postgres database launched as part of the `docker compose` builds.
|
||||
``
|
||||
|
||||
More on these two approaches after setting up the requirements for either.
|
||||
|
||||
## Requirements
|
||||
|
||||
Note that this documentation assumes that you have [Docker](https://www.docker.com),
|
||||
[docker-compose](https://docs.docker.com/compose/), and
|
||||
[git](https://git-scm.com/) installed.
|
||||
Note that this documentation assumes that you have [Docker](https://www.docker.com) and
|
||||
[git](https://git-scm.com/) installed. Note also that we used to use `docker-compose` but that
|
||||
is on the path to deprecation so we now use `docker compose` instead.
|
||||
|
||||
## 1. Clone Superset's GitHub repository
|
||||
|
||||
@@ -62,7 +67,7 @@ current directory.
|
||||
|
||||
## 2. Launch Superset Through Docker Compose
|
||||
|
||||
First let's assume you're familiar with docker-compose mechanics. Here we'll refer generally
|
||||
First let's assume you're familiar with `docker compose` mechanics. Here we'll refer generally
|
||||
to `docker compose up` even though in some cases you may want to force a check for newer remote
|
||||
images using `docker compose pull`, force a build with `docker compose build` or force a build
|
||||
on latest base images using `docker compose build --pull`. In most cases though, the simple
|
||||
@@ -71,7 +76,8 @@ on latest base images using `docker compose build --pull`. In most cases though,
|
||||
### Option #1 - for an interactive development environment
|
||||
|
||||
```bash
|
||||
docker compose up
|
||||
# The --build argument insures all the layers are up-to-date
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
:::tip
|
||||
@@ -90,6 +96,14 @@ perform those operations. In this case, we recommend you set the env var
|
||||
Simply trigger `npm i && npm run dev`, this should be MUCH faster.
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Sometimes, your npm-related state can get out-of-wack, running `npm run prune` from
|
||||
the `superset-frontend/` folder will nuke the various' packages `node_module/` folders
|
||||
and help you start fresh. In the context of `docker compose` setting
|
||||
`export NPM_RUN_PRUNE=true` prior to running `docker compose up` will trigger that
|
||||
from within docker. This will slow down the startup, but will fix various npm-related issues.
|
||||
:::
|
||||
|
||||
### Option #2 - build a set of immutable images from the local branch
|
||||
|
||||
```bash
|
||||
@@ -107,7 +121,14 @@ Here various release tags, github SHA, and latest `master` can be referenced by
|
||||
Refer to the docker-related documentation to learn more about existing tags you can point to
|
||||
from Docker Hub.
|
||||
|
||||
## docker-compose tips & configuration
|
||||
:::note
|
||||
For option #2 and #3, we recommend checking out the release tag from the better repository
|
||||
(ie: `git checkout 4.0.0`) for more guaranteed results. This ensures that the `docker-compose.*.yml`
|
||||
configurations and that the mounted `docker/` scripts are in sync with the image you are
|
||||
looking to fire up.
|
||||
:::
|
||||
|
||||
## `docker compose` tips & configuration
|
||||
|
||||
:::caution
|
||||
All of the content belonging to a Superset instance - charts, dashboards, users, etc. - is stored in
|
||||
@@ -132,7 +153,7 @@ You can install additional python packages and apply config overrides by followi
|
||||
mentioned in [docker/README.md](https://github.com/apache/superset/tree/master/docker#configuration)
|
||||
|
||||
Note that `docker/.env` sets the default environment variables for all the docker images
|
||||
used by `docker-compose`, and that `docker/.env-local` can be used to override those defaults.
|
||||
used by `docker compose`, and that `docker/.env-local` can be used to override those defaults.
|
||||
Also note that `docker/.env-local` is referenced in our `.gitignore`,
|
||||
preventing developers from risking committing potentially sensitive configuration to the repository.
|
||||
|
||||
@@ -222,3 +243,11 @@ may want to find the exact hostname you want to use, for that you can do `ifconf
|
||||
Docker for you. Alternately if you don't even see the `docker0` interface try (if needed with sudo)
|
||||
`docker network inspect bridge` and see if there is an entry for `"Gateway"` and note the IP
|
||||
address.
|
||||
|
||||
## 4. To build or not to build
|
||||
|
||||
When running `docker compose up`, docker will build what is required behind the scene, but
|
||||
may use the docker cache if assets already exist. Running `docker compose build` prior to
|
||||
`docker compose up` or the equivalent shortcut `docker compose up --build` ensures that your
|
||||
docker images matche the definition in the repository. This should only apply to the main
|
||||
docker-compose.yml file (default) and not to the alternative methods defined above.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user