Niconico Channel Plus stopped working all of a sudden

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

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

Checklist

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

Region
United States
Provide a description that is worded well enough to be understood
I just started using yt-dlp to download a couple stream archives from Niconico Channel plus today and it stopped working all of a sudden. I downloaded about 6 videos (30 gb or so). I checked to see if yt-dlp worked on a previously downloaded video (after moving it to another folder so yt-dlp doesn't think it's already been downloaded) and it did not work on it. So it seems like something must have changed. Is it possible I got flagged somehow for downloading around 6 or so videos in 1 day? I can still watch the streams.
Provide verbose output that clearly demonstrates the problem

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

Complete Verbose Output
[debug] Command-line config: ['https://nicochannel.jp/soyogisetune-asmr-plus/video/sm9rU2bo9cudbwhGVEBSmRxm', '-vU', '--cookies-from-browser', 'chrome']
[debug] Extracting cookies from: "C:\Users\Mike\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\Mike\AppData\Local\Google\Chrome\User Data\Local State"
[debug] cookie version breakdown: {'v10': 3211, 'other': 0, 'unencrypted': 0}
[debug] Encodings: locale cp932, fs utf-8, pref cp932, out cp932 (No VT), error utf-8, screen cp932 (No VT)
[debug] yt-dlp version<EMAIL_ADDRESS>[84e26038d] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg n6.0-34-g3d5edb89e7-20230810 (setts), ffprobe n6.0-34-g3d5edb89e7-20230810
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, sqlite3-3.35.5, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1887 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
[debug] [NiconicoChannelPlus] sm9rU2bo9cudbwhGVEBSmRxm: video_type=vod, live_status=not_live
ERROR: [NiconicoChannelPlus] Unable to get session id: HTTP Error 403: Forbidden (caused by <HTTPError 403: Forbidden>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "yt_dlp\extractor\common.py", line 715, in extract
  File "yt_dlp\extractor\niconicochannelplus.py", line 110, in _real_extract
  File "yt_dlp\extractor\niconicochannelplus.py", line 220, in _get_live_status_and_session_id
  File "yt_dlp\extractor\niconicochannelplus.py", line 22, in _call_api
  File "yt_dlp\extractor\common.py", line 1069, in download_content
  File "yt_dlp\extractor\common.py", line 1033, in download_handle
  File "yt_dlp\extractor\common.py", line 903, in _download_webpage_handle
  File "yt_dlp\extractor\common.py", line 860, in _request_webpage

  File "yt_dlp\networking\_urllib.py", line 410, in _send
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 4051, in urlopen
  File "yt_dlp\networking\common.py", line 114, in send
  File "yt_dlp\networking\_helper.py", line 204, in wrapper
  File "yt_dlp\networking\common.py", line 325, in send
  File "yt_dlp\networking\_urllib.py", line 415, in _send
yt_dlp.networking.exceptions.HTTPError: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "yt_dlp\extractor\common.py", line 847, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 4070, in urlopen
yt_dlp.networking.exceptions._CompatHTTPError: HTTP Error 403: Forbidden

I tested on a few more videos and it seems like yt-dlp stopped working only on niconico videos that doesn't have any free parts. It is still able to work videos that have some parts free and some parts requiring paid. For videos that are part free, it is able to download the full video.

I can confirm that this occurs even with --cookies-from-browser firefox+KWALLET (since that's what I use on my system).
yt-dlp -vU --cookies-from-browser firefox+KWALLET 'https://nicochannel.jp/soyogisetune-asmr-plus/video/sm9rU2bo9cudbwhGVEBSmRxm'
[debug] Command-line config: ['-vU', '--cookies-from-browser', 'firefox+KWALLET', 'https://nicochannel.jp/soyogisetune-asmr-plus/video/sm9rU2bo9cudbwhGVEBSmRxm']
Extracting cookies from firefox
[debug] Extracting cookies from: "/home/matthew/.mozilla/firefox/otdn3pg3.default/cookies.sqlite"
Extracted 2373 cookies from firefox
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[b634ba742]
[debug] Python 3.11.5 (CPython x86_64 64bit) - Linux-6.5.3-zen1-1-zen-x86_64-with-glibc2.38 (OpenSSL 3.1.3 19 Sep 2023, glibc 2.38)
[debug] exe versions: ffmpeg 6.0 (setts), ffprobe 6.0, phantomjs broken, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.12.0, brotlicffi-<IP_ADDRESS>, certifi-2023.07.22, mutagen-1.47.0, secretstorage-3.3.3, sqlite3-3.43.1, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1890 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version<EMAIL_ADDRESS>Current version<EMAIL_ADDRESS>yt-dlp is up to date<EMAIL_ADDRESS>[NiconicoChannelPlus] Extracting URL: https://nicochannel.jp/soyogisetune-asmr-plus/video/sm9rU2bo9cudbwhGVEBSmRxm
[NiconicoChannelPlus] channels/soyogisetune-asmr-plus: Fetching channel list
[NiconicoChannelPlus] sm9rU2bo9cudbwhGVEBSmRxm: Fetching video page info
[debug] [NiconicoChannelPlus] sm9rU2bo9cudbwhGVEBSmRxm: video_type=vod, live_status=not_live
[NiconicoChannelPlus] sm9rU2bo9cudbwhGVEBSmRxm/session: Getting session id
ERROR: [NiconicoChannelPlus] Unable to get session id: HTTP Error 403: Forbidden (caused by <HTTPError 403: Forbidden>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/common.py", line 715, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/niconicochannelplus.py", line 110, in _real_extract
    live_status, session_id = self._get_live_status_and_session_id(content_code, data_json)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/niconicochannelplus.py", line 220, in _get_live_status_and_session_id
    session_id = self._call_api(
                 ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/niconicochannelplus.py", line 22, in _call_api
    return self._download_json(
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/common.py", line 1069, in download_content
    res = getattr(self, download_handle.__name__)(url_or_request, video_id, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/common.py", line 1033, in download_handle
    res = self._download_webpage_handle(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/common.py", line 903, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/common.py", line 860, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "/usr/lib/python3.11/site-packages/yt_dlp/networking/_urllib.py", line 410, in _send
    res = opener.open(urllib_req, timeout=float(request.extensions.get('timeout') or self.timeout))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/urllib/request.py", line 525, in open
    response = meth(req, response)
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/urllib/request.py", line 634, in http_response
    response = self.parent.error(
               ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/urllib/request.py", line 563, in error
    return self._call_chain(*args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/urllib/request.py", line 496, in _call_chain
    result = func(*args)
             ^^^^^^^^^^^
  File "/usr/lib/python3.11/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/yt_dlp/YoutubeDL.py", line 4051, in urlopen
    return self._request_director.send(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/networking/common.py", line 114, in send
    response = handler.send(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/networking/_helper.py", line 204, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/networking/common.py", line 325, in send
    return self._send(request)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/networking/_urllib.py", line 415, in _send
    raise HTTPError(UrllibResponseAdapter(e.fp), redirect_loop='redirect error' in str(e)) from e
yt_dlp.networking.exceptions.HTTPError: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/yt_dlp/extractor/common.py", line 847, in _request_webpage
    return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yt_dlp/YoutubeDL.py", line 4070, in urlopen
    raise _CompatHTTPError(e) from e
yt_dlp.networking.exceptions._CompatHTTPError: HTTP Error 403: Forbidden

While @mondoak1 is not willing to share credentials (based on the checkmark), I'm willing to share them if needed.

If it doesn't works, it means that you are downloading the video that is private to member only.
NicoNico Channel Plus is API-based website, that means Cookies will not works.
To solve the problem, it requires to link up the NicoNico credentials with the NicoNico Channel Plus.

You wouldn't happen to know how that would be done do you?

Hi there, please test the code of #8645 and check if it works with your Niconico email and password.

I just tried it and it gave a 404 error.
ERROR: [NiconicoChannelPlus] Unable to get login url: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

Hi @EnderShadow , thanks for your test.

I just tried it and it gave a 404 error.
ERROR: [NiconicoChannelPlus] Unable to get login url: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

It's weird. I didn't see HTTP 404 on my side.
Questions

https://auth.sheeta.com/auth/realms/FCS00001/protocol/openid-connect/auth?client_id=FCS00056&response_type=code&scope=openid&kc_idp_hint=niconico&redirect_uri=https%3A%2F%2Fnicochannel.jp%2Ftestman%2Flogin

What do you see when opening the above link? Is there a Niconico login page like this?

Login Email Address / Phone Number
[                                                                                ]
Password
[                                                                          ]   【 Login 】
forgot your password?

Log in to the service account below.
...

May I ask what is your location? Or say, what is the location of your IP?

When opening the above link, it asks if I'm 18+, asks if I want email notifications, and then takes me to the home screen. That's probably because I'm already logged in though. When checking through an incognito window, it takes me to a login page.
It has my correct town in Florida.

@EnderShadow thanks for your info. Maybe you were using email/password with specifying cookies from Firefox? Please try the latest code of #8645 .

Yes, I was specifying both when I was doing that. Now it seems to work with just specifying cookies. Thanks for getting it working!

I have a found a bug with it though. It will successfully download a single item when downloading multiple items using only --cookies-from-browser and then the token is expired so it needs to acquire a new one. Rerunning the command will cause it to acquire a new token which will work for the next item (assuming you're using --download-archive to not download duplicates). I'll test with both --cookies-from-browser and a username and password afterwards to see if that resolves the token issue.
[NiconicoChannelPlus] Extracting URL: https://nicochannel.jp/soyogisetune-asmr-plus/video/smzPqWvNjYPmr6gScDsbJAMA [NiconicoChannelPlus] channels/soyogisetune-asmr-plus: Fetching channel list [NiconicoChannelPlus] smzPqWvNjYPmr6gScDsbJAMA: Fetching video page info [NiconicoChannelPlus] smzPqWvNjYPmr6gScDsbJAMA/session: Getting session id ERROR: [NiconicoChannelPlus] outdated cached token. Use --cookies, --cookies-from-browser, --username and --password, --netrc-cmd, or --netrc (niconicochannelplus) to provide account credentials

The issue also occurs with both cookies + username and password and with just username and password

@EnderShadow

It will successfully download a single item when downloading multiple items using only --cookies-from-browser and then the token is expired so it needs to acquire a new one. Rerunning the command will cause it to acquire a new token which will work for the next item (assuming you're using --download-archive to not download duplicates).

Weird, acquiring new tokens should not happen when using cookies from browsers...
I guess you might forget to update your code? I didn't see the newly added "[NiconicoChannelPlus] Getting auth status" line. How did you pull the new code?
If you are using pip:
pip install --force-reinstall <blahblah...>
#           ^^^^^add this^^^^

Or checkout the code at 67649c01d4b3ceeb048bb07673a5bf169107b306 with git.

The snippet was from when it failed after successfully downloading one video in the batch of videos. The initial part where it grabs the credentials is here along with the command I ran.
xargs -a need.txt yt-dlp --cookies-from-browser firefox+KWALLET --download-archive archive.txt
Extracting cookies from firefox
Extracted 2908 cookies from firefox
[NiconicoChannelPlus] Extracting URL: https://nicochannel.jp/soyogisetune-asmr-plus/video/sm27475oy5LNKb7XcVDALgD
[NiconicoChannelPlus] Getting auth status
[NiconicoChannelPlus] 56: Fetching sns login info
[NiconicoChannelPlus] channels/soyogisetune-asmr-plus: Fetching channel list
[NiconicoChannelPlus] sm27475oy5LNKb7XcVDALgD: Fetching video page info
[NiconicoChannelPlus] sm27475oy5LNKb7XcVDALgD/session: Getting session id
[NiconicoChannelPlus] sm27475oy5LNKb7XcVDALgD: Downloading m3u8 information
[NiconicoChannelPlus] fanclub_sites/274: Fetching channel base info
[NiconicoChannelPlus] fanclub_sites/274: Fetching channel user info

Hi there! I've updated the code in #8645, please give it a try!

I'm no longer subscribed to a channel where I can test this, so I can't test it.

@pzhlkj6612 With #8645 merged onto current git master (50c29352312f5662acf9a64b0012766f5c40af61), downloading paid Channel Plus videos seems to work for me.  TYVM :-)

@sparcnut,

With #8645 merged onto current git master (50c2935), downloading paid Channel Plus videos seems to work for me. TYVM :-)

Thanks for your test!

The code is unfinished and being rewritten. I'll update if something changed.

@pzhlkj6612
Due to the poor content protection of NicoNico Channel Plus. The current methods allow people to download the paid content without paid.
I would like to ask for stop developing in order to protect the content creator rights. Or you should provide the protect inside the codebase.

Hi, @climba03003.

@pzhlkj6612 Due to the poor content protection of NicoNico Channel Plus. The current methods allow people to download the paid content without paid.
I would like to ask for stop developing in order to protect the content creator rights. Or you should provide the protect inside the codebase.

Well, the current logic does need subscription for paid videos. I'm unable to get the "session id" without membership.
Maybe I don't know so much about Niconico Channel Plus, could you please explain more? Thanks.

Hi, @climba03003.

@pzhlkj6612 Due to the poor content protection of NicoNico Channel Plus. The current methods allow people to download the paid content without paid.
I would like to ask for stop developing in order to protect the content creator rights. Or you should provide the protect inside the codebase.

Well, the current logic does need subscription for paid videos. I'm unable to get the "session id" without membership.
Maybe I don't know so much about Niconico Channel Plus, could you please explain more? Thanks.

It requires subscription but the subscription can be a free member. So, it is actually allows to download paid content without paying.

@climba03003 We are not intentionally trying to bypass subscription, but we are also not going to add extra code to block it. That is the website's responsibility, not ours.

You can choose to do one more step to protect the content, and of-course you can choose not to.
It just a request only to maintain a good world.

It seems like yt-dlp stopped working on Nicochannel Plus again, for both paid and unpaid contents, after coming back recently from the Russian DDoS attacks. Update to Nico channel Plus code section requested. Thank you!

Hi, @mondoak1 !
What's the version of the yt-dlp you were using? Did you check out the code from my previous PR? And would you like to add the log here? Like the "Complete Verbose Output" in the first comment of this issue.
The previously workable code for NiconicoChannelPlus has not been merged yet since this issue was raised, though.
It seems that the VIP function in NiconicoChannelPlus has been fixed? Are you able to watch unpaid and paid content in your web browsers?

Hi @pzhlkj6612
I'm using the latest nightly version of the code. I am able to watch the content on my web. Here's the log for 1 of the unpaid content:
[debug] Command-line config: ['-vU', 'https://nicochannel.jp/soyogisetune-asmr-plus/video/smyyTGxHTrSeNiwUPP3tvJ2b']
[debug] Encodings: locale cp932, fs utf-8, pref cp932, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds [d28aa87e2] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg n6.0-34-g3d5edb89e7-20230810 (setts), ffprobe n6.0-34-g3d5edb89e7-20230810
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.06.02, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.3, sqlite3-3.35.5, urllib3-2.2.2, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1831 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds)
[NiconicoChannelPlus] Extracting URL: https://nicochannel.jp/soyogisetune-asmr-plus/video/smyyTGxHTrSeNiwUPP3tvJ2b
[NiconicoChannelPlus] channels/soyogisetune-asmr-plus: Fetching channel list
ERROR: [NiconicoChannelPlus] Unable to fetch channel list: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>)
File "yt_dlp\extractor\common.py", line 740, in extract
File "yt_dlp\extractor\niconicochannelplus.py", line 103, in _real_extract
File "yt_dlp\extractor\niconicochannelplus.py", line 26, in _find_fanclub_site_id
File "yt_dlp\extractor\niconicochannelplus.py", line 22, in _call_api
File "yt_dlp\extractor\common.py", line 1139, in download_content
File "yt_dlp\extractor\common.py", line 1099, in download_handle
File "yt_dlp\extractor\common.py", line 960, in _download_webpage_handle
File "yt_dlp\extractor\common.py", line 909, in _request_webpage
File "yt_dlp\extractor\common.py", line 896, in _request_webpage
File "yt_dlp\YoutubeDL.py", line 4161, in urlopen
File "yt_dlp\networking\common.py", line 117, in send
File "yt_dlp\networking_helper.py", line 208, in wrapper
File "yt_dlp\networking\common.py", line 337, in send
File "yt_dlp\networking_requests.py", line 361, in _send
yt_dlp.networking.exceptions.HTTPError: HTTP Error 404: Not Found

@mondoak1

I'm using the latest nightly version of the code. I am able to watch the content on my web.

Thank you! The logic appears to have changed. I'll let you know when new code is available.

In addition, a GitHub use tip:
You can use the "code block" format to protect the log from being improperly rendered by GitHub. See https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting .

I also find that yt-dlp is not working for the nicochannel, throwing HTTP 404 error and so I checked the site logic.
Found that the api location is now https://api.nicochannel.jp instead of the https://nfc-api.nicochannel.jp stated in the extractor.

@xerial817, please have a look at #9978 when you have some free time.


feat(WIP): adds an availability filter for use on artwork grids

The type of this PR is: Feat
This PR solves Hack13 - available filter
Review app example: https://availability-filter.artsy.net/artist/mike-gough
Description
Adds a filter using our customary ux patterns that allows a collector to filter down to for-sale works only.
Quirky behavior at the moment:

toggling it on shows forsale: true works only ✅
toggling it off shows forsale: false works only, rather than all works 🤔

Screencap
Notice how the count here goes from 46 (all) → 16 (for-sale) → 30 (not-for-sale) → 46 (back to all, by tweaking the url) →
https://github.com/artsy/force/assets/140521/08414b79-fb3d-43a6-b725-97aa2169b6e7

cc @mzikherman and @damassi for your thoughts
Not super-urgent — I think this is still demo-able with appropriate caveats. But:

I think there is a (recurring?) issue with how our boolean-valued flags work in the filter/artworks endpoint — should ?forsale=false false mean artworks with forsale: false or mean don't apply the filter at all

Also, I'm wondering why the ArtworkFilterContext unset function doesn't remove the param from the url entirely. Should it?

I'm not too sure about the answers here, other than "false" and "true" come across as strings, due to being query params. In code, we'd need to check something like this, but in force.
I know we have a number of these checks already, but would have to dig a bit more to figure out whats exactly going on.

I wouldn't call this an issue, it's more intentional by design

Yep, I can see that. To the extent that this is an intentional difference, I wonder if the _only suffix is a reliable indicator…

I know I have a habit of writing 'When true, ...' in the description for query parameters that only operate in the truthy case.
However, looking at for_sale, and indeed says that, although it does support both true/false - https://github.com/artsy/gravity/blob/d21b79d59d23b5feb442873f469000bb793547fc/app/api/v1/filter_endpoint.rb#L54.
I'll definitely grant you that while there's likely no true implementation bug, we are certainly inconsistent with whether just truth-y, or false-y as well is supported by boolean query params (and besides looking at the implementation or examining the results when making both queries, there's often no way to be sure).


Don't use race detector for jobreceiver tests

This commit overrides the race detection in the jobreceiver tests. While this prevents us from catching data races in the jobreceiver in CI, it also keeps CI from failing sporadically on Darwin.
There's something amiss in the jobreceiver tests and it causes CI to fail quite regularly, almost always on Darwin. I suspect there is some concurrency bug in the test harness that is more likely to deadlock when the race detector is enabled. (The race detector slows everything down, and that can make deadlocks more likely to happen by exposing timing bugs).

Good idea. Filed https://github.com/SumoLogic/sumologic-otel-collector/issues/1641


Panic in span End() when created with NewSpan

When creating a span using the now deprecated NewSpan function, calling End() on it panics. Panic trace:
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x9ebf4e]

goroutine 39 [running]:
testing.tRunner.func1(0xc42017e3c0)
	/usr/local/go/src/testing/testing.go:742 +0x454
panic(0xfd56e0, 0x164dfc0)
	/usr/local/go/src/runtime/panic.go:505 +0x24a
go.opencensus.io/trace.(*Span).End.func1()
	[XXX]/go.opencensus.io/trace/trace.go:269 +0x3e
sync.(*Once).Do(0xc42051b208, 0xc4204b4c90)
	/usr/local/go/src/sync/once.go:44 +0xd2
go.opencensus.io/trace.(*Span).End(0xc42051b1d0)
	[XXX]/go/src/go.opencensus.io/trace/trace.go:268 +0xa0

The simplest way to fix this is probably to replace s.executionTracerSpanEnd() by if s.executionTracerSpanEnd != nil { s.executionTracerSpanEnd() }.
This is a serious bug caused by #715 .

/cc @rakyll @ramonza

Thank you for reporting this @delthas and welcome to OpenCensus!
@rakyll just fixed this bug, please get the latest from master.

Thanks. I would have done the PR myself but signing the Contributor License Agreement is quite a hassle.
I'm using this library in production, is there a way I can freeze the version of this library to avoid my infrastructure going down because of panics introduced in the code?

@delthas not a problem, thank you for reporting it and for using OpenCensus!
Awesome, that's great to know. So in order to freeze a version, perhaps you can use a package management tool, as per https://github.com/golang/go/wiki/PackageManagementTools?
Also it would be great to keep in touch with companies/individuals using OpenCensus in production, if you are comfortable doing so, please send me an email at<EMAIL_ADDRESS>telling me how you are using it and in the future, we'll compile a list and post it publicly on the wiki here perhaps or somewhere.

PS: for clarity, I asked for an email because I haven't yet discussed with the OpenCensus team on how to liase with companies using OpenCensus i.e. publicly via wiki? Specialized contact? I didn't want to make a wiki suggestion without first discussing with the team on liason policy
/cc @bogdandrutu

@delthas, you should pin to a specific release version at https://github.com/census-instrumentation/opencensus-go/releases and have reproducible builds by using a dependency management tool such as dep (https://github.com/golang/dep).


Bad connection issues with HLS

Current Behavior:

The player stop loading for an unlimited amount of Time
Expected Behavior:
The player work great and the video Load as it should do

I Just have a bad connection (The same m3u8 file work great in VLC)
Steps To Reproduce:
Just try to change the network settings in Devtools to emulate a change in your connection

Environment:

Anything Else?

There's not enough information here for me to reproduce the bug. If you can share a repro or provide more information I'll re-open.


Get rid of  where Self: std::marker::Sized

I'm still learning Rust, and that means that I'm still not fully understanding traits and object safety.
We have a Store struct based on the Storelike trait, which contains all the data. We also have Resource, which have a reference to a Storelike.
pub struct Resource<'a> {
    propvals: PropVals,
    subject: String,
    classes: Option<Vec<Class>>,
    store: &'a dyn Storelike,
    commit: CommitBuilder,
}

This enables a more convenient API, so we can have:
resource.set_prop("prop", "val")

instead of requiring the store in every single call:
resource.set_prop(store, "prop", "val")

Since our Store is a trait, it's size is not known at compile time. From what I understand, this means that in methods on the Storelike trait where we create Resources, we need to explicitly state that the Store (Self) is Sized:
fn create_agent(&self, name: &str) -> AtomicResult<(String, String)>
    where
        Self: std::marker::Sized,
    {
        let mut agent = Resource::new_instance(urls::AGENT, self)?;
        Ok(())
    }

This where clause is now needed in all functions that create resources, and I feel like that is wrong, although I can't say for sure that it is.
I thought it might make sense to require Sized in the Storelike trait, like this: pub trait Storelike: Sized, and although that removes the need for the where clauses, it introduces another problem. In every signature where a reference to the store is made:
impl Collection {
    /// Constructs a Collection, which is a paginated list of items with some sorting applied.
    pub fn new(
        store: &dyn Storelike,
        collection_builder: crate::collections::CollectionBuilder,
    )

...this error appears:
the trait `storelike::Storelike` cannot be made into an object
the trait `storelike::Storelike` cannot be made into an objectrustc(E0038)
storelike.rs(47, 22): ...because it requires `Self: Sized`

Also, with the current approach, I can't call self.store.commit from a Resource:
the `commit` method cannot be invoked on a trait objectrustc
storelike.rs(76, 15): this has a `Sized` requirement

I've posted this question to StackOverlfow. https://stackoverflow.com/questions/64975080/invoking-a-method-on-a-trait-object

This issue is just the worst... It keeps coming back in all kinds of situations - the sized constraints on the many Storelike methods severely limit where I can call them.
I see no other option than to drastically change the Resource API, and remove the reference to Storelike from Resource. This means that most of the Resource methods will now explicitly require.

I've tried changing the Resource API, remove the Store reference, but that didn't fix all instances of this issue. The issue happens whenever I call a method that uses Storelike as an argument.
For example, when creating a new Collection::new, Storelike.tpf() is called. This means that Collection::new needs to be compiled for different sizes of Storelike structs. And for this to work, Storelike needs to be sized.
With the refactor I suggested above, I explicitly pass Store to many Resource methods. The result, unfortunately, is that now all the Storelike methods that call Resource methods that use Storelike (self) need to be sized.... E.g. resource.get_shortname(&item, self) is called in Storelike.get_path, which means that now get_path needs a where self is Sized thing.

Just tried adding :Sized to the trait, and replacing all dyn Storelike with impl Storelike... And so far, it seems to work!

However, when I try to do this while keeping a reference to Storelike in Resource, things fall apart again:
pub struct Resource<'a> {
    propvals: PropVals,
    subject: String,
    classes: Option<Vec<Class>>,
    // `impl Trait` not allowed outside of function and inherent method return types rustcE0562
    store: &'a impl Storelike,
    commit: CommitBuilder,
}

One possible solution to this, was to use Generics. Just tried that, but I also fail to get that working. #8afb90ea0b4e6e3f04939698a6b06e6b7cd11daa

I kind of fixed it, but it still doesn't feel right. I set a :Sized bound for the entire Storelike trait, which also means that I can't keep a reference to it  in other structs, such as Resource. This caused me to refactor quite a bit, and the API got a little worse because of it. Adjusting a resource (e.g. setting a property) now requires explicitly passing the store. Some might prefer it, though, and it does enable multi-store workflows / passing resources from store to store.
Anyway - I can now do all the things i needed to do. Use impl Storelike instead of dyn Storelike if you want to stay out of trouble. Closing.

I kind of fixed it, but it still doesn't feel right. I set a :Sized bound for the entire Storelike trait, which also means that I can't keep a reference to it  in other structs, such as Resource. This caused me to refactor quite a bit, and the API got a little worse because of it. Adjusting a resource (e.g. setting a property) now requires explicitly passing the store. Some might prefer it, though, and it does enable multi-store workflows / passing resources from store to store.
Anyway - I can now do all the things i needed to do. Use impl Storelike instead of dyn Storelike if you want to stay out of trouble. Closing.

Well, it turns out setting :Sized also comes with some serious limitations. I'm working on a plugin #73 system, which includes structs that contain functions that refer to Storelike. And that's a problem, because Storelike is sized, and that means I can't use &impl Storelike in that function.
I think there are two solutions to this:

Get rid of one of the implementations (which will be the in-memory one)
Move all the error-causing logic from the trait. Might involve some code duplication, but I get to keep both implementations.


Deprecate body-parser and use express.json() instead

Describe the error/difficulties:

body-parser is deprecated, use express.json() middleware instead.

What it supports to do?

Deprecate body-parser and use express.json() instead

Can I work on this issue?
@amazingandyyy

@amazingandyyy by body-parser is deprecated it means that the body-parser contructor is deprecated
that is: app.use(bodyParser()) is deprecated now
But we now need to call these 2 methods separately:
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
If you get a warning related to urlEncoding, you need to do:
app.use(bodyParser.urlencoded({
extended: true
}));

Thanks to @AMJasser this issue is now resolved!

@shikhar13012001  sorry I just see your message, let me know what else you want to contribute!

@archit2216 thanks for the details!


added check to see if component exists or not

What is the purpose of this change? What does it change?
Added a check for component existing before starting the watch loop
Was the change discussed in an issue?
fixes https://github.com/openshift/odo/issues/1560

How to test changes?

odo create nodejs
odo watch # this should fail now

npm init --yes # because I am lazy
odo push
odo watch # this should pass now

/approve

/lgtm

/hold cancel


UI-Form: Allow msg.enable

Description
Several changes to UI-Form:

Allow ui-form to accept the control message msg.enabled
Prevent widget to forward a input message to output
Validate fields (to enable submit button) when pre-loading the form values via msg.payload, #1069
Change trigger for validation from blur to input to prevent double click for validation to occur, #935
Send all form properties in msg.payload message, if after a clear the user did not interact with some field it would not be sent
Make sure that fields switch and checkbox are sent as values true or false
If field is type number send value as Number or null if no number present (same behaviour as DB1), #342

Related Issue(s)
Fix #1069
Fix #935
Fix #342
Checklist

[ ] I have read the contribution guidelines
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

[ ] Upgrade instructions
[ ] Configuration details
[ ] Concepts

[ ] Changes flowforge.yml?

[ ] Issue/PR raised on FlowFuse/helm to update ConfigMap Template
[ ] Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production

Labels

[ ] Includes a DB migration? -> add the area:migration label

Just my own checklist for testing functionality:

[x] Allow ui-form to accept the control message msg.enabled
[ ] Prevent widget to forward a input message to output
[ ] Validate fields (to enable submit button) when pre-loading the form values via msg.payload, https://github.com/FlowFuse/node-red-dashboard/issues/1069
[ ] Change trigger for validation from blur to input to prevent double click for validation to occur, https://github.com/FlowFuse/node-red-dashboard/issues/935
[ ] Send all form properties in msg.payload message, if after a clear the user did not interact with some field it would not be sent
[ ] Make sure that fields switch and checkbox are sent as values true or false
[ ] If field is type number send value as Number or null if no number present (same behaviour as DB1), https://github.com/FlowFuse/node-red-dashboard/issues/342

@arturv2000 did you see #343?

@colinl Sorry, i missed it.
When you say

Edit the form and change the label/name of one of the fields and exercise it.

Is this, editing the ui-form in the config windows on node-red editor, changing fields name/label and deploying again?
I can give it a look, worst case can be a PR after this one.

Is this, editing the ui-form in the config windows on node-red editor, changing fields name/label and deploying again?

Yes.  I don't think it is a particularly critical bug, I just noticed it as I was configuring things.

Just tried that, and don't see anything strange even in main branch, if possible can you confirm that it still happens? It may have been solved by some other PR not directly related...

Ok, can see the issue if instead of doing "Full" deploy, only made a "modified flows" or "modified nodes".
May attempt tomorrow to take a look, but it seems that is something more internal to node-red / dashboard workings that it becomes a little outside my capabilities

There is plenty of good stuff in this PR already, if you do attempt #343, please do it as a new PR, so that it doesn't block this PR being merged

I have found what is happening, and it is fixable on vue side, not necessarily related to node-red.
The same thing happens if we load a new form elements via msg.ui_update.options the old key values will be present until a page refresh.
I can create a new PR after this one is merged.


eBL template following BIMCO 1.0 guidelines

This PR introduces a new TradeTrust eBL template, built by Docklab (with credits to my colleagues and co-contributors to this template: @jorikpaul, @Tim-W) that follows the guidelines of the BIMCO eBL version 1.0 standard. You can learn more about the BIMCO eBL standard here.
The BIMCO standard provides a flexible framework, allowing for some variation in interpretation. At Docklab, we've tailored our implementation to align with these guidelines, ensuring that this template is both practical and compliant.
It's important to note that we didn't include any BIMCO logo's in our template, as there's no official affiliation between Docklab and BIMCO. To maintain clarity and avoid any misconceptions, we've populated the template with neutral sample data.
Example

We are eager to receive any feedback on this pull request and are open to collaborating to ensure it aligns well with the tech standards currently in use in the generic-template repository. :smile:

Thanks for the template! I see that the signedBy is a text field whereby should it be a digital signature? We can input that as a .png image if needed. Would that be more align to the standards? And you could reference our existing eBL for how we add the signature in the template.

Valid point, this is the offical BIMCO guideline for the signedBy field:
- Field where the responsible person (Carriers agent) issuing the original bill of lading signs.
- Carrier signature (digital or physical, printed signature)

Docklab's implementation allows for tracing the signature on a Bill of Lading back to its blockchain origin, ensuring consistent verification via the digital public/private key mechanism. I've updated the signedBy field using the existing randomSignature field to align better with other TradeTrust templates: https://github.com/TradeTrust/generic-templates/pull/97/commits/9d27f8828dc7817d28f75e041bbbb6454a74e36f
Thank for checking the PR! 😄  @isaackps

hi @marlowl, can you run this command npx prettier --write . and pull the recent commit from master
apart from that the pr should be good to go

@osslgtm 👍🏻

@marlowl i think there are a few integration test cases that failed, could you look into it before merging in? thanks!

@marlowl i think there are a few integration test cases that failed, could you look into it before merging in? thanks!

The failing test did probably get triggered by another template, see this.
Successful test action re-run can be found here.

@osslgtm @isaackps thanks for the reviews and quick responses! 😄


macOS Mojave: code command line generate duplicate "recently opened" icons in dock

Issue Type: Bug
$ code
$ code
$ code

VS Code version: Code 1.28.0 (431ef9da3cf88a7e164f9d33bf62695e07c6c2a9, 2018-10-04T16:40:40.180Z)
OS version: Darwin x64 18.0.0 (10.14)

This sounds like a OS issue to me and not something VSCode could produce. I have not seen this.
@fourcels does it make a difference if you run "code" from the command line?

Just throwing my hat in to say I'm experiencing this too - every time when running code from the command line. It seems that Mojave treats this invocation as a new application instead of recognizing it as already being in the dock. I believe this could be an issue in the code shell script as opening other applications from the command line does not cause this behavior.

If someone has ideas...

Looked into this a bit deeper. Calling the executable of any application from the terminal while that application is already running will result in the observed behavior, even for stock macOS apps. The solution would seem to be to rewrite code.sh so that it opens VSCode without calling the application executable or hope it gets patched in a future macOS version.
The former should be possible as Sublime Text's similar subl command does not exhibit the behavior.

Just to add some additional information since I was curious about this one.
With the Mojave 10.14.1 beta release I am not having this problem. I tried a few different things with the Code insider build, 1.29.0-insider.

With a VS Code window that was invoked from the dock

Tried running code-insiders from my home directory
Tried running code-insiders filename
Tried running  code-insiders .

With no VS Code windows already running

Tried running code-insiders from my home directory
Tried running code-insiders filename
Tried running  code-insiders .

None of these scenarios resulted in a duplicate icon showing up in the dock.

@fourcels please try with 10.14.1 and let us know if it still reproduces

@bpasero I will try when 10.14.1 release

Thanks

@bpasero I have tried on 10.14.1, it still reproduces
Below script save as code command,  work fine for me
#!/usr/bin/env bash

open -b com.microsoft.VSCode "$@"

@joaomoreno ⬆

@fourcels That's good, but you lose most command line powers (--install-extension, for example).
Really no idea why this duplicate icon happens. :thinking:

According to #62536, a temporary solution is this (for quick reference):

Ah, MacOS Mojave has started adding "Recent Applications" to the dock.  Here's an article that shows how you can turn off that

I'm experiencing the same problem here and can confirm that it only seems to happen with Visual Studio Code on my system (Sublime Text with subl is fine).
Some interesting discoveries:
Just running this command alone reproduces the problem:
ELECTRON_RUN_AS_NODE=1 "/Applications/Visual Studio Code.app/Contents/MacOS/Electron" "/Applications/Visual Studio Code.app/Contents/Resources/app/out/cli.js"```

Further to this, the issue ONLY occurs if Visual Studio Code is already running.

Maybe Atom has the same issue when running a command with output? But maybe not... Maybe it only happens when you create a "window" even if you don't make it visible (Which VS Code does)... Those are only guesses though, and it remains to be investigated.

I found this page because I'm having the same issue with atom on Mojave.
I installed it using Brew, but I've checked the shell script on my system, and those lines are the same as the one you linked.
Whatever's going on in the atom shell script does not solve the issue. It seems like it is a Mojave issue, but maybe we can work around it by adjusting the options passed to open.

I can confirm the problem with a fresh instal of Mojave 10.14.3. This only happens when starting code from terminal, and if that option is activated (if it's not, macOS does not add recent apps at the right of the dock so it's not a problem of course):

All the information pointing to "Show recent applications in Dock" being the issue seems to be very wrong to me. I do not, and never have, liked having that checked. Even without it, it still dupes up the VSCode icon on my dock when I type code . in the terminal. I can git a temporary fix by using "alt-click, options, Remove from Dock" on the original icon, and then "alt-click, options, Keep in Dock" on the new one. That will stay fixed for awhile, but it will eventually revert back to duping. I'm on Mojave 10.14.4.

Just as a point of contrast, Atom does not share this problem. When running atom . from a terminal window, this is the script that executes. Atom appears to be doing a lot more than VSCode to set itself up, but I suspect at the end of the day the open command is what makes the difference.

macos Mojave 10.4.14 still exhibits this behavior.

Anyone reach a fix here? Seeing similar issue on one computer, but not the other. Very strange

Just to add to this issue, it also happens when using debugger tools with links to the codebase that open vsCode (such as chrome debugger).
-The unexpected behavior only happens when vsCode is already running.
-When the application is not running and already in the dock vsCode opens as expected.
-When using finder or the dock to open a file and a new window is caused to be opened everything behaves as expected (ie no temporary icon described bellow).
Turning off recent applications does seem to solve multiple copies staying in the dock, however (Mojave 10.14.5 & vsCode 1.36.1) still tries to put a new icon on the end of the dock before the "running app indicator" collapses into the already docked (and running) icon, then the dock removes the "no longer active" icon.
This behavior appears to be the same behavior as when the recent applications in dock option is checked, therefore I'm not sure that it is directly related to the Mojave feature directly as not all ways to open vsCode trigger the behavior and no other apps i personally open from the terminal behave this way.

tl/dr: Only while vsCode is already running, opening vsCode from terminal (mac or integrated) and developer tool codebase links (tested on chrome) trigger the issue. Opening files from finder and dock does not trigger this issue

Also seeing this behavior in macOS Catalina (10.15 Beta)

mac mojava 1.14.5
Same problem here.

Has anyone found any updated answers to this problem?

^^ I've been wondering about this too!

+1

Same problem on macOS Catalina 10.15

+1 on macOS Mojave 10.14.6

+1

+1

This issue appears to happen on macOS whenever multiple instances of an application are spawned via the command line instead of through LaunchServices (e.g. open or NSWorkspace). On macOS, one does not normally spawn applications directly, which is why it's not surprising that only VSCode is running into this issue in practice. For some reason it does not seem to be perfectly reproducible with VSCode, but I'm not sure why.
For instance, with sublime text:
$ "/Applications/Sublime Text.app/Contents/MacOS/Sublime Text"
then in a separate shell:
$ "/Applications/Sublime Text.app/Contents/MacOS/Sublime Text"
will show 2 versions of Sublime Text in the dock.
Interestingly enough Chrome works around this behavior:
$ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
then in a separate shell:
$ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"`
Opening in existing browser session.

Chrome is smart enough to realize that it is already open and reuse existing app. For a split second though, Chrome does appear in the Recent area of the dock but disappears because it closes itself. Does VSCode implement similar behavior? Perhaps sometimes this behavior fails which triggers new instances of the app to run?
The VSCode CLI is quite complicated though, I'm not sure how easy it would be to port it to use the LaunchServices API, NSWorkspace API (which are for some reason deprecated but should still work - it's what open uses under the hood), or even open itself.
FWIW the open command appears to respect env vars:
$ export TEST_ENV="Testing for Visual Studio Code" && open -a /Applications/Visual\ Studio\ Code.app
$ ps aux -E | grep /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron
and you'll see  TEST_ENV=Testing for Visual Studio Code in the list of environment variables. I'm not sure how well this behaves if an instance of Visual Studio Code is already running though although open does have a -n option to force a new instance to open.

Also note that if you launch 2 separate sublime text instances via:
$ open -n -a /Applications/Sublime\ Text.app
then Sublime Text will appear twice in the Recents section of the dock. While this may be a bug in macOS, it suggests that when this happens for VSCode there are multiple VSCode processes running. @bpasero thoughts?

Figured out how to reproduce this: make sure all instances of VSCode are removed from the dock's recent section and then just run code from the command line multiple times. The subsequent code launches will trigger a new VSCode icon in the dock which immediately deactivates (no dot underneath), meaning that the processes ends.
I'm not sure why this sometimes is not an issue though.

The question remains. What's macOS logic for associating icons in the recents dock section to the app? It doesn't seem to be documented and it is hard to figure out how to fix it without that.

I can reproduce (which I expected given reports). Here is what happens on startup of a second instance:

we do not use the open command (yes this may be the root issue)
we run Electron with RUN_AS_NODE to invoke our CLI script
we eventually start a second instance of VSCode
we try to connect on a socket to see if another instance is running
if it does, we immediately hide the dock icon:
https://github.com/microsoft/vscode/blob/bacf3ba1630fab98c8b166dd99dbf629813af479/src/vs/code/electron-main/main.ts#L218
we terminate after passing over the CLI arguments to the first instance

Now interestingly I cannot reproduce, neither when I run the same code "out of sources" nor when I build VSCode locally (the OSS flavour via gulp vscode-darwin).
I wonder if there is something our build machine does to the application bundle that I am not doing locally that may cause this. Also, we use a Microsoft flavour of Electron build, but not sure if that would make any difference.

@bpasero Thanks for reproducing! It may be useful and worth noting (just in case it's buried from above) that Atom doesn't have the same problem and is also based on Electron (https://github.com/atom/atom/blob/ba3d63bc8546765eeeeb2be7ff93b89e274474e8/atom.sh#L141-L151). I submitted a (hacky) version to demonstrate how this could work with no - arguments specified that was using locally (until the - stuff became too annoying): https://github.com/microsoft/vscode/pull/72056. Happy to help with this any more however I can.

we do not use the open command (yes this may be the root issue)

TL;DR: yes, I think this is the case as if you use this there's no duplicates.

Still, I cannot reproduce with our OSS flavour of build where we also do not use open command. So I really want to understand the difference...

Still, I cannot reproduce with our OSS flavour of build where we also do not use open command. So I really want to understand the difference...

@bpasero Is that downloadable from somewhere?

I can reproduce (which I expected given reports). Here is what happens on startup of a second instance:

we do not use the open command (yes this may be the root issue)
we run Electron with ELECTRON_RUN_AS_NODE to invoke our CLI script
we eventually start a second instance of VSCode
we try to connect on a socket to see if another instance is running
if it does, we immediately hide the dock icon (this does not seem to help for the recent entries):
https://github.com/microsoft/vscode/blob/bacf3ba1630fab98c8b166dd99dbf629813af479/src/vs/code/electron-main/main.ts#L218
we terminate after passing over the CLI arguments to the first instance

Now interestingly I cannot reproduce, neither when I run the same code "out of sources" nor when I build VSCode locally (the OSS flavour via gulp vscode-darwin).
I wonder if there is something our build machine does to the application bundle that I am not doing locally that may cause this. Also, we use a Microsoft flavour of Electron build, but not sure if that would make any difference.

Can you build your own version of VSCode on your build servers? Maybe try adding logs around the app.dock.hide(); call and potentially call app.dock.isVisible(); although I'm not sure if that will recognize the recents section.
Besides code differences I'm not sure what else could cause this? Minifying? Code signing perhaps?

@bpasero Thanks for reproducing! It may be useful and worth noting (just in case it's buried from above) that Atom doesn't have the same problem and is also based on Electron (https://github.com/atom/atom/blob/ba3d63bc8546765eeeeb2be7ff93b89e274474e8/atom.sh#L141-L151). I submitted a (hacky) version to demonstrate how this could work with no - arguments specified that was using locally (until the - stuff became too annoying): #72056. Happy to help with this any more however I can.

we do not use the open command (yes this may be the root issue)

TL;DR: yes, I think this is the case as if you use this there's no duplicates.

See my comments above, using open is not required. Using open will work since by default it only launches one process, but from my comments you can launch Chrome manually via the command line and it will close itself to merge with the already running instance just like VSCode is trying to do.

I have uploaded "Code - OSS.app" to try to reproduce here: https://1drv.ms/u/s!AlosdmnPnzYbolsXqv_cEEjjMrUV?e=Wi1agg
Yes, ideally I want to solve this without having to use the open command. app.dock.hide() does not seem to have any impact on the "Recently opened" list I think.

This is the visual behaviour when running ./Code - OSS.app/Contents/MacOS/Electron while Code OSS is already running. That is what I would expect, given that we hide the dock.
For code proper (and insiders) I do not even see this icon appearing and disappearing?

I do sometimes have difficulty reproducing this with Visual Studio Code though - I'm not sure what's breaking. If you're still able to reproduce this, does it still happen after restarting the Dock process?
e.g. killall Dock
It might be best to file a radar/feedback ticket against Apple for this

@DavidGoldman I can reproduce everytime (I am on macOS 10.14.6). There seems to be a maximum of 3 recent apps allowed, but each time I run code-insiders from the command line a new entry shows up for me.

I have uploaded "Code - OSS.app" to try to reproduce here: https://1drv.ms/u/s!AlosdmnPnzYbolsXqv_cEEjjMrUV?e=Wi1agg

@bpasero using this build I cannot reproduce this bug. When using ~/Downloads/VSCode-darwin/Code\ -\ OSS.app/Contents/Resources/app/bin/code . to open the current directory in multiple directories I see the icon appear in the "recent apps" section of the dock and then immediately disappear. In comparison, code . appears in recent apps with the dot indicating it's running, the dot disappears and the icon sticks around. If I remove all icons from recent apps I get a new entry added every time I run code ..

Code signing perhaps?

This smells like it could be related.

If you're still able to reproduce this, does it still happen after restarting the Dock process? e.g. killall Dock

@DavidGoldman For completeness: yes, if I do that I see exactly the same behaviour on macOS 10.15.1 Catalina (and previously saw the same on 10.14 Mojave).

It might be best to file a radar/feedback ticket against Apple for this

With my Homebrew maintainer hat on: this is probably not a bad idea but also unlikely to see a timely (or any) resolution from Apple on an issue like this.

@MikeMcQuaid for me it reproduces with Code (proper) even when I run something like:
/Applications/Visual\ Studio\ Code\ -\ Insiders.app/Contents/MacOS/Electron
I wonder if in that case any signing is respected.

Something I don't understand, the icon seems different to me for the subsequent entries:

Anyone else seeing that?

@bpasero I'm pretty sure that's just an optical illusion. Change your background to a non-gradient and try it again

macOS Catalina (Version 10.15)

I'm still getting this with Catalina 10.15.2
Am I alone? :)

I am facing the same problem.
Is anybody working on fixing this issue?
On Sun, Dec 15, 2019 at 10:34 PM Tautvydas Derzinskas <
<EMAIL_ADDRESS>wrote:

I'm still getting this with Catalina 10.15.2
Am I alone? :)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/60579?email_source=notifications&email_token=AIGSC5WJP2MUZQF7LMADLRLQYZPRBA5CNFSM4F22TGU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG45OII#issuecomment-565827361,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIGSC5SZW5XFD5NOZHKDPDLQYZPRBANCNFSM4F22TGUQ
.

--
Thanks & Regards
Vipul Aggarwal
+91<PHONE_NUMBER>
<EMAIL_ADDRESS>

Having those multiple VS Code icons showing up in recents is helpful and we can easily switch between different opened workspaces.
It does not show the name of the workspace in the title or the active opened file, that way at-least we can distinguish between different VS Code instances.

I did a slightly modified version of this workaround - because it doesn't seem to work if you try to call code on a nonexistent file (in order to create said file and edit it) -
code() {
    if [ ! -e "$@" ]
    then
        touch "$@"
    fi
    open -b com.microsoft.VSCode "$@"
}

I have another workaround that would allow you to pipe content to code. Note that this would not able open a nonexistent file.
code() {
    if [ -t 1 ] && [ -t 0 ]; then
        open -a Visual\ Studio\ Code.app "$@"
    else
        open -a Visual\ Studio\ Code.app -f
    fi
}

I can no longer reproduce this issue with VS Code 1.50 or 1.51 (Insiders) on macOS Catalina 10.15.7.
When starting VS Code from the command line, another icon appears in the Dock for 0.3 seconds and then disappears.

Are others seeing different behavior?

This issue is about seeing multiple Code icons in the recent portion of the dock:

Only reproduces when you enable this setting:

Oh, I see. Yes, that issue still exists.

This issue appears to be fixed in Big Sur

Yes, I can confirm that this is fixed in macOS Big Sur.

Yes, I can confirm that this is fixed in macOS Big Sur.

This issue still exists:

@yiminghe It works for me:

What are you exact steps?

Can also reproduce on Big Sur. Reproduction steps:

remove VSCode icon from taskbar
quit VSCode
run code . in the Terminal
run code . in the Terminal again
see two VSCode icons in the Terminal instead of one.

aha, I see - this problem occurs only if VS Code is launched from the command line.

https://github.com/microsoft/vscode/issues/102975 tracks the issue to port vscode cli to use open (using launchservices), there are quite some edge cases that open doesn't support due to complexity of vscode cli options, another option is to use chrome's mechanism of launching a second instance https://www.electronjs.org/docs/api/app#event-second-instance but that again doesn't provide all the capabilities the current cli option needs. Either way this issue will certainly be fixed once we tackle the other issue.

Since i have install python 3.8.6, i try to modify /usr/local/bin/code script
from
***
function realpath() { python -c "import os,sys; print(os.path.realpath(sys.argv[1]))" "$0"; }
***

to
function realpath() { python3 -c "import os,sys; print(os.path.realpath(sys.argv[1]))" "$0"; }

It solved for me😀
But i don't know why😅

For me it's not only multiple icons in recent apps but also in the app switcher (the cmd-tab one) which is a more serious issue IMO.
My report https://github.com/microsoft/vscode/issues/112782 was closed as dup, but since it wasn't specified which other issue was the original I assume it is this one.
Now, if that's the case, then please generalize the title to include this other problem. And if not, please let me know which issue is tracking the problem with the app switcher.

Yes, I can confirm that this is fixed in macOS Big Sur.

No, Big Sur 11.1: multiple icons in recent area and in task switcher.

alias code='open -b com.microsoft.VSCode "$@"'

This workaround doesn't work with the --wait option, nor does adding the -W flag to open.

Still seeing this on macOS 11.1 ARM, with the code CLI command.

Still seeing this on macOS 11.1 ARM, with the code CLI command.

This issue is still reproducible on mac Os Big Sur Version 11.2.3

Bumping this again on MacOS Big Sur; very irritating

I'm seeing this on Mojave (yes I'll update to Big Sur soon). I have disabled the "recent applications" area of my Dock so I only see it in the main area, which is for saved and running applications. It is triggered by running code --wait, e.g. for interactive git operations.

@r-owen thank you! Since upgrading to Big Sur this has been a huge pain.
was having the same problem w/ the following config:
    // use vscode if using a vscode terminal so vim can stay the default when working in iTerm
    "terminal.integrated.env.osx": {
        "GIT_EDITOR": "code -rw"
    },

disabling "recent applications" in Dock & Menu Bar settings prevents from the icons persisting, but I still get 2 different vscode icons while editing my commit message, but at least it disappears once the file has been closed.

$ code -v
1.55.2
3c4e3df9e89829dce27b7b5c24508306b151f30d
x64

$ sw_vers
ProductName:    macOS
ProductVersion: 11.2.3
BuildVersion:   20D91

Can confirm adding alias code='open -b com.microsoft.VSCode "$@"'
in .bashrc and reload terminal will work on Big Sur.
Code . will no longer brings up multiple icon
Not sure about Mojave

Thank you!
And for zsh, alias code='open -b com.microsoft.VSCode "$@"' do not work, while alias code='open -b com.microsoft.VSCode' worked for me.

Can confirm adding alias code='open -b com.microsoft.VSCode "$@"'
in .bashrc and reload terminal will work on Big Sur.
Code . will no longer brings up multiple icon
Not sure about Mojave

This worked for me as well!!! Thanks

alias code="open -b com.microsoft.VSCode" works for me too in zsh.
If you use Visual Studio Code Insiders, use this instead: alias code="open -b com.microsoft.VSCodeInsiders"


Where did CommonHelper.getResource(string fiePath) go?

I'm working on migrating an older version of pac4j (v1.9) up to 4.0, and we are using the call to CommonHelper.getResource() to fetch a keystore.  However, this function no longer exists in CommonHelper, and I can't determine from the git history exactly when it was removed, and where it was moved to.
Can anyone direct me to it, and could the documentation be updated to explain the change in API?

Found out how the API had changed to use spring resources. Instead of the 1.9 approach were you getResource, you can pass in the literal path to the configuration, and it will be resolved by the correct resource loader automatically.


Re-enable ARM Windows builds in release pipeline

See: https://github.com/astral-sh/puffin/actions/runs/7673412766 (failure to build libgit2).
See: https://github.com/astral-sh/puffin/actions/runs/7673603363 (failure to build libgit2, even after enabling vendoring).

@konstin This is because cargo-xwin does not keep debug libs by default, you can pass --xwin-include-debug-libs to keep them.

Thank you, release mode indeed works!

Any plans here? Did it just need to be built in release mode? Windows ARM is another platform cibuildwheel supports. I also have a Windows ARM dev box that I'd like to be able to use uv on. :)

The trampolines are committed and ready. Last time we were investigating arm windows we were told that not even microsoft themselves properly support it, so we just haven't made CI builds for a priority.

If you guys would be helped at all by someone testing or compiling on a Windows ARM machine, I have one and am happy to help!

So with the advent of the Snapdragon X chips, we're seeing Windows ARM machines become more commonplace. Older ARM chips were pretty lame, but they're dramatically improving, and dev ecosystem support is too. I have one team member who uses Windows ARM as their personal dev machine.

If someone wants to put some effort into getting an ARM build working I'm all for it. I think we could start with something low impact like the #8269 build then move to distributing releases as a secondary goal.


make protocol option really optional

Hey
I added a check that the user actually passed a protocol before validation it.

Thanks a lot for the pull request. Just merged it :+1:

Thanks :)
On Jul 11, 2015 23:24, "Gilly Barr"<EMAIL_ADDRESS>wrote:

Thanks a lot for the pull request. Just merged it [image: :+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/logshero/logzio-nodejs/pull/1#issuecomment-120658617.


What's the best way to execute brew install + brew add and brew uninstall + brew drop together?

Hi,
Looking to create a setup in which I can leverage one command and execute both install + add and another command to execute uninstall + drop together?
What's the best way to accomplish this?

Perfect timing! I actually have an unpushed setup for this very thing that I've been testing for months now. I'll tidy it up and push the feature soon. The current (as of now unpublished) syntax is brew add -U and brew drop -U, with -U being short for --update. I've been thinking about renaming the option to --sync, however (I love to hear your thoughts).

Perfect timing! I actually have an unpushed setup for this very thing that I've been testing for months now. I'll tidy it up and push the feature soon. The current (as of now unpublished) syntax is brew add -U and brew drop -U, with -U being short for --update. I've been thinking about renaming the option to --sync, however (I would love to hear your thoughts).

Love it! I appreciate the work. Thank you.


build script for web can not find the alias package

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'hybrid-icon' in '/home/boonprakit/MyProject/React/chatbot-mobile/src/messages/Vote'

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build-web: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build-web script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/boonprakit/.npm/_logs/2019-05-19T16_50_54_265Z-debug.log

@smnodame Can you tell me the steps needed to recreate this bug? Or possibly a sample repository that has this bug?


aks: Temporarily disable Hubble Relay

Disable flow validation until #2642 is fixed.

✅ success: https://github.com/cilium/cilium-cli/actions/runs/9688432959/job/26734988229?pr=2643
marking it ready for review


Question-How to send Value per Locale and Value per Channel both yes values

How to send Value per Locale and Value per Channel both yes values

resolved


failed to start backend process

Although I had tested wslbridge from the login-mode branch before,
it does not seem to be working now:
C:\cygwin\home\towo\mintty\wsltty\bin>wslbridge
wslbridge error: failed to start backend process
note: backend error output: /bin/bash: - : invalid option

This works for me.


3D SparseTensor matrix multiplication with 2D Tensor :InvalidArgumentError: Tensor 'a_shape' must have 2 elements [Op:SparseTensorDenseMatMul]

System information

TensorFlow version 2.4:

Trying to do a 3D SparseTensor matrix multiplication with 2D Tensor. Here is a toy example:
import tensorflow as tf
import numpy as np

a = np.array([[[1., 0., 2., 0.],
              [3., 0., 0., 4.]]])
b = (np.array([1., 2.])[:,np.newaxis]).T

a_t = tf.constant(a)
b_t = tf.constant(b)

a_s = tf.sparse.from_dense(a_t)

tf.sparse.sparse_dense_matmul(b_t,a_s)

expected result(1, 1, 4):
[[[7., 0., 2., 8.]]]
but output some errors actually :
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
<ipython-input-30-2ee379f1d3e8> in <module>
----> 1 tf.sparse.sparse_dense_matmul(b_t,a_s)

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/ops/sparse_ops.py in sparse_tensor_dense_matmul(sp_a, b, adjoint_a, adjoint_b, name)
   2564       return array_ops.transpose(
   2565           sparse_tensor_dense_matmul(
-> 2566               b, sp_a, adjoint_a=not adjoint_a, adjoint_b=not adjoint_b))
   2567
   2568   else:

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/ops/sparse_ops.py in sparse_tensor_dense_matmul(sp_a, b, adjoint_a, adjoint_b, name)
   2577           b=b,
   2578           adjoint_a=adjoint_a,
-> 2579           adjoint_b=adjoint_b)
   2580
   2581

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/ops/gen_sparse_ops.py in sparse_tensor_dense_mat_mul(a_indices, a_values, a_shape, b, adjoint_a, adjoint_b, name)
   3049       return _result
   3050     except _core._NotOkStatusException as e:
-> 3051       _ops.raise_from_not_ok_status(e, name)
   3052     except _core._FallbackException:
   3053       pass

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/tensorflow/python/framework/ops.py in raise_from_not_ok_status(e, name)
   6860   message = e.message + (" name: " + name if name is not None else "")
   6861   # pylint: disable=protected-access
-> 6862   six.raise_from(core._status_to_exception(e.code, message), None)
   6863   # pylint: enable=protected-access
   6864

/Users/Mine/Python/tf2_4_env/lib/python3.6/site-packages/six.py in raise_from(value, from_value)

InvalidArgumentError: Tensor 'a_shape' must have 2 elements [Op:SparseTensorDenseMatMul]

Can you please add the possiblity to do 3D SparseTensor matrix multiplication with 2D Tensor? Similar to 3D Tensor multiplication with 2D Tensor

I have the same problem. Did you find the answer?

I have the same problem. Did you find the answer?

Nope not yet...

Nope not yet...

I wonder if this problem is solved.
One can use tf.map_fn or tf.vectorized_map to iterate tf.sparse.sparse_dense_matmul() over the batch axis with 2D tensors. But not sure if that is a computationally efficient solution.

Hi @shanakap ,
I believe this issue has been resolved in recent versions. I tried running your code on Colab using TensorFlow v2.17.0, and I did not encounter any issues. Please find the gist here for your reference.
Thank you!


Truncate the toolbar text/title

Bug, feature request, or proposal:
Request for an element to truncate the toolbar text/title.
What is the expected behavior?
https://material.angularjs.org/latest/demo/toolbar
What is the current behavior?
Long text overflows to the right, pushing buttons with it.
What are the steps to reproduce?
<md-toolbar color="primary">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

  <md-toolbar-row>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    <md-icon class="example-icon">verified_user</md-icon>
  </md-toolbar-row>

  <md-toolbar-row>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

    <md-icon class="example-icon">favorite</md-icon>
    <md-icon class="example-icon">delete</md-icon>
  </md-toolbar-row>
</md-toolbar>

What is the use-case or motivation for changing an existing behavior?
Provide a default element to truncate the toolbar title.
Is there anything else we should know?
https://github.com/angular/material/issues/9026
Possible solution is create a .mat-toolbar-title on toolbar.scss:
.mat-toolbar-title {
  @mixin mat-truncate-line();
  flex: 1 1 auto;
}

I remember that there was a discussion here on GitHub about the same already.
It all comes back to the same issue origin as in https://github.com/angular/material2/issues/5212#issuecomment-311135943.
As a solution, I like the idea of having a class or attribute that developers can apply to have an ellipsis on their title.

Coming back to this, I think we should simply document how one can have a text ellipsis for toolbar contents. Providing these styles by default from within the toolbar is rather inconvenient as we cannot assume which element is pure text or not (and we do not want to hide overflow incorrectly).
We should document that the following can be used to truncate toolbar content:
.my-toolbar-title {
  text-overflow: ellipsis;
  overflow: hidden;
}

Closing this since it's more of a general css thing rather than something specific to mat-toolbar.


Add RHEL support to the python feature

This PR adds RHEL support to the python feature.
CentOS 7, RHEL/Alma/Rocky Linux 8 & 9, Mariner, and Fedora should all work. Tests for all of these are included.
Note:
Currently the python feature only supports Debian/Ubuntu-based distributions with the apt based systems, after this change those systems will continue to work as will RedHat systems. There is user visible change for systems that are not explicity supported: they will get an error message stating "Linux distro XXXX not supported."
This is instead of "odd" messages about not being able to find apt-get on unsupported systems.
resolves #829

I see the cause of the error in the "checks" and will update the submitted code to not fail.

FYI - https://github.com/devcontainers/features/issues/577 is a known issue and tests against bookworm 12 are currently failing. No pressure in fixing that, but it would be amazing if you could. ✨

Commit 4007701 should fix the previously failing checks/tests. If so, #577 would also be resolved by this PR.

Needed f20275f to finish addressing #577 for this the python feature.

Darn it I see new failures -- serves me right for only testing the previous failures. I'll get the issue resolved.

I don't see an option to run the tests, closing and opening this PR (attempt at fixing it)

I don't see an option to run the tests, closing and opening this PR (attempt at fixing it)

Didn't help 😓

Not sure if ^ needs to be fixed.

Samruddhi:
commit dad4f8d works for the base tests:

ubunto:focal
ubuntu:jammy
debian:11
debian:12
mcr.microsoft.com/devcontainers/base:debian
mcr.microsoft.com/devcontainers/base:ubunto

It should work on all the scenarios. I'm in the process of confirming that.

Looks like I need to merge in a recent  commit.
That may take a while, especially if I re-run tests on my end before pushing the result of the mrege.

Commit 13a7f30 resolves test failures and passes all tests. This should the known issues with the python feature outlined in  #577.

@samruddhikhandale
I don't understand the failure. Commit [f9f1e7f] (https://github.com/devcontainers/features/pull/830/commits/f9f1e7f71ca5cfe78c5bdc39f67cba30544c530c)
contains code, from commit [4007701] (https://github.com/devcontainers/features/pull/830/commits/4007701ab9e9eae7152c8c0ff3ef403ff84df124), that is required for Mariner and also prevents the Mariner test case from failing due to lack of a "tk-devel" RPM package in Mariner:
        # Mariner does not have tk-devel package available, RedHat ubi8 and ubi9 do not have tk-devel
        if [ ${ID} != "mariner" ] && [ ${ID} != "rhel" ]; then
            REQUIRED_PKGS="${REQUIRED_PKGS} \
                tk-devel"
        fi

However the test log shows the mariner test failing for that reason (from the 0_test-scenarios\ \(python\).txt file in the downloaded logs):
2024-02-01T21:35:10.6118401Z 17.57 Running transaction
2024-02-01T21:35:10.6119075Z 17.59 Installing/Updating: mpfr-4.1.0-2.cm2.x86_64
2024-02-01T21:35:10.6119870Z 17.61 Installing/Updating: gawk-5.1.1-1.cm2.x86_64
2024-02-01T21:35:10.6127810Z 17.76 Running yum check-update ...
2024-02-01T21:35:10.6128493Z 17.77 Loaded plugin: tdnfrepogpgcheck
2024-02-01T21:35:10.6129084Z 17.87 Package findutils is already installed.
2024-02-01T21:35:10.6129689Z 17.87 Package gnupg2 is already installed.
2024-02-01T21:35:10.6130403Z 17.87 tk-devel package not found or not installed
2024-02-01T21:35:10.6131028Z 17.87 Error(1011) : No matching packages
2024-02-01T21:35:10.6132684Z 17.88 ERROR: Feature "Python" (Unknown) failed to install! Look at the documentation at https://github.com/devcontainers/features/tree/main/src/python for help troubleshooting this error.

The most recent test run acts as if it was run based of a commit associated with this PR that was earlier than [4007701] (https://github.com/devcontainers/features/pull/830/commits/4007701ab9e9eae7152c8c0ff3ef403ff84df124).
I don't know how to get the tests to rerun. I suppose I could make an in-consequential change (add white-space somewhere) and push that change, but that doesn't seem right.
I'll follow any advice/direction you provide on this one.

I don't know how to get the tests to rerun.

I triggered a rerun for failed action runs. A bit busy now, however, will take a peek at reviewing sometime later this afternoon.

@jdputschadi Can you update https://github.com/devcontainers/features/blob/main/.github/workflows/test-pr.yaml#L7 to 👇. Let's see if it fixes it.
runs-on: devcontainer-image-builder-ubuntu

@jdputschadi Can you update https://github.com/devcontainers/features/blob/main/.github/workflows/test-pr.yaml#L7 to 👇. Let's see if it fixes it.
runs-on: devcontainer-image-builder-ubuntu

@samruddhikhandale : this line is in multiple places in the test-pr.yaml file. Do you want all of them changed?

https://github.com/devcontainers/features/blob/main/.github/workflows/test-pr.yaml#L7

Good point, let's only update for https://github.com/devcontainers/features/blob/main/.github/workflows/test-pr.yaml#L70 now.

@samruddhikhandale : Before I push a commit addressing the above notes and conversations, I have one overarching question:
Do you want the packages option from #768 included in the push (i.e. merge the change into one PR).

@samruddhikhandale : Before I push a commit addressing the above notes and conversations, I have one overarching question:
Do you want the packages option from #768 included in the push (i.e. merge the change into one PR).

I was mostly hinting at replacing toolsToInstall with packages, but I understand that it's not possible.
So feel free to include/exclude based on your convenience and confidence. This PR is already big, we can merge that into a separate one.

@samruddhikhandale : I think I've got the next push ready and it should address all your input. I'm running all tests locally to make sure they pass before executing the push.
The packages option will be left to the other PR.

Commit baf1568 addresses input from @samruddhikhandale  and passes all tests locally.

The packages option will be left to the other PR.

@jeffwilcox (Not to pressure you) Were you planning on submitting a PR? because I'd like to soon merge this new option due to https://github.com/devcontainers/images/issues/856.
If you are not planning, then let me know. Looking forward to avoid duplicate efforts, thanks!

The packages option will be left to the other PR.

@jeffwilcox (Not to pressure you) Were you planning on submitting a PR? because I'd like to soon merge this new option due to devcontainers/images#856.
If you are not planning, then let me know. Looking forward to avoid duplicate efforts, thanks!

Possibly the wrong Jeff? The "other PR" I was referring to was #768. I was indicating that I would not include the "packages" feature that Alexander was submitting in #768 and leaving that work to him.

Possibly the wrong Jeff?

Oops!

The "other PR" I was referring to was #768. I was indicating that I would not include the "packages" feature that Alexander was submitting in #768 and leaving that work to him.

Great, thanks for confirming!
Will merge this PR as soon as the tests are green.


Please explain if/how one can avoid putting too much data into a pipeline

My understanding is that whenever pipe.put(something) is executed it is put into a queue or similar.
If we only want to process the somethings by workers, without caring at all about any return value, we can use disable_result but it seems there is no limit to how much data can get put into the pipeline. If a large number of large data is put into the pipeline, will this cause problems? Is it possible the have only a certain maximum number of items waiting for processing before put(something) blocks?

You're right: when you put data on the pipeline, it's either put on a multiprocessing.Queue in case of an UnorderedStage, or sent to a multiprocessing.Pipe if using an OrderedStage. Both of those inter-process communications (IPCs) use sockets. Socket buffers are usually limited by system memory.
Each task occupies socket buffer space until it is taken off by the worker process. When you use up all the buffer space, the next put should block. And you will likely start having other out-of-memory problems, like program crashing. There is an example in the documentation that hopefully illustrates this.
Unfortunately there's no safety built into MPipe, so it's up to the user to monitor and manage how much they're feeding the pipeline.

Thank you for this answer! As far as I understand multiprocessing.Queue has a maxsize parameter, so would it not possible to use this to easily limit the maximum data that can be put into the Queue before it blocks? But unfortunately the API does not seem to allow to pass this on to when the Queue instance is created...
If the above is not possible for some reason, how exactly would it possible to actually monitor on manage how much gets fed into the pipeline? For this it would be necessary to keep track of how much has put in already versus how much has been processed. Are these numbers available easily somewhere?

Thank you so much, also for accepting this as a feature request!


[FEATURE] Add listTopics API to StreamMetadataProvider for Topic Enumeration in Streaming Connectors

Introduces a new listTopics API to the StreamMetadataProvider interface, enabling the ability to enumerate topics for streaming connectors in Apache Pinot.
Key Changes

New API in StreamMetadataProvider:

Added listTopics(Duration timeout) method to fetch the list of topics within a specified timeout period.
Introduced TopicMetadata as a representation of topic metadata, currently including the topic name but extensible for future metadata fields.

Implementation for Kafka Connectors (2.0 & 3.0)

Implemented the listTopics method in KafkaStreamMetadataProvider for both Kafka 2.0 and Kafka 3.0 plugins.
Utilized Kafka’s Consumer#listTopics() API to retrieve the topic list and mapped the results to the TopicMetadata structure.

Unit Test Coverage:

Added unit test in KafkaPartitionLevelConsumerTest to validate the listTopics functionality.

Backward Compatibility:

Default implementation of listTopics in StreamMetadataProvider throws UnsupportedOperationException to maintain backward compatibility with other connectors that do not override the method.

Future Work:

Extend TopicMetadata to include additional metadata like partition count, replication factor, or topic configurations.
Add similar support for other streaming connectors in Apache Pinot.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 0.00%. Comparing base (59551e4) to head (df2b3b4).
Report is 1460 commits behind head on master.

:exclamation:  There is a different number of reports uploaded between BASE (59551e4) and HEAD (df2b3b4). Click for more details.
HEAD has 53 uploads less than BASE

Flag
BASE (59551e4)
HEAD (df2b3b4)

integration
7
1

integration2
3
1

temurin
12
1

java-21
7
1

skip-bytebuffers-true
3
1

skip-bytebuffers-false
7
0

unittests
5
0

unittests1
2
0

java-11
5
0

unittests2
3
0

integration1
2
0

custom-integration1
2
0

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #14654       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.76%
=============================================
  Files          2436        3     -2433
  Lines        133233        6   -133227
  Branches      20636        0    -20636
=============================================
- Hits          82274        0    -82274
+ Misses        44911        6    -44905
+ Partials       6048        0     -6048

Flag
Coverage Δ

custom-integration1
?

integration
0.00% <ø> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <ø> (ø)

java-11
?

java-21
0.00% <ø> (-61.63%)
:arrow_down:

skip-bytebuffers-false
?

skip-bytebuffers-true
0.00% <ø> (-27.73%)
:arrow_down:

temurin
0.00% <ø> (-61.76%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fixed #33816 -- Fixed QuerySet.only() after select_related() crash on proxy models.

QuerySet.only() after select_related() crash on proxy models.

@ipakeev Thanks :+1: Welcome aboard :boat:


lint, cmd/openlynt: filter violations by commit range

New optional configuration in openlynt.yml: revisions
revisions:
  from: optional<string>
  to: optional<string>

If specified, violations are excluded from output if they are newer than
"from" and (optionally) older than "to".
If unspecified, no violations are filtered.
We may want to still print the old violations, but not trigger a
failure. TBD.
The tool itself is probably due for an actual well-designed refactor at
this point, I'm still kinda hacking around with things...
fixes #2

Spoke w/Joe, we're going to add a message that shows 'N violations hidden by revision filter'


Filters API :)

I had a dream where to apply filters to sound it was a simple as this:
var mySound = Sound.from('happy-days.mp3')
var filter = new PitchShiftFilter();

mySound.filters = [filter];

Done! This is in the dev branch. I added filters:

ReverbFilter
EqualizerFilter
DistortionFilter
StereoFilter

amazing man! you are flying :)


Parse Request Opts Config Option

This patch defines a new configuration property libstorage.server.parseRequestOpts. When this property is set to true, incoming POST requests will be parsed for an opts field, and key/value pairs in the opts field's map will be promoted to the request proper.
For example, the following volume creation POST request bodies are now equivalent when the above property is enabled:
Classic Request
{
    "name":      "newVolume",
    "encrypted": true
}

With Opts Request
{
    "name": "newVolume",
    "opts": {
        "encrypted": true
    }
}

Codecov Report

Merging #479 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #479   +/-   ##
=======================================
  Coverage   30.61%   30.61%
=======================================
  Files          29       29
  Lines        1777     1777
=======================================
  Hits          544      544
  Misses       1175     1175
  Partials       58       58

Impacted Files
Coverage Δ

api/types/types_config.go
0% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 621ec42...3313916. Read the comment docs.


add 0000-01-02-rafiahmadjan.md

Created Branch
Added file
Created pull request
created the description
test

Thanks

test

Closing


feat: update badge

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


08/09 14h56 - AskPlantnet - Unexpected error

08-09-2024 14:56:16.946 [info ] 🧾BlueSkyService - login botensky.bsky.social@https://bsky.social exists
08-09-2024 14:56:16.947 [info ] 🧾BlueSkyService - searchPosts {"q":"@botensky.bsky.social","sort":"latest","limit":20,"since":"2024-09-05T12:56:16.946Z","until":"2024-09-08T12:56:16.946Z"}
08-09-2024 14:56:17.501 [info ] 🧾PluginsCommonService - 🖥 AskPlantnet  👤 REDACTED IP  1 candidate(s)
08-09-2024 14:56:17.713 [error] 🧾PluginsCommonService - 🖥 AskPlantnet  👤 REDACTED IP [firstImageOf] Impossible d'identifier l'image avec AskPlantnet : Cannot read properties of undefined (reading '0')
08-09-2024 14:56:17.714 [error] 🧾ExpressServer - Error id:ERR_20240908145617 msg:unable to identify stack:undefined
08-09-2024 14:56:17.771 [info ] 🧾News 📢 - Unexpected error

AskPlantnet is trying to search parent + parent image of v1.3.0 announce (as it includes bot mention :) )
https://bsky.app/profile/boly38.bsky.social/post/3l3ndcsxfur2q

QA PROD ✅


chore: remove unused @types/jsdom from dependencies

🔗 Linked issue

❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

Context was https://github.com/nuxt/framework/pull/104 but I think not needed any more.


[GHSA-9gq7-p5w9-w899] Ankitects Anki arbitrary script execution vulnerability

Updates

Affected products

Comments
Hi there, could myself (@Jayy001) please be added to the "Credits" section? We both worked together to find this CVE.

Hi @Jayy001, we do not add Finder credits to advisories.  We can add the Analyst credit for those who contribute an update to an advisory.


Remove a redundant function call

Description
Remove a call to mbedtls_mpi_bitlen() since the returned value is
overwritten in the line after. This is redundant since da31fa137a1183d3feed5981af6d05c550a8c005.
Fixes #2377.
Status
READY
Requires Backporting
Yes
mbedtls-2.16
Migrations
NO
Todos

[ ] Tests
[ ] Documentation
[x] Changelog updated
[ ] Backported

Steps to test or reproduce
Outline the steps to test or reproduce the PR here.

Backport to mbedtls-2.16 raised in #2578

@dgreen-arm Thank you for the review!
I amended the commit with the fix, and rebased to resolve the conflicts in the ChangeLog

Removed the "needs backports"
label, as the backport to mbedtls-2.16 has been fully approved

This PR and its backport have been fully reviewed and approved.
cc @Patater

This PR has been superseded into the mbed-crypto repository, in https://github.com/ARMmbed/mbed-crypto/pull/225 , so closing


let debug use default colors

This will fix #30

Coverage remained the same at 100.0% when pulling 7bbc065cd6d269bc88ccd1a7afc22c40a450d7af on 30 into afc39217b37803f16deabbad0f8b5bcca778eecc on master.


rad app delete points to the wrong application after running rad group switch

Steps to reproduce

Make sure that you have a few groups and a few applications within those groups.
Run rad group switch other-group
Run rad app list to see the list of applications within that group
Run rad app delete to see that Radius is trying to delete the application from the other group
Please see the screenshot

Observed behavior

Desired behavior
rad app delete should point to an application that belongs to the active group
Workaround
No response
rad Version
RELEASE VERSION BICEP COMMIT
0.32.0 v0.32.0 0.32.0 https://github.com/radius-project/radius/commit/1b8bd4ad7f7a3f9d88b1275b284f7357915a914e
Operating system
MacOS, Sonoma 14.4.1, Apple Chip
Additional context
No response
Would you like to support us?

[ ] Yes, I would like to support you

AB#12057

This needs to be addressed around a design for the command behavior.


[SPARK-11698][Streaming] Add option to ignore kafka messages that are out of limit rate

JIRA: https://issues.apache.org/jira/browse/SPARK-11698
With spark.streaming.kafka.maxRatePerPartition, we can control the max rate limit. However, we can not ignore these messages out of limit. These messages will be consumed in next iteration. We have a use case that we need to ignore these messages and process latest messages in next iteration.
In other words, we simply want to consume part of messages in each iteration and ignore remaining messages that are not consumed.
We add an option for this purpose.

Merged build triggered.

Merged build started.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/45744/
Test FAILed.

Merged build finished. Test FAILed.

retest this please.

Merged build triggered.

Merged build started.

Test build #45746 has started for PR 9665 at commit d26e31b.

Test build #45746 has finished for PR 9665 at commit d26e31b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/45746/
Test PASSed.

This is a bit of breaking the semantics of current Spark Streaming. Besides why only in direct Kafka stream if this targets to a general solution.

I am not sure if this is a general solution. But you can see that the maxRatePerPartition only applies to DirectKafkaInputDStream too.

For other receiver-based stream there also has a max rate cap, so my question is that why are you only address here in direct Kafka stream?

I just tried to scan current codebase and can't find where the rate cap is actually used in other receiver-based streams. There is spark.streaming.backpressure.enabled and corresponding classes such as RateController etc., but I can only find there is a member rateController in ReceiverInputDStream. However, besides DirectKafkaInputDStream, I don't see any other InputDStreams use it.

"spark.streaming.receiver.maxRate" in RateLimiter.

I see. But where it is used? RateLimiter has getCurrentLimit to return the rate and BlockGenerator  implements RateLimiter. ReceiverSupervisorImpl has getCurrentRateLimit to call getCurrentLimit on its defaultBlockGenerator. But I don't see other classes use getCurrentRateLimit.

This seems like a very very specific niche use case. I am not sure whether this sort of a one-off option is a good idea.

@tdas Thanks for comment. I would like to close this first.


[1.3.z] Pin CLI to 3.2 stream

Pin CLI to 3.2 stream
Please check the relevant options

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Dependency update
[ ] Refactoring
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] This change requires a documentation update
[ ] This change requires execution against OCP (use run tests phrase in comment)

Checklist:

[x] Example scenarios has been updated / added
[x] Methods and classes used in PR scenarios are meaningful
[x] Commits are well encapsulated and follow the best practices

I would say JVM build - Latest Version (999-SNAPSHOT, 17) are not related to 3.2


Fixed DeletePortMapping documentation typo

Thanks.  I'm surprised the linter didn't catch that.

Thanks.  I'm surprised the linter didn't catch that.

It's because it was a method for an unexported type, which golint ignores.

It's because it was a method for an unexported type, which golint ignores.


AsyncScheduler rescues errors but doesn't log the error

https://github.com/optimizely/ruby-sdk/blob/45e7e2b87041d9fc81d047c17c5c6429a0a731e5/lib/optimizely/config_manager/async_scheduler.rb#L78-L82
It rescues the error but doesn't log any of the error details that are necessary for tracing/debugging.

Thanks for reporting! We will look into adding more details for tracing/debugging this path.

bumping comment: https://github.com/optimizely/ruby-sdk/pull/212#pullrequestreview-326232686

Closing as linked/Merged with 212 & 248 in May of 2020


RP-18 Add hybrid type for full strategy

Add hybrid type and hybrid full strategy.

Fixed by https://github.com/zwieback/relef-parser/pull/43