Excessive memory usage - how to debug?

My running instance of the Pylance server regularly consumes 3GB of resident memory and 6.5GB of virtual memory, which I would consider excessive given the size of my workspace.
I just upgraded to the latest everything, but the issue remains. I'm now running:
VSCode 1.54.3
Pylance 2021.3.2
I use the SSH extension because all of my source code lives on my Linux server, but I dev on it from my Windows laptop. So the Pylance extension is enabled remotely and disabled locally.
My workspace consists of 9 Python projects, many of which contain a local virtualenv living inside the project's directory, which I activate as the Python interpreter in VSCode when working on that project.
In total there are 18,900 .py files in these projects, of which 17,820 live inside the venv directories.
What I'm wondering is how I can debug what the extension is doing, where the memory is going, and how many / which files it is indexing. If I open the Process Explorer in VSCode, it gives me no information about memory usage on the remote side (memory says 0 MB for everything), it can only tell me memory usage locally. But it's the remote machine's Pylance that is consuming all the memory.
I also have yet to find a way to see what files the indexer is working on. If I have multiple Python interpreters in various venvs, are all of the venvs indexed all the time? Or does the indexer only keep the currently active venv indexed in memory?

try turning on trace "python.analysis.logLevel": "Trace" in your settings.json and view the Python Language Server output window.
see https://github.com/microsoft/pylance-release/blob/main/TROUBLESHOOTING.md#filing-an-issue

A few follow-up questions...
You mentioned that you have 9 Python projects. Are you using a multi-root workspace, one root for each project? If not, what do you mean by "project"?
Do you have the diagnosticMode set to "openFilesOnly" or "workspace"? The default is "openFilesOnly".
Do you have the indexer enabled? By default, it is currently disabled. If it's enabled, can you disable it and see if that changes the memory usage in a measurable way?

Yes, I'm using a multi-root workspace. The 9 Python projects have been added via "Add Folder to Workspace..."
Here are all the python.* settings that are overridden in my settings.json:
    "python.languageServer": "Pylance",
    "python.venvPath": "${workspaceFolder}/venv",
    "python.analysis.autoImportCompletions": false,
    "python.analysis.diagnosticMode": "workspace"
    "python.analysis.typeCheckingMode": "basic",

I'm not sure how to check if the indexer is enabled -- is it a separate thing from the analyzer? My status bar constantly says "X files to analyze". In fact this is one of the things I wanted to flag - the analyzer doesn't seem to ever rest. It's always got files to be analyzed. Just when I think it's done, the number remaining jumps back up into the hundreds.
Since upgrading to the latest version of Pylance, a new behaviour I have noticed is that it now regularly consumes > 100% CPU. When this happens, everything in VSCode is laggy -- there is a ~10s delay for syntax highlighting to update, for a debug session to launch, for a debug session to terminate, for Ctrl+hover
boxes to appear, etc.
Below is the (very large) dump of the Python Language Server trace log, after launching a fresh session of VSCode with no open editors. I just sat there for about 30 minutes watching this log get dumped, and not touching VSCode. Pylance was consuming 130-160% CPU throughout. And the analysis never seemed to finish -- it still said "394 files to analyze" when I quit.
pylance.log

From the above logs, indexing is not enabled. You're on a stable build and have not set "python.analysis.indexing": true.
There are loads of files in those logs that appear to take multiple seconds to analyze, which is a bit concerning. Is this code available anywhere to take a look at what patterns may be causing a performance problem?
Note that in multi-root, each root gets its own analysis, because each have their own distinct import roots, selected interpreters, etc. With the diagnostic mode set to workspace, all of them are going to analyze all of the code in all of their folders for all info, which will likely cause high memory usage.

Most of the code is not open source, but I could possibly share some select files if there any specific ones you'd like to see?

With the diagnostic mode set to workspace, all of them are going to analyze all of the code in all of their folders for all info

Is there really no way to exclude certain directories from analysis? For example I see it going into a bunch of temp spaces auto-generated by pip/setuptools, like build/lib/ and dist/ and .eggs/ . I already have these excluded in my .gitignore files. Why is code analysis not respecting .gitignore?
In my workspace, I have only about ~1000 source files that belong to the projects, which I wouldn't consider an unreasonable number. The vast majority of the spurce code lives in the venv/ directories. But why venv/ directories included in analysis? It seems like the only thing that needs to happen here is type inference for any objects/functions my code may be referencing. But I don't see why full analysis would be needed on source code that isn't mine -- i.e. I don't need code errors highlighted in venv/ files.
How does Pylance decide that a file needs re-analysis? On the surface it looks like the same files are getting analyzed again and again when nothing has changed in their contents. I see "Background analysis message: invalidateAndForceReanalysis" a bunch of times in the log.
Given that code analysis is the most time-consuming and resource-intensive task that Pylance performs, does it have the ability to cache the result of analysis and persist this across VSCode sessions? Or does it throw everything away and start again from scratch re-analyzing the entire universe every time VSCode is launched?

Why is code analysis not respecting .gitignore?

I'm not aware of any analysis that respects .gitignore in this way. A language specific analyzer shouldn't be expected to respect a VSC's settings like that.
You can make a pyrightconfig.json in each workspace root, and then use the exclude to omit folders you don't want to be open: https://github.com/microsoft/pyright/blob/master/docs/configuration.md#main-pyright-config-options
I'd also consider switching to openFile mode and see how much of a difference that makes.
We try and ignore venvs, but if you are opening a folder that has more than one, maybe each workspace doesn't know about each others and is going through. Note that simply printing logs that contain venv folders is not a bad thing; we need to analyze the libraries you reference in order to analyze your code. If you're saying that we are showing diagnostics for unopened files in the venvs, then that's unintentional.

I see Background analysis message: invalidateAndForceReanalysis a bunch of times in the log.

It could be that we are picking up file change events and are reanalzying. Events like file deletions and such force us to throw away analysis because that invalidates things like imports (which are very difficult to reason about). If you make that pyrightconfig.json file and add "verboseOutput": true, the logs will get even more verbose and show file change events. You can check and see if those invalidateAndForceReanalysis events are correlated with anything.

Given that code analysis is the most time-consuming and resource-intensive task that Pylance performs, does it have the ability to cache the result of analysis and persist this across VSCode sessions? Or does it throw everything away and start again from scratch re-analyzing the entire universe every time VSCode is launched?

No, we reanalyze on open (and on invalidations). Persisting analysis is a pretty difficult task, and much of the analysis we do doesn't cleanly serialize.

With a multi-root workspace, we instantiate the type analyzer once for each root. So you're effectively running nine instances in parallel, and each has its own in-memory type cache.
Since diagnosticMode is set to "workspace", you're analyzing all files under each root rather than just the files you have open. As Jake suggested, switching to "openFilesOnly" will decrease the memory usage and time spent analyzing.
Pylance is smart about when files are re-analyzed, but files that are imported by code in different roots will get parsed and analyzed separately. This is required since the settings for each root can be different, and settings can affect the analysis. If you are seeing that files are getting analyzed multiple times without any edits, that probably explains why.
By default, Pylance assumes that it should include all ".py" and ".pyi" files under a workspace root. As Jake said, if you want to include a subset of files, you can create a pyrightconfig.json file within the root that specifies an "include" and/or "exclude" section.

I've enabled verboseOutput in pyrightconfig.json and have attached the output here, in case there's anything helpful in it:
pylance-verbose.log
From what you've said, it sounds like the method of code discovery in the analyzer is file-based -- it starts at project-root/ and recursively walks the directory tree collecting .py files. But using that approach, how can the analyzer know whether the statement import sqlalchemy should link to the contents of:
build/lib/sqlalchemy or
.eggs/sqlalchemy-1.3-py3.8.egg/ or
venv/lib/python3.8/site-packages/sqlalchemy/ or
venv2/lib/python3.8/site-packages/sqlalchemy/ or
.tox/testenv/lib/python3.8/site-packages/sqlalchemy/ ?
My (naive) gut feeling is that it would make more sense for code discovery to be importlib based. Starting with a project's setup.py, the package source directory can be discovered, and then only crawl into modules that the source package actually imports, resolving modules into file paths with importlib. This would completely avoid the risk of wasting CPU cycles analyzing irrelevant .py files in directories like build/lib/, dist/, .eggs/ or any redundant/inactive venv*/ directories.
Looking at my output log I see a huge amount of time devoted to analyzing the contents of dkbarn-apiclient/.eggs/* which is a hidden temp directory that got made because I ran python setup.py build one time. It just feels like the code discovery built into Pylance would be smarter if the paths it chose to crawl were more informed by the actual imports of the package in question, rather than relying on path exclusion lists hard-coded in the analyzer (.git, __pycache__, node_modules) or manually curated in config files.

Import resolution is different from determining which files are in your local project. Imports can be (and often are) resolved by following paths outside of your workspace directory.
Imported files are not analyzed completely. They are analyzed only to the extent that their types can be determined to satisfy the imports. You'll notice that errors and warnings are not displayed for source files that are imported from outside of your workspace.
The files that comprise your "project" are assumed to be the source files under your workspace root. There are situations where you may want to include only a subset of those files, but including all files under the root is the correct answer for the vast majority of Python projects. You can override this behavior if you want. This approach is consistent with VS Code language servers for similar languages (e.g. TypeScript).

Thank you both for taking the time to answer all my questions, I'm learning a lot about how Pylance works and how I can best configure my settings to improve its performance.

The files that comprise your "project" are assumed to be the source files under your workspace root. There are situations where you may want to include only a subset of those files, but including all files under the root is the correct answer for the vast majority of Python projects.

I'm not sure I completely agree with that assumption. The vast majority of Python projects are setuptools-based, and every setuptools project is going to include a mixture of code that should be analyzed and code that shouldn't, since tools like pip and ezinstall by default use the project root as scratch space for storing temporary build artifacts, like those in build/, dist/, and .eggs/. It would be helpful if Pylance did not place the burden on every individual Python developer to manually add these paths to an exclusion list in a VSCode setting.
This is where I think it would be really useful for Pylance to respect the .gitignore file. Note that VSCode itself already has an awareness of .gitignore -- there is a setting for excluding its contents from search results: search.useIgnoreFiles
If Pylance had a similar boolean flag, then all of these standard temp locations, which are very likely to be in every Python project's .gitignore, will not have to be added to multiple exclusion lists.

The vast majority of Python projects are setuptools-based

From what I've seen from the editor tooling end, the vast majority of Python projects aren't installable packages at all, and contain no build artifacts. Most people are opening up leaf projects that are never consumed by anyone else or are deployed as-is (webapps, scripts, data science code, student code, the works). You'd be surprised how limited the userbase is that has ever written or contributed to an installable package, compared to other types of projects.
I'm sympathetic to having a better default for our "include" configs. While I can think of cases where people may want code analyzed in gitignored files, I think that it's rare. But it's also the case that at the end of the day, we still may need to analyze files that are ignored, especially virtual envs.

I agree with what Jake said. The vast majority of Python projects are not setuptools-based. They're simple scripts or programs that are deployed as-is. It sounds like you have a pretty atypical project. Pylance provides the configuration knobs to accommodate more complex projects, but the defaults are tuned for the common case.
.gitgnore is a configuration file for source control. It specifies which files should be checked in to the repo or not. It would be very odd to conflate that with "Python source files that should be type analyzed". I can't think of any precedent for this in other tooling, and for good reason.

To be honest what's feeling so awkward to me about VSCode is how it conflates "project folder" with "source folder". These aren't the same concepts, and other IDEs that I've used (like PyCharm) rightly make a distinction between the two. Very often the actual source code lives in a src/ or <package_name>/ subdirectory within the project, and when the IDE allows the user to register this subdirectory as its entry point for code analysis, it completely removes the need to maintain exclusion lists.
Going back to the original problem... I now have a paired-down workspace. It is still multi-root, but it now contains only these 3 directories:
/share/dev/src/dkbarn/dkbarn-apiclient
/share/dev/src/dkbarn/dkbarn-wdb
/share/dev/src/dkbarn/dkbarn-wdb-ui
Here's the mystery: according to the output log pylance-verbose2.log the analyzer is descending into directories that are not in my workspace, and not referenced by anything in my workspace. Directories like:
/share/dev/src/dkbarn/dkbarn-backup
/share/dev/src/dkbarn/dkbarn-finance
/share/dev/src/dkbarn/dkbarn-stats
/share/dev/src/dkbarn/dkbarn-media_filer
Why is it doing that??

By default, all source files within a workspace are considered to be part of the project. All IDEs I've used make the same assumption. I think PyCharm does the same, right? In any case, you can configure Pylance further if your needs dictate. The pyrightconfig.json file supports inclusion lists, exclusion lists, "extra paths" (for import resolution), and even multiple "execution environments". For full details, refer to this documentation.
To the best of my knowledge, very few Pylance users are making use of multi-root workspaces, so it's possible that you're encountering issues that have not been experienced/reported previously.
I just tried to recreate the scenario you've described above, and I'm not able to repro the behavior you're seeing. I created a multi-root workspace with two root folders. I placed a third folder next to them. I placed code files in all three folders. The structure looks like this. I then created a workspace and added the starred directories ("src1" and "src2" but not "src3").
temp
|- src1*
|     |- test1.py
|- src2*
|     |- test2.py
|- src3
      |- test3.py

I then set diagnosticMode to "workspace" for each of the two folders.
I confirmed that only test1.py and test2.py were analyzed. The third file test3.py was not opened or parsed.
Would you be willing to create a simplified version of your setup that demonstrates what you're seeing? Thanks!

I'm unable to reproduce the issue with a simplified setup similar to yours. So I'm going to continue poking around at my workspace to see what about it is causing this behaviour.
However, I did notice something strange when I created the simplified setup. These were my steps:

"File > Close Workspace" to close down the original workspace.
Created the following directory structure:

/share/dev/src/test/
                  |- proj1/
                      |- foo.py
                  |- proj2/
                      |- bar.py
                  |- proj3/
                      |- baz.py

"File > Add Folder to Workspace... > /share/dev/src/test/proj1"

At this point, I noticed a bizarre thing in the Pylance log:
[Info  - 6:37:56 PM] Pylance language server 2021.3.3 (pyright be28f16e) starting
[Info  - 6:37:56 PM] Server root directory: /home/dkbarn/.vscode-server/extensions/ms-python.vscode-pylance-2021.3.3/dist
[Info  - 6:37:56 PM] No configuration file found.
[Info  - 6:37:56 PM] Setting pythonPath for service "proj1": "/share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8"

Something somewhere remembered the dkbarn-apiclient/venv from my previous workspace, even though I closed it and started a new one.

"File > Add Folder to Workspace... > /share/dev/src/test/proj2"
"File > Save Workspace As... > /share/dev/src/test/workspace.code-workspace"

Saving the workspace caused the whole window to reload and the output logs to restart. This time the Pylance logs said this:
[Info  - 6:46:18 PM] Setting pythonPath for service "proj1": "/usr/bin/python"
...
[Info  - 6:46:21 PM] Setting pythonPath for service "proj2": "/share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8"

So proj1 was using a more sensible python path, but proj2 was still set to some ghost of a previous workspace's venv.

This is the content of the Python log window. More references to the dkbarn-apiclient/venv, as if it's set as my master Python interpreter or something. I can't find where this might be coming from in the settings.
User belongs to experiment group 'pythonaa'
User belongs to experiment group 'pythonSendEntireLineToREPL'
User belongs to experiment group 'pythonNotDisplayLinterPrompt'
User belongs to experiment group 'pythonTensorboardExperiment'
User belongs to experiment group 'pythonFindInterpretercf'
User belongs to experiment group 'CollectLSRequestTiming - control'
User belongs to experiment group 'CollectNodeLSRequestTiming - experiment'
> conda --version
> pyenv root
> python3.7 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> python3.6 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> python3 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> python2 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> python ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> conda info --json
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
Error 2021-03-25 18:56:33: Failed to check if file needs to be fixed [EntryNotFound (FileSystemError): Unable to read file 'vscode-remote://ssh-remote+dkbarn-htpc/home/dkbarn/.config/Code/User/settings.json' (Error: Unable to resolve non-existing file 'vscode-remote://ssh-remote+dkbarn-htpc/home/dkbarn/.config/Code/User/settings.json')
	at _handleError (/home/dkbarn/.vscode-server/bin/2b9aebd5354a3629c3aba0a5f5df49f43d6689f8/out/vs/server/remoteExtensionHostProcess.js:87:151863)
	at async y.readText (/home/dkbarn/.vscode-server/extensions/ms-python.python-2021.3.680753044/out/client/extension.js:9:328725)
	at async p.doesFileNeedToBeFixed (/home/dkbarn/.vscode-server/extensions/ms-python.python-2021.3.680753044/out/client/extension.js:61:578263)
	at async /home/dkbarn/.vscode-server/extensions/ms-python.python-2021.3.680753044/out/client/extension.js:61:577390
	at async Promise.all (index 0)
	at async p.getFilesToBeFixed (/home/dkbarn/.vscode-server/extensions/ms-python.python-2021.3.680753044/out/client/extension.js:61:577336)
	at async p.updateTestSettings (/home/dkbarn/.vscode-server/extensions/ms-python.python-2021.3.680753044/out/client/extension.js:61:576963)] {
  code: 'FileNotFound'
}
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
Starting Pylance language server.
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
Python interpreter path: ./venv/bin/python
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
Error 2021-03-25 18:56:36: Diagnostic Code: InvalidPythonInterpreterDiagnostic, Message: No Python interpreter is selected. You need to select a Python interpreter to enable features such as IntelliSense, linting, and debugging.
Diagnostic Code: InvalidPythonInterpreterDiagnostic, Message: No Python interpreter is selected. You need to select a Python interpreter to enable features such as IntelliSense, linting, and debugging.
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> conda --version
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"
> /share/dev/src/dkbarn/dkbarn-apiclient/venv/bin/python3.8 ~/.vscode-server/extensions/ms-python.python-2021.3.680753044/pythonFiles/pyvsc-run-isolated.py -c "import sys;print(sys.executable)"

The above troubles sound like a core extension bug than anything; Pylance just uses the interpreter selected by the core extension so it's possible there's some bug in the interpreter detection/management code.

I just tried to recreate the scenario you've described above, and I'm not able to repro the behavior you're seeing. I created a multi-root workspace with two root folders. I placed a third folder next to them. I placed code files in all three folders. The structure looks like this. I then created a workspace and added the starred directories ("src1" and "src2" but not "src3").
temp
|- src1*
|     |- test1.py
|- src2*
|     |- test2.py
|- src3
      |- test3.py

I then set diagnosticMode to "workspace" for each of the two folders.
I confirmed that only test1.py and test2.py were analyzed. The third file test3.py was not opened or parsed.
Would you be willing to create a simplified version of your setup that demonstrates what you're seeing? Thanks!

Hi @erictraut , I think I've got a reproducible scenario now. The problem is caused the existence of the pyrightconfig.json file. If you create the same directory structure as before, but this time put a pyrightconfig.json file inside the top-level temp/ directory, which contains only the following contents:
{
    "verboseOutput": true
}

When you launch VSCode, the Python Language Server log will include a line like this:
[Info  - 12:44:35 PM] No include entries specified; assuming /share/dev/src/temp
And it will then start crawling into src3/test3.py, despite these files not being a part of your workspace.
This feels like a bug to me. Simply having a pyrightconfig.json file shouldn't change the file discovery behavior of Pylance just because the include setting is not defined.

Thanks for following up.
In a multi-root workspace, a different pyrightconfig.json file should be specified for each root. All of the paths in a pyrightconfig.json file are assumed to be relative to the root directory, so it wouldn't make sense to have a common pyrightconfig.json file for all roots.
A pyrightconfig.json file that is located in a directory that is not a workspace root should probably be ignored. I'll investigate that issue.

I confirmed that the code currently walks up the directory hierarchy until it reaches the root of the drive or it finds a config file. This behavior makes sense for the pyright command-line tool because you may be invoking it from deep within a project. But it doesn't make sense for an IDE-based language server because the IDE (in this case, VS Code) will define the project root(s), which dictate where the config file(s) should be located.

@jakebailey, here's a PR to review when you have a chance: https://github.com/microsoft/pyright/pull/1726

The above PR made it into the last release; AFAIK this effectively "fixes" this issue by no longer having this "walking up" behavior, at the expense of each root requiring its own config. For now, this is the right way to do things; our current configuration system isn't designed to share configs between workspaces and the old behavior was unintended.
If sharing configs more generally is desired, that'd be an enhancement to consider separately from this performance bug. (There is prior art for this, like tsconfig.json.)


Choking on f(::Int...)

Trying it out with a large package I found
julia> @stable f(::Int...) = 2
ERROR: syntax: invalid "::" syntax around /bla/DispatchDoctor/uWnHi/src/DispatchDoctor.jl:306

Thanks, looks like another edge case I need to add. In the meantime you can do f(::Vararg{Int}) and it should hopefully work.

Looks like this line: https://github.com/MilesCranmer/DispatchDoctor.jl/blob/532ebcb39d509d859e784357c1dc13ac95e7fe1a/src/DispatchDoctor.jl#L247 is not injecting the symbol here. It normally should do a gensym if any arg does not have a symbol.

Fixed:
julia> @stable f(::Int...) = 2
f (generic function with 1 method)

julia> f(1, 2)
2

Send more if you find 'em!


Remove device types restriction

Remove device types in argument.

this commit fixed the issue:
https://github.com/mehrdadh/microtvm-device/commit/d70d0602c32d6839eeb2aea8a92321ceb0193150


=Get Ahead in Roblox with Our Free Robux Generator - Instant Access! [ PUp]

ˏˋ°•*⁀➷Get Ahead in Roblox with Our Free Robux Generator - Instant Access! [ PUp]
"STOP! You're Missing Out on THOUSANDS of Free Robux - Learn How to Get Rich in Roblox NOW!
Are you tired of grinding for hours on end just to earn a measly amount of Robux in Roblox?  Well, look no further because we have the ultimate solution for you!
🔴📺📱👉 Click here free robux codes
🔴📺📱👉 Click here free robux codes
Introducing the secret method that has been hidden in plain sight this whole time - a way to earn FREE Robux without spending a single penny! That's right, you heard us correctly. No more wasting your hard-earned money on Robux packages or memberships. With this simple trick, you can start raking in the Robux and become the envy of all your friends in no time.
But wait, it gets even better. Not only will you learn how to earn free Robux, but we'll also show you how to multiply your earnings exponentially. Imagine waking up every day to see your Robux balance skyrocketing without any effort on your part. This is not a dream - it's a reality that you can achieve right now.
And the best part? This method is completely LEGIT and SAFE. You won't have to worry about getting banned or scammed because we've tested it thoroughly and can guarantee its effectiveness. Say goodbye to shady Robux generators and sketchy websites that promise free Robux but deliver nothing but disappointment. With our method, you can rest easy knowing that you're in good hands.
So what are you waiting for? Don't let this opportunity slip through your fingers. Click on the link below to access our exclusive guide on how to earn free Robux and start living your best life in Roblox today.  Your friends will be begging to know your secret - don't keep them waiting any longer."
"EXCLUSIVE: Get FREE Robux NOW! The Ultimate Guide to Unlimited Robux in Roblox - No Scam, No Surveys, Just LEGIT Ways to Earn Robux for FREE!
Are you tired of spending all your hard-earned money on Robux in Roblox? Do you want to level up your game without breaking the bank? Look no further, because we have the ultimate secret to getting FREE Robux that will blow your mind!
In this comprehensive guide, we will reveal the top strategies and methods to earn Robux without spending a dime. From completing simple tasks and surveys to participating in exclusive events and promotions, we have all the insider tips and tricks to help you stack up your Robux balance in no time.
But wait, there's more! We will also show you how to leverage your creativity and skills to earn even more Robux through game development and virtual item sales. With our expert advice and step-by-step instructions, you'll be rolling in Robux before you know it.
Forget about those shady websites and scams promising free Robux - we guarantee that our methods are 100% safe, legitimate, and proven to work. Say goodbye to emptying your wallet for virtual currency and hello to a world of endless possibilities in Roblox.
So what are you waiting for?


Drop Python 3.4 from docs and restore the transifex link in readme

Python 3.4 was dropped in #2601, this change replace the minimal Python version 3.4 to 3.5 in the documentations.
This also the restore the transifex link that was accidentally removed from the readme file.
Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] The changes are tested.
[ ] The code is documented (docstrings, project documentation).

Wonder if translate should be on its own, or under Contribute section?
Also, it's hard to say which emoji this is, I think that earth emoji 🌎 would be more readable
https://emojipedia.org/earth-globe-europe-africa/

@Pacu2 we could put it under the contribute section, but it would probably be too much in a single section. We could split it up to two sub sections, but would not be looking better (by far).
I think it would be better to keep it separated for the visual and to quickly catch the localization section. But maybe it would be better to move it below the Contribute section. What do you think?


Moved Examples docs to appropriate docstring

Just noticed this when reading through the code - VERY minor.
The Examples docstring for register_dataarray_accessor referred
to register_dataset_accessor instead.  Moved the example to
register_dataset_accessor.

[ ] Closes #xxxx
[ ] Tests added / passed
[ ] Passes git diff upstream/master | flake8 --diff
[ ] Fully documented, including whats-new.rst for all changes and api.rst for new API

^ hopefully don't need to fill these in

Thanks!


Bug/update disabling models

Pull Request
Are you a current Fivetran customer?
Fivetran created PR
What change(s) does this PR introduce?
Bug Fixes

Add all model variables to the README "Disabling Models" section
Remove model variables from this package's dbt_project.yml to avoid potential conflict with a user's settings.

Did you update the CHANGELOG?

[x] Yes

Does this PR introduce a breaking change?

[ ] Yes (please provide breaking change details below.)
[x] No  (please provide an explanation as to how the change is non-breaking below.)

Did you update the dbt_project.yml files with the version upgrade (please leverage standard semantic versioning)? (In both your main project and integration_tests)

[x] Yes

Is this PR in response to a previously created Bug or Feature Request

[x] Yes, Issue/Feature [link bug/feature number here] #34
[ ] No

How did you test the PR changes?

[x] CircleCi
[ ] Local (please provide additional testing details below)

Select which warehouse(s) were used to test the PR

[x] BigQuery
[x] Redshift
[x] Snowflake
[x] Postgres
[x] Databricks
[ ] Other (provide details below)

Provide an emoji that best describes your current mood

🐧
Feedback
We are so excited you decided to contribute to the Fivetran community dbt package! We continue to work to improve the packages and would greatly appreciate your feedback on our existing dbt packages or what you'd like to see next.

@fivetran-avinash I have updated the pushed the requirements and readme changes!


Other events, as an alternative to the Locker Rot Virus event

The 'Locker Rot Virus' really breaks up the gameplay and adds some excitement for everyone in the server. I'm interested in finding more automated events. The Nemesis AI would select from a list (perhaps based on some criteria, like online player count) and activate it for the server.
Right now the 'Locker Rot Virus' event can happen every hour, if a top 10 player (of any metric) is online. Practically this should result in it happening about every hour (if the server has enough people playing on it). With more types of minigames, more variation could exist.
In #74 Neilaf had the idea for a headcrab infestation in the streets. I like that, perhaps the spawn points are abused by the AI to spread some type of mutant monsters into the city for a short while.
I'd be interested in hearing more ideas

Maybe the Nemesis AI can also target someone his bolt generator. Stimulating raids on players who have their bolt protector out for the longest.
Back in the day I also organised some team deathmatches. Maybe we can also make an event like this were people have to assign for the deathmatch and choose a team to join.  This might need some thinking through, because if 1 team has all automatic rifles and exosuits, it is not fair. So maybe there can be a point system for the equipment being taken into the battle. Long shot idea.


document python user directory install for crash

[Current coverage][cc-pull] is 79.70% (diff: 100%)

Merging [#145][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master       #145   diff @@
==========================================
  Files            16         16
  Lines          1651       1651
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1316       1316
  Misses          335        335
  Partials          0          0

Powered by Codecov. Last update [cc0de5e...7941b0c][cc-compare]
[cc-base-branch]: https://codecov.io/gh/crate/crash/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/crate/crash/compare/cc0de5e103e728dcd97251cfb75d8b3f35a47877...7941b0c680ffd3414294329244df16bcf84f78fc?src=pr
[cc-pull]: https://codecov.io/gh/crate/crash/pull/145?src=pr

lgtm


Prediction Result Not Displaying Correctly.

@vaishnavid0604  I am working on a crop and rainfall prediction system to forecast rainfall for different regions and months. The system correctly identifies the region as "NORTH INTERIOR KARNATAKA" and the month as "SEP." However, when attempting to display the predicted rainfall value in millimeters, only the header information is shown, and the actual prediction result is missing.
Steps to Reproduce:
Provide input for the region: "NORTH INTERIOR KARNATAKA"
Provide input for the month: "SEP"
Initiate the prediction process.
Observe the output displayed, which only includes the region and month, but not the predicted rainfall value.
Expected Outcome:
The system should display the predicted rainfall value in millimeters for the specified region ("NORTH INTERIOR KARNATAKA") and month ("SEP").
Additional Information:
I have verified that the predicted rainfall data is being correctly fetched from the data source or model.
There are no apparent issues with variable names or data formatting in the code responsible for displaying the result.
I have tried incorporating print statements and debugging tools to trace the issue, but have not been able to identify the root cause.

Run rainfall_prediction.py alone in shell to check for errors, if it gives desired results on shell, then it should work here also.


feat(js): automation test 1

Summary
JavaScript API client code generation in TypeScript
General feedback:
Pros:

Get working code fast
Usage seems accurate

Cons:

DX is not as good as what we offer today
If we go with a fully generated client, we will need scripts to post-generation tooling (lint, type check etc).

OpenAPI typescript-node:
Pros:

Repository is active
Good documentation
Allow custom templates, which would improve the tooling (lint, tsconfig, etc.) and allow us to provide our own client
Provide built-in post processing lint

Cons:

Slow (still faster than writing the whole client)
Verbose
Unable to use the retry strategy
Usage is different that what we provide (require auth on every method)

Swagger typescript-axios:
Pros:

Repository is active
Faster than OpenAPI

Cons:

Less configuration than OpenAPI
No built-in node http generator (only provide axios, fetch)
Types are not exported by default (TBC)
Verbose
Unable to use the retry strategy
Usage is different that what we provide (require auth on every method)

🔨 The codegen job will run at the end of the CI.
Make sure your last commit does not contain generated code, it will be automatically pushed by our CI.


fix: 🐛 Fixed Auto comment workflow issues

Issue Title : Auto comment on PR-merged & Issue-closed

Info about the related issue (Aim of the project) :
Name: Yash K. Saini
GitHub ID: GitHub ID
Idenitfy yourself: (Mention in which program you are contributing in. Eg. For a WoB 2024 participant it's, WoB Participant)
WoB'24 participant

✅ Closes: #6
Describe the add-ons or changes you've made 📃
This pull request includes updates to GitHub Actions workflows to improve consistency and fix minor issues. The most important changes include renaming a workflow, updating permissions, and fixing environment variable usage.
Type of change ☑
What sort of change have you made:

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[X] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested? ⚙
NA
Checklist: ☑

[X] My code follows the guidelines of this project.
[X] I have performed a self-review of my own code.
[X] I have commented my code, particularly wherever it was hard to understand.
[ ] I have made corresponding changes to the documentation.
[X] My changes generate no new warnings.
[X] I have added things that prove my fix is effective or that my feature works.
[ ] Any dependent changes have been merged and published in downstream modules.

@UTSAVS26 Review the PR & add labels Level3 to it.

hi @UTSAVS26 can you add gssoc & hacktoberfest labels on this PR, and assign it to me

hi @UTSAVS26 can you add gssoc & hacktoberfest labels on this PR, and assign it to me

Sorry bro, but this PR will be merged before WoB merging into GSSOC so i can't be able to add it now.

hi @UTSAVS26 can you add gssoc & hacktoberfest labels on this PR, and assign it to me

Sorry bro, but this PR will be merged before WoB merging into GSSOC so i can't be able to add it now.

no you can as your project is in gssoc now @UTSAVS26

hi @UTSAVS26 can you add gssoc & hacktoberfest labels on this PR, and assign it to me

Sorry bro, but this PR will be merged before WoB merging into GSSOC so i can't be able to add it now.

no you can as your project is in gssoc now @UTSAVS26

let me confirm it onces


feat: use cloud storage from amalthea

Adds cloud storage for the new amalthea operator and with the new csi rclone version.
/deploy renku=feat-jupyter-free-sessions amalthea-sessions=feat-add-cloud-storage renku-notebooks=feat-jupyter-free-sessions renku-gateway=feat-add-renku-refresh-token-for-data-service renku-ui=andrea/custom-launcher-jupyter-free extra-values=amalthea-sessions.deployCrd=false,amalthea-sessions.rcloneStorageClass=csi-rclone-387-secret-annotation #notest

This change is part of the following stack:

#360

#338

#375

#387 ◀

Change managed by git-spice.

You can access the deployment of this PR at https://renku-ci-ds-387.dev.renku.ch

General Question: there's still https://github.com/SwissDataScienceCenter/renku-data-services/pull/347 that does a bit of cleanup in cloud storage and probably will cause quite a bit of conflict with this, so I'm wondering what the best way would be for us to bring this together with your changes. There's also lots of changes @leafty is working on in regards to cloud storage, and 3 people working on the same bits of code at the same time is bound to cause issues. maybe we should sync?

When it comes to #347 I think we should split out the API breaking change and merge that at some other time. There is still a lot of testing and minor fixes that are needed on the UI as well. So if we can not have the API breaking change then we dont have to distract the UI with these changes (in addition to many already introduced with the new amalthea). You opened #347 @Panaetius do you think you can split out the API breaking change?
As for the cloud storage changes that @leafty will introduce. I think she is standing by until we merge more things. So after we get this PR and the one furtehr in the stack (#411) I think that @leafty can start targeting the same release branch we have been targeting.
But yeah just to be safe lets have a quick chat in the afternoon tomorrow.

As for the cloud storage changes that @leafty will introduce. I think she is standing by until we merge more things. So after we get this PR and the one furtehr in the stack (#411) I think that @leafty can start targeting the same release branch we have been targeting.

If I understand things correctly, the new sessions API will not support Renku 1.0. In which case the changes should be reasonable.

Note: waiting for a rebase, so I can try to work from this branch.

When it comes to https://github.com/SwissDataScienceCenter/renku-data-services/pull/347 I think we should split out the API breaking change and merge that at some other time.

but the API is currently broken and that it works is mostly an accident, any update to sanic or one of its components could break it. So yes, it's a breaking API change but at the same time it's more of a bugfix and unbreaking the API. I wouldn't hold off on this. And it is needed for that PR. Also https://github.com/SwissDataScienceCenter/renku-ui/pull/3299 addressed those changes on the UI AND addresses the changes to storage, so there's a bit of a triangle dependency here.


addProximityCheck error

We have been having issues where some people cant hear some players they need to restart and it works. But they have been having the same error

Was this issue fixed? If so, how? i am seeing the same issue

The only way this can happen is if a resource overrides the proximity check. Find out which resource is for some reason setting the handler to nil and you should be set.
Only thing broken here is that the override call doesn't immediately error if it's not passed a function reference.

If y'all could try out this branch and let me know if the issue is fixed that would be great.


improved server security

This adds support for serverside authentication using the oauth2 client_credentials grant type and aad (note: only aad v1 authentication flows are currently supported) to securely communicate with a signaling server

can we plz squash and merge this - i don't want to see my "wip" style commits in our history forever 😅

the MultithreadedTestRunner and the SpinningCubeTestRunner projects consume dependencies differently and it get's me every time. i'm going to fix them.

Could you please also update webrtcConfig.json with auth config values (don't check in secret), everything else is publiuc

changed the name since as we agreed we're going to land temporary turn credentials here as well.

closing in favor of https://github.com/CatalystCode/3dtoolkit/pull/63


Mobile: Duplicate basemap icons when online

When online the locally stored basemap icons should be hidden because they appear as duplicates of the online basemaps (SD and mountain icon buttons).

Shouldn't we just consider changing the Icons?
Letting users use these while online would also save data on their devices.


Carving out a high-level githubClient interface for all operations.

This allows us to
a) see, in a consistent way, how all API operations using *github.Client are done, to make sure that
- pagination works
- all returned values are validated first
- HTTP errors are handled consistently
b) later, create mock implementations of the githubClient interface for unit testing of the client
c) focus on high-level operations in the main clients, not Github API details or pagination/validation/error handling.
cc @twelho @dinosk please review

Codecov Report

Merging #26 into master will decrease coverage by 1.24%.
The diff coverage is 28.42%.

@@            Coverage Diff             @@
##           master      #26      +/-   ##
==========================================
- Coverage   54.86%   53.62%   -1.25%
==========================================
  Files          22       23       +1
  Lines        1068     1130      +62
==========================================
+ Hits          586      606      +20
- Misses        447      484      +37
- Partials       35       40       +5

Impacted Files
Coverage Δ

github/auth.go
57.27% <ø> (ø)

github/client_organization_teams.go
0.00% <0.00%> (ø)

github/client_repositories_user.go
0.00% <0.00%> (ø)

github/client_repository_deploykey.go
0.00% <0.00%> (ø)

github/client_repository_teamaccess.go
0.00% <0.00%> (ø)

github/resource_deploykey.go
0.00% <0.00%> (ø)

github/resource_teamaccess.go
22.22% <0.00%> (+4.04%)
:arrow_up:

github/githubclient.go
27.15% <27.15%> (ø)

github/resource_organization.go
84.00% <50.00%> (-6.48%)
:arrow_down:

github/client_organizations.go
70.00% <66.66%> (-1.43%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

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


NPM package using getContext/setContext doesn't work

Describe the bug
I have distilled the issue to this:

Create an npm package that exposes a function that uses setContext or getContext
Make sure that repo does not have svelte as a direct dependency but only as peerDependency (or not even that)
Import the package and use the function
It crashes with: Function called outside component initialization

This only happens as npm package, using a local dependency works fine.
Reproduction
I tried reproducing in a REPL but it works fine, that's why I assume it's a Svelte Kit issue.
Here is the minimal reproduction repo: https://github.com/enyo/context-issue
See the issue immediately:
git clone https://github.com/enyo/context-issue.git
cd context-issue/svelte-kit-app
npm install
npm run dev

The repo contains the package, where the dist/index.js has this content:
import { setContext } from 'svelte';

const testSetContext = () => setContext('test', 'value');

export { testSetContext };
//# sourceMappingURL=index.js.map

and a svelte kit app that uses it.
Logs
No response
System Info
System:
    OS: macOS 12.3.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 293.67 MB / 32.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 17.9.0 - ~/.nvm/versions/node/v17.9.0/bin/node
    Yarn: 1.22.18 - ~/.nvm/versions/node/v17.9.0/bin/yarn
    npm: 8.5.5 - ~/.nvm/versions/node/v17.9.0/bin/npm
  Browsers:
    Chrome: 102.0.5005.61
    Firefox: 100.0.2
    Safari: 15.4
    Safari Technology Preview: 15.4
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.50
    @sveltejs/kit: next => 1.0.0-next.347
    svelte: ^3.44.0 => 3.48.0

Severity
blocking all usage of SvelteKit
Additional Information
No response

This error usually happens when there are multiple versions of svelte, which means that the resolve.dedupe config vite-plugin-svelte adds to the vite config has failed.
It's a strange coincidence but a similar error just happened today with alpha testing of vite-3  in a test for vite-plugin-svelte: https://github.com/sveltejs/vite-plugin-svelte/blob/main/packages/e2e-tests/kit-node
Some information that can help track this down:
stacktrace from vite-plugin-svelte test
Error: Function called outside component initialization
    at get_current_component (file:///home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/svelte/vite-plugin-svelte/node_modules/.pnpm/svelte@3.48.0/node_modules/svelte/internal/index.mjs:953:15)
    at setContext (file:///home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/svelte/vite-plugin-svelte/node_modules/.pnpm/svelte@3.48.0/node_modules/svelte/internal/index.mjs:985:5)
    at Proxy.setSomeContext (file:///home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/svelte/vite-plugin-svelte/packages/e2e-tests/_test_dependencies/svelte-api-only/index.js:4:2)
    at index.svelte:35:1
    at Object.$$render (/home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/svelte/vite-plugin-svelte/node_modules/.pnpm/svelte@3.48.0/node_modules/svelte/internal/index.js:1758:22)
    at Object.default (root.svelte:43:39)
    at eval (/.svelte-kit/runtime/components/layout.svelte:8:41)
    at Object.$$render (/home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/svelte/vite-plugin-svelte/node_modules/.pnpm/svelte@3.48.0/node_modules/svelte/internal/index.js:1758:22)
    at root.svelte:37:37
    at $$render (/home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/svelte/vite-plugin-svelte/node_modules/.pnpm/svelte@3.48.0/node_modules/svelte/internal/index.js:1758:22)

in this stacktrace svelte is referenced in node_modules, but another version of svelte exists in vite's optimizedDeps in node_modules/.vite/, so when this second svelte is loaded, it doesn't have the state of the first instance and this error happens.

@dominikg mh, yes I assumed that it had something to do with deduping not working, I'm just really stumped because the package doesn't have a svelte dependency by itself. So where does the second version come from?
Is there a workaround for this that you know of?

you can try playing with optimizeDeps.exclude and optimizeDeps.include.
vite-plugin-svelte should generate a working configuration for that, you can see it when you run with DEBUG=vite:* npm run dev
thanks for uploading the dependency tmp-context-issue to the npm registry, i was able to reproduce the same error outside of sveltekit: https://stackblitz.com/edit/vitejs-vite-aegr3m?file=package.json,src%2Fmain.js&terminal=dev
color me stumped too.

I didn't get it to work with either optimizeDeps.exclude or include.

Unfortunately, I also found it by fiddling around with the config values so I don't have a definite answer as to why it works. My thought process was if it's force bundled the package would reference the same svelte instance as the app.

I tried the same fix in other projects and it surfaced other bugs that I wasn't able to get rid of, so ssr.noExternal workaround is not viable unfortunately.

@dominikg so is it safe to say that this issue is cause by vite-plugin-svelte?


How is the registration transform represented?

[EDIT: See second post for a much simpler example]
I am registering two very similar point clouds using the example application and example config.yaml.
/usr/local/bin/pmicp --isTransfoSaved true -v --config config.yaml reference.csv reading.csv

Which outputs
* KDTreeMatcher: initialized with knn=1, epsilon=0, searchType=1 and maxDist=inf
Applying 1 DataPoints filters - 65503 points in
* SamplingSurfaceNormalDataPointsFilter - 32623 points out (-50.1962%)
Applied 1 filters - 32623 points out (-50.1962%)
PointMatcher::icp - reference pre-processing took 0.133289 [s]
Applying 1 DataPoints filters - 68161 points in
* RandomSamplingDataPointsFilter - 33939 points out (-50.2076%)
Applied 1 filters - 33939 points out (-50.2076%)
PointMatcher::icp - reading pre-processing took 0.00785914 [s]
PointMatcher::icp - 11 iterations took 10.2297 [s]
match ratio: 0.900027

The final transform is given as:
   0.999963   0.0017609 -0.00838319    -7138.19
-0.00174143    0.999996  0.00232884     954.812
 0.00838725 -0.00231415    0.999962     4881.22
          0           0           0           1

When I look at the difference between in and out dataset it definitely not translated by that amount. Am I mis-understanding something?
==> test_data_in.csv <==
x,y,z,R,G,B
539715 , 4.06576e+06 , -1.37 , 25443,25443,16705
539715 , 4.06576e+06 , -1.37 , 21074,20046,13107
539714 , 4.06576e+06 , -1.27 , 23644,27756,18504
539716 , 4.06576e+06 , -1.35 , 31611,32639,22616
539714 , 4.06576e+06 , -1.24 , 22102,23901,15163
539719 , 4.06576e+06 , -1.37 , 28013,24929,19275
539721 , 4.06576e+06 , -1.49 , 29041,24929,21331
539720 , 4.06576e+06 , -1.45 , 21074,16191,14649
539722 , 4.06576e+06 , -1.48 , 31354,27499,22102

==> test_data_out.csv <==
x,y,z,R,G,B
539717 , 4.06576e+06 , -2.19436 , 25443,25443,16705
539717 , 4.06576e+06 , -2.19549 , 21074,20046,13107
539716 , 4.06576e+06 , -2.10365 , 23644,27756,18504
539718 , 4.06576e+06 , -2.16581 , 31611,32639,22616
539715 , 4.06576e+06 , -2.07991 , 22102,23901,15163
539720 , 4.06576e+06 , -2.17419 , 28013,24929,19275
539723 , 4.06576e+06 , -2.26834 , 29041,24929,21331
539721 , 4.06576e+06 , -2.24427 , 21074,16191,14649
539723 , 4.06576e+06 , -2.25612 , 31354,27499,22102

==> test_ref.csv <==
x,y,z,R,G,B
539573 , 4.06592e+06 , -1.08 , 44461,46260,53456
539575 , 4.06592e+06 , -0.8 , 44204,46003,53199
539575 , 4.06592e+06 , -0.78 , 43433,45232,52685
539574 , 4.06592e+06 , -1.07 , 44461,46260,53456
539575 , 4.06592e+06 , -1.21 , 44461,47031,54227
539575 , 4.06592e+06 , -1.19 , 44461,47031,53970
539574 , 4.06592e+06 , -1.2 , 44461,46774,53970
539574 , 4.06592e+06 , -1.22 , 44461,46774,54227
539568 , 4.06592e+06 , -0.87 , 16191,19018,14135

Here is my reference:
https://www.dropbox.com/s/ocf1u1ybuqpj8y8/reference.csv?dl=0
and my reading:
https://www.dropbox.com/s/2s9wewixlo7e8q2/reading.csv?dl=0

reference.csv
0.90821682  0.17055668  0.43373967
0.12891558  0.02148021  0.13497946
0.16901483  0.98805444  0.04437725
0.80122159  0.32292443  0.14591973
0.88935897  0.98422458  0.34453548
0.66926361  0.46065528  0.33612961
0.68486366  0.65538499  0.84244886
0.72579089  0.41827523  0.57473447
0.89471663  0.86449667  0.94694097
0.51761563  0.37865354  0.03339747

reading.csv
1.90821682  0.17055668  0.43373967
1.12891558  0.02148021  0.13497946
1.16901483  0.98805444  0.04437725
1.80122159  0.32292443  0.14591973
1.88935897  0.98422458  0.34453548
1.66926361  0.46065528  0.33612961
1.68486366  0.65538499  0.84244886
1.72579089  0.41827523  0.57473447
1.89471663  0.86449667  0.94694097
1.51761563  0.37865354  0.03339747

Final transformation:
 0.278974 -0.528653  0.801686   3374.46
 0.410202  0.820435  0.398273   484.883
-0.868279  0.217745  0.445734   4457.86
        0         0         0         1

Which seems really weird, I get the same output using:
./icp_simple reference.csv reading.csv
Thanks so much for the help, I really appreciate it. Just feel I'm mis-understanding something, but I've read the docs a number of times now :)

Be careful when you produce small examples. ICP is like doing a robust regression for line fitting. If you remove too many points, outlier filters will remove good points.
Here is your example with a functional configuration file:

readingDataPointsFilters:

referenceDataPointsFilters:

matcher:
  KDTreeMatcher:
    knn: 1
    epsilon: 0

outlierFilters:

errorMinimizer:
  PointToPointErrorMinimizer

transformationCheckers:
  - CounterTransformationChecker:
      maxIterationCount: 40
  - DifferentialTransformationChecker:
      minDiffRotErr: 0.01
      minDiffTransErr: 0.01
      smoothLength: 4

#inspector:
#  NullInspector

inspector:
 VTKFileInspector:
     baseFileName: pointmatcher-run1
     dumpPerfOnExit: 0
     dumpStats: 0
     dumpIterationInfo: 1
     dumpDataLinks: 1
     dumpReading: 1
     dumpReference: 1

logger:
  NullLogger
#  FileLogger

This config won't work with more complex point clouds.

That makes sense for the small (too simple example), I'm still curious what
is going wrong with the CSV in the first post, where the transformation is
also very drastic. The two clouds should only be off by a couple of meter
but instead the translation magnitude of almost 9000.
On Tue, Oct 17, 2017 at 10:32 AM, François Pomerleau <
<EMAIL_ADDRESS>wrote:

Be careful when you produce small examples. ICP is like doing a robust
regression for line fitting. If you remove too many points, outlier filters
will remove good points.
Here is your example with a functional configuration file:
[image: result]
https://user-images.githubusercontent.com/502089/31678109-17747216-b33b-11e7-8311-c581578cb518.gif
readingDataPointsFilters:
referenceDataPointsFilters:
matcher:
KDTreeMatcher:
knn: 1
epsilon: 0
outlierFilters:
errorMinimizer:
PointToPointErrorMinimizer
transformationCheckers:

CounterTransformationChecker:
maxIterationCount: 40
DifferentialTransformationChecker:
minDiffRotErr: 0.01
minDiffTransErr: 0.01
smoothLength: 4

#inspector:
NullInspector
inspector:
VTKFileInspector:
baseFileName: pointmatcher-run1
dumpPerfOnExit: 0
dumpStats: 0
dumpIterationInfo: 1
dumpDataLinks: 1
dumpReading: 1
dumpReference: 1
logger:
NullLogger
FileLogger
This config won't work with more complex point clouds.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ethz-asl/libpointmatcher/issues/227#issuecomment-337298210,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAkBR167iKoDhrD_--StZAtUPROXB6x7ks5stOShgaJpZM4P7RfN
.

You can check what is a happening for each iteration using Paraview and the VTKFileInspector from the last config.


lower v-link priority #390

use-case from @rpkilby:
Save

alternative solution to #390 would be to document this:
Save

(but I can't think of a use case where v-link should be evaluated before v-on)

Oops, I was working on the very same thing just now and just saw this... it's fixed in df223ac, but thanks for the PR!


WARNING:charging_station:An unsupported type:

Hi,
I found these in the logs.
vwsfriend-vwsfriend-1  | 2023-09-08T12:14:41+0000:WARNING:charging_station:An unsupported type: ELLI_REMOTE was provided, please report this as a bug
vwsfriend-vwsfriend-1  | 2023-09-08T12:14:41+0000:WARNING:charging_station:An unsupported type: PCS_REMOTE was provided, please report this as a bug
vwsfriend-vwsfriend-1  | 2023-09-08T12:14:41+0000:WARNING:charging_station:An unsupported type: ONLINE was provided, please report this as a bug
vwsfriend-vwsfriend-1  | 2023-09-08T12:14:41+0000:WARNING:charging_station:An unsupported type: DCS_REMOTE was provided, please report this as a bug

Added in 0.24.0


Add support for a top-level "default" target, and targets that are logical-groups of other targets only.

This allows for a better CLI in the future, where a canonical "default target" could be a sort of "phony" target that groups together a few common tasks.

Support for default_target added.

Support added for a groups key.


[Bug] build llvmlite error

Description
I am trying to install spleeter according to the instruction. when runing the pip command I get an error message telling me that llvmlite building does not work.
Step to reproduce

python3 -m venv spleeterenv && source spleeterenv/bin/activate
python3 -m pip install -r requirements.txt && pip install pytest pytest-xdist
Got build llvmlite error

Output
Building wheels for collected packages: llvmlite
Building wheel for llvmlite (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ryc433tr/llvmlite/setup.py'"'"'; file='"'"'/tmp/pip-install-ryc433tr/llvmlite/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-9kran4na
cwd: /tmp/pip-install-ryc433tr/llvmlite/
Complete output (26 lines):
running bdist_wheel
/usr/bin/python3 /tmp/pip-install-ryc433tr/llvmlite/ffi/build.py
LLVM version... Traceback (most recent call last):
File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 106, in main_posix
out = subprocess.check_output([llvm_config, '--version'])
File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
**kwargs).stdout
File "/usr/lib/python3.5/subprocess.py", line 693, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.5/subprocess.py", line 947, in init
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 192, in
main()
File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 182, in main
main_posix('linux', '.so')
File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 109, in main_posix
"to the path for llvm-config" % (llvm_config,))
RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
error: command '/usr/bin/python3' failed with exit status 1
ERROR: Failed building wheel for llvmlite
Running setup.py clean for llvmlite
Failed to build llvmlite
Installing collected packages: decorator, audioread, llvmlite, numba, resampy, librosa
Running setup.py install for llvmlite ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ryc433tr/llvmlite/setup.py'"'"'; file='"'"'/tmp/pip-install-ryc433tr/llvmlite/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-vt2kp1uy/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/mister/.local/include/python3.5m/llvmlite
cwd: /tmp/pip-install-ryc433tr/llvmlite/
Complete output (29 lines):
running install
running build
got version from file /tmp/pip-install-ryc433tr/llvmlite/llvmlite/_version.py {'full': 'aa11b129c0b55973067422397821ae6d44fa5e70', 'version': '0.32.1'}
running build_ext
/usr/bin/python3 /tmp/pip-install-ryc433tr/llvmlite/ffi/build.py
LLVM version... Traceback (most recent call last):
File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 106, in main_posix
out = subprocess.check_output([llvm_config, '--version'])
File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
**kwargs).stdout
File "/usr/lib/python3.5/subprocess.py", line 693, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.5/subprocess.py", line 947, in init
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'llvm-config'
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 192, in <module>
    main()
  File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 182, in main
    main_posix('linux', '.so')
  File "/tmp/pip-install-ryc433tr/llvmlite/ffi/build.py", line 109, in main_posix
    "to the path for llvm-config" % (llvm_config,))
RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
error: command '/usr/bin/python3' failed with exit status 1
----------------------------------------

ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ryc433tr/llvmlite/setup.py'"'"'; file='"'"'/tmp/pip-install-ryc433tr/llvmlite/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-vt2kp1uy/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers
Environment

OS
Linux / Ubuntu

Installation type
pip  python3

Additional context

@stefanschauer
you have to install llvm first. Since your OS is Ubuntu, the following command should be helpful
sudo apt-get install llvm-8

You may need to create a symlink for llvm-config
sudo ln -s /usr/bin/llvm-config-8 /usr/bin/llvm-config

Note that at least llvm 8.0.0 is needed. The default llvm version from sudo apt-get intall llvm may not work.

Thanks @csukuangfj
@stefanschauer  did it solve your problem ?


[BUG] .robot.toml is overriding all profiles configurations

Describe the bug
hello,
.robot.toml is overriding all profiles configuration, not only the one in it
To Reproduce
In robot.toml:
[profiles.ci]
description = "CI pipelines"
enabled = { if = "environ.get('CI') == 'true'" }

In .robot.toml:
[profiles.local.extend-env]
MY_VAR = "some value that I regularly change"

Then when I use the profile "ci", it is not found anymore:
$ robotcode -p ci profiles list
[ ERROR ] Can't find any configuration profiles matching the pattern 'ci'.

  Active   Selected   Enabled   Precedence   Name    Description
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                                                                          local

Expected behavior
toml files are merged: profiles (both sections and subsections) that are in the robot.toml but not in .robot.toml should be kept
Desktop (please complete the following information):

RobotCode Version 0.87.0
OS: MacOS
Python Version 3.8.19
RobotFramework Version 7.0.1

if you want to have local profiles in .robot.toml and don't want to override existing profiles you have to use extend-profiles in .robot.toml
example:
[extend-profiles.local.extend-env]
MY_VAR = "some value that I regularly change"

In the next days I hopefully have the time to publish the new robotcode website ;-)

oooh, did not see that one, thanks!


Investigate switch to clap v4.0

Clap now has a new release candidate
https://github.com/clap-rs/clap/blob/master/CHANGELOG.md#migrating
https://epage.github.io/blog/2022/09/clap4/

We love helping new contributors!
If you have questions or need help as you work on your first Ockam contribution, please leave a comment on this discussion.
If you're looking for other issues to contribute to, checkout this discussion and labels -  https://github.com/build-trust/ockam/labels/good first issue or https://github.com/build-trust/ockam/labels/help wanted

https://github.com/build-trust/ockam/issues/3434 has some good discussion on why we need it.

Hi all,
I've started to look a bit into the first steps of the upgrade, and linked a wip PR to the ticket. In case anyone wants to continue from here the first steps available.
Best regards,
Harald

@mrinalwadhwa
Is there anything else within this ticket that should be investigated or can it be closed?
Best regards,
Harald

clap v4 was released a couple of days ago https://github.com/clap-rs/clap/releases
@hargut thanks to your fantastic PR last week, I think the final switch from the release candidate to the released version should be pretty simple.

I've created a new issue to address the upgrade to v.4.0 https://github.com/build-trust/ockam/issues/3506


[feature] Implement simple saving SVG schemes

This PR tries to close #62
I've used the same implementation as @mjbcopland provided in https://github.com/APIs-guru/graphql-voyager/issues/62#issuecomment-41251608 and located button inside PanelHeader

It's a simple implementation, because not included styles inside SVG file

Source:

Result:

Hey, @FluorescentHallucinogen
According to article, we can add styles into svg.
It works for me in a next way.

source image;
screenshot from native Linux viewer;
screenshot from Chrome

If it's OK, we can leave it.

This has been open for 3+ years, any hope of getting it merged?

GraphQL Editor can export schemas


Loading child of child into its parent view

is it possible to load a child of a child view into its parent view
PARENT
||
==== CHILD1
||
====== CHILD 2
Here, parent is also inside a "ui-view" ,and child1 is also inside a"ui-view" of parent.
child2 wants to be placed in"ui-view"of parent from "the child1"

https://gist.github.com/eddiemonge/f6a58169c2846731a1eb

also, what about named view of a parent?


docs: add uninstall for helm release

added the missing helm release cleanup
syntax highlighting for shell scripts
Signed-off-by: Dipankar Das<EMAIL_ADDRESS>

LGTM 🙏🏼


ohlcv merge operator

Hi Dmitry, first of all great work on this library, I also wanted to fork ta so it saves me a lot of time.
I'm using candles with more added info, and figured it would be good to use the sequence operators with a custom candle type.

Hello!
Thank you for you contribution. Unfortunately this improvement breaks backward compatibility a little bit, so it may be released only in 0.6.0 . Also I want to investigate this problem to try to reduce trait requirements in collapse_timeframe method.

np, let me know if I can do more

Ok, I migrated to use Add, thank you and let me know if you need help on the project in the future.


fix: some improvements

after this https://github.com/codeceptjs/CodeceptJS/pull/3953 is accepted, we could now tackle the issue with multiple test runs.
closes #81

@kobenguyent  when we could get new version out?

@kobenguyent  PR was merged

@kobenguyent
I used latest version 1.10.4 and even 1.10.3 but still using this command:
npx codeceptjs run-workers 5 --grep '@C' --reporter mochawesome --reporter-options reportDir='./output',overwrite=false
it creates 3 Testrail runners:


'lynx' doesn't support 64bit architecture!

I just installed scoop on an up-to-date Windows 10 device and ran this:
scoop install lynx

which produced this:
Installing '7zip' (18.06) [64bit]
7z1806-x64.msi (1.7 MB) [==========================================================================================================================================================] 100%
Checking hash of 7z1806-x64.msi ... ok.
Extracting 7z1806-x64.msi ... done.
Linking ~\scoop\apps\7zip\current => ~\scoop\apps\7zip\18.06
Creating shim for '7z'.
Creating shortcut for 7-Zip (7zFM.exe)
'7zip' (18.06) was installed successfully!
Installing 'innounp' (0.47) [64bit]
innounp047.rar (137.0 KB) [========================================================================================================================================================] 100%
Checking hash of innounp047.rar ... ok.
Extracting innounp047.rar ... done.
Linking ~\scoop\apps\innounp\current => ~\scoop\apps\innounp\0.47
Creating shim for 'innounp'.
'innounp' (0.47) was installed successfully!
Installing 'cacert' (2019-01-23) [64bit]
cacert-2019-01-23.pem (214.4 KB) [=================================================================================================================================================] 100%
Checking hash of cacert-2019-01-23.pem ... ok.
Linking ~\scoop\apps\cacert\current => ~\scoop\apps\cacert\2019-01-23
Running post-install script...
'cacert' (2019-01-23) was installed successfully!
Installing 'openssl' (1.1.1a) [64bit]
Win64OpenSSL-1_1_1a.exe (60.9 MB) [================================================================================================================================================] 100%
Checking hash of Win64OpenSSL-1_1_1a.exe ... ok.
Unpacking innosetup... done.
Linking ~\scoop\apps\openssl\current => ~\scoop\apps\openssl\1.1.1a
Creating shim for 'openssl'.
'openssl' (1.1.1a) was installed successfully!
'lynx' doesn't support 64bit architecture!

and then this happened:
PS > lynx
lynx : The term 'lynx' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the
path is correct and try again.
At line:1 char:1
+ lynx
+ ~~~~
    + CategoryInfo          : ObjectNotFound: (lynx:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Do you have any tips for how to run this lynx on my system, e.g., maybe launch PowerShell in 32-bit mode? Is that possible?
Thanks for any tips!

Try installing lynx using scoop install -a 32bit lynx to force installing in 32-bit mode. The lynx.json manifest only specifies a download for 32-bit since one of its dependencies (OpenSSL) must be installed in 32-bit mode, and installing lynx in 64-bit would install the 64-bit version of OpenSSL, which cannot be used with a 32-bit executable.

I discoved and launched Windows PowerShell (x86) and installed lynx - yay 👏. But when I try to run lynx, it says:
lynx requires the 32-bit version of openssl to be installed

I'm going to keep trying things and am optimistic I'll get this to work, but it would be nice if scoop gave a message at the very beginning of this proces (when I typed scoop install lynx at a 64-bit PowerShell prompt) that said something like "it's best if you install this from a 32-bit PowerShell prompt".

Thanks for your quick reply @Calinou - I got it to work, thanks to your suggestion! If anyone else has this issue, I did the following to get it to work:
scoop uninstall lynx
scoop uninstall openssl
scoop install -a 32bit lynx

Next question: After the above it said 'lynx' suggests installing 'extras/vcredist2012'. How important is this? I did scoop bucket add extras and got this:
Git is required for buckets. Run 'scoop install git'.

I'd rather not install Git if I can help it.
Thank you.

After the above it said 'lynx' suggests installing 'extras/vcredist2012'. How important is this?

Some Windows programs require specific versions of the Visual C++ redistributable being installed, but it's possible that you already have it installed thanks to another program. The manifest file could wrongly suggest it too (that should be tested in a fresh Windows VM; install the package and see if it runs without errors).


Update sbs-calling-and-meeting.yml

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/sbs-calling-and-meeting.yml
88
47
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 205f0e8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/sbs-calling-and-meeting.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

new PR has been created


Server dev

Handler code is good to go:

relies on marshal code to work
Server should be fine
now initializes gwkv_server struct
now relies on handler for message parsing

Tests failed, see https://travis-ci.org/gwAdvNet2015/gw-kv-store/builds/59294121
make[1]: Entering directory `/home/travis/build/gwAdvNet2015/gw-kv-store/server'
gcc -pthread -c server-kv.c server-kv-run.c
In file included from server-kv.c:14:0:
handle_operation.h:10:28: fatal error: ../lib/marshal.h: No such file or directory
compilation terminated.
make[1]: *** [build-srcs] Error 1
make[1]: Leaving directory `/home/travis/build/gwAdvNet2015/gw-kv-store/server'
make: *** [server] Error 2

Looks like you have to fix a header location

@nks5295 Good progress, Travis fails because you need to link in your handle_operation objects, see server/test/Makefile for example. Almost ready to merge.


New package: Timers v0.1.0

Registering package: Timers
Repository: https://github.com/ufechner7/Timers.jl
Created by: @ufechner7
Version: v0.1.0
Commit: 47c1712cd7bab1fbe63c2bc45dbcd2cf53e18c63
Reviewed by: @ufechner7
Reference: https://github.com/ufechner7/Timers.jl/issues/1#issuecomment-1103226521
Description: Timers for Julia

I do not think at all that the package name "Timers" is similar to "Mixers" or "Vimes". I think it clearly describes what this package shall provide (not much implemented yet), but it shall provide a functionality similar to the Timer class of QT. Single shot timers, periodic timers, with different accuracies and tradeoffs.
Therefore I kindle ask this to be manually merged.
[noblock]


[Proposal] Add release environment to all deployment

Release environments for deployments

State: Draft
Created: 2021-07-25
Tags: deployment

Context
We should add an environment variable that allows us to know the release version, either using git commit, version, or whatever we decide TBD, we use this to track the releases of the app, and be able to use that in tracing, logging, error reporters and so on
Resolution

TBD

Links

https://docs.sentry.io/product/releases/

We should include topics like SemVer vs CalVer and when to use which one


New Rule: disallowTabs

Disallows tabs anywhere in the file/input.

I guess this duplicates in some way duplicates
{
  "validateIndentation": 4
}

But not fully

@ottumm thanks for contributing? what about tabs within strings or comments?

@markelog yeah, would it be better to extend validateIndentation to handle this? My use case is to completely disallow tabs. I was finding that validateIndentation wasn't doing that and in fact was exhibiting problems when tabs were present.
@mikesherov you're referring to literal tabs within strings, right (not '\t')? I was under the impression that tabs need to be escaped in JavaScript strings.
Regarding comments, I could add an option to ignore tabs within comments.

yeah, would it be better to extend validateIndentation to handle this? My use case is to completely disallow tabs.

I think it is better to have a different rule for it.

I was finding that validateIndentation wasn't doing that and in fact was exhibiting problems when tabs were present.

What problems?

I filed issue #1762 to track the validateIndentation issue I'm seeing.

Landed!

Awesome, thanks!


[#156334098] Upgrades Typescript to 2.8.1

Warnings

:warning:

Please include a description of your PR changes.

Affected stories

⚙ #156334098: TypeScript va aggiornato alla versione 2.8

  Generated by :no_entry_sign: dangerJS


Wrong function name has written in sample Python Channel code tab

Sample python code Channel activity tab wrong function name has written(on_teams_channel_created_activity,on_teams_channel_renamed_activity,on_teams_channel_deleted_activity)
It should be on_teams_channel_created,on_teams_channel_renamed,on_teams_channel_deleted

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

ID: 0a6d00a4-dd28-33c4-002e-2e8e7c653ce2
Version Independent ID: 0856927a-25f4-b1e0-5f1b-d55dc61796f3
Content: Subscribe to conversation events - Teams
Content Source: msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
Product: msteams
GitHub Login: @WashingtonKayaker
Microsoft Alias: anclear

@laujan Sample code documentation needs to be updated. Please take the reference from Python TeamsActivityHandler class. method name is wrong in Subscribe to conversation events having _activity text.

@TravisCragg-MSFT , @larryjin is that fine , I will update ?


community: Raise KeyError: 'request' in module langchain_community.llms.tongyi

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
        content = None
        err = None
        try:
            content = self.chain.invoke(input=dict(topic=topic,
                                         section=section,
                                         topic_description=topic_description.strip(),
                                         section_description=section_description.strip(),
                                         formatted_text=formatted_text
                                         ))
        except Exception as e:
            logger.error(f"{self.__class__} run error: {repr(e)}")
            logger.error(traceback.format_exc())
            err = e

Error Message and Stack Trace (if applicable)

Description

I'm trying to use Tongyi llm model implemented in langchain_community.llms to do sth.
When I call chain.invoke(*arg, **kwargs), Sometimes it raise Error: KeyError: 'request' for unknown reason.
It seems like the api_base_url by default is not stable., but I'm not sure.

System Info

OS:  Darwin
OS Version:  Darwin Kernel Version 24.2.0: Fri Dec  6 18:56:34 PST 2024; root:xnu-11215.61.5~2/RELEASE_ARM64_T6020
Python Version:  3.11.10 (main, Oct  3 2024, 02:26:51) [Clang 14.0.6 ]

Package Information

langchain_core: 0.3.22
langchain: 0.3.10
langchain_community: 0.3.10
langsmith: 0.1.147
langchain_openai: 0.2.11
langchain_text_splitters: 0.3.2

Optional packages not installed

langserve

Other Dependencies

aiohttp: 3.10.10
async-timeout: Installed. No version info available.
dataclasses-json: 0.6.7
httpx: 0.27.2
httpx-sse: 0.4.0
jsonpatch: 1.33
langsmith-pyo3: Installed. No version info available.
numpy: 1.26.4
openai: 1.54.3
orjson: 3.10.12
packaging: 23.2
pydantic: 2.9.2
pydantic-settings: 2.6.1
PyYAML: 6.0.2
requests: 2.32.3
requests-toolbelt: 1.0.0
SQLAlchemy: 2.0.36
tenacity: 8.5.0
tiktoken: 0.8.0
typing-extensions: 4.12.2

@Coolgiserz this might be a problem dashscope package itself.

Thanks for your reply.
After conducting some debugging, I’ve discovered that the dashscope package seems to be masking actual user-related errors. Instead of exposing the specific issues related to the user’s actions or environment, it throws a generic internal processing exception.

I will further investigate this behavior and provide more details if needed.

Sometimes raise KeyError while reaching request rate limit.


py_pytest_main and coverage

Hi ! I am trying to use py_pytest_main alongside pytest-cov to generate an HTML coverage report.
The py_pytest_main is working as expected, the only problem I have is that the HTML report is generated inside the bazel sandbox and I don't know how to have bazel copy it to bazel-testlogs/* or somewhere easily accessible so that I don't have to run my tests with --sandbox_debug and then having to manually find it using find -L ~/.cache/bazel -name "htmlcov" -type d
Is there a simple way of achieving that that I am missing?
My bazel test invocation is simply:
bazel test //:my_test --sandbox_debug --test_output=all

This is my BUILD file:
py_pytest_main(
    name = "__test__",
    args = [
        "--cov=my_test",
        "--cov-report=html",
    ],
)

py_library(
    name = "tests",
    srcs = glob(["*_test.py"]),
    deps = all_requirements,
)

py_test(
    name = "my_test",
    srcs = [
        ":__test__",
    ],
    main = ":__test__.py",
    deps = [
        ":tests",
    ],
)

My versions:

rules_py 0.7.1
rules_python 0.29.0
bazel 7.0.2

i don't know if this is the best solution, but here's what i do currently:
py_pytest_main.bzl:
load("@aspect_rules_py//py:defs.bzl", _py_pytest_main = "py_pytest_main")
load("@pip//:requirements.bzl", "requirement")

def py_pytest_main(name):
    _py_pytest_main(
        name = name,
        deps = [
            requirement("pytest"),
            requirement("pytest-asyncio"),
            requirement("pytest-cov"),
        ],
        args = [
            # report on all but passed tests
            # docs: https://docs.pytest.org/en/stable/how-to/output.html#producing-a-detailed-summary-report
            "-ra",
            # set verbositylevel
            # docs: https://docs.pytest.org/en/stable/how-to/output.html#verbosity
            "-vv",
            # enable capturing of specific warnings
            # docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html#controlling-warnings
            # docs: https://docs.pytest.org/en/stable/reference/reference.html#pytest.PytestUnhandledCoroutineWarning
            "-W error::pytest.PytestUnhandledCoroutineWarning",
            # enable automatic async test discovery
            # docs: https://pytest-asyncio.readthedocs.io/en/latest/concepts.html#auto-mode
            "--asyncio-mode=auto",
            # set package for which coverage should be collected
            # docs: https://pytest-cov.readthedocs.io/en/latest/config.html#referenc
            "--cov={}".format(native.package_name().replace("/", ".")),
            # enable branch coverage
            "--cov-branch",
            # NOTE normally we would have to set this.
            # but i have no clue how to get the output path in here.
            # thus i do it in a custom template
            # "--cov-report=lcov:$COVERAGE_OUTPUT_FILE",
        ],
        template = "//:pytest.py.tmpl",
        visibility = [":__pkg__"],
    )

pytest.py.tmpl:
# Copyright 2022 Aspect Build Systems, Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# adapted from: https://github.com/aspect-build/rules_py/blob/main/py/private/pytest.py.tmpl

import sys
import os

import pytest

if __name__ == "__main__":
    # Change to the directory where we need to run the test or execute a no-op
    $$CHDIR$$

    os.environ["ENV"] = "testing"

    args = [
        "--verbose",
        "--ignore=external/",
        # Avoid loading of the plugin "cacheprovider".
        "-p",
        "no:cacheprovider",
    ]

    junit_xml_out = os.environ.get("XML_OUTPUT_FILE")
    if junit_xml_out is not None:
        args.append(f"--junitxml={junit_xml_out}")

    # customization starts here
    coverage_lcov_out = os.environ.get("COVERAGE_OUTPUT_FILE")
    if coverage_lcov_out is not None:
        args.append(f"--cov-report=lcov:{coverage_lcov_out}")
    # customization ends here

    test_filter = os.environ.get("TESTBRIDGE_TEST_ONLY")
    if test_filter is not None:
        args.append(f"-k={test_filter}")

    user_args = [$$FLAGS$$]
    if len(user_args) > 0:
        args.extend(user_args)

    cli_args = sys.argv[1:]
    if len(cli_args) > 0:
        args.extend(cli_args)

    exit_code = pytest.main(args)

    if exit_code != 0:
        print("Pytest exit code: " + str(exit_code), file=sys.stderr)
        print("Ran pytest.main with " + str(args), file=sys.stderr)

    sys.exit(exit_code)

I'm trying to use your workaround, but I run into this error:
==================== Test output for //volleybot/tests:flow_roster_test:
ERROR: usage: __test__.py [options] [file_or_dir] [file_or_dir] [...]
__test__.py: error: unrecognized arguments: --asyncio-mode=auto --cov=volleybot.tests --cov-branch
  inifile: None
  rootdir: /home/qdii/.cache/bazel/_bazel_qdii/c4d89ef3654db70a58c3cc65bd37ef8e/sandbox/linux-sandbox/49/execroot/_main/bazel-out/k8-fastbuild/bin/volleybot/tests/flow_roster_test.runfiles/_main

Pytest exit code: 4
Ran pytest.main with ['--verbose', '--ignore=external/', '-p', 'no:cacheprovider', '--junitxml=/home/qdii/.cache/bazel/_bazel_qdii/c4d89ef3654db70a58c3cc65bd37ef8e/sandbox/linux-sandbox/49/execroot/_main/bazel-out/k8-fastbuild/testlogs/volleybot/tests/flow_roster_test/test.xml', '-ra', '-vv', '-W error::pytest.PytestUnhandledCoroutineWarning', '--asyncio-mode=auto', '--cov=volleybot.tests', '--cov-branch']
================================================================================

Does this ring a bell to you?


Comunicate between servers

We try to comunicate betweeen servers with scServer.exchange.subscribe. When run in one machine with x brokers all works fine but we now mount a horizontal cluster with x machines and ecah machine wirh x workers. All machines are conected to one state server and have a scc-broker. Now we can't use this method, have this error:
NoMatchingSubscribeTargetError: Could not find a matching subscribe target scc-broker for the channelControl channel - The scc-broker may be down

Change the question, testing and testing we detect scServer.exchange.subscribe works perfect in one servers machine, if you mount a cluster with one state server, one scc brokers and x servers with brokers and server the comunication between machines dont work. The messages in origin machine works but other server dont receive nothing.

Hi @MegaGM We updated to scc-state 6.1.0 and can't connect from machines to the horizontal cluster.
Launching 2 server on same server works fine but when add external machines, the state server show new conection but server reports this error and there is not connection between servers
{ SocketProtocolError: Socket hung up
at SCClientSocket._onSCClose (/home/xxxx/xxxxxx/node_modules/scc-broker-client/node_modules/socketcluster-client/lib/scclientsocket.js:647:15)
.....
name: 'SocketProtocolError',
message: 'Socket hung up',
code: 1006 }

@tarilo It shouldn't be the case. There are several companies successfully running each instance in the SCC cluster on its own machine right now in production.
It probably means that your scc-worker (regular) instances cannot find the correct IPs of your scc-broker instances. Maybe the port is blocked or the IP address of the machine is not publicly accessible or maybe the container port mapping is wrong or maybe because the scc-broker is running inside a container, it's passing the private container IP instead of the public IP address.
Note that you can configure the external IP address of the scc-broker instance by passing an SCC_INSTANCE_IP environment variable to the instance/container. See https://github.com/SocketCluster/scc-broker/blob/master/server.js#L9

Hi @jondubois all the servers are in the same network on google cloud. firewall has open ports. We need to run one scc-broker on each machine to setup cluster working. The parameters you say are in the scc-broker, i need to pass the scc-broker ip to the sc-server to reach the scc-broker. Setup x workers, one broker and one scc-brokers on each machine works fine. Thanks

@tarilo You shouldn't need to pass the IP of the scc-broker to regular instances, you just need to tell the scc-broker its own external IP address when you run it and it will tell the scc-state instance and then the scc-state instance will tell every other instance.

life saver


Start tests with SonarQube

Coverage remained the same at 52.381% when pulling 942bbf56ad6b497369b22c6d32ff283878cba675 on develop into 6c27d5f991d742ddefa15339dd8cf8c88a30062e on master.

Coverage remained the same at 52.381% when pulling 494a3c76bb28fb885f5737ae5daa38bc13949b5c on develop into 6c27d5f991d742ddefa15339dd8cf8c88a30062e on master.

Coverage remained the same at 52.381% when pulling dcd78a9f12785c327a831048b71b40b6df9a2fe7 on develop into 6c27d5f991d742ddefa15339dd8cf8c88a30062e on master.