Add Ts check across packages

Add ts-check on each package
Add tsc check to check.yml GH workflow to prevent future type misuse

Related: #54

For vanchor package, I have tried many ways but ts-check always results in errors in<EMAIL_ADDRESS>Even when specifying to exclude the file/folder in tsconfig.json, I still get error. Tried different ways with this but still got error


unable to verify/fix my downloaded file via a commend that is supposed to be already there, supposed to be already existant

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 a bug unrelated to a specific site
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
this program is supposed to have a function that verifies that the entire file has been downloaded without corruption
also the program should be able to detect corruptions and be able to fix those corruption fragments without  redownloading the whole thing
the problem here is to fix this problem: currently a user needs to redownload the whole file and manually verify that the entire video for instance is not corrupt
and manual labor defies the purpose of automatism
and this a goddamn program not a manual video downloader so it should at least implement this core function
and why wasn't this added in the first place ?
also you don't have to implement this feature perfectly at first
first of all: you can just calculate the final size of the file output and compared with the local file output
if it doesn't match then this clearly a mismatch ( file corruption/ video lacking fragments )
which is true as all the corrupted videos I have encountered using ytp-dlp had all missing size which means they lacked in size compared to how the final output is supposed to weight in size, for example: having 500Mb of size when the output is supposed to be 1Gb

a size mismatch is proof of corruption, thus you can automatically re-download the whole thing for now
*** in the first step of the implementation: first you implement a size match protocol and in case of size mismatch you can redownload the whole thing but in the end make sure the user has the full file not a corrupt missing fragments output through the size match protocol

Disclaimer: the corrupt videos sometimes can be played but be missing huge parts and sometimes the loss might be minimal but there are many instances where you can't even play the video or only seconds can play
second :  in this second phase you will ensure when corruption is existant like in step1 instead of redownloading the whole file, you will re-download the corrupt fragments only, ensuring an efficient remediation and a total automation, and a perfect solution for damaged downloads

my log here previews an already downloaded file that wouldn't be redownloaded even if it's corrupt,
when the user figures out that the video is corrupt or missing fragments the only way to re-download is to enforce file overwrite which is a totally inefficient way but might work is the downloaded file won't get corrupted again
so essentially corruption is a recursive problem with each loop, the chances of corruption might lower but it's a complete waste of time and space in terms of complexity, imagine redownloading 20Gb many times with a slow internet, while the whole thing could be fixed with simple algorithms, even if you would argue that those algorithms are too complex for you to implement ( which I deeply doubt ), you could just follow my steps of remediation, implementing step 1 detecting corruption and " almost manually" automatically downloading the whole thing,
but assuming you are overqualified to have the skill of implementing a simple fragment verification process as the download occurs in fragments, which here seems to be way easy to implement
even if the implementation is hard, this seems very easy to resolve just by adding further processes for file/download verification, there's always a way to figure those things out, this should be really "easy" to do
even if it isn't easy, further implementation step by step,  following an incremental model of solving things out will make it very feasible
also there was a Chinese software for YouTube download which was freemium at the time  and would download the highest qualities and can be configured for quality or solely downloading audio, it was so sophisticated, even downloading videos with an internet speed faster than what my ISP allowed for free, allowing downloads with the highest quality and the lowest internet to be delivered in a record time without any freaking corruption in files, which wasn't console based and had a very decent gui, this was 10 years ago, which raised the bar for me on how programs should be delivered, so this fragmentation problem shouldn't be even a problem in the first place.
if you had been looking for YouTube video downloaders 10 years ago, and encountered a YouTube software with a Chinese name then chances you encountered this product of perfection
I shouldn't be even reporting this, you should have made this the moment you found out about corruptions, I'm pretty sure you're aware of this, especially if you've been testing this software for months
and if not then this proves you inefficient testing which really needs to buckle up
it's time to upgrade the game of yt-dlp
Provide verbose output that clearly demonstrates the problem

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

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://youtu.be/6W7w_QsPTkE?feature=shared', '--write-auto-subs']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds [914af9a0c] (win_exe)
[debug] Python 3.10.11 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1t  7 Feb 2023)
[debug] exe versions: ffmpeg N-117185-ga3ec1f8c6c-20240926 (setts), ffprobe N-117185-ga3ec1f8c6c-20240926
[debug] Optional libraries: Cryptodome-3.21.0, brotli-1.1.0, certifi-2024.08.30, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.3, sqlite3-3.40.1, urllib3-2.2.3, websockets-13.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1839 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
[debug] Downloading _update_spec from https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest/download/_update_spec
[debug] Downloading SHA2-256SUMS from https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/download/2<IP_ADDRESS>912/SHA2-256SUMS
Current version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
Current Build Hash: 65ce38501f870ff86c0e9e4e9587a88df82fdba7a5e66e43700dc1641c9c2e20
Updating to<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds ...
[debug] Downloading yt-dlp.exe from https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/download/2<IP_ADDRESS>912/yt-dlp.exe
Updated yt-dlp to<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
[debug] Restarting: C:\Users\dell\music\yt-dlp.exe -vU "https://youtu.be/6W7w_QsPTkE?feature=shared" --write-auto-subs
[debug] Command-line config: ['-vU', 'https://youtu.be/6W7w_QsPTkE?feature=shared', '--write-auto-subs']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds [d13582313] (win_exe)
[debug] Python 3.10.11 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1t  7 Feb 2023)
[debug] exe versions: ffmpeg N-117185-ga3ec1f8c6c-20240926 (setts), ffprobe N-117185-ga3ec1f8c6c-20240926
[debug] Optional libraries: Cryptodome-3.21.0, brotli-1.1.0, certifi-2024.08.30, curl_cffi-0.5.10, mutagen-1.47.0, requests-2.32.3, sqlite3-3.40.1, urllib3-2.2.3, websockets-13.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1838 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp-nightly-builds)
[youtube] Extracting URL: https://youtu.be/6W7w_QsPTkE?feature=shared
[youtube] 6W7w_QsPTkE: Downloading webpage
[youtube] 6W7w_QsPTkE: Downloading ios player API JSON
[youtube] 6W7w_QsPTkE: Downloading mweb player API JSON
[debug] Loading youtube-nsig.4e23410d from cache
[debug] [youtube] Decrypted nsig WNawR9Q6HYXaQ2EEP => ohu1Cm8skik4Bg
[debug] Loading youtube-nsig.4e23410d from cache
[debug] [youtube] Decrypted nsig ZbHLNEgntdgyXWMph => WTQq9I_uxMe_hQ
[youtube] 6W7w_QsPTkE: Downloading m3u8 information
[info] 6W7w_QsPTkE: Downloading subtitles: en
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec, channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 6W7w_QsPTkE: Downloading 1 format(s): 303+251
Deleting existing file Commoner Killed by a Noble, Seeks Revenge in a New Isekai Body! 💀⚔🌍｜ Manga Recap [6W7w_QsPTkE].en.vtt
[info] Writing video subtitles to: Commoner Killed by a Noble, Seeks Revenge in a New Isekai Body! �⚔⚔🌍｜ Manga Recap [6W7w_QsPTkE].en.vtt
[debug] Invoking http downloader on "https://www.youtube.com/api/timedtext?v=6W7w_QsPTkE&ei=L70oZ7mjN8nJi9oPvPHgiQc&caps=asr&opi=112496729&exp=xbt&xoaf=4&hl=en&ip=<IP_ADDRESS>&ipbits=0&expire=1730748319&sparams=ip%2Cipbits%2Cexpire%2Cv%2Cei%2Ccaps%2Copi%2Cexp%2Cxoaf&signature=99B97A9330DD76D06AB37827401B17E764BCBC02.935DD2FB2B5BBC11462ED17CFE39A20B589196DB&key=yt8&kind=asr&lang=en&fmt=vtt"
[debug] File locking is not supported. Proceeding without locking
[download] Destination: Commoner Killed by a Noble, Seeks Revenge in a New Isekai Body! 💀⚔🌍｜ Manga Recap [6W7w_QsPTkE].en.vtt
[download] 100% of  514.10KiB in 00:00:00 at 1.24MiB/s
[download] Commoner Killed by a Noble, Seeks Revenge in a New Isekai Body! 💀⚔🌍｜ Manga Recap [6W7w_QsPTkE].webm has already been downloaded

It's not  a technical corruption as the videos can be played
but by corruption, I mean the videos being incomplete  ( missing files )
You appear to not understand what I was trying to entail & convey, the content-length is always correct but the file size isn't complete which in case of corruption will make it impossible to fetch the video in a time where corruption appears
example : 01:20:04  as video length if corruption is audio visual  then you won't be able to browse the time where corruption starts let's say from 01:01:00  to the end you're unable to watch that part
if corruption is just video, and audio functions: 01:20:04  as video length  and  let's say from 01:01:00 we encounter  video corruption,
most likely the last image remains but no video just audio playing
re-downloading with --force-overwrites actually had always been on point
all the corrupt files when redownloaded never once appeared corrupted but I suspect that the potential for corruption isn't high enough, so the probability of corruption appearing with a re-downloaded would appear very much low
it's possible when redownloading that corruption will still be there

@NinjaZMY Please stop with the unnecessarily LOUD FORMATTING and hostile tone in your comments, or I will close and lock this issue.
Have you considered using these options?
--abort-on-unavailable-fragments
                                Abort download if a fragment is unavailable
                                (Alias: --no-skip-unavailable-fragments)

--fragment-retries RETRIES      Number of retries for a fragment (default is
                                10), or "infinite" (DASH, hlsnative and ISM)

or to debug any potential issues you may be experiencing, you could try:
--keep-fragments                Keep downloaded fragments on disk after
                                downloading is finished

I'm really sorry for the LOUD formatting.
I didn’t mean to come across as hostile, if I seemed that way. I’m just very enthusiastic about bug-fixing and problem-solving, and I care deeply about this project, the open-source community, and making yt-dlp even better.
I realize I may not be able to contribute in the way that you all do, since it could take me a while to get fully familiar with the codebase, which feels inefficient timewise. You’ve been working on this for years and probably know each instruction and line of code inside out, so trying to reverse-engineer every part myself would be a big time investment. My intention is never to disregard your expertise, and I apologize if any of my comments came across that way.
I can mainly contribute as an everyday user, testing the program and reporting any issues that users might encounter.

After testing, I tried the following command formula:
PS> .\yt-dlp -vU [Video-link-here] --write-auto-subs --abort-on-unavailable-fragments --fragment-retries "infinite" --keep-fragments

I’ve tested this on multiple videos of varying lengths.
This combination ensures the entire video downloads without corruption, which is great.
Is there a way to implement a direct command, something like --complete-download (or whatever name you think fits), so users don’t need to create custom cmd/bash/PowerShell aliases? That would feel more user-friendly.
In my view, this isn’t the complete solution I envision—it's more of a half-fix to a bigger issue. We're making progress but still have a way to go.
Ideally, it would be fantastic to have a command that detects and fixes corrupted files automatically.
Ultimately, it would be amazing to see automation that enables uncorrupted, complete downloads across all supported platforms, especially YouTube. Since YouTube provides complete fragments, if a browser can play the entire video, then theoretically, downloading the full video in one session should be feasible. This suggests full downloads could be achievable without requiring frequent aborts—maybe by expanding the app loop.
Overall, I believe that automation, full file verification, and re-downloading for corrupted files could be possible. These features could potentially be implemented, with extra algorithms or processes if necessary. I think my vision for automation, reliable downloads, and re-downloading corrupted files is possible without adding redundant steps—unless it turns out that expanding the action sequence is the only way forward.

Is there a way to implement a direct command, something like --complete-download (or whatever name you think fits), so users don’t need to create custom cmd/bash/PowerShell aliases? That would feel more user-friendly.

Isn't that exactly what --abort-on-unavailable-fragments does? I'm kinda confused to be honest

Ideally, it would be fantastic to have a command that detects and fixes corrupted files automatically.

It's not possible to accurately predict the size of fragmented videos (notice how much the progress jumps around during the download). I guess it could be possible using something like ffmpeg, although one of the maintainers would have to determine whether that's within yt-dlp's scope

Since YouTube provides complete fragments, if a browser can play the entire video, then theoretically, downloading the full video in one session should be feasible

Which video did you have the fragments issue with? It really wouldn't surprise me if that video had a corrupted format that didn't play in browsers either

This suggests full downloads could be achievable without requiring frequent aborts—maybe by expanding the app loop.

Are you saying that aborting and re-running yt-dlp is enough to fix it, but --fragment-retries isn't? That could be the case, but I don't think yt-dlp has the ability to re-run on errors (hence why --check-formats exists, but that obviously wouldn't help in this scenario). Also, I guess a limited number of retries could be beneficial, if it was possible, but it's definitely not a good idea for yt-dlp to retry stuff endlessly. Unavailable fragments are often a site issue, and endlessly retrying could lead to the user being IP banned (or have their account terminated, if they passed cookies or --username --password)


Split Panes Issue

Environment
Windows build number: 10.0.19041.0
Windows Terminal version: 1.0.1401.0

WSL with Ubuntu 20.04 installed

Steps to reproduce

Open a terminal with WSL of your choice
Split the pane with alt-shift-plus or alt-shift-minus

Expected behavior

New pane should operate with terminal of your WSL.
Actual behavior

New pane opens Windows PowerShell.
Note:
alt-shift-d creates the pane as in Expected behavior, but it splits only horizontally.

https://github.com/microsoft/terminal/issues/6666#issuecomment-649066525
/dup #6666
You can customize it however you please.


ci: Add Python 3.10 to testing in CI

CPython 3.10 is out now (:tada:) and this PR adds it to the testing matrix in the CI. The addition of the quotes on the numbers are required as YAML will view 3.10 as 3.1 if not quoted properly. :disappointed:

This PR can be reviewed now but it shouldn't be merged at the moment (2021-10-07) as NumPy does not have Python 3.10 wheels out for numpy==1.19.3 and as a result that means that h5py doesn't have Python 3.10 wheels out either given that h5py requires that version during their wheel build (following taken from the CI)
/opt/hostedtoolcache/Python/3.10.0/x64/bin/python /tmp/pip-standalone-pip-l8j_aatm/__env_pip__.zip/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-rl3z6hx0/normal --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'Cython>=0.29.15; python_version >= "3.9"' 'numpy==1.17.5; python_version == "3.8"' pkgconfig 'numpy==1.14.5; python_version == "3.7"' 'numpy==1.19.3; python_version >= "3.9"' 'Cython>=0.29.14; python_version == "3.8"' 'Cython>=0.29; python_version < "3.8"'

The CI is capable of building NumPy wheels, but it takes around 15 minutes to do so and that's not a good use of CI compute or anyone's time.
As soon as h5py releases 3.10 wheels this can get merged though (or if they change the version of NumPy used to do the build as building the rest of h5py is not that taxing)

Example of building h5py wheels for Python 3.9 in about 1min 30 seconds:
$ docker run --rm -ti python:3.9 /bin/bash
root@1b5ef0b40086:/# apt update -y && apt install -y libhdf5-serial-dev
...
root@1b5ef0b40086:/# curl -sLO https://files.pythonhosted.org/packages/7b/c5/d71a944e0637a0db5a0f779c6b757253149fec439a5cafd5fc87e277658b/h5py-3.4.0.tar.gz
root@1b5ef0b40086:/# python -m pip install --upgrade pip setuptools wheel
Requirement already satisfied: pip in /usr/local/lib/python3.9/site-packages (21.2.4)
Requirement already satisfied: setuptools in /usr/local/lib/python3.9/site-packages (57.5.0)
Collecting setuptools
  Downloading setuptools-58.2.0-py3-none-any.whl (946 kB)
     |████████████████████████████████| 946 kB 5.6 MB/s
Requirement already satisfied: wheel in /usr/local/lib/python3.9/site-packages (0.37.0)
Installing collected packages: setuptools
  Attempting uninstall: setuptools
    Found existing installation: setuptools 57.5.0
    Uninstalling setuptools-57.5.0:
      Successfully uninstalled setuptools-57.5.0
Successfully installed setuptools-58.2.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
root@1b5ef0b40086:/# #time python -m pip install ./h5py-3.4.0.tar.gz
root@1b5ef0b40086:/# pip list
Package    Version
---------- -------
pip        21.2.4
setuptools 58.2.0
wheel      0.37.0
root@1b5ef0b40086:/# time python -m pip install ./h5py-3.4.0.tar.gz
Processing /h5py-3.4.0.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Collecting numpy>=1.19.3
  Downloading numpy-1.21.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.8 MB)
     |████████████████████████████████| 15.8 MB 5.4 MB/s
Building wheels for collected packages: h5py
  Building wheel for h5py (PEP 517) ... done
  Created wheel for h5py: filename=h5py-3.4.0-cp39-cp39-linux_x86_64.whl size=6565808 sha256=668ec66bedfedeab703aae8b60a1d65e0a720d515eaf15f2937b4d21f6704746
  Stored in directory: /root/.cache/pip/wheels/d2/58/05/3af60ef28437e50233803a6fb56cb8fdc65eb8eb2c0b3ee7fa
Successfully built h5py
Installing collected packages: numpy, h5py
Successfully installed h5py-3.4.0 numpy-1.21.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

real	1m34.096s
user	1m30.165s
sys	0m3.719s
root@1b5ef0b40086:/# pip list
Package    Version
---------- -------
h5py       3.4.0
numpy      1.21.2
pip        21.2.4
setuptools 58.2.0
wheel      0.37.0
root@1b5ef0b40086:/#

Neat, ping me again when it's ready to go!

@dguest with the release of h5py v3.6.0 today there are now CPython 3.10 wheels out and this PR is ready for review. :+1:

Seems pretty non-controversial.


Missing description for array properties in Settings view

What happened?
.
Reposilite version
3.x
Relevant log output
No response

#1320


imo Draconic is a better name

Draconic is much more unique and cool imo

But i like Void....

But i like Void....

Oh ok, Ultimately it's your choice not mine


"Always on top" stays active after deactivation

Microsoft PowerToys version
0.74.1
Installation method
GitHub
Running as admin
No
Area(s) with issue?
Always on Top
Steps to reproduce

Have alway on top active for a window (in my case chrome browser)
Deactivate always on top globally in powertoys settings
Always on top stays active for the respective window (chrome)

✔ Expected Behavior
Deactivation for all windows after globally deactivating always on top
❌ Actual Behavior
Always on top stays active after global deactivation
Other Software
No response

/dup #15476


[release-1.8] Bump QPS of kube client

This is an automated cherry-pick of #28808

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-multicluster-tests_istio_release-1.8
9d4ef5e2f0aaffe72ab1610b6c967dd4bf33172c
link
/test integ-pilot-multicluster-tests_istio_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-security-k8s-tests_istio_release-1.8
9d4ef5e2f0aaffe72ab1610b6c967dd4bf33172c
link
/test integ-security-k8s-tests_istio_release-1.8

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Error: Too Many Requests

Are there any known workarounds for this build-time error?
[gatsby-source-graphcms]: Problem building GraphCMS nodes
Error: Too Many Requests

The error appears intermittently (~50%) and usually resolves after running the build again.
Running versions:
gatsby: ^4.24.4
gatsby-source-graphcms: ^2.8.0

Just experienced the same error after doing some changes on the hygraph panel & running the gatsby develop.

this is causing intermittent build failures on our CD pipeline. our current workaround is to just keep running a build until it passes, which isn't effective / efficient.

@itscarlosrufo is this expected?

I'm using an auth token to connect, so I'm surprised it's throttling me when I'm only connecting at build time.

https://hygraph.com/docs/api-reference/basics/errors#429-too-many-requests
looks like hygraph is having rate limiting issues.

The issue is making the free tier almost unusable now. I have to restart the build 5 times now just to see 1 small change in the content.

Is this maybe a product issue? @gijshendrix

Hey folks!
The rate limit is working as expected - the current rate limits can be found in the FAQ section below the pricing table here: https://hygraph.com/pricing
The older free plans (with 5 seats, for example) still have a rate limit of 10 req/s. We would recommend looking into ways of throttling requests so you can stay within those limits.

Hey @belazer, thanks for the reply.
Is there a way to ensure this plugin doesn't exceed 10 req/s? It's causing builds to fail right and left.
Or perhaps slightly increase the limit for authenticated requests?

Unfortunately, I'm not the right person to comment on the code side - but I remember there was a way to throttle requests within Gatsby. I will need to check with the team if anyone is aware of a way to do it.

Did you already try the queryConcurrency option mentioned here? https://github.com/hygraph/gatsby-source-graphcms/pull/201


Handle cell add and delete actions

Add creates a cell before the selected cell.  Delete removes the cell and selects the lesser of the previous index and the index of the last cell.

:+1:


[BUG] 2.0: JavascriptException when updating chart via on_range_change with legend turned on + line created

Expected Behavior
Just updating the chart, no crash
Current Behaviour
Exception in thread Thread-2 (loop):
Traceback (most recent call last):
File "c:\documents\1_projects\lightweight-charts-python\lightweight_charts\chart.py", line 89, in loop
window.evaluate_js(arg)
File ".venv-win\lib\site-packages\webview\window.py", line 50, in wrapper
return function(self, *args, **kwargs)
File ".venv-win\lib\site-packages\webview\window.py", line 455, in evaluate_js
raise JavascriptException(result)
webview.errors.JavascriptException: {'name': 'TypeError', 'stack': "TypeError: Cannot read properties of undefined (reading 'value')\n    at http://<IP_ADDRESS>:61435/bundle.js:1:5434\n    at Array.forEach ()\n    at o.legendHandler (http://<IP_ADDRESS>:61435/bundle.js:1:5126)\n    at http://<IP_ADDRESS>:61435/lightweight-charts.js:7:6631\n    at Array.forEach ()\n    at k.m (http://<IP_ADDRESS>:61435/lightweight-charts.js:7:6617)\n    at Object.o (http://<IP_ADDRESS>:61435/lightweight-charts.js:7:157503)\n    at http://<IP_ADDRESS>:61435/lightweight-charts.js:7:6631\n    at Array.forEach ()\n    at k.m (http://<IP_ADDRESS>:61435/lightweight-charts.js:7:6617)", 'message': "Cannot read properties of undefined (reading 'value')"}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Amir Z\AppData\Local\Programs\Python\Python310\lib\threading.py", line 1016, in _bootstrap_inner
self.run()
File "C:\Users\Amir Z\AppData\Local\Programs\Python\Python310\lib\threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "c:\documents\1_projects\lightweight-charts-python\lightweight_charts\chart.py", line 95, in loop
raise JavascriptException(f"\n\nscript -> '{arg}',\nerror -> {msg['name']}[{msg['line']}:{msg['column']}]\n{msg['message']}")
KeyError: 'line'
Reproducible Example
import pandas as pd
from lightweight_charts import Chart

chart = Chart()

line = chart.create_line("test")
chart.legend(True)

df1 = pd.read_csv(f"./data/data2.csv")
chart.set(df1)

def on_range_change(chart, bef, aft):
    chart.set(df1)

chart.events.range_change += on_range_change

if __name__ == "__main__":
    chart.show(block=True)

Environment
- OS: Windows 10
- Library: lightweight-charts 2.0, Python 3.10

Setting chart.legend(False) resolves the issue

Fixed in 2.0.1 @amirzamli


MAHOUT:1810 Use a method taken from FlinkMLTools for cache persistance

As a temporary measure, use this method to persist the dataset to the filesystem when caching rather that drmDfsRead()/Write.
Todo:

Break up into  persist and  readPersistedDataset methods and only read a persisted dataset if it is already cached.
Use a property setting for the base dir.
Check to make sure that this method maintains parallelism deg for the dataset, if not set the new parallelism degree to the original

Will reopen a new PR for this with a fresh branch.


fix(picker): resolve font-style, focus-ring, border issues

Description
This addresses several issues with the Picker:

Uses font-style: normal instead of italic for the placeholder
Fixes an issue where the focus-ring wasn't aligned properly in Express
Updates the values for a custom property which were causing both Spectrum and Express to have a border-width when Express should not have a border.
Updates the docs site to add classes to the "switcher" implementations of the Picker so that they'll display properly.

How and where has this been tested?

How this was tested:
Browser(s) and OS(s) this was tested with:

Screenshots

To-do list

[ ] If my change impacts other components, I have tested to make sure they don't break.
[ ] If my change impacts documentation, I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have tested these changes in Windows High Contrast mode.

[ ] This pull request is ready to merge.

 Is this rectangle intended?

Go here
Click "Select a Country"
Press Tab while mouse remains over "Select a Country"


Upgrade Dockerfile image to 1.20-alpine3.17

We were using outdated go version for building the image in Dockerfile.
https://stackoverflow.com/a/68752298

Signed PTAL @nyrahul


Release Google.Cloud.ServiceUsage.V1 version 2.4.0

Changes in this release:
New features

Change netstandard2.1 target to netstandard2.0 (commit 82bea85)

Created release for Google.Cloud.ServiceUsage.V1-2.4.0


TS loader dependency copying CMAKE

Description
Splits TS loader dependency copying command into two parts like node loader

I prefer to implement this by myself because it is a problematic feature.


Don't try to content assist in comments

Don't try to content assist / perform intellisense when writing a comment.  Don't want it.
Dupe of #538 that got closed but not fixed really though.

Imo word suggestions are often quite helpful. For example when I make a comment like "this is later called by ..." and VS Code automatically suggests the long method name as I type.

@fleixfbecker yes, but 'code' within comments should be escaped with backticks, the intellisense whilst writing comments is really slowing down my typing and interfering with expected spc/tab when writing prose.

I am hitting an issue in comments that is ugly. My intent is to write this inside a TS/JS file:
/**
 * this is set.
 */

However set is a snippet and typing "." completes it so I end up with:
/**
 * this is
 public set .(v : string) {
     this. = v;
 }

 */

Typing undo here I end up with:
/** */

@alexandrudima fyi about the undo behaviour here which is not very helpful.

We should not add snippets inside comment, tho I am unsure if we know that when inserting them.

@bpasero Pushed fix for undo behavior in 2cdf977a3404f3e3a5d9600b0c50deb3255b2d71

@alexandrudima nice thanks!

A set of 'scopes' / 'escapes' could be provided for comments, primarily that triple slash enables a 'line of code' within a comment, where intellisense could be available.

yeah, #580 is about scopes et al - we don't have it yet in the ext host

@jrieken Should we try to make the IntelliSense request pass in the scopes besides the position?

That makes it related to #1172 which is about adding more contextual information to the provider. Two other options that I favour is either something like TextDocument.scopesAtPosition/Offset or the extend the document selector to know about scopes { language: 'javascript', scopes: 'comment.doc' }. The latter might be easiest to implement since it's evaluated on the main side

It would also be nice to not have a leading * automatically added when I add a new line to a comment.

@andy-hanson For jsdoc that should actually happen.

@jrieken It does not for PHPDoc and I believe also not for JavaDoc.

for sure not

I am using typescript, but not jsdoc. Since jsdoc won't run on typescript files anyway, it's a strange assumption that any /** comments must be jsdoc.
typedoc does not require leading stars.
I tested on some js files and it looks like jsdoc does not require leading stars either.
In general, I would like it to always be possible to get the editor to stop interfering, regardless of the tools or coding styles it thinks I should be using.

Pada 19/01/2016 1:22 PG, "Andy Hanson"<EMAIL_ADDRESS>menulis:

I am using typescript, but not jsdoc. Since jsdoc won't run on
typescript files anyway, it's a strange assumption that any /** comments
must be jsdoc.
typedoc https://github.com/sebastian-lenz/typedoc does not require
leading stars.
I tested on some js files and it looks like jsdoc does not require
leading stars either.
In general, I would like it to always be possible to get the editor to
stop interfering, regardless of the tools or coding styles it thinks I
should be using.

—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/vscode/issues/1657#issuecomment-172597062.

From https://github.com/Microsoft/vscode/issues/580#issuecomment-159401140

From @egamma on November 2, 2015 8:16
Exposing the scope names in the API is on the backlog, but will not make it into the November update.

I would like TextDocument.scopesAtPosition/Offset

You have been invited to the following event.
Title: Samsung
When: Thu Feb 4, 2016 10am - 11am GMT (no daylight saving)
Where: http://opensource.samsung.com
Calendar<EMAIL_ADDRESS>Who:
* roslan nordin - organizer
*<EMAIL_ADDRESS>* Gmail Team
*<EMAIL_ADDRESS>* lino lin
* Microsoft/vscode
* ezam fareeza
* Triton Lite
*<EMAIL_ADDRESS>* vivian hu
*<EMAIL_ADDRESS>*<EMAIL_ADDRESS>*<EMAIL_ADDRESS>*<EMAIL_ADDRESS>* nizam ezam
* Roslan Nordin
*
<EMAIL_ADDRESS>* Candy Crush Jelly Saga
* Inc.
* Marketing
* raimi nordin
* kadz kadir
* KingRoot Studio
* Rasminah Rakib
Event details:
https://www.google.com/calendar/event?action=VIEW&eid=MW84b3MwMGlrMjU1bzNsNTV1b3VpY2ZuZjggcmVwbHkrMDBmMzJmMTE0ZmE2NjJmMGFlMmQ2NTZmNjAxNWZjYzIwZjAzOWQyNzg3Y2NjNDU4OTJjZjAwMDAwMDAxMTJiNGUxNDg5MmExNjljZTA3NjJiZjNmQHJlcGx5LmdpdGh1Yi5jb20&tok=MTkjcm5vcmRpbjk1QGdtYWlsLmNvbTM2YzA4MGIwNGEzYWQ0OWYwOTBhMjIyMDUzMzk4Y2RiYjQwNDc5N2I&ctz=UTC&hl=en
Invitation from Google Calendar: https://www.google.com/calendar/
You are receiving this courtesy email at the account
<EMAIL_ADDRESS>because you are an attendee of this event.
To stop receiving future updates for this event, decline this event.
Alternatively you can sign up for a Google account at
https://www.google.com/calendar/ and control your notification settings for
your entire calendar.
Forwarding this invitation could allow any recipient to modify your RSVP
response. Learn more at
https://support.google.com/calendar/answer/37135#forwarding

I think the real issue is that 24x7 IntelliSense shouldn't be active in all cases, esp when a 'smart' completion provider is there but didn't produce a result. In such cases the textual provider should only become active if explicitly invoked (Cmd+Space).

:1: and this should be the default behaviour.
We could still provide a setting 'always include textual completions' for users that like the current behaviour.

agreed

An alternative idea is to configure what Enter should do when completions are shown. We could add an option to commit on Tab only (ala editor.acceptSuggestionOnEnter). That's helps us to know what the user actually wants. In addition, we can add Shift+Enter to accept a completion and Shift+Tab to insert a tab

@jrieken :+1: on the editor.acceptSuggestionOnEnter: false.

@jrieken So was the decision not to do this:

I think the real issue is that 24x7 IntelliSense shouldn't be active in all cases, esp when a 'smart' completion provider is there but didn't produce a result. In such cases the textual provider should only become active if explicitly invoked (Cmd+Space).

:+1: and this should be the default behaviour. We could still provide a setting 'always include textual completions' for users that like the current behaviour.

For the Go plugin, I know there are a number of users who would have liked that default behaviour (not showing completion lists with textual completion and snippets automatically when the Go completion provider has returned no results, only on cmd+space).
The editor.acceptSuggestionOnEnter approach seems like it won't fix the default experience, and turning this option on will degrade the experience in normal completion outside of the undesirable locations like comments and strings.
It seems like the ultimate fix here is addressing a different problem than the core concern.  The suggestion you proposed in the quote above seems to fix the core concern.

We made this decision basically because we don't to step onto the toes of those that actually like textual completions everywhere. Also it wouldn't have helped in cases in which only textual completions are available, esp in markdown files. Last, it's aligned with what other editors do, so with muscle memory of those users.

Verified setting editor.acceptSuggestionOnEnter to false no longer makes Enter and accept key for suggestions

FWIW, I also find this to be super annoying.  I've never seen another editor suggest random words from the file when typing comments.  It's distracting and unhelpful.  I'm fine with having to set a value to turn it off, but please give me that ability... and I mean turning off suggestions in comments entirely.
I'm not sure why this issue is marked as closed... unless I'm missing something, there's been no proposed workaround for the problem of showing suggestions, only for turning off autocomplete on enter, which is more of a symptom than the actual disease.

Searching for turn off suggestion in text files vscode I get to https://github.com/Microsoft/vscode/issues/3137 which is closed as a dupe of https://github.com/Microsoft/vscode/issues/2496 which is closed as a dupe of this issue which... doesn't help me disable suggestions in a specific file format.
Has anyone actually solved this, or did that issue get conflated with the ability to completely disable intellisense? The docs suggest it's still not possible to disable by file format.

When hit  to start a new line in a comment, the editor often "helpfully" completes my sentence with something I don't want. I don't think I could put it any better than @natefinch did above. This is really annoying!

Ah that's a shame. Guess I just have to disable it manually. :(

Could someone, who knows the code, suggest where a patch would go, and how it might work?
I guess we need a boolean function that will ask isCursorInsideAComment(), or getCursorContext() might be better, so we can distinguish between single-line comments, block comments, and javadoc comments (start with /**).
And then use that function (*) at the point where it decides if to show intellisense suggestions or not. I think the answer to the latter might be related to https://github.com/Microsoft/vscode/pull/1172  ?
*: based on a user setting, of course, so people who want to write code inside comments still can.

Per the other comments, please reopen this or allow one of the "dupe" issues to be opened for the benefit of those of us who don't want random word autocomplete when editing text files. Since editing Markdown files is intended use to the extent that it gets special features like live preview, I think this deserves not to be clumped together with disabling autocomplete within comments (which is probably still a good idea).

FYI - Issue #719 is about refining the editor.wordBasedSuggestion further. So people that never want to see word-based suggestion can use "editor.wordBasedSuggestions": false already today . For those that don't want to see word-based suggestion for certain languages you can say "[markdown]": { "editor.wordBasedSuggestions": false } (available in insiders today or the January release). For #719  the plan is to extend the boolean-value with something that allows you to say word-based suggestion... 'not in comments' and/or 'not in strings'

For those that don't want to see word-based suggestion for certain languages you can say "[markdown]": { "editor.wordBasedSuggestions": false } (available in insiders today or the January release).

This is spectacular, since it was something that wasn't possible yet earlier in the thread. Awaiting the January release with bated breath. 😄

re https://github.com/Microsoft/vscode/issues/1657#issuecomment-276397642: Sorry, I deleted my comment because it contained a link to the wrong issue 🙃
So, this is what I have suggested in https://github.com/Microsoft/vscode/issues/10819#issuecomment-275633990:
"editor.wordBasedCompletion": true,
"[markdown]": {
  "editor.wordBasedCompletion": false
}

I have also reopened this issue because it has some many subscriber for the following change: In addition to the plain boolean that editor.wordBasedCompletion accepts today I want to extend it to something that allows to say word base suggestion 'in comment only', 'in string only', 'nowhere' etc

Hey, thank you to whoever added file-type specific editor settings. Now.. can we get all file types, and not just the four that exist? I'd be happy to open a PR if someone could point me to the right area.
I'm not sure why these were the only languages that made the cut :)

The additional configuration options for word-based suggestion are now tracked in https://github.com/Microsoft/vscode/issues/9504 and are plan for March. Closing this issue as the remaining work will happen there. Happy Coding!


Freezes on init_bluetooth(): [BT_AV] init_bluetooth

Problem Description
Freezes on init_bluetooth(): [BT_AV] init_bluetooth
Device Description
ESP32 WROOM TYPEC
Sketch
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0
[    18][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
[    33][D][BluetoothA2DPSink.cpp:90] start(): [BT_AV] start
[    38][I][BluetoothA2DPCommon.cpp:246] log_free_heap(): [BT_AV] Available Heap: 252048
[    48][I][BluetoothA2DPSink.cpp:102] start(): [BT_AV] Device name will be set to 'InternalDAC'
[    59][D][BluetoothA2DPSink.cpp:1063] init_nvs(): [BT_AV] init_nvs
[    67][D][BluetoothA2DPCommon.cpp:152] get_last_connection(): [BT_AV] get_last_connection
[    78][I][BluetoothA2DPCommon.cpp:166] get_last_connection(): [BT_AV] nvs_blob does not exist
[    88][D][BluetoothA2DPCommon.cpp:175] get_last_connection(): [BT_AV] => 00:00:00:00:00:00
[    99][I][BluetoothA2DPSink.cpp:165] init_i2s(): [BT_AV] init_i2s
[   107][I][BluetoothA2DPOutput.cpp:199] begin(): [BT_AV] begin
[   116][D][BluetoothA2DPSink.cpp:186] init_bluetooth(): [BT_AV] init_bluetooth

Other Steps to Reproduce
Test all
Provide your Version of the EP32 Arduino Core (or the IDF Version)
2.0.16
I have checked existing issues, discussions and online documentation

[X] I confirm I have checked existing issues, discussions and online documentation

You did not indicate what sketch or conditions are causing this so I assume it is a simple A2DP Sink w/o any additional logic.
I have never seen anything like this, so I would guess that it is a hardware issue. Did you try with another ESP32 ?

I am seeing the exact same issue. Strangely it was working before but yesterday after reflashing the code I stopped being able to connect over bluetooth so I reverted back to one of your examples to try and diagnose the issue. I also tried running on 2 other ESP32-WROOM-32 modules but I got the same result every time.
SKETCH:
#include "AudioTools.h"
#include "BluetoothA2DPSink.h"

AnalogAudioStream out;
BluetoothA2DPSink a2dp_sink(out);

void setup() {
    a2dp_sink.start("MyMusic");
}

void loop() {
  delay(10);
}

PIO CONFIGURATION
[platformio]
description = A2DP Example
default_envs = esp32dev

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
	https://github.com/pschatzmann/ESP32-A2DP
	https://github.com/pschatzmann/arduino-audio-tools.git

build_flags = -DCORE_DEBUG_LEVEL=5
monitor_speed = 115200
monitor_filters = esp32_exception_decoder
board_build.partitions = huge_app.csv

CONSOLE OUTPUT
--- Terminal on COM3 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
[    10][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
[    27][D][BluetoothA2DPSink.cpp:90] start(): [BT_AV] start
[    33][I][BluetoothA2DPCommon.cpp:246] log_free_heap(): [BT_AV] Available Heap: 254928
[    43][I][BluetoothA2DPSink.cpp:102] start(): [BT_AV] Device name will be set to 'MyMusic'
[    53][D][BluetoothA2DPSink.cpp:1063] init_nvs(): [BT_AV] init_nvs
[    62][D][BluetoothA2DPCommon.cpp:152] get_last_connection(): [BT_AV] get_last_connection
[    72][I][BluetoothA2DPCommon.cpp:166] get_last_connection(): [BT_AV] nvs_blob does not exist
[    83][D][BluetoothA2DPCommon.cpp:175] get_last_connection(): [BT_AV] => 00:00:00:00:00:00
[    93][I][BluetoothA2DPSink.cpp:165] init_i2s(): [BT_AV] init_i2s
[   101][I][BluetoothA2DPOutput.cpp:199] begin(): [BT_AV] begin
[   111][D][BluetoothA2DPSink.cpp:186] init_bluetooth(): [BT_AV] init_bluetooth

I followed the thread to BluetoothA2DPCommon.cpp where in the the bt_start() function there is a while loop that is meant to hang until esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_IDLE.
In our case it seems esp_bt_controller_init(&cfg) seems to be unsuccessful so we never clear that loop. I printed the results from esp_bt_controller_init and I get ERROR: 259 which is ESP_ERR_INVALID_STATE
I am not sure what this means.
THE FUNCTION IN QUESTION
/**
 * @brief Startup logic as implemented by Arduino - This is not available if we use this library outside of Arduino
 *
 * @return true
 * @return false
 */
bool BluetoothA2DPCommon::bt_start(){
    esp_bt_controller_config_t cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_ENABLED){
        ESP_LOGI(BT_APP_TAG, "BT was already enabled");
        return true;
    }
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_IDLE){
        esp_err_t error = esp_bt_controller_init(&cfg);
        printf("ERROR: %d\n", error);
        while(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_IDLE){}
    }
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_INITED){
        if (esp_bt_controller_enable(bt_mode)) {
            ESP_LOGE(BT_APP_TAG, "BT Enable failed");
            return false;
        }
    }
    if(esp_bt_controller_get_status() == ESP_BT_CONTROLLER_STATUS_ENABLED){
        ESP_LOGI(BT_APP_TAG, "BT enabled");
        return true;
    }
    ESP_LOGE(BT_APP_TAG, "BT Start failed");
    return false;
}

RESULT
[    10][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
[    27][D][BluetoothA2DPSink.cpp:90] start(): [BT_AV] start
[    33][I][BluetoothA2DPCommon.cpp:246] log_free_heap(): [BT_AV] Available Heap: 254928
[    43][I][BluetoothA2DPSink.cpp:102] start(): [BT_AV] Device name will be set to 'MyMusic'
[    53][D][BluetoothA2DPSink.cpp:1063] init_nvs(): [BT_AV] init_nvs
[    62][D][BluetoothA2DPCommon.cpp:152] get_last_connection(): [BT_AV] get_last_connection
[    72][I][BluetoothA2DPCommon.cpp:166] get_last_connection(): [BT_AV] nvs_blob does not exist
[    83][D][BluetoothA2DPCommon.cpp:175] get_last_connection(): [BT_AV] => 00:00:00:00:00:00
[    93][I][BluetoothA2DPSink.cpp:165] init_i2s(): [BT_AV] init_i2s
[   101][I][BluetoothA2DPOutput.cpp:199] begin(): [BT_AV] begin
[   111][D][BluetoothA2DPSink.cpp:186] init_bluetooth(): [BT_AV] init_bluetooth
ERROR: 259

It seems that this is a but that has been introduced in one of my last commits.
I committed a correction which is calling the Arduino btStart() again...

It seems that this is a bug that has been introduced in one of my last commits. I committed a correction which is calling the Arduino btStart() again...

Thank you very much for the decision. I'll be at the computer for a couple of hours and check. That's exactly what this problem looked like, I added blink to the Loop loop for the test, and it didn't work when I started Bluetooth

For the initialization outside of Arduino, I am printing the error codes now as well


Improper (?) chains resuming

Hi to everybody,
I have been playing with Turing and I am quite satisfied. It's a very good library, thank you!
I am trying to use the Cluster of my University with Turing and it looks it is working...what bothers me is the possibility of resuming chains. This is the code I am using
using Turing
using Distributed
using ClusterManagers
using Dates

n_process = 30
#add  n_processes on the long queue
for i in 1:n_process
    time = string(Dates.now())
    ClusterManagers.addprocs_lsf(1; bsub_flags = `-q long -o Turing/outfiles/$time.out -e Turing/outfiles/$time.err -n 2 `)
end

#loading Turing on the processes
@everywhere using Turing

#toy model found in the Turing documentation
@everywhere @model function gdemo(x)
    s² ~ InverseGamma(2, 3)
    m ~ Normal(0, sqrt(s²))

    for i in eachindex(x)
        x[i] ~ Normal(m, sqrt(s²))
    end
end

@everywhere model = gdemo([1.5, 2.0])
#sampling
chains = sample(model, MH(), MCMCDistributed(), 40, n_process; save_state = true)
write("Turing/chains/first_chain-file.jls", chains)

#resume sampling
chainsb = sample(model, MH(), MCMCDistributed(), 40, n_process; save_state = true, resume_from = chains)
write("Turing/chains/resumed_chain-file.jls", chainsb)

Everything looks to work without problems, but then I decided to check the last step of the chains in chains and the first step  of  the chains inchainsb, obtaining respectively
 -2.5569926638379856
  0.6013349624568101
  0.8590870562760059
  2.395092327070279
  0.30633825992172603
  1.8721031535336894
  0.3845124887448378
  1.0331373520741012
  0.3914729143619578
  1.1355888789926338
  0.4570932249605562
  1.9812393973041307
 -0.07421084058792975
  0.4170399419102264
  1.5349445943181428
  0.49824038196769993
  2.0694996617266224
  1.8940648949354408
 -0.01762467471248246
  3.772357305507156
  1.3129433939104416
  0.7417751809903653
  1.110839325040691
  2.846731924304791
  0.6912786220073702
  1.8708838415407694
  1.982571326551052
  1.3601574483697967
  1.3642559267226588
  1.044768883206148

0.13689937832763854
 -0.7359908349472912
 -0.713229220500176
  1.0786609524455146
  0.6055944537774374
  0.31771407030069704
 -2.0896892538535012
 -2.5569926638379856
 -0.9688255168942798
 -2.5569926638379856
 -0.19465181475999574
  0.25116986501880706
  0.2912230673438316
 -0.870484352037458
 -0.7385675043481791
 -0.12438506493203039
 -0.7973532014797547
  1.2906733092061466
  0.8261938949153473
 -0.8878086665415579
 -0.23865719371572905
 -1.016826590909152
  2.567799727834964
  1.998903315214728
  0.8754360818675754
  0.1421659708848039
  0.924392672495571
 -2.5569926638379856
 -2.5569926638379856
  0.4415929537755887

It looks that the last step of the first chain ( -2.5569926638379856) is used to restart ALL the chains...however, I'd expect the i.th chain to restart from the last step of i-th chain.
Is this the expected behaviour or is there a mistake? Am I missing something?
Thank you,
Marco

Yeah, this is an error. I'm working on something elsewhere to make the chain resume functionality way better.

Thank you for your answer. If you need help with docs, testing, please feel free to send me a message.

Likely fixed by recent updates to MCMCChains.


Check for uninitialized wires is too restrictive

As discussed previously in #106, the two semantics for illegal uninitialized wires have tradeoffs.
Proposal 1:
Any wire whose subcomponents are never assigned to is an illegal uninitialized wire.
Pro: Simple, intuitive, and locally determined semantics
Con: Difficult to write generators that correctly omit/include the wire subcomponents that are not assigned to.
Proposal 2:
Any wire whose "live" subcomponents are never assigned to is an illegal uninitialized wire.
Pro: Makes generation significantly easier (is a common case in existing Chisel code)
Con: Errors are unintuitive/non-local. Example: A new assignment to a wire can backpropagate "liveness" and cause a previously unrelated wire, that was uninitialized, to trigger an error.
The unfortunate reality is if (1) is implemented, it places too much of a burden on the designer who will likely overuse the is-invalid escape, thus negating the actually utility of (1).
Assuming we go with (2), can we come up with a intuitive definition of liveness?

This is a good summary of the issue.

I would define "liveness" meaning that the wire satisfies one of the following conditions:

Combinational logic based on the wire terminates at the input of a register.
Combinational logic based on the wire terminates at a top-level output of the circuit.

If the wire does not satisfy either of the above, it cannot affect the proper functioning of the circuit.

re: case 1: if the register doesn't propagate to an output, I don't think it should force the input to be treated as live.  In other words, registers and combinational logic need not be treated differently for the purposes of this analysis.

This discussion is resolved - we will add the is-invalid API to Chisel.


Infinite spinner after clicking on "Clear" when using some of My Filters

There is an infinte spinner after clicking on "Clear" when using
some of My Filters in Compute -> Infrastructure -> Datastores.

@miq-bot add_label bug, ui

Already works so I am closing this issue.


[question] norms around code review!

Hey all! What are we going to do about code review? Some questions to start the discussion:

should all tickets need some number [1,2...???] of approvals before merging?
should we require review from particular people? (the ticket requester maybe, or some group of approved code approvers perhaps?)

Please discuss, when we come to an agreement we can add a page to the wiki and/or document it in the readme 🎉

we will create an admin group of people who have merge abilities
we will require at least one admin approval before a PR gets merged
we will discuss admin criteria at a later date


⚠ Bofrost.fr has degraded performance

In d6b2f62, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 953 ms

Resolved: Bofrost.fr performance has improved in 7f06947 after 6 minutes.


value attribute set with jquery selector can't be changed via HtmlInput Element

Hi, first of all thanks for all the work you've done on that project.
I may have found a bug or I am unaware of an mistake in my code.
To reproduce the issue I have setup a small test project: https://github.com/thuri/htmlunit-jquery-selector-init
It uses:

Java 11
JUnit 5
HTMLUnit 2.56.0

The html page of the project defines a small form with two fields, a text input and a datetime-local input. (But i actually don't think that the type has anything to do with the problem).
The page also contains a little javascript code that uses jquery to define an event handler for the ready event.
In that code I try to initialize the values of the inputs using the .val() function of jquery. This seems to work as i'm able to read the values with HTMLUnit.
  $("#textField").val("Initialised");
  $("#timestampField").val("2021-12-17T15:15");

After that the code registers an submit handler for the form that is only used to log the values and skip the actual sending of the form, as there isn't an actual backend to receive the values.
Within the unit test I try to override the values like this:
   form.getInputByName("textField").setValueAttribute("Foobar");
   form.getInputByName("timestampField").setValueAttribute("2021-12-31T12:00");

when the form is submitted the event handler is called as expected but the values set within the test are not available to the jquery handlers which can be seen in the console log.
And the values are also unchanged in the HtmlPage returned by the click handler which will make the junit test in the project fail.
If the initializing is done without jquery the submit Handler get's the correct values and the result HtmlPage also contains the correct values:
   document.forms.theform.textField = "Initialised";
   document.forms.theform.timestampField = "2021-12-17T15:15";

It would be great if you could have a look at this and probably tell me whether I've made a mistake or confirm that there is something strange happening here.
Thanks in advance,
Michael

Hi Michael,
at first many thanks for the detailed error description and the test project. Reports like this are the reason for having fun  working on libs like this.
I guess that your problem is related to infamous js async processing required to make all the web hacks around on this weak platform possible - what i like to say the jQuery ready function is async.
What seems to happen
webClient.getPage()

retrieves the page, resolves the js stuff and runs the js that has to run
the jQuery stuff kicks in and assings the handlers
the jQuery ready gets started but the function is called async - means HtmlUnit does not wait for this to finish!

webClient.setValueAttribute()

your update takes place

maybe now

the async handler starts his work and your values are overwritten

I think the idea is clear, the motivation of the jQuery folks to do it this way is also more or less clear; and for developers using jQuery this is more or less invisible.
Ok, but what to do - as always you have to be a bit more patient (or use a tool that does the magic for you www.wetator.org :-) ).
 webClient.waitForBackgroundJavaScript(100);

simply add this line after the getPage call to process the async ready handler.
Hope that helps (Und viele Grüße nach Thüringen)

Hey @rbri  thanks for the fast response.
You're right it looks like a race condition. Adding the line to the code really solved the problem (so I'll close the issue)
I just recently experienced the same issue with the the "native" javascript code within the ready function.
But as you said the problem is the ready function as such not the way the inputs are accessed.
I don't know whether it is possible but i think it would be great if the webclient could be configured to wait for the javascript engine to complete. Because waiting for any amount of time in the test could result in flaky behavior. Sometimes the tests will be green and sometimes they will fail just because the machine had a bad day :-)
I understand that this wouldn't be a good idea if the javascript code creates reoccurring times as the JavaScript Engine won't complete. But anyway just some thoughts ...

Thanks @thuri for the fast feedback, great to see the problem is 'gone' - github stars are always welcome :-)
There are several wait methods to mitigate the wait problem. We have implemented a much more sophisticated wait handling in Wetator - if you are interested you can have a look at the source. And also WebDriver has some idea of waitFor in the API.
Maybe one day i have a final idea how to solve this the right way.....


chore(): add ionic examples

By making a PR you are agreeing to that contributing a hello world project allows the repo/project owner to use the hello world app in examples for their own use.

[x] only the most simple basic hello world app
[x] remove all tests and commands for tests and dependencies for tests
[x] must say "Hello World" on the main component
[x] only include the minimal components (1 ideally)
[x] no routing, not extras whatsoever
[x] no styling
[x] nothing else !
[x] must work by running npm install and npm start (or equivalent)
[x] must be in the folder named <tech-name>
[x] add build steps and which folder to serve in the README.md
[x] verify that the app once built can be served from whatever folder the built assets are placed in
[x] verify that running npx http-server <your-folder-to-serve> works
[x] verify that a Pull Request doesnt already exist. If it does, feel free to contribue to it.

@allcontributors please add @mhartington for code


Moved Make functionality to npm. Added coverage reporting.

Just like the title says, I have moved bunch of stuff to package.json.
npm t runs tests
npm run coverage generate coverage reports
npm run jshint runs jshint
Removed Makefile.
Added 'use strict' statements to test and lib. My editor removed some whitespace in the process.
You might have to update Travis if you are going to merge this.

Yeah!


books are added

close issue-> #561

@jayk-gupta have a look.

@jayk-gupta sir please review

@jayk-gupta

@jayk-gupta please merge it

@jayk-gupta have a look

@jayk-gupta have a look

@jayk-gupta

@jayk-gupta please merge it so that I will work on a new issue.

Eloquent one is already there

it is different from that book its third edition.

@jayk-gupta

@jayk-gupta i removed that book and now only 1 book that is react for 30days is there

@jayk-gupta

@jayk-gupta please merge it.


Live viewer bogs down after time and data

Currently, while running webviz connected to a rosbag websocket, the data collected remains on screen from time of start and begins to slow the web display down as time (and collected data) increases.
It would be nice to have an option for live telemetry allowing the time scale to slide along a specified range of time, reducing the amount of data being kept.

That's a great idea! Which panels in particular do you have this issue with?

It's most easily recognized with the plotters, as they maintain the full history. I haven't tried the others, including raw data.

Cool, yeah, makes sense. Most panels keep a fairly limited set of data, but the Plot panel currently always keeps an indefinite set. I believe that the rosout panel also keeps a large amount of data, but not unlimited. The 3d panel keeps an indefinite set if you just keep adding markers and never delete them, but that's in your control to fix.
So perhaps if we just add a maximum number of datapoints to the Plot panel, that might be enough?

And possibly make it switchable? It's nice in small rosbags to see the whole trail of data, but when you get larger bags, it would bog down just like live data.

Although, I guess if you let us set max datapoints, we could do that ourselves.

Is there any progress with a solution for this issue? limit X axis entries?

Check out the plot panel settings:

There's an X range field for at least limiting the # of x axis entries from a visual standpoint.
As far as performance is concerned, we still don't have a way of limiting the number of points in the Plot panel. We've been shipping a set of performance improvements lately though, I'd try the latest release of Webviz if you haven't already! Let us know if you're still running into issues.


ps.destroy sends many packets

Calling ps.destroy triggers sending a packet for each open substream and request. This is problematic in the scuttlebot network where a peer rpc connection may have hundreds of open substreams. When the destroy method sends an error object, the stack trace gets sent repeatedly, once for each substream in either direction, which uses excessive bandwidth. Even if there is no stack trace, it still results in many packets getting sent for information which could be represented by one message.
I would like to make a way for packet-stream to use less bandwidth when ps.destroy is called. Here is how I am thinking to do this now:

Have a special message type that means to send a message to all substreams.
Have a way to advertise supporting this message type and detect that the other end supports it.
On calling destroy: If the other end supports it, send the close message to all substreams with one packet. Otherwise, use the existing logic of calling destroy on all the substreams.

To preserve backwards compatibilty, the capability advertisement can be added as a new property onto an existing unrelated outgoing message (e.g. the first message sent by a substream). This is similar to how git exchanges capabilities: probably they had a similar situation, wanting to be able to upgrade the protocol while preserving compatibility.
@dominic, does this sound like an okay approach? Or do you have other ideas about how to deal with the underlying problem(s)?

Sending these packets was not my intention. I think that destroy should just close the connection. The other side can then end all the streams with errors. destroy should just kill the connection asap, but close should abort the substreams...
Hmm, it's possible that destroy doesn't do that already, because of something that was needed to write tests that passed reliably, that is the sort of thing I'd do - but it's been a long time since I looked at this code, also

Ok, so then the error argument to destroy would still go to the local end of the substreams, but not be sent to the other ends. The close method would get the current behavior of destroy. Currently the close function "Marks the packetstream to close when all current IO is finished". Is there a use for such a method?

I looked for code paths leading to ps.close. It looks like muxrpc will only call this if rpc.close(err) is called with a falsy err. In scuttlebot, it looks like that only happens in the invite plugin when disconnecting from the pub after using an invite. So I think it might be okay to change destroy and close like you suggested. I'll try it and see what happens.

What I have now is a change to destroy to make it end the underlying stream without sending an end message to the substreams. close I'm leaving as is, since it isn't used much anyway. I also am making a change to handle the legacy case of end messages arriving for each substream, and destroy the underlying stream rather than wait for the rest of the end messages. (This is to save bandwidth and blocking of the event loop). I will make separate PRs for these


Updated channel and documentation to Rubocop v0.71.0

@maxjacobson misspelled the channel name in the previous PR. Re-opening against the right one..


Updating logging article to beta8

Additionally, it doesn't show how to log from a controller. Customer  question at https://docs.asp.net/en/latest/fundamentals/logging.html#comment-2379245737
Console couldn't display when running under IIS Express. I go to log folder of IIS Express (/%userprofile%/Documents/IISExpress/logs) of that project but still not see my log.

@Rick-Anderson Hey ... Happy Thanksgiving to you and @danroth27! Funny you said something about this one ... I was just looking at http://www.tugberkugurlu.com/archive/asp-net-5-and-log-correlation-by-request-id when you posted.


even if the url is already open, running unlighthouse again will open a new tab in the browser.

Hi, I want to use unlighthouse in my project's  CI stage, and when I run it locally with cli, I find that every time I execute npx unlighthouse it will open a new page in the browser, even though it was already opened with url http://localhost:5678/.
Maybe we can reuse the tab if the url is opened in browser(just activated it), similar to what happens in react-scripts?
If this is appropriate, it might be possible to reuse the code from react-dev-utils directly. Instead of directly using open

I'm also happy to create a pr :)

Hey @await-ovo

Running in a ci mode requires you to use the unlighthouse-ci binary, there's documentation for that here: https://unlighthouse.dev/integrations/ci.html#introduction. There was an issue previously with the doc which I've just updated too
Good idea! I've implemented https://github.com/michaellzc/better-opn, doesn't seem like there's a solution for linux so I can't test it, so let me know if it's working as expected


AZ Cli Commands Do Nothing

This appears to be very similar to: https://github.com/Azure/azure-cli/issues/13569
To Reproduce

install azure CLI tool
open a power shell window, type az login (or any other command from the az CLI)
nothing happens

OS Name	                Microsoft Windows 11 Pro
Version	                10.0.22000 Build 22000
Azure CLI is              2.33.1
power shell              7.2.1
When running get-command az I get:
CommandType     Name                                               Version    Source

Application     az.cmd                                             <IP_ADDRESS>    C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd
az.cmd looks like this:
::
:: Microsoft Azure CLI - Windows Installer - Author file components script
:: Copyright (C) Microsoft Corporation. All Rights Reserved.
::
@IF EXIST "%~dp0..\python.exe" (
SET AZ_INSTALLER=MSI
"%~dp0..\python.exe" -IBm azure.cli %*
) ELSE (
echo Failed to load python executable.
exit /b 1
)

@jiasli for awareness

I have the same issue.
Running any az command does nothing and returns without any errors.
Installed az cli using this command
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'
OS: Windows Server 2022 Datacenter
Version 10.0.20348.587
Azure CLI verion: well, az --version does nothing
Windows PowerShell 5.1.20348.558

Could you check if there are some registry items like AutoRun configured https://github.com/Azure/azure-cli/issues/19202#issuecomment-898271305

Does it work if you directly invoke
& "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe" -IBm azure.cli

If you create a cmd file like test.cmd:
echo "Hello World"

Are you able to successfully run ./test.cmd and get Hello World printed?

Could you check if there are some registry items like AutoRun configured Program 'az.cmd' failed to run: The system cannot find the file specifiedAt line:1 char:1 #19202 (comment)

Does it work if you directly invoke
& "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe" -IBm azure.cli

If you create a cmd file like test.cmd:
echo "Hello World"

Are you able to successfully run ./test.cmd and get Hello World printed?

I checked HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun and found the value:
if exist & if exist "C:\Users\xxxxxx\Anaconda3\condabin\conda_hook.bat" "C:\Users\xxxxx\Anaconda3\condabin\conda_hook.bat"
I removed it as suggested in the linked issue and everything works correctly now.  Thank you so much for your help!!


makes json parser more tolerant to requests with no body that are declaring content type application/json

grr :p i understand that it makes curl stuff easier, but as far as the middleware is concerned it's either valid json or it's not, and when there's no body at all it's not valid json. I've had this request more than a few times now though so i'll add it until we find a good reason to remove it

and i'll add it for the others

this could be a source of confusion in some cases, but we'll see how it plays out

cool, thanks man :D

@visionmedia any idea of when will you be updating the npm registry with this changes?

i'll backport it right away


Add diagram for kubectl drain command

The link to diagram will be added into long description of kubectl drain
command.
resolves #501

@bgrant0607 You seemed amenable in https://github.com/kubernetes/kubernetes.github.io/issues/501 .  There's a kube pull https://github.com/kubernetes/kubernetes/issues/25736 that requires this be merged or we'll get a dead link in the CLI.  Two questions:

What is the review process in the repo?  I assigned to just to get the ball rolling.
Will we have direct links from the CLI to diagrams in this repo?  When it works, its extremely helpful.  When they break, its extremely annoying.  I've seen products go either way.

@deads2k We don't have a reasonable process for this repo yet, and don't have automation, either. I'm just going to merge this, and we can change it later if necessary.


add purge function on devicestate

I propose to add a "purge" on devicestate using the delete from mysql statement, based on devicetype id and number of days from now you want to keep.
I've added test also, you can check the test and tell me if it is enough.
(Maybe we could think about historize data in a histo table .. ?)

I've made the change

I've just tested in on my teleinfo module where I had about 2 millions rows since the beginning of december and I successfully purge data at 15 days :) I'm back at 245k rows.

I'm merging this :)


PRED-587 keep cols order

--keep_cols="b;a" will create a CSV output file with header:
row_id,b,a,
0,a_val,b_val,0.5

Coverage increased (+0.08%) to 84.409% when pulling 47278abc3940dd5864ff912339df9c2e23dde60b on peter/PRED-587-keep-cols-order into 658bf09a45f9de60136d6599f598f2693ed85922 on master.

Coverage increased (+0.02%) to 84.345% when pulling 0e2f7f126ea899bde3962cdfbd8af21a3d9e40b3 on peter/PRED-587-keep-cols-order into 658bf09a45f9de60136d6599f598f2693ed85922 on master.

@Axik pls review

LGTM


Figma Tokens Update

🍥 Design Tokens were updated in Figma! This PR was created to update the code.

LGTM


feat(githubscraper): Add rate limiter

This adds a rate limiter to the GitHub scraper. The rate limiter
is implemented as a Strategy Pattern. So other gitproviders can
handle their own rate limiting logic.
This also adds a client wrapper that implements the Doer
interface so we can hook into request/response headers and ultimately
the rate limiting logic.

Closing this as, but not deleting.


bug with statement functions again

What happened?
I have a bug in routines with statement functions : FMINJ in this case.
The code has a strange behavior, the bug is difficult to reproduce, this is why my reproducer is so big, sorry for that. Let me know if you can't reproduce the bug.
Using the version from https://github.com/ecmwf-ifs/loki/pull/439 I have no bug. Using the lastest version of loki from main, the bug is back (end the commit fixing the bug is in loki latest main (git log | grep 97d0943).
What are the steps to reproduce the bug?
download loki pip install "loki @ git+https://github.com/ecmwf-ifs/loki.git"
run the test python3 -m pdb test.py and then continue through the breakpoint.
bug_statement.tar.gz
Version
latest, from today
Platform (OS and architecture)
Linux taranislogin1.taranishpc.meteo.fr 3.10.0-1160.102.1.el7.x86_64 #1 SMP Mon Sep 25 05:00:52 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
Relevant log output
(Pdb) c
Traceback (most recent call last):
  File "/opt/softs/anaconda3/envs/Python310/lib/python3.10/pdb.py", line 1723, in main
    pdb._runscript(mainpyfile)
  File "/opt/softs/anaconda3/envs/Python310/lib/python3.10/pdb.py", line 1583, in _runscript
    self.run(statement)
  File "/opt/softs/anaconda3/envs/Python310/lib/python3.10/bdb.py", line 598, in run
    exec(cmd, globals, locals)
  File "<string>", line 1, in <module>
  File "/home/gmap/mrpm/cossevine/tmp/dbg/test.py", line 92, in <module>
    horizontal_idx=get_horizontal_idx(routine, lst_horizontal_idx)
  File "/home/gmap/mrpm/cossevine/tmp/dbg/test.py", line 62, in get_horizontal_idx
    routine.body=SubstituteExpressions(rename_map).visit(routine.body)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in visit_tuple
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 160, in <genexpr>
    visited = tuple(self.visit(i, **kwargs) for i in o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in visit_Node
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 185, in <genexpr>
    rebuilt = tuple(self.visit(i, **kwargs) for i in o.children)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/transformer.py", line 248, in visit
    obj = super().visit(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/visitor.py", line 124, in visit
    return meth(o, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/ir/expr_visitors.py", line 246, in visit_Expression
    return self.expr_mapper(o)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/expression/mappers.py", line 536, in __call__
    return super().__call__(expr, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/pymbolic/mapper/__init__.py", line 141, in __call__
    result = method(expr, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/pymbolic/mapper/__init__.py", line 495, in map_call_with_kwargs
    function = self.rec(expr.function, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/expression/mappers.py", line 536, in __call__
    return super().__call__(expr, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/pymbolic/mapper/__init__.py", line 141, in __call__
    result = method(expr, *args, **kwargs)
  File "/home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/expression/mappers.py", line 564, in map_variable_symbol
    assert expr.type is not None
AssertionError
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /home/gmap/mrpm/cossevine/tmp/test/venv3/lib/python3.10/site-packages/loki/expression/mappers.py(564)map_variable_symbol()
-> assert expr.type is not None

Accompanying data
No response
Organisation
météo france

Hi @ecossevin ,
Unfortunately, I am still not able to reproduce the backtrace you showed above. However, I think you are using a different test.py to generate the backtrace. The one in the tarball you attached has effectively 19 lines (pasting content below), but your backtrace indicates problems at lines 62 and 92, which I don't have:
  File "/home/gmap/mrpm/cossevine/tmp/dbg/test.py", line 92, in <module>
    horizontal_idx=get_horizontal_idx(routine, lst_horizontal_idx)
  File "/home/gmap/mrpm/cossevine/tmp/dbg/test.py", line 62, in get_horizontal_idx
    routine.body=SubstituteExpressions(rename_map).visit(routine.body)

which indicates to me that you are running something other than the reproducer posted - unless I'm missing something?
The test that you posted runs fine for me:
(loki_env) $ python test.py
1
1

(loki_env) $ cat test.py
from loki import Sourcefile
from loki import fgen
from loki import do_resolve_associates
import logical
import sys
print(len(sys.argv))
print(len(sys.argv))

true_symbols = []
false_symbols = ['LHOOK']

#file_name = "ppwetpoint_bug_test.F90"
file_name = "ppwetpoint_no_bug.F90"
#file_name = "ppwetpoint_bug.F90"
source=Sourcefile.from_file(file_name)
src_name = "PPWETPOINT"
routine=source[src_name]
do_resolve_associates(routine)
routine_t1 = routine.clone()

Hi @ecossevin,
fwiw, I also can't reproduce the issue. Changing the file_name in test.py to the ppwetpoint_bug.F90 also doesn't seem to make a difference for me.
While looking at this, I've noticed the logical.py module that you packaged. It doesn't seem to be used in your reproducer, so I can only speculate about your use case, but it looks to me like this functionality should be mostly provided by internal Loki utilities already. I recommend taking a look at https://github.com/ecmwf-ifs/loki/blob/main/loki/transformations/remove_code.py, in particular the remove_dead_code option to the RemoveCodeTransformation. This will eliminate provably unreachable code.

Hi, sorry, indeed It was the wrong reproducer. I updated it
bug_statement.tar.gz

Hi @ecossevin, thanks for the updated test, I can see the relevant lines now. However, I'm still not able to reproduce the failure you claim, as the code "just works" for me. In particular, at the breakpoint you inserted in test.py, I get:
(loki_env) $ python3 test.py
dbg 60 <SymbolAttributes BasicType.DEFERRED>
> /lus/h2resw01/hpcperm/naml/bug_statement/test.py(62)get_horizontal_idx()
-> routine.body=SubstituteExpressions(rename_map).visit(routine.body)
(Pdb) fminj
DeferredTypeSymbol('FMINJ', None, None, None, False)
(Pdb) rename_map
{Scalar('JL', None, None, None, False): Scalar('JLON', None, None, <SymbolAttributes BasicType.INTEGER, kind=    JPIM>, False)}

If I then use dead code elimination before inspecting the generated (example below), I also get a very sensible looking version of the kernel that seems to have inlined all the relevant internal subroutines.
(Pdb) from loki import do_remove_dead_code
(Pdb) do_remove_dead_code(routine)
(Pdb) print(routine.to_fortran())

So, I'm not sure where to go from here, but this all seems fine to me. For reference, I'm using latest main.

Hi, thanks for your answer.
Indeed, running python3 test.py with latest main works. The bug is when running python3 -m pdb test.py.


An endtry after bar(|) is ignored

Describe the bug
In some situation, an endtry after bar(|) is ignored.
To Reproduce
Consider the following bug.vim:
function s:throw(msg) abort
  throw a:msg
endfunction

function s:main() abort
  try
    try
      throw 'err1'
    catch
      call s:throw('err2') | endtry
  catch
    echo 'catch'
  endtry
endfunction

call s:main()

Detailed steps to reproduce the behavior:

Run vim --clean -S bug.vim
E605: Exception not caught: err2 is shown.

Expected behavior
catch is shown.
Environment (please complete the following information):

Vim version 8.2.3446 (This occurs in v8.2.3416 and after.)
OS: Arch Linux
Terminal: mintty

Additional context
      call s:throw('err2') | endtry

This does not occur if changes the above line to:
      call s:throw('err2')
    endtry

      let _ = s:throw('err2') | endtry

      throw 'err2' | endtry

Thank you!


inputs are not properly documented

This documentation is not comprehensive. For example, how does one set the 'Add project name to publish path' input? Its not actually documented!

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

ID: d227a6f2-a94b-1c05-57e4-b63d42e2b9e5
Version Independent ID: d063e189-d0fd-4ca3-c108-a0bd2ae49d22
Content: .NET Core CLI task - Azure Pipelines
Content Source: docs/pipelines/tasks/build/dotnet-core-cli.md
Product: devops
GitHub Login: @steved0x
Microsoft Alias: dastahel

Hey @johngallardo Thanks for the feedback. I've just made some updates and thingk your scenario is a little clearer now. However, I would love and feedback you have if you had some time to take a look at the refreshed docs.

I'll be closing this issue, feel free to open another issue if you have any more feedback


No Entities appear

I don't know if I just don't understand how or when this integration should be used, but my intent was the following:
Monitor the “Docker” Containers (Add-ons installed from HA). Nothing more.
As I was reading the Documentation, I came across the following explanation:
When Home Assistant is used within a Docker container, the Docker daemon should be mounted as follows -v /var/run/docker.sock:/var/run/docker.sock.
My HA Instance in not within a Docker Container as far as I am aware. I don't see it in Portainer, and it wasn't the Docker Install Option when I set it up.  It's Set up the “usual way”, I'd never consciously install HA on docker for this reason, it always manages to generate big problems for no reason.
If I configure the integration the same as the example config, I only get this in the Logs:
[Docker]: Can not connect to Docker API (Missing valid docker-host. Either DOCKER_HOST or local sockets are not available.)
Every imaginable thing I've read about troubleshooting involves this thing: /var/run/docker.sock. So it seems every one except me runs HA in Docker for some reason.
But as I understand it that should only apply when HA was installed the “Docker way” not the standalone installation.
Maybe it isn't supposed to work this way, but I thought it “should” be able to monitor the other “real” docker container “add-ons” running on the System.
If for whatever reason I have to do the /var/run/docker.sock Thing as everyone else apparently, then can someone explain how I am even supposed to do that if Hass or Homeassistant isn't even listen in Portainer.

What type of HA are you using? Docker? HAOS?

I will close this one, if it happens again, please raise a new issue.


Use handlebars to compile html templates?

I want to have static files with html syntax and handlebars vars/functions,
and want to render them to a static html file.
I can easily achieve that with pug, the integrated commandline tool takes a .pug template and renders it to html.
I prefer to use plain html syntax and therefore would like to use handlebars,
but the cli just outputs a function to the output file.
How can I achieve that something like handlebars inputfile.hbs outputfile.html
creates a html file, that doesn't depend on any js anymore?(want to use this for mail templates)

This project looks promising, although I have never tried it.
I have created bootprint for a similar purpose, but it may be more than you need.


[test] Modify lit replacements for Android ARMv7

Android ARMv7 has an LLVM triple of armv7-none-linux-androideabi, but
the Swift module triple is just armv7-none-linux-android. The change
removes the "eabi" bit for the %module-target-triple substitution of lit
to avoid an error in the test
test/SourceKit/CursorInfo/cursor_swiftonly_systemmodule.swift.
Android AArch64 wasn't affected because the LLVM triple for it is just
aarch64-none-linux-android.
This should fix the Android ARMv7 CI (https://ci-external.swift.org/job/oss-swift-RA-linux-ubuntu-16.04-android/)
/cc @rintaro

@swift-ci please smoke test

@swift-ci please smoke test os x platform