[Youtube] throttling and inconsistent speed

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[ ] I've read about sharing account credentials and I'm willing to share it if required

Region
No response
Provide a description that is worded well enough to be understood
For the last couple of days I'm having constant throttling issues with Youtube downloads. It's the same on the latest public (2024.07.09) and nightly (2024.07.11) releases. I use yt-dlp by itself, with ytdlp-interface and with mpc-hc (I also use PotPlayer which has it's own way of delivering Youtube streams and it's also having trouble, but I don't know if it's relevant here). In all cases the speed I get is inconsistent, but consistently bad. It's usually hovering somewhere around 200KiB or lower, sometimes going up to 400-500 or having a rare spike of even faster speed. For some videos the base speed is better, for some it's worse, but I didn't had one downloading at a normal speed for a couple of days.
I've tried adding PhantomJS and I've stopped getting a warning about it, but the speed and it's inconsistency didn't really improved.
Also, when watching on the actual Youtube (in Firefox) I don't have any noticeable playback issues. It doesn't feel any slower to load the video or skip around.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=e8ehi-1FwUU']
[debug] User config "C:\Users\User\AppData\Roaming\yt-dlp\config": ['-o', 'c:/users/user/desktop/%(title)s.%(ext)s', '-r', '999K', '-f', '136+140', '--cookies-from-browser', 'firefox:ko0oafee.default-release']
[debug] Encodings: locale cp1251, fs utf-8, pref cp1251, out utf-8 (No VT), error utf-8 (No VT), screen utf-8 (No VT)
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds [cc1a3098c] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-7-6.1.7601-SP1 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 4.2, phantomjs 2.1.1
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.07.04, curl_cffi-0.7.0, mutagen-1.47.0, requests-2.32.3, sqlite3-3.35.5, urllib3-2.2.2, websockets-12.0
[debug] Proxy map: {}
Extracting cookies from firefox
[debug] Extracting cookies from: "C:\Users\User\AppData\Roaming\Mozilla\Firefox\Profiles\ko0oafee.default-release\cookies.sqlite"
Extracted 1195 cookies from firefox
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1834 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds)
[youtube] Extracting URL: https://www.youtube.com/watch?v=e8ehi-1FwUU
[youtube] e8ehi-1FwUU: Downloading webpage
[debug] [youtube] Extracted SAPISID cookie
[youtube] e8ehi-1FwUU: Downloading ios player API JSON
[debug] [youtube] Extracting signature function js_8d9f6215_109
[debug] Loading youtube-sigfuncs.js_8d9f6215_109 from cache
[debug] Loading youtube-nsig.8d9f6215 from cache
[debug] [youtube] Decrypted nsig mLbhvbt9lcHfXg2xqNA => LuTqjoDb154j6w
[debug] [youtube] Extracting signature function js_8d9f6215_105
[debug] Loading youtube-sigfuncs.js_8d9f6215_105 from cache
[debug] Loading youtube-nsig.8d9f6215 from cache
[debug] [youtube] Decrypted nsig VwS3V6ro-hTWB4onsBQ => TiCGZvfd9Iu7sA
[youtube] e8ehi-1FwUU: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[info] e8ehi-1FwUU: Downloading 1 format(s): 136+140
[debug] Invoking http downloader on "https://rr4---sn-gvnuxaxjvh-n8vd.googlevideo.com/videoplayback?expire=1720824020&ei=dFyRZunLDKmqv_IP-b6yoAg&ip=<IP_ADDRESS>&id=o-AM6fE97szfyB0QHyf3y6DN1YA4URRH64SjJC64rZhhwb&itag=136&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=kV&mm=31%2C29&mn=sn-gvnuxaxjvh-n8vd%2Csn-n8v7kn7y&ms=au%2Crdu&mv=m&mvi=4&pl=20&initcwndbps=762500&siu=1&bui=AXc671L83m4SFUlcVxtqgsp7NZrA6yPagMQZy6l7PiP0ih9BK1qnTI7BUYKV1c9hxg3JlZ-AhA&spc=NO7bAdTtcqmysz7c7NCgnLcxTzi2njcVfrLBjm2NE1z9FS2FaIfJnuWYFlCHAxBAr9gg_AaD8w&vprv=1&svpuc=1&mime=video%2Fmp4&ns=JfigxZQxmdTvHRE4Vq2DblMQ&rqh=1&gir=yes&clen=1747681569&dur=7075.066&lmt=1720670775794204&mt=1720802002&fvip=12&keepalive=yes&c=WEB&sefc=1&txp=7309224&n=TiCGZvfd9Iu7sA&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AHlkHjAwRAIgeOIdXTJjcTvAk9PwIS3A5aGcbhVVnZsYTlKWG2RWVHECIC8Oyalj5h856_nJR7m-2fNmKCewLUzWMFru6icAclOX&sig=AJfQdSswRAIgchPdmffm6X4IHBuPxVtCelmjO7C2FXe5_spuNvdBB9ECIHC2o8wPQXi56ujmLp5VMwdDdInJmD_BjmD6uhZj6ZT7"
[debug] File locking is not supported. Proceeding without locking
[download] Destination: c:\users\user\desktop\?#3rdAnniversaRyS?HOLOLIVE SONG KARAOKE ?? to CELEBRATE 3 YEARS HERE!!?3 Year Anniversary Stream?.f136.m
p4
[download]   0.3% of    1.63GiB at   85.55KiB/s ETA 05:31:27

Do you experience the slow download speeds w/o --cookies-from-browser too?

Yes. I started using cookies because I though it might help the speed situation. It didn't. Forgot to remove it.

Does passing --extractor-args "youtube:formats=dashy" help? You can also try passing -N 4 (or adjust the value as desired)

I've noticed this when downloading with -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]'.
It goes at full speed when downloading the .f137.mp4 format (video).
It slows down to less than 100 KiB/s when downloading the .f251.webm format (audio).

Does passing --extractor-args "youtube:formats=dashy" help? You can try additionally passing -N 4 (or adjust the value as desired)

Adding --extractor-args "youtube:formats=dashy" or -N 4 separately didn't change anything, but adding them both together did the trick. Speed is in 1MiB range, sometimes dipping to 800KiB or rising to 1.2MiB.

Does --extractor-args "youtube:formats=dashy" download the same thing but using a different protocol?
I can't understand that from the doc.

yes

I wasn't expecting it to help the playback in mpc-hc and it doesn't, but having fast download speeds back is great. Thanks.

I wasn't expecting it to help the playback in mpc-hc and it doesn't, but having fast download speeds back is great. Thanks.

--extractor-arg "player_client=mediaconnect" might help for playback in mpc-hc / mpv

Unfortunately it doesn't, at least for mpc-hc. Not by itself, not in combination with other parameters. I might try setting up mpv just to see if it's going to be any better.

Things are getting worse for me. Even with these parameters, what I'm seeing more and more is that the download will start fast, but then slow down to a crawl of 200~300KiB, sometimes getting faster, but then slowing back down. Downloads of audio files are the worst part. Their speed is all over the place, including 0, leading to timeouts.

I've tried 2<IP_ADDRESS>729 nightly build. So far, no noticeable changes. They probably haven't gotten to this yet. Will wait for the next one.

Downloads of f251.webm (audio) are failing altogether for me now.

@The11thPlague Can you please update to the latest nightly and see if the problem still occurs? If yes, please provide a verbose log.

The nightly version 2<IP_ADDRESS>701 can download f251.webm. Thank you!

Have tried 2<IP_ADDRESS>701. No noticeable difference in speed with and without --extractor-args "youtube:formats=dashy" -N 4. Without still ~200KiB. With still starts fast and slows down. I get read time outs more frequently, but it's the same on nightly or stable.

Tried 2<IP_ADDRESS>743. Everything is the same, so far. I'll stop reporting on each nightly build, until there's one that brings noticeable changes.

YouTube began it's grand server-side throttling. I can't get past 4.4MiB/s on download even with aria2c but month ago it was going full 30-100MiB/s...

m3u8 formats seem to be unaffected. You could try passing -S res,proto:m3u8, though this is not a solution if you need opus/251

For me it's the same with -S res,proto:m3u8. I've tried all video formats at 720p and 1080p, and all seem to act the same for me (136, 298, 311, 612, 299, 303, 312, 617).

YT enabled it's grand server-side throttling so now i can't download anything with speed more than 4MiB/s... Last month i could easily reach 25-80MiB/s download speed on long videos.

Please only reply to this issue if you have new information / a workaround / a solution, or if you have a question about what has already been discussed. Commenting only to complain about slow download speed is not productive.

Hello, as I can see by Yokosven's IP he is Russian. It is sad to say but Russian censorship seems to have started dropping random youtube packets (they stay it is due to google's GGC ineffectiveness in Russia but it anyway uses Ireland/Sweden servers so that's a lie. Also It's hard to believe that google itself will drop random packets). I have 184 Kib/s with yt-dlp now when downloading 4k60 fps. Also I have noticible throttling in youtube itself(but I think youtube behaves better with that than yt-dlp). By the way everything turns out to be ok for ipv6. (9 Mib/s). I think here may be a workaround for this problem. May be multiple parallel connections or something like this.

In my experience, throttling seems to be applied on a per-video basis: for a throttled video, all formats and protocols are affected, and switching between IPv4 and IPv6 (or even to a completely unrelated IP) doesn't bypass it either.
Also, throttling is "invisible" for yt-dlp, with the cli reporting high instantaneous download speeds that are clearly not accurate, and the verbose logs containing no warnings or new information.
Example of throttled video: https://youtube.com/watch?v=-rG84uvqrAI
Example of non-throttled video: https://youtube.com/watch?v=nzKWbpSNkmk
Does this line up with what other people here have experienced?

Hello, as I can see by Yokosven's IP he is Russian. It is sad to say but Russian censorship seems to have started dropping random youtube packets

That would be relevant if it was happening on the actual Youtube as well, but the actual site performance is as fast as ever. It's only yt-dlp.

Hello, as I can see by Yokosven's IP he is Russian. It is sad to say but Russian censorship seems to have started dropping random youtube packets

That would be relevant if it was happening on the actual Youtube as well, but the site's performance is as solid as ever. It's only yt-dlp and similar unofficial methods.

I think the behavior is expected because one thing is to load chunks of video as it is playing and another is to download the video as fast as possible. Unluckily for us that might be done for performance reasons but it turns out to break under that censor of Roscomnadzor. It seems like the most that contributors can do is to fine-tune module to behave as youtube itself. About your browser you can check network logs of youtube tab (in developer options) and see NS_BINDING_ABORTED's. Or open wireshark and see how tcp packets are  Also you can try to pass -6 option for yt-dlp to force ipv6 (if it is available for you) and check the speed.

switching between IPv4 and IPv6 (or even to a completely unrelated IP) doesn't bypass it either.

Yes, agreed. But it seems like some ISPs (Rostelecom for me) provide ipv6 and don't put censor for it. Even other services which are completly blocked on ipv4 are available on ipv6.

I think the behavior is expected because one thing is to load chunks of video as it is playing and another is to download the video as fast as possible.

I also watch Youtube in MPC-HC (with yt-dlp) and PotPlayer (that uses it's own way of getting a stream), and both of them are struggling. 200KiB is not a stream speed you can watch 720p/1080p video at.
Roscomnadzor doesn't throttle sites. It blocks them outright (or fails like with Telegram). And if there were attempting to block Youtube, runet would be in the uproar. It's unlikely I've just missed the memo on that.

About your browser you can check network logs of youtube tab (in developer options) and see NS_BINDING_ABORTED's

I don't see any errors in the network logs, other then uBlock and Privacy Badger blocking things.

Russian IP here too, experiencing the same throttling issue. And, likewise, opening YT in a browser works as it should without any throttling. However, once I started using yt-dlp with an HTTPS proxy (by passing the --proxy option) the throttling in yt-dlp is gone and I can finally download videos normally, with download speed going back up to ~10MiB/s, exactly how it was before.
Something strange is definitely going on here, and it's hard to say who is to blame. This doesn't seem like RKN's MO, at least not intentionally.

You can find out more about this on the ntc party forum (Note: blocked in Russia, use VPN)

I think the behavior is expected because one thing is to load chunks of video as it is playing and another is to download the video as fast as possible.

I also watch Youtube in MPC-HC (with yt-dlp) and PotPlayer (that uses it's own way of getting a stream), and both of them are struggling. 200KiB is not a stream speed you can watch 720p/1080p video at. 480p is watchable, but, you know...
Roscomnadzor doesn't throttle sites. It blocks them outright (or fails like with Telegram). And if there were attempting to block Youtube, runet would've been in an uproar. It's unlikely I've just missed the memo on that.

Yea, but they were talking about youtube slowdown a lot in the past. Also here is an about 7 days-old announcement from Rostelecom that google can't update GGC in Russia due to the US sanctions and here may be outperforms in youtube video load speed. BUT I haven't seen any Russian IP in googlevideo after that announcement. And I think it wasn't here for a lot of time so we all have been watching youtube from foreign cache servers which are unrelated to Russia. So I dont think that google updated software on their servers to invalidate random packets and send random rsts for Russian ips. And even more that I got that thing only on ipv4 and http/1.1 (=> over tcp proto). When I completly disabled quic on firefox (disabled http3 and http2, network.http.http(2,3).enable(d) in about:config, you can try it and check load speed) it has started to load on 200 KiB/s with tons of random tcp errors in wireshark. When I enabled ipv6 and keeped firefox to use http/1.1 everything started to load normally.  And I don't think that they will support quic on both ipv4 and ipv6, tcp on ipv6 and slow down only tcp on ipv4. So logic statement from this is a middleware which loves Russian children and want to protect them from Western propaganda, Grand Roscomnadzor. They may be doing tests for youtube slowdown and checking how their servers behaves with this. And if this is true the most we can do is to pray that they will not touch QUIC.
But also it may be google that wish to move completly on quic and just tests http/1.1 slowdown for youtube for better performance on their servers.
So in my opinion for this time it seems like the solution is http/3 support. yt-dlp uses HTTP/1.1 with TCP when firefox/chrome uses HTTP/3 with QUIC and it's the reason why you may be ok in browser and have bad speed with yt-dlp. Interesting that I didn't got quic earlier in firefox by default. And got scared that this is the end :). May be firefox needed restart when I disabled ipv6 or anything else which may prevent it from establishing http/3 and enforce fallback to http/1.1.

so in theory it should download at normal speed, but mine is the same as without transferring to curl
yt-dlp --external-downloader curl --external-downloader-args '--http3'
but my speed is even less than just without keys, 200kb with curl, and 400-500 without

it just makes the watching experience crappy and less convenient.
Not even that, since all modern browsers support http/2 and http/3 - it only makes downloading videos less convenient. Which makes even less sense.

When I completly disabled quic on firefox (disabled http3 and http2, network.http.http(2,3).enable(d) in about:config, you can try it and check load speed) it has started to load on 200 KiB/s with tons of random tcp errors in wireshark.

Can confirm. When http2/http3 are disabled, even on Youtube itself videos can't play at 720p, and I do see errors in network logs. Also, if on top of that I enable VPN - speed recovers back to normal, which fits the RKN theory. Though if it's actually RKN's doing, I don't understand what they're trying to achieve here, even if it is a test for the real thing that will come later. This doesn't stop the spread of information they deem unwanted, it just makes the watching experience crappy and less convenient.

maybe they want more authors to duplicate their content on Russian sites, like VK, Rutube, OK

But also it may be google that wish to move completly on quic and just tests http/1.1 slowdown for youtube for better performance on their servers.
So in my opinion for this time it seems like the solution is http/3 support. yt-dlp uses HTTP/1.1 with TCP when firefox/chrome uses HTTP/3 with QUIC and it's the reason why you may be ok in browser and have bad speed with yt-dlp. Interesting that I didn't got quic earlier in firefox by default. And got scared that this is the end :). May be firefox needed restart when I disabled ipv6 or anything else which may prevent it from establishing http/3 and enforce fallback to http/1.1.

so in theory it should download at normal speed, but mine is the same as without transferring to curl yt-dlp --external-downloader curl --external-downloader-args '--http3' but my speed is even less than just without keys, 200kb with curl, and 400-500 without
UP well, yes, QUIC (HTTP/3) also slows down, if you read that forum

Wow, yt-dlp --external-downloader curl --external-downloader-args '--http3-only' worked for me. It is unstable, with unstable speed (Few times I got slowdown to 200 KB even over QUIC), also it won't download an entire youtube video and stops loading after 180 MB fragment, but it uses QUIC and I got 6 MiB/s. Note that I've used --http3-only. If I use --http3 it fallbacks to http/1.1 (but in the last test I got QUIC)

maybe they want more authors to duplicate their content on Russian sites, like VK, Rutube, OK

And plvideo.ru.

--http3-only

I tried 3-4 times and my speed is 200kb, but without it it’s 400-500kb

I found this utility (mentioned on the forum that Waujito linked): https://github.com/ValdikSS/GoodbyeDPI
Running it with these parameters goodbyedpi.exe -6 --frag-by-sni completely recovers the speed. Both in yt-dlp and players.

I found this utility (mentioned on the forum that Waujito linked): https://github.com/ValdikSS/GoodbyeDPI
Running it with these parameters goodbyedpi.exe -6 --frag-by-sni completely recovers the speed. Both in yt-dlp and players. But you need to grab it from Actions not from Releases.

Yes, VladikSS found that RKN blocks it based on SNI. So even curl request with SNI works:
curl \
-k --connect-to ::rr4---sn-4g5lzne6.googlevideo.com \
 "https://google.com/videoplayback?expire=1721352280&ei=-GuZZpfWGdXUv_IP9q67QA&ip=2a00%3A62c0%3A3395%3Aa000%3A67f8%3Aeada%3Ada3d%3Aa86&id=o-ACZFWPpixW4dSEfOxVZlQmZyugzE83A55Md_-WJzIlD0&itag=337&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C308%2C315%2C330%2C331%2C332%2C333%2C334%2C335%2C336%2C337%2C394%2C395%2C396%2C397%2C398%2C399%2C400%2C401%2C694%2C695%2C696%2C697%2C698%2C699%2C700%2C701&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&bui=AXc671L-y_4u26gODmHtXo16V3jiueb2GsrbSU8PVFQrQ1aAub1YGF8mv1ciurPDJptkW5f5fYv4zCA9&spc=NO7bASkJP0CXSG_EU-N3lbs_Rga8MBWAW5bxy6q93-d2jKNrzgRjbunzzXlZ&vprv=1&svpuc=1&mime=video%2Fwebm&ns=xKSmzS2jBJARd5rJEjjLtWoQ&rqh=1&gir=yes&clen=1135566526&dur=313.779&lmt=1711474575024876&keepalive=yes&c=WEB&sefc=1&txp=4502434&n=dGX3_gVknbmIQw&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRAIgWqpLs6K9_sDfw8jMZPKoQcn4RpnflXAdpKVoieXj9dYCIAGLNG6ABNxJk5LrUpm1gGbr1BahvOZatBJf38iFiOm-&rm=sn-5gos776,sn-5gose7e&rrc=104,40&fexp=24350516,24350518&req_id=a8293fc46386cc4b&ipbypass=yes&redirect_counter=2&cms_redirect=yes&cmsv=e&mh=NH&mip=<IP_ADDRESS>&mm=34&mn=sn-4g5lzne6&ms=ltu&mt=1721330429&mv=m&mvi=4&pl=20&lsparams=ipbypass,mh,mip,mm,mn,ms,mv,mvi,pl&lsig=AHlkHjAwRQIgEGlgi21J6rDKLHer8gtKFIyOIKfIpka8Q-jeIGTS7koCIQDL3f9xbyEqleg16XWNOYlSL_KywXEzHFKKQeOwHApXug%3D%3D"\
-H "Host: rr4---sn-4g5lzne6.googlevideo.com"\
 --verbose -o/dev/null -4

(the request is for reference and may not work on your IPs, grab URI from --verbose option for qzmtch's yt-dlp command)

The fact that it works also breaks the theory about google's internal tests as they won't relay on so low-level thing as TLS SNI. Also the thing that proves that this is an RKN jokes is throttling of the SNI-replaced packages to selectel's speedtest (curl requests provided by VladikSS in top of the thread, duplicated for fullness):
Google IP + GCR SNI
curl -s -o/dev/null -k --connect-to ::google.com -k -L -H Host:\ mirror.gcr.io --range 0-40000000 --max-time 30 https://mirror.gcr.io/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa -w %{speed_download}

Google IP + Googlevideo SNI
curl -s -o/dev/null -k --connect-to ::google.com -k -L -H Host:\ mirror.gcr.io --range 0-40000000 --max-time 30 https://test.googlevideo.com/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa -w %{speed_download}

Extra note about goodbyedpi.exe. In Releases there's a script to turn it into a service for convenience. You just need to change arguments to goodbyedpi.exe -6 --frag-by-sni in the script and make sure that it will use the Actions version of the exe.

goodbyedpi.exe

For some, this is a decision. What about Linux? )

So in my opinion for this time it seems like the solution is http/3 support. yt-dlp uses HTTP/1.1 with TCP when firefox/chrome uses HTTP/3 with QUIC and it's the reason why you may be ok in browser and have bad speed with yt-dlp.

[feature request] QUIC (http/3) and Brotli #1817

I tried yt-dlp ... --external-downloader ./curl.exe --external-downloader-args '--http3-only'
But external downloader is only starting with audio files. Video is still being downloaded with internal. And with audio the speed is like dialup. Stable, but just kilobytes per second.

@bashonly yt-dlp from the links https://piped.video/ downloads bypassing piped addresses from Google addresses, is it possible to make it download from piped addresses?
they don't slow down

By the way, there has been a request for a long time plvideo.ru.
Please add ability to download from Russian new Youtube-like video platform Платформа #10311

yt-dlp from the links https://piped.video

The same is true for Invidious. The answer is categorically no, #8952.
https://yewtu.be/

Invidious instances are blocked in Russia, unlike piped, which have more choice of resolutions
if a user adds a link from a web archive, then it is downloaded from the archive and not from YouTube, why not give the piped to their addresses?

pukkandan https://github.com/yt-dlp/yt-dlp/issues/8952#issuecomment-1898277468

We will not support changing the default behavior. I have explained my reasoning in the ytdl issue. This has to implemented by requiring user to pass either --ies Invidious 1 or invidious: URL prefix. We could even support both if needed
Can any of this be implemented? prefix, maybe you can download from piped addresses?

Invidious instances are blocked in Russia,

Really. I noticed it only after turning off antizapret. )
https://redirect.invidious.io/

goodbyedpi.exe

Для кого-то это решение. А как насчет Linux? )

https://github.com/bol-van/zapret

Hello! I have written an userspace application for linux that bypasses these restrictions. This is a simple application aims only to googlevideo. After a bunch of research it turned out that the best decision is to split the packet in SNI position, just like the GoodbyeDPI does. I made it work with Firefox, Chrome and yt-dlp.

yt-dlp shows a fast speed (≈600 kiB/s), but I've been downloading a 5.19 MiB video file for half an hour and it’s only 6%! This began yesterday.

I just want to take a note about GoodbyeDPI, you don't need SNI to fix that, it will work with just -6 argument. But if you used blacklist txt file as well, then you would need to add domain googlevideo.com to that txt file and restart GDPI, this should fix throttling.

goodbyedpi.exe

For some, this is a decision. What about Linux? )

On Rostelecom I found working combination of byedpi for download and socks-to-http-proxy for adapting byedpi to mpv.

@XCanG @Svin-kun @xtemp09 try without GoodbyeDPI, for some the speed has increased without bypasses https://forum.ru-board.com/topic.cgi?forum=5&topic=51328&start=1640#21
I checked it myself, the speed has also increased, on ru channels it’s full, and on foreign channels it’s up to 6mb

It seems that the developers attributed this problem to the problems of the state. Like, there's nothing they can do here.
But YouTube plays perfectly in firefox (1080p), and the speed of "yt-dlp" is unstable, with delays and pauses.

It seems that the developers attributed this problem to the problems of the state. Like, there's nothing they can do here. But YouTube plays perfectly in firefox (1080p), and the speed of "yt-dlp" is unstable, with delays and pauses.

Since, apparently, there is no throttling for http/2 connections, maybe turn this into a feature request for http/2 implementation? It seems like a good thing to have in case Google itself decides to start throttling http/1.1 connections in order to get rid of """illegal""" downloaders.

there is no throttling for http/2 connections, maybe turn this into a feature request for http/2 implementation?

The request handler framework would allow for this, e.g. an httpx request handler could be added. Such a feature request should be made in its own issue, though.
yt-dlp does already support curl as an external downloader, which uses HTTP/2 by default. You could try it out with -S proto:https --downloader curl (assuming you have the latest version of curl already installed)

HTTP/2

I'm looking at the "Network Monitor" in firefox (Ctrl-Shift-E), YouTube - HTTP/3 .

But YouTube plays perfectly in firefox (1080p), and the speed of "yt-dlp" is unstable, with delays and pauses.

@XCanG try without GoodbyeDPI, for some the speed has increased without bypasses https://forum.ru-board.com/topic.cgi?forum=5&topic=51328&start=1640#21
I checked it myself, the speed has also increased, on ru channels it’s full, and on foreign channels it’s up to 6mb

Not an option, because many other sites would stop working, it's either this or proxy or VPN.

This is not yt-dlp issue. The throttling is done using Deep Packet Inspection appliances by Russian government.
Workaround only for yt-dlp
ByeDPI (Windows/Linux)

./ciadpi-x86_64 -i <IP_ADDRESS> -p 10801 -s 1
yt-dlp --proxy 'socks5://<IP_ADDRESS>:10801' …

Workaround system-wide

On Windows: GoodbyeDPI

Create youtube-domain.txt text file with googlevideo.com text
goodbyedpi.exe --blacklist youtube-domain.txt -e 1 --native-frag

On Linux: zapret

Create youtube-domain.txt text file with googlevideo.com text
sudo ./nfqws --qnum=200 --dpi-desync=split2 --dpi-desync-split-pos=1 --hostlist=youtube-domain.txt
sudo iptables -I OUTPUT -o <network_interface> -p tcp --dport 443 -j NFQUEUE --queue-num 200 --queue-bypass

This is not yt-dlp issue.

Firefox 124.02, 1080p, playback speed 2x.

And according to the conversations, I'm not the only one who doesn't have problems with browsers.

@krasnh

Local GGC, if installed directly on your ISP premises, is apparently not throttled (at least in case of my ISP)
TSPU DPI hardware doesn't seem to be able to dissect QUIC (HTTP/3) protocol in Firefox, that's why Firefox is not getting throttled. You most probably will face throttling in Chrome (unless #1).
yt-dlp doesn't support QUIC
yt-dlp doesn't reliably use local GGC, at least on my ISP, for which throttling applies (it generates URL for "global" GGC for a city, but not for the local of my ISP).

TL;DR: the fact you're getting full speed in Firefox is a filtering deficiency.
More information: https://ntc.party/t/замедление-youtube-в-россии/8055/ and https://ntc.party/t/обсуждение-замедление-youtube-в-россии/8074/

As it seems that this problem is not going anywhere any time soon and is likely to appear in other countries (as dpi technologies progresses), could an option to automatically launch byedpi from PATH be added to yt-dlp?

Just relax and be prepared Youtube to be blocked in Mother Russia! 😉

yt-dlp is a downloader. Why does it not have anti-DPI && anti-throttling defense embedded?

yt-dlp can use QUIC via curl (a special curl build with HTTP3 support, not every curl will work, especially on Linux). For some formats (for https, not m3u8). But since curl downloads the whole URL at once, not in parts (as yt-dlp itself does), the speed will be limited by Google itself, approximately 2xrealtime bitrate (by the way, that's why audio speed is very low, because of low audio bitrate). Google's fault in this case can be determined by running under a VPN. So choose streams with high quality (and duration) for yt-dlp+curl+quic test.

yt-dlp URL -f 137 --downloader=curl --downloader-args="curl:--http3-only"

BTW there is experimental flag in chrome to support quic, if anybody interested chrome://flags/#enable-quic

BTW there is experimental flag in chrome to support quic, if anybody interested chrome://flags/#enable-quic

For me, HTML/3 does not work on any site with this flag enabled

For me, despite this flag is enabled, sites still only use http/1.1 and htpp/2. On Brave and Chrome browsers, I was unable to see usage of http/3 on sites where its full support is declared.

QUIC may be blocked in your country. Also enable the #use-dns-https-svcb-alpn flag if it exists and enable secure DNS in your browser.

Invidious instances are blocked in Russia,

Really. I noticed it only after turning off antizapret. )
redirect.invidious.io

I thought, yes, they are blocked, but there is no slowdown there, is there? )

As a workaround, I add "--throttled-rate 500K -R infinite --socket-timeout 1" to yt-dlp. Throttling switches on after several seconds of downloading. It works for me.
The use of http3 does not help for me.

Avpanov, this is the best advice for increasing the download speed. I would like to notice that the owner of the Chrome browser and YouTube is the same company. YouTube can also help slow down traffic by manipulating local CDN and harming yt-dlp along the way.

I would caution against using -R infinite, or using infinite as an argument for any retry option, unless you will never be leaving any downloads unattended. Also, re-extracting the video so many times could easily lead to an IP/account ban

As a workaround, I add "--throttled-rate 500K -R infinite --socket-timeout 1" to yt-dlp. Throttling switches on after several seconds of downloading. It works for me.

I would caution against using -R infinite, or using infinite as an argument for any retry option, unless you will never be leaving any downloads unattended. Also, re-extracting the video so many times (as --throttled-rate does) could easily lead to an IP/account ban

But does it extract video info on retry? Its just resuming download.
Advanced file managers, which were previously actively used, allow to increase the download speed and resume interrupted downloads if there are problems. This is similar to using the "--throttled-rate" option.

But does it extract video info on retry? Its just resuming download.

--throttled-rate RATE           Minimum download rate in bytes per second
                                below which throttling is assumed and the
                                video data is **re-extracted**, e.g. 100K

--throttled-rate RATE           Minimum download rate in bytes per second
                                below which throttling is assumed and the
                                video data is **re-extracted**, e.g. 100K

What does video data being re-extracted even mean in this context?

@WeAreLiving1984 an infinite loop retrying something that will never succeed, and the hammering of the youtube API and videoplayback endpoints (or whatever site you're downloading from) could lead to an IP and/or account ban

--retries/-R is applied to more than just --throttled-rate. You could run into an unresolvable error that yt-dlp retries on, leading to an infinite loop, leading to your playlist/batch download stalling at that point, leading to an IP ban

This is not yt-dlp issue. The throttling is done using Deep Packet Inspection appliances by Russian government.
(updated 26.07.2024 20:25 MSK)
Workaround only for yt-dlp
ByeDPI (Windows/Linux)
1. `./ciadpi-x86_64 -i <IP_ADDRESS> -p 10801 -d 1`

2. `yt-dlp --proxy 'socks5://<IP_ADDRESS>:10801' …`

Workaround system-wide
* On **Windows**: [GoodbyeDPI](https://github.com/ValdikSS/GoodbyeDPI)

  1. Create `youtube-domain.txt` text file with `googlevideo.com` text
  2. `goodbyedpi.exe --blacklist youtube-domain.txt -6`
  3. Or `goodbyedpi.exe --blacklist youtube-domain.txt -e 1 --reverse-frag` if the above didn't work

* On **Linux**: [zapret](https://github.com/bol-van/zapret)

  1. Create `youtube-domain.txt` text file with `googlevideo.com` text
  2. `sudo ./nfqws --qnum=200 --dpi-desync=disorder2 --dpi-desync-split-pos=1 --hostlist=youtube-domain.txt`
  3. `sudo iptables -I OUTPUT -o <network_interface> -p tcp --dport 443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:6 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass`
  4. `sudo ip6tables -I OUTPUT -o <network_interface> -p tcp --dport 443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:6 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass`

* On **Android**: [ByeDPIAndroid](https://github.com/dovecoteescapee/ByeDPIAndroid)

* To make it work in browsers, you must disable support for the QUIC protocol and the Kyber cipher suite. Chrome-based (Yandex, Edge, Opera, Vivaldi): disable in `chrome://flags` (search by "QUIC", "Kyber"), in Firefox: `about:config` (`network.http.http3.enable false`, Kyber is disabled by default).
  This is needed only for system-wide workarounds, proxy should work without additional tuning.

yt-dlp and https proxy (I recommend a proxy on port 9002)
yt-dlp --no-check-certificates proxy='https://xxx.xxx.xxx.xxx:xxxx' 'https://www.youtube.com/watch?v=xxxxxxxx'


broken argument passing in v6

Hello,
https://github.com/atti187/wdio-chromedriver-service/commit/e6ffa820a3cee2092c1e085574657480ae939fa4#diff-4ccffbfc1d25b27efb9c2697f07065dcL18
Since this change it is no longer possible to pass args to ChromeDriver.
For example, I've used in v5 chromeDriverArgs: ['--silent'] to remove any ChromeDriver messages from console.

@erwinheitzman - any reason why this type of configuration fell out? I guess it has to do with https://webdriver.io/blog/2020/03/26/webdriverio-v6-released.html#service-configurations, but could easily be added again, right?

@atti187 he is using the v6 with v5 which are incompatible. since the readme only shows the current way of configuring, we could add a link to v5 and v6 for example.
@k03mad simply use the latest v5 version of this service if you are using version 5 of webdriverio. when you'll upgrade to v6 then the new way of configuring the service will apply.

@erwinheitzman I think there might have been a little bit of a misunderstanding here.
I wan't to use wdio-chromedriver-service v6, but in this version it is no longer possible to pass args to ChromeDriver, except of some default: https://github.com/atti187/wdio-chromedriver-service#options
In wdio-chromedriver-service v5 there was chromeDriverArgs array in options where you can pass extra args. In v6 this feature was removed.
May be I'm doing something wrong, how to pass --silent argument to ChromeDriver in wdio-chromedriver-service v6?

@k03mad if you are using webdriverio v5 then you cannot use v6 of this service, you will have to use v5.
if however you are using webdriverio v6 then you are able to use v6 of this service and you can configure it like described here: https://github.com/atti187/wdio-chromedriver-service/blob/master/README.md#configuration
I hope this helps and if you still have some questions be sure to let me know :)

Regarding the chromeDriverArgs you can pass these like you previously did but instead of putting it all in the root of the wdio config you put it in the service object like so:
services: [
    ['chromedriver', { chromeDriverArgs: ['--silient'] }],
]

@atti187 is there any way for me to contact you on behalf of the webdriverio team? :)

Regarding the chromeDriverArgs you can pass these like you previously did but instead of putting it all in the root of the wdio config you put it in the service object like so:
services: [
    ['chromedriver', { chromeDriverArgs: ['--silient'] }],
]

%)
This is not working, because chromeDriverArgs option broken since v6 update of current service.
chromeDriverArgs is empty array: https://github.com/atti187/wdio-chromedriver-service/blob/master/src/launcher.js#L29
Then you push some defaults: https://github.com/atti187/wdio-chromedriver-service/blob/master/src/launcher.js#L33
The you start chrome: https://github.com/atti187/wdio-chromedriver-service/blob/master/src/launcher.js#L42
I can't add extra args to chromeDriverArgs array!

It's broken functional, I just try to explain, but I can't, I think because of my english... :)
Ok, no problem, I'm stay with wdio-chromedriver-service v5 + wdio v6 (YES, it's working, and any custom ChromeDriver arg working which I wan't to pass).

@k03mad you are right! Seems like I forgot to write a test for that.
I can push a fix soon for this :)

Hooray! Thank you :)

@k03mad a PR with a fix has been created so you can probably test it soon

@erwinheitzman it works, thank you!


Small features & Black Box

Overview
Small features, included points allocated for feedback.
Map image
Insert provided image to geography selector page, as shown in the visual design
https://drive.google.com/file/d/175MbkM6Vj1YgeFis8-VLg8258R8imhOW/view?usp=sharing

Stacked charts

Format values as %, use fixed 100 axis.

Groups on Viz

On the visualization page, wrap each category section of charts into an accordion that can have multiple items open at once. Default to all open.

Percentage and Stack Types

Bar charts do not make it clear what the unit of analysis is. Suggest either or both adding language to the text above the chart that says, "Percent who answered yes" rather than just "Answered yes" as someone might think the figure is presenting number of respondents not percentage. To be extra clear it would then be good to have an indication of the unit of analysis on the X-axis ("percent providing given response"). This comment applies to all charts where unit of analysis is percent.

Use this image instead. Can recrop it from the original image earlier in this issue if the dimensions are off.

Use this image instead. Can recrop it from the original image earlier in this issue if the dimensions are off.

Another small tweak would be to add placeholder text for our search boxes. I thought we might have done this already, so if they were removed intentionally, I'm not asking for them to be brought back. However, something like "Filter countries" and "Filter Questions" seem appropriate.

Another small tweak would be to add placeholder text for our search boxes. I thought we might have done this already, so if they were removed intentionally, I'm not asking for them to be brought back. However, something like "Filter countries" and "Filter Questions" seem appropriate.

@mmcfarland That was an intentional removal, yep!

@mmcfarland That was an intentional removal, yep!


Fixed typo in RequestResponseFuture.

What is the purpose of the change
Fixed typo in RequestResponseFuture.
Brief changelog
rename RequestResponseFuture.setSendReqeustOk to RequestResponseFuture.setSendRequestOk.
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage increased (+0.05%) to 50.875% when pulling 78b6d7b5bb128b0d4ad80f2814e228485d3b8c15 on ifplusor:fixed-typo-in-RequestResponseFuture into 8ef01a6c635f6972847c40d5540b1945180d7cbd on apache:master.


Add extraArgs for clippy

I would like to pass --tests to clippy. I figured rather than adding an option just for tests, it might be better to just add an option to pass through any arguments

Thanks!

Related to https://github.com/cachix/git-hooks.nix/pull/434


WIsh counter number geeting a random number and keep changing color

https://user-images.githubusercontent.com/103319381/229281168-280a3e39-fec3-48f3-96ac-9db85e5e9a3d.mp4

me too, btw its incrementing till 90, not random

Same. It's incrementing by 1 each half a second or so. Glad to know there's a cap.

Same here.

Same

Same

Same problem

This is what you get for not backing up your data with Google Drive sync. You need to sign in on Settings page

For those who haven't figured it out yet, check the date today 😉


Fix translation files paths

Add additional dots at the beginning of the relative paths for the translation docs for Spanish and Portuguese translations
Remove the en part of the relative path included _menu.jade partial for the English translation link

Awesome! Do you think you got the grasp to do the inner pages in Spanish as well?

Hi @davegomez ! I just updated the develop branch. Can you download, do a harp server and see if the ES version is fine?
If so, I just have to do the portuguese translation and we are good to go!

Is working perfectly @caiovaccaro. Just checked it.

Perfect, we are having a French translation as well :)


DateTimeType does not support yyyy-mm-ddThh:mm

Reading the code, it looks like DateTimeType is intended to support the format yyyy-mm-ddThh:mm but there is a typo in the code.
In method org.hl7.fhir.dstu3.model.BaseDateTimeType.parse(String), line 407,
validateLengthIsAtLeast(value, 17); should read
validateLengthIsAtLeast(value, 16);
Also, org.hl7.fhir.dstu3.model.DateTimeType.isPrecisionAllowed(TemporalPrecisionEnum) should include MINUTE.
Version information.
"software": {
"name": "HAPI FHIR Server",
"version": "2.4"
},
"fhirVersion": "3.0.1",
<EMAIL_ADDRESS>

the format  yyyy-mm-ddThh:mm is not legal.
On Wed, Mar 14, 2018 at 3:06 AM, euz1e4r<EMAIL_ADDRESS>wrote:

Reading the code, it looks like DateTimeType is intended to support the
format yyyy-mm-ddThh:mm but there is a typo in the code.
In method org.hl7.fhir.dstu3.model.BaseDateTimeType.parse(String), line
407,
validateLengthIsAtLeast(value, 17); should read
validateLengthIsAtLeast(value, 16);
Version information.
"software": {
"name": "HAPI FHIR Server",
"version": "2.4"
},
"fhirVersion": "3.0.1",
<EMAIL_ADDRESS>—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jamesagnew/hapi-fhir/issues/887, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFllFRfuZy28zTpMr7lyaSey48yMJPqbks5td-6HgaJpZM4So-F6
.

--
http://www.healthintersections.com.au /<EMAIL_ADDRESS>/ +61 411 867 065

Just to take @grahamegrieve 's comment a step further, we try to be lenient/tolerant in lots of places in HAPI FHIR, but I feel quite strongly about rejecting dateTimes without a timezone. These are invalid in FHIR, and are more importantly a significant source of latent bugs with real world patient-safety implications.
I do agree that MINUTE is missing from the list of valid precisions though. How has that been like that for so long?!

because having only minutes is not valid (courtesy of XML schema)
On Wed, Mar 14, 2018 at 7:29 AM, James Agnew<EMAIL_ADDRESS>wrote:

Just to take @grahamegrieve https://github.com/grahamegrieve 's comment
a step further, we try to be lenient/tolerant in lots of places in HAPI
FHIR, but I feel quite strongly about rejecting dateTimes without a
timezone. These are invalid in FHIR, and are more importantly a significant
source of latent bugs with real world patient-safety implications.
I do agree that MINUTE is missing from the list of valid precisions
though. How has that been like that for so long?!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jamesagnew/hapi-fhir/issues/887#issuecomment-372807516,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFllFSoLPDX8qXx991EkElab61YTj4ocks5teCwvgaJpZM4So-F6
.

--
http://www.healthintersections.com.au /<EMAIL_ADDRESS>/ +61 411 867 065

Ahhh that's right, thank you. I'm gonna add a comment in there to point that out.
Closing.

a) DateTimeType does allow creating a dateTime with no time zone, using the String constructor.  Maybe we should change that.
b) If we did set precision to MINUTE, then asStringValue() omits the seconds and so generates yyyy-mm-ddThh:mm, so with this interpretation, MINUTE is not a valid precision.

These both seem like issues worth resolving.

Shouldn't this issue be fixed, instead of the bot-marked wontfix?

Just to take @grahamegrieve 's comment a step further, we try to be lenient/tolerant in lots of places in HAPI FHIR, but I feel quite strongly about rejecting dateTimes without a timezone. These are invalid in FHIR, and are more importantly a significant source of latent bugs with real world patient-safety implications.
I do agree that MINUTE is missing from the list of valid precisions though. How has that been like that for so long?!

Hi @jamesagnew. I saw your comment about rejecting dateTimes without timezone above, but then I saw this in the code:
https://github.com/hapifhir/hapi-fhir/blob/544ef3de1bddb6f97349378a7c771461e8c92cf0/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/BaseDateTimeDt.java#L374
which seems to let parse accept dateTimes without a timezone using
https://github.com/hapifhir/hapi-fhir/blob/544ef3de1bddb6f97349378a7c771461e8c92cf0/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/BaseDateTimeDt.java#L335
as the timezone to parse the string.
I tried passing this string 2017-01-01T00:00:00 to DateTimeDt's constructor, and no exception was thrown.
That is supposed to behave, right?


Request: add affordance to min character requirement for search

On the Performance page, searching within the Timeline Events tab for a short category name (like "gc") does nothing because my query is > 4 characters. I have no idea if that search would even work, but it'd be nice to know that I needed more characters before the system will even try.

cc @kenzieschmoll

Maybe some affordance to "force" the search could be added if the char limit cannot be lowered.

Pressing enter now forces the search.


fix bug:when call triggerPullToRefresh, the state will always be SVPullT...

fix bug
when call triggerPullToRefresh, the state will always be SVPullToRefreshStateLoading.

Created a pull request in https://github.com/LawrenceHan/SVPullToRefresh
I will merge it after discusses with you.


Adjust JSDoc visibility of MetadataSchema

In a couple future 3D Tiles Next branches, the MetadataSchema object will be accessible through 3D Tiles objects such as tileset.getSchema(). Since this will be part of the public API, MetadataSchema and related classes also need to be marked as public in the JSDoc. Otherwise, the TypeScript build will fail.
This only exposes MetadataSchema to the Cesium API, not other classes like MetadataTable.
@lilleyse could you review this?

Thanks for the pull request @ptrgags!

:heavy_check_mark: Signed CLA found.
:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

@lilleyse updated!


Word Wrap

Words tend to be cut off and finished on a new line when we just print them out directly, so word wrap would be a great usability feature.

A combination of the textwrap module and shutil.get_terminal_size() should do the trick. Using from builtins import print as python_print may be useful if we want to define our own print that wraps the builtin printing function.
This shouldn't be too difficult to implement, so I won't take this issue in case there's anyone who'd like to work on the issue. I'd guess that the code for this new print function should be in gitgud/skills/user_messages.py.

That's one option. We can actually modify the print function output stream directly, but we'd need that to be the first thing executed in the code so that the change is in effect. This would reduce refactoring and it'll make sure we're always using the right function. I'm not sure if I'm a fan of this method, but it's possible. I do like the idea of having all output messages in user_messages.py though, even more than are there now, which would eventually help with adding multiple languages

I agree this would be a good issue for newcomers. I added the appropriate tags. Anyone interested, feel free to comment


NPE

/lp group default meta set griefprevention.min-claim-size-basic-x 5
https://gist.github.com/ziceptor/5567d0a2993ec37904da886d399fd8ab
forge-1.12.2-<IP_ADDRESS>11-universal.jar
spongeforge-1.12.2-2611-7.1.0-BETA-2931.jar
LuckPerms-Sponge-4.1.29.jar
griefprevention-1.12.2-<IP_ADDRESS>2.jar

I assume it was already reported in #823 and #822

The situation is not identical. But may have the same root. The more information, the easier it is for the developer to understand the origins of the problem. Sorry for bad English.


define doctrine mapping in xml?

Symfony best practices says doctrine mappings should be defined using XML
https://symfony.com/doc/current/bundles/best_practices.html#doctrine-entities-documents
I'd prefer attributes...

FOSUserBundle uses xml and also moves the Entity classes to Model instead.

closed by https://github.com/zikula/DynamicFormPropertyBundle/commit/589a24eab8c4cbce0f654012f76f22cdc9ef6b24


KafkaListener

Do you have somewhere an official documentation how to consume events using axon-kafka? For AMQP SpringAMQPMessageSource must be configured. Is this also for Kafka the case?
In my case I use the Spring Autoconfiguration. I have beans with the annotation @EventHandler. ConsumerFactory instance is created using Autoconfiguration. The actual issue is that the SimpleEventBus is used as EventSource. Should not the KafkaMessageSource be the eventsource?

We will be introducing that as soon as possible @marinkobabic. I'd recommend to tracing this Reference Guide issue to see it coming in.
The short answer it that you will have to configure a KafkaMessageSource, which you can tie to an Tracking Event Processor. I will however close this comment as we refer questions to the Axon Framework User Group or StackOverflow with the tag axon.

Hi guys, I really tried to follow your documentation and I can't make it work. Could you please add a complete spring boot example of how to create a simple sender/receiver using Kafka as event bus? Would be nice to have a link to the project in the documentation to show example.
For the moment it is quite confusing for me.

@ghilainm
Does this help you? https://github.com/marinkobabic/axon-kafka-example
to start the kafka environment you could use docker-compose
version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_ADVERTISED_HOST_NAME: localhost
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'

It shows that there is a bug :) (i.e.you are forced to redeclare the KafkaMessageConverter despite it is already defined in KafkaAutoConfiguration).
I have no issue to start Kafka (used the same topic as you). Messages are correctly published. Just can't get the events to be fetched from the Kafka topic.
Despite linking the KafkaMessageSource to the Tracking Event Processor nothing is pulled.
For that I tried
    @Autowired
    public void trackingEventProcessor(
            @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") EventProcessingConfiguration eventProcessingConfiguration,
            KafkaMessageSource kafkaMessageSource) {
        eventProcessingConfiguration.registerTrackingEventProcessorUsingSource("kafka-tracking-event-processor", configuration -> kafkaMessageSource);
    }

and that
axon:
  eventhandling:
    processors:
      kafka.event.processor:
        source: kafkaMessageSource
  kafka:
    default-topic: "my-topic"
    bootstrap-servers: "bootstrap.kafka.svc.cluster.local:9092"
    consumer:
      group-id: "query-group"
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.ByteArrayDeserializer

None works :(.
Shouldn't the Tracking Event Processor be automatically created by KafkaAutoConfiguration?

The converter is in the Autoconfiguration. Spring is my case trying to
resolve fetcher before the converter and so it fails. So I just moved it in
a separate configuration to get the converter instantiated before fetcher.
Had no time to investigate it.
Will remove MyBus and use the configuration to config the
Trackingprocessor. In my case the configuration is just wrong for the
trackingprocessor.
The example like it is already works but I want to have it according to the
documentation.
Will do the changes today inside of my repository.
On Mon, Aug 13, 2018, 20:07 ghilainm<EMAIL_ADDRESS>wrote:

It shows that there is a bug :) (i.e.you are forced to redeclare the
KafkaMessageConverter despite it is already defined in
KafkaAutoConfiguration).
I have no issue to start Kafka (used the same topic as you). Messages are
correctly published. Just can't get the events to be fetched from the Kafka
topic.
Despite linking the KafkaMessageSource to the Tracking Event Processor
nothing is pulled.
For that I tried
@Autowired
public void trackingEventProcessor(
        @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") EventProcessingConfiguration eventProcessingConfiguration,
        KafkaMessageSource kafkaMessageSource) {
    eventProcessingConfiguration.registerTrackingEventProcessorUsingSource("kafka-tracking-event-processor", configuration -> kafkaMessageSource);
}

and that
axon:
eventhandling:
processors:
kafka.event.processor:
source: kafkaMessageSource
kafka:
default-topic: "my-topic"
bootstrap-servers: "bootstrap.kafka.svc.cluster.local:9092"
consumer:
group-id: "query-group"
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.ByteArrayDeserializer
None works :(.
Shouldn't the Tracking Event Processor be automatically created by
KafkaAutoConfiguration?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AxonFramework/AxonFramework/issues/702#issuecomment-412611183,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADHSOJXMCaaGxSlOlHcrcslH3mZZnb-eks5uQcBfgaJpZM4VvJTA
.

By the way did you set the following line
https://github.com/marinkobabic/axon-kafka-example/blob/master/consumer/src/main/java/com/mykafka/consumer/MyConfig.java#L38
On Mon, Aug 13, 2018, 20:36 Marinko Babic<EMAIL_ADDRESS>wrote:

The converter is in the Autoconfiguration. Spring is my case trying to
resolve fetcher before the converter and so it fails. So I just moved it in
a separate configuration to get the converter instantiated before fetcher.
Had no time to investigate it.
Will remove MyBus and use the configuration to config the
Trackingprocessor. In my case the configuration is just wrong for the
trackingprocessor.
The example like it is already works but I want to have it according to
the documentation.
Will do the changes today inside of my repository.
On Mon, Aug 13, 2018, 20:07 ghilainm<EMAIL_ADDRESS>wrote:

It shows that there is a bug :) (i.e.you are forced to redeclare the
KafkaMessageConverter despite it is already defined in
KafkaAutoConfiguration).
I have no issue to start Kafka (used the same topic as you). Messages are
correctly published. Just can't get the events to be fetched from the Kafka
topic.
Despite linking the KafkaMessageSource to the Tracking Event Processor
nothing is pulled.
For that I tried
@Autowired
public void trackingEventProcessor(
        @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") EventProcessingConfiguration eventProcessingConfiguration,
        KafkaMessageSource kafkaMessageSource) {
    eventProcessingConfiguration.registerTrackingEventProcessorUsingSource("kafka-tracking-event-processor", configuration -> kafkaMessageSource);
}

and that
axon:
eventhandling:
processors:
kafka.event.processor:
source: kafkaMessageSource
kafka:
default-topic: "my-topic"
bootstrap-servers: "bootstrap.kafka.svc.cluster.local:9092"
consumer:
group-id: "query-group"
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.ByteArrayDeserializer
None works :(.
Shouldn't the Tracking Event Processor be automatically created by
KafkaAutoConfiguration?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AxonFramework/AxonFramework/issues/702#issuecomment-412611183,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADHSOJXMCaaGxSlOlHcrcslH3mZZnb-eks5uQcBfgaJpZM4VvJTA
.

Yes I set that! The piece I am missing is the bus you added I ll try Tomorrow. What I don't understand is why it is necessary shouldn't this be automatically be plugged to the default bus?

You are thinking the same way like I do 😄  My expectation when using autoconfiguration is that all works out of the box. Have now removed the MyBus and set the properties according the AMQP documentation https://docs.axonframework.org/v/3.0/part-iii-infrastructure-components/spring-boot-autoconfiguration#enabling-amqp and it seems that all works out of the box like expected 😄
The only issue I have in my Consumer example is the spring dependency resolution and therefore I still need the MyConfig.java. Will investigate later why I have this issue.

NoSuchBeanDefinitionException: No qualifying bean of type 'org.axonframework.kafka.eventhandling.consumer.Fetcher' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Please let me know if your example works after setting all those settings like in my example https://github.com/marinkobabic/axon-kafka-example/blob/master/consumer/src/main/resources/application.yaml so that I can support you in getting it running.

@marinkobabic For me it was still not working. What was missing is assigning the EventHandler to the right processor. I had to do it by adding @ProcessingGroup(name="my-kafka-processor-name-defined-in-application.yml") to my EventHandler.
After that the KafkaEventProcessor was built and started correctly.

If the processinggroup is not set, then the package name is used. This is
the default behaviour. In my case this was fine. Happy to hear that it now
works.
On Tue, Aug 14, 2018, 09:34 ghilainm<EMAIL_ADDRESS>wrote:

@marinkobabic https://github.com/marinkobabic For me it was still not
working. What was missing is assigning the EventHandler to the right
processor. I had to do it by adding
@ProcessingGroup(name="my-kafka-processor-name-defined-in-application.yml")
to my EventHandler.
After that the KafkaEventProcessor was built and started correctly.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AxonFramework/AxonFramework/issues/702#issuecomment-412781617,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADHSOLjMarvXX49_C0cs9mRplezjbXBLks5uQn17gaJpZM4VvJTA
.


Trivial refactor in settings.py about followup label

Is your feature request related to a problem? Please describe.
In setting.py of this project, followups are present with two different labels: FOLLOW_UP and FOLLOWUP.
Describe the solution you'd like
Rename one of the two labels to have consistency settings about follow-up.
Describe alternatives you've considered
All can remain as is.

Seems like a reasonable enhancement.
It looks like "FOLLOWUP" is much more revalent than FOLLOW_UP" so a standardisation on FOLLOWUP would produce a smaller change set.
If you are willing to make the PR then please go ahead.


Live streaming not working on some devices (Custom app & Basic Usage implementation)

What version of Shaka Player are you using?
2.0.6

Can you reproduce the issue with our latest release version?
Demo page

Can you reproduce the issue with the latest code from master?
Yes

Are you using the demo app or your own custom app?
Custom app as well as "Basic Usage"-implementation.

If custom app, can you reproduce the issue using our demo app?
No, it seems to work in the demo app.

What browser and OS are you using?
Android Nexus 9 / 6.0 - Chrome Mobile 55
Android Galaxy Tab 2 / 4.1 - Chrome Mobile 56
Android Galaxy Tab 2 / 4.1 - Firefox Mobile 51
via crossbrowsertesting.com

What did you do?
Attempt to play live content.

What content did you load?
A livestream

If custom asset, what manifest and license server URIs?
https://57ebfb8668c72.streamlock.net/edge/_451iw2h_/451iw2h/manifest.mpd

What did you expect to happen?
Livestream to play.

What actually happened?
Livestream is stuck on "waiting" and never plays.

I first discovered this in our custom player environment. After being unable to find a solution i created a demo page that implements the player according to your Basic Usage and the issue can be reproduced there. It does however work in your demo player.

Your demo page works for me, so I have a theory about what is going on.
Neither your demo page nor the Basic Usage tutorial configure clock sync.  Our demo app has a clock sync config to work with live streams that don't have their own clock sync elements (<UTCTiming>) in the manifest.  The reason your demo page works for me is that my desktop computer's clock happens to be accurate.
Many clients have inaccurate clocks, and clock sync allows Shaka Player to adjust the client's clock to match the server.  This synchronization is critical for live streaming.
If the manifest does not contain any clock sync info (<UTCTiming> elements), your application must provide a fallback.  Here's an example:
player.configure({
  manifest: {
    dash: {
      clockSyncUri: '//foo.bar/clock.sync.txt'
    }
  }
});

The player will made a HEAD request to the clock sync URI and read the Date header.  It can be any URI you control.  It will use that as the official current time, and make adjustments to the client's clock any time it needs to perform time calculations for the live stream.
For this to work cross-origin, you must both allow access and expose the Date header to the client.  For more information on cross-origin headers, see this MDN article: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
Pay particular attention to Access-Control-Allow-Methods (for preflight), Access-Control-Allow-Origin (for both preflight and the HEAD request), and Access-Control-Expose-Headers (for the HEAD request).
Does this help?

I forgot to clarify that it does work on my computer as well. It's only on the specified devices it doesn't work. The problem could however be what you describe so i will give that a try. Thank you!

Problem solved. I updated to Wowza <IP_ADDRESS> so i could enabled UTCTiming in the manifest. Everything is now working as expected. Thanks a bunch!

Happy to help.  Let us know if you need anything else.


panel disappears

hey mike!
Great work here, i wanted to report something I am noticing, and hopefully help track down the cause. It seems at each start of homebridge, the security panel is added/deleted. for example, if I launch homebridge and can control the panel, upon the next restart of homebridge the panel is gone. all my window sensors remain. if i restart again, the panel comes back.
is there anything I can provide to help track this down? I did rename the cachedaccessories folder before the initial launch of homebridge with your plugin installed.

Quick question, how are you launching homebridge? Is it run as a service daemon?

it was, however, I switched to launching homebridge via pm2, and it appears to be resolved.

Okay thanks for following up. Without a way to reproduce the problem, I cannot troubleshoot and provide a fix for the issue that was occurring on your system.

agreed! I prefer pm2 anyway!


[Bug] iOS - can't show Popup from a modal page

Description
On iOS, Navigation.ShowPopup() fails when called from a modally presented Page.  The same scenario works fine on Android.
Steps to Reproduce

Call Navigation.PushModalAsync(new ModalPage()) to show ModalPage
On ModalPage, call Navigation.ShowPopup(new CustomPopup()) so show CustomPopup.

Expected Behavior
Popup should display on iOS as it does on Android
Actual Behavior
Popup failed to display with error "2021-04-10 12:04:13.936120+0100 XF_PopupModalIssue.iOS[5438:145915] [Presentation] Attempt to present <Xamarin_CommunityToolkit_UI_Views_PopupRenderer: 0x7fcd44e60000> on <Xamarin_Forms_Platform_iOS_PlatformRenderer: 0x7fcd44c25ba0> (from <Xamarin_Forms_Platform_iOS_PageRenderer: 0x7fcd4711aba0>) which is already presenting <Xamarin_Forms_Platform_iOS_ModalWrapper: 0x7fcd44d42e30>."
Basic Information

Version with issue: v1.1.0
Last known good version: N/A
IDE:
Platform Target Frameworks:

iOS:  14.4
Android: v9.0 (API Level 28)

Android Support Library Version:
Nuget Packages:
Affected Devices:

Workaround
None discovered
Reproduction imagery

Reproduction Link
Attached zipped XF solution reproduces the issue
XF_PopupModalIssue.zip

Experiencing same issue in iOS:
Here my error in console:
................. [Presentation] Attempt to present <Xamarin_CommunityToolkit_UI_Views_PopupRenderer: 0x7fbfb036dfc0> on <Xamarin_Forms_Platform_iOS_PlatformRenderer: 0x7fbfa9c3de80> (from <Xamarin_Forms_Platform_iOS_PageRenderer: 0x7fbfac02f160>) which is already presenting <Xamarin_Forms_Platform_iOS_ModalWrapper: 0x7fbfb151beb0>.
Hopefully someone finds a workaround :/

@ahoefling FYI

Did you find a workaround yet @michaelb-yambay  or anybody?

@jpacov - I've not found a workaround yet

I'm facing the same issue @jpacov and @michaelb-yambay are sharing here.
Is there any workaround?

Should be fixed in next release :)


Detects presence of Skaffold configuration file(s)

Fixes #7.
Detects presence of Skaffold configuration file(s) and uses notification on project open to ask to create Skaffold run configurations, either for both development and deployment, or one of them.
Example: project with existing Skaffold configuration but not prior Skaffold run configurations opened, the following notification shows:

User has an option to create both or one of the configuration, development target being the most visible (at least in the current 2018.3 implementation of Notification). If both configurations are selected, both are created, development target becomes selected in run configurations combobox:

Follow up PR: detect presence of a new Skaffold file when it's created in an already existing project.

Nice! Should the default action be to create both of them I wonder?
Also, I wonder if perhaps we should align the wording more with the default "Framework Detected" dialog:

After clicking configure in the above, you then select the appengine-web.xml file you wish to configure:

Can you remind me too why don't want to use the framework support mechanism to achieve this? "Skaffold" framework support absolutely shouldn't be required to have access to all the plugin features, but I wonder if we can use it just for the purposes of detecting the skaffold config?

just gave it for a spin too. works great!

Regarding frameworks, I thought about using framework detector to detect for files, but this indeed requires a framework. The framework idea as it's implemented in IDEA might look confusing to non-Java developers though since we target all JetBrains IDEs. Even more concerning, the support for "frameworks" and "facets" might not be complete for other IDEs, while simple run configurations are 100% supported across all IDEs. This is something we can discuss with JetBrains team on their favorite approach.
As an example of something working across all IDEs, I think Docker plugin does not add any "Docker" frameworks, although it detects files and adds run configurations.

+1 on making both configs the most visible option (again, highly version/implementation specific.)

ah! thats the reason...the other IDEs. I wonder what even happens in other IDEs (like GoLand for instance). Is framework support just not supported?

I didn't see anything "framework" in GoLand, there might be something in PyCharm (Ultimate), but this needs a lot of research. Unless there's a strongly recommended approach from JetBrains (we can ask them?), I think non-framework approach seems to be cleaner and simpler from both conceptual and implementation point of view.

agree 100%. if its only supported in IDEA then we shouldn't use (keeping it simple with a single language/ide-agnostic approach).

How about something like this:
Skaffold configuration detected.

Use Skaffold do deploy your applications to Kubernetes. Skaffold can also assist with rapid development by watching the dependencies of your docker image for changes, and redeploying your application to a Kuberenetes cluster for testing.

Then the actions would be as you have them, except that the second like will just say configure Skaffold and will create both run configs.
wdyt?

Also we could consider simplifying the action by getting rid of the actions drop down (can we do this?) and just having the "configure Skaffold" action (as described in the previous comment). The user can then decide later if they only need one of them (and delete it manually). This way there are less things to think about up front. Just and idea though..

It looks like the most notifications in IDEA/other IDEs take the shorter text approach - otherwise, except for the first sentence, the text will always appear clipped and not quite pleasant to see unless you close it and then re-read from event log. I can make a screenshot with a demo of that.
As for only suggesting one Skaffold action that creates both actions, I think this is a good idea and leaves user with less decision making. However, what if we still keep Kubernetes wording matching what we have in configurations naming? I.e. Create run configurations for Kubernetes with Skaffold

Yeah. clipping would be no good. I like the wording you suggested (I assume you mean that would be the action name?). If so, maybe the "create configurations?" part of the body of the notifications is redundant since the action is saying clearly that it will create the configurations.

Proposal:

I like it. Although it would be nice if it said something about the 'skaffold dev' feature. Can the description have bullets?
Skaffold configuration detected. Use Skaffold to:
- Deploy your applications to Kubernetes
- Update your deployed application continually during development

Second sentence wording adapted from the Skaffold github readme.
Is this too long?

It looks ok, truncated but can easily be opened with an arrow, i.e. initial state:

opened text state:

List bullets rendering is not ideal (look truncated) but looks like minor thing. WDYT?

I like it actually. We can tweak it later based on feedback, if you are ok with it.

nit: deploy in the first bullet -> Deploy

Ok, I'm good with that text too, let's go with that for now.

looks great. just a couple minor comments, update to the wording based on the discussion, then good to go

thanks, done.


[BUG] pipeline: feature branch pipeline creation fails for bare PDKPipelinePyProject

Describe the bug
I got a CDK CLI error during the creation of new pipelines for branches, however the main branch pipeline works.
--app is required either in command-line, in cdk.json or in ~/.cdk.json
Expected Behavior
When a new branch is pushed, the CodeBuild project should create a new pipeline stack for the branch.
Current Behavior
The CodeBuild project fails with

[Container] 2023/06/06 21:30:38 Running command cd
[Container] 2023/06/06 21:30:38 Running command cdk synth

--app is required either in command-line, in cdk.json or in ~/.cdk.json

[Container] 2023/06/06 21:30:38 Command did not exit successfully cdk synth exit status 1
[Container] 2023/06/06 21:30:38 Phase complete: BUILD State: FAILED
[Container] 2023/06/06 21:30:38 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: cdk synth. Reason: exit status 1

Reproduction Steps
.projenrc.py
from aws_prototyping_sdk import pipeline

project = pipeline.PDKPipelinePyProject(
    author_email="mmmm@nnnn",
    author_name="mmmm",
    module_name="mmmm",
    name="mmmm",
    version="0.1.0",
    deps=["aws-prototyping-sdk.pipeline"],
    cdk_version="2.81.0",
    context={
        "repositoryName": "mmmm",
        "defaultBranchName": "main",
    },
)

project.synth()

pipeline_stack.py
        self.pipeline = PDKPipeline(
            self,
            "Pipeline",
            primary_synth_directory="cdk.out",
            repository_name=repo_name,
            default_branch_name=default_branch_name,
            publish_assets_in_parallel=False,
            docker_enabled_for_synth=True,
            synth=pipelines.ShellStep("Unused", commands=[]),
            synth_shell_step_partial_props={
                "install_commands": [
                    "npm install -g aws-cdk",
                    "pip install -r requirements-dev.txt",
                    "pip install -r requirements.txt",
                    "projen",
                ],
                "commands": ["projen build"],
            },
            cdk_command="cdk",
            branch_name_prefixes=PDKPipeline.ALL_BRANCHES,
        )

Possible Solution
In this project, cdk.out and cdk.json are both in the root of the repository. The CodeBuild project should run cdk from the directory with cdk.json
Additional Information/Context
No response
PDK version used
0.19.15
What languages are you seeing this issue on?
Python
Environment details (OS name and version, etc.)
MacOS 12.6.5

Please assign this to me

@jstrunk - any update on this one?

I had a lot to do in June. I plan to work on it after July 20th.
On Mon, Jul 10, 2023, 21:02 Adrian Dimech @.***> wrote:

@jstrunk https://github.com/jstrunk - any update on this one?
—
Reply to this email directly, view it on GitHub
https://github.com/aws/aws-prototyping-sdk/issues/462#issuecomment-1629940100,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAUYCUUAZ7DGJJDW26ZTC3XPSQ4FANCNFSM6AAAAAAY6BKGGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

I've isolated the issue. This would happen any time PDKPipeline is used without nx-monorepo. In the FeatureBranch CodeBuild job, I run cdk deploy because it's not run as part of a pipeline. That means cdk deploy needs to run in the directory with cdk.json instead of having the pipeline deploy the CloudFormation artifacts directly with CloudFormation.
In an nx-monorepo project, the cdk.json with be in a project subdirectory, but without nx-monorepo, it's in the project root.
I was trying to detect the location of cdk.json based on the primarySynthDirectory by removing the last part of the directory:
https://github.com/aws/aws-prototyping-sdk/blob/7f5f3fecfe501b4fb6d2686b65f92b4e15453e52/packages/pipeline/src/pdk-pipeline.ts#L344-L347
In the case of cdk.json in the project root, that generates a "cd " command in the buildspec before running cdk deploy:
https://github.com/aws/aws-prototyping-sdk/blob/7f5f3fecfe501b4fb6d2686b65f92b4e15453e52/packages/pipeline/src/pdk-pipeline.ts#L344-L347
@agdimech Which solution fits best here?

Shift up the cdkSrcDir prop to the developer so they can define it. I'd make it optional and only add a cd ${props.cdkSrcDir} command if it's defined.
Detect an empty value in the call to FeatureBranches in pdk-pipeline.ts and change it to undefined or ..
Detect an empty value in the buildspec definition at https://github.com/aws/aws-prototyping-sdk/blob/7f5f3fecfe501b4fb6d2686b65f92b4e15453e52/packages/pipeline/src/feature-branches.ts#L126 and remove the cd command or change it to cd ..

After further research, option 1 is my preference. The location of cdk.out is specified in cdk.json in the output attribute. I don't think there's a definitive way to determine the  location of cdk.json from cdk.out.
I will expose cdkSrcDir as an optional property of PDKPipeline and make the default be the same directory as cdk.out taking care to avoid running "cd ".


Bug: 'error executing luv callback' in live_grep with mini.icons

RTFM Checklist

[X] I have searched exisiting issues / discussions
[ ] I have read the Wiki including the Advanced section
[ ] I have read man fzf / I am well versed in shell fzf

Operating system
linux (NixOS-unstable)
Shell
fish
Neovim version (nvim --version)
v0.11.0-nightly+b991319
Fzf version (fzf --version)
0.54.3
Output of :lua print(os.getenv('FZF_DEFAULT_OPTS'))
--bind=alt-e:down --bind=alt-i:up
Is the problem reproducible with mini.sh?

[ ] My issue is reproducible with mini.sh
[ ] My issue IS NOT reproducible with mini.sh
[X] I have not tested with mini.sh (not relevant, requires LSP, Windows, etc)

Fzf-lua configuration
require('fzf-lua').setup({
    defaults = {
    file_icons = 'mini',
  },
})

Describe the bug / steps to reproduce
Typing a few non-alphanumeric regex characters in the live grep causes this error message with a stack traceback to show up in the left search window.
Further attempts to start any instance of fzf-lua crash due to MiniIcons:load_icons receiving a 'self._state' with value vim.NIL.

Typing a few non-alphanumeric regex characters in the live grep causes this error message with a stack traceback to show up in the left search window.

It would be helpful if you can provide the full stack trace from :messages and better yet if you can provide exact steps for me to reproduce this (does it fail due to a specific file? etc).

I don't know how to copy the stack trace, but here is a screenshot. I'm not sure how helpful it is.

I need to see the line and column where it fails in the code, can you close the preview with F4 and also press ctrl-/ to enable wrap and screenshot again?
Also, any specific steps I can reproduce this, any extension this fails on or is it random?

That’s much better I can see which lines are failing.
If you change to devicons does it work?

@nimr0d, should work as expected with https://github.com/ibhagwan/fzf-lua/commit/64a305a2490e48c44be9f5a489e01b995dd58c92, lmk if otherwise?


Do not hardcode http as plugin URL scheme for secure connections.

Signed-off-by: David Calavera<EMAIL_ADDRESS>

LGTM when Jenkins is happy

LGTM


AOD Document for  Mad Platform Mobile Apps

https://statoilsrm.sharepoint.com/:w:/r/sites/Equinor-CapGeminiRightShoring/Shared Documents/General/Transition/03. Knowledge Exchange/Mad-Max Team/02. MAD Platform/08. AOD/MAD Platform AOD Doc.docx?d=wb162dd44637f435587191c9700a30293&csf=1&web=1&e=u0fUVB


override app config in a module?

Hi,
I've seen that specifying new config param is possible with the Config/config.php file
Is it possible to override some configuration param, let's say the auth guard & provider used ?

Hello.
A module's configuration is prefixed with the module name. You can, however, set an app configuration in the module's Service Provider.
Edit the boot method of Modules/{ModuleName}/Providers/{ModuleName}ServiceProvider.php

ModuleServiceProvider.php

public function boot()
 {
    // Set your app config.
    config(['app_config' => 'value']);

    // Don't change this...
    $this->registerTranslations();
    $this->registerConfig();
    $this->registerViews();
    $this->registerFactories();
    $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
 }


Subscriber emotes fail to load sometimes

Every channel that has subscription emotes shows the message: "no subscription emotes available"

Chatterino 2.2.2-fix (commit a82f57f94)
Windows 10

This tab is not for showing a channels subscriber emotes, it's for showing your own sub/global emotes. You're receiving this error because you are either,

Not Logged in
Have no subscriber/global emotes

It appears as though it is inconsistent or a bug from the result of an update I had for the app today. I was both signed in and had a page open with emotes and my account is subscribed to quite a few other streamers. Upon opening and reopening the app a few times, it fixed itself but the other tabs (channel/global/emojis) were always fine, it was just the Subs channel that was appearing to not show for quite a while, even when logged in to a subscribed account.

Cannot reproduce | Windows 10 | commit 529f19a2d

Api call might fail to fetch emotes so it drops the try, maybe add a feature that retries fetching emotes?

With the recent update (v2.3.3 or latest nightly) fetching emoteset data from Twitch API instead of our servers this should eliminate a potential failure. If the issue keeps occurring feel free to @mention me and I'll reopen the issue.

@zneix Hello, I hope you are doing well! I recently found this thread, and was wondering if there was any solution to this issue because I am currently having the same problem with chatterino. I have the latest version, and Chatterino was working fine earlier, but for some reason it is not working with the subscription emotes. It is telling me there are none when there are, and I'm subscribed to three other streamers.

@ltindel2021 As stated in the last comment, we get our data directly from Twitch now, so just restart or wait it out basically as it's likely to be an issue between your ISP and Twitch, or Twitch themselves.

@Felanbird Thank you! I did a bit of information searching to see if it was a visual studios issue or a shortcut issue. For some reason it works now, but I have to open the emotes box 2 times for it to start working. I think Chatterino or Twitch is just having a moment. Thank you again :).


Fork, Commit, Merge - Easy Issue (TypeScript)

Fork, Commit, Merge - Easy Issue (TypeScript)
In this task, you will fix a function in TypeScript.
Description
We have a function named greet which should take a string argument name and return a greeting message. However, the function is currently incomplete.
Here is the existing code:
function greet(name: string): string {
    // TODO: Add return statement
}

let user: string = 'John Doe';

console.log(greet(user));

Your task is to add the necessary return statement to the greet function so that it returns a greeting message. The function should return a string in the format Hello, [name]! where [name] is the value of the input argument.
How to get started
Open the tasks/typescript/easy directory from the root of your project.
Once you have added the return statement to the greet function, you can test your solution with this command:
npx ts-node tasks/typescript/easy/index.ts

If your solution is correct, the command should output Hello, John Doe! in the console and you are ready to make a pull request!
Check out README.md for more instructions and how to make a pull request.
Note that this issue is always going to be open for new contributors to join.
The actions-user bot will reset the file back to previous state for the next contributor.
Feel free to ask any questions here if you have some problems!

Up for grabs? I can work on this.

Sure, go ahead!

Up for grabs? I can work on this.

Sure, go ahead!

Thanks..


⚠ SceneTime has degraded performance

In f73a76a, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1290 ms

Resolved: SceneTime performance has improved in f329a4d.


AMQP-684: Recovery Listener and Naming Strategy [Backport]

JIRA: https://jira.spring.io/browse/AMQP-684
Backport
AMQP-631: Add ConnectionNameStrategy for CF
JIRA: https://jira.spring.io/browse/AMQP-631
To allow to identify application connections in the Broker or other monitoring and tracing tools, the Rabbit Connection can be supplied with connection_name property.

Introduce ConnectionNameStrategy for injection into the AbstractConnectionFactory which is used to generate name for the underlying rabbitConnectionFactory.newConnection() operation

Fix language

Fix redundant import in the ConnectionNameStrategy

Change FQCN (getClass()) to the SpringAMQP identifier

Conflicts:
spring-rabbit/src/test/java/org/springframework/amqp/rabbit/connection/CachingConnectionFactoryIntegrationTests.java
src/reference/asciidoc/whats-new.adoc
Resolved.
RecoveryListener
AMQP-631: Fix mocks test for new method in charge
JIRA: https://jira.spring.io/browse/AMQP-631
Conflicts:
spring-rabbit/src/test/java/org/springframework/amqp/rabbit/connection/ClientRecoveryCompatibilityTests.java
spring-rabbit/src/test/java/org/springframework/amqp/rabbit/connection/SingleConnectionFactoryTests.java
spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/RabbitTemplateHeaderTests.java
spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/RabbitTemplateTests.java
spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/ExternalTxManagerTests.java
spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/LocallyTransactedTests.java
Resolved.
Polishing

Merged as https://github.com/spring-projects/spring-amqp/commit/bad586ab7bf7572c01e311f1c10acbbcc4e9fe15


Integrate TFSec into CI-CD

https://aquasecurity.github.io/tfsec/v1.20.0/

ex: https://github.com/ashleymichaelwilliams/aws-sandbox/blob/72bead72101701e5b4c0e1ffca43950c8d8f5f43/.github/workflows/tfsec.yml


probot/stale requires the presence of a .github/stale.yml file.

If you want the default behavior, you need to add an empty .github/stale.yml file to this repo, otherwise the bot will not be active.

If merged, this fixes #132


How change encoding from utf8 to wincp1251?

I'm using RestKit. I get response fom server in Wincp1251 encoding, in RestKit default encoding utf8 and returns NULL to my mapped object properties (NSString).
How I can  solve this problem with RestKit functionality?

StackOverflow is the appropriate place for this (and any other support) question (and you have already asked it there).


help layout is messy

Godot version:
3.2 alpha 2
OS/device including version:
Windows 10
Issue description:
Help layout is messy, need a wider column layout
In this image, desktop size is 2540x1440

CC @Calinou

To solve this, I guess the margins should be calculated based on the help font sizes (whichever is larger, excluding the title font size).

To solve this, I guess the margins should be calculated based on the help font sizes (whichever is larger, excluding the title font size).

perhaps visible area too... 2540x1440 shows a lot of wasted eomty space

I didn't think about people using particularly large fonts for documentation when implementing #31588 🙂

aging causes vision loss... and fonts growing :P


remove the start script from Calendar-Widgets package

This is confusing and causing unnecessary difficulties for folks getting started locally. The start script within the /workspaces/calendar-widgets/package.json file does nothing at all and should be removed from the project. We only need the build and lint commands.

@9mbs added pr for issue#88

Thank you @Ankan-cyber !! This should fix potential confusions when folks are pulling up the project locally. Closing this issue as the problem is resolved 🙂


Add lane for releasing a new version

To simply the creation of a new release it’d be nice to have a fastlane lane doing the boring bits.
Requirements
It should…

[ ] take a single argument ala. fastlane release version:2.1.0.
[ ] update module_version in .jazzy.yml.
[ ] update s.version in HubFramework.podspec.
[ ] generate a changelog for the release.

Should follow the standard changelog format. [TODO(@rastersize): Find link to the standard.]
Should be useable for a CHANGELOG.md file as well as the GitHub release notes.

[ ] commit all of its changes with the a message like: Bumping framework version to X.Y.Z
[ ] tag the newly version bump commit as X.Y.Z (e.g. 2.1.0).
[ ] optionally push the commit and tag to GitHub (controlled by an argument ala. push:<true|false>).

Should default to true.

Stretch goal: have the lane turn the git tag to a GitHub release automatically and set the release notes to the generated changelog.

The Hub Framework is being phased out at Spotify, and therefore we will not be maintaining it further.


Experiment with what it might look like to check Clutz/Tsickle output into repo

We've got a better approach with only a single file.


In toplevel form: ../../lang/org/config.el:438:1:Warning: Unused lexical variable     ‘recentf-exclude’ ../../lang/org/config.el:945:6:Error: Error in a Doom module: "modules/lang/org/contrib/dragndrop.el", (void-function org-link-set-parameters)   x Failed to compile modules/lang/org/config.el

I encountered an error when I  doom install
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Error getting directory: No such file or directory
Warning (initialization): Error setting default-directory
Installing Doom Emacs!

> Creating .doom.d/
  ✓ Created .doom.d/
x There was an unexpected error:
  Type: void-function
  Message:
    Symbol's function definition is void
  Data:
    projectile-file-exists-p

Run the command again with the -d (or --debug) switch to enable debug
mode and (hopefully) generate a backtrace from this error:

  doom -d install

If you file a bug report, please include it!

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Error getting directory: No such file or directory
Warning (initialization): Error setting default-directory

This means you're running doom install from a directory that doesn't exist or isn't readable, and isn't related to Doom itself. Try this instead:
cd ~
~/.emacs.d/bin/doom install

Also, I'm not sure what the error message in the title of this issue has to do with the error you're getting, so I will change it.

thanks,it's solved!


[Docs] Add ASP .NET MVC Server Setup for Routes

What problem does this feature solve?
In the docs on this page: https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations
There is no example for an ASP .NET MVC app, which I am sure some folks would find helpful.
What does the proposed API look like?
Add this sample C# code for ASP .NET MVC:
Startup.cs:
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
         ...

            // Standard Server-side Route to load our SPA
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

            // Here, we make sure that if url is for an API call we would still get an actual 404 response if not found, otherwise for the SPA, we are set up to handle them using a component page
            app.MapWhen(x => !x.Request.Path.Value.StartsWith("/api"), builder =>
            {
                builder.UseMvc(routes =>
                {
                    routes.MapSpaFallbackRoute(
                        name: "spa-fallback",
                        defaults: new { controller = "Home", action = "Index" });
                });
            });
        }

Sure, feel free to create a PR for it, I will ask for others ASP devs reviews :)


live-share cause the VS2019 to crash

Describe what happened:
latest version live-share cause the VS2019 to crash
What was your system configuration?
Product and Version [VS/VSCode]:VS2019 16.5.5
OS Version[macOS/Windows]:Windows10
Live Share Extension Version:1.0.2170.0
Target Platform or Language [e.g. Node.js]:c#
Steps to Reproduce / Scenario:

Go to 'View'
Click on 'Other Windows'
VS2019 to crash

4.forbidden live-share,VS2019 is normal

Most people have the same problem
https://developercommunity.visualstudio.com/content/problem/1034076/vs-crash-when-menu-view-other-windows-is-opened.html

Can confirm this is issue is coming from Live Share, I tried disabling it and it solves the issue.

now,update VS2019 can solve the problem

For reference, fixed in Live Share version v1.0.2236


Atomik src set order

Resolves [9.0.2b1] Thumbnail Picture srcset image order not properly set in Atomik #10215

Ah, thanks – I think I took care of this in https://github.com/aembler/concrete5/commit/2bdedf40dffec46686d6a7380e20be3fd3f31aee


Add helm charts for Active mode controller

Since active mode controller is merged, we need to add it to helm charts.

#158


Difficult to see the year changes

It is difficult to see the year changes on the top timeline. Maybe make them bold or a darker color to make them stand out more.

Thanks for your input, @hkelly93! I uploaded a demo of the new feature to http://bit.ly/1tevllL.


Examples/Details for interfaces of HasCheckConstraint

These two seem strait forward. the second string is just the SQL that represents the constraint.

HasCheckConstraint(EntityTypeBuilder, String, String)
HasCheckConstraint<TEntity>(EntityTypeBuilder<TEntity>, String, String)

Q) Are there any limitations to a constraint applied in this way? Are there any limitations based on the Database Target? Such as MySQL vs MSSql.
This DataAnnotation version however, raises a few questions.

HasCheckConstraint(IConventionEntityTypeBuilder, String, String, Boolean)

Which DataAnnotations are supported? Any? Or is there a set of DataAnnotations that are explicitly supported? What about custom DataAnnotations?
Are there DataAnnotations that are not supported when using a specific Database Target? MySQL vs MSSql?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1bb554ee-fe06-b145-318a-735b1d5f3495
Version Independent ID: f9bd034e-3c22-c710-80ed-e3f4d1acaac1
Content: RelationalEntityTypeBuilderExtensions.HasCheckConstraint Method (Microsoft.EntityFrameworkCore)
Content Source: dotnet/xml/Microsoft.EntityFrameworkCore/RelationalEntityTypeBuilderExtensions.xml
Product: ef-core-api
GitHub Login: @dotnet-bot
Microsoft Alias: divega

Additionally, it may prove beneficial if the example provided the C# and the resulting SQL

@itanex DataAnnotations are not currently supported. The IConventionEntityTypeBuilder  API is for conventions that would add support for DataAnnotations.


[QA] Add trigger for component library tests

Description
Notice

[ ] I acknowledge and agree that, by checking this box and clicking "Submit Pull Request":

I submit this contribution under the Apache 2.0 license and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.
I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorized to submit this contribution on behalf of the original creator(s) or their licensees.
I certify that the use of this contribution as authorized by the Apache 2.0 license does not violate the intellectual property rights of anyone else.
I have not referenced individuals, products or companies in any commits, directly or indirectly.
I have not added data or restricted code in any commits, directly or indirectly.

@l0uden - would you mind adding some description of what these changes are for? 😄 I have an assumption, but would be good to know for future tracking!

@l0uden - would you mind adding some description of what these changes are for? 😄 I have an assumption, but would be good to know for future tracking!

Sorry, I've definitely added the description, but looks like it wasn't saved.