SDK doesn't work in .NET 4.6.1

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Create a project with .NET core
Change the target framework to net461
Add configuration manager for x64 or x32 and target that platform
Installed the VC++ distributables (no effect)
Try to call a sample code that uses SDK that used to work with .NET core

Expected behavior
It should work like when .NET core was target platform
Version of the Cognitive Services Speech SDK
1.3.1
Platform, Operating System, and Programming Language

OS: Windows 10
Hardware - x64
Programming language: C#

Additional context
System.DllNotFoundException: Unable to load DLL 'Microsoft.CognitiveServices.Speech.core.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at Microsoft.CognitiveServices.Speech.Internal.SpeechConfig.speech_config_from_subscription(IntPtr& config, String subscriptionKey, String region)
   at Microsoft.CognitiveServices.Speech.SpeechConfig.FromSubscription(String subscriptionKey, String region)
   at SpeechCognitiveServices.Program.<CallCognitiveServices>d__3.MoveNext()

Comparing the two output. It looks like .NET core includes Microsoft.CognitiveServices.Speech.core.dll and .NET Framework output doesn't include that one? I'm not sure if it has any relationship.

You are describing the steps you took in Visial Studio?
I had the problem also once. It appears that during build/deployment the dll wasn't copied. I did a 'clean project' and 'rebuild' and it worked ...
hope this helps.

I did clean rebuild that time nothing happened.

I got same issue when I tried the demo in https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/master/samples/csharp/dotnet-windows/translation-wpf. Is there any workaround ?

I'm having the very same problem, but using a plain .netcore console app on a Windows 10 Pro PC. The dll is correctly installed on nuget package folder.
I also tested the command
"dotnet add package Microsoft.CognitiveServices.Speech" --path ".\packages" on the project folder and I see the packages correctly installed, but the same errore appear:
"System.DllNotFoundException: Unable to load DLL 'Microsoft.CognitiveServices.Speech.core.dll' or one of its dependencies: Impossibile trovare il modulo specificato. (Exception from HRESULT: 0x8007007E)"

Thanks for feedback, I tried to reproduce the problem with following steps
I am using following versions

Visual Studio 2017, version 15.9.11
Microsoft .NET Framework, version 4.7.l03190

Repro steps I had:

New Project -> Visual C# -> .NET Core -> Console App (.NET Core)
Manage Nuget Packages -> search and install "Microsoft.CognitiveServices.Speech" v1.5.1
Unload ConsoleApp1 project and edit .csproj file and replace
netcoreapp2.1
with
net461
Configuration Manager -> create x64 target

Builds OK

Configuration Manager -> create x86 target

Builds OK

Add some code which is using Microsoft.CognitiveServices.Speech to the project

Builds OK

With the same steps you get the error ?

After investigating bit more as an workaround could you please try adding RuntimeIdentifier to your project as follows (.csproj) and let us know does this help ?

Exe
net461
AnyCPU;x64;x86

win-x64

win-x86

We probably need to fix our samples regarding this.

Actually we found the source of our problem: visual studio d++ redistributable!!!
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
The PC we are using as a deploy machine for speech recognition software didn't have any vc_redist installed. In fact any solution using speech recognition libs (we tested .netcore console app, wpf .net framework) were not able to run correctly. After installing the vc_redist_x64.exe file all the samples where running correctly.
I think you should update the documentation specifying that vc_redist is a MUST HAVE lib to correctly execute the code on any machine running Windows. It may be a obvious, but if you are developing some apps and deploying to third-party machines a reminder could be really useful (we wasted about two working days of development for this missing!!!)

@simonemarra installing the vc_redist didnt work for me.
@jhakulin adding that to the csproj didnt work either.
I'm using OneClick install.. my WinForms app works fine in debug mode.
Any new ideas?

Discussed with @anbhar and the issue there was solved by manually adding Microsoft.CognitiveServices.Speech.core.dll to the application project.
Based on this thread, there is several reasons why the issue might happen.
We will collect information from here and improve our sample projects/documentation on this in coming releases.
Thanks for all feedback

@jhakulin , where can we get this missing dll?

@jhakulin , where can we get this missing dll?

@nrobert it should be in the \bin\x64\Debug or \bin\x86\Debug directory based on how you Debug - "Microsoft.CognitiveServices.Speech.core.dll"

@jhakulin , where can we get this missing dll?

@nrobert it should be in the \bin\x64\Debug or \bin\x86\Debug directory based on how you Debug - "Microsoft.CognitiveServices.Speech.core.dll".
A simple "Add -> Existing Item" to the project should do the trick. You'll want to make sure its included in the deployment.

I added this missing dll manually from the \bin\x86\Debug directory , still didn't work.
Visual studio 2017
.Net Framework project
Windows 7 x64
What do you mean  its included in the deployment? I'm new to programming

@Electrik97 You should right click on the project -> Properties -> Publish Section (screenshot attached)

Then click on "Application Files" and scroll down to the  Speech.core.dll and change the dropdown to "Included" (screenshot attached)

Once you do that, Visual Studio will include the file when you Publish/deploy the project.

@Electrik97: Window 7 is not a supported platform for the SDK. Sorry for the inconvenience.

@Electrik97: Window 7 is not a supported platform for the SDK. Sorry for the inconvenience.

Can I use it via REST API? By getting a JWT token? on windows 7 i mean

sure - for REST you don't install the SDK, so this will work.

Closing the issue, we are going to update sample + documentation in the next release. Let us know if there is new and unidentified issues related to this.

Closing the issue, we are going to update sample + documentation in the next release. Let us know if there is new and unidentified issues related to this.

Hello Jhakulin,
i have same issue in Window form application.i have migrated my application to 4.6.1 .NET framework.
but still it shows Microsoft.CognitiveServices.Speech.Core.dll not found exception.Could you please help?
when i tried in new sample window form application it works.but not in existing windows application.

@kiran5362 have you tried solutions above in the thread ?
@anbhar do you have ideas for the issue @kiran5362 has?

@kiran5362 please try the steps in this reply from this post - https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/176#issuecomment-502737298
If you add Microsoft.CognitiveServices.Speech.Core.dll to the project root manually and make sure its included in the deployment, it should be a definite fix, can you please try that and let us know the result?

@kiran5362 were you able to solve your issue ?

I am facing the same problem. Adding dll manually to the root and setting it to 'copy always' didn't work.
Everything works fine while running the app from VS2019.
Issue pops up while deploying container locally as well as when deploying container on local service fabric cluster.

@jhakulin , where can we get this missing dll?

@nrobert it should be in the \bin\x64\Debug or \bin\x86\Debug directory based on how you Debug - "Microsoft.CognitiveServices.Speech.core.dll".
A simple "Add -> Existing Item" to the project should do the trick. You'll want to make sure its included in the deployment.

I added this missing dll manually from the \bin\x64\Debug directory , still didn't work.
Visual studio 2017
.Net Framework project
Windows 7 x64
What do you mean its included in the deployment? I'm new to programming

it means that:

add the core.dll to your source code
right click on the file, select Properties
Fine the option Copy to output directory and select Copy if newer


refactor: perfom linting for punkt.py

This pull request refactors the punks.py file that contain PunktTokenizer class by doing the following:-

Removing un-used variables.
Renaming variables to follow PEP8 standard.
Removing dead code or un-used keywords and variables.
Removing un-necessary else and if's.
Replace '==' in checking boolean values with the variable value. For example refactor if value == False with if not value: (performance reasons).

(FYI @jnothman)

(FYI @jnothman)

No issues on my side. Good to see the code receiving some TLC

Thanks @12mohaned


'npm install' producing errors

npm install is producing errors on Windows, mainly with versions and 'sass' but this does not seem to effect npm test AFAICS on a quick run. I will try on Linux and Mac and report back.

I develop on Mac but this doesn't really seem like an issue with the library itself.
Since the grunt-sass package uses node-sass maybe try npm rebuild node-sass?

Yeah I remember now it is a Windows. It keep getting stuck behind on versioning on native packages (something to do with node-gyp and friends).
IIRC I bumped the node-sass version in the project and the problem went away.
FYI
C:\Users\aaron\Examples\taggle.js>npm i

><EMAIL_ADDRESS>install C:\Users\aaron\Examples\taggle.js\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-59_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-59_binding.node":

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g.

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080

><EMAIL_ADDRESS>postinstall C:\Users\aaron\Examples\taggle.js\node_modules\node-sass
> node scripts/build.js

Building: C:\Program Files\nodejs\node.exe C:\Users\aaron\Examples\taggle.js\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ 'C:\\Program Files\\nodejs\\node.exe',
gyp verb cli   'C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library=' ]
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at F (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:40:28)
gyp verb `which` failed     at E (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:43:29)
gyp verb `which` failed     at C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:54:16
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:166:21)
gyp verb `which` failed  python2 { Error: not found: python2
gyp verb `which` failed     at F (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:40:28)
gyp verb `which` failed     at E (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:43:29)
gyp verb `which` failed     at C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:54:16
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:166:21)
gyp verb `which` failed   stack: 'Error: not found: python2\n    at F (C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\which\\which.js:40:28)\n    at E (C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\which\\which.js:43:29)\n    at C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\which\\which.js:54:16\n    at FSReqWrap.oncomplete (fs.js:166:21)' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` failed Error: not found: python
gyp verb `which` failed     at F (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:40:28)
gyp verb `which` failed     at E (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:43:29)
gyp verb `which` failed     at C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:54:16
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:166:21)
gyp verb `which` failed  python { Error: not found: python
gyp verb `which` failed     at F (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:40:28)
gyp verb `which` failed     at E (C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:43:29)
gyp verb `which` failed     at C:\Users\aaron\Examples\taggle.js\node_modules\which\which.js:54:16
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:166:21)
gyp verb `which` failed   stack: 'Error: not found: python\n    at F (C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\which\\which.js:40:28)\n    at E (C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\which\\which.js:43:29)\n    at C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\which\\which.js:54:16\n    at FSReqWrap.oncomplete (fs.js:166:21)' }
gyp verb could not find "python". checking python launcher
gyp verb could not find "python". guessing location
gyp verb ensuring that file exists: C:\Python27\python.exe
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (C:\Users\aaron\Examples\taggle.js\node_modules\node-gyp\lib\configure.js:483:19)
gyp ERR! stack     at PythonFinder.<anonymous> (C:\Users\aaron\Examples\taggle.js\node_modules\node-gyp\lib\configure.js:508:16)
gyp ERR! stack     at C:\Users\aaron\Examples\taggle.js\node_modules\node-gyp\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:166:21)
gyp ERR! System Windows_NT 10.0.16299
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\aaron\\Examples\\taggle.js\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\Users\aaron\Examples\taggle.js\node_modules\node-sass
gyp ERR! node -v v9.5.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
Build failed with error code: 1
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^3.0.0 || ^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

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

npm ERR!      C:\Users\aaron\AppData\Roaming\npm-cache\_logs\2018-03-09T13_17_35_131Z-debug.log


Cache object fields to improve performance S.T. IE 11 works decently

Ref #339

Skirts the issue.  Closing.


Nuitka building error, Detecting userd Dllls ?

building

nuitka --standalone --show-memory --show-progress --mingw64 --include-qt-plugins=sensible,styles  --enable-plugin=pyside6 --output-dir=dist main.py

environment
os:
win 10 x64
pip list:
(sdpmsc) PS D:\code\sdpmsc> pip list
Package            Version
certifi            2<IP_ADDRESS>
charset-normalizer 2.0.12
idna               3.3
Nuitka             0.8.3
ordered-set        4.1.0
pip                22.0.4
PyMySQL            1.0.2
PySide6            6.2.4
requests           2.27.1
setuptools         62.1.0
shiboken6          6.2.4
urllib3            1.26.9
wheel              0.37.1
WARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.
You should consider upgrading via the 'D:\virtual\sdpmsc\Scripts\python.exe -m pip install --upgrade pip' command.
(sdpmsc) PS D:\code\sdpmsc>

error

Nuitka:INFO: Running data composer tool for optimal constant value handling.
Nuitka:INFO: Running C compilation via Scons.
Nuitka-Scons:INFO: Backend C compiler: gcc (gcc).
Nuitka-Scons:INFO: Backend linking program (no progress information available).
Nuitka-Scons:INFO: Running 'C:\\Users\\wx\\AppData\\Local\\Nuitka\\Nuitka\\gcc\\x86_64\\11.2.0-14.0.0-9.0.0-msvcrt-r7\\mingw64\\bin\\gcc.exe -o "D:\\code\\sdpmsc\\dist\\main.dist\\main.exe" -fuse-linker-plugin -flto=16 -fpartial-inlining -freorder-functions -Wl,--exclude-all-symbols -Wl,--out-implib,.\\import.lib -municode -O3 -s -Wl,--enable-auto-import -Wl,--stack,9863168 -static-libgcc<EMAIL_ADDRESS>-LC:\\developer\\Python310\\libs -lm -lpython310' took 162.04 seconds
Nuitka-Scons:INFO: Compiled 285 C files using ccache.
Nuitka-Scons:INFO: Cached C files (using ccache) with result 'cache hit': 142
Nuitka-Plugins:INFO: data-files: Included data file 'certifi\cacert.pem' due to package data for 'certifi'.
Nuitka-Plugins:INFO: pyside6: Including Qt plugins 'iconengines,imageformats,platforms,styles' below 'PySide6\qt-plugins'.
Nuitka:INFO: Analysing dependencies of 'dist\main.dist\main.exe'.
Detecting used DLLs:   0%|                                                                                | 0/38Traceback (most recent call last):
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\__main__.py", line 137, in <module>
    main()
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\__main__.py", line 123, in main
    MainControl.main()
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\MainControl.py", line 978, in main
    copyDllsUsed(
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\Standalone.py", line 1367, in copyDllsUsed
    used_dlls = _detectUsedDLLs(
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\Standalone.py", line 1137, in _detectUsedDLLs
    worker_pool.submit(
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\utils\ThreadedExecutor.py", line 45, in submit
    self.results.append(function(*args))
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\Standalone.py", line 1091, in addDLLInfo
    used_dlls = _detectBinaryDLLs(
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\Standalone.py", line 1057, in _detectBinaryDLLs
    return detectBinaryPathDLLsWindowsDependencyWalker(
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\Standalone.py", line 1020, in detectBinaryPathDLLsWindowsDependencyWalker
    result = detectDLLsWithDependencyWalker(binary_filename, scan_dirs)
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\DependsExe.py", line 185, in detectDLLsWithDependencyWalker
    result = parseDependsExeOutput(output_filename)
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\DependsExe.py", line 129, in parseDependsExeOutput
    return _parseDependsExeOutput2(getFileContentByLine(filename, encoding="latin1"))
  File "D:\virtual\sdpmsc\lib\site-packages\nuitka\freezer\DependsExe.py", line 121, in _parseDependsExeOutput2
    assert os.path.isfile(dll_filename), (dll_filename, line)
AssertionError: ('c:\\progra~2\\tencent\\\x04\x04\x04\x04we~1\\dll\\ws2_32.dll', '          [  6] c:\\progra~2\\tencent\\\x04\x04\x04\x04we~1\\dll\\WS2_32.DLL')

Dependency walker reports a DLL used in from a PATH element, that it apparently encodes wrongly.
From what I know, this code in Nuitka is somewhat correct:
def parseDependsExeOutput(filename):
    return _parseDependsExeOutput2(getFileContentByLine(filename, encoding="latin1"))

I think latin1 converts bytes pretty well, more or less directly to same thing. Not sure what \x04\x04\x04\x04we~1 is really, and what encoding ought to be used to correctly decode it. Can you provide the real name of that folder in c:\\progra~2\\tencent . That is a short path, and these normally would not cause encoding issues.
Maybe we can find a better value than latin1. Please also include your system locale.

in my computer，the same error
AssertionError: ('c:\\progra~2\\tencent\\\x04\x04\x04\x04we~1\\dll\\msvcrt.dll', '     [  6] c:\\progra~2\\tencent\\\x04\x04\x04\x04we~1\\dll\\MSVCRT.DLL')
the real name is '微信开发者工具'

Maybe I found the real reason
System environment variables exist 'C:\Program Files (x86)\Tencent\微信web开发者工具\dll'

When I delete it, the error disappears

Ok, I will check the encoding side of things, but it may turn out that dependency walker just doesn't do these things. The question then of course becomes, what loads the DLL and why, not sure what the filename is that we got here. Also can you briefly explain, what this Tencent thing is to a foreigner? :)

It is a Wechat DevTools for Mini Program.
This is the Docs
https://developers.weixin.qq.com/miniprogram/en/dev/framework/

I think Nuitka converts PATH elements to the short path, before presenting it to dependency walker. Therefore, the encoding of the output should play no role, it is basically ascii only. However, it may still use PATH it seems, so now when executing it, after putting them all in scan directory list, as short paths, now PATH environment variable is unset. That is my best effort to make sure it cannot happen anymore.
This change is on factory, but not relevant enough I think to keep this open any longer.

Currently on develop

This is part of the stable release 1.1 that I just made.


Build OpenJDK from source on Darwin

Currently both OpenJDK 7 and 8 are just prebuilt binaries on Darwin, which leads to weird discrepancies from their counterparts on Linux. One example is that since we're using the Azul (Zulu) OpenJDK 8, we get crypto key length restrictions by default. I fixed that particular issue, but branched expressions between platforms always create maintenance pain and it'd be nice to share the code.
The main obstacle is that the OpenJDK 8 build (I don't really care about 7) assumes a bunch of annoying xcodey stuff (which I think is also horribly outdated by xcode standards) on Darwin, which we'll either need to patch out or satisfy with something like xcbuild.

I actually gave this a shot a while back and you'll run into a few dependencies that are currently unavailable in Darwin (or at least were at the time). It'll be far more work than just making OpenJDK build :)

Ah yes, I've also tried and ran into some issues with cups and stuff like that. I'll push up my current attempt a bit later.

Sorry for bothering, what's the status now? I need to run openjdk 8 on darwin, but zulu seems to be too inefficient :(


fix(dbm-services): monitor dimension bzid to appid

关联研发信息
dev_branch: fix/change_monitor_dimension/#2042
target_branch: v1.2.0


Added on_stop attribute for when DEM_STOP is fired in the demo

Hello @IOExceptional, thanks for your work, I appreciate it!
Since you've already played with this thing a bit, what do you think about the current state of the project? Do you have any other ideas or suggestions?

I'm liking the project, seems to be a reliable deadlock parser (not used the dota2 features yet)
It's fast, and the observer pattern is very handy, so it's great so far!
I'll continue to use the project and give feedback or PRs as/when something crops up, but for now it's satisfying the needs I have!
Please feel free to reach out to me if need any assistance with something or if I can help you in anyway :)


feat!: add support for pool and poolOptions

Description
Introduces two new configuration options: pool and poolOptions. In #3925 configuring pools became too complex: https://github.com/vitest-dev/vitest/pull/3925#issuecomment-1717615918. This PR opens up easier API for such cases. Most users won't need these so good defaults are available as before.
In future we might open up an API for custom pools. This PR should have compatible API for such case.
Pool
Select pool which use to run tests in. Available values are 'threads'|'forks'|'vmThreads'. Defaults to 'threads'.

Should 'forks' be 'child_process' instead? Or 'processes' or 'subprocesses'?
I think after https://github.com/vitest-dev/vitest/pull/3925 we can create vmForks quite easily

Pool Options
Specify options for each pool. API shape is similar as environment + environmentOptions.
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    poolOptions: {
      threads: {
        isolate: true, // Default value
        maxThreads: 2,
        minThreads: 1,
        singleThread: false,
        useAtomics: true,
      },
      forks: {
        isolate: true,
        singleFork: false,
        minForks: 1, // Requires #3925
        maxForks: 2, // Requires #3925
      },
      vmThreads: {
        memoryLimit: "2GB",
        minThreads: 1,
        maxThreads: 2,
        singleThread: false,
        useAtomics: true,
      },
    }
  }
});

BREAKING CHANGES

--threads is now --pool=threads
--no-threads is now --pool=forks
--single-thread is now --poolOptions.threads.singleThread
--experimental-vm-threads is now --pool=vmThreads
--experimental-vm-worker-memory-limit is now --poolOptions.vmThreads.memoryLimit
--isolate is now --poolOptions.<pool-name>.isolate and browser.isolate
test.maxThreads is now test.poolOptions.<pool-name>.maxThreads
test.minThreads is now test.poolOptions.<pool-name>.minThreads
test.useAtomics is now test.poolOptions.<pool-name>.useAtomics
test.poolMatchGlobs.child_process is now test.poolMatchGlobs.forks
test.poolMatchGlobs.experimentalVmThreads is now test.poolMatchGlobs.vmThreads

Migration examples
{
  scripts: {
-    "test": "vitest --no-threads"
+    "test": "vitest --pool forks"
  }
}

{
  scripts: {
-    "test": "vitest --experimental-vm-threads"
+    "test": "vitest --pool vmThreads"
  }
}

{
  scripts: {
-    "test": "vitest --isolate false"
+    "test": "vitest --poolOptions.threads.isolate false"
  }
}

{
  scripts: {
-    "test": "vitest --no-threads --isolate false"
+    "test": "vitest --pool forks --poolOptions.forks.isolate false"
  }
}

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[x] Ideally, include a test that fails without this PR but passes with it.
[x] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[x] Run the tests with pnpm test:ci.

Documentation

[x] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[x] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

I think this PR is ready for now. We'll need #3925 and apply required changes for forks pool after that. I'll leave this PR as draft due to that requirement.
Safari browser tests are failing but I don't think I changed anything related to those.


perf(atoms): Update string_cache

swc_atoms:

Use string_cache with parking_lot patch applied.

wasm:

Pin parking_lot_core to =0.8.0 to workaround https://github.com/Amanieu/parking_lot/issues/269.

I also just ran into this parking_lot issue 😅


Ionic Native 3.x

Hi. We want to use Ionic Native 3.x, which is currently not possible with<EMAIL_ADDRESS>As #190 has been opened a while ago, I wanted to help with this.
As all native plugins have to be instantiated (ideally through injection), I added them to the DIContainer class.
When trying npm run build it failed on master.

How shall I resolve the merge conflicts? Shall I retain window.plugins.googleplus.logout etc. or shall I rely on this.googlePlus.logout?

Without understanding anything else what you did here: window.plugins.googleplus.logout would be using the Cordova plugin directly, this.googlePlus.logout would mean communicating with it via the Ionic Native plugin, correct? If so, the second one should be preferred.

@piotrowski Yes I know. I just don't know wether those changes were just a temporary and hacky workaround or wether they were meant to stay.


ALT Text Images WCAG Compliance

It would be wonderful if the default functionality for image alt text was easier to manage. Currently:

The file manger defacto inserts a title of the file name in the file manager. This is then inserted as the ALT text which does more harm then good. If I'm using a screen reader it's more preferential to have no text rather than have the file name which more times than not is more distracting then no alt text.
Let's say content editors forget to update the alt text in the file manager and add images on a page. Later on someone edits the file title. From my experience this doesn't update the original alt text that was inserted on the page thru the WYSIWYG editor. If that link was maintained it would make fixing alt tags far easier as someone could go thru the file manager and simply update the titles instead of having to go back thru the content.

Nice to have:

Some type of option requiring enforcing alt text (with possibility a decorative override option) would be a huge leap in helping clients resolve alt text issues. We frequently have a scenario where multiple editors are in place and "forget" to add alt text.
Consider the workflow of adding a file via the file manager and immediately prompting for a title / alt text for the image to be added when it's uploaded.

Also, the Page Lists add-on should read/display Alt Tags for ADA compliance.


Free up whitespace on header?

Hi there,
I downloaded your theme and love it - just had a style question for you (and if I should email this or go through another channel please tell me).  Could I free up some of the space in the blog title to tighten things up a bit?  See my crude drawing here:
https://dl.dropboxusercontent.com/u/5473387/ZZZ-bjheader.jpg
Brian

hi Brian. yes you probably can do it easy. let's ask @jelenajjo how to do it.

Hello @braimee . I'm glad you like theme. :) Here is how you can remove extra space:

Go to /assets/css/custom.min.css file
Find this part of code:
.heading{display:table;padding:21px;width:100%;height:300px;background:#f8f8f8}
Replace it with this:
.heading{display:table;padding:21px;width:100%;height:auto;margin-top:30px;background:#f8f8f8}
Save it and you should be good now. :)

Let me know if you still need help! :)

Thank you @jelenajjo I'll give that a shot soon.
On a side note, I have a handful of other minor questions about the theme that probably have easy fixes.  Is creating separate github question/issues the best way to raise those?  I don't want to clutter up this area if it's something that's more easily handled via email or another form of communications.

Yes, you could make another issue. Because someone else might be interested in same so it can help. :)

Ok the .css to get the header smaller worked perfect - thanks again!
Now I'll go open up some new issues for other little tweaks I'm hopeful you can help me with :-)


DOC: Update example of expected_shortfall

Codecov Report

Merging #361 (c035cb5) into develop (7f2d979) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #361   +/-   ##
========================================
  Coverage    99.87%   99.87%
========================================
  Files           46       46
  Lines         1653     1653
========================================
  Hits          1651     1651
  Misses           2        2

Impacted Files
Coverage Δ

pfhedge/nn/functional.py
100.00% <ø> (ø)

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 7f2d979...c035cb5. Read the comment docs.


Error on missing API key

Testing this via the GitHub Actions workflow, and the workflow passes without providing an Open AI API key secret.
This shows up in the PR diff as an HTML comment:
<!--
ERROR: the paragraph below could not be revised with the AI model due to the following error:
You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.
-->

So, the user will (hopefully) catch the error there, but I can imagine many users forgetting to do this and it'd be nice to "fail faster". The workflow should probably fail so it can show the user a big ❌  right away.
Also, the HTML comment above seems like an error message from Open AI. It'd be nice to show our own more plain-language error.
Not sure if this issue belongs here or in the manubot repo. I think this package would be the place to throw the error, and hopefully the manubot CLI wrapper calling it would catch and report the error appropriately.

The code that's supposed to handle a missing OpenAI API key is here: https://github.com/manubot/manubot-ai-editor/blob/main/libs/manubot_ai_editor/models.py#L146-L154. I believe the AI revision GitHub workflow sets the env var OPENAI_API_KEY to an empty string rather than not setting it at all, and that check only checks if it's None.
Anyway, here's the relevant PR that fixes it: #46. Feel free to test it and see if you're seeing the workflow fail; it should, since I don't see anything in the manubot ai_revision CLI wrapper, https://github.com/manubot/manubot/blob/main/manubot/ai_revision/ai_revision_command.py#L41-L54, that catches exceptions thrown on model instantiation.


Issue: ElevationAboveStreamEuclidean Produces Empty TIFF

Issue: ElevationAboveStreamEuclidean Produces Empty TIFF
When executing the elevation_above_stream_euclidean function, the resulting DEM outputs an empty .tif file.
Steps to Reproduce:
# Modify no data value
wbt.modify_no_data_value(
    i="dem.tif",
    new_value="0.0"

)

# Breach single cell pits
wbt.breach_single_cell_pits(
    dem="dem.tif",
    output="breach_single_cell_pits.tif"
)

# Fill depressions using Wang and Liu's method
wbt.fill_depressions_wang_and_liu(
    dem="breach_single_cell_pits.tif",
    output="filldepress.tif",
    fix_flats=True,
    flat_increment=None
)

# D8 pointer
wbt.d8_pointer(
    dem="filldepress.tif",
    output="D8Pointer.tif",
    esri_pntr=True
)

# D8 flow accumulation
wbt.d8_flow_accumulation(
    i="D8Pointer.tif",
    output="D8FlowAccumulation.tif",
    out_type="specific contributing area",
    log=False,
    clip=False,
    pntr=True,
    esri_pntr=True
)

# Extract stream
wbt.extract_streams(
    flow_accum="D8FlowAccumulation.tif",
    output="extractstream.tif",
    threshold="1000",
    zero_background=False
)

# Elevation above stream Euclidean
wbt.elevation_above_stream_euclidean(
    dem="breach_single_cell_pits.tif",
    streams="extractstream.tif",
    output="elevation_above_stream_euclidean.tif"
)

I don't know why this has been ignored for so long, this was due to the code masking the output value from the streams raster's no_data instead of input DEM's.
Here is my original issue with a patch: https://github.com/jblindsay/whitebox-tools/issues/245
But you'd have to compile it. And looks like the code has been changed, so you can't apply that patch to the new version automatically. Hopefully it'll be fixed.


SHREC 2017 Dataset

Hello, the official website "http://www-rech.telecom-lille.fr/shrec2017-hand/" for downloading the SHREC17 dataset is no longer accessible.
Can you provide me with the following files from the SHREC17 dataset? If you can provide them, it would be a great help to my research.
Specifically, include: The overall folder that contains the folders "gesture_1" to "gesture_14".
 I am also missing this dataset

No, I've tried a lot of endeavors, but they all contain the raw files in .obj format.
I haven't seen anyone share the overall folder that contains the folders "gesture_1" to "gesture_14".
We can communicate more about this dataset. This dataset is important for my further research on gesture recognition.

Hello, The DHG-14/28 dataset you provided is very similar to the contents of the SHREC 2017 dataset.
But the official website "http://www-rech.telecom-lille.fr/shrec2017-hand/" for downloading the SHREC17 dataset is no longer accessible.
Can you provide me with the following files from the SHREC17 dataset? If you can provide them, it would be a great help to my research.
The SHREC17 dataset include the overall folder that contains the folders "gesture_1" to "gesture_14".
 We can add a WeChat account. I contacted the original author who proposed this dataset paper, and he replied to me, asking what part I need. Maybe he can reply to me tomorrow. If it is the same as the dataset provided on the official website, I can give you a copy. I have only downloaded the pkl file now

Yes！ Thank you!
My WeChat account is Qien_Jane   !!!
Email communication isn't very easy, and I have some discoveries to make with you!

------------------ Original ------------------
From: @.>;
Date:  Wed, Mar 13, 2024 05:18 PM
To: @.>;
Cc: @.>; @.>;
Subject:  Re: [humansensinglab/dfcil-hgr] SHREC 2017 Dataset (Issue #2)

Are you Chinese? We can add a WeChat account. I contacted the original author who proposed this dataset paper, and he replied to me, asking what part I need. Maybe he can reply to me tomorrow. If it is the same as the dataset provided on the official website, I can give you a copy. I have only downloaded the pkl file now
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


404 and No Assets After Redirecting with nginx

Gogs version (or commit ref):  <IP_ADDRESS>1
Git version: 2.1.4
Operating system: Raspian
Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[x] No
[ ] Not relevant

Description
404 and lack of assets on log in page after redirecting to pyrosoftsolutions.co.uk/gogs.

SSL_MODE = disable
PATH     = data/gogs.db

[repository]
ROOT = /home/git/gogs-repositories

[server]
DOMAIN       = pyrosoftsolutions.co.uk
HTTP_PORT    = 3001
ROOT_URL     = https://pyrosoftsolutions.co.uk/gogs/
DISABLE_SSH  = false
SSH_PORT     = 22
OFFLINE_MODE = false

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL     = false
DISABLE_REGISTRATION   = true
ENABLE_CAPTCHA         = true
REQUIRE_SIGNIN_VIEW    = true

[picture]
DISABLE_GRAVATAR        = false
ENABLE_FEDERATED_AVATAR = true

[session]
PROVIDER = file

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /home/git/gogs/log

[security]
INSTALL_LOCK = true
SECRET_KEY   = redacted...
APP_NAME = Pyrosoft Solutions Git
RUN_USER = git
RUN_MODE = prod

I can't seem to resolve this issue and a lot of other people seem to have fixed it in lots of different ways so any help would be appreciated.

You didn't read post template.
https://gogs.io/docs/intro/faqs#how-do-i-set-up-a-sub-path-with-nginx%3F

I did read the post template and I had already tried both solutions from the FAQ but neither worked.

Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.


[Source]: Malaria Genomic Epidemiology Network (MalariaGEN)

Source Name
Malaria Genomic Epidemiology Network (MalariaGEN)
Source URL
https://www.malariagen.net/
Source Description
MalariaGEN is a global community of researchers using state-of-the-art tools and techniques to understand how genetic variation in humans, Plasmodium parasites, and Anopheles mosquitoes affects the transmission of malaria. We use this knowledge to develop more effective ways to control the disease.
Short Description
MalariaGEN is an IID repository that includes multimodal data.
Source Access
Yes, account needed
Source Funding
No response
Source Relevance
Identified as a high priority target by the NIAID team
Related WBS task

[ ] Check here if this repository is funded by NIAID (https://github.com/NIAID-Data-Ecosystem/nde-roadmap/issues/11)
[X] Check here if this repository only has IID data (https://github.com/NIAID-Data-Ecosystem/nde-roadmap/issues/12)
[ ] Check here if this is a generalist repository with IID data (https://github.com/NIAID-Data-Ecosystem/nde-roadmap/issues/12)

For internal use only. Assignee, please select the status of this issue

[ ] Not yet started
[ ] In process
[ ] Blocked
[ ] Will not include

Status Description
No response
Source to-do list

[X] License check- Can this source be included?
[X] Class check- Does this source have the right class of research output for inclusions?
[x] NIAID Review- Does NIAID approve of the inclusion of this source?
[x] Data access check- Have data access issues been resolved?
[x] Structured data check- Does this source have structured data?
[x] Mapping check- Has the properties from this source been mapped to the schema?
[x] Parser check- Has the parser been written?
[ ] Parsed data check- Has a sanity check on the data obtained from this source been performed?
[ ] Merge data- Has the crawler/plugin been successfully integrated with the system?
[ ] Issues could not be resolved - Add as a single record via the DDE

The site has pages at the Data Package level which would be considered one Dataset record. I don't see any API, so we may have to crawl the site.
An example Data Package can be found here: https://www.malariagen.net/data_package/open-dataset-plasmodium-falciparum-v70/
Example mapping here: https://docs.google.com/presentation/d/1rbyYScpYYlHhD0tBZsczLyGqAFCPsVvgd8KyTG4BLqQ/edit#slide=id.p

This repository was discussed during the biweekly meeting dated 2024.04.30. Per the discussion, we will create a crawler for this resource.

@hartwickma @lisa-mml @rshabman @sudvenk
MalariaGen is now available on staging: https://data-staging.niaid.nih.gov/search?q=&filters=(includedInDataCatalog.name%3A("MalariaGEN"))
We are updating this issue to 'Review requested - staging'
The ask: Please review this new source on staging. If there are no issues with it, we seek approval to move it to production.

Approved, please move to production. Thank you.

Great! We will proceed to move this to Production.

This source is now on production. I am marking this issue as pending close out and will close it after a week if there are no more comments or concerns about this issue.


Fix to fit #557 into our workflow.

Ref #557.
Thank you, @tnishinaga

Build arm64 and mips binary at the crossbuild-package task
Build deb packeages for arm64 and mips at the dev-v2 task
Build deb packages in Dockerlized environment

@hayajo (and @tnishinaga ) This p-r and #557 will build only systemd-based deb package for arm and mips. I hope this will satisfy major use cases, but in some cases it might not fit. For example, if you want to install mackerel-agent into some limited environment which does not use systemd, like NAS/router with busybox, this deb will not work since they works on top of systemd.
Do you think current artifacts are enough for use cases?


Fixed and added some sidebar buttons

Made some xpaths to some sidebar buttons more robust by relying on hrefs instead of index numbers.
Fixed the shorts button so that it works on firefox aswell
Added a toggle to disable the courses button in the sidebar

Thanks for spotting that, I guess that during testing I also had the Subscriptions channels hidden so I didn't notice.

Now it has support for hiding the "Your movies & TV" section in the sidebar thanks to https://github.com/Pedro-Gregorio/TubeMod/issues/40, and https://github.com/Pedro-Gregorio/TubeMod/issues/40#issuecomment-2380576180 for providing the href. This is currently untested but it should work.

The "Hide Courses button" has also the wrong id, it acutally has for="my-videos" instead of for="courses"

When fixed the "Hide Your movies & TV Button" works well. I can't test for "Hide Courses Button" because I don't have it.

Should be fixed, it also happened to my-movies-and-tv. Thansk for pointing it out

When fixed the "Hide Your movies & TV Button" works well. I can't test for "Hide Courses Button" because I don't have it.

It works for me.

@Perseus333 thank you for this! Adding it to V1.5.0 :)
I don't have the movies and tv button, but I'll trust @Rashnain review on that end!
@Perseus333 would you mind sharing a print screen of the sidebar (without anything hidden :D) just to ensure the order is correct.

@Perseus333 would you mind sharing a print screen of the sidebar (without anything hidden :D) just to ensure the order is correct.

Here you go (btw, I don't know how to make this images smaller, sorry for the size):

Wait, I'm confused. Where's the "Your movies & TV" button? 🤔

Wait, I'm confused. Where's the "Your movies & TV" button? 🤔

I don't know. But it should either be above or below courses. I don't think there is anyone that has both. Although I can provide a link to a course so that someone can add to their library so that they have access to the "courses" sidebar button and report which is the correct order.

My bad, just found the issue where you and Rashnain talked about it :)
Once again, thank you both!


No XMP metadata returned for pdf, epub files

I tested XMP toolkit with various pdf and epub files that contain XMP data (verified both with exifttool and Calibre's ebook-meta)
For all of those files,
xmp = file_to_dict("FILE.PDF")
print(xmp)

returns None

@workflowsguy happy 2024, would you mind providing a reproducible example?
Thank you,

@zougloub,
I encountered the issue with pdf ebooks, which I can not share because they are under copyright.
The cause of this seems to be in exempi.
I have tested those books in the terminal with exempi 2.6.4, which also returns no metadata, whereas other utilities like exiftool, poppler's pdfinfoand Calibres ebook-metaall correctly show the file's XMP metadata.
I would have reported this also in the exempi project, but unfortunately @hfiguiere  has not enabled reporting of issues there.

The officicial repo for exempi is NOT on github.
https://gitlab.freedesktop.org/libopenraw/exempi
It's even marked as such:

Sorry, I did not look thoroughly at the shadow repository.
Anyway, I have created an issue in the official repository.


TypeError: unsupported operand type(s) for /: 'str' and 'str'

Description
v1.3.96
When i try to chat it throws:
agixt-agixt-1                    |   File "/usr/local/lib/python3.10/site-packages/fastapi/routing.py", line 163, in run_endpoint_function
agixt-agixt-1                    |     return await dependant.call(**values)
agixt-agixt-1                    |   File "/agixt/app.py", line 536, in prompt_agent
agixt-agixt-1                    |     response = await agent.run(
agixt-agixt-1                    |   File "/agixt/Interactions.py", line 255, in run
agixt-agixt-1                    |     formatted_prompt, unformatted_prompt, tokens = await self.format_prompt(
agixt-agixt-1                    |   File "/agixt/Interactions.py", line 105, in format_prompt
agixt-agixt-1                    |     context = await self.memories.context_agent(
agixt-agixt-1                    |   File "/agixt/Memories.py", line 201, in context_agent
agixt-agixt-1                    |     results = await self.get_nearest_matches_async(
agixt-agixt-1                    |   File "/agixt/Memories.py", line 159, in get_nearest_matches_async
agixt-agixt-1                    |     embedding = array(self.embed.embed_text(text=user_input))
agixt-agixt-1                    |   File "/agixt/Embedding.py", line 89, in embed_text
agixt-agixt-1                    |     embedding = self.embedder.__call__(texts=[text])[0]
agixt-agixt-1                    |   File "/usr/local/lib/python3.10/site-packages/chromadb/utils/embedding_functions.py", line 341, in __call__
agixt-agixt-1                    |     self._download_model_if_not_exists()
agixt-agixt-1                    |   File "/usr/local/lib/python3.10/site-packages/chromadb/utils/embedding_functions.py", line 348, in _download_model_if_not_exists
agixt-agixt-1                    |     if not os.path.exists(self.DOWNLOAD_PATH / self.ARCHIVE_FILENAME):
agixt-agixt-1                    | TypeError: unsupported operand type(s) for /: 'str' and 'str'
agixt-agixt-1                    | INFO:     <IP_ADDRESS>:55908 - "GET /api/Starchat/conversations HTTP/1.1" 200 OK
agixt-agixt-1                    | INFO:     <IP_ADDRESS>:55920 - "GET /api/conversation HTTP/1.1" 200 OK
agixt-agixt-1                    | INFO:     <IP_ADDRESS>:55936 - "GET /api/agent HTTP/1.1" 200 OK

Steps to Reproduce the Bug
Go to Agent Interactions / Chat / Agent Name Starchat => user input "Tell me a joke with parrots"
Expected Behavior
x
Operating System

[X] Linux
[ ] Microsoft Windows
[ ] Apple MacOS
[ ] Android
[ ] iOS
[ ] Other

Python Version

[ ] Python <= 3.9
[X] Python 3.10
[ ] Python 3.11

Environment Type - Connection

[X] Local - You run AGiXT in your home network
[ ] Remote - You access AGiXT through the internet

Runtime environment

[X] Using docker compose
[ ] Using local
[ ] Custom setup (please describe above!)

Acknowledgements

[X] I have searched the existing issues to make sure this bug has not been reported yet.
[X] I am using the latest version of AGiXT.
[X] I have provided enough information for the maintainers to reproduce and diagnose the issue.

#911 should resolve this issue.  v1.3.97 is building.  The embedder is broken in Chroma.  I put in a PR to fix it for them but just waiting for it to be merged.  My working changes are now in AGiXT that use the embedder from my code instead of from their module.

It's works now for "default" embedding, thank you.


Changed lc.fold() phase argument to transit midpoint.

I've changed lc.fold() phase argument to transit midpoint to fix issue #357. I've also fixed #353 and fixed the unit test.
Fold now takes transit_midpoint as an argument, not phase.

Note that if transit_midpoint is in JD it will warn the user that it doesn't look right. It just raises a warning, not an exception, because it's conceivable that the user knows what they're doing. @barentsen do you want to chime in on this?
Folded light curve attribute time_original is now in the correct order.

Fixes #357
Fixes #353

@barentsen Travis failed because of remote data how do I restart it?

When I login to Travis I see a button that says "Restart build".

Codecov Report

Merging #361 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #361      +/-   ##
==========================================
+ Coverage   91.32%   91.33%   +0.01%
==========================================
  Files          26       26
  Lines        4023     4029       +6
==========================================
+ Hits         3674     3680       +6
  Misses        349      349

Impacted Files
Coverage Δ

lightkurve/lightcurve.py
94.61% <100%> (+0.03%)
:arrow_up:

lightkurve/tests/test_lightcurve.py
98.55% <100%> (+0.01%)
:arrow_up:

Continue to review full report at Codecov.

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

Thanks for the nicer warning message @barentsen, merging now.


Scrolling up with mouse whell does not work properly

How to reproduce :

go to end of line
do mouse whell up

is it actual behavior i can't use mouse whell especially mouse whell up properly with this plugin?
anyway thanks for the plugin
-- EDIT
The issue happens when my cursor is at the end of the line and I scroll up with mouse.

Hi @rizkyilhampra , sorry for not replying for this long as I was busy. I have tried to reproduce the problem but didn't notice anything odd. can you post a gif or a video showing the issue? Also, can you post your neovim verison?

thank you for the update. it works great now.


Module hanging/crashing after a period of time.

I have a HyperPixel 4 square display with a Pi Zero 2 W on the back of it.  I run MMM-Spotify in the top_right place with the style set to "mini". After while the module stops responding.  All other modules continue to work fine. Below is an except from the logs.
I have other MagicMirrors elsewhere in the house all with MMM-Spotify enabled and none of these hang/crash so I can only think it is something peculiar to this instance.
Can anyone assist/help please.
/home/pi/.pm2/logs/MagicMirror-error.log last 15 lines:
0|mm       | [02.02.2022 20:48.27.894] [ERROR] TypeError: Cannot read properties of undefined (reading 'data')
0|mm       |     at Timeout._onTimeout (/home/pi/MagicMirror/modules/MMM-Spotify/Spotify.js:154:64)
0|mm       |     at listOnTimeout (node:internal/timers:557:17)
0|mm       |     at processTimers (node:internal/timers:500:7)
0|mm       | [02.02.2022 20:48.27.896] [ERROR] MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
0|mm       | [02.02.2022 20:48.27.897] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
0|mm       | [02.02.2022 23:07.33.087] [ERROR] (node:2153) UnhandledPromiseRejectionWarning: Error: getaddrinfo EAI_AGAIN my.tado.com
0|mm       |     at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)
0|mm       | [02.02.2022 23:07.33.088] [ERROR] (node:2153) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 5)
0|mm       | [03.02.2022 09:12.35.032] [ERROR] (node:2153) UnhandledPromiseRejectionWarning: Error: getaddrinfo EAI_AGAIN my.tado.com
0|mm       |     at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)
0|mm       | [03.02.2022 09:12.35.034] [ERROR] (node:2153) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 7)
0|mm       | [03.02.2022 09:52.38.953] [ERROR] (node:2153) UnhandledPromiseRejectionWarning: Error: getaddrinfo EAI_AGAIN my.tado.com
0|mm       |     at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)
0|mm       | [03.02.2022 09:52.38.954] [ERROR] (node:2153) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 9)

Additional log info from the latest crash:
0|mm       | [03.02.2022 16:57.11.594] [ERROR] [SPOTIFY - James] Failed to request API: /v1/me/player
0|mm       | [03.02.2022 16:57.11.597] [ERROR] [SPOTIFY - James] Invalid request
0|mm       | [03.02.2022 16:57.16.618] [ERROR] Whoops! There was an uncaught exception...
0|mm       | [03.02.2022 16:57.16.640] [ERROR] TypeError: Cannot read properties of undefined (reading 'data')
0|mm       |     at Timeout._onTimeout (/home/pi/MagicMirror/modules/MMM-Spotify/Spotify.js:154:64)
0|mm       |     at listOnTimeout (node:internal/timers:557:17)
0|mm       |     at processTimers (node:internal/timers:500:7)

Hello. Can you please give some feedback to the following questions:

if the error occurs after a while, does it work up until then?
you mentioned that you are running multiple MM with MMM-Spotify, did you create an Spotify application for each of these or are you using the same for all of them?
can you please turn on debugging via config and paste the output when the error occurs?

I have a hunch that you maybe run into API rate limits when using the same Spotify application on multiple devices.

Before I send you some logs, I am currently using a single Spotify APP to run these against.  If it is a rate limiting issue then I can test by giving each screen it's own app and see if the problem recurs.  Let me try and get back to you.
Thanks for the swift help.

OK< so I changed every other instance of MMM-Spotify to be "disabled: true" and restarted all the MagicMirrors.  I changed the config of the problem panel to include "debug: true" and restarted the panel.  After about 15-20 tracks it froze again.  Below are the logs; any suggestions?:
[04.02.2022 15:53.30.706] [ERROR]
0|mm     | [SPOTIFY - James] Failed to request API: /v1/me/player
0|mm     | [04.02.2022 15:53.30.710] [ERROR] [SPOTIFY - James] Invalid request
0|mm     | [04.02.2022 15:53.30.761] [DEBUG]
0|mm     | [SPOTIFY - James] Request: <ref *2> Writable {
0|mm     |   _writableState: WritableState {
0|mm     |     objectMode: false,
0|mm     |     highWaterMark: 16384,
0|mm     |     finalCalled: false,
0|mm     |     needDrain: false,
0|mm     |     ending: false,
0|mm     |     ended: false,
0|mm     |     finished: false,
0|mm     |     destroyed: false,
0|mm     |     decodeStrings: true,
0|mm     |     defaultEncoding: 'utf8',
0|mm     |     length: 0,
0|mm     |     writing: false,
0|mm     |     corked: 0,
0|mm     |     sync: true,
0|mm     |     bufferProcessing: false,
0|mm     |     onwrite: [Function: bound onwrite],
0|mm     |     writecb: null,
0|mm     |     writelen: 0,
0|mm     |     afterWriteTickInfo: null,
0|mm     |     buffered: [],
0|mm     |     bufferedIndex: 0,
0|mm     |     allBuffers: true,
0|mm     |     allNoop: true,
0|mm     |     pendingcb: 0,
0|mm     |     constructed: true,
0|mm     |     prefinished: false,
0|mm     |     errorEmitted: false,
0|mm     |     emitClose: true,
0|mm     |     autoDestroy: true,
0|mm     |     errored: null,
0|mm     |     closed: false,
0|mm     |     closeEmitted: false,
0|mm     |     [Symbol(kOnFinished)]: []
0|mm     |   },
0|mm     |   _events: [Object: null prototype] {
0|mm     |     response: [Function: handleResponse],
0|mm     |     error: [Function: handleRequestError]
0|mm     |   },
0|mm     |   _eventsCount: 2,
0|mm     |   _maxListeners: undefined,
0|mm     |   _options: {
0|mm     |     maxRedirects: 21,
0|mm     |     maxBodyLength: 10485760,
0|mm     |     protocol: 'https:',
0|mm     |     path: '/v1/me/player?additional_types=episode,track',
0|mm     |     method: 'GET',
0|mm     |     headers: {
0|mm     |       Accept: 'application/json, text/plain, /',
0|mm     |       Authorization: 'Bearer BQCGNGWbQM7Tp0bYur6asPLNMbrImu6RcYXssqITiDEifwmXEKM53nO3uvksEL3BTWulOeEC8awoa9Ey271ayl5LLgUl-LermpTZDf080XeQDU-LMWm-uGO2bekf4gpfZPpIdQvPJi7KqSI6_2q8JQS7pANT7umO5xvzmNKr0bRXFvGqJvY',
0|mm     |       'User-Agent': 'axios/0.21.2'
0|mm     |     },
0|mm     |     agent: undefined,
0|mm     |     agents: { http: undefined, https: undefined },
0|mm     |     auth: undefined,
0|mm     |     hostname: 'api.spotify.com',
0|mm     |     port: null,
0|mm     |     nativeProtocols: { 'http:': [Object], 'https:': [Object] },
0|mm     |     pathname: '/v1/me/player',
0|mm     |     search: '?additional_types=episode,track'
0|mm     |   },
0|mm     |   _ended: true,
0|mm     |   _ending: true,
0|mm     |   _redirectCount: 0,
0|mm     |   _redirects: [],
0|mm     |   _requestBodyLength: 0,
0|mm     |   _requestBodyBuffers: [],
0|mm     |   _onNativeResponse: [Function (anonymous)],
0|mm     |   _currentRequest: <ref *1> ClientRequest {
0|mm     |     _events: [Object: null prototype] {
0|mm     |       response: [Function],
0|mm     |       abort: [Function (anonymous)],
0|mm     |       aborted: [Function (anonymous)],
0|mm     |       connect: [Function (anonymous)],
0|mm     |       error: [Function (anonymous)],
0|mm     |       socket: [Function (anonymous)],
0|mm     |       timeout: [Function (anonymous)]
0|mm     |     },
0|mm     |     _eventsCount: 7,
0|mm     |     _maxListeners: undefined,
0|mm     |     outputData: [],
0|mm     |     outputSize: 0,
0|mm     |     writable: true,
0|mm     |     destroyed: false,
0|mm     |     _last: true,
0|mm     |     chunkedEncoding: false,
0|mm     |     shouldKeepAlive: false,
0|mm     |     _defaultKeepAlive: true,
0|mm     |     useChunkedEncodingByDefault: false,
0|mm     |     sendDate: false,
0|mm     |     _removedConnection: false,
0|mm     |     _removedContLen: false,
0|mm     |     _removedTE: false,
0|mm     |     _contentLength: 0,
0|mm     |     _hasBody: true,
0|mm     |     _trailer: '',
0|mm     |     finished: true,
0|mm     |     _headerSent: true,
0|mm     |     _closed: false,
0|mm     |     socket: TLSSocket {
0|mm     |       _tlsOptions: [Object],
0|mm     |       _secureEstablished: false,
0|mm     |       _securePending: false,
0|mm     |       _newSessionPending: false,
0|mm     |       _controlReleased: true,
0|mm     |       secureConnecting: true,
0|mm     |       _SNICallback: null,
0|mm     |       servername: null,
0|mm     |       alpnProtocol: null,
0|mm     |       authorized: false,
0|mm     |       authorizationError: null,
0|mm     |       encrypted: true,
0|mm     |       _events: [Object: null prototype],
0|mm     |       _eventsCount: 11,
0|mm     |       connecting: false,
0|mm     |       _hadError: true,
0|mm     |       _parent: null,
0|mm     |       _host: 'api.spotify.com',
0|mm     |       _readableState: [ReadableState],
0|mm     |       _maxListeners: undefined,
0|mm     |       _writableState: [WritableState],
0|mm     |       allowHalfOpen: false,
0|mm     |       _sockname: null,
0|mm     |       _pendingData: 'GET /v1/me/player?additional_types=episode,track HTTP/1.1\r\n' +
0|mm     |         'Accept: application/json, text/plain, /\r\n' +
0|mm     |         'Authorization: Bearer BQCGNGWbQM7Tp0bYur6asPLNMbrImu6RcYXssqITiDEifwmXEKM53nO3uvksEL3BTWulOeEC8awoa9Ey271ayl5LLgUl-LermpTZDf080XeQDU-LMWm-uGO2bekf4gpfZPpIdQvPJi7KqSI6_2q8JQS7pANT7umO5xvzmNKr0bRXFvGqJvY\r\n' +
0|mm     |         'User-Agent: axios/0.21.2\r\n' +
0|mm     |         'Host: api.spotify.com\r\n' +
0|mm     |         'Connection: close\r\n' +
0|mm     |         '\r\n',
0|mm     |       _pendingEncoding: 'latin1',
0|mm     |       server: undefined,
0|mm     |       _server: null,
0|mm     |       ssl: null,
0|mm     |       _requestCert: true,
0|mm     |       _rejectUnauthorized: true,
0|mm     |       parser: null,
0|mm     |       _httpMessage: [Circular *1],
0|mm     |       [Symbol(res)]: [TLSWrap],
0|mm     |       [Symbol(verified)]: false,
0|mm     |       [Symbol(pendingSession)]: null,
0|mm     |       [Symbol(async_id_symbol)]: 66810,
0|mm     |       [Symbol(kHandle)]: null,
0|mm     |       [Symbol(kSetNoDelay)]: false,
0|mm     |       [Symbol(lastWriteQueueSize)]: 0,
0|mm     |       [Symbol(timeout)]: null,
0|mm     |       [Symbol(kBuffer)]: null,
0|mm     |       [Symbol(kBufferCb)]: null,
0|mm     |       [Symbol(kBufferGen)]: null,
0|mm     |       [Symbol(kCapture)]: false,
0|mm     |       [Symbol(kBytesRead)]: 0,
0|mm     |       [Symbol(kBytesWritten)]: 0,
0|mm     |       [Symbol(connect-options)]: [Object]
0|mm     |     },
0|mm     |     _header: 'GET /v1/me/player?additional_types=episode,track HTTP/1.1\r\n' +
0|mm     |       'Accept: application/json, text/plain, /\r\n' +
0|mm     |       'Authorization: Bearer BQCGNGWbQM7Tp0bYur6asPLNMbrImu6RcYXssqITiDEifwmXEKM53nO3uvksEL3BTWulOeEC8awoa9Ey271ayl5LLgUl-LermpTZDf080XeQDU-LMWm-uGO2bekf4gpfZPpIdQvPJi7KqSI6_2q8JQS7pANT7umO5xvzmNKr0bRXFvGqJvY\r\n' +
0|mm     |       'User-Agent: axios/0.21.2\r\n' +
0|mm     |       'Host: api.spotify.com\r\n' +
0|mm     |       'Connection: close\r\n' +
0|mm     |       '\r\n',
0|mm     |     _keepAliveTimeout: 0,
0|mm     |     _onPendingData: [Function: nop],
0|mm     |     agent: Agent {
0|mm     |       _events: [Object: null prototype],
0|mm     |       _eventsCount: 2,
0|mm     |       _maxListeners: undefined,
0|mm     |       defaultPort: 443,
0|mm     |       protocol: 'https:',
0|mm     |       options: [Object: null prototype],
0|mm     |       requests: [Object: null prototype] {},
0|mm     |       sockets: [Object: null prototype],
0|mm     |       freeSockets: [Object: null prototype] {},
0|mm     |       keepAliveMsecs: 1000,
0|mm     |       keepAlive: false,
0|mm     |       maxSockets: Infinity,
0|mm     |       maxFreeSockets: 256,
0|mm     |       scheduling: 'lifo',
0|mm     |       maxTotalSockets: Infinity,
0|mm     |       totalSocketCount: 1,
0|mm     |       maxCachedSessions: 100,
0|mm     |       _sessionCache: [Object],
0|mm     |       [Symbol(kCapture)]: false
0|mm     |     },
0|mm     |     socketPath: undefined,
0|mm     |     method: 'GET',
0|mm     |     maxHeaderSize: undefined,
0|mm     |     insecureHTTPParser: undefined,
0|mm     |     path: '/v1/me/player?additional_types=episode,track',
0|mm     |     _ended: false,
0|mm     |     res: null,
0|mm     |     aborted: false,
0|mm     |     timeoutCb: null,
0|mm     |     upgradeOrConnect: false,
0|mm     |     parser: null,
0|mm     |     maxHeadersCount: null,
0|mm     |     reusedSocket: false,
0|mm     |     host: 'api.spotify.com',
0|mm     |     protocol: 'https:',
0|mm     |     _redirectable: [Circular *2],
0|mm     |     [Symbol(kCapture)]: false,
0|mm     |     [Symbol(kNeedDrain)]: false,
0|mm     |     [Symbol(corked)]: 0,
0|mm     |     [Symbol(kOutHeaders)]: [Object: null prototype] {
0|mm     |       accept: [Array],
0|mm     |       authorization: [Array],
0|mm     |       'user-agent': [Array],
0|mm     |       host: [Array]
0|mm     |     }
0|mm     |   },
0|mm     |   _currentUrl: 'https://api.spotify.com/v1/me/player?additional_types=episode,track',
0|mm     |   [Symbol(kCapture)]: false
0|mm     | }
0|mm     | [04.02.2022 15:53.30.775] [DEBUG] [SPOTIFY - James] {
0|mm     |   url: '/v1/me/player',
0|mm     |   method: 'get',
0|mm     |   data: null,
0|mm     |   headers: {
0|mm     |     Accept: 'application/json, text/plain, /',
0|mm     |     Authorization: 'Bearer BQCGNGWbQM7Tp0bYur6asPLNMbrImu6RcYXssqITiDEifwmXEKM53nO3uvksEL3BTWulOeEC8awoa9Ey271ayl5LLgUl-LermpTZDf080XeQDU-LMWm-uGO2bekf4gpfZPpIdQvPJi7KqSI6_2q8JQS7pANT7umO5xvzmNKr0bRXFvGqJvY',
0|mm     |     'User-Agent': 'axios/0.21.2'
0|mm     |   },
0|mm     |   params: { additional_types: 'episode,track' },
0|mm     |   baseURL: 'https://api.spotify.com',
0|mm     |   transformRequest: [ [Function: transformRequest] ],
0|mm     |   transformResponse: [ [Function: transformResponse] ],
0|mm     |   timeout: 0,
0|mm     |   adapter: [Function: httpAdapter],
0|mm     |   xsrfCookieName: 'XSRF-TOKEN',
0|mm     |   xsrfHeaderName: 'X-XSRF-TOKEN',
0|mm     |   maxContentLength: -1,
0|mm     |   maxBodyLength: -1,
0|mm     |   validateStatus: [Function: validateStatus],
0|mm     |   transitional: {
0|mm     |     silentJSONParsing: true,
0|mm     |     forcedJSONParsing: true,
0|mm     |     clarifyTimeoutError: false
0|mm     |   }
0|mm     | }
0|mm     | [04.02.2022 15:53.30.777] [DEBUG] [SPOTIFY - James] Retry in 5 sec...
0|mm     | [04.02.2022 15:53.35.787] [ERROR]
0|mm     | Whoops! There was an uncaught exception...
0|mm     | [04.02.2022 15:53.35.793] [ERROR]
0|mm     | TypeError: Cannot read properties of undefined (reading 'data')
0|mm     |     at Timeout._onTimeout (/home/pi/MagicMirror/modules/MMM-Spotify/Spotify.js:154:64)
0|mm     |     at listOnTimeout (node:internal/timers:557:17)
0|mm     |     at processTimers (node:internal/timers:500:7)
0|mm     | [04.02.2022 15:53.35.795] [ERROR] MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
0|mm     | [04.02.2022 15:53.35.797] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues

So, two things to notice here:

error.request is set, which means that the axios request is not receiving any response from Spotify. error.request is defined as:

The request was made but no response was received

I do not know why that is happening on your system. One feeling would be, that the device is not capable of handling all the requests in time.

The problem why the module completely stops functioning, is because it references the error.response object while it is not set - that's a bug in the module

Solutions:

You can try to increase the updateInterval config, maybe that helps your device handling all the requests
I will update the code to fix the module breaking part

I've just pushed some changes to the development branch.
@jamesvcc can you give that branch a test run? Let me know if you don't know how to do that.

Hi, yeah - sorry, no idea how to do that but happy to help if I knew how.
Sent from my iPhone
On 19 Feb 2022, at 19:03, skuethe @.***> wrote:

I've just pushed some changes to the development branch.
@jamesvcchttps://github.com/jamesvcc can you give that branch a test run? Let me know if you don't know how to do that.
—
Reply to this email directly, view it on GitHubhttps://github.com/skuethe/MMM-Spotify/issues/184#issuecomment-1046084363, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOX3ASFYWQKL7PB3GXMIIXLU37SPVANCNFSM5NO5LYLA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>

I`ll try from my mobile:
cd ~/MagicMirror/modules/MMM-Spotify
git checkout development
git pull

Then restart MM, f.e.:
sudo systemctl restart magicmirror

Then evaluate and look at the log files.

Been running the development branch for a bit now.  Still getting crashing behaviours.  Here are the logs:
0|MagicMir | [07.03.2022 13:55.11.466] [WARN]  You're using a full whitelist configuration to allow for all IPs
0|MagicMir | [4130:0307/135512.830294:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization
0|MagicMir | [4176:0307/135513.087092:ERROR:sandbox_linux.cc(376)] InitializeSandbox() called with multiple threads in process gpu-process.
0|MagicMir | [07.03.2022 14:02.11.913] [ERROR] [SPOTIFY - James] Failed to request API: /v1/me/player
0|MagicMir | [07.03.2022 14:02.11.915] [ERROR] [SPOTIFY - James] Invalid response
0|MagicMir | [07.03.2022 14:02.11.923] [ERROR] [SPOTIFY - James] Response error code: 503
0|MagicMir | [07.03.2022 14:02.11.925] [ERROR] [SPOTIFY - James] Response error text: Service Unavailable
0|MagicMir | [07.03.2022 14:05.05.160] [ERROR] [SPOTIFY - James] Failed to request API: /v1/me/player
0|MagicMir | [07.03.2022 14:05.05.162] [ERROR] [SPOTIFY - James] Invalid request
0|MagicMir | [07.03.2022 14:05.05.199] [ERROR] (node:4091) UnhandledPromiseRejectionWarning: TypeError: Cannot read properties of undefined (reading 'status')
0|MagicMir |     at /home/pi/MagicMirror/modules/MMM-Spotify/Spotify.js:154:55
0|MagicMir |     at runMicrotasks ()
0|MagicMir |     at processTicksAndRejections (node:internal/process/task_queues:96:5)
0|MagicMir | (Use electron --trace-warnings ... to show where the warning was created)
0|MagicMir | [07.03.2022 14:05.05.200] [ERROR] (node:4091) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)

Latest log output (still crashing):
[08.03.2022 13:26.04.295] [DEBUG] [SPOTIFY - James] API Response: 200
[08.03.2022 13:26.04.302] [DEBUG] [SPOTIFY - James] Token file was created
[08.03.2022 13:26.04.322] [DEBUG] [SPOTIFY - James] Token will expire at:  Tuesday, March 8, 2022 2:25 PM
[08.03.2022 14:25.13.865] [DEBUG] [SPOTIFY - James] Refreshing Token...
[08.03.2022 14:25.14.044] [DEBUG] [SPOTIFY - James] API Response: 200
[08.03.2022 14:25.14.048] [DEBUG] [SPOTIFY - James] Token file was created
[08.03.2022 14:25.14.052] [DEBUG] [SPOTIFY - James] Token will expire at:  Tuesday, March 8, 2022 3:24 PM
[08.03.2022 15:24.22.647] [DEBUG] [SPOTIFY - James] Refreshing Token...
[08.03.2022 15:24.22.789] [DEBUG] [SPOTIFY - James] API Response: 200
[08.03.2022 15:24.22.793] [DEBUG] [SPOTIFY - James] Token file was created
[08.03.2022 15:24.22.796] [DEBUG] [SPOTIFY - James] Token will expire at:  Tuesday, March 8, 2022 4:23 PM
[08.03.2022 16:23.23.712] [DEBUG] [SPOTIFY - James] Refreshing Token...
[08.03.2022 16:23.23.889] [DEBUG] [SPOTIFY - James] API Response: 200
[08.03.2022 16:23.23.895] [DEBUG] [SPOTIFY - James] Token file was created
[08.03.2022 16:23.23.907] [DEBUG] [SPOTIFY - James] Token will expire at:  Tuesday, March 8, 2022 5:22 PM
[08.03.2022 17:22.25.144] [DEBUG] [SPOTIFY - James] Refreshing Token...
[08.03.2022 17:22.25.267] [DEBUG] [SPOTIFY - James] API Response: 200
[08.03.2022 17:22.25.270] [DEBUG] [SPOTIFY - James] Token file was created
[08.03.2022 17:22.25.272] [DEBUG] [SPOTIFY - James] Token will expire at:  Tuesday, March 8, 2022 6:21 PM
[08.03.2022 18:21.34.453] [DEBUG] [SPOTIFY - James] Refreshing Token...
[08.03.2022 18:21.34.611] [DEBUG] [SPOTIFY - James] Response error data: { error: 'invalid_grant', error_description: 'User does not exist' }
[08.03.2022 18:21.34.615] [DEBUG] [SPOTIFY - James] Response error headers: {
date: 'Tue, 08 Mar 2022 18:21:34 GMT',
'content-type': 'application/json',
'content-length': '67',
'set-cookie': [
'__Host-device_id=AQCYbeiDOeuAgFbebzVNS5B4JhC4RKdzKJqjg_RoLa4W8siDYnN_V_T14YCzmcvPvqVZaa-qth5uwLD6LmeYL1n5sYNbyF4tcAs;Version=1;Path=/;Max-Ag
e=2147483647;Secure;HttpOnly;SameSite=Lax',
'sp_tr=false;Version=1;Domain=accounts.spotify.com;Path=/;Secure;SameSite=Lax'
],
'sp-trace-id': '9dfbc577c9553c37',
'strict-transport-security': 'max-age=31536000',
'x-content-type-options': 'nosniff',
vary: 'Accept-Encoding',
server: 'envoy',
via: 'HTTP/2 edgeproxy, 1.1 google',
'alt-svc': 'clear',
connection: 'close'
}
[08.03.2022 18:21.34.628] [DEBUG] [SPOTIFY - James] {
message: 'Request failed with status code 400',
name: 'Error',
description: undefined,
number: undefined,
fileName: undefined,
lineNumber: undefined,
columnNumber: undefined,
stack: 'Error: Request failed with status code 400\n' +
'    at createError (/home/pi/MagicMirror/modules/MMM-Spotify/node_modules/axios/lib/core/createError.js:16:15)\n' +
'    at settle (/home/pi/MagicMirror/modules/MMM-Spotify/node_modules/axios/lib/core/settle.js:17:12)\n' +
'    at IncomingMessage.handleStreamEnd (/home/pi/MagicMirror/modules/MMM-Spotify/node_modules/axios/lib/adapters/http.js:269:11)\n' +
'    at IncomingMessage.emit (node:events:406:35)\n' +
'    at endReadableNT (node:internal/streams/readable:1343:12)\n' +
'    at processTicksAndRejections (node:internal/process/task_queues:83:21)',
config: {
url: 'https://accounts.spotify.com/api/token',
method: 'post',
data: 'grant_type=refresh_token&refresh_token=XXXXXX
VW5M7RGDLKyjtrnTdg0o0qrxbr-s3z6O1u70',
headers: {
Accept: 'application/json, text/plain, /',
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: 'Basic XXXXX',
'User-Agent': 'axios/0.21.2',
'Content-Length': 170
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: [Function: validateStatus],
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
}
},
code: undefined
}
[08.03.2022 18:21.34.634] [DEBUG] [SPOTIFY - James] {
url: 'https://accounts.spotify.com/api/token',
method: 'post',
...skipping 1 line
headers: {
Accept: 'application/json, text/plain, /',
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: 'Basic XXXXX',
'User-Agent': 'axios/0.21.2',
'Content-Length': 170
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: [Function: validateStatus],
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
}
}


Improve quota update implementation in Django

After walk-through of quota implementation in Django and iRODS with @cbcunc, we agreed the best approach to resolving the issue of quota update celery task crowding up celery task queue is to remove code for proactively updating quota usage in Django when there are file changes from within HS Django, and only update quota when receiving update quota usage API call from within iRODS microservices. Since the update quota usage call from iRODS is made after quota has been updated in iRODS, there is no need to do quota update in Django asynchronously in celery task, but should do it synchronously since the update quota usage response is fast. This update should free up celery task queue (quota update celery task would no longer exist) while keeping iRODS microservices unchanged.

Verified the improved quota update code works on just deployed production server. Closing.


Add clsuterName to support clusters with non-default names

By adding clusterName to values, you can install OpenCost in clusters with names other than cluster.local and connect to Prometheus correctly.
This fixes #235

@mattray @toscott @brito-rafa

Thanks for this PR @xirehat ... can you share a bit more on how this was tested, and regression tested (ie that it still works for clusters using svc.local)?

When I run helm template opencost -f values.yaml ./ with empty clusterName: "", output shows me this:
...
          env:
            - name: PROMETHEUS_SERVER_ENDPOINT
              value: "http://prometheus-server.prometheus-system.svc.cluster.local:80"
...

When I run helm template opencost -f values.yaml ./ with clusterName: "example.production", output shows me this:
...
          env:
            - name: PROMETHEUS_SERVER_ENDPOINT
              value: "http://prometheus-server.prometheus-system.svc.example.production:80"
...

It works properly. @AjayTripathy


Unhandled exception when loading WPF and non GUI plugins into DAW

So, this isn't a big deal as I can create all of my Plugins as WPF versions, I just wondered if it rings true...
When I try and load the vanilla Simple or MidiExample along with WPFExample, I get this exception and Reaper / VSTHost closes.
Unhandled exception at 0x00007FFEBCCF6D9A in reaper.exe: Microsoft C++ exception: long at memory location 0x0000000000142630.
The debugger Output window also receives 'The specified framework 'Microsoft.NETCore.App', version '6.0.0', apply_patches=1, version_compatibility_range=minor is incompatible with the previously loaded version '8.0.8'.Failed to start the .NET runtime. Error code -2147450715Exception thrown at 0x00007FFEBCCF6D9A in reaper.exe: Microsoft C++ exception: long at memory location 0x0000000000142630.'
I also don't know why 8.0.8 is mentioned when all projects are targetting 6.
It's not a showstopper at all as I'm now plowing along with development, If the hive mind has some insight I'd be grateful.

The .NET framework version of your plugin project actually does not determine the version of the framework that actually gets used. Because the AudioPlugSharp bridge assembly gets loaded first, it determines the version.
If you have a look at the "Bridge.runtimeconfig.json" file, you can see what .NET version is being specified.
If you see "rollForward": "LatestMajor", then it will use the latest major version of .NET that you have installed. That is where the .NET 8.0 is coming from. If you delete that line from your WPF config, it should work.
In general, the "rollForward" behavior is preferred so that all plugins will have the same .NET version. Right now, however, there is an issue in .NET 8.0 that is preventing multiple plugins from being loaded properly.
I submitted a PR to the .NET runtime to fix the problem:
https://github.com/dotnet/runtime/pull/105337
This fix has been merged and will be released soon with .NET 9.0 (and I think it will also get backported to .NET 8.0).
For now, though, your best bet is to make sure the runtime config for all of your plugins specifies .NET 6.0 and does not have rollForward enabled.
I'll leave this issue open until .NET 9.0 is out and I've upgraded AudioPlugSharp to use it.

Many thanks Mike. And thanks for the detailed explanation and your time.
I'll admit that I go cross-eyed when I step back from 8 - and I can't even remember what the 'improvements' were, so I'll plod on as-is with 8 and the WPF runtime version, as I have a long development ahead and I'll revisit when 9 drops officially.

The fix for this has now been backported and released for .NET 8.0. I've now update AudioPlugSharp to .NET 8.0 and have updated the runtime configs.
All should now work well with the latest AudioPlugSharp nuget packages and the latest version of .NET 8.0, so I'm going to close this issue.


spatstat-interface crashes on macos when installed without poetry

Hi,
I would like to experiment with this interface, but python crashes, when I run
from spatstat_interface.interface import SpatstatInterface
Here is how I installed the package:
First I updated brew to the latest packages. Then I made a conda environment:
conda activate spatstat

I pip-installed the spatstat-interface package:
pip install spatstat-interface

I installed R:
brew install R

I started R in the terminal and installed spatstat:
install.packages("spatstat”, repos='https://mirrors.dotsrc.org/cran/')

Attempting to import the package in python crashes:
% python
Python 3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 10:07:17) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from spatstat_interface.interface import SpatstatInterface
zsh: segmentation fault  python

It seems there are several version problems possibly between R and rpy2. In an case, it does not segment fault when I do the following.
First I create a new environment and install r with conda:
conda create -n spatstat python=3.12
conda activate spatstat
conda install -c conda-forge r
pip install spatstat-interface

The spatstat-interface does not run with the required interval of pandas, but if we ignore and install the latest, which in my case is 2.2.2:
pip uninstall pandas
pip install pandas

then in python
>>> from spatstat_interface.interface import SpatstatInterface
>>>

everything seems fine


Can't upgrade to 0.0.28 successfully

I Can't upgrade to 0.0.28 successfully, And I'm getting this weird error(locally & vercel):
22:32:38.406 | This error shouldn't have happened. Please consider opening a GitHub issue with the stack trace below here:
-- | --
22:32:38.406 | https://github.com/contentlayerdev/contentlayer/issues
22:32:38.407 |
22:32:38.407 | An unchecked error was produced.
22:32:38.407 |
22:32:38.407 | TypeError: Cannot read property 'get' of undefined
22:32:38.408 | at ApplyFrame.apply  (/vercel/path0/node_modules/@contentlayer/utils/node_modules/@effect-ts/system/Layer/definitions.js:391:60)
22:32:38.408 | at FiberContext.nextInstr  (/vercel/path0/node_modules/@contentlayer/utils/node_modules/@effect-ts/system/Fiber/context.js:315:22)
22:32:38.408 | at FiberContext.evaluateNow  (/vercel/path0/node_modules/@contentlayer/utils/node_modules/@effect-ts/system/Fiber/context.js:699:56)
22:32:38.408 | at /vercel/path0/node_modules/@contentlayer/utils/node_modules/@effect-ts/system/Fiber/context.js:458:54
22:32:38.408 | at /vercel/path0/node_modules/@contentlayer/utils/node_modules/@effect-ts/system/Support/Scheduler/index.js:34:30
22:32:38.408 |
22:32:38.408 | Fiber: #2 (started at: 2021-11-08T21:32:38.391Z) was supposed to continue to: <empty trace>
22:32:38.408 |
22:32:38.410 | Fiber: #2 (started at: 2021-11-08T21:32:38.391Z) Execution trace: <empty trace>
22:32:38.410 |
22:32:38.410 | Fiber: #2 (started at: 2021-11-08T21:32:38.391Z) was spawned by:
22:32:38.410 |
22:32:38.410 | Fiber: #0 (started at: 2021-11-08T21:32:38.383Z) was supposed to continue to:
22:32:38.410 |
22:32:38.411 | a future continuation at packages/@contentlayer/core/src/runMain.ts:15:110
22:32:38.411 |
22:32:38.411 | Fiber: #0 (started at: 2021-11-08T21:32:38.383Z) Execution trace:
22:32:38.411 |
22:32:38.411 | packages/@contentlayer/core/src/runMain.ts:15:32
22:32:38.411 | packages/@contentlayer/core/src/runMain.ts:10:12
22:32:38.411 |
22:32:38.411 | Fiber: #0 (started at: 2021-11-08T21:32:38.383Z) was spawned by: <empty trace>

Thanks for opening this issue. @imadatyatalah can you please provide more information? When does this error occur?

The error occurs when I run npm run dev(using linux Pop OS) or when deploy to vercel.


new file is open in sublime instance of other workspace

Hello
I got a problem that when sublime is not the current window in the current workspace, then opening new file will pop the sublime instance in the previous workspace. My machine is Ubuntu 18.04.
Best regards.

Hi vryy,
Did you make sure to open the file using this custom launcher instead of the default sublime launcher?
I've just tried it in Ubuntu 18.04 with Gnome and it seems to work fine.


Disabling/enabling WiFi Guest does not work with Fritz!Repeater 3000

Disabling/enabling WiFi Guest does not work with Fritz!Repeater 3000. Instead the second 5GHz Unit is toggled.

@Rusty-Shacklef0rd
can u try the latest version pls

@SeydX
v5.1.0? there was no difference at all. do i have to add the 3000 in a specific way for the plugin to recognise it?

@Rusty-Shacklef0rd
No its the same. I released a new beta version. Can u try it pls?
sudo npm i -g homebridge-fritz-platform@beta
Note: Dont worry, you can always switch back to the latest version with
sudo npm i -g homebridge-fritz-platform

@SeydX thanks for your work but nothing has changed, the guest wifi is still controlling the second 5ghz unit.

Wait a minute. Does your router habe multiple 5ghz units?

@SeydX it's a repeater and yes it does. both the Repeater 3000 and the Repeater 6000 have two 5GHz units, one is meant as a dedicated uplink to a Fritzbox.

Interesting. The plugin can not handle this atm. Will try to support it with the next release

no worries. thank you for your work!

For the next release im planing to add a new option called availableWifiUnits to config which allows to manually set the available wifi units.
eg if your router/repeater supports

only 2,4GHZ => 1
2,4GHZ and 5GHZ => 2
2,4Ghz, 2x 5Ghz => 3
etc

(Default would be 2)
This will allow to support dynamically each router/repeater with multiple wifi units

Added/Fixed in v6.0.0-beta.17

Closing this issue since it was included in the beta (see last comment) and to keep track of which feature requests are still open.

https://github.com/SeydX/homebridge-fritz-platform/issues/191

Working great with Repeater 6000 !

Working great with Repeater 6000 !

same with my 3000. many thanks to @SeydX for his good work!


Added some shiny badges

Given the huge number of downloads we should probably advertise this.
Can see it working here.

Cool! LGTM

:+1: yay

:+1: nice!


ci: add codspeed for tpch queries

What type of PR is this? (check all applicable)

[ ] 💾 Refactor
[ ] ✨ Feature
[ ] 🐛 Bug Fix
[ ] 🔧 Optimization
[ ] 📝 Documentation
[x] ✅ Test
[ ] 🐳 Other

Related issues

Closes #805

Checklist

[x] Code follows style guide (ruff)
[ ] Tests added
[ ] Documented the changes

If you have comments or can explain your changes, please do so below.

Closing this as 40+ min CI is not something I am keen to have 😂


Deobfuscator does not support static constructors

https://github.com/giacomoferretti/paranoid-deobfuscator/issues/5

This was only a POC, I apologize for the bad code. Clearly I have broken your script 👎

Check the comment on https://github.com/giacomoferretti/paranoid-deobfuscator/issues/5#issuecomment-1387028926
I don't find any invoke-virtual


Improved by adding EvenOrOdd tag

Improved by adding EvenOrOdd tag allowing to have the double of security groups because of the limite of rules
*Issue #39 *
Description of changes:
It looks for "EvenOrOdd" tag on security group expecting the values "even" or "odd". A counter has been added while loops through IPs checking if the counting number is even or odd.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

On line 16 I accidentally removed the "http" and "example" protocol :(


Swagger API Missing Return Type

This can be seen in v3.4.6.
The swagger.json file includes a great representation of the API, but does not include proper type data for what gets returned to calls.  I'm currently writing a Swagger client generator, and it's almost completely finished, but just realized that Arango's Swagger doesn't include the return types which makes it impossible for me to structurally generate a client with any type-safety.
Please let me know if there's a stop-gap solution that doesn't involve me manually dealing with every end-point.
Thanks

There are also several places where definitions lack proper details. For example, in "post_api_collection", shardKeys should be an array of strings, but the type is just string.

we worked a lot on swagger correctnes in the meantime, hence closing this as out of date.


One or more errors occurred. (The entity type '' requires a primary key to be defined.)

I am trying to use an existing database with my Asp.Net Core (2.2.0) application that includes also Individual Authentication.
I created my database then I scaffolded the models in the application, but I am facing several errors, that leads me to the conclusion that the DBContext registration not working.
first, am registering my DBContext in Startup ConfigureServices:
services.AddDbContext<ApplicationContext>(options =>
                options.UseSqlServer(
                    Configuration.GetConnectionString("DataContextConnection")));

then, the model is including two foreign keys representing a composite primary key:
public class ManOfTheMatchPrediction
    {
        public int ManOfTheMatchId { get; set; }
        public string UserId { get; set; }
        public int PlayerId { get; set; }
        public DateTime CreatedDate { get; set; }
        public DateTime LastModifiedDate { get; set; }

        public ManOfTheMatch ManOfTheMatch { get; set; }
        public Player Player { get; set; }
        public KhatiboUser User { get; set; }
    }

after that on DBContext class am declaring the relations properties:

 modelBuilder.Entity<ManOfTheMatchPrediction>(entity =>
            {
                entity.ToTable("ManOfTheMatch_Prediction");

                entity.HasKey(e => new { e.ManOfTheMatchId, e.UserId });

                entity.HasOne(d => d.ManOfTheMatch)
                    .WithMany(p => p.ManOfTheMatchPrediction)
                    .HasForeignKey(d => d.ManOfTheMatchId)
                    .OnDelete(DeleteBehavior.ClientSetNull)
                    .HasConstraintName("FK_ManOfTheMatch_Prediction_ManOfTheMatch");

                entity.HasOne(d => d.Player)
                    .WithMany(p => p.ManOfTheMatchPrediction)
                    .HasForeignKey(d => d.PlayerId)
                    .OnDelete(DeleteBehavior.ClientSetNull)
                    .HasConstraintName("FK_ManOfTheMatch_Prediction_Player");

                entity.HasOne(d => d.User)
                    .WithMany(p => p.ManOfTheMatchPredictions)
                    .HasForeignKey(d => d.UserId)
                    .OnDelete(DeleteBehavior.ClientSetNull)
                    .HasConstraintName("FK_ManOfTheMatch_Prediction_AspNetUsers");
            });

whether I remove or keep the DBContext registration on the startup, the issue is still there and nothing change, the DBContext class is never called even when registring it on startup.
while when triggering the Identity DBContext it is been called once application startup before throwing an error.

@MohammadElKhatib could you please provide a repro project showing these symptoms.

@divega
I added you to this repro project:
https://github.com/MohammadElKhatib/Khatibo

@divega note that I am using visual studio for mac with docker and mssql container on docker

@MohammadElKhatib could you please add @AndriySvyryd as well? He will take over investigating this issue.

@divega just added Andriy
By the way i upgraded to core 2.6 and the issue looks disappeared.

@MohammadElKhatib Ok, then I am going to close this. If you happen to run into it again on 2.6 or 3.0 just leave a comment.


Goose

honk and shit

muse push for id bdbecfdc-c34a-4d9a-ba34-9531f17045e3

bugs so far:

changing position will offset visually but not the collider. better interaction is moving a mesh in the center along with a wander radius
maybe a follow vs wander flag?


Update meeting-expiration.md

Updated the retention and deletion policy interactions to better clarify, based on customer feedbacl.

@mkbond007 PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


SSH-Config Include isn't supported

Category

[ ] fzf binary
[ ] fzf-tmux script
[ ] Key bindings
[X] Completion
[ ] Vim
[ ] Neovim
[ ] Etc.

OS

[ ] Linux
[X] Mac OS X
[ ] Windows
[ ] Windows Subsystem for Linux
[ ] Etc.

Shell

[X] bash
[ ] zsh
[ ] fish

If you use a "Include" directive in your ssh config (available since OpenSSH 7.3), which includes several files from a directory, the hosts defined in those files aren't included in the auto completion feature for SSH.
Include config.d/*

Host some-host
  HostName <IP_ADDRESS>

I create as the side a project a completion wrapper who use fzf over all original completion scripts named fzf-obc
So if your original ssh completion works with include (and it works on base ubuntu 18.04), it should works too with fzf-obc (works on my computer).
Give it a try and post an issue on fzf-obc if needed
Regards

Still doesn't work

For anyone using zsh, I found this solution:
https://github.com/sunlei/zsh-ssh
It uses fzf underwater.


Minor fix: Rename celery entrypoint scripts

Looks like the beats and worker process script have their commands swapped. I swapped them back.

Yep, we've mixed that. Cheers!


Merge master to live.

PnP notice and update to StaffHub intro.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

README.md
:white_check_mark:Succeeded

staffhub/docs-conceptual/intro.md
:white_check_mark:Succeeded
View (staffhub-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Update state calculations to use ActorsStarted rather than ActorStarted

ActorsStarted will lead to far less reads and writes as we won't be updating the store for each and every actor that is started

Closed by #181


fix(cli.rs): fix tauri info panic when a package isn't installed, closes #3985

What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[x] No

Checklist

[x] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[x] I have added a convincing reason for adding this feature, if necessary

Other information

It panics even earlier now
❯ cargo tauri info

Environment
  › OS: Windows 10.0.19044 X64
  › Webview2: 100.0.1185.50
  › MSVC:
      - Visual Studio Build Tools 2022
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("unexpected end of input while parsing major version number")', src\info.rs:529:81
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  › Node.js: 16.15.0