Build logs seem verbose

Describe the bug
Thanks for such an amazing tool, it's been a true pleasure using it ❤
Running svelte-kit build on a relatively small project (but growing) produces pretty wild logs (click to see👇). I think we can safely clean it up a little by grouping by output directory, using a table layout (maybe?), preferring shorter names where possible such as pages using route names, and maybe some other stuff along the way.
If agreed upon, I'm happy to try and take a stab as soon as I have time since it's mostly stylistic changes.
Reproduction
git clone git@github.com:vidstack/vidstack.git --depth=1

pnpm i

pnpm build

pnpm build --filter vidstack.io

Logs

Click to see build logs
vite v2.8.6 building for production...
transforming (193) ~icons/ri/menu-unfold-fill.svelte
warn - You have enabled experimental features: optimizeUniversalDefaults
warn - Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.
✓ 245 modules transformed.
.svelte-kit/output/client/_app/assets/social-card-large-1def031a.jpg                                            173.58 KiB
.svelte-kit/output/client/_app/assets/vscode-autocomplete-ade88283.png                                          61.09 KiB
.svelte-kit/output/client/_app/assets/contextual-menu-06a2a94d.png                                              340.83 KiB
.svelte-kit/output/client/_app/assets/FiraCode-VF-05b30ba3.woff2                                                103.74 KiB
.svelte-kit/output/client/_app/assets/Inter-VF.italic-latin-65279caf.woff2                                      55.21 KiB
.svelte-kit/output/client/_app/assets/Inter-VF.roman-latin-1b58736b.woff2                                       51.24 KiB
.svelte-kit/output/client/_app/assets/FiraCode-VF-71c5868a.woff                                                 127.05 KiB
.svelte-kit/output/client/_app/manifest.json                                                                    78.24 KiB
.svelte-kit/output/client/_app/pages/__layout.svelte-ad3be796.js                                                3.48 KiB / gzip: 1.28 KiB
.svelte-kit/output/client/_app/error.svelte-1f3e88ef.js                                                         1.56 KiB / gzip: 0.75 KiB
.svelte-kit/output/client/_app/pages/docs/__layout.svelte-7614c5a7.js                                           1.89 KiB / gzip: 0.86 KiB
.svelte-kit/output/client/_app/pages/index.svelte-1d2ac877.js                                                   13.30 KiB / gzip: 4.67 KiB
.svelte-kit/output/client/_app/pages/docs/player/__layout.svelte-5e1dbed9.js                                    11.36 KiB / gzip: 4.36 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/editor-setup.md-928a823d.js                    11.97 KiB / gzip: 3.50 KiB
.svelte-kit/output/client/_app/start-1f08d776.js                                                                82.97 KiB / gzip: 11.98 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/audio.md-7e5448a8.js                8.30 KiB / gzip: 2.18 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/react/audio.md-ed7f36f7.js          8.90 KiB / gzip: 2.24 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/react/video.md-546e7b9f.js          9.25 KiB / gzip: 2.27 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/react/hls.md-1337e92a.js            9.25 KiB / gzip: 2.27 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/foundation.md-82c8ee3d.js                      54.41 KiB / gzip: 10.85 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/cdn/audio.md-481bb849.js            8.80 KiB / gzip: 2.10 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/__layout.svelte-959bd8cc.js         43.20 KiB / gzip: 11.31 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/index.md-a05e2053.js                8.64 KiB / gzip: 2.20 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/cdn/video.md-32fd821b.js            9.15 KiB / gzip: 2.13 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/cdn/hls.md-7bcadab0.js              9.12 KiB / gzip: 2.12 KiB
.svelte-kit/output/client/_app/pages/docs/player/core-concepts/custom-elements.md-39a9a833.js                   1.76 KiB / gzip: 0.83 KiB
.svelte-kit/output/client/_app/pages/docs/player/core-concepts/architecture.md-e23541fa.js                      1.74 KiB / gzip: 0.83 KiB
.svelte-kit/output/client/_app/pages/docs/player/core-concepts/lifecycle.md-4a6a6713.js                         1.71 KiB / gzip: 0.82 KiB
.svelte-kit/output/client/_app/pages/docs/player/core-concepts/fullscreen.md-5a145ad0.js                        1.72 KiB / gzip: 0.82 KiB
.svelte-kit/output/client/_app/pages/docs/player/core-concepts/autoplay.md-52c3d850.js                          1.71 KiB / gzip: 0.82 KiB
.svelte-kit/output/client/_app/pages/docs/player/core-concepts/events.md-97ad84b5.js                            1.70 KiB / gzip: 0.82 KiB
.svelte-kit/output/client/_app/pages/docs/player/core-concepts/skins.md-b4891963.js                             1.69 KiB / gzip: 0.82 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/quickstart/hls.md-acc4f7c7.js                  8.65 KiB / gzip: 2.21 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/youtube/react/index.md-9caabdc4.js        4.55 KiB / gzip: 1.57 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/youtube/index.md-ee5742ae.js              4.48 KiB / gzip: 1.56 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/audio/index.md-ba9ea085.js                8.77 KiB / gzip: 1.61 KiB
.svelte-kit/output/client/_app/pages/docs/player/getting-started/styling.md-49e2565e.js                         16.76 KiB / gzip: 4.05 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/audio/react/index.md-491b9040.js          8.07 KiB / gzip: 1.59 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/video/react/index.md-cdbc067f.js          11.57 KiB / gzip: 1.71 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/__layout.svelte-18335a4b.js                         18.31 KiB / gzip: 6.14 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/audio/react/api.md-13b833eb.js            17.58 KiB / gzip: 5.21 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/audio/api.md-a9d493da.js                  17.51 KiB / gzip: 5.20 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/vimeo/index.md-5c0cd0de.js                4.46 KiB / gzip: 1.55 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/vimeo/react/index.md-109126f5.js          4.53 KiB / gzip: 1.57 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/hls/index.md-bc2abc1f.js                  21.04 KiB / gzip: 2.38 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/hls/react/index.md-732fbddf.js            17.32 KiB / gzip: 2.42 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-visibility/index.md-de8bcc45.js         16.09 KiB / gzip: 2.16 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/video/react/api.md-460a2290.js            19.32 KiB / gzip: 5.64 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-visibility/react/index.md-5429dbe8.js   14.42 KiB / gzip: 2.05 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/video/api.md-93094aa2.js                  19.25 KiB / gzip: 5.63 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/hls/react/api.md-40967115.js              20.93 KiB / gzip: 6.06 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/hls/api.md-a20991b1.js                    20.87 KiB / gzip: 6.05 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-visibility/react/api.md-6df30a6f.js     4.22 KiB / gzip: 1.63 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-sync/react/api.md-f0a7736f.js           2.69 KiB / gzip: 1.23 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-sync/index.md-b73dd39d.js               9.66 KiB / gzip: 1.77 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-sync/api.md-608d9970.js                 2.63 KiB / gzip: 1.22 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-sync/react/index.md-aad3ad62.js         10.10 KiB / gzip: 1.74 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/providers/video/index.md-b7af20f1.js                12.26 KiB / gzip: 1.73 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/media/media-visibility/api.md-7a1269a3.js           4.15 KiB / gzip: 1.62 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/buffering-indicator/index.md-c7680f31.js         9.66 KiB / gzip: 1.59 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/fullscreen-button/index.md-29ff498c.js           9.59 KiB / gzip: 1.68 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/fullscreen-button/react/api.md-d84a6a9f.js       2.38 KiB / gzip: 1.09 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/fullscreen-button/api.md-c75cd70d.js             2.32 KiB / gzip: 1.07 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-value-text/react/api.md-5edc81b8.js       2.87 KiB / gzip: 1.23 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-value-text/react/index.md-fcb5d37b.js     7.43 KiB / gzip: 1.48 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-value-text/index.md-77614912.js           7.90 KiB / gzip: 1.48 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/fullscreen-button/react/index.md-1f7fce81.js     9.54 KiB / gzip: 1.70 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/buffering-indicator/react/index.md-0b12664f.js   9.73 KiB / gzip: 1.61 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-value-text/api.md-67d68bea.js             2.80 KiB / gzip: 1.22 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/toggle-button/index.md-94516f62.js               3.87 KiB / gzip: 1.19 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/toggle-button/react/index.md-23c25f07.js         3.93 KiB / gzip: 1.21 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/volume-slider/react/index.md-a25a7b58.js         3.22 KiB / gzip: 1.20 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/volume-slider/index.md-cab21977.js               3.31 KiB / gzip: 1.20 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/toggle-button/react/api.md-a9e3b6ae.js           2.36 KiB / gzip: 1.08 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/volume-slider/api.md-ec4e2fca.js                 4.48 KiB / gzip: 1.57 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/aspect-ratio/index.md-85cd10c5.js                4.16 KiB / gzip: 1.31 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/volume-slider/react/api.md-3fa61786.js           4.55 KiB / gzip: 1.58 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/toggle-button/api.md-7320f329.js                 2.30 KiB / gzip: 1.07 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/aspect-ratio/react/api.md-4e86eaab.js            2.46 KiB / gzip: 1.08 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/aspect-ratio/api.md-586057e6.js                  2.39 KiB / gzip: 1.08 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-video/react/api.md-502ae31a.js            2.30 KiB / gzip: 1.08 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/aspect-ratio/react/index.md-8ca888dd.js          4.31 KiB / gzip: 1.32 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-video/react/index.md-51ca48d4.js          5.65 KiB / gzip: 1.42 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/mute-button/react/api.md-9abd53d1.js             2.35 KiB / gzip: 1.08 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/mute-button/api.md-30c6e3a0.js                   2.28 KiB / gzip: 1.07 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/play-button/react/api.md-ec98f9c1.js             2.34 KiB / gzip: 1.08 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/mute-button/index.md-215a7600.js                 10.45 KiB / gzip: 1.84 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-video/index.md-7ddc5e8d.js                6.60 KiB / gzip: 1.52 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider-video/api.md-10031eed.js                  2.23 KiB / gzip: 1.07 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/play-button/index.md-5b10c5c8.js                 9.46 KiB / gzip: 1.68 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/play-button/react/index.md-623bc271.js           9.45 KiB / gzip: 1.70 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time-slider/react/index.md-de5b0674.js           3.20 KiB / gzip: 1.19 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time-slider/react/api.md-ac612262.js             5.32 KiB / gzip: 1.87 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time-slider/index.md-84724d47.js                 3.29 KiB / gzip: 1.20 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time-slider/api.md-4fd4a063.js                   5.25 KiB / gzip: 1.86 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/controls/index.md-d9fbf1fa.js                    5.30 KiB / gzip: 1.32 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/controls/react/index.md-cf6d87cb.js              5.36 KiB / gzip: 1.33 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/gesture/react/api.md-fdc802ee.js                 3.17 KiB / gzip: 1.45 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/gesture/index.md-fb8cea40.js                     15.69 KiB / gzip: 1.78 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/gesture/api.md-dfb6519e.js                       3.10 KiB / gzip: 1.43 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/play-button/api.md-89ca8cca.js                   2.27 KiB / gzip: 1.07 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/gesture/react/index.md-6c0dde11.js               15.32 KiB / gzip: 1.79 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/poster/react/api.md-d57b60ff.js                  2.52 KiB / gzip: 1.21 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/poster/api.md-3f64bf8b.js                        2.45 KiB / gzip: 1.19 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider/index.md-7a0aa5b5.js                      10.20 KiB / gzip: 1.73 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/poster/react/index.md-0a545dbc.js                12.51 KiB / gzip: 1.83 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider/react/api.md-e941a90d.js                  4.91 KiB / gzip: 1.65 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider/react/index.md-7cd82678.js                10.06 KiB / gzip: 1.75 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/slider/api.md-342493da.js                        4.84 KiB / gzip: 1.64 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time/index.md-0a8249b6.js                        4.70 KiB / gzip: 1.38 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/poster/index.md-f2a1776a.js                      12.85 KiB / gzip: 1.83 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time/react/api.md-dec3d7fb.js                    2.62 KiB / gzip: 1.17 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time/api.md-1cdb26e0.js                          2.54 KiB / gzip: 1.16 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/time/react/index.md-e657fceb.js                  4.59 KiB / gzip: 1.38 KiB
.svelte-kit/output/client/_app/chunks/singletons-d1fb5791.js                                                    0.05 KiB / gzip: 0.07 KiB
.svelte-kit/output/client/_app/chunks/preload-helper-e4860ae8.js                                                0.55 KiB / gzip: 0.39 KiB
.svelte-kit/output/client/_app/pages/docs/player/libraries/react.md-954164d5.js                                 23.33 KiB / gzip: 4.76 KiB
.svelte-kit/output/client/_app/pages/docs/player/libraries/svelte.md-b3cd6a82.js                                28.78 KiB / gzip: 5.68 KiB
.svelte-kit/output/client/_app/chunks/arrow-drop-down-fill-cde3c796.js                                          0.80 KiB / gzip: 0.50 KiB
.svelte-kit/output/client/_app/chunks/Overlay-50b65db3.js                                                       5.63 KiB / gzip: 2.21 KiB
.svelte-kit/output/client/_app/pages/docs/player/components/ui/mute-button/react/index.md-9e688b21.js           10.47 KiB / gzip: 1.85 KiB
.svelte-kit/output/client/_app/pages/docs/player/libraries/tailwind.md-48636fcf.js                              22.36 KiB / gzip: 5.00 KiB
.svelte-kit/output/client/_app/chunks/index-f07b7cc9.js                                                         2.02 KiB / gzip: 0.98 KiB
.svelte-kit/output/client/_app/chunks/isLargeScreen-16ff9da9.js                                                 0.26 KiB / gzip: 0.20 KiB
.svelte-kit/output/client/_app/chunks/Chip-72b7a643.js                                                          1.17 KiB / gzip: 0.65 KiB
.svelte-kit/output/client/_app/chunks/stores-dc66bb0c.js                                                        0.46 KiB / gzip: 0.24 KiB
.svelte-kit/output/client/_app/chunks/path-1c038055.js                                                          0.63 KiB / gzip: 0.39 KiB
.svelte-kit/output/client/_app/chunks/Sidebar-d4063a03.js                                                       8.71 KiB / gzip: 3.63 KiB
.svelte-kit/output/client/_app/chunks/Step-2aeb328b.js                                                          4.21 KiB / gzip: 1.73 KiB
.svelte-kit/output/client/_app/chunks/markdown-fa2fa294.js                                                      0.09 KiB / gzip: 0.10 KiB
.svelte-kit/output/client/_app/chunks/test-tube-fill-1080c5cd.js                                                0.92 KiB / gzip: 0.56 KiB
.svelte-kit/output/client/_app/chunks/Link-15ad9d23.js                                                          1.20 KiB / gzip: 0.74 KiB
.svelte-kit/output/client/_app/chunks/vendor-cba0d07a.js                                                        21.92 KiB / gzip: 8.78 KiB
.svelte-kit/output/client/_app/chunks/No-8674cffc.js                                                            1.58 KiB / gzip: 0.87 KiB
.svelte-kit/output/client/_app/chunks/Admonition-4d94485a.js                                                    7.30 KiB / gzip: 2.17 KiB
.svelte-kit/output/client/_app/chunks/Yes-ade1cdd6.js                                                           1.59 KiB / gzip: 0.87 KiB
.svelte-kit/output/client/_app/chunks/CodeFence-94171658.js                                                     8.91 KiB / gzip: 3.78 KiB
.svelte-kit/output/client/_app/chunks/framework-d99e1731.js                                                     4.11 KiB / gzip: 2.05 KiB
.svelte-kit/output/client/_app/chunks/TableWrapper-d851dd29.js                                                  1.25 KiB / gzip: 0.63 KiB
.svelte-kit/output/client/_app/chunks/MediaVarsTable-2432c883.js                                                12.45 KiB / gzip: 3.86 KiB
.svelte-kit/output/client/_app/chunks/_Docs-247714a2.js                                                         7.47 KiB / gzip: 2.55 KiB
.svelte-kit/output/client/_app/chunks/AttrWord-5134e26a.js                                                      0.90 KiB / gzip: 0.56 KiB
.svelte-kit/output/client/_app/chunks/_Docs-311ed5b4.js                                                         6.81 KiB / gzip: 2.37 KiB
.svelte-kit/output/client/_app/chunks/ComponentApiTable-b2fcf681.js                                             13.17 KiB / gzip: 5.23 KiB
.svelte-kit/output/client/_app/chunks/Button-1a35ab08.js                                                        46.70 KiB / gzip: 15.61 KiB
.svelte-kit/output/client/_app/pages/docs/player/libraries/vue.md-412db31d.js                                   38.92 KiB / gzip: 6.52 KiB
.svelte-kit/output/client/_app/chunks/_Docs-f5467154.js                                                         13.23 KiB / gzip: 2.75 KiB
.svelte-kit/output/client/_app/chunks/_Docs-0fe0c3b2.js                                                         7.86 KiB / gzip: 2.71 KiB
.svelte-kit/output/client/_app/chunks/_Docs-eabfc30c.js                                                         14.38 KiB / gzip: 2.57 KiB
.svelte-kit/output/client/_app/chunks/_Docs-303d84ba.js                                                         24.45 KiB / gzip: 7.32 KiB
.svelte-kit/output/client/_app/chunks/_Docs-0fd0bc8b.js                                                         24.61 KiB / gzip: 7.01 KiB
.svelte-kit/output/client/_app/chunks/_Docs-a92441d8.js                                                         15.10 KiB / gzip: 2.60 KiB
.svelte-kit/output/client/_app/chunks/_Docs-6337d692.js                                                         6.57 KiB / gzip: 2.11 KiB
.svelte-kit/output/client/_app/chunks/_Docs-2c0f8026.js                                                         14.77 KiB / gzip: 3.67 KiB
.svelte-kit/output/client/_app/chunks/_Docs-abe371b2.js                                                         7.26 KiB / gzip: 2.37 KiB
.svelte-kit/output/client/_app/chunks/_Docs-d94a90e9.js                                                         11.53 KiB / gzip: 2.29 KiB
.svelte-kit/output/client/_app/chunks/_Docs-00a0c1c0.js                                                         8.52 KiB / gzip: 2.61 KiB
.svelte-kit/output/client/_app/chunks/_Docs-46b1f162.js                                                         21.65 KiB / gzip: 4.17 KiB
.svelte-kit/output/client/_app/chunks/_Docs-ac335c0c.js                                                         12.44 KiB / gzip: 2.58 KiB
.svelte-kit/output/client/_app/chunks/_Docs-19649e3a.js                                                         6.53 KiB / gzip: 2.42 KiB
.svelte-kit/output/client/_app/assets/vendor-d601917d.css                                                       0.03 KiB / gzip: 0.05 KiB
.svelte-kit/output/client/_app/chunks/_Docs-593f1be1.js                                                         18.92 KiB / gzip: 3.86 KiB
.svelte-kit/output/client/_app/chunks/_Docs-588d1c73.js                                                         27.43 KiB / gzip: 6.11 KiB
.svelte-kit/output/client/_app/assets/pages/docs/__layout.svelte-94889d5a.css                                   0.82 KiB / gzip: 0.36 KiB
.svelte-kit/output/client/_app/assets/DocSearch-2fed934e.css                                                    18.21 KiB / gzip: 3.74 KiB
.svelte-kit/output/client/_app/chunks/_Docs-41363fe0.js                                                         25.28 KiB / gzip: 4.73 KiB
.svelte-kit/output/client/_app/assets/pages/__layout.svelte-71896d0c.css                                        47.49 KiB / gzip: 8.66 KiB
.svelte-kit/output/client/_app/chunks/_Docs-41654817.js                                                         39.12 KiB / gzip: 7.83 KiB
.svelte-kit/output/client/_app/chunks/DocSearch-f4761873.js                                                     104.71 KiB / gzip: 29.61 KiB
vite v2.8.6 building SSR bundle for production...
✓ 241 modules transformed.
.svelte-kit/output/server/manifest.json                                                                   103.38 KiB
.svelte-kit/output/server/index.js                                                                        66.65 KiB
.svelte-kit/output/server/entries/endpoints/sitemap.xml.js                                                18.36 KiB
.svelte-kit/output/server/entries/pages/__layout.svelte.js                                                0.29 KiB
.svelte-kit/output/server/entries/fallbacks/error.svelte.js                                               0.72 KiB
.svelte-kit/output/server/entries/pages/index.svelte.js                                                   2.53 KiB
.svelte-kit/output/server/entries/pages/docs/__layout.svelte.js                                           1.30 KiB
.svelte-kit/output/server/entries/pages/docs/player/__layout.svelte.js                                    8.34 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/editor-setup.md.js                    8.73 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/foundation.md.js                      37.70 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/__layout.svelte.js         8.79 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/index.md.js                7.04 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/audio.md.js                6.69 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/react/audio.md.js          7.31 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/react/video.md.js          7.66 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/react/hls.md.js            7.66 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/cdn/audio.md.js            7.83 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/cdn/video.md.js            8.19 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/cdn/hls.md.js              8.16 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/quickstart/hls.md.js                  7.03 KiB
.svelte-kit/output/server/entries/pages/docs/player/getting-started/styling.md.js                         12.73 KiB
.svelte-kit/output/server/entries/pages/docs/player/core-concepts/custom-elements.md.js                   1.54 KiB
.svelte-kit/output/server/entries/pages/docs/player/core-concepts/architecture.md.js                      1.52 KiB
.svelte-kit/output/server/entries/pages/docs/player/core-concepts/fullscreen.md.js                        1.50 KiB
.svelte-kit/output/server/entries/pages/docs/player/core-concepts/lifecycle.md.js                         1.49 KiB
.svelte-kit/output/server/entries/pages/docs/player/core-concepts/autoplay.md.js                          1.48 KiB
.svelte-kit/output/server/entries/pages/docs/player/core-concepts/events.md.js                            1.47 KiB
.svelte-kit/output/server/entries/pages/docs/player/core-concepts/skins.md.js                             1.45 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/__layout.svelte.js                         3.50 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/youtube/index.md.js              3.06 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/youtube/react/index.md.js        3.13 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/audio/index.md.js                8.72 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/audio/react/index.md.js          8.05 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/audio/react/api.md.js            21.15 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/audio/api.md.js                  21.07 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/video/index.md.js                12.24 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/video/react/index.md.js          11.56 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/video/react/api.md.js            23.30 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/video/api.md.js                  23.22 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/vimeo/index.md.js                3.04 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/vimeo/react/index.md.js          3.12 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/hls/index.md.js                  20.82 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/hls/react/index.md.js            17.30 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/hls/react/api.md.js              25.39 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/providers/hls/api.md.js                    25.32 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-visibility/index.md.js         16.18 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-visibility/react/index.md.js   14.49 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-visibility/react/api.md.js     4.92 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-visibility/api.md.js           4.84 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-sync/index.md.js               9.60 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-sync/react/index.md.js         10.05 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-sync/react/api.md.js           3.01 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/media/media-sync/api.md.js                 2.94 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/buffering-indicator/index.md.js         9.73 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/buffering-indicator/react/index.md.js   9.77 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/fullscreen-button/index.md.js           9.61 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/fullscreen-button/react/index.md.js     9.54 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/fullscreen-button/react/api.md.js       2.69 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/fullscreen-button/api.md.js             2.62 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-value-text/index.md.js           7.95 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-value-text/react/index.md.js     7.46 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-value-text/react/api.md.js       3.26 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-value-text/api.md.js             3.18 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/toggle-button/index.md.js               3.81 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/toggle-button/react/index.md.js         3.87 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/toggle-button/react/api.md.js           2.67 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/toggle-button/api.md.js                 2.60 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/volume-slider/index.md.js               3.31 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/volume-slider/react/index.md.js         3.21 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/volume-slider/react/api.md.js           5.54 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/volume-slider/api.md.js                 5.46 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/aspect-ratio/index.md.js                4.13 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/aspect-ratio/react/index.md.js          4.28 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/aspect-ratio/react/api.md.js            2.79 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/aspect-ratio/api.md.js                  2.72 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-video/index.md.js                6.60 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-video/react/index.md.js          5.64 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-video/react/api.md.js            2.57 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider-video/api.md.js                  2.50 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/mute-button/index.md.js                 10.46 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/mute-button/react/index.md.js           10.47 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/mute-button/react/api.md.js             2.66 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/mute-button/api.md.js                   2.58 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/play-button/index.md.js                 9.47 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/play-button/react/index.md.js           9.46 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/play-button/react/api.md.js             2.66 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/play-button/api.md.js                   2.58 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time-slider/index.md.js                 3.28 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time-slider/react/index.md.js           3.19 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time-slider/react/api.md.js             6.47 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time-slider/api.md.js                   6.40 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/controls/index.md.js                    5.29 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/controls/react/index.md.js              5.36 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/gesture/index.md.js                     15.67 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/gesture/react/index.md.js               15.31 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/gesture/react/api.md.js                 3.56 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/gesture/api.md.js                       3.49 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/poster/index.md.js                      12.83 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/poster/react/index.md.js                12.50 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/poster/react/api.md.js                  2.83 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/poster/api.md.js                        2.76 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider/index.md.js                      10.07 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider/react/index.md.js                9.95 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider/react/api.md.js                  6.09 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/slider/api.md.js                        6.02 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time/index.md.js                        4.67 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time/react/index.md.js                  4.57 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time/react/api.md.js                    2.95 KiB
.svelte-kit/output/server/entries/pages/docs/player/components/ui/time/api.md.js                          2.87 KiB
.svelte-kit/output/server/entries/pages/docs/player/libraries/tailwind.md.js                              16.95 KiB
.svelte-kit/output/server/entries/pages/docs/player/libraries/svelte.md.js                                22.03 KiB
.svelte-kit/output/server/entries/pages/docs/player/libraries/react.md.js                                 17.74 KiB
.svelte-kit/output/server/entries/pages/docs/player/libraries/vue.md.js                                   31.59 KiB
.svelte-kit/output/server/chunks/index-ae8b9895.js                                                        8.99 KiB
.svelte-kit/output/server/chunks/Navbar-2d53a734.js                                                       26.88 KiB
.svelte-kit/output/server/chunks/_HeroSection-f2b39f49.js                                                 1.32 KiB
.svelte-kit/output/server/chunks/_OpenSourceSection-95a54280.js                                           2.78 KiB
.svelte-kit/output/server/chunks/_HowSection-e75dde05.js                                                  1.83 KiB
.svelte-kit/output/server/chunks/arrow-drop-down-fill-1e2d9007.js                                         0.51 KiB
.svelte-kit/output/server/chunks/index-5c218379.js                                                        22.60 KiB
.svelte-kit/output/server/chunks/Overlay-7b561ca9.js                                                      3.17 KiB
.svelte-kit/output/server/chunks/Button-14f8fbc3.js                                                       2.46 KiB
.svelte-kit/output/server/chunks/github-fill-e91bfe73.js                                                  1.17 KiB
.svelte-kit/output/server/chunks/Chip-1d5d1769.js                                                         0.63 KiB
.svelte-kit/output/server/chunks/index-926ba79c.js                                                        2.27 KiB
.svelte-kit/output/server/chunks/isLargeScreen-336d3821.js                                                0.19 KiB
.svelte-kit/output/server/chunks/stores-08891ac2.js                                                       0.76 KiB
.svelte-kit/output/server/chunks/Sidebar-c6cbae3e.js                                                      5.83 KiB
.svelte-kit/output/server/chunks/element-2eb7eb79.js                                                      1.00 KiB
.svelte-kit/output/server/chunks/path-e429c967.js                                                         0.42 KiB
.svelte-kit/output/server/chunks/test-tube-fill-8c97030d.js                                               0.62 KiB
.svelte-kit/output/server/chunks/CodeInline-9c8792fa.js                                                   1.55 KiB
.svelte-kit/output/server/chunks/CodeFence-9a58dbee.js                                                    4.90 KiB
.svelte-kit/output/server/chunks/Step-0a082c47.js                                                         2.67 KiB
.svelte-kit/output/server/chunks/Link-839f912f.js                                                         1.38 KiB
.svelte-kit/output/server/chunks/markdown-8e8dd59d.js                                                     0.17 KiB
.svelte-kit/output/server/chunks/Admonition-ae808659.js                                                   4.63 KiB
.svelte-kit/output/server/chunks/Yes-aa0a58e8.js                                                          0.75 KiB
.svelte-kit/output/server/chunks/No-9592ced7.js                                                           0.74 KiB
.svelte-kit/output/server/chunks/framework-102cfbc6.js                                                    1.94 KiB
.svelte-kit/output/server/chunks/_InstallNPM-68b700a1.js                                                  3.16 KiB
.svelte-kit/output/server/chunks/_InstallCDN-6540f9d4.js                                                  2.71 KiB
.svelte-kit/output/server/chunks/_LibHTML-0d1c1ed7.js                                                     1.00 KiB
.svelte-kit/output/server/chunks/_LibReact-14bf15ec.js                                                    1.01 KiB
.svelte-kit/output/server/chunks/_ProviderHls-15d963a8.js                                                 1.47 KiB
.svelte-kit/output/server/chunks/_BrowserSupport-d366620f.js                                              2.34 KiB
.svelte-kit/output/server/chunks/_DangerouslyAll-97d4e661.js                                              5.45 KiB
.svelte-kit/output/server/chunks/MediaVarsTable-01b43101.js                                               4.67 KiB
.svelte-kit/output/server/chunks/TableWrapper-51fd8d1e.js                                                 0.72 KiB
.svelte-kit/output/server/chunks/_ComponentHeading-282ac7b1.js                                            1.16 KiB
.svelte-kit/output/server/chunks/_ComponentImport-d51b2d42.js                                             3.95 KiB
.svelte-kit/output/server/chunks/_ComponentTabbedLinks-cbbeff66.js                                        1.97 KiB
.svelte-kit/output/server/chunks/_FrameworkSelect-97fcf6f2.js                                             4.67 KiB
.svelte-kit/output/server/chunks/_Docs-5fb167ef.js                                                        3.48 KiB
.svelte-kit/output/server/chunks/ComponentApiTable-89e461be.js                                            6.81 KiB
.svelte-kit/output/server/chunks/_Docs-8bd6c9da.js                                                        3.73 KiB
.svelte-kit/output/server/chunks/_Docs-be6bfd65.js                                                        12.22 KiB
.svelte-kit/output/server/chunks/_Docs-fb698c1e.js                                                        10.89 KiB
.svelte-kit/output/server/chunks/AttrWord-1470a0fa.js                                                     1.32 KiB
.svelte-kit/output/server/chunks/_Docs-69861e75.js                                                        3.59 KiB
.svelte-kit/output/server/chunks/_Docs-9e5c2355.js                                                        12.56 KiB
.svelte-kit/output/server/chunks/_Docs-68f8f364.js                                                        10.91 KiB
.svelte-kit/output/server/chunks/_Docs-c9473dde.js                                                        10.14 KiB
.svelte-kit/output/server/chunks/_Docs-ebd8247c.js                                                        13.64 KiB
.svelte-kit/output/server/chunks/_Docs-e494758c.js                                                        3.71 KiB
.svelte-kit/output/server/chunks/_Docs-bacd005a.js                                                        4.68 KiB
.svelte-kit/output/server/chunks/_Docs-d98ef616.js                                                        16.97 KiB
.svelte-kit/output/server/chunks/_Docs-3b1d8db3.js                                                        9.91 KiB
.svelte-kit/output/server/chunks/_Docs-13b75197.js                                                        10.39 KiB
.svelte-kit/output/server/chunks/_Docs-d1d327f0.js                                                        4.37 KiB
.svelte-kit/output/server/chunks/_Docs-797db575.js                                                        14.45 KiB
.svelte-kit/output/server/chunks/_Docs-2abca0db.js                                                        17.47 KiB
.svelte-kit/output/server/chunks/_Docs-29419d72.js                                                        19.22 KiB
.svelte-kit/output/server/chunks/_Docs-028b1e00.js                                                        25.88 KiB
.svelte-kit/output/server/chunks/_Docs-02278110.js                                                        3.23 KiB
.svelte-kit/output/server/chunks/DocSearch-8379eedd.js                                                    0.76 KiB

Run npm run preview to preview your production build locally.

> Using @sveltejs/adapter-auto
  Could not detect a supported production environment. See https://kit.svelte.dev/docs/adapters to learn how to configure your app to run on the platform of your choosing
  ✔ done

System Info
System:
    OS: macOS 12.0.1
    CPU: (8) arm64 Apple M1
    Memory: 260.36 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.13.1 - ~/.volta/tools/image/node/16.13.1/bin/node
    Yarn: 1.22.17 - ~/.volta/tools/image/yarn/1.22.17/bin/yarn
    npm: 8.1.2 - ~/.volta/tools/image/node/16.13.1/bin/npm
  Browsers:
    Chrome: 98.0.4758.102
    Firefox: 97.0.2
    Safari: 15.1
  npmPackages:
    @sveltejs/adapter-auto: ^1.0.0-next.30 => 1.0.0-next.31
    @sveltejs/adapter-vercel: ^1.0.0-next.0 => 1.0.0-next.0
    @sveltejs/kit: ^1.0.0-next.288 => 1.0.0-next.295
    svelte: ^3.46.4 => 3.46.4

Severity
annoyance
Additional Information
No response

About the table layout (or tree layout), it would have to be done in Vite. So I don't think there's much SvelteKit can do now other than Rich's suggestions. You can send a PR in Vite if you'd like and I can review it there though.

Awesome thanks. I'll get a PR up in Vite and reference this issue.


Async Await tasks

Raising an issue because I don't know where else could I ask this.
Assuming I have this taskfile.js
export default async function (task) {
  await task.clear().start('build');
}

export async function build(task) {
  await task.parallel(['scripts', 'styles']);
  await task.start('uglify');
}

I run the build task using
taskr build

How do I convert the taskfile.js to use the programmatic option?

const Taskr = require('Taskr');
const taskr = new Taskr({
  tasks: {
  }
});

taskr.start('build');

Can I use functions that return a Promise as Taskr tasks? If so how, because I can't figure it out.

For example I have a clean function:
function clean(pattern, options) {
    new Promise((resolve, reject) => {
      rimraf(pattern, { glob: options }, (err, result) => (err ? reject(err) : resolve(result)));
    })
}

This sits within its own file and is exported as such. How could I use this to define a taskr task and use it in my workflow?
Thank you.

Hey!

Unfortunately, you can not use async/await syntax in programmatic API. You need to use generators and yield keyword. More can be found here

If i got your question right, you should wrap your function in bluebird coroutine for correct work.

Hey @radum
Without @taskr/esnext, you can only use async/await if your version of Node supports it. This means 7.4+ (with flag) or 8.x.
As @hzlmn said, you can only use the esnext package with a taskfile. Again, for programmatic usage, your Node version must support async natively.
const Taskr = require('Taskr');
const { build, clean, default } = require('./my-tasks');

function * default (t) {
  yield t.serial(['clean', 'build'])
}

const taskr = new Taskr({
  tasks: { build, clean, default }
});

taskr.start(); // runs "default"

For your second question, you can await (or yield) any Promise. Your clean task is missing a return statement, which means the Promise never leaves the function.
function clean(pattern, options) {
    return new Promise((resolve, reject) => {
      rimraf(pattern, { glob: options }, (err, result) => (err ? reject(err) : resolve(result)));
    })
}

Although, I would recommend using the @taskr/clear package instead.
Hope that helps~


Check number and types of args passed to RawKernel function?

Hello CuPy developers,
I noticed that if you pass the wrong number or types of input arguments to RawKernel that CuPy crashes. What do you think about adding some checks?
source = "extern "C" __global__ void test(float *arg1, float *arg2, const int n) {  } "
test = cupy.RawKernel(source, "test")
grid=(1,)
block=(1,)

# 1. Too few input arguments
args = (arg1, arg2)
# Segmentation fault (CUDA_ERROR_ILLEGAL_ADDRESS)
# test(grid, block, args)

# 2. Too many input arguments
args = (arg1, arg2, arg2, n)

# 3. Wrong type for input argument #1 (0-based)
args = (arg1, n, arg2)

If you think it is a good idea, I would be happy to try to contribute a PR.

IMHO this is a very hard task with potentially non-negligible overhead, which I strive to avoid. The problem with RawKernels/RawModules is that they also support template arguments, texture objects, struct inputs, etc, whose types are not easy to deduce if not impossible. My 2 cents is that if users are brave enough to write their own CUDA C++ kernels, it should be fairly easy for them to detect issues like these.
For the problem No.2, we actually hit this issue before, and to me it's a bug in CUDA driver API.
I think your suggestion may well align with the ongoing JIT work #3392. There it'd be much easier to detect argument numbers and types by inspecting the Python objects (as opposed to pure code strings here).

Thank you for your detailed explanation and for your input. I didn’t think about how complicated it can get when you need to support type deduction for structs and template parameters. Also, I agree that you definitely don’t want to add a lot of overhead for having a little bit of convenience.
I am pretty good at making mistakes, especially when the kernel has to take in a lot of args. What I will probably do for now is to write my own python function that will use some regex to parse the function signature and do some type checking for constants and pointers, but without supporting structs and templates.
The JIT work looks really interesting and promising.

What I will probably do for now is to write my own python function that will use some regex to parse the function signature and do some type checking for constants and pointers, but without supporting structs and templates.

@ooreilly It would be great if you could point me to how you achieve this with regex! 🙂 I am not a regex user but I know it can be very powerful. I might be able to apply a similar approach elsewhere.

@leofang sorry it took a while for me to get back to you, busy day here! I agree with you, regex is really powerful.  I was able to get started on checking the number of args with regex. Usually, what I do when I try to build something with regex is to use this nice tool: https://regexr.com/. If you copy and paste the regex below (with some small modifications) into regexr.com, it can explain it piece by piece. Here is the key code I ended up with:
import re
regex = r'extern\s+"C"\s+__global__\s+void\s+%s\s*\(([\w\W]+?)\)' % function
pattern = re.compile(regex, re.MULTILINE)
match = re.findall(pattern, source)

and here's the complete code I wrote: https://github.com/ooreilly/cucheckargs. I hope you find it useful. Note that I haven't done any type checking yet (just number of args). I'll save that for another day. Let me know if you have any questions or if there's anything I can do to help.

Thanks, @ooreilly! Already bookmarked your repo and regexr.com (looks like a nice resource) 👍
Maybe I should move the discussion to your repo. Your regex line made me wonder if there's an easy way to parse multiple kernels in a common extern block? Something like this:
source = r'''
extern "C" {
__global__ void x1(float* y) {}
__global__ void x2(double* y) {}
}
'''

Nice!
Sure. Up to you if you want to continue the conversation there. Yes, what you are asking for should be possible to do in a single pass. I can try to do that on Thursday for you. You could also do a double pass where you first search for the extern "C" block and then extract each function in a second search. Do you want to grab all functions within the extern block or just a specific one?

@leofang I'm pretty sure the log_stream method you and I added should have caught this error just as if you compile directly with NVCC/NVRTC.
I agree with @leofang that while the regex feature would be useful, it also chips away at the speed-of-line performance.
@ooreilly Would you might giving it a try and let us know the output? https://docs.cupy.dev/en/stable/reference/generated/cupy.RawKernel.html#cupy.RawKernel

@mnicely I thought @ooreilly's problems happen at kernel launch time, not at compile time?

Oh okay. Completely missed that. Is there any cuda error checking built-in? That could be activated by passing a flag? I’ve never thought about it until know. Use it when your developing/debugging and turn it off when your finished

Is there any cuda error checking built-in?

Yes, for CUDA driver/runtime API and other CUDA libraries we check the return value and convert it to Python exceptions, for example here:
https://github.com/cupy/cupy/blob/ed52a652ed9fb30b9c78378cad2aa38a45526eeb/cupy_backends/cuda/api/driver.pyx#L122-L124
The problem, at least in his 2nd example, is that CUDA driver API would actually return CUDA_SUCCESS despite that the argument number mismatches with what's declared in the kernel. I suspect cuLaunchKernel doesn't really check (or have no way to check) this.

I suspect cuLaunchKernel doesn't really check (or have no way to check) this.

We might need to file a bug. Having too many parameter should return a illegal address error

You know, one nice thing I enjoy when working with NVIDIA people is that there's always someone kind enough to do this for me so that I never have to file bugs myself 😂😂😂

@leofang No problem. I just need a few days to create an example to submit. I'm swamped with my new position!

Haha, no pressure Matt! (And congrats!)

@leofang, I finally had time to update the regex function to handle extern blocks.


Add ext-exif in composer

This library needs ext-exif when using php 7.3

We check for the existance of exif_read_data() before we use it.
So this ext-exif shouldn't be in the required section, it should be in the suggests section.


(chore) Remove unused versions in mergify backports

What is the purpose of the change
This PR removes unused osmosis versions from mergify backporting candidates.
This is not strictly necessary but it helps to avoid some confusion. Recently I had to backport a state-compatibility check PR to all working  osmosis versions and I backported it to versions that shouldn't be used (e.g. https://github.com/osmosis-labs/osmosis/pull/3026).
Brief Changelog

Remove unused versions in mergify.yml

Testing and Verifying
This change is a trivial rework / code cleanup without any test coverage.
Documentation and Release Note

Does this pull request introduce a new feature or user-facing behavior changes? no
Is a relevant changelog entry added to the Unreleased section in CHANGELOG.md? no
How is the feature or change documented? not applicable

I think they can be removed.


Fix Split lines not words

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls


Can't create C# files: csproj.CopyComplete cannot be created

Godot version: Mono 3.0.3
OS/device including version: Windows 8.1 Enterprise; GPU is AMD Radeon 6700
Issue description:

I installed Godot 3.0.3 with Mono support (64-bit)
I installed the most recent Mono 5.10 version available
I created a new Godot project on my E: drive
I created a new Scene called Player
I added some nodes (kinematic body, color rect, collision)
I tried to add a new C# script file (`Player.cs' by default)
I received this error (screenshot attached):

Message: The file "E:\Release\GodotSharp.csproj.CopyComplete" cannot be created. Could not find a part of the path "E:\Release\GodotSharp.csproj.CopyComplete."
Code: MSB3771
Type: error
File: C:\Program Files\Mono\lib\mono\msbuild\15.0\bin\Microsoft.Common.CurrentVersion.targets
Line: 4352
Column: 5
Project: C:\users\<user name>\AppData\Roaming\Godot\mono\solutions\5516124489248431140_2_3\GodotSharp\GodotSharp.csproj

Steps to reproduce:

Create a Mono Godot project and try to create a script file.

Minimal reproduction project:
GodotExperiment.zip
NB: before this, I tried converting a .gd script in a previous project into a C# project, and I received a completely different set of errors.
After doing this, I do see the .sln, .csproj, and .cs files on disk (including AssemblyInfo.cs.  I think the root problem is something to do with the hard-coded path C:\Release or E:\Release (which doesn't exist).
Sorry in advance if this ends up being environmental or a Mono problem and not a Godot issue.

You need to use Mono 5.12 for it to work.
Also, The latest Stable Mono release is: 5.12.0 Stable (<IP_ADDRESS>)

I had the problem too with Mono 5.10, but I figured it by creating the Release folder under the mentioned drive as your E:\Release\. But overall, the best option is to upgrade the mono as @CloudAlRio said.
FP: Maybe Godot could warn users on misconfigured mono i.e. before solution build?

I made some progress on this issue, but didn't see your comments until now. I will try upgrading and report back what the results are.
Can someone please update the documentation page here? I can do it myself if you can let me know what the correct requirements are.
Currently, it says:

To use C# in Godot you must have Mono installed. Godot 3.0.2 requires Mono 5.4, 3.0.3 requires Mono 5.10 on Linux and Windows, [...]

It should either be changed to [...] requires the latest version of Mono or [...] requires Mono 5.10 [...]. I purposely installed 5.10, knowing it was not the latest, because I wanted to maximize the chance of Godot integration succeeding.

Can someone please update the documentation page here? I can do it myself if you can let me know what the correct requirements are.

It's fixed in the master ("latest") branch, but not the 3.0 branch. CC @mhilbrunner Some cherry-picks missing from 3.0?

I deleted the Release directories, upgraded to Mono 5.12, and I can at least build and run the project.
But I see some other problems:

With my KineticBody2D entity instance, the C# class code doesn't seem to execute
With a dummy RigidBody2D entity instance, I can see exceptions thrown in the C# side showing up in the Errors tab of Godot; GD.Print statements don't appear.

I guess I can live with this for now. It's technically working. I'll see if the other issues are covered elsewhere and/or open new issues for those.
Thanks! (Feel free to reopen if you're using this to track the required documentation change.)

I'm using the latest version of Mono and the latest version of Godot, both downloaded today from official websites. It still tries to create that file in G:\Release which doesn't exist.

This issue is still present. Downloaded Godot x64 3.0.6 (Mono) with mono-<IP_ADDRESS>1-x64 and it requires a Release folder to be created in the root folder of my disk. So when I made H:\Release it compiled just fine. Without, it doesn't.
OS: Windows 10 x64

Using Win 10 64 bit with Godot 3.0.6.stable.mono.official.8314054 with Mono JIT compiler version 5.12.0 (Visual Studio built mono) both 32bit versions.
Error: C:\Program Files (x86)\Mono\lib\mono\msbuild\15.0\bin\Microsoft.Common.CurrentVersion.targets(4384,5): error MSB3371: Die Datei "D:\Release\GodotSharp.csproj.CopyComplete" kann nicht erstellt werden. Could not find a part of the path "D:\Release\GodotSharp.csproj.CopyComplete".
Creating the Release folder seems to work, but then crashes Godot. It also crashes when loading the project again. Is there any log file I can post here?

Same deal -- using Godot 3.0.6 x64 with Mono support, Mono 5.12 installed.  Had to create the release folder manually then it worked fine.

Same for me too. Empty scene but with an icon tried to creat a script and got the same error.
Godot Engine v3.0.6.stable.mono.official.8314054
Mono for Windows (x64) <IP_ADDRESS>1

This is still a problem for me.

Looks the same as #21834 which was fixed by #25177. What version of Godot are you using? Do you have the same issue with 3.1 beta 4?

@neikeq - that's a good call - I hadn't tried the dev versions. This problem is not present with 3.1a3. Keep closed!


Work Complete

Great bussiness scenario, detailed and smart! Here is the completed version, let me know if there are fixes to be made.

Great thanks for that, please find my comments.

All sorted thanks so much!! Just want your advice regarding it as 2 or 1 constraint.

Sure!


Chrome OS: A Linux or its own world?

I noticed that Chrome OS, a Gentoo-based Linux distribution (cue terminology discussions here... ;-)), is listed as its own category. Is there a technical reason for that, especially as the PlayStation's operating system is listed as "BSD"?

Good point. I think from the user's perspective, it would make more sense to show a that someone using Chrome OS visited their site as opposed to having it displayed as Gentoo. Like you said, maybe in that case it makes more sense to move PlayStation to "Others" as opposed to be under BSD. Thoughts?

Or maybe add a category for gaming consoles?

That will work, probably the same as the browsers then.


eval.py execution

I trained the latest code with default parameters and when executing the same eval.py with the proper directory name, I am getting this output:
Parameters:
ALLOW_SOFT_PLACEMENT=True
BATCH_SIZE=64
CHECKPOINT_DIR=./runs/1466501212/checkpoints/
LOG_DEVICE_PLACEMENT=False
Evaluating...
Total number of test examples: 2
Accuracy: 0
Why am I getting accuracy as '0'?

Hello! I just got the code updated 10 days ago and I'm getting a 50% accuracy on a test set of 2 examples. I'm wondering why the test set is only 2 examples now, as the dataset was significantly larger.

The change was to make it easier to evaluate your own data by modifying the eval.py. I added back the option to evaluate on all training data in https://github.com/dennybritz/cnn-text-classification-tf/commit/6dbd02a2b227b8cb442793eb405a3889d32c623c using this:
./eval.py --eval_train --checkpoint_dir=...


Add internal, parameterless ctors for generated proxies

Mocking libraries, like Moq, are based on
Castle.Core and rely on its functionality for
generating dynamic proxies. This is only possible
when there is an accessible parameterless constructor.
This changes re-adds such constructors to several
base types. They are marked internal and obsolete
so that nobody accidentially uses them in "real" code.
To allow Castle.Core to access them altough they are
internal we expose our internals to the dynamic proxy
assembly.
Long-term we should expose interfaces instead of
abstract classes at IFileSystem.
Fixes #355

@herebebeasties This is my take on #355. It's ugly but it works :/

I added some tests to ensure that all properties exposed at IFileSystem can be mocked to prevent running into this problem again. Doing this I found that one of them was missing, but now it seems to be complete.


--allow-iframe do not work

Hello,
When trying to include wetty in an Iframe, even by loading wetty with the option "--allow-iframe" I got an error : Refused to display 'http://localhost:3000/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
Is there a way to resolve this ?
Thanks a lot !

Are you using any proxy? If not, how does your setup look like?

Hi,
No proxy ... Anyway I have modified and rebuild the source by removing the part that use helmet and now it works. Thanks

this shoudl be fixed in 2.2.1

This issue is still not fixed for me. Version 2.3.0
wetty.service
[Unit]
Description=WeTTY
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/bash -c "wetty --host <IP_ADDRESS> -p 3000 --title 'Linux'  --allow-iframe"
Restart=always
RestartSec=2
TimeoutStopSec=5
SyslogIdentifier=wetty

[Install]
WantedBy=multi-user.target

curl -I output:
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Thu, 10 Feb 2022 07:36:40 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 1123
Connection: keep-alive
Content-Security-Policy: default-src 'self';script-src 'self' 'unsafe-inline' 'unsafe-eval';style-src 'self' 'unsafe-inline';font-src 'self' data:;connect-src 'self' ws://live.ashutoshpatole.me
X-DNS-Prefetch-Control: off
Expect-CT: max-age=0
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Download-Options: noopen
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: no-referrer-when-downgrade
X-XSS-Protection: 0
ETag: W/"463-sU/26veHuUBEvMiP/7q1LeC8l5E"
Vary: Accept-Encoding

Adding x-frame-option to nginx results in duplicates x-frame-option headers.
Am i missing something else?


[docs] Add TS demos for guides/interoperability

[x] I have followed (at least) the PR section of the contributing guide.

Tests Passed
yarn docs:typescript:check and yarn docs:typescript:formatted

@limatgans Thank you!


Misc write behind improvements / cleanup

As noted on the PR #544 over issue #543, there are potential cleanups to be done in writebehind:

No rate limiting when batch size is 1? See AbstractWriteBehindQueue
Try to extract out the commonality between processBatchedOperations(...) and processSingleOperation(...). See AbstractWriteBehindQueue
Improve time related settings to be a long + TimeUnit combination and use a common time unit inside the code

@chrisdennis How much of this issue is made obsolete by your work on #350?

Quite possibly all of it... but I'd probably leave this open until #350 is done so we know for sure.  Let me mark this as blocked until #350 is done, that way no one will pick it up in the meantime.

obsolete because of the changes that went into write-behind recently


Windows detection

Does this https://github.com/aspnet/Extensions/pull/424 issue apply to these places: https://github.com/aspnet/SignalR/search?q=Environment.OSVersion.Version&type=Code

It is also used by the .NET client to determine whether the client supports websockets - https://github.com/aspnet/SignalR/blob/78a0a68cd161e91e80d740e39e8548532e236d5d/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs#L574-L592

Take a quick look at this @BrennanConroy in case we need to make this change in our prod code.

I took a look and we should be OK. The problem is that OS Version gets fuzzy between Windows 8 and Windows 10. However, we just need to be able to detect we're on at least Windows 8, which we are able to do.
I'm comfortable closing this until we hear customer feedback that there's an issue here.


[QNN] Max_pool2D op

This PR serves as a medium to discuss the design in the Issue - https://github.com/dmlc/tvm/issues/3617
Full credits to @rankyung-hong for the code implementation.

@tqchen @u99127 @yzhliu @jackwish Please review.

Thanks @FrozenGene and @jackwish
Looked into more details in TF and MxNet. You are correct. It does not make sense to have different quantization params (zero_point/scale) for input and output.
Therefore, in this case, we don't even need qnn.max_pool2d, because we can directly call nn.max_pool2d from the framework parser. I will ensure while working on the framework parser to make a check that the input and output quantization params are exactly same.

For completeness, adding the quantized_pool2d from MxNet here
https://mxnet.incubator.apache.org/api/python/symbol/contrib.html#mxnet.symbol.contrib.quantized_pooling
Pooling operator for input and output data type of int8. The input and output data
comes with min and max thresholds for quantizing the float32 data into int8.

Yes. I think doesn't need q_max_pool2d in your design. You just make sure the output_min / output_max is right when we have fused activation functions (if we are parsing TFLite model), which could be done in the frontend parser inserting clip.

Closing as this is not required for TFLite. Will revisit MxNet requirements and open up if need be


Cubic does not fully utilize the cwnd

Hello all,
I am currently working on my Bachelor thesis and during this, we assess the responsiveness of Quic flows. For that, we leverage the Spin Bit to divide the sending behavior of a flow into seperate cycles which we then compare against each other. To do so, we enabled the Spin Bit mechanism with s2n-quic to correctly spin the bit.
After that we conducted tests to monitor a flow's sending behavior.
We have conducted several experiments with our testbed consisting of a server and client machine which are connected via a bottleneck machine that resides in the middle of them. On that machine we also introduce delay to emulate different RTTs.
Problem:
When conducting experiments in which the server has to sent a 100 MB file to the client over the bottleneck machine which uses a tail-drop queue and a datarate of 50 mbit/s, at RTTs of 50 ms and more, the server does not fully use the available cwnd when Cubic is used.
In Figure cwnd_vs_sent_and_in_flight_bytes_s2nquic_DropTail_Drop_BDP_1.0_50ms.pdf we have visualized the sending behavior for the first 50 cycles for a flow at 50 mbit/s datarate and 50 ms RTT sending a 100 MB file using Cubic. The red dots show the cwnd that is outputted from the logging files while the green dots represent every available information about the bytes in flight. The blue dots represent the amount of bytes that were newly send accumulated for one spin cycle.
Altough the cwnd (red) allows for more data to be sent (819,510 bytes) the bytes in flight never exceed about 545,000 bytes. Moreover, the flow is not congestion limited as we also monitor the tail-drop queue which during this connection never dropped a packet.
We have attached the logging files from server and client which we slightly adapted to output some more information for our experiments. However, besides the adaption to the logging file output and the proper use of the Spin Bit we have not changed anything to the stack.
We used the interop server and client from 's2n-quic/target/release/s2n-quic-qns interop server/client'`.
The logging files for both can be found here:
server_37337.log.zip
client_3073.log.zip
We do not see any reasonable issue that prohibits the sender from using more of the available cwnd therefore, we report this issue. Maybe there is a misconfiguration with Cuic?
Thanks in advance
Lars

Thanks for the issue Lars!
I see you are using the interop server and client. These aren't ideal for measuring performance as you may be encountering bottlenecks with disk IO, etc. Could you try running your experiments using the perf server and client? It is also in the s2n-quic-qns app:
 ./target/release/s2n-quic-qns perf client --help
 ./target/release/s2n-quic-qns perf server --help

Hello Wesley,
thanks for your fast reply and the hint to the perf server and clients.
As shown here the results look much better now.
Thank you
Lars

Glad the results look much better! I'll close this, feel free to re-open if you have further questions.


[IRGen] Don't try to emit single payload CVW for incompatible multi p…

…ayload enums
rdar://137954177
There was a missing condition in the branch that caused the compiler to try to emit a single payload enum compact value witness for multi payload enums, when the multi payload enum contained an incompatible case.

@swift-ci smoke test


Update google-auth-library-oauth2-http to 1.18.0

About this PR
📦 Updates com.google.auth:google-auth-library-oauth2-http from 1.10.0 to 1.18.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.auth", artifactId = "google-auth-library-oauth2-http" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.google.auth", artifactId = "google-auth-library-oauth2-http" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #82.


Fix display name when connecting svc to repo

It seems more common to expect the format to be {org}/{repo} as that is common with most hosted VCS suppliers.

😂 thanks @rcrowe great catch!


parser: support expression restored string in default value.

What problem does this PR solve?
Now the default value in columnInfo has been evaluated.
but in some cases, the default value is dynamic, needing to be evaluated every time call it.
It's a little bit like a generated column, so we store the expression restored string in default value.
So we need a field to judge the default string is whether the common_string or expr_string.
after this pr:
create sequence seq
create table t(a int default next value for seq)

the a's default value will be a string equal to "nextval(seq)"
the  field DefaultIsExpr in columnInfo of a will be true.
linked TiDB PR:
What is changed and how it works?
Check List
Tests

Integration test

Code changes

Has added fields in columnInfo

LGTM.
BTW is it also true for DEFAULT CURRENT_TIMESTAMP?

Not really, CURRENT_TIMESTAMP has mysql flag to judge it.


Single instance of Kroxylicious with port-per-broker exposition not resilient to restart/crash

Describe the bug
Given we have a single Kroxylicious instance proxying a 3-node broker and it has a single Producer connected and sending data to all brokers. If Kroxylicious it is killed (by deleting the pod), then when it comes back up the existing Kafka producer is left in a bad state, unable to connect to the brokers.
Tested by deleting the kroxylicious pod while running the producer performance test bundled with kafka (uses the high level java Producer). The producer performance test spews messages like:
[2023-06-27 22:05:10,277] WARN [Producer clientId=perf-producer-client] Connection to node 2 (kroxylicious-service/<IP_ADDRESS>:9295) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2023-06-27 22:05:11,047] WARN [Producer clientId=perf-producer-client] Connection to node 1 (kroxylicious-service/<IP_ADDRESS>:9294) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2023-06-27 22:05:11,247] WARN [Producer clientId=perf-producer-client] Connection to node 0 (kroxylicious-service/<IP_ADDRESS>:9293) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2023-06-27 22:05:11,348] WARN [Producer clientId=perf-producer-client] Connection to node 2 (kroxylicious-service/<IP_ADDRESS>:9295) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

and periodic large dumps of logs like:
org.apache.kafka.common.errors.TimeoutException: Expiring 148 record(s) for my-topic-0:120074 ms has passed since batch creation
org.apache.kafka.common.errors.TimeoutException: Expiring 148 record(s) for my-topic-0:120074 ms has passed since batch creation

I left it for 10 minutes before killing the test, was wondering if it would eventually refresh the metadata using the bootstrap address but it appears not to.
To Reproduce
Steps to reproduce the behavior:

Start kroxylicious on minikube minikube delete && QUAY_ORG=${your_quay_id_here} ./scripts/run-with-strimzi.sh
Run command kubectl -n kafka run kafka-producer -ti --image=quay.io/strimzi/kafka:0.35.0-kafka-3.4.0 --rm=true --restart=Never -- bin/kafka-producer-perf-test.sh --topic my-topic --producer-props bootstrap.servers=kroxylicious-service:9292 --num-records 20000000 --record-size 100 --throughput -1
Wait for the test to report throughput a couple of times and then delete the pod like kubectl delete pod -nkafka kroxylicious-proxy-7df874b999-nrtrg, fill in your pod name here.

Expected behavior
Recovery of the Producer within some time period.
Additional context
The series of events is likely something like:

producer connects to bootstrap port (bound on startup by Kroxylicious) and requests metadata
Kroxylicious intercepts metadata response and binds a port per broker. Responds, telling producer how to address those ports.
Producer connects to the broker ports and gets producing
Kroxylicious restarts, only the bootstrap port is bound
Producer keeps trying to reconnect to broker ports, metadata is not requested again on the bootstrap port so we can't drive port-per-broker binding.

Some brainstorming of options (may be rubbish, off the top of my head :grin: ):

Give Kroxylicious power request metadata itself with an admin client.
Make kroxy stateful so it can get at the last metadata for a target cluster somehow, probably requires some external storage.
Bind all the ports on startup, and make them do something on the initial connection like connect to the target bootstrap address, request metadata, wait for the response and then close the channel. Then on subsequent calls they can proxy to the correct broker.
Offer a more clunky, non-dynamic style. Pre-bind a port per broker and use a pattern to construct the target address to connect to. So if I get a connection on 9193, I know it's broker 1 and then use pattern ${nodeId}-real-broker.internal.kafka:9192 to connect.

Created a hacky implementation of option 3 to see if it could work (prebind the ports, request metadata if one of the broker-ports is hit, trigger reconciliation and close connection). https://github.com/robobario/kproxy/tree/spike-prebind
It recovers in this simple test, but I don't know if it would work with SASL connections (can we request broker metadata before authentication? need to understand the flow there)

It recovers in this simple test, but I don't know if it would work with SASL connections (can we request broker metadata before authentication? need to understand the flow there)

SASL will request metadata before doing authentication, so it should be fine. BUT, SSL_SASL will need to do SSL handshake -> metadata request -> SASL authentication, so, not sure if it works in this case

OK, checked the code, and I was wrong. It turns out the request before SASL authentication is API_VERSION, not METADATA we wants. So, that means all metadata request will go after authentication. FYI
https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/server/KafkaApis.scala#L1860C1-L1860C1

Thanks @showuon !

 Give Kroxylicious power to request metadata itself with an admin client. More configuration for the user.

2. Make kroxy stateful so it can get at the last metadata for a target cluster somehow, probably requires some external storage.

3. Bind all the ports on startup, and make them do something on the initial connection like connect to the target bootstrap address, request metadata, wait for the response and then close the channel. Then on subsequent calls they can proxy to the correct broker.

4. Offer a more clunky, non-dynamic style. Pre-bind a port per broker and use a pattern to construct the target address to connect to. So if I get a connection on 9193, I know it's broker 1 and then use pattern `${nodeId}-real-broker.internal.kafka:9192` to connect.

I'd vote for option (2), which should be the easiest solution. We need to make sure we flush the metadata into the persistent storage before responding to clients. We can also store some more info when we support kroxy cluster in the future.

We had some discussion not too long ago about using a compacted kafka topic for state, so I guess in that case we'd have to configure Kroxylicious with properties to consume/produce from a kafka (the user could point it at their existing cluster).

Need to look at what happens in the SNI case, the port will be bound but I guess that it won't know the address to forward to (vaguely recall code that would use the upstream bootstrap address?)

Need to look at what happens in the SNI case, the port will be bound but I guess that it won't know the address to forward to (vaguely recall code that would use the upstream bootstrap address?)

Yeah I think SNI does something similar but can't point to the code quickly.
Personally I'm leaning towards 3.
Option 2 seems like a useful fall back but I'd like to avoid the additional config of managing users/acls/service accounts if possible.

For option 3, I think we could work around the SASL auth by only intercepting the non-SASL-related messages (and non-ApiVersions). So we would discard and request metadata after SASL auth has completed.

I think 3 is the way to go too.  In the PortPerBroker case, it does have the disadvantage that Kroxylicious will have ports open needlessly in the case where the cluster is smaller than the actual cluster.  I suppose this doesn't matter too much.
I have a feeling  we might need to solve #351 before the the solution will work well in the case where Kroxylicious is restarted whilst clients are connnected.

I'd like to work on this issue.

I gave it a spike when I created the issue if it's any help @k-wall, code is very scrappy but maybe the concept could be pulled out. The implementation includes:

Add some state to VirtualClusterBrokerBinding so that the binding knows if in this inital state.
Call the endpoint reconciler to do the binding after the bootstrap port is bound, for all brokers up to maxNumBrokers. As part of this call we have to tell the reconciler that these are 'initial' bindings so the state can be set on VirtualClusterBrokerBinding.
When we are setting up the Filters for a binding, if it's in the initial state, instead of adding the BrokerAddressFilter we add a new filter that knows how to forward until we can send a metadata request to the broker.
When we intercept the next message, we instead send a metadata request and drive endpoint reconciliation on the response, then close the connection (needs a method on the KrpcFilterContext).

Not sure what the SNI side would look like with this implementation, you could add in some amount of VirtualClusterBrokerBinding the same way, maybe with a high default maxNumBrokers so most users would never have to configure it, like 128. Or maybe we could do it with regexes, like if we don't have a binding for 01-broker.kafka.internal and the pattern is ${brokerId}-broker.kafka.internal we could locate the matching virtual cluster and return a new VirtualClusterBrokerBinding referencing the upstream bootstrap and in the 'initial' state.


Crash w/ Lord of the Rings Mod

Minecraft v1.15.2
Forge v31.2.36
Block Carpentry v0.6.0
Lord of the Rings v1.7.1(Download is under snapshot 1.7)
I had placed the carpentry vertical slab, but when I right-clicked it with the Drystone from the lotr mod, the game crashed immediately.
Crash Report

Yup, same error as #1 , because these are non-vanilla blocks and the blocks are currently hard-coded. I'm working on a solution ^^
Thanks for reporting

Its not quite the same crash, the other one was a server only crash, but this one crashed me client-side only to the desktop.

Indeed, it's a different one. And it looks strange. I will fix it ASAP, but it might take some time since it looks pretty difficult...

It's most likely because that mod has its own connected textures system and doesn't know what to do when placed in the carpentry blocks.
For now, I'll just avoid using blocks from that mod with it.

I just tested this again, the crash still happens with Lotr v2.2 and this mod.
Crash Report

Is this the whole report? Because for me it ends with Line 6763
[17:49:39] [Render thread/WARN]: [OptiFine] Missing CTM sprite: minecraft:missingno, properties: optifine/ctm/minecraft/podzol_side
and there is no crash or any sort of fatal error 🤷♂
To be honest, I really don't know how to fix the original bug (connected texture causes crash), that's why I added the help wanted label

Whoops, I accidentally sent the latest.log instead. The link should be fixed now.


Fixed an NPE when copying text from a bot state message

related to #1443

Coverage decreased (-0.01%) to 57.201% when pulling 5c1a51767c3760e68c25bdc0adecfb873f7b93cd on jwilaby/activity-context-menu into e57d14ce9a2e9061810ca2cfd1f3aa725df51674 on master.


incomplete migration from ext4 hdd to btrfs

Do we need to manually fix/create any symbolic/hard links in the filesystem after a migration from ext4 setup (single partition layout) to btrfs? Perhaps if the layout changed?
After some issues with the first case I had for my new external sandisk ssd (the case that seemed to not work was a Sabrent brand), I then switched to a Ugreen case and was able to successfully get through the migration... or so I thought. The problem at the end seems to be that almost everything was restored except that the link /home/bitcoin/.bitcoin ---> /mnt/... seemed to point to nowhere after the migration. All the other data seemed to restore properly from what I can tell.
In an effort to show how I got there, it looked like this:

had already successfully exported a raspiblitz-*.tar.gz migration file from my prior blitz (pi 3b+, hdd) to my laptop.
in the new pi4, inserted a freshly flashed sd card with 1.5.1 raspiblitz release (only modification was adding wpa_supplicant.conf for wifi).
plugged in sandisk ssd 1.0tb drive in ugreen case, with all partitions removed, and also inserted a 32gb flash drive in the extra usb3.0 port on the pi.
power on.
ssh<EMAIL_ADDRESS>with password raspiblitz
after the hardware test ran automatically, I was greeted with "hardware looks good, have fun" (quite pleasant greeting actually, I like it!)
On the next screen I chose "migration"
Then chose btrfs
The btrfs setup then (seemingly) completed. There was one warning for each partition about "not most efficient" alignment, if I remember correctly. There was also some sort of "syntax error" (warning?) about /dev/fd/62 which I have no idea what it means. Nevertheless, the blitz proceeded to the next step.
It asked me to scp -r raspiblitz-*.tar.gz... from my laptop over to the blitz. I did that and it completed successfully.
Then it supposedly began restoring the old data. From what I could tell it was successful in this endeavor. It then asked whether to resync or copy the blockchain. I chose to sync it. It then rebooted (if I remember correctly).
After reboot, it asked me to set new password A, which I did.
Then it rebooted one more time, and I presumed it was syncing the blockchain at this point.

I logged in a bit later to check on progress. From being logged in as admin, I did something like sudo su - bitcoin and then tail -f .bitcoin/debug.log but the command could not be run since the the filesystem link .bitcoin --> /mnt/... seemed to be broken.
I am now wondering whether I should try to fix the layout manually, and if so, how?

I'm not sure if this is related, but when I brows the raspiblitz-..tar.gz archive, the file mnt/hdd/tor/info.log is 16GB. That seems abnormally large. I extracted the file and ran cat info.log | more  and paged through a bit. Things look normal at the beginning. However, when I try to view the tail using tail info.log it just hangs. When trying tac info.log I evenutally get a "tac: info.log: read error: Inappropriate ioctl for device" which, unfortunately, is beyond my understanding of this stuff.

Lastly, just to finish this out -- I manually redid some of the symbolic links and now it seems that things are working (blockchain syncing). I did not keep good enough notes as to exactly what I did to (seemingly) resolve it, so I'm closing this issue for now since it is probably not very helpful for anybody else.


typo: Double word "called"

@nschonni : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Method to leave math and inlineMath sections as is

Hi there, I've been messing with this package for a few days, trying to get my head round it!
So far, I've been able to achieve more of my objectives with this package than anything else I've tried, so thank you!
I should start by saying I'm new to LaTeX, I'm a TypeScript dev who has been tasked with making accessible HTML versions of some LaTeX documents.  I have already made a Markdown to accessible HTML tool, so what I'm trying to achieve here is to convert LaTeX to Markdown, then feed it through my existing pipeline.  I like converting LaTeX to Markdown as it strips presentation commands from the content in a way that's sort of straightforward to explain to mathematicians 😂.  What I'm aiming for is essentially Markdown with embedded TeX.
Now to the problem I'm stuck on...
Given this LaTeX to Markdown processor:
import { unified } from 'unified';
import { unifiedLatexFromString } from '@unified-latex/unified-latex-util-parse';
import { unifiedLatexToHast } from '@unified-latex/unified-latex-to-hast';
import rehypeRemark from 'rehype-remark';
import rehypeStringify from 'rehype-stringify';
import { State } from 'hast-util-to-mdast';
import { Element } from 'hast';
import { InlineMath } from 'mdast-util-math';

const file = await unified()
  .use(unifiedLatexFromString)
  .use(unifiedLatexToHast)
  .use(rehypeRemark, {
    handlers: {
      span: customSpanHandler
    },
  })
  .use(remarkMath)
  .use(remarkStringify)
  .process(`
    \\documentclass{article}

    \\begin{document}

    Hello $ C_L $ you.

    \\end{document}
  `);

function customSpanHandler(state: State, node: Element) {
  const { className } = node.properties;

  if (Array.isArray(className)) {
    if (className.includes('inline-math')) {
      const math = node.children[0] as Text;

      const result: InlineMath = {
        type: 'inlineMath',
        value: math.value,
      };

      state.patch(node, result);
      return result;
    }
  }

  return state.all(node);
}

console.log(String(file))
// Hello $C_{L}$ you.

You'll see I've fixed a problem already, where special characters like _ are being escaped by remark-stringify (I can create a PR for this if you are interested).
However you'll notice the curly braces have been added to the inline-math node.  I've checked this with MathJax and it seems quite happy with it, but is there a way to keep the math nodes as "verbatim" as possible?
Thanks.

unified-latex parses to an AST. Since C_L and C_{L} produce the same AST, they are indistinguishable to unified-latex. If you really want to keep the original string, you can look at the .position attribute on math objects and fetch the corresponding original string. You can then turn that into a unified-latex string, which won't be touched during further processing. (You probably don't want to do this, though. Unless you really trust the authors of the original source. unifiedLatexToHast prepares math strings for katex which is very similar to mathjax. Many people's tex code won't actually render in mathjax and you need to do preprocessing to get it ready for mathjax.)
I don't have an editor in front of me right now, but something like this (again, I don't promise this code works; it should give you an idea though.):
const source = `
    \\documentclass{article}

    \\begin{document}

    Hello $ C_L $ you.

    \\end{document}
  `
const file = await unified()
  .use(unifiedLatexFromString)
  .use(function () {
    return (tree) => {
      visit(tree, (node) => {
        if (match.math(node)) {
          node.content = [{
            type: "string",
            content: source.slice(node.position.start.offset, node.position.end.offset)
          }]
        }
      })
    }
  })
  .use(unifiedLatexToHast)
  .use(rehypeRemark, {
    handlers: {
      span: customSpanHandler
    },
  })
  .use(remarkMath)
  .use(remarkStringify)
  .process(source);

Thanks, I'll experiment with this!
I am expanding macros (and I intend to roll my own plugin to expand \DeclareMathOperator as well) so I assume this wont work, but will have a play to find out the true limitations.
I'm struggling to find the right keywords to search for here.. why are the curly braces added? Are they macro parameters? Why does the original maths work without them?
Just to explain why I care.. my colleagues and I have talked to visually impaired people who studied/are studying subjects with maths coursework, and found it's common that they prefer to just get hold of the the LaTeX source files, because they are compatible with a screenreader, or other assistive device.  So in my accessible HTML I'm planning to render the "spatial" maths with MathJax, but have an option to swap that out for inline code/fenced code blocks with syntax-highlighted LaTeX, if the user prefers.  So in this case, the LaTeX will be visible by the consumer.. which I realise is unusual!

The brackets are added during printing. You can look at the printRaw function which does printing without any formatting.
The reason the brackets are added is so that the resulting code is always valid. For instance, consider $_\text a$. This is interpreted by LaTeX the same as $_{\text{a}}$. However, if we do something like \mathrm \text a, this is interpreted as \mathrm{\text}a, which is invalid code. In actual tex _ and ^ and a named macro are all treated differently from each other. In unified-latex, they are all treated as macros (though ^ and _ do not have the \ escape character). The moral in the end is that it is very hard to tell when you can omit the curly braces and still have valid LaTeX. However, you can always include the braces and have valid latex.
 For example x_10 is actually x_{1} 0, not x_{10}.  And, even being experienced myself, I have misinterpreted LaTeX source before!
So, like I said, if you trust the authors, you can accept their source, but it might be better for your users to have consistent source over what authors tend to write.

I am expanding macros (and I intend to roll my own plugin to expand \DeclareMathOperator as well) so I assume this wont work, but will have a play to find out the true limitations.

Look in unified-latex/unified-latex for an example of expanding declared commands. Most of the framework should be there for you.

Thanks @siefkenj for the detailed answers!

The moral in the end is that it is very hard to tell when you can omit the curly braces and still have valid LaTeX. However, you can always include the braces and have valid latex.

That's great to know, so without braces is more of a shorthand.  I'll leave the braces in that case, as it seems probably easier for someone learning as it's more consistent/logical/straightforward.  If coursework authors complain I'll see what can be done in the printRaw function.
I'll close this issue 👍

Look in unified-latex/unified-latex for an example of expanding declared commands. Most of the framework should be there for you.

Yes, I have already found it and I'm using it.  I'm going to duplicate that functionality for \DeclareMathOperator today!
Would you like a PR prepared for unified-latex-to-mdast which fixes the incorrect escaping of math in Markdown?
I have also patched something else, however a PR maybe isn't as clear, but just in case it helps...
This test explains what I'm trying to do:
test('latex to markdown with sidenotes', async () => {
  const md = await processLatex(`
    Some \\textbf{bold} text.

    \\begin{framed}
    My content \\sidenote{and \\textbf{sidenote}}.
    \\end{framed}
  `);

  const expected = unindentString(`
    Some **bold** text.

    My content :sidenote[and **sidenote**].
  `);

  expect(md).toBe(expected);
});

I found that to accomplish the bold text inside the sidenote I needed to change this line to:
node.content === 'sidenote'
  ? (node.args || [])[0].content.map(toHast).flat()
  : (node.args || []).map(toHast).flat()

I am happy to create PR for this too if you like, or please tell me if what I'm doing is ill-advised!

No longer needed (at least for now)


fix: switch from rate to gauge

What does this PR do?
Fixes metrics type wrongfully documented as rate instead of gauge.
Motivation

Additional Notes

Review checklist (to be filled by reviewers)

[x] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[x] Changelog entries must be created for modifications to shipped code
[x] Add the qa/skip-qa label if the PR doesn't need to be tested during QA.

Could you remove the changelog? If you do not modify anything in the code, you should not have them.
Metadata, assets and tests don't need a changelog because they are not released

Ah I see, thanks for the information 👍

/merge


Support Column Ranges in MSBuild Canonical Error Locations

The msCompile problem matcher does not support the <line>,<start>-<end> location format. The
full list of MSBuild 'canonical erorr' formats is available in the MSBuild source code:
https://github.com/dotnet/msbuild/blob/94c28cca4cdb22f2cac279e3fd8d86aa4d061848/src/Shared/CanonicalError.cs#L12-L51

I think I've done the work required to add support for this in #154054

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Update labeler.yml path for source

#107 moved the source folder to follow convention. Updating the labeler so PRs are correctly labeled

I'm like 50% sure this will work based on the examples https://github.com/actions/labeler/tree/v4. Their test fixtures have indented spaces. It seems to be complaining about the # but that's also in their documentation with a preceding line break.


fix(ci): remove snyk from running on pull request

:tada: This PR is included in version 0.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: