feat(tokens): DLT-1696 update docsite for new themes

feat(tokens): DLT-1696 update docsite for new themes

Obligatory GIF (super important!)

:hammer_and_wrench: Type Of Change

[x] Feature

:book: Jira Ticket
https://dialpad.atlassian.net/browse/DLT-1696
:book: Description
NOTE: this PR is split into 3 parts for ease of review. Token processing, PostCSS processing, and Documentation site updates. This is the documentation site updates which includes updating the doc site to handle the new tokens system.

Added brand selector on the tokens page. This will allow you to display the tokens for a specific brand (dialpad / tmo / expressive) in addition to just a theme (dark / light).
Use the new isCompositionToken property to prevent displaying "sub-composition" tokens.
Added a new theme function in dialtone/common that allows you to set the theme and brand. Implemented this into the "theme changer" on the dialtone docsite. This will also set data-dt-brand and data-dt-theme on the root element for ease of use on the application side.

:bulb: Context
Major changes in theme tokens, docsite needs be updated to document and display them.
:pencil: Checklist

For all PRs:

[x] I have ensured no private Dialpad links or info are in the code or pull request description (Dialtone is a public repo!).
[x] I have reviewed my changes.
[x] I have added all relevant documentation.
[x] I have considered the performance impact of my change.

:camera: Screenshots / GIFs

I am seeing some duplicated tokens in the list:

This could be my local build though

I am seeing some duplicated tokens in the list:
This could be my local build though

Nope, that appears to be a legitimate problem. Looking into it.

I am also not seeing the examples of the shadows, seems like some of the tokens that make the composition are undefined:

I am also not seeing the examples of the shadows, seems like some of the tokens that make the composition are undefined:

ah yeah looks like only on the focus shadows. thanks

I am seeing some duplicated tokens in the list:

Silly logic error by me in the doc generation, should be fixed now.

ah yeah looks like only on the focus shadows. thanks

shadow issue fixed.

The shadows are looking good!
I see that the tooltips for the composition tokens are no longer there:

These are not showing the preview for this PR

I see that the tooltips for the composition tokens are no longer there:

Yep, workin on that one

When switching to Expressive Brand, I'm seeing duplicates of at least font size. Haven't found other duplicates.
https://github.com/user-attachments/assets/1640a92c-752b-4fbb-93fa-bb1e5ed48650

I see that the tooltips for the composition tokens are no longer there:

These are now fixed!

When switching to Expressive Brand, I'm seeing duplicates of at least font size. Haven't found other duplicates.

Hmm bit of an edge case here.. Seems like in the expressive brand we are redefining base font sizes in a semantic file which is not really supposed to happen. Only semantic tokens are meant to be defined in a semantic file. I'm guessing this is a case we'll need for the expressive theme though right? In the case of a conflict like this between base and semantic I guess we could just have the one from the semantic file override the base. It already works like that in css (just tested it)

When switching to Expressive Brand, I'm seeing duplicates of at least font size. Haven't found other duplicates.

Fixed! was actually pretty simple

When switching to Expressive Brand, I'm seeing duplicates of at least font size. Haven't found other duplicates.

Hmm bit of an edge case here.. Seems like in the expressive brand we are redefining base font sizes in a semantic file which is not really supposed to happen. Only semantic tokens are meant to be defined in a semantic file. I'm guessing this is a case we'll need for the expressive theme though right? In the case of a conflict like this between base and semantic I guess we could just have the one from the semantic file override the base. It already works like that in css (just tested it)

Should this be fixed in Figma at some point in the future? because it means that some tokens are repeated in the base and in the brand file

Should this be fixed in Figma at some point in the future? because it means that some tokens are repeated in the base and in the brand file

Yeah, but I guess I'm not entirely sure that's wrong?

Should this be fixed in Figma at some point in the future? because it means that some tokens are repeated in the base and in the brand file

Yeah, but I guess I'm not entirely sure that's wrong? If you needed to change a base token at theme level like in this case, how else would you do it?

I guess for now is fine, but I understood that in the future we want base tokens to not change with the theme / brand.


Fix fail to create three hops of ref pages

What problem does this PR solve?
Issue Number: close https://github.com/pingcap/tiflash/issues/5570
Problem Summary: As described in https://github.com/pingcap/tiflash/issues/5570#issuecomment-1211734445
What is changed and how it works?
In VersionedPageEntries::incrRefCount and VersionedPageEntries::resolveToPageId (with ignore_deletes=true), we ignore deletes before ver until we find an entry.
This is base on the assumption that we won't reuse the same page id before we cleanup all the ref to a page  in the upper layer.
tests:

add segment logical split random test SegmentOperationTest.SegmentLogicalSplit
add ref page random test PageDirectoryTest.{NewRefAfterDelRandom,NewRefToExtAfterDelRandom}

Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/rebuild

/cc @lidezhu @breezewish

/run-all-tests

/rebuild

/run-integration-test

/rebuild

/run-integration-test

/merge

/run-all-tests

/merge


Feature Request: Display deez nuts on screen?

👁👅👁

I will consider it.

Added deez nuts and lot more!


Displaying Empty Directory in some devices

When click on Choose a File, a progress bar is shown then Empty Directory message is displayed.
I guess, FileChooserActivity is not properly loading the List of files.

Samsung Galaxy s6 edge (SM-G935FD)	Android 6.0.1    (23)	MARSHMELLOW
LG Nexus 5 (Nexus 5)	Android 6.0       (23)	MARSHMELLOW

The issue was because of the App permissions feature in Android Marshmallow.
Since the library is bit out of date and doesn't handle the permissions properly, therefore the storage permission was not granted which was causing this issue.

Turning the permission on, displayed the list.
But proper handling of Android Marshmallow permission is required in the library.


Translate for distinct, json, present, and required_unless.

Translate for distinct, json, present, and required_unless.

Hello,
thanks, but can you do for in_array ?

It's done. Thanks.

Thanks


Protocols on python 3.9.7 does not have init

At UDP protocol __init__ function the call to super().__init__() is invalid on 3.9.7. Could be removed.
Do you want a PR for it ?

3.9.7 is long gone, closing.


VH1 Extractor error 500 on certain urls

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2<IP_ADDRESS>. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
United States
Description
So I have tried to figure out the issue, but I'm stumped. There are some videos that download just fine, but others time out or just give 500 errors non-stop and never download. It seems to be just VH1, as I haven't had issues with Nick/NickJr or ParamountNetwork although MTV sometimes will timeout but eventually download the video on retries.
Examples of URLs that won't download:
https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5
https://www.vh1.com/episodes/a60wta/nick-cannon-presents-wild-n-out-donnell-rawlings-belly-season-17-ep-13
Examples of URLs that WILL download:
https://www.vh1.com/episodes/d2zcc5/nick-cannon-presents-wild-n-out-capella-grey-season-17-ep-14
https://www.vh1.com/episodes/83ykug/nick-cannon-presents-wild-n-out-jimmie-allen-season-17-ep-4
Verbose log
D:\>ytdl --cookies-from-browser chrome -F "https://www.vh1.com/episodes/kvm6kf/vh1-family-reunion-love-hip-hop-edition-unconditional-love-in-a-family-dose-season-2-ep-10" --verbose
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-F', 'https://www.vh1.com/episodes/kvm6kf/vh1-family-reunion-love-hip-hop-edition-unconditional-love-in-a-family-dose-season-2-ep-10', '--verbose']
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\Sipherdrakon\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[Cookies] Extracted 3687 cookies from chrome
[debug] cookie version breakdown: {'v10': 3687, 'other': 0, 'unencrypted': 0}
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, err utf-8, pref cp1252
[debug] yt-dlp version 2<IP_ADDRESS> [c0c2c57d3] (win_exe)
[debug] Lazy loading extractors is disabled
[debug] Python version 3.9.4 (CPython 64bit) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.4-full_build-www.gyan.dev (setts), ffprobe 4.4-full_build-www.gyan.dev, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [vh1.com] Extracting URL: https://www.vh1.com/episodes/kvm6kf/vh1-family-reunion-love-hip-hop-edition-unconditional-love-in-a-family-dose-season-2-ep-10
[vh1.com] vh1-family-reunion-love-hip-hop-edition-unconditional-love-in-a-family-dose-season-2-ep-10: Downloading webpage
[vh1.com] 3c50fc51-57f1-11ec-8774-70df2f866ace: Downloading info
ERROR: [vh1.com] kvm6kf: Unable to download XML: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 617, in extract
  File "yt_dlp\extractor\mtv.py", line 333, in _real_extract
  File "yt_dlp\extractor\mtv.py", line 237, in _get_videos_info
  File "yt_dlp\extractor\mtv.py", line 240, in _get_videos_info_from_url
  File "yt_dlp\extractor\common.py", line 947, in _download_xml
  File "yt_dlp\extractor\common.py", line 926, in _download_xml_handle
  File "yt_dlp\extractor\common.py", line 768, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 753, in _request_webpage

  File "yt_dlp\extractor\common.py", line 735, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3589, in urlopen
  File "urllib\request.py", line 523, in open
  File "urllib\request.py", line 632, in http_response
  File "urllib\request.py", line 561, in error
  File "urllib\request.py", line 494, in _call_chain
  File "urllib\request.py", line 641, in http_error_default
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

D:\>ytdl --cookies-from-browser chrome -F "https://www.vh1.com/episodes/83ykug/nick-cannon-presents-wild-n-out-jimmie-allen-season-17-ep-4" --verbose
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-F', 'https://www.vh1.com/episodes/83ykug/nick-cannon-presents-wild-n-out-jimmie-allen-season-17-ep-4', '--verbose']
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\Sipherdrakon\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[Cookies] Extracted 3687 cookies from chrome
[debug] cookie version breakdown: {'v10': 3687, 'other': 0, 'unencrypted': 0}
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, err utf-8, pref cp1252
[debug] yt-dlp version 2<IP_ADDRESS> [c0c2c57d3] (win_exe)
[debug] Lazy loading extractors is disabled
[debug] Python version 3.9.4 (CPython 64bit) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.4-full_build-www.gyan.dev (setts), ffprobe 4.4-full_build-www.gyan.dev, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [vh1.com] Extracting URL: https://www.vh1.com/episodes/83ykug/nick-cannon-presents-wild-n-out-jimmie-allen-season-17-ep-4
[vh1.com] nick-cannon-presents-wild-n-out-jimmie-allen-season-17-ep-4: Downloading webpage
[vh1.com] 31fe2720-3c68-11ec-8774-70df2f866ace: Downloading info
[vh1.com] 405d9793-d871-465e-af32-b9abc8c52fc4: Extracting information
[vh1.com] 405d9793-d871-465e-af32-b9abc8c52fc4: Downloading video urls
[vh1.com] 405d9793-d871-465e-af32-b9abc8c52fc4: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[vh1.com] a2afdb02-7420-4e85-8b8b-ab7866f15971: Extracting information
[vh1.com] a2afdb02-7420-4e85-8b8b-ab7866f15971: Downloading video urls
[vh1.com] a2afdb02-7420-4e85-8b8b-ab7866f15971: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[vh1.com] 89b0f25e-5c58-4218-823e-bf1a74d3edb6: Extracting information
[vh1.com] 89b0f25e-5c58-4218-823e-bf1a74d3edb6: Downloading video urls
[vh1.com] 89b0f25e-5c58-4218-823e-bf1a74d3edb6: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[vh1.com] d34db592-640f-46dd-b38f-a15ebd779e2c: Extracting information
[vh1.com] d34db592-640f-46dd-b38f-a15ebd779e2c: Downloading video urls
[vh1.com] d34db592-640f-46dd-b38f-a15ebd779e2c: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[vh1.com] 56720a27-910f-4dcf-9bc0-42ff4aec2bec: Extracting information
[vh1.com] 56720a27-910f-4dcf-9bc0-42ff4aec2bec: Downloading video urls
[vh1.com] 56720a27-910f-4dcf-9bc0-42ff4aec2bec: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[download] Downloading playlist: Jimmie Allen
[vh1.com] playlist Jimmie Allen: Collected 5 videos; downloading 5 of them
[download] Downloading video 1 of 5
[info] Available formats for 405d9793-d871-465e-af32-b9abc8c52fc4:
ID       EXT RESOLUTION FPS │   FILESIZE   TBR PROTO  │ VCODEC        VBR ACODEC    ABR
───────────────────────────────────────────────────────────────────────────────────────
hls-355  mp4 384x216     29 │ ~ 16.66MiB  355k m3u8_n │ avc1.4D401E  355k mp4a.40.2  0k
hls-580  mp4 512x288     29 │ ~ 27.17MiB  580k m3u8_n │ avc1.4D401F  580k mp4a.40.2  0k
hls-1123 mp4 640x360     29 │ ~ 52.60MiB 1123k m3u8_n │ avc1.4D401F 1123k mp4a.40.2  0k
hls-1635 mp4 768x432     29 │ ~ 76.56MiB 1635k m3u8_n │ avc1.4D401F 1635k mp4a.40.2  0k
hls-2252 mp4 960x540     29 │ ~105.45MiB 2252k m3u8_n │ avc1.4D401F 2252k mp4a.40.2  0k
hls-3277 mp4 1280x720    29 │ ~153.46MiB 3277k m3u8_n │ avc1.640028 3277k mp4a.40.2  0k
hls-5318 mp4 1920x1080   29 │ ~249.02MiB 5318k m3u8_n │ avc1.640028 5318k mp4a.40.2  0k
[download] Downloading video 2 of 5
[info] Available formats for a2afdb02-7420-4e85-8b8b-ab7866f15971:
ID       EXT RESOLUTION FPS │   FILESIZE   TBR PROTO  │ VCODEC        VBR ACODEC    ABR
───────────────────────────────────────────────────────────────────────────────────────
hls-356  mp4 384x216     29 │ ~ 13.46MiB  356k m3u8_n │ avc1.4D401E  356k mp4a.40.2  0k
hls-581  mp4 512x288     29 │ ~ 21.98MiB  581k m3u8_n │ avc1.4D401F  581k mp4a.40.2  0k
hls-1123 mp4 640x360     29 │ ~ 42.47MiB 1123k m3u8_n │ avc1.4D401F 1123k mp4a.40.2  0k
hls-1629 mp4 768x432     29 │ ~ 61.61MiB 1629k m3u8_n │ avc1.4D401F 1629k mp4a.40.2  0k
hls-2249 mp4 960x540     29 │ ~ 85.07MiB 2249k m3u8_n │ avc1.4D401F 2249k mp4a.40.2  0k
hls-3274 mp4 1280x720    29 │ ~123.82MiB 3274k m3u8_n │ avc1.640028 3274k mp4a.40.2  0k
hls-5313 mp4 1920x1080   29 │ ~200.92MiB 5313k m3u8_n │ avc1.640028 5313k mp4a.40.2  0k
[download] Downloading video 3 of 5
[info] Available formats for 89b0f25e-5c58-4218-823e-bf1a74d3edb6:
ID       EXT RESOLUTION FPS │   FILESIZE   TBR PROTO  │ VCODEC        VBR ACODEC    ABR
───────────────────────────────────────────────────────────────────────────────────────
hls-355  mp4 384x216     29 │ ~ 12.96MiB  355k m3u8_n │ avc1.4D401E  355k mp4a.40.2  0k
hls-580  mp4 512x288     29 │ ~ 21.16MiB  580k m3u8_n │ avc1.4D401F  580k mp4a.40.2  0k
hls-1122 mp4 640x360     29 │ ~ 40.90MiB 1122k m3u8_n │ avc1.4D401F 1122k mp4a.40.2  0k
hls-1634 mp4 768x432     29 │ ~ 59.55MiB 1634k m3u8_n │ avc1.4D401F 1634k mp4a.40.2  0k
hls-2249 mp4 960x540     29 │ ~ 81.94MiB 2249k m3u8_n │ avc1.4D401F 2249k mp4a.40.2  0k
hls-3272 mp4 1280x720    29 │ ~119.21MiB 3272k m3u8_n │ avc1.640028 3272k mp4a.40.2  0k
hls-5309 mp4 1920x1080   29 │ ~193.39MiB 5309k m3u8_n │ avc1.640028 5309k mp4a.40.2  0k
[download] Downloading video 4 of 5
[info] Available formats for d34db592-640f-46dd-b38f-a15ebd779e2c:
ID       EXT RESOLUTION FPS │   FILESIZE   TBR PROTO  │ VCODEC        VBR ACODEC    ABR
───────────────────────────────────────────────────────────────────────────────────────
hls-355  mp4 384x216     29 │ ~ 10.33MiB  355k m3u8_n │ avc1.4D401E  355k mp4a.40.2  0k
hls-578  mp4 512x288     29 │ ~ 16.82MiB  578k m3u8_n │ avc1.4D401F  578k mp4a.40.2  0k
hls-1116 mp4 640x360     29 │ ~ 32.47MiB 1116k m3u8_n │ avc1.4D401F 1116k mp4a.40.2  0k
hls-1623 mp4 768x432     29 │ ~ 47.21MiB 1623k m3u8_n │ avc1.4D401F 1623k mp4a.40.2  0k
hls-2233 mp4 960x540     29 │ ~ 64.94MiB 2233k m3u8_n │ avc1.4D401F 2233k mp4a.40.2  0k
hls-3248 mp4 1280x720    29 │ ~ 94.46MiB 3248k m3u8_n │ avc1.640028 3248k mp4a.40.2  0k
hls-5276 mp4 1920x1080   29 │ ~153.43MiB 5276k m3u8_n │ avc1.640028 5276k mp4a.40.2  0k
[download] Downloading video 5 of 5
[info] Available formats for 56720a27-910f-4dcf-9bc0-42ff4aec2bec:
ID      EXT RESOLUTION FPS │   FILESIZE  TBR PROTO  │ VCODEC       VBR ACODEC    ABR
────────────────────────────────────────────────────────────────────────────────────
hls-256 mp4 384x216     29 │ ~961.23KiB 256k m3u8_n │ avc1.4D401E 256k mp4a.40.2  0k
hls-279 mp4 512x288     29 │ ~  1.02MiB 279k m3u8_n │ avc1.4D401F 279k mp4a.40.2  0k
hls-322 mp4 640x360     29 │ ~  1.18MiB 322k m3u8_n │ avc1.4D401F 322k mp4a.40.2  0k
hls-353 mp4 768x432     29 │ ~  1.30MiB 353k m3u8_n │ avc1.4D401F 353k mp4a.40.2  0k
hls-420 mp4 960x540     29 │ ~  1.54MiB 420k m3u8_n │ avc1.4D401F 420k mp4a.40.2  0k
hls-512 mp4 1280x720    29 │ ~  1.88MiB 512k m3u8_n │ avc1.640028 512k mp4a.40.2  0k
hls-720 mp4 1920x1080   29 │ ~  2.64MiB 720k m3u8_n │ avc1.640028 720k mp4a.40.2  0k
[download] Finished downloading playlist: Jimmie Allen

ytdl --cookies-from-browser chrome -F "https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5" --verbose
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-F', 'https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5', '--verbose']
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\Sipherdrakon\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[Cookies] Extracted 3688 cookies from chrome
[debug] cookie version breakdown: {'v10': 3688, 'other': 0, 'unencrypted': 0}
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, err utf-8, pref cp1252
[debug] yt-dlp version 2<IP_ADDRESS> [c0c2c57d3] (win_exe)
[debug] Lazy loading extractors is disabled
[debug] Python version 3.9.4 (CPython 64bit) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.4-full_build-www.gyan.dev (setts), ffprobe 4.4-full_build-www.gyan.dev, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [vh1.com] Extracting URL: https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5
[vh1.com] nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5: Downloading webpage
[vh1.com] 31fe29a5-3c68-11ec-8774-70df2f866ace: Downloading info
ERROR: [vh1.com] 063ods: Unable to download XML: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 617, in extract
  File "yt_dlp\extractor\mtv.py", line 333, in _real_extract
  File "yt_dlp\extractor\mtv.py", line 237, in _get_videos_info
  File "yt_dlp\extractor\mtv.py", line 240, in _get_videos_info_from_url
  File "yt_dlp\extractor\common.py", line 947, in _download_xml
  File "yt_dlp\extractor\common.py", line 926, in _download_xml_handle
  File "yt_dlp\extractor\common.py", line 768, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 753, in _request_webpage

  File "yt_dlp\extractor\common.py", line 735, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3589, in urlopen
  File "urllib\request.py", line 523, in open
  File "urllib\request.py", line 632, in http_response
  File "urllib\request.py", line 561, in error
  File "urllib\request.py", line 494, in _call_chain
  File "urllib\request.py", line 641, in http_error_default
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

D:\>ytdl --cookies-from-browser chrome -F "https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5" --verbose
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-F', 'https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5', '--verbose']
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\Sipherdrakon\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[Cookies] Extracted 3688 cookies from chrome
[debug] cookie version breakdown: {'v10': 3688, 'other': 0, 'unencrypted': 0}
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, err utf-8, pref cp1252
[debug] yt-dlp version 2<IP_ADDRESS> [c0c2c57d3] (win_exe)
[debug] Lazy loading extractors is disabled
[debug] Python version 3.9.4 (CPython 64bit) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.4-full_build-www.gyan.dev (setts), ffprobe 4.4-full_build-www.gyan.dev, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [vh1.com] Extracting URL: https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5
[vh1.com] nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5: Downloading webpage
[vh1.com] 31fe29a5-3c68-11ec-8774-70df2f866ace: Downloading info
ERROR: [vh1.com] 063ods: Unable to download XML: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 617, in extract
  File "yt_dlp\extractor\mtv.py", line 333, in _real_extract
  File "yt_dlp\extractor\mtv.py", line 237, in _get_videos_info
  File "yt_dlp\extractor\mtv.py", line 240, in _get_videos_info_from_url
  File "yt_dlp\extractor\common.py", line 947, in _download_xml
  File "yt_dlp\extractor\common.py", line 926, in _download_xml_handle
  File "yt_dlp\extractor\common.py", line 768, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 753, in _request_webpage

  File "yt_dlp\extractor\common.py", line 735, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3589, in urlopen
  File "urllib\request.py", line 523, in open
  File "urllib\request.py", line 632, in http_response
  File "urllib\request.py", line 561, in error
  File "urllib\request.py", line 494, in _call_chain
  File "urllib\request.py", line 641, in http_error_default
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

D:\>ytdl --cookies-from-browser chrome -F "https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5" --verbose
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-F', 'https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5', '--verbose']
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\Sipherdrakon\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[Cookies] Extracted 3688 cookies from chrome
[debug] cookie version breakdown: {'v10': 3688, 'other': 0, 'unencrypted': 0}
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, err utf-8, pref cp1252
[debug] yt-dlp version 2<IP_ADDRESS> [c0c2c57d3] (win_exe)
[debug] Lazy loading extractors is disabled
[debug] Python version 3.9.4 (CPython 64bit) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.4-full_build-www.gyan.dev (setts), ffprobe 4.4-full_build-www.gyan.dev, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [vh1.com] Extracting URL: https://www.vh1.com/episodes/063ods/nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5
[vh1.com] nick-cannon-presents-wild-n-out-lisaraye-season-17-ep-5: Downloading webpage
[vh1.com] 31fe29a5-3c68-11ec-8774-70df2f866ace: Downloading info
ERROR: [vh1.com] 063ods: Unable to download XML: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 617, in extract
  File "yt_dlp\extractor\mtv.py", line 333, in _real_extract
  File "yt_dlp\extractor\mtv.py", line 237, in _get_videos_info
  File "yt_dlp\extractor\mtv.py", line 240, in _get_videos_info_from_url
  File "yt_dlp\extractor\common.py", line 947, in _download_xml
  File "yt_dlp\extractor\common.py", line 926, in _download_xml_handle
  File "yt_dlp\extractor\common.py", line 768, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 753, in _request_webpage

  File "yt_dlp\extractor\common.py", line 735, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3589, in urlopen
  File "urllib\request.py", line 523, in open
  File "urllib\request.py", line 632, in http_response
  File "urllib\request.py", line 561, in error
  File "urllib\request.py", line 494, in _call_chain
  File "urllib\request.py", line 641, in http_error_default
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

D:\>ytdl --cookies-from-browser chrome -F "https://www.vh1.com/episodes/a60wta/nick-cannon-presents-wild-n-out-donnell-rawlings-belly-season-17-ep-13" --verbose
[debug] Command-line config: ['--cookies-from-browser', 'chrome', '-F', 'https://www.vh1.com/episodes/a60wta/nick-cannon-presents-wild-n-out-donnell-rawlings-belly-season-17-ep-13', '--verbose']
[Cookies] Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\Sipherdrakon\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[Cookies] Extracted 3687 cookies from chrome
[debug] cookie version breakdown: {'v10': 3687, 'other': 0, 'unencrypted': 0}
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, err utf-8, pref cp1252
[debug] yt-dlp version 2<IP_ADDRESS> [c0c2c57d3] (win_exe)
[debug] Lazy loading extractors is disabled
[debug] Python version 3.9.4 (CPython 64bit) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.4-full_build-www.gyan.dev (setts), ffprobe 4.4-full_build-www.gyan.dev, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [vh1.com] Extracting URL: https://www.vh1.com/episodes/a60wta/nick-cannon-presents-wild-n-out-donnell-rawlings-belly-season-17-ep-13
[vh1.com] nick-cannon-presents-wild-n-out-donnell-rawlings-belly-season-17-ep-13: Downloading webpage
[vh1.com] 31fe2697-3c68-11ec-8774-70df2f866ace: Downloading info
ERROR: [vh1.com] a60wta: Unable to download XML: HTTP Error 500: Internal Server Error (caused by <HTTPError 500: 'Internal Server Error'>); please report this issue on  https://github.com/yt-dlp/yt-dlp , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 617, in extract
  File "yt_dlp\extractor\mtv.py", line 333, in _real_extract
  File "yt_dlp\extractor\mtv.py", line 237, in _get_videos_info
  File "yt_dlp\extractor\mtv.py", line 240, in _get_videos_info_from_url
  File "yt_dlp\extractor\common.py", line 947, in _download_xml
  File "yt_dlp\extractor\common.py", line 926, in _download_xml_handle
  File "yt_dlp\extractor\common.py", line 768, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 753, in _request_webpage

  File "yt_dlp\extractor\common.py", line 735, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3589, in urlopen
  File "urllib\request.py", line 523, in open
  File "urllib\request.py", line 632, in http_response
  File "urllib\request.py", line 561, in error
  File "urllib\request.py", line 494, in _call_chain
  File "urllib\request.py", line 641, in http_error_default
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

VH1 does allow for a 24hr pass to watch videos. But I can share my account details if necessary.


When using the Doctrine Writer Create Entity and relationship

I have 1 single file that needs to be imported
each row has to split in 3 different entities, how can I do that when using the Workflow ? the writer only receives an instance of the writer... and I don't know how to map the original CSV file to aggregate fields per entity

Hi @emudojo did you figure out how to do this ? I need this to.

Hey @jeroendk
sorry for the late response? Do you want to map associations? Then the ItemConverter should resolve your problem.

@Baachi No problem, yes i wanted to map one row to multiple new entities with associations.
Currently solved it with a custom import step and php code.
Does the ItemConverter works with new objects ? Is there a example available ?

Ah so you want to create more than one entity from one row. I thought you create one entity with mutliple associations from one row. Sorry!
This doesn't work out ot the box.
So the best way is to create a seperate step, indeed.

Alright, thanks!


Missing dependencies in the build instructions

It is also required to install opam which also requires installing bubblewrap which is not reachable by apt-get by default. Digging through GitHub issues, I found this PPA which provides the bubblewrap, but it's outdated and doesn't work. The correct version can be found here, but even after installing it I'm still not able to build the code, because I see
[ERROR] Opam has not been initialised, please run `opam init'

and no opam init (or actually opam init --reinit because the former just fails) helps. I'll reboot my system just in case, but all this is rather annoying. Is there maybe a docker image or something else that allows to install the OCaml ecosystem without eternal googling?

Which verions of ubuntu and opam are you using?
http://opam.ocaml.org/doc/Install.html suggests sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh). Not sure I'd like to be responsible for maintaining code to setup opam though. I could add that to the README though.
Do you think nix would help us out here?
There is an issue where you need to run ./build twice, the first time will set up opam, and the second time will finish installing the packages. I will fix that later today. We do not use the user's opam root (in ~/.opam) since that interferes with other software, and instead set OPAM_ROOT to .build/opam.

Which verions of ubuntu and opam are you using?

Ubuntu 16.04 and opam 2.0.1.

I could add that to the README though.

That would be helpful.

Not sure I'd like to be responsible for maintaining code to setup opam though.

Sure, I just thought that maybe you have an easy way to make things working.

http://opam.ocaml.org/doc/Install.html suggests sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh).

Yeah, installing opam is not a problem. But its initialization requires bubblewrap which is not trivial to find. And even now when I have bubblewrap on my machine, I'm still not able to build the repo, because I see
[ERROR] Opam has not been initialised, please run `opam init'
ninja: error: lib/build.ninja:79: expected ':', got '|' ($ also escapes ':')
    | $ocamlkompileddir/realdef.cmx : ocamlopt $ocamlkompileddir/constan...
    ^ near here

regardless of how many times I run opam init.

Do you think nix would help us out here?

Maybe. I'm not really an expert here.

There is an issue where you need to run ./build twice, the first time will set up opam, and the second time will finish installing the packages.

I've executed ./build multiple times, doesn't help.


[TOML Configs] XACML scope validation

Need the corresponding TOML configs for the following in the identity.xml file as it is being referred to in [1].
<ScopeValidationEnabledForAuthzCodeAndImplicitGrant>false</ScopeValidationEnabledForAuthzCodeAndImplicitGrant>

[1] https://is.docs.wso2.com/en/5.9.0/learn/validating-oauth-access-token-scope-using-xacml-policies-during-token-issuance/

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Allow multiple recycle schedules for pool resouce

Requirements:

Should allow a user to define an array of schedules
Should add and remove accordingly only if items have changed
Links to #190 and #192

Resolved by #397 and push into supermarket in #399


Update Version to <IP_ADDRESS>.0

Adapter version '<IP_ADDRESS>.0', partner version '~> 7.1.0'

@ricealexanderb Looks like this new version of Vungle generates some warnings. We'll want to pass allow-warnings: true in the smoke test action


Enable code formatting support for Java files

As a Developer, I want the formatting of the Java code to be automatically validated and fixed, so that I can focus on writing functional code.
Tasks

[x] #367
[x] #712
[x] #714
[ ] #720
[ ] #721

Discussions

https://github.com/tinesoft/nxrocks/discussions/133

Added to Sprint 22.10

Thinking about not including formatting as part of the pre-commit hook, delegate that to the CI/CD workflow instead.


Anybody working on Angular-Dart wrapper?

Hi,
Looks like a really great intro/tour package, we'd love to use it with our Angular/Dart application https://portal.aahi.io - has anyone looked at making an angular-dart wrapper?
Regards,
Alex

@ayushin I barely was able to throw together this angular one. I am not familiar with dart, but would definitely be open to supporting it. Would you be able to help us throw something together?

Yes, I guess I could, but I am very very short on time at this moment. Basically the way forward would be to look at the implementation of I guess google_maps https://pub.dev/packages/google_maps which interfaces with google maps javascript library and does similar to what we want, but our challenge is way simpler than that :) if you have the time/resources than i certainly would be very willing to advice

I think having some blog posts or guides on how to do it or some sort of starting point, would be good.


Monaco fail to resolve ts/js modules with reserved (or non-ASCII) URI characters in model name.

monaco-editor version: 0.15.6
Browser: Chrome Version 72.0.3626.81 (Official Build) (64-bit)
OS: Ubuntu 16.04
Steps or JS usage snippet reproducing the issue:

Load Monaco editor
Set default options

monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
    allowNonTsExtensions: true,
    allowJs: true,
    isolatedModules: true,
    outDir: "dummy"
});
monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({
    noSemanticValidation: false,
    noSyntacticValidation: false
});

Create three models:

a model that name contains only unreserved URI characters (e.g. test.ts).
a model that name contains at least one character that should be URL-encoded: (e.g. test(1).ts).
a model with script that imports two models above (e.g. main.ts).

monaco.editor.createModel([
    "export let x = 10;"
].join('\n'), "typescript", monaco.Uri.file("test.ts"));

monaco.editor.createModel([
    "export let x = 10;"
].join('\n'), "typescript", monaco.Uri.file("test(1).ts"));

monaco.editor.createModel([
    "import { x } from './test(1)'",
    "import { y } from './test'",
    "let z = x + 10 + y;"
].join('\n'), "typescript", monaco.Uri.file("main.ts"));

Expected result
Both dependencies are successfully resolved.
Actual result
The dependency that have a not unreserved URI characters can't be found by Monaco. The type information is not available for the dependency.

If one replaces module name in import statement with encoded one, the module is successfully resolved and all works fine.

I found out that problem is that TypeScriptWorker.getScriptFileNames() returns encoded URIs
getScriptFileNames(): string[] {
	let models = this._ctx.getMirrorModels().map(model => model.uri.toString());
	return models.concat(Object.keys(this._extraLibs));
}

which are stored in TypeScript HostCache
    class HostCache {
        private fileNameToEntry: Map<CachedHostFileInformation>;
        private _compilationSettings: CompilerOptions;
        private currentDirectory: string;

        constructor(private host: LanguageServiceHost, getCanonicalFileName: GetCanonicalFileName) {
            // script id => script index
            this.currentDirectory = host.getCurrentDirectory();
            this.fileNameToEntry = createMap<CachedHostFileInformation>();

            // Initialize the list with the root file names
            const rootFileNames = host.getScriptFileNames();
            for (const fileName of rootFileNames) {
                this.createEntry(fileName, toPath(fileName, this.currentDirectory, getCanonicalFileName));
            }

            // store the compilation settings
            this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions();
        }

        //...//

        private createEntry(fileName: string, path: Path) {
            let entry: CachedHostFileInformation;
            const scriptSnapshot = this.host.getScriptSnapshot(fileName);
            if (scriptSnapshot) {
                entry = {
                    hostFileName: fileName,
                    version: this.host.getScriptVersion(fileName),
                    scriptSnapshot,
                    scriptKind: getScriptKind(fileName, this.host)
                };
            }
            else {
                entry = fileName;
            }

            this.fileNameToEntry.set(path, entry);
            return entry;
        }

        public getEntryByPath(path: Path): CachedHostFileInformation | undefined {
            return this.fileNameToEntry.get(path);
        }

        //...//

        public getRootFileNames(): string[] {
            const names: string[] = [];
            this.fileNameToEntry.forEach(entry => {
                if (isString(entry)) {
                    names.push(entry);
                }
                else {
                    if (entry.scriptKind !== ScriptKind.JSON) {
                        names.push(entry.hostFileName);
                    }
                }
            });
            return names;
        }

        //...//
    }

which in turn is used by CompilerHost to check that file exists during imports resolution.
As the imported module names are stored in SourceFileObject "as is", resolution always fails for modules which has been affected by encoding.
As I see the reasonable fix would be to return from TypeScriptWorker.getScriptFileNames() non-encoded URIs and use non-encoded URIs as filename argument in calls of LanguageServiceHost methods.

Any update on this?


sap_*_preconfigure: Tests with ansible parameter -i instead of -l #671

This PR is changing ansible-playbook parameter -l to -i in tests scripts.
No more need to specify hosts in the file /etc/ansible/hosts each time.

Hi @streitd,
We should also add -u root to the ansible-playbook command (so that a normal user can also run the test).
We also should fix the same issue for the role sap_hana_install .
Feel free to use the code from https://github.com/berndfinger/community.sap_install/commit/8c40e91ec3d881533d25843efd1af16448a8ba16 and add it as a new commit to your branch so that it will be part of this PR.


Add EDUs to appservice transactions

Rendered: see 'docs' commit status
Synapse PR: coming soon

Many bridges are interested in this information, and considering they can no longer sync themselves they need a way to get EDUs. Servers should send EDUs as per the rules for "interested events" defined elsewhere.
EDUs are a new top level key for backwards compatibility and sanity. Having EDUs in the events array would likely break appservices which are not EDU-aware due to missing fields and unknown event types.
The events array is still required for backwards compatibility. The added condition of it may be empty has been added so that appservices which are not aware of EDUs don't break with a missing field. Appservices should be iterating over the list, so a zero-element list should be fine.
Fixes #1145

Just leaving a note: this is being put as r0-time-permitting and may very well end up in a post-r0 world. There's concerns about the complexity of calculations needed to handle presence for appservices, amoung other EDUs.
The complexity comes about due to presence not being bound to a room. When a server receives a presence update, it would have to cross reference rooms that the presence user is in and rooms the appservice is in, which leads to a nightmarish loop. Initial attempts to implement this calculation have shown that it can take several seconds depending on the user at hand. The fastest approach appears to be looping through the rooms the sending user is in (and known to the server), then checking the membership list of each room for an appservice - returning early if needed. Servers with multiple appservices have other optimizations they can make (iterating until all appservices are discovered in the room, or the end of the membership list is reached).

Closing pending MSC


Inhibit ZooKeeper connections until our local Slobrok mirror is ready.

@hakonhall please review
@baldersheim @geirst FYI
Otherwise, if there are transient Slobrok issues during CC startup and
we end up winning the election, we risk publishing a cluster state where
the entire cluster appears down (since we do not have any knowledge of
Slobrok node mapping state). This will adversely affect availability for
all the obvious reasons.

@hakonhall PTAL


from-scratch rewriting

hello, @aruntk
Just to tell you I've reimplemented some ideas from scratch, because i've some difficulties to update your code (not easy to add a new functionnality without breaking an old one)
It's here, take a look and tell me :
https://github.com/atoy40/kapton
It's a very early publishing. It's inspired by the react-apollo package. In term of main functionnality, I've to add subscriptions, but nothing difficult.
Anthony.

I'm currently rewriting the code. Felt the same issue.

BTW. I've implemented subscriptions, pages and fetchMore.

Yes I've seen your commits, but it looks to me more complicated that it can be :) i was suprised how small is my actual code ... to do all of that (subscription will be added with 2/3 more lines, no more). The main issue to me is the "apollo" configuration key that is not really integrated with polymer.
I'm writing a small demo application, I'll tell you when it'll be online.

Okay. :)

@atoy40 I've rewrote the package from scratch including ideas from your implementation. Please check.

@aruntk Ok, I'll check your new version today. On my side, I've coded a small sample using my idea. https://github.com/atoy40/kapton-sample
It's 100% client-side (graphql schema/endpoint embedded into the app through webpack) so I can have an instance "running" on github.
https://atoy40.github.io/kapton-sample/

@atoy40 Okay. 👍 Example works great.


list.eo:125-127: min. DEPRICATED, please remove after...

The puzzle 20-9333caf2 from #20 has to be resolved:
https://github.com/objectionary/eo-collections/blob/1fd008a1a3d905148ff22a0f7ce41df382387318/src/main/eo/org/eolang/collections/list.eo#L125-L127
The puzzle was created by @levBagryansky on 11-Aug-22.
Estimate: 30 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@Graur olease assign me

The puzzle 20-9333caf2 has disappeared from the source code, that's why I closed this issue.


[Card Settings] 🐛 "Physical card number" row is showing when the user has not completed their shipping details yet

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v1.4.16-3
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: @kevinksullivan
Slack conversation: https://expensify.slack.com/archives/C05DWUDHVK7/p1703261097098169
Action Performed:

Assigned >$0 expensify card limit to<EMAIL_ADDRESS>Logged in to<EMAIL_ADDRESS>and navigated to settings

Expected Result:
Only a "virtual card number" row should be showing until a user activates their physical card
Actual Result:
The "Physical card number" row is already showing
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01cecc6a59ed91a8f9
Upwork Job ID:<PHONE_NUMBER>260575744
Last Price Increase: 2023-12-23

The fix for this one is here https://github.com/Expensify/App/blob/9208c95e3c9b375897e7133696ffcdb07b67fb74/src/pages/settings/Wallet/ExpensifyCardPage.js#L268
We shouldn’t check if the object is empty, we should also check if the card is in the correct state - ACTIVE (3)

@grgia, @sobitneupane should this be internal or external?
I'm off the next week, so please move the issue along if possible without me (not that I'd really do much as BZ...)

I believe this can be resolved externally. But I am not sure if it can be tested externally.

I can get a PR up for this one today

Working on PR

Contributor+: @sobitneupane due $500 via NewDot.
@sobitneupane can you please propose regression test steps?  Thx

@sobitneupane can you propose the regression steps plz?

@mallenexpensify Sorry for the delay. I will be able to work on the checklist only in the weekend. I am working only 50% this week.

not overdue, waiting on checklist / payments

@sobitneupane plz update the checklist.

I will work on the checklist before weekend.

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ]  [@sobitneupane] The PR that introduced the bug has been identified. Link to the PR:

https://github.com/Expensify/App/pull/26915

[ ]  [@sobitneupane] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

https://github.com/Expensify/App/pull/26915#issuecomment-1923371735

[ ]  [@sobitneupane] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

It was a case missed while introducing a new feature.

[ ]  [@sobitneupane] Determine if we should create a regression test for this bug.

No.

@sobitneupane I feel like we should have a regression test for this, unless we're confident it won't ever happen again.  @grgia , what do you think?

I did the test by adding some data in onyx in local environment. I will need some help from @grgia to finalize the regression steps for QA.
Regression Test Proposal: (QA steps from PR)

In Old Dot: Assign >$0 expensify card limit to @expensifail.com account
In New Dot: Logged in to @expensifail.com account and navigated to settings
Go to Expensify Card Page /settings/wallet/card/expensify.com and verify that virtual card row is displayed, no physical card row is displayed, and button reads "Get physical card" ✅
Go through Get Physical Card Flow
After completion, ensure that physical card row is displayed ✅

Do we agree 👍 or 👎

Contributor+: @sobitneupane due $500 via Newdot.
Thanks! Testrail update GH is here https://github.com/Expensify/Expensify/issues/368473

$500 approved for @sobitneupane based on summary above.


Question: is it possible to preload

Hi, thank you for your amazing work. I use your plugin in a ListView like your example, but is it possible to preload the ads for example in the initState or elsewhere?
I dont want my users to see the loading spinner.
Again, thank  you for your work.

@PimVanLommel Next release will be out soon which allow u to use custon loading and error widget. Your suggestion should be one of the features

That sounds great, thank you for your response.
Can you give me a timeframe when we can expect the new release?

I am working it now, maybe about 1 or 2 weeks

@PimVanLommel I updated version 2.0.0. This is a major update with a lot of changes. In your case, check this example Hide ad until completed

@duyduong I don't think this is was the requested feature. I believe what we need is someway to preload the ad then show it later at any widget; so that when we have ad in some screen we don't have to wait for it till it loads if, we see it immediately.

@duyduong I don't think this is was the requested feature. I believe what we need is someway to preload the ad then show it later at any widget; so that when we have ad in some screen we don't have to wait for it till it loads if, we see it immediately.

How about we just create a static widget in the main page with height 0. Then call the widget later on in any of the subpages to display the ad. Is it possible? and is it legal?


EXAMPLE: Oban jobs configured to only run in primary region

Example showing how to install and configure Oban background jobs to run on Fly.io.
This just follows the installation and usage instructions to show how to set it up.
Areas to take note:

fly.toml - Tell Fly.io which region is the primary region for my app
lib/hello_elixir/application.ex - oban_config/0 only activates the job queues when running in the primary region where it has local write access to the database.

To queue and run a job, open an IEx shell and paste the following:
%{id: 1}
|> HelloElixir.ObanBusiness.new()
|> Oban.insert()

After a 1 second delay, it logs out that the job was run.

Not for this repo.


Crash due to concurrent access to cache

Hi,
We are experiencing some crashes due to simultaneous access to Factory Scope.Cache:

We traced down the a piece of code in which we access a @WeakLazyInjected wrapped service inside the class deinit (if we comment it, we don't experience the crash):

class MyClass {

    @WeakLazyInjected(\MyContainer.myService)
    private (set) var myService

    deinit {
        myService?.doSomething() // <-- Thread 1: Simultaneous accesses to 0x600003720330, but modification requires exclusive access
    }
}

Digging a bit in Factory code I managed to see that every access is protected by a mutex, so I can't explain why this is happening.

Or maybe we can just refactor our code not to perform operations inside deinit (which I don't like very much). We actually moved that piece of code out of deinit at the moment, but it was worth reporting the issue. Maybe someone else will stumble on this very same problem.

Still may add the myService.initialized flags as doing any kind of cleanup of that nature will resolve the instance, even if the instance was never resolved previously.
Or maybe $myService.optional?.doSomething()
Hmmm. Needs a better name.

I like the second the most. Maybe something like:
$myService.resolvedOrNil?.doSomething()
Something that suggests that resolution is not going to be performed in this specific case. I'm not very good at naming things 😅

Sounds good to me. See develop branch.

I just tried and it works perfectly 👍🏻


macOS launcher application does not work.

PowerShell does not open when using the macOS launcher. Script needs to be updated to reflect binary name change.
https://github.com/PowerShell/PowerShell/blob/79d20a187309717b5f7f73b26192a2d815c48395/tools/packaging/macos/launcher/ROOT/Applications/PowerShell.app/Contents/MacOS/PowerShell.sh#L2
Steps to reproduce
Open /Applications/PowerShell from Finder.
Expected behavior
PowerShell open in Terminal.
Actual behavior
PowerShell does not open.
Environment data
Name                           Value
----                           -----
PSVersion                      6.1.0-preview.3
PSEdition                      Core
GitCommitId                    v6.1.0-preview.3
OS                             Darwin 17.6.0 Darwin Kernel Version 17.6.0: Tue May  8 15:22:16 PDT 2018; root:xnu-4570.61.1~1/RE...
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

@thezim: Looks like a duplicate of #7074, correct?

@mklement0 Yes. I’ll close this one.


feat: add optional custom headers field

Having the capability to provide custom headers to the request made to fetch the remote server content might be required: for certain JSON API request, we need to pass an header token.

Had to revert because https://github.com/adobe/helix-importer-ui/pull/149/files#diff-e75f30f0ff28e4b32d9bfed0c324c80c4094f81849314287222f0d2b3055bf9aR500-R501 breaks standard import... css are not loaded


unicharset_extractor:./.libs/lt-unicharset_extractor.c:233: FATAL: couldn't find unicharset_extractor.

unicharset_extractor *.box  giving an error in version 3.05.00 so does mftraining and shapetraining. Works fine in version 3.02.
`

You need to install the training tools.
https://github.com/tesseract-ocr/tesseract/wiki/Compiling

It seem you did not install tesseeract training tool...

@zdenop I have installed the tesseract training tool, but how can I install unicharset_extractor *.box, mftraining shapetraining. Can you provide with the necessary links?

For asking support please use tesseract user forum - see FAQ


Merge Chris's address refactoring.

Pull Request Test Coverage Report for Build 299

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

Totals

Change from base Build 295:
0.0%

Covered Lines:
729

Relevant Lines:
1041

💛  - Coveralls

:tada: This PR is included in version 1.0.0 :tada:
Your semantic-release bot :package::rocket:


Calling function 'makeDecorator', function calls are not supported.

Calling function 'makeDecorator', function calls are not supported.
Consider replacing the function or lambda with a reference to an exported function,
  resolving symbol NgModule in<EMAIL_ADDRESS>
  resolving symbol NgModule in<EMAIL_ADDRESS>
  resolving symbol NgModule in<EMAIL_ADDRESS>
  resolving symbol NgModule in<EMAIL_ADDRESS>
  resolving symbol TJsonViewerModule in /Users/user/Development/my-project/node_modules/t-json-viewer/src/t-json-viewer.module.ts,
  resolving symbol TJsonViewerModule in /Users/user/Development/my-project/node_modules/t-json-viewer/src/t-json-viewer.module.ts

Any ideas? Some say it may be related to a metadata. See this comment https://github.com/angular/angular/issues/11262#issuecomment-244472000

I've developed v1.2.0. Could you test it?


fix FSI spawning logic when the user is .net sdk but lacks .net framework

When users are on windows and using .Net Core, but do not have .Net Framework installed, any attempt to launch an FSI shell will crash.
This is because in this situation:

FSAC returns null for FSI path (because it is looking in the older framework paths)
Ionide probes in framework paths for it (and is not found)
and we unconditionally look for FSI regardless of the .Net Core opt-in a user may have done.

So instead this PR breaks out the 'support matrix' into four cases:

.net core, 'dotnet' binary found -> invoke dotnet fsi
.net core, 'dotnet' binary not found -> fail with message
.net framework, 'fsi' path found -> invoke (mono) 'fsi'
.net framework, 'fsi' path not found -> fail with message

This should fix #1247.

The ScriptRunner component does need to be updated in a similar fashion.


[11.x] feat: narrow types for throw_if and throw_unless

Hello!
This PR correctly causes the types to be narrowed for the throw_{if_unless} functions.
Thanks!

@calebdw, is there any way for this to not required an explicit true but instead a truthy value?
$condition is mixed and can accept things like eloquent models in the condition. I would expect this to work with something like the following where the model can be an instance of null.
$model = Model::first();

throw_unless($model);

See: https://phpstan.org/r/ee1060c6-333b-4d06-9362-17b69c691d28

@timacdonald,
I don't think so, not without creating a custom PHPStan extension (which seems overkill). The issue is that PHPStan doesn't really have a "truthy" type (as far as I am aware). I tried reversing the condition and using false/empty but that wasn't the best at narrowing the type.
While your code is valid, all you need to do is slightly adjust the expression for better type narrowing:
$model = Model::first();

throw_if($model === null);
throw_if(is_null($model));
// etc.
assertType('Model', $model);

The issue is that PHPStan doesn't really have a "truthy" type (as far as I am aware)

@calebdw could explicitly using !0|0.0|''|'0'|array{}|false|null for truthiness check be an approach?

Source: https://github.com/phpstan/phpstan/issues/11335#issuecomment-2227218513
These annotations reflect how throw_if and throw_unless work with truthy values:
if (! function_exists('throw_if')) {
    /**
     * Throw the given exception if the given condition is true.
     *
     * @template TValue
     * @template TException of \Throwable
     *
     * @param  TValue  $condition
     * @param  TException|class-string<TException>|string  $exception
     * @param  mixed  ...$parameters
     * @return ($condition is false ? never : ($condition is null ? never : ($condition is array{} ? never : ($condition is "0" ? never : ($condition is "" ? never : ($condition is 0 ? never : ($condition is 0.0 ? never : TValue)))))))
     *
     * @throws TException
     */
    function throw_if($condition, $exception = 'RuntimeException', ...$parameters)
    {
        if ($condition) {
            if (is_string($exception) && class_exists($exception)) {
                $exception = new $exception(...$parameters);
            }

            throw is_string($exception) ? new RuntimeException($exception) : $exception;
        }

        return $condition;
    }
}

if (! function_exists('throw_unless')) {
    /**
     * Throw the given exception unless the given condition is true.
     *
     * @template TValue
     * @template TException of \Throwable
     *
     * @param  TValue  $condition
     * @param  TException|class-string<TException>|string  $exception
     * @param  mixed  ...$parameters
     * @return ($condition is false ? TValue : ($condition is null ? TValue : ($condition is array{} ? TValue : ($condition is "0" ? TValue : ($condition is "" ? TValue : ($condition is 0 ? TValue : ($condition is 0.0 ? TValue : never)))))))
     *
     * @throws TException
     */
    function throw_unless($condition, $exception = 'RuntimeException', ...$parameters)
    {
        throw_if(! $condition, $exception, ...$parameters);

        return $condition;
    }
}

@crishoj, that seems more complicated than it's worth---particularly given that you can likely update the code to have a boolean expression that will narrow the type

@calebdw With the new changes https://github.com/laravel/framework/commit/46dc7a45ba773c955cc48180f2f8fb5e6c1efd8b here phpstan now throws  Unreachable statement - code above always terminates.  errors when I pass an eloquent model to the function.
When I modify the throw_unless  return to this it still doesn't work:
@return ($condition is non-empty-mixed ? TValue : never)

I think this will affect a lot of people. To add a type conversion just for this is overkill.

@gazben thanks for drawing attention to the "advanced" phpstan type non-empty-mixed — I wasn't aware of this.
(Added in https://github.com/phpstan/phpstan-src/commit/387ebd5059990086444e993cc0fb40e167cc71c6)
Given this, I would suggest changing the return type signatures to the following:
/**
 * Throw the given exception if the given condition is true.
 *
 * @template TValue
 * @template TException of \Throwable
 *
 * @param TValue                                     $condition
 * @param TException|class-string<TException>|string $exception
 * @param mixed                                      ...$parameters
 * @return ($condition is non-empty-mixed ? never : TValue)
 *
 * @throws TException
 */
function throw_if($condition, $exception = 'RuntimeException', ...$parameters)
{
   // ...
}

/**
 * Throw the given exception unless the given condition is true.
 *
 * @template TValue
 * @template TException of \Throwable
 *
 * @param TValue                                     $condition
 * @param TException|class-string<TException>|string $exception
 * @param mixed                                      ...$parameters
 * @return ($condition is non-empty-mixed ? TValue : never)
 *
 * @throws TException
 */
function throw_unless($condition, $exception = 'RuntimeException', ...$parameters)
{
   // ...
}

It works well in my end.

@crishoj, I see you submitted a PR---you had to change the tests in order to use non-empty-mixed and you lost all type narrowing capabilities.
This now fails:
    throw_unless(is_int($foo));
    assertType('int', $foo);

@calebdw Apologies, the loss of type-narrowing was unintentional.
Do you think we could adjust the type annotation so that both type narrowing and actual behavior with "falsey" values is achieved?

You might could use something like the following (where true has to come first):
@return ($condition is true ? never : ($condition is non-empty-mixed ? never : TValue))

However, I still think this is more trouble than it's worth, more strict levels of phpstan require that a boolean expression is passed to an if anyway:
https://phpstan.org/r/857faf77-8e2b-45d0-8e6e-23a64ef179d8


add quantile method to DataArray

This PR adds the quantile method to the DataArray.  There may be a way to better fit this in with .apply or reduce it wasn't immediately clear to me how to do that. It uses np.nanpercentile under the hood so this shouldn't be expected to work well with dask. The main advantage to this method, over using apply(np.nanpercentile) is the handling of the quantile coordinate.
example usage:
In [12]: x = np.random.random(size=(2, 3, 800))

In [13]: da = xr.DataArray(x, dims=('x', 'y', 'time'))

In [14]: da.quantile([1, 5, 10, 25, 50, 75, 90, 95, 99], dim='time', interpolation='lower')
Out[14]:
<xarray.DataArray (quantile: 9, x: 2, y: 3)>
array([[[ 0.00835474,  0.01126747,  0.00778847],
        [ 0.00803924,  0.00919259,  0.01150164]],

       [[ 0.04902814,  0.05346976,  0.04493341],
        [ 0.04236611,  0.05273082,  0.05858802]],

       [[ 0.09370776,  0.09976448,  0.09256707],
        [ 0.08943787,  0.09331907,  0.08832309]],

       [[ 0.25416402,  0.22577298,  0.24407393],
        [ 0.25386087,  0.23052584,  0.24621966]],

       [[ 0.534169  ,  0.46017551,  0.49817391],
        [ 0.50968059,  0.49427688,  0.51573855]],

       [[ 0.76633412,  0.73405412,  0.77210754],
        [ 0.76759837,  0.74243892,  0.76703357]],

       [[ 0.90832116,  0.89495854,  0.91818434],
        [ 0.91492771,  0.88063773,  0.91416636]],

       [[ 0.95260527,  0.95132871,  0.95979701],
        [ 0.95988286,  0.93137055,  0.95941658]],

       [[ 0.98597133,  0.98883232,  0.99013424],
        [ 0.98951238,  0.97550784,  0.99224201]]])
Coordinates:
  * quantile  (quantile) float64 1.0 5.0 10.0 25.0 50.0 75.0 90.0 95.0 99.0
  o x         (x) -
  o y         (y) -

closes #303
fixes #561

@shoyer - I moved the majority of the logic over to Variable and wrote wrapper methods for the Dataset and DataArray objects. I am getting an error on the py27-min build on travis that may or may not be an since fixed bug in numpy. Unpinning the version numbers in the build fixes the problem.  Compare the builds for ddd5211 and aa81a17. I'm assuming we want to keep those versions pinned as they were so thoughts on a possible fix would be great...

@shoyer - all comments addressed and tests are passing.


feat(api): new api to save input history without cleaning up sessions

Pull request
Issue tracker
Fixes will automatically close the related issue
Fixes #754
Feature
Describe feature of pull request
Unit test

[ ] Done

Manual test

[ ] Done

Code Review

Unit and manual test pass
GitHub Action CI pass
At least one contributor reviews and votes
Can be merged clean without conflicts
PR will be merged by rebase upstream base

Additional Info

I believe the code is not working as expected.


fix not to share process manager instance to break tight coupling

Currently some class instances holds the instance of process manager, only for passing just some configuration parameters to these classes.
It makes code unreadable and hard to maintain.
This pull request is to change such code as roughly coupled, by passing just parameters, not process manager instance.

added a fix for an undefined variable. The other improvement look good 👍

@frsyuki Thank you! I merged this after rebasing master (and CI green).


Remove joncojonathan as maintainer

Motivation for this change
Due to other projects I need to step away from NixOS for the moment.  As such I'm removing myself as a maintainer.  I hope to return some day.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Removed trailing whitespace on the Gramps derivation as found by EditorConfig checks (fb8ad44770a1a0b6a2cfd8b61cde41a66b1df819).

Thanks for tidying up! I have reformatted the commit messages a bit and made one formatting change to (hopefully) make CI happy.
Thanks for your contributions :+1: . Hope to see you back one day!


Logic: Email Contact's Details to Specific Email Address

Resolves #72  and #73

Coverage increased (+0.4%) to 88.69% when pulling f52535f1ace7fc330d61d72f220bf9e678b7d1a8 on hanselblack:Email into e50c2cebf12e41145bbbed34db788ac513f21f73 on CS2103AUG2017-W11-B4:master.


Rate limit for websocket messages

Hi.
There is an idea how to implement prevent spam (aka DDoS) messages on a socket?
We use Redis to control of message speed, for example - non than 100 messages per second for one client, but the solution Redis, is a narrow neck, is there a better idea?
Thanks.

I'd do it like so:
On message:
If ws.lastMessageTimestamp != Now Then
Ws.lastMessageTimestamp = now
Ws.numReceivedMessages = 0
Else
If ws.numReceivedMessages < limit Then
Ws.numReceivedMessages++
Handle message
Endif
Then you have everything O(1) and no memory allocations

that is a good idea, you moved this to uwebsockets so c++ people need to code it but for the JS people that would be:
const limit = 100
let timeInterval = 0
setInterval(() => ++timeInterval, 1000)
uws.App().ws('/', {
   message: (ws, message, isBinary) => {
      if (ws.lastInterval != timeInterval) {
         ws.lastInterval = timeInterval
         ws.numMsgs = 1
      } else { if (++ws.numMsgs > limit) return reject() }
      // handle message here
   }
})

then there is no garbage collection so must perform better, could run some tests

We can begin by adding that code in an example, then if lots of people rely on it think about adding it to the library.


There is a typo in documentation

I found a typo "controlles" to "controllers" below the "Controller" section.
Can I edit the typos? If i can, how can I start? I would like to contribute this repo starting with this issue.

reference of typo - https://control.ros.org/master/doc/getting_started/getting_started.html#controllers

Yes please, fix typos if you find them.
You can click edit in the filename found in this repo and github will take care of the rest to open a Pull Request for you


chore: remove .docker directory

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


GitIgnore IT test failing

java.lang.AssertionError:
Failures (1):
  Build GitIgnore Integration Test:GitIgnoreTestIT:test1(String):[1] /Users/rgrecour/workspace/helidon-build-tools/maven-plugins/enforcer-maven-plugin/target/it/projects/gitignore-test
    MethodSource [className = 'io.helidon.build.maven.enforcer.GitIgnoreTestIT', methodName = 'test1', methodParameterTypes = 'java.lang.String']
    => java.lang.AssertionError: diffs:
line:    431 >>Excluding dir/dir4/file4<< != >>Excluding dir/dir2/file2.txt<<

The test expects this output:
Excluding dir/dir6/file6
Excluding dir/dir5/file5.txt
Excluding dir/file.ico
Excluding dir/dir7/file7.txt
Excluding dir/dir3/file3
Including dir/file.txt
Excluding dir/dir4/file4
Excluding dir/dir2/file2.txt

But it got this instead:
Excluding dir/dir6/file6
Excluding dir/dir5/file5.txt
Excluding dir/file.ico
Excluding dir/dir7/file7.txt
Excluding dir/dir3/file3
Including dir/file.txt
Excluding dir/dir2/file2.txt
Excluding dir/dir4/file4
Including dir/file.txt

We should also set invoker.debug = false in invoker.properties otherwise it makes it hard to find the actual output being diffed.

Did you got this error by running the tests locally or pipeline ?

We both saw it locally.


Send sentry user data, fix email-on-error, queue_json_publish serialization validation

Fixes three related things:

Failure to send an error email to the admins did not signal Sentry.
Sending error emails to admins currently fails due to failure to serialize a lazily-translated string to JSON.  Adjust testing around this to catch future errors like this.  This is a non-overlapping but related test to #16121.
Begin sending user information to Sentry, which would have failed for the same reason as above.

Testing Plan: Existing and new tests.

This is great, merged as 70e8cc57837b015c6346e9336441f3cdf13b279c after adding the comment noted above.  Thanks @alexmv!

We should make sure https://github.com/zulip/zulip/pull/16121 actually happens; can you either take up finishing it or get someone else excited about doing so? :)

Yeah, I'll poke at #16121.


[Biomedical] Patch tooltip bug

Currently tooltips on biomedical pages sometimes do not appear on hover (initially discovered by @suhana13, verified by @beets).  One way to reproduce is to

Hover over a tooltipped object.  A tooltip should appear above and to the left.
Leave the object via the bottom right.  Tooltip should disappear somewhere around the top left of the object.
Circle back to hover over the region the tooltip last occupied, avoiding all tooltipped objects.  If this region intersects with the object, hovering over the area of intersection will not activate the tooltip.

The problem is that the tooltip is made to disappear by setting its opacity to 0, so it is still present but invisible on mouseout and can block mouse hover over intended targets.
A fix is to move the tooltip on mouseout somewhere out of the way.  @beets suggested a negative coordinate, so here we propose moving the tooltip to -1000px, -1000px on mouseout.

Sorry for the extreme lateness on this! display: block/display: none worked after some minor adjustments! These were originally being overriden by display: inline in the css so I removed this, and I found that the default opacity seemed to be 0 so I added opacity: 1.


BUG: some of the examples are flaky

connection / remote service issues are often run into with CI, we may want to make the examples more roboust (maybe there are timeouts we can extend).
as for the CI, we may address this issue by using pytest-rerunfailures as we do for astroquery and pyvo testing. I suppose it will work out of the box, even for notebooks, but it may not be the case.
I do volunteer to look into the CI/testing part, but it would be nice if one could look into ways to enhance the content. Here is  the latest summary and one traceback:
=========================== short test summary info ============================
FAILED QuickReference.ipynb::Cell 9
FAILED UseCase_I.ipynb::Cell 31

=================================== FAILURES ===================================
_________________________ QuickReference.ipynb::Cell 9 _________________________
Notebook cell execution failed
Cell 9: Cell execution caused an exception

Input:
# Search for a spectrum search service that has x-ray data.
services = vo.regsearch(servicetype='spectrum', waveband='x-ray')

# Assuming there are services and the first one is OK...
results = services[0].search(pos=SkyCoord.from_name("Delta Ori"),
                             diameter=Angle(10 * u.arcmin))

# Assuming there are results, download the first file.
print(f'Title: {results[0].title}, Format: {results[0].format}')
file_name = download_file(results[0].getdataurl())
file_name

Traceback:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/pyvo/dal/query.py:243, in DALQuery.execute_votable(self, post)
    242 try:
--> 243     return votableparse(self.execute_stream(post=post).read)
    244 except Exception as e:

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/astropy/utils/decorators.py:547, in deprecated_renamed_argument.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
    545         warnings.warn(msg, warning_type, stacklevel=2)
--> 547 return function(*args, **kwargs)

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/astropy/io/votable/table.py:159, in parse(source, columns, invalid, verify, chunk_size, table_number, table_id, filename, unit_format, datatype_mapping, _debug_python_based_parser)
    156 with iterparser.get_xml_iterator(
    157         source,
    158         _debug_python_based_parser=_debug_python_based_parser) as iterator:
--> 159     return tree.VOTableFile(
    160         config=config, pos=(1, 1)).parse(iterator, config)

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/astropy/io/votable/tree.py:3573, in VOTableFile.parse(self, iterator, config)
   3571 config['_current_table_number'] = 0
-> 3573 for start, tag, data, pos in iterator:
   3574     if start:

ValueError: 1:0: syntax error

During handling of the above exception, another exception occurred:

DALFormatError                            Traceback (most recent call last)
Cell In [10], line 5
      2 services = vo.regsearch(servicetype='spectrum', waveband='x-ray')
      4 # Assuming there are services and the first one is OK...
----> 5 results = services[0].search(pos=SkyCoord.from_name("Delta Ori"),
      6                              diameter=Angle(10 * u.arcmin))
      8 # Assuming there are results, download the first file.
      9 print(f'Title: {results[0].title}, Format: {results[0].format}')

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/pyvo/registry/regtap.py:709, in RegistryResource.search(self, *args, **keys)
    704 if not self.service:
    705     raise dalq.DALServiceError(
     43     ax.set_title('GALEX image not found')
     45 # SDSS
     46
     47 # Find the SDSS images that overlap the position.
---> 48 sdss_image_table = sdss_image_service.search(pos=pos, size=0, format=None)
     50 # Find the first SDSS r-band image.
     51 sdss_rband_record = None

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/pyvo/registry/regtap.py:709, in RegistryResource.search(self, *args, **keys)
    704 if not self.service:
    705     raise dalq.DALServiceError(
    706         "resource, {}, is not a searchable service".format(
    707             self.short_name))
--> 709 return self.service.search(*args, **keys)

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/pyvo/dal/sia.py:255, in SIAService.search(self, pos, size, format, intersect, verbosity, **keywords)
    188 def search(
    189         self, pos, size=1.0, format='all', intersect="overlaps",
    190         verbosity=2, **keywords):
    191     """
    192     submit a SIA query to this service with the given parameters.
    193
   (...)
    253     pyvo.dal.query.DALQueryError
    254     """
--> 255     return self.create_query(
    256         pos, size, format, intersect, verbosity, **keywords).execute()

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/pyvo/dal/sia.py:572, in SIAQuery.execute(self)
    558 def execute(self):
    559     """
    560     submit the query and return the results as a SIAResults instance
    561
   (...)
    570        for errors parsing the VOTable response
    571     """
--> 572     return SIAResults(self.execute_votable(), url=self.queryurl, session=self._session)

File ~/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/pyvo/dal/query.py:246, in DALQuery.execute_votable(self, post)
    244 except Exception as e:
    245     self.raise_if_error()
--> 246     raise DALFormatError(e, self.queryurl)

DALFormatError: ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

=============================== warnings summary ===============================
.tox/py38-test-oldestdeps/lib/python3.8/site-packages/_pytest/nodes.py:642: 12 warnings
  /home/runner/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/lib/python3.8/site-packages/_pytest/nodes.py:642: PytestRemovedIn8Warning: The (fspath: py.path.local) argument to IPyNbFile is deprecated. Please use the (path: pathlib.Path) argument instead.
  See https://docs.pytest.org/en/latest/deprecations.html#fspath-argument-for-node-constructors-replaced-with-pathlib-path
    return super().from_parent(parent=parent, fspath=fspath, path=path, **kw)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED QuickReference.ipynb::Cell 9
FAILED UseCase_I.ipynb::Cell 31
============ 2 failed, 200 passed, 12 warnings in 305.50s (0:05:05) ============
ERROR: InvocationError for command /home/runner/work/navo-workshop/navo-workshop/.tox/py38-test-oldestdeps/bin/pytest --nbval (exited with code 1)
___________________________________ summary ____________________________________
ERROR:   py38-test-oldestdeps: commands failed
Error: Process completed with exit code 1.

I can't recall seeing these particular failures in a while, so closing the issue as we can always reopen if we restart seeing them.


Add a getServer method to Sponge

Server is something constantly accessed, I see no point in not having this method if we have ones for far less used things.

Nice addition!

https://github.com/SpongePowered/SpongeAPI/commit/50ed63e887d678d0da93711ee9220e900bf8f92a


PowerBI - Upload dataset works, Upload Report does not work

Hello,
previously I used version 2.x and was successfully able to upload datasets and reports using credentials. Now we switched to SPNs. We upgraded to 4.x. I am still using the same task (Upload PowerBI Report) but unfortunately I am not able to upload reports although datasets can be successfully uploaded to the PowerBI Workspace.
Getting Error 404 - Bad request.
Any advice ?:)

@maikvandergaag : Hi Maik, could you please take a look on that or do you need any further information ?

What kind of group are you using to publish your reports, you need to use version 2 when using a SPN

@maikvandergaag : Hi Maik, first of all thank you a lot for your reply. Unfortunately, I don't see any options to use version 2 ? We had to install the extension on a new DevOps and there we just have version 4 available and SPNs are just available in version 4.x ?

It’s about the group type within PowerBI, at some point they created new PowerBI group types SPNs only support the new group types within PowerBI
Groetjes,
Maik van der Gaag

Van: aleex-bro<EMAIL_ADDRESS>Verzonden: Tuesday, April 7, 2020 11:14:08 AM
Aan: maikvandergaag/msft-extensions<EMAIL_ADDRESS>CC: Maik van der Gaag<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Onderwerp: Re: [maikvandergaag/msft-extensions] PowerBI - Upload dataset works, Upload Report does not work (#165)
@maikvandergaaghttps://github.com/maikvandergaag : Hi Maik, first of all thank you a lot for your reply. Unfortunately, I don't see any options to use version 2 ? We had to install the extension on a new DevOps and there we just have version 4 available and SPNs are just available in version 4.x ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/maikvandergaag/msft-extensions/issues/165#issuecomment-610273303, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACIXAE5K45ME3KPFHORDJ4DRLLVGBANCNFSM4LXTOIDA.

@maikvandergaag : Could you provide me any kind of document references or could you explain it further ?
I really appreciate your help.

https://docs.microsoft.com/en-us/power-bi/service-new-workspaces
Met vriendelijke groet,
Maik van der Gaag
From: aleex-bro<EMAIL_ADDRESS>Sent: Tuesday, April 7, 2020 11:36
To: maikvandergaag/msft-extensions<EMAIL_ADDRESS>Cc: Maik van der Gaag<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [maikvandergaag/msft-extensions] PowerBI - Upload dataset works, Upload Report does not work (#165)
@maikvandergaaghttps://github.com/maikvandergaag : Could you provide me any kind of document references or could you explain it further ?
I really appreciate your help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/maikvandergaag/msft-extensions/issues/165#issuecomment-610283749, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACIXAE4JNSYIJHF2456OB2DRLLXYBANCNFSM4LXTOIDA.

Hi Maik,
Thanks for your reply. Basically we are using the new workspace but it still doesn't work. It works perfectly fine for datasets but not for reports.
Maybe we could have a quick Teams call ?

Hi Alex,
That can be arranged.
Met vriendelijke groet,
Maik van der Gaag
From: aleex-bro<EMAIL_ADDRESS>Sent: Tuesday, April 14, 2020 10:50
To: maikvandergaag/msft-extensions<EMAIL_ADDRESS>Cc: Maik van der Gaag<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [maikvandergaag/msft-extensions] PowerBI - Upload dataset works, Upload Report does not work (#165)
Hi Maik,
Thanks for your reply. Basically we are using the new workspace but it still doesn't work. It works perfectly fine for datasets but not for reports.
Maybe we could have a quick Teams call ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/maikvandergaag/msft-extensions/issues/165#issuecomment-613311293, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACIXAEZBZBUF7X65SRITO5DRMQPTPANCNFSM4LXTOIDA.

Hi Maik,
Thanks a lot I wrote you a message on Microsoft Teams. I highly appreciate your help.

Hi Maik,
have you been able to see my message on Teams ? I don't whether I picked the right e-mail address. It would be awesome if you could text me back. Thanks a lot in advance.

Hi alexx haven't received your message


Add new variables.

Some users suggested new variables:

The windows identity
The current IP address of the system
The computer name

Hi.
Instead of this I will implement a variable that return the value of a system variable. See #136.
Current IP address is a problem, because in many case there are several ones (loopback, virtual interfaces, multiple network adapters...). How to pick one automatically.


Mirror user's auth token in cookies

During the https://github.com/StackStorm/discussions/issues/242, @armab voiced an opinion that sending auth token through query parameters constitute a security risk in a number of cases involving logging capabilities of intermediate proxies.
This PR provides a solution for the problem by implementing an additional channel for client to pass auth token through - cookies. The main benefit of using cookies instead of query params is that intermediate proxies usually don't log them in any way. The main benefit of using cookies instead of auth headers is that they work universally well for any type of content you may want to access with browser (including images and eventsource to which you can not add a header).
The downside of using a cookies is that they could be used to exploit in a CSRF attacks to execute an arbitrary command impersonating user that's already logged into the system. The CORS mechanics st2 provides from day one can protect from almost every vector of exploitation I can imagine, but on practice, very few st2 users bother themselves to properly set it up.
CSRF is a blind attack and will require a sizable amount of effort to pull off, but the chance is there.
Before the 2.4 is out the door, I'll try to perform it myself and there's still additional protective measures we could add, but for now, this is what we have.

As it turns out we do indeed ship st2 with reasonable defaults in regards to CORS policies. However, if user decides to screw with it for some reason (happened before in cases of custom deployments paired with the lack of interest to CORS and browser security in general), it might lead to him opening the system to CSRF vulnerability.
To illustrate the attack, I've compiled a small example anyone interested could run and see for yourself.

Install dev build #2578 as the only one currently vulnerable.

curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=st2admin --password='Ch@ngeMe' --dev=2578

Log into the WebUI

Open https://codepen.io/enykeev/pen/zzeKXQ and enter the IP of the service. Press the button. Web Tools Console will tell you familiar:

XMLHttpRequest cannot load https://<IP_ADDRESS>/api/v1/executions. Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains the invalid value 'null'. Origin 'https://s.codepen.io' is therefore not allowed access.

Add allow_origin = * to /etc/st2/ct2.conf. Do sudo st2ctl restart.

Repeat step 3. This time Web Tools will tell you nothing, but your execution history will feature a new core.local execution.

--
At that point I'm having a rather loud internal debate where:

one side provides a decent solution for the problem by adding another cookie containing the hash of the token and then adding this hash to every request as a query parameter.
another side argues that the attack surface is so thin, the attack itself hard to pull of because it would require not only a knowledge of the internal address of the st2 installation, but also involves luring an authenticated user to an infected site. Besides, for vulnerability to be present, user itself would have to manually disable a security feature that's created to protest from exactly that kind of attacks.

How about adding additional https://www.owasp.org/index.php/SameSite cookie? See https://security.stackexchange.com/a/154108 and https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/

Do we also want this in v2.3.2?

@Kami I'd say the change is too disruptive for patch release. No rush either.

@armab given the support of SameSite cookie is still quite spotty (https://caniuse.com/#search=samesite) we can not rely on it anyway. I'll keep my eye on the ball and add it as soon as makes sense. For now, though, we'll have to continue to rely on allow_origin config property for custom deployments.


Reset counter updated even though finish is incremented

When I finish a track, the counter for finishes is incremented by one,then when the menu appears and I select "Improve" the reset counter is incremented by one.

the reset counter is more like the number of attempts on a track than resets

Got it.
Would it be worth renaming Resets to Attempts. As that is a better reflection of the actual counter.

From: Owen Halliday @.>
Sent: 30 November 2022 22:38
To: drekdrek/grinding-stats @.>
Cc: hsiddique @.>; Author @.>
Subject: Re: [drekdrek/grinding-stats] Reset counter updated even though finish is incremented (Issue #17)
the reset counter is more like the number of attempts on a track than resets
—
Reply to this email directly, view it on GitHubhttps://github.com/drekdrek/grinding-stats/issues/17#issuecomment-1332826892, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAVNU4THILW7BHDQ2P7UJ3TWK7JOVANCNFSM6AAAAAASQD2UDU.
You are receiving this because you authored the thread.Message ID: @.***>


Modernising to single package with esm and types

hey there 👋
I was wondering if there would be any interest in "updating" the code to esm?
I'm also very conscious of the number of dependencies and I think we could get that down to 0?
I also noticed some typing issues for children...
anyways - I could do all the work and do esm, 0 dependencies, and improving types... would you like to release it maybe as the next major version?
or would you prefer me to fork?

Hey! I like your suggestions and would appreciate your contributions. I can't commit much time to this so please break it down in separate MRs to make it more digestible.
I'm not familiar with how much breaking is changing the distributed module type but I guess a new major makes sense.
Regarding number of dependencies, I'm not strict on that, actually the two dependencies are also mine but I agree we should get rid of them because:

merge-sort-js was built just to provide stable sorting (when the lib was developed the JS sort method wasn't stable but I think it is now both in node and browsers, please confirm this)
find-insert-index-js is doing a linear search when it could do a binary search (not sure if there's anything native to replace this)

I'm not a TS user so I don't know what's missing or needs improvements. If it's possible to make those improvements separately and released as a new patch version that would be desirable.
I also ask you to avoid changing code and tests in the same MR to keep it more controlled in terms of breaking changes.

sounds good 👍
First PR will be about moving to ESM and classes which should mostly be syntactical changes while hardly touching logical code. Just to be sure this will raise the requirement to node 14+ (current active LTS)
we can then align on how to take the next steps 🤗

Just to be sure this will raise the requirement to node 14+ (current active LTS)
Did you check if Node 12 (still receiving security updates) already supports ESM? If not, or if it's incomplete, then do bump the minimum required to 14.

Suggested steps

[x] move to esm  (PR)
[ ] keep working in a branch? (do next PRs to it? there are more changes needed)
[ ] format with prettier
[ ] split into src/TreeModel.js, src/Node.js, src/walkStrategies.js
[ ] remove dtslint, jshint
[ ] update eslint
[ ] add typescript and auto-generate types based on jsdoc

Node 12 indeed also supports esm but IIRC it does not support export maps which I would also like to add

@joaonuno thx for the approval 🤗
how would you like to proceed?
suggestion:

merge the open PR into another branch like next
you would need to create and push this next branch before I can choose it as a target
all following merge requests would target next
... work work work
after all steps are done merge next into master and released it as 2.0.0 (potentially doing some pre-releases before)

Thanks for the suggestion. Just created next branch.

hey there 👋
any chance you can merge https://github.com/joaonuno/tree-model-js/pull/85 so I can make further PRs on the next branch?

Done, sorry for the delay.

yes - I assume this will come up once we add type checking for js files
just finished splitting it into multiple smaller parts in https://github.com/joaonuno/tree-model-js/pull/90
I think these are the bigger remaining open tasks

[ ] evaluate what would be needed to become a package with 0 dependencies
[ ] add typescript and auto-generate types based on jsdoc
[ ] Make it type module and rename all mjs to js
[ ] Beta Release preparation (export map, readme, changelog, ...)

here we are - 0 dependencies 💪  see #91


Weird scrollbar flashing after truncating playlist while downloading

I queued a bunch of songs and enabled "Download all". When maybe 50 of the songs had been downloaded, I truncated the playlist to drop a bunch of not-yet-downloaded songs. The playlist's scrollbar kept appearing and disappearing every few seconds, though. I think it usually does this when the list is updated, but it shouldn't have been still getting updated. Were the truncated songs somehow still getting downloaded? (If they were, why was the scrollbar flashing even though the songs weren't in the list?)

Ugh. After watching the logs after setting "download all", queuing a bunch of songs, and truncating the playlist, songs are definitely being downloaded after they've been removed from the playlist.
After looking at the code for a bit, maybeDownloadAnotherSong in NupService seems broken:
    /** Try to download the next not-yet-downloaded song in the playlist. */
    private fun maybeDownloadAnotherSong(startIndex: Int) {
        assertOnMainThread()

        if (downloadSongId != -1L) {
            Log.e(TAG, "Aborting prefetch since download of song $downloadSongId is in progress")
            return
        }
        var index = startIndex
        while (index < playlist.size &&
            (shouldDownloadAll || index - curSongIndex <= songsToPreload)
        ) {
            val song = playlist[index]
            var entry = cache.getEntry(song.id)
            if (entry != null && entry.isFullyCached) {
                // We already have this one. Pin it to make sure that it
                // doesn't get evicted by a later song.
                cache.pinSongId(song.id)
                index++
                continue
            }
            cache.downloadSong(song)
            downloadSongId = song.id
            downloadIndex = index
            cache.pinSongId(song.id)
            fetchCoverForSongIfMissing(song)
            index++
        }
    }

Why is it calling downloadSong for multiple songs instead of just for one? Looking at FileCache, the downloads are performed by a SingleThreadScheduledExecutor, so we'll just get one song at a time, but all of the later songs will still be scheduled even if they've been removed from the playlist by the time that it's their turn.
The obvious fix seems to be to make NupService only call downloadSong after the previous download completes. onCacheDownloadComplete looks like it already calls maybeDownloadAnotherSong, but onCacheDownloadFail doesn't.