Debugging NodeJs doesnt highlight lines when breakpoints hit

Issue Type: Bug
This worked until i upgraded VSCode to latest version.
When i place a breakpoint in a TypeScript file and press F5, the breakpoint is hit, but the line is not highlighted; if I F10 over a couple of statements the highlighted line will start to reappear after a couple of key presses; then it might disappear again.
Sometimes you can sit waiting for ages and then you realise its hit a breakpoint because you have noticed the stack list has appeared; the active file tab hasnt changed to the right file either.
VS Code version: Code 1.31.0 (7c66f58312b48ed8ca4e387ebd9ffe9605332caa, 2019-02-05T22:35:56.624Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz (8 x 2592)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledsurface_synchronization: enabled_onvideo_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
31.86GB (15.25GB free)

Process Argv
D:\Projects\EBS\Pawa API

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

tslint
eg2
1.0.42

prettier-vscode
esb
1.8.1

vscode-docker
Pet
0.5.2

I have downgraded and its working again now, so its certainly something to do with 1.31.0

I confirm, 1.30.2 works, it occurs for me in a TypeScript project too.

I can also confirm. For me the breakpoint is hit but nothing happends. Call stack is being populated but its not even going to the breakpoint and not loading the variables.
VS Code version: Code 1.31.0 (7c66f58312b48ed8ca4e387ebd9ffe9605332caa, 2019-02-06T08:51:24.856Z)
OS version: Linux x64 4.18.0-15-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz (12 x 3585)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwaresurface_synchronization: enabled_onvideo_decode: unavailable_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
15.48GB (4.67GB free)

Process Argv
Projects/Dott/backend/functions/

Screen Reader
no

VM
0%

Extensions (6)

Extension
Author (truncated)
Version

vscode-eslint
dba
1.8.0

tslint
eg2
1.0.43

prettier-vscode
esb
1.8.1

vscode-sort-json
ric
1.13.0

code-spell-checker
str
1.6.10

vsfire
tob
1.4.1

When this happens could you please open the "Dev Tools" with the "Toggle Developer Tools" action and see whether there are any errors in the console.

@weinand I just tested it. There are no errors in the console.

Please see https://github.com/Microsoft/vscode/issues/68616#issuecomment-463248717
and try whether the workaround to add a "smartStep": false helps.

seeing this for extension projects in 1.31.1 - the "smartStep": false does not help in my case
breakpoints are never hit (become "Unverified Breakpoint" when debugging)

@weinand Thanks for the info; just trying again so i updated and now its on 1.31.1 and seems to be working again without smartStep change. I will keep checking and if i get it failing again i will try the smartStep change

/duplicate of #68616

Just reproduced it on a specific function; disabling "smartStep" worked for me; yay

"smartStep": false didn't help me

What debugger are you using?


Can we export data to .csv file?

as the title

Nope. Sorry. Will never be possible with this library. There are numerous CSV libraries to choose from.


Request for advice on how to fix: Illegal instruction (core dumped)

Hello:
I've tested several skip-thoughts repos including the original without issues but unfortunately I'm encountering problems using tf 1.6 - 1.8 which generates "Illegal instruction (core dumped)" Using ubuntu 18.04, python 3.6.5, nvidia gtx 1070, cuda 9.0. Appears to be a tensorflow issue for many.
Doesn't generate above error under tf 1.5. Placed 'GoogleNews-vectors-negative300.bin'  in folder './word2vecModel' but then this error: IsADirectoryError: [Errno 21] Is a directory: './word2vecModel'
Moved model to project folder and changed to:
parser.add_argument('--embeddings_path', type=str, default="GoogleNews-vectors-negative300.bin",
then this error:
File "/usr/local/lib/python3.6/dist-packages/gensim/utils.py", line 1332, in unpickle
return _pickle.load(f, encoding='latin1')
_pickle.UnpicklingError: invalid load key, '3'.
I'm new to python. Should some version of this snippet be added to main.py?
from gensim.models import KeyedVectors
model = KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
Any help is appreciated.
Cheers

@GenTxt please see this issue thread in the TensorFlow repository. I am familiar with the error, and it happens with TensorFlow versions 1.6 onward. The reason is that the newer version binaries make use of CPU instructions that your CPU doesn't support.
The easiest "solution" is to downgrade to 1.5. The master branch is compatible with this version. However, I am currently working in the gpu branch adding GPU support and optimizing the input pipeline with the tf.data API, where the newer versions are necessary. So an actual solution, as you can read in the thread, is to install TensorFlow from sources.
Hope this helps.

@GenTxt regarding the error reading the word embeddings:

You don't need to modify the python code to read a different path for your word2vec files. That's what argparse is for. When running the script, you can do python main.py --embeddings_path path/to/your/file
Currently, main.py expects the word vectors to exist as two files; a binary file and a .syn0 file. I haven't added support for opening .bin files yet. I will modify this issue to a feature request.

@GenTxt
I solve this problem by :
from gensim.models import KeyedVectors
w2v_model = KeyedVectors.load_word2vec_format(FLAGS.embeddings_path, binary=True)

Thanks for the update.


As someone with a lot of documents, I would like to have a way to import my documents and place them into my map, so I don't have to copy and paste all my documents one by one.

Needs to be separated into different file types to be accepted as a user story.


CB-10178 Added target attribute docs to windows icons reference

JIRA CB-10178

@nikhilkh, @daserge, updated. please take a look once more

LGTM

I noticed you are modifying 6.x version of the document - it's not a good idea to do so as dev gets copied to 6.x periodically and these edits will be lost unless both are updated

Sorry, I wasn't aware of the current process. Reapplied changes to dev version

One last small comment. LGTM otherwise.


Missing AnnotationOptions#getGeometry

Capturing from @langsmith that this is missing, we expose other successors for other properties.

Double checking this we need:
AnnotationOptions#getGeometry()
AnnotationsOptions#getLatLng() // or equivalent depending on type
Symbol#getLatLng() // or equivalent depending on type


Update CML2 to build against clang 3.6 and 3.7, as well as XCode 7.0

CML2 is not tested for XCode, but should at least be made to recognize clang 3.6 and 3.7, as well as XCode versions that match particular clang versions, starting with XCode 7.0.  The XCode CI support offered by Travis CI may be a big help for this task.

[x]  Build against clang 3.6 (also use Travis CI?)
[x]  Build against clang 3.7 (also use Travis CI?)
[x]  Setup Travis CI to build CML2 against XCode 7.3

Requested by: @Segmented
See also: #5

According to Travis CI, builds against XCode seem to be working as of version https://github.com/demianmnave/CML/commit/8dc407400f116a1a05f3bc2ff5b004592019dd2b.
@Segmented

Can confirm, it does seem to work now at least with my quick tests using clang on OSX, thanks! I don't use Xcode either so I cannot confirm that. I'm not sure how to run the unit tests for you, I tried make test and cd tests; cmake . to no avail. Currently make install does not seem to exist either; I simply copied the folder but I figure its worth noting.

Thanks for checking.  To configure testing from the command line, start in your build directory and execute:
cmake . -G<generator name> -DCML_BUILD_TESTING:Bool=On
Then, to build the tests (again from your build directory):
cmake --build . --config Release
You can run the full test suite from your build directory by executing:
ctest -C Release
If you have multiple CPUs (e.g. 4 in this case), you can speed things up a bit using:
ctest -C Release -j4
I'll add this to the README also.

Kamino closed and cloned this issue to demianmnave/CML


feat: upgrade user management

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


Coincidence Trigger Feature

There doesn't seem to be a coincidence trigger function avaliable in the library, need a solution to establish "and" logic between the self-triggers of different channels.

IMPORTANT NOTE: DT5740 with DPP-QDC firmware does not support realtime trigger conicidence according the footnote at pg7 of this CAEN manual. This means that trigger coincidence would need to be achieved either through an external trigger, or some kind of software solution.

Done with commit 5c7502e.


TSServer returns stale code actions

From @jrieken on February 27, 2017 10:2
related to https://github.com/Microsoft/vscode/issues/21060
In the aforementioned issue TypeScript return a stale code action suggesting to add an import even though it has been added already. I assume this is because diagnostics computation has been scheduled but has not yet happened. The TS code action provider should synchronise with that actual source of code action.
Copied from original issue: Microsoft/vscode#21482

I confirmed that this seems to be a bug on the TypeScript side. Here's a trace of the using a code action to fix an import in the document. The order is:

Request code action for fix.
Apply fix.
Request new code actions since we have not received diagnostic info to clear the fixed error yet

[Trace - 8:06:00 PM] Sending request: getCodeFixes (85). Response expected: yes. Current queue length: 0
Arguments: {
    "file": "/Users/matb/projects/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts",
    "startLine": 109,
    "endLine": 109,
    "startOffset": 27,
    "endOffset": 43,
    "errorCodes": [
        2304
    ]
}
[Trace - 8:06:00 PM] Response received: getCodeFixes (85). Request took 6 ms. Success: true
Result: [
    {
        "description": "Add FileChangesEvent to existing import declaration from vs/platform/files/common/files.",
        "changes": [
            {
                "fileName": "/Users/matb/projects/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts",
                "textChanges": [
                    {
                        "start": {
                            "line": 16,
                            "offset": 72
                        },
                        "end": {
                            "line": 16,
                            "offset": 72
                        },
                        "newText": ", FileChangesEvent"
                    }
                ]
            }
        ]
    }
]
[Trace - 8:06:03 PM] Sending request: change (86). Response expected: no. Current queue length: 0
Arguments: {
    "file": "/Users/matb/projects/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts",
    "line": 16,
    "offset": 72,
    "endLine": 16,
    "endOffset": 72,
    "insertString": ", FileChangesEvent"
}
[Trace - 8:06:03 PM] Sending request: format (87). Response expected: yes. Current queue length: 0
Arguments: {
    "file": "/Users/matb/projects/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts",
    "line": 16,
    "offset": 1,
    "endLine": 17,
    "endOffset": 1
}
[Trace - 8:06:03 PM] Response received: format (87). Request took 4 ms. Success: true
Result: []
[Trace - 8:06:03 PM] Sending request: getCodeFixes (88). Response expected: yes. Current queue length: 0
Arguments: {
    "file": "/Users/matb/projects/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts",
    "startLine": 109,
    "endLine": 109,
    "startOffset": 27,
    "endOffset": 43,
    "errorCodes": [
        2304
    ]
}
[Trace - 8:06:03 PM] Response received: getCodeFixes (88). Request took 133 ms. Success: true
Result: [
    {
        "description": "Add FileChangesEvent to existing import declaration from vs/platform/files/common/files.",
        "changes": [
            {
                "fileName": "/Users/matb/projects/vscode/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts",
                "textChanges": [
                    {
                        "start": {
                            "line": 16,
                            "offset": 90
                        },
                        "end": {
                            "line": 16,
                            "offset": 90
                        },
                        "newText": ", FileChangesEvent"
                    }
                ]
            }
        ]
    }
]

Since the format call response is received, I expect that the TSServer has the fully updated version of the document. The returned code action also has the correct new offset value which supports this

@mjbvz is this still an issue?

I haven't seen any recent reports of this. Closing as fixed in 2.5


Nix flake: init

Pre-review checklist

[X] I've confirmed that instructions included in README.md are still correct after my changes in the codebase.
[X] I've added new automated tests to verify correctness of my new code.
[X] I've confirmed that my changes are up-to-date with the target branch.
[X] I've described my changes in the section below.

Changes description
This commit adds a contrib/nix directory which contains a Nix flake that allows a user to run snowcli using a Nix flake.

Fixed the whitespace and force-pushed

Will add a GH action to check nix build.

I added a Github action that builds snowcli using Nix <=> there are changes in contrib/nix directory. Since Nix pins all dependencies in a single lock file, there is no need to test that build unless the definitions themselves change.
One note about the created action: the package is defined for 4 architectures:
      systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];

The defined action only tests one of Linux variants. On Linux the checks run for ~a minute. MacOS could be longer and I don't want the action to waste compute if testing other systems is not deemed necessary.

Hello, thank you very much for your involvement in the form of this PR. Thanks for fulfilling all the checks from the checklist and including the workflow testing SnowCLI build with Nix.
At first sight the PR looks good but we'd like to look at it in more details and unfortunatelly it will take us at least a few days because none of us uses Nix, so we have to find some time to read a little bit about it, think about it and then finally review the PR. I think you shouldn't run into any merge conflicts because almost all of your changes are in a new directory.

Understandable. Let me know if it would be helpful if I were to |provide some materials for the background.
Just in case -- I will add some comments to the files in this PR.

I think additional comments will be enough at the moment. Thanks!
If we meet troubles with understanding the PR, we will simply ask for more explanation :)

I would prefer rebase my branch and bump the nix dependencies before merging though

👍

I think additional comments will be enough at the moment

Done. Probably the only somewhat non-standard component is flake-parts, but it's there just to reduce the boilerplate

Can we have a conversation about this?  If nix is an optional addition, it might be fine, but I am looking at a holistic approach to client-side Python, and want to use more native tooling for our Python code.  E.g. PDM is the native package manager I want to use.

In that sense Nix would be an optional addition.
If the package were to be migrated over to PDM, I could then rewrite the Nix build scripts to use PDM without changing any interfaces that Nix users use -- i.e. nix run github:Snowflake-Labs/snowcli would behave exactly the same way from the user's perspective

Hi! I have rebased my code onto main and pinned the package that Nix installs at v1.1.0, all checks pass:
https://github.com/sfc-gh-vtimofeenko/snowcli/actions

This PR is probably too out of date at this point. 2.x version is maintained here.


Blender segfaults on OpenCL render

Describe the bug
Blender segfaults when an OpenCL render is attempted.
To Reproduce
Steps to reproduce the behavior:

blender
Edit > Settings > System > Click on OpenCL, don't close the settings window
Render Properties (right panel) > Select Cycles, change device to GPU Compute
Render > Render Image (F12)

Expected behavior
It should render.
Additional context
May be related to #97311 and #75868
Notify maintainers

@cillianderoiste @veprbl
Metadata

system: "x86_64-linux"
host os: Linux 5.4.60, NixOS, 20.03.20200904.51d115a (Markhor)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.4pre20200721_ff314f1
channels(root): "nixos-20.03.2910.42674051d12, nixpkgs"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

Blender gdb backtrace:
gdb /nix/store/2ld5kp0x0psrrlnqjn2p1ll4q92kfvm8-blender-2.83.5/bin/.blender-wrapped
Thread 72 ".blender-wrappe" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffaeefe700 (LWP 16100)]
0x00007fff9422b7cd in llvm::TargetPassConfig::addPass(llvm::Pass*, bool, bool) () from /nix/store/0fdlazsmnl47m199x7zd76xbmm386kf7-rocm-llvm-3.7.0-lib/lib/libLLVM-11git.so
(gdb) bt
#0  0x00007fff9422b7cd in llvm::TargetPassConfig::addPass(llvm::Pass*, bool, bool) () from /nix/store/0fdlazsmnl47m199x7zd76xbmm386kf7-rocm-llvm-3.7.0-lib/lib/libLLVM-11git.so
#1  0x00007fff9422e388 in llvm::TargetPassConfig::addRegAssignmentOptimized() () from /nix/store/0fdlazsmnl47m199x7zd76xbmm386kf7-rocm-llvm-3.7.0-lib/lib/libLLVM-11git.so
#2  0x00007fff9422e725 in llvm::TargetPassConfig::addOptimizedRegAlloc() () from /nix/store/0fdlazsmnl47m199x7zd76xbmm386kf7-rocm-llvm-3.7.0-lib/lib/libLLVM-11git.so
#3  0x00007fff9422ecde in llvm::TargetPassConfig::addMachinePasses() () from /nix/store/0fdlazsmnl47m199x7zd76xbmm386kf7-rocm-llvm-3.7.0-lib/lib/libLLVM-11git.so
#4  0x00007fff93f723f0 in addPassesToGenerateCode(llvm::LLVMTargetMachine&, llvm::legacy::PassManagerBase&, bool, llvm::MachineModuleInfoWrapperPass&) () from /nix/store/0fdlazsmnl47m199x7zd76xbmm386kf7-rocm-llvm-3.7.0-lib/lib/libLLVM-11git.so
#5  0x00007fff93f775f1 in llvm::LLVMTargetMachine::addPassesToEmitFile(llvm::legacy::PassManagerBase&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, bool, llvm::MachineModuleInfoWrapperPass*) () from /nix/store/0fdlazsmnl47m199x7zd76xbmm386kf7-rocm-llvm-3.7.0-lib/lib/libLLVM-11git.so
#6  0x00007fff97890797 in (anonymous namespace)::EmitAssemblyHelper::AddEmitPasses(llvm::legacy::PassManager&, clang::BackendAction, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*) [clone .constprop.0] () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#7  0x00007fff97894bf0 in (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#8  0x00007fff978966db in clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#9  0x00007fff97836aff in clang::CodeGenAction::ExecuteAction() [clone .part.0] () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#10 0x00007fff98616181 in clang::FrontendAction::Execute() () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#11 0x00007fff985d0623 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#12 0x00007fff97829c3b in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#13 0x00007fff975e9656 in COMGR::InProcessDriver::execute(llvm::ArrayRef<char const*>) () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#14 0x00007fff975ef82d in COMGR::AMDGPUCompiler::processFile(char const*, char const*) () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#15 0x00007fff975efc84 in COMGR::AMDGPUCompiler::processFiles(amd_comgr_data_kind_s, char const*) () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#16 0x00007fff9762c29f in amd_comgr_do_action () from /nix/store/4b8wzp5pg2w5cj0clq9xwmb44sng1nfk-rocm-comgr-3.7.0/lib/libamd_comgr.so.1
#17 0x00007fffa04e94e9 in device::Program::compileAndLinkExecutable(amd_comgr_data_set_s, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, amd::option::Options*, char**, unsigned long*) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#18 0x00007fffa04ea014 in device::Program::linkImplLC(amd::option::Options*) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#19 0x00007fffa04ef6e2 in device::Program::build(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, amd::option::Options*) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#20 0x00007fffa04a528c in amd::Program::build(std::vector<amd::Device*, std::allocator<amd::Device*> > const&, char const*, void (*)(_cl_program*, void*), void*, bool, bool) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#21 0x00007fffa0496de4 in amd::Device::BlitProgram::create(amd::Device*, char const*, char const*) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#22 0x00007fffa04c8650 in roc::Device::createBlitProgram() () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#23 0x00007fffa05052e8 in roc::KernelBlitManager::createProgram(roc::Device&) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#24 0x00007fffa04d778d in roc::VirtualGPU::create() () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#25 0x00007fffa04c7b70 in roc::Device::createVirtualDevice(amd::CommandQueue*) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#26 0x00007fffa04a8877 in amd::HostQueue::Thread::run(void*) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#27 0x00007fffa04540f7 in amd::Thread::main() () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#28 0x00007fffa04aa253 in amd::Thread::entry(amd::Thread*) () from /nix/store/4w67bbiximrfn899mgjibjzy76nc2cb9-rocm-opencl-runtime-3.7.0/lib/libamdocl64.so
#29 0x00007ffff7cc0ead in start_thread () from /nix/store/2pi6zgkwnr3zdslvlv16nixpzvbyjx1n-glibc-2.31/lib/libpthread.so.0
#30 0x00007ffff10f2d2f in clone () from /nix/store/2pi6zgkwnr3zdslvlv16nixpzvbyjx1n-glibc-2.31/lib/libc.so.6

I'm using a Radeon VII with:
  hardware = {
    opengl = {
      enable = true;
      driSupport = true;
      driSupport32Bit = true;
      extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
      extraPackages = with pkgs.unstable; [
        amdvlk
        rocm-opencl-icd
        rocm-runtime
      ];
    };
    pulseaudio.support32Bit = true;
  };

clinfo gives me:
Number of platforms                               1
  Platform Name                                   AMD Accelerated Parallel Processing
  Platform Vendor                                 Advanced Micro Devices, Inc.
  Platform Version                                OpenCL 2.0 AMD-APP (3182.0)
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_amd_event_callback
  Platform Extensions function suffix             AMD

  Platform Name                                   AMD Accelerated Parallel Processing
Number of devices                                 1
  Device Name                                     gfx906
  Device Vendor                                   Advanced Micro Devices, Inc.
  Device Vendor ID                                0x1002
  Device Version                                  OpenCL 2.0
  Driver Version                                  3182.0 (HSA1.1,LC)
  Device OpenCL C Version                         OpenCL C 2.0
  Device Type                                     GPU
  Device Board Name (AMD)                         Device 66af
  Device Topology (AMD)                           PCI-E, 2b:00.0
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               60
  SIMD per compute unit (AMD)                     4
  SIMD width (AMD)                                16
  SIMD instruction width (AMD)                    1
  Max clock frequency                             1801MHz
  Graphics IP (AMD)                               9.6
  Device Partition                                (core)
    Max number of sub-devices                     60
    Supported partition types                     None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                             1024x1024x1024
  Max work group size                             256
  Preferred work group size (AMD)                 256
  Max work group size (AMD)                       1024
  Preferred work group size multiple              64
  Wavefront width (AMD)                           64
  Preferred / native vector sizes
    char                                                 4 / 4
    short                                                2 / 2
    int                                                  1 / 1
    long                                                 1 / 1
    half                                                 1 / 1        (cl_khr_fp16)
    float                                                1 / 1
    double                                               1 / 1        (cl_khr_fp64)
  Half-precision Floating-point support           (cl_khr_fp16)
    Denormals                                     No
    Infinity and NANs                             No
    Round to nearest                              No
    Round to zero                                 No
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               No
    Support is emulated in software               No
  Single-precision Floating-point support         (core)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  Yes
  Double-precision Floating-point support         (cl_khr_fp64)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
  Address bits                                    64, Little-Endian
  Global memory size<PHONE_NUMBER>8 (15.98GiB)
  Global free memory (AMD)                        16760832 (15.98GiB)
  Global memory channels (AMD)                    128
  Global memory banks per channel (AMD)           4
  Global memory bank width (AMD)                  256 bytes
  Error Correction support                        No
  Max memory allocation<PHONE_NUMBER>2 (13.59GiB)
  Unified memory for Host and Device              No
  Shared Virtual Memory (SVM) capabilities        (core)
    Coarse-grained buffer sharing                 Yes
    Fine-grained buffer sharing                   Yes
    Fine-grained system sharing                   No
    Atomics                                       No
  Minimum alignment for any data type             128 bytes
  Alignment of base address                       1024 bits (128 bytes)
  Preferred alignment for atomics
    SVM                                           0 bytes
    Global                                        0 bytes
    Local                                         0 bytes
  Max size for global variable<PHONE_NUMBER>2 (13.59GiB)
  Preferred total size of global vars<PHONE_NUMBER>8 (15.98GiB)
  Global Memory cache type                        Read/Write
  Global Memory cache size                        16384 (16KiB)
  Global Memory cache line size                   64 bytes
  Image support                                   Yes
    Max number of samplers per kernel             26287
    Max size for 1D images from buffer            65536 pixels
    Max 1D or 2D image array size                 2048 images
    Base address alignment for 2D image buffers   256 bytes
    Pitch alignment for 2D image buffers          256 pixels
    Max 2D image size                             16384x16384 pixels
    Max 3D image size                             2048x2048x2048 pixels
    Max number of read image args                 128
    Max number of write image args                8
    Max number of read/write image args           64
  Max number of pipe args                         16
  Max active pipe reservations                    16
  Max pipe packet size<PHONE_NUMBER> (1.587GiB)
  Local memory type                               Local
  Local memory size                               65536 (64KiB)
  Local memory syze per CU (AMD)                  65536 (64KiB)
  Local memory banks (AMD)                        32
  Max number of constant args                     8
  Max constant buffer size<PHONE_NUMBER>2 (13.59GiB)
  Preferred constant buffer size (AMD)            16384 (16KiB)
  Max size of kernel argument                     1024
  Queue properties (on host)
    Out-of-order execution                        No
    Profiling                                     Yes
  Queue properties (on device)
    Out-of-order execution                        Yes
    Profiling                                     Yes
    Preferred size                                262144 (256KiB)
    Max size                                      8388608 (8MiB)
  Max queues on device                            1
  Max events on device                            1024
  Prefer user sync for interop                    Yes
  Number of P2P devices (AMD)                     0
  P2P devices (AMD)                               <printDeviceInfo:147: get number of CL_DEVICE_P2P_DEVICES_AMD : error -30>
  Profiling timer resolution                      1ns
  Profiling timer offset since Epoch (AMD)        0ns (Wed Dec 31 16:00:00 1969)
  Execution capabilities
    Run OpenCL kernels                            Yes
    Run native kernels                            No
    Thread trace supported (AMD)                  No
    Number of async queues (AMD)                  8
    Max real-time compute queues (AMD)            8
    Max real-time compute units (AMD)             60
  printf() buffer size                            4194304 (4MiB)
  Built-in kernels                                (n/a)
  Device Extensions                               cl_khr_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_amd_device_attribute_query cl_amd_media_ops cl_amd_media_ops2 cl_khr_image2d_from_buffer cl_khr_subgroups cl_khr_depth_images cl_amd_copy_buffer_p2p cl_amd_assembly_program

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  AMD Accelerated Parallel Processing
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [AMD]
  clCreateContext(NULL, ...) [default]            Success [AMD]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx906
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx906
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx906

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.10
  ICD loader Profile                              OpenCL 2.1

cc @acowley @danieldk

This seems like an upstream issue. I guess the question is which upstream? Does the crash also occur with e.g. the Intel OpenCL runtime?

FWIW, I also see the segfault on an rx580 following the repro instructions. It does seem like others have Blender working with ROCm OpenCL, so the crash may well be due to our packaging.
@danieldk did such a nice job cleaning up our LLVM derivations that there's much less room for funny business now than with previous releases. I see that we have a debugVersion option we could give LLVM which might reveal a bit more information?

I can also reproduce the problem on a RX580.
Here somebody has the same issue, with a plausible explanation:
https://github.com/RadeonOpenCompute/ROCm/issues/992
The conclusion there is that it occurs when two different LLVM versions are used in a process. Which would be the case here, since Blender uses OpenGL.
Currently our Mesa is still on LLVM 9, whereas ROCm uses LLVM 11.

Yep, this is probably the issue. If I compile the blender derivation with a mesa built against llvmPackages_11, I don't get the segfault.
I am not sure yet what the solution is, since we cannot always update the LLVM version that Mesa uses to that of ROCm. I wonder how this is dealt with with ROCm on other distributions. Do they override system Mesa?

I guess I should have turned up that link first given my prior involvement! 😜
@danieldk Could we substitute a mesa_rocm at runtime instead? Perhaps via ICD, or LD_LIBRARY_PATH, or even LD_PRELOAD?

There is hardware.opengl.package, which we could use to override system package. I guess if it works, we could add a module along the lines of the amdgpu-pro support, which would use mesa_rocm as the OpenGL package and could even add the ICD definition to extraPackages. But we should probably first test how well building mesa against the LLVM fork works.

@danieldk If you have a chance, could you elaborate on how you did this in nixos?:

If I compile the blender derivation with a mesa built against llvmPackages_11, I don't get the segfault.

I understand that it's not the permanent fix, but I'm quite curious to try it.

@danieldk If you have a chance, could you elaborate on how you did this in nixos?:

If I compile the blender derivation with a mesa built against llvmPackages_11, I don't get the segfault.

I understand that it's not the permanent fix, but I'm quite curious to try it.

I modified nixpkgs in-place, but you could do something like:
mesa-rocm = mesa.override { llvmPackages = llvmPackages_rocm; };

And then:
blender-rocm = blender.override { mesa = mesa-rocm; };

A more proper solution would be to switch to a llvmPackages_rocm-built Mesa for /run/opengl. I do have a branch for this:
https://github.com/danieldk/nixpkgs/commits/mesa-rocm
or the two commits:
https://github.com/danieldk/nixpkgs/commit/48b866ebb6c27b1897d92ae65ca69b8b83e89009
https://github.com/danieldk/nixpkgs/commit/4ff2ccbee86201e35e24d38765d05bd5639a6644
But I ran into another issue in Blender, and I didn't have time to investigate. The system (including GNOME, etc.) worked fine with Mesa built with llvmPackages_rocm.

blender-rocm = blender.override { mesa = mesa-rocm; };

Blender doesn't seem to have a mesa input?

blender-rocm = blender.override { mesa = mesa-rocm; };

Blender doesn't seem to have a mesa input?

Sorry. I misremember. I may be rebuilt my whole system with mesa.override { llvmPackages = llvmPackages_rocm; };

@danieldk i tried your amdgpu-rocm thing but now blender crashes with this error when opening user preferences:
Read prefs: /home/ash/.config/blender/2.83/config/userpref.blend
mesa: CommandLine Error: Option 'h' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
zsh: abort (core dumped)  blender

is this the error you mentioned you didn't have time to debug?

CommandLine Error: Option 'h' registered more than once!

That's the one. I am afraid though that I can't help with any further debugging. I had to the RX580 in the machine I was testing on by an NVIDIA card, because there were too many issues with training machine learning models on the RX580 :/.

this seems very similar to https://github.com/JuliaGPU/OpenCL.jl/issues/125 and replies there would seem to indicate that it's still some LLVM incompatibility, but i'm not sure what is incompatible here... is it blender itself?

I think the core problem is that both OpenGL and OpenCL (through winding paths) each load their own instances of LLVM into the process, and those instances of LLVM somehow end up sharing some global data, with usually disastrous results.

It seems that upstream now explicitly states that ROCm is only for headless deployments:
https://github.com/RadeonOpenCompute/ROCm/commit/6fb55e6f459ca2bcddba6c9b7ac39345fa7a51b7
Given the risks of compiling Mesa against a vendor fork (we get to fix any bugs), I think that we should just document this in the AMD -> OpenCL section of the manual and leave it at that. Do you agree @acowley ?
Given this and the lack of RDNA support, I guess the future of OpenCL for GUI apps is with Mesa's Clover.

I do agree, yes. An AMD employee has been trying to walk things back, but who knows. It doesn’t make sense that they just switched their consumer driver to use ROCm for OpenCL if they don’t have a vision of getting in sync with Mesa, but that’s clearly their row to hoe.

I'm amazed AMD has any foot left to shoot at.

Still important, though only in general (OpenCL in GUI apps with AMD GPUs), because Blender will soon drop OpenCL support.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/blender-error-when-i-install-the-radeon-pro-render-plugin/16678/5

I think I finally figured out a workaround! Disabling LLVM_LINK_LLVM_DYLIB for llvmPackages_rocm.llvm seems to work. I did it with the following patch to nixpkgs, but it should be possible to do it with an overlay too:
diff --git a/pkgs/development/compilers/llvm/rocm/llvm/default.nix b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
index 724fd6b6..003fb499 100644
--- a/pkgs/development/compilers/llvm/rocm/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
@@ -12,7 +12,7 @@
 , zlib
 , debugVersion ? false
 , enableManpages ? false
-, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
+, enableSharedLibraries ? false

 , version
 , src
@@ -59,7 +59,7 @@ in stdenv.mkDerivation rec {
     "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
   ];

-  postPatch = ''
+  postPatch = lib.optional enableSharedLibraries ''
     substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
     patch -p1 < ./outputs.patch
   '';

After a lot of building, Blender seems happy again :)

If this works, it is incredible.  How would I do it as an overlay?

I think this should do it. It's ugly and there might be a better way but it should at least make it easy to test if it works for you.
self: super:

let lib = super.pkgs.lib;

in {
  llvmPackages_rocm = super.llvmPackages_rocm // rec {
    llvm = super.llvmPackages_rocm.llvm.overrideAttrs (old: {
      outputs = lib.remove "lib" old.outputs;
      cmakeFlags = lib.remove "-DLLVM_LINK_LLVM_DYLIB=ON" old.cmakeFlags;
      postPatch = "";
    });

    # From pkgs/development/compilers/llvm/rocm/default.nix
    clang = super.wrapCCWith rec {
      cc = clang-unwrapped;
      extraBuildCommands = ''
        clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
        rsrc="$out/resource-root"
        mkdir "$rsrc"
        ln -s "${cc}/lib/clang/$clang_version/include" "$rsrc"
        ln -s "${compiler-rt}/lib" "$rsrc/lib"
        echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
        echo "--gcc-toolchain=${super.stdenv.cc.cc}" >> $out/nix-support/cc-cflags
        echo "-Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
        rm $out/nix-support/add-hardening.sh
        touch $out/nix-support/add-hardening.sh
      '';
    };

    clangNoCompilerRt = super.wrapCCWith rec {
      cc = clang-unwrapped;
      extraBuildCommands = ''
        clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
        rsrc="$out/resource-root"
        mkdir "$rsrc"
        ln -s "${cc}/lib/clang/$clang_version/include" "$rsrc"
        echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
        echo "--gcc-toolchain=${super.stdenv.cc.cc}" >> $out/nix-support/cc-cflags
        echo "-Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
        rm $out/nix-support/add-hardening.sh
        touch $out/nix-support/add-hardening.sh
      '';
    };

    clang-unwrapped =
      super.llvmPackages_rocm.clang-unwrapped.override { inherit lld llvm; };

    compiler-rt =
      super.llvmPackages_rocm.compiler-rt.override { inherit llvm; };

    lld = super.llvmPackages_rocm.lld.override { inherit llvm; };
  };
}

I'm still trying to figure out if there's a simpler fix (for example, overriding just rocm-comgr), but haven't been able to figure it out yet.

It works for me.  I suggest you make a PR with this change to Nixpkgs.  It may seem a bit ad-hoc, but otherwise it is not possible for a process to have both OpenGL and ROCm OpenCL loaded simultaneously, which seems like a pretty common use case.

Now that I know it works for other people I'll try to make a PR in the next day or two, yeah :)


Add a MergeCount BatchIterator

Codecov Report

Merging #4945 into batch-iterator will increase coverage by 0.11%.
The diff coverage is 86.58%.

@@                 Coverage Diff                  @@
##             batch-iterator    #4945      +/-   ##
====================================================
+ Coverage             81.97%   82.08%   +0.11%
- Complexity            10694    10734      +40
====================================================
  Files                  1305     1308       +3
  Lines                 44676    44761      +85
  Branches               5653     5659       +6
====================================================
+ Hits                  36621    36742     +121
+ Misses                 5419     5387      -32
+ Partials               2636     2632       -4

Impacted Files
Coverage Δ
Complexity Δ

...x/src/main/java/io/crate/data/BatchRowVisitor.java
75% <ø> (ø)
5 <ø> (?)

...ava/io/crate/data/CloseAssertingBatchIterator.java
86.95% <ø> (-3.96%)
9 <ø> (ø)

...main/java/io/crate/jobs/PageDownstreamContext.java
86.76% <100%> (+3.17%)
42 <ø> (+3)
:white_check_mark:

...rate/operation/projectors/SimpleTopNProjector.java
91.66% <100%> (+0.36%)
12 <ø> (ø)
:x:

...rate/operation/projectors/MergeCountProjector.java
80% <100%> (-20%)
4 <1> (ø)

...tion/aggregation/RowTransformingBatchIterator.java
100% <100%> (ø)
8 <8> (?)

.../crate/operation/projectors/InputRowProjector.java
100% <100%> (ø)
6 <1> (+1)
:white_check_mark:

...in/java/io/crate/data/MergeCountBatchIterator.java
73.68% <73.68%> (ø)
13 <13> (?)

...arch/indices/recovery/BlobStartPrefixResponse.java
66.66% <ø> (-33.34%)
3% <ø> (-2%)

...o/crate/operation/projectors/SortingProjector.java
81.57% <ø> (-13.16%)
10% <ø> (-2%)

... and 31 more

Continue to review full report at Codecov.

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

Closing, this has been superseded by https://github.com/crate/crate/pull/4955


Include scss in NPM

Would you mind including the src folder in NPM as well, not just the dist one?
Right now it's a bit hard to import the stylesheet to scss.
Thanks, Sebi

Same issue here, webpack with NPM version shows warning of .scss file not found

this library is dead?


Synthetic property with path to vcvarsall.bat

I think it would be useful if you add a synthetic property with a path to vcvarsall.bat.
VS2015 and before: %installationPath%\VC\vcvarsall.bat
VS2017 and later: %installationPath%\VC\Auxiliary\Build\vcvarsall.bat

Thank you for your feedback; however, vswhere is meant for generic use cases - in your case, to get the installationPath. Please feel free to use it how you require for your use cases, but there are many that have nothing to do with VC. We simply cannot accommodate every possible need, which is why it returns the root path and the version with which you could make such a determination in script.


EntityDataView.refreshData should the current filter into account

When we update the grid after the data fetch we should take into account the current filter as well.

Yep. I wanted to refactor in such a case that's why fixing #127 took more time.
And have you checked that record after the update is displayed correctly in you fix?

Fixed in 2b73d44


Var shadowing not hinted/warned by analyzer

Hi, I did perform a "fix all" for the lint no_leading_underscores_for_local_identifiers and came accross this issue that was not hinted/warned by the analyzer:

Old code
void foo({bool? bar}) {
  bool? _bar = false;
  print(bar);
  print(_bar);
}

After automatic fix
void foo({bool? bar}) {
  bool? bar = false;
  print(bar);
  print(bar);
}

Even though after fixing the lint there was a variable being declared with the same name as one parameter, there was no hint/warning about it, and the function required some extra changes to make it work again.
Dart version
Dart SDK version: 2.18.2 (stable) (Tue Sep 27 13:24:11 2022 +0200) on "windows_x64"

There are two separate things I guess:

The analyzer fix should not be offered for that case.
Both the analyzer and CFE don't complain for a duplicate declaration in:

void foo({bool? bar}) {
  bool? bar = false;
}

https://dart-review.googlesource.com/c/sdk/+/262606
for the first point

The first point you raise is a bug, though I would phrase it slightly differently than you did: the fix should not change the name to something that shadows an existing name. I'm not sure what name it should suggest, but the most consistent approach I can think of is to drop the underscore and add to the end of the name the smallest numeric index that will prevent shadowing.
The second isn't a bug. Block structured languages like Dart intentionally allow name shadowing. While it's true that shadowing can often be a cause of bugs, there are times when it's very convenient to allow shadowing. Because it's explicitly allowed by the language, there is no diagnostic produced.
I will note, however, that we have at least one lint that addresses one aspect of this issue: avoid_shadowing_type_parameters prevents one type parameter from shadowing another. It is, however, very narrow in that it doesn't prevent other names from shadowing a type parameter. It might make sense to have a lint to prevent local variables from shadowing other local variables, which would cover the case above. I opened an issue against the linter to discuss the question (https://github.com/dart-lang/linter/issues/3755).

Thanks for the feedback, that's a better approach.
CL was updated accordingly.


Add community projects

To Do:

[ ] Add 2 more cards in the project section

Add this on the card with a screenshot & description of the project repo. Note: Use specific repo. in the button link (per card)

[ ] Add Starter Kit
[ ] Add Hacktoberfest Philippines
[ ] Add GitHub Profile PH
[ ] Add Showcase Your Project
[ ] Add Community Website
[ ] Add Support
-
If you like to do this, please show some screenshots in your PR.

Hey @vinzvinci can you give an example as to how the screenshot of the repo should look like ? If you can provide just one screenshot as an example that would be very helpful.

Example:

Additionally: Please rename the button into View

Do you want to take this issue @SandeepKrSuman ?

Yes. Can I work on this?

Yes, I'll assign this to you @SandeepKrSuman

Thanks I'm working on it now.


useEndpoint returns undefined data after client-side navigation

Qwik Version
0.9.0
Operating System (or Browser)
Ubuntu/Firefox
Node Version (if applicable)
18.7.0
Which component is affected?
Qwik City
Expected Behaviour
In my Qwik City project, if I use <Link> to navigate from a page with an onGet (let's call it the "dynamic" page), to one without an onGet (static), I would expect that even if we need to "render" the dynamic page to do unmount effects or something like that, the useEndpoint result should return the actual data that was loaded initially.
Actual Behaviour
I'm seeing that the the component for the dynamic page is rendered with useEndpoint returning a {state: 'resolved', resolved: undefined} resource.
Additional Information
This is my repro case which is the base npm create qwik@latest with the following changes:
src/routes/echo/[text]/index.tsx
import { component$, Resource } from<EMAIL_ADDRESS>import {
  DocumentHead,
  RequestHandler,
  useEndpoint,
} from<EMAIL_ADDRESS>
type EndpointData = {
  text: string;
  timestamp: number;
  env: string;
};

export const onGet: RequestHandler<EndpointData> = async ({ params }) => {
  await new Promise((resolve) => setTimeout(resolve, 300));
  return {
    text: params.text,
    timestamp: Date.now(),
    env: typeof window === "undefined" ? "server" : "browser",
  };
};

export default component$(() => {
  const resource = useEndpoint<typeof onGet>();
  console.log(
    "rendering dynamic page, resource, state:",
    resource.state,
    "resolved:",
    resource.resolved
  );
  return (
    <Resource
      value={resource}
      onPending={() =>
Loading...
}
      onRejected={() =>
Error
}
      onResolved={(data) => (
        console.log("showing resolved data", data),
        data ? (
          <>

{data.text}

Date: {new Date(data.timestamp).toString()}

Env: {data.env}

          </>
        ) : (

No data

        )
      )}
    />
  );
});

export const head: DocumentHead = {
  title: "Echo",
};

src/components/header/header.tsx
import { component$, useStylesScoped$ } from<EMAIL_ADDRESS>import { Link } from<EMAIL_ADDRESS>import { QwikLogo } from "../icons/qwik";
import styles from "./header.css?inline";

export default component$(() => {
  useStylesScoped$(styles);

  return (

        <Link href="/">
          <QwikLogo />
        </Link>

          <Link href="/echo/alpha">Alpha</Link>

          <Link href="/echo/bravo">Bravo</Link>

          <Link href="/echo/charlie">Charlie</Link>

  );
});

It occurs for both npm run dev and npm run preview.

I believe this could be a symptom of the broader issue here: https://github.com/BuilderIO/qwik/issues/1398

Hi @cmbartschat
Since the referenced issue could be closed i am curious if you could try to do the mentioned steps as well on your side and use the newly available loader$ functions. Please let me know if i can give you a hand somehow 🙏

Yep, now that loader$ is released in earnest, there's no more problems here!


Install Shelly Plug and Starlink dashboards only when enabled

Addresses #39 by moving starlink and shelly grafana configs in only when they're enabled. Also template the prometheus config to only include starlink and shelly blocks when applicable.

Apologies. I pushed a version from before a test run. Caught the nots and a shelly_plug_enable name issue in the task.

Before merging I'd like to test manually to make sure the YAML is well-formed, but if someone else could also test it I'd be happy to merge (just want double-confirmation since anything in the YAML getting messed up could cause install to fail).

I just tested this change and it worked great.
The relevant part of the logs:
TASK [Ensure Shelly Plug Prometheus exporter is running.] *************************************************************************************************************************************************************************************
skipping: [<IP_ADDRESS>]

TASK [Ensure Starlink directory exists.] ******************************************************************************************************************************************************************************************************
skipping: [<IP_ADDRESS>]

TASK [Copy Starlink docker-compose template to Pi.] *******************************************************************************************************************************************************************************************
skipping: [<IP_ADDRESS>]

TASK [Ensure Starlink Prometheus exporter is running.] ****************************************************************************************************************************************************************************************
skipping: [<IP_ADDRESS>]

I saw some trailing spaces in templates/prometheus.yml.j2. Remove them, squash/fixup your commits into a single one and to me, this change is good to go.

@geerlingguy Thanks! My git-fu is fairly weak. I made a run at squashing it but had pretty muddy tree. Looks like you could squash it all on merge though. Thanks for the patience.


[Rodio] Re-acquire audio sink when (re)starting playback.

This releases the audio sink and re-acquires it when skipping/pausing a song.
This is useful for switching playback device on desktop machines.
In an ideal world Rodio would check to see if the default sink has changed and switch automatically. But for the moment I find this behaviour acceptable, as I have a couple of playback devices I use.
This has a nice side effect of clearing the sink when stopping playback, which can make librespot feel more responsive.
I expect the performance issues seen previously by @chrisbp in https://github.com/librespot-org/librespot/pull/277 will only be fixed by not using rodio::Sink and rodio's mixer. Meaning this whole backend will need re-writing at some point to support an as-yet-non-existent very simple Rodio API for efficient playback of a single Source. So this PR may prove pointless.
N.B. Currently this causes a fuzz noise because it plays the first 5ms of every queued audio chunk when stopping. Waiting on https://github.com/tomaka/rodio/pull/221 to fix that.
I have excluded Cargo.lock cause I'm using a local Rodio and CPAL so it's pretty meaningless.

Will wait for upstream merge before merging this, unless it takes ages, if that works for you.

Should we just merge this? The merge cycle in the rodio repo seems to be glacial.

Maybe we ought to with problems like #329 however I think I may need to actually drop the sink to release the device between songs if the same decide is used. That doesn't happen right now because Sink. stop() is useless.

hmm, w.r.t dropping the sink, is that not going to introduce a click as it drops it and instantly reacquires? also, you want to try and get an implementation with drop sink working first, or shall we just merge this as it stands?

Atm this is only good for changing device on a song boundary. It never drops the device if the default never changes currently. So I'm not sure merging this offers much benefit as is for most users, and just exposes the Rodio bug. I'll commit the drop thing later after dinner :)

At least from memory of Rodio internals that's the case I'll double check with some debug output.

Well this still doesn't actually seem to let go of the audio device... pactl list sink-inputs shows librespot disappearing when you pause with the alsa backend... but not the Rodio one. Even though I'm pretty sure our code holds no references to any Rodio objects.

Hmm, rodio seems to be a bit of a pita, i'll check this tomorrow if i hopefully get a chance. Based on your experience with rodio, do you think a switch to cpal will alleviate any of these bugs? have just had a look at rodio, and activity there seems to be minimal, hence I may write a cpal backend given that rodio seems to offer minimal benefits to librespot once bugs and development cycle are taken into account.

I actually have a cpal branch but it isn't recently rebased. It works nicely on alsa but plays no sound after being stopped
(and started again) on Windows. I'd like to try and dig into that more deeply and avoid recreating the cpal thread for every song. cpal-backend2 is the branch.

Unfortunately it's far more code as we have to handle resampling and sample conversion.

Here's the next blocking upstream bug which is preventing my CPAL branch working correctly on Windows, and potentially (unsubstantiated claim incoming:) preventing Rodio from completely releasing a Device when playback is complete.
https://github.com/tomaka/cpal/issues/266

Well it turns out that's actually been fixed in CPAL master... which I had at one point been used for testing, but I guess I switched back to the crates.io release at some point.
Anyway here are two working CPAL backends:
https://github.com/willstott101/librespot/tree/cpal-backend2 - uses mpsc::sync_sender
https://github.com/willstott101/librespot/tree/cpal-backend-ringbuf - uses ringbuf crate and thread::sleep
Both seem to have similar performance and occasionally stutter when I push my laptop hard on power saver mode. Neither allow us to have a large buffer which we can clear when stopping a song. So pausing, then skipping to the next song will play the remainder of the buffer from the previous song before starting the next :/
However they do completely release their connection to the audio device when stopped. Meaning once can pause librespot, change audio settings or default output, and resume with the new device.
I'm being very slow at this but eventually, maybe, I'll get there.

I'm going to close the PR, as I don't think it's particularly worth pursuing. Moving towards a direct CPAL back-end would be much more worthwhile.


feat: cmd args & more

upgrade to go v1.21
use built-in replace customize funcs
support command arguments
change examples' mod name
more go-style
update go-control-plane to 0.12.0

Signed-off-by: Gang Liu<EMAIL_ADDRESS>

@wrossmorrow PTAL

Thanks, sorry for the delay. I'll try to review tonight or tomorrow. I appreciate the request.

See here: https://github.com/wrossmorrow/envoy-extproc-sdk-go/pull/3

Also there is a Java SDK variant being used, and that is a place where more ideas might be getting fleshed out.

i am ok with #3, let's move on with it


Add Redis Sentinel Authentication Support

👋🏾 Hey there!
I was looking to configure my gitea cache to use my existing redis sentinel setup, but found that I wasn't able to supply any authentication parameters to it. So this PR brings support to do that, along with some light extraction of a couple of bits into some separate functions for easier testing (and of course, some tests as well).
I looked at other libraries supporting similar RedisUri-style connection strings (e.g. Lettuce), but it looks like this type of configuration is beyond what would typically be done in a connection string. Since gitea doesn't have configuration options for manually specifying all this redis connection detail, I went ahead and just chose straightforward names for these new parameters.
I think there are two main concerns with this approach:

the implementation details are a bit confusing -- to be fair, it can be confusing in general to consider the ACL requirements in a sentinel setup just in general, but having two sets of credentials in a single connection string is definitely more complicated.
putting credentials outside the standard URI location exposes them to being leaked more easily... granted, I think this is not hugely concerning since a practical installation would have this coming from some sort of secrets management system -- more ideally these configuration options would be directly exposed in gitea's configuration, but it looks like the spirit of the config file was to be really abstract for this section, so not sure there's much to be done there without refactoring and making a breaking change in the config file schema.

Looking forward to your feedback!

Codecov Report

Merging #19213 (b475df1) into main (49c5fc5) will decrease coverage by 0.03%.
The diff coverage is 35.39%.

@@            Coverage Diff             @@
##             main   #19213      +/-   ##
==========================================
- Coverage   46.55%   46.52%   -0.04%
==========================================
  Files         856      857       +1
  Lines      123018   123235     +217
==========================================
+ Hits        57277    57341      +64
- Misses      58814    58951     +137
- Partials     6927     6943      +16

Impacted Files
Coverage Δ

cmd/admin.go
0.00% <0.00%> (ø)

cmd/hook.go
7.11% <0.00%> (ø)

cmd/serv.go
2.39% <0.00%> (ø)

models/asymkey/ssh_key_deploy.go
55.55% <ø> (+1.13%)
:arrow_up:

models/helper_environment.go
100.00% <ø> (ø)

modules/context/permission.go
25.39% <0.00%> (ø)

modules/doctor/checkOldArchives.go
22.85% <0.00%> (ø)

modules/doctor/fix16961.go
35.06% <0.00%> (ø)

modules/doctor/mergebase.go
10.25% <0.00%> (ø)

modules/doctor/misc.go
21.55% <0.00%> (ø)

... and 179 more

Continue to review full report at Codecov.

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

@zeripath thanks for the quick review! Updated the code style 👍🏾

Hmm...
Do you know if the "FailoverClient" uses the username/password options that we already provide? If not could we just copy them over to the sentinelusername/password instead of creating more options?
If not I guess we have to add this.

I did some of the sentinel implementation in go-redis so I can answer this!
It doesn't -- sentinels are a separate server than the main redis instances, and can (and often are) authenticated separately, especially in a Redis 6-7 world where ACL auth allows you to restrict scope on a user-level basis. i.e. I only get support for looking for the main redis instance via my sentinel credentials, but I can then use much more powerful read/write credentials against the main redis instance. That's why UniversalOptions and FailoverOptions have separate fields for each.

It doesn't -- sentinels are a separate server than the main redis instances, and can (and often are) authenticated separately, especially in a Redis 6-7 world where ACL auth allows you to restrict scope on a user-level basis. i.e. I only get support for looking for the main redis instance via my sentinel credentials, but I can then use much more powerful read/write credentials against the main redis instance. That's why UniversalOptions and FailoverOptions have separate fields for each.

So what I'm asking is if the opts.Failover() don't pass the opts.Username/opts.Password or use them ... Then instead of creating new query options in the connection string we can just reuse the current username and password parts of the uri and on use of sentinel we just copy the username password to the appropriate parts of the options.
If not fine, it's fine to create a new set of query options.

So what I'm asking is if the opts.Failover() don't pass the opts.Username/opts.Password or use them ... Then instead of creating new query options in the connection string we can just reuse the current username and password parts of the uri and on use of sentinel we just copy the username password to the appropriate parts of the options.

I believe I understand you, but my response should still be valid -- you need both sets of credentials for sentinel. The FailoverClient uses a set of credentials for authentication against the sentinel (what this PR adds) and a separate set of credentials once the sentinels have designated a redis master instance, in which the client will then connect with the other (existing) set of credentials.
So FailoverOptions provides both sets of credentials because it's a two-phase process with two different authentication credential pairs.

@6543

else ack

Roger that, new log line tossed in -- whipped up some tests there as well

please no force push - I have to review all again

we squash-merge so you can just merge master into your branch to resolve conflicts

nice work - and thanks for the tests - appreciate them :)

Very good refactoring 👍

Thanks everyone! Appreciate the active community here 👍🏾


Rate Limit problems

Hi,
When the rate limit is reached, a internal server error (500) is popping up, stating a DeadlineExceededError:
DeadlineExceededError: The overall deadline for responding to the HTTP request was exceeded.
It traces back to call (/lib/stravalib/util/limiter.py:64), and my guess is it is related to this part:
# Wait the difference between timeframe and the oldest request.
td = self.timeframe - delta
sleeptime = hasattr(td, 'total_seconds') and td.total_seconds() or total_seconds(td)
self.log.debug("Rate limit triggered; sleeping for {0}".format(sleeptime))
time.sleep(sleeptime)
Could it be that the time.sleep(sleeptime) is causing the DeadlineExceededError?

I don't want to say that is not possible, but the intent of that sleep code is to sleep between different requests.  Admittedly, though, I've not played recently with exceeding rate limit; I have the sense that the Strava response codes / headers / etc. have gotten more sophisticated.  We really need a more responsive / less-naive version of the rate limiter.


feat: sort user list by status

Description
Sorted user list by status.
Issue Resolved
Fixes #32
Screenshots

Checklist
Please make sure to review the following before submitting your PR:

[X] I have read the contribution guidelines.
[X] I have read the code of conduct.
[X] I have reviewed my submission in detail.

Lgtm thanks for your contribution 😄


open-plc-utils spi error

I am making use of the Qualcomm QCA7000 Serial-to-Powerline Bridge chip and trying to connect this chip to the host processor (RPi4 Buster) over SPI. I have developed all the necessary hardware and installed the qca7000 linux drivers on the host but continuously get the following errors when connecting to the SPI Slave port of the QCA7005: dmesg | grep qca produces the following:
qcaspi spi0.0: Invalid signature (0x0000)
qcaspi: probe of spi0.0 failed with error -14
I have added dtoverlay=qca7000 to config.txt and enabled the SPI on the RPi4.
I have tried different configurative pin strapping options as indicated in the datasheet but keep getting the same errors. Any advise on this? Or anyone been able to connect to this chip on Buster?

此问题，硬件SPI接线错误导致。

此问题，SPI总线接线错误导致。

@zgb526642524 , Actually, We had verified wiring and we had not found any issue with the wiring. Once I replace the QCA7000 chip after it works perfectly.

Did you add the interrupt pin spec? I had problem too and I solved this way (I don't ensure this will work for you):
dtoverlay=qca7000, int_pin = 5 (where 5 is the actual value of the GPIO).
You can find some information here https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README, check qca7000 lines and you will find it at 2742

I was able to make it work. i sat down with hardware specialist where i do my internship. He said as above that we missed teh interrupt pin.


Field of view at different resolutions

Hi,
I'm interested in what the viewing angle will be when shooting at 640 by 480 resolution. If you can tell me what FOV at other resolutions, I would be grateful.
I have seen this information.

Hi @avadosf  The field of view of the physical sensors listed in tables such as the one above is fixed and cannot be changed.
However, each resolution has its own image field of view size as part of the camera's intrinsics information.  The intrinsics of each individual RealSense camera are unique due to the manufacturing process in the factory.
You can list the full intrinsics of each supported resolution for your particular camera, including that resolution's image field of view, by using the 'rs-enumerate-devices' tool.  Launching the tool with the instruction below will open it in calibration information mode.
rs-enumerate-devices -c
Below is a listing of the intrinsics from my own D455 using this calibration information mode.

thanks.

Could you please explain what this information is?

The extrinsic information describes the difference in physical position between two sensors on the same camera.  For example, the image above describes the positional difference between the depth sensor (the left infrared sensor) and the RGB color sensor.

Can you please tell me how to find the distance between sensors in centimeters using the information above?
I calculated the distance between them to be 5.9 centimeters based on this drawing.

The distance between sensors is measured from the centerline of the sensors.  On the diagram, the distance between the left and right infrared sensors is 95 mm (9.5 cm).  The distance between left stereo (the origin of depth) and RGB is 59 mm (5.9 cm).

yeah, I know.
I want to know the physical distance between sensors using rotation matrix, is it possible?

I am not certain but as your depth to color translation vector is -0.059, this likely represents the horizontal distance between depth and color sensors in meters (59 mm / 1000 = 0.059 m), with the minus symbol indicating that the position of the color sensor is to the left of the depth sensor's centerline (if it was positioned to the right of the depth centerline then it would be a positive value).

what does the second and third number in the translation vector mean?

As the translation is a 3D vector, the other values are likely vertical y-height and forward-back z-distance parameters.  Y has -6 on the end of its value, indicating that it is not -8 but instead is a very small number, close to zero.  Likewise, Z is -0.0005, indicating that there is virtually no positional difference vertically and back-forward between the depth and color sensors, and the main difference is in the horizontal distance.

Please comment on what the Intrinsic values mean.

The parameters of interest are  PPX, PPY, Fx, Fy.


[feat] : add code_of_conduct.md file

fixes : #7

what should i add the place of<EMAIL_ADDRESS>

what should i add the place of<EMAIL_ADDRESS>Just add project/github_repo name

Just add project/github_repo name

Abidsyed25
/
ScrapQuest like this


fix(deps): update otel core experimental

This is the renovate PR #1865 merged with #1864 and a newly generated package-lock.json - for some reason renovate did leave the package-lock.json in a weird state where some old packages were still used leading to compilation failures due to differing types.
This PR also updates the @opentelemetry/contrib-test-utils for @opentelemetry/sampler-aws-xray.
Note: we've actually had this problem before that it's left behind for some reason. (#1582) I previously assumed it was because an x-ray sampler PR was merged with old dependencies after the utils were already updated on main, but now I'm not exactly sure why this is happening - the only thing that's different to my eye is that it's a private package.

Converting back to draft as it does seem to add some other issues. Looks like it's pulling in some very old version of instrumentation-http. I wonder if that has something to do with the outdated examples in this repo.

Ah, now I get it. I think this depends on the fix included in<EMAIL_ADDRESS>I'll try it out locally. We should probably consider changing the version in @opentelemetry/instrumentation to allow for 1.7.x.

Ah, it looks like this is actually failing as IITM is swallowing the (cjs) exports from instrumentation-http

Tests are all green now, marking as ready-for-review. Some changes I made:

delete package-lock.json and generate a new one
removed useUnifiedTopology from the mongodb-example as this is the default in previous versions and would not compile anymore with the updated one that was installed with a fresh npm install (bf19f7bbf5bd0a933b6d1080f2db247595ffcc0a)
bump the rxjs dev dependency of instrumentation-nextjs-core as it was conflicting with types from another dev dependency used in other parts of the repo (7845a6b)


Should we have a single module for trans/internal available ?

This is a minimal attempt to what a single module for trans/internal could look like. If such is introduced, the amount of necessary symbol renames could be drastically reduced. Do you recommend extending this to the whole of trans/internal ?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.5 out of 6 committers have signed the CLA.:white_check_mark: samhatfield:white_check_mark: marsdeno:white_check_mark: wdeconinck:white_check_mark: reuterbal:white_check_mark: piotrows:x: prgilliesYou have signed the CLA already but the status is still pending? Let us recheck it.

Closed as no longer actively under development.


rancher-compose up --upgrade is not the same as the interface

For understanding this issue, I've put on the end my rancher-compose.yml and docker-compose.yml on the end.
I'm trying to run an continous delivery with Rancher. My last step is run and full upgrade of update services on target stack. To make this work, I run the following procedure as an Jenkins step:
cd ${WORKSPACE} && \
    rancher-compose --verbose -p arrow pull --cached && \
    rancher-compose --verbose -p arrow up -d --force-upgrade --confirm-upgrade arrow-fpm arrow-cli && \
    rancher-compose --verbose -p arrow up -d --upgrade --confirm-upgrade --pull

But sometimes, it don't upgrade my side kick container. If I go to the interface and upgrade the service manually - making sure that fpm and atena-fpm are checked - it runs very well.
All I wanna do is make it pull the latest data-container from registry and deploy it with zero-downtime.
rancher-compose.yml
arrow-fpm:
    upgrade_strategy:
        start_first: true

arrow-nginx:
    upgrade_strategy:
        start_first: true

arrow-worker:
    upgrade_strategy:
        start_first: true

arrow-cli:
    upgrade_strategy:
        start_first: true

fpm:
    upgrade_strategy:
        start_first: true

nginx:
    upgrade_strategy:
        start_first: true

postgres:
    upgrade_strategy:
        start_first: true

docker-compose.yml
arrow-fpm:
    image: registry.fakename.com/arrow:latest
    tty: true
    stdin_open: true
    labels:
        io.rancher.container.pull_image: always
    command: cat

arrow-nginx:
    image: registry.fakename.com/arrow:latest
    tty: true
    stdin_open: true
    labels:
        io.rancher.container.pull_image: always
    command: cat

arrow-cli:
    image: registry.fakename.com/arrow:latest
    tty: true
    stdin_open: true
    labels:
        io.rancher.container.pull_image: always
    command: cat

fpm:
    image: registry.fakename.com/laravel-fpm:latest
    labels:
        io.rancher.sidekicks: arrow-fpm
        io.rancher.scheduler.affinity:host_label: server=11
        io.rancher.container.pull_image: always
    volumes_from:
        - arrow-fpm
    links:
        - postgres
    environment:
        APP_URL: arrow.ms.fakename.com
        DB_CONNECTION: pgsql
        DB_HOST: postgres
        DB_DATABASE: arrow
        DB_USERNAME: arrow
        DB_PASSWORD: arrow

nginx:
    image: registry.fakename.com/laravel-nginx:latest
    links:
        - fpm
    labels:
        io.rancher.sidekicks: arrow-nginx
        io.rancher.scheduler.affinity:host_label: server=11
        io.rancher.container.pull_image: always
    volumes_from:
        - arrow-nginx

postgres:
    image: postgres:9.5.0
    volumes:
        - /var/lib/postgresql/arrow:/var/lib/postgresql/data
    environment:
        POSTGRES_USER: arrow
        POSTGRES_PASSWORD: arrow
    labels:
        io.rancher.scheduler.affinity:host_label: server=11

cli:
    image: registry.fakename.com/laravel-cli:latest
    command: php /data/www/artisan migrate --force
    labels:
        io.rancher.sidekicks: arrow-cli
        io.rancher.container.pull_image: always
        io.rancher.scheduler.affinity:host_label: server=11
        io.rancher.container.start_once: true
    volumes_from:
        - arrow-cli
    links:
        - postgres
    environment:
        APP_URL: arrow.ms.fakename.com
        DB_CONNECTION: pgsql
        DB_HOST: postgres
        DB_DATABASE: arrow
        DB_USERNAME: arrow
        DB_PASSWORD: arrow

Currently running on:

Which sidekick container is it not upgrading? I see that in your command, you don't have the upgrade to request arrow-nginx to be upgraded.

arrow-fpm and arrow-cli.

I am unable to reproduce. Can you confirm whether the images for the sidekicks were updated on your hosts?
Steps I took:

Launch your list of services, but modified the docker-compose.yml to make it easier for me.
Update the docker-compose.yml by changing the image for the 2 sidekicks
Upgrade the stack using this command:

rancher-compose up -d --upgrade --confirm-upgrade

The sidekicks arrow-fpm and arrow-cli were upgraded and are at the new image.

Docker-compose.yml
arrow-fpm:
    #Started with ubuntu 14.04.3 and updated to 14.04 for "upgrade"
    image: ubuntu:14.04
    tty: true
    stdin_open: true
    command: cat

arrow-nginx:
    image: nginx
    tty: true
    stdin_open: true
    command: cat

arrow-cli:
   #Started with ubuntu 14.04.3 and updated to 14.04 for "upgrade"
    image: ubuntu:14.04
    tty: true
    stdin_open: true
    command: cat

fpm:
    image: ubuntu:14.04.3
    labels:
        io.rancher.sidekicks: arrow-fpm
    volumes_from:
        - arrow-fpm
    links:
        - postgres
    tty: true
    stdin_open: true

nginx:
    image: nginx
    links:
        - fpm
    labels:
        io.rancher.sidekicks: arrow-nginx
    volumes_from:
        - arrow-nginx

postgres:
    image: postgres:9.5.0
    environment:
        POSTGRES_USER: arrow
        POSTGRES_PASSWORD: arrow

cli:
    image: ubuntu:14.04.3
    labels:
        io.rancher.sidekicks: arrow-cli
        io.rancher.container.start_once: true
    volumes_from:
        - arrow-cli
    tty: true
    stdin_open: true
    links:
        - postgres

Well, I'm forcing it recreate the services. Its working well if I run it on my computer but when jenkins runs it, sometimes dont upgrade.

@pedrommone Based on your most recent comment, it doesn't like a direct issue with Rancher/rancher-compose as it is working on your computer. Could it be a timing thing due to using jenkins?

@deniseschannon what do you mean with timing issues??

Closed due to inactivity.


Update lookup content, media, flashcard service

Parent
course_service20
Description
Whenever some resource in the services is created/deleted, the lookup is updated.
Acceptance Criteria

[x] lookup gets updated when changes in the content service occur
[x] lookup gets updated when changes in the media service occur
[ ] lookup gets updated when changes in the flashcard service occur

After starting implementation, I've realised it would make more sense to create two different topics, due to different levels of information available between services.  While content always has a reference to a chapter, e.g. Media only has a reference to a Content ID. Therefore, the corresponding chapter/course for a Media needs to be resolved. By having the update information go through the content service first, we can replace the content ID with a chapter ID and then forward the message to the course service.
Proposed Service Topics
Topic: Resource Association
Involved Services:
publishers:

contention service

subscribers:

Course service

Message Content:

ChapterId, ResourceID (Entity ID), CRUD Operation

Topic: Resource changes
Involved Services:
publishers:

media service
flashcard service

subscribers:

Content service

Message Content:

Entity ID, List::ContentID, CRUD Operation


Use vuex instead EventBus pattern

Event bus was introduced in https://github.com/aeternity/superhero-ui/commit/18eafe33fd1bacccadcda9ba6b61440c570f6233

The issue wasn't well-explained. The idea is to avoid the event bus pattern in general. It is coming somewhere from Backbone, but in Vue it should be doable using Vuex.
I assume that instead of using a global 'reload data' event, our components should dispatch an action (like 'send a tip') and inside that action, we should explicitly update the related state (for example, to update stats in the left panel). There may be a lot of work and I'm proposing to do it step by step.
I think it is reasonable to do it:

it should increase performance because will be updated only necessary parts
it will make us move some business logic from components to vuex (as it intended to be)
it is more consistent with other use cases of vuex (the data flow will be more obvious)


test: add DP test cases in traffic split e2e

Please answer these questions before submitting a pull request

Why submit this pull request?

[ ] Bugfix

[ ] New feature provided

[ ] Improve performance

[ ] Backport patches

Related issues

Bugfix

Description

How to fix?

New feature or improvement

Describe the details and related test reports.

Backport patches

Why need to backport?

Source branch

Related commits and pull requests

Target branch

Ping @gxthrj


tw organizations broken

I notices this on my local machine, so I tried it in a docker container to make sure it wasn't specific to me. tw organizations is absent.

You can see that tw info works fine, and a host of other commands work too, I am even able to set up compute envs with batch forge.
I'm also not able to add a workspace with tw workspaces add ..., I get ERROR: Unknown. Check that the provided identifier is correct. This may or may not be related. One thing at a time I guess.

Hi @JaimeSeqLabs
I've tried it on my M1 mac, in a condaforge/miniforge3 container on that machine and in a condaforge/miniforge3 container on our linux (Ubuntu 20.04) server. Always the same result.

Ok, I see a weird error message in your screenshot: "/opt/conda/bin/tw line 6: warning: ...." and then "Error: Could not find or load main class organizations".
It looks like tw is a script that is calling java directly i.e. `tw organizations --> java organizations".
Is it possible that the file tw in your bin folder is a script? Maybe it got renamed by mistake while installing.
Can you please run file /opt/conda/bin/tw ? the type of the file should be binary executable:

For M1: /usr/local/bin/tw: Mach-O 64-bit executable arm64
For Ubuntu (x86): /usr/local/bin/tw: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, with debug_info, not stripped

Also, it is possible to call the API directly to get the organizations list. That way we can check that the server is reachable as well.
export TOWER_ACCESS_TOKEN=<your_token>

curl -X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer ${TOWER_ACCESS_TOKEN}" \
https://tower.nf/api/orgs

On my mac and in the container, the type of file is Bourne-Again shell script text executable, ASCII text
I am installing from conda. Could that have something to do with it?
tw.txt
It looks like a bash script written by seqera. I am attaching it here (I had to give it a txt extension for github to accept it).
Just to reiterate, tw info works, so far it's just organizations that doesn't.

I am installing from conda. Could that have something to do with it?

Yes, unfortunately the bioconda/tower-cli package seems to be outdated and instead of using the binary release for any specific platform it runs the .jar file using java. Also there is an issue with the handling of commands being passed to the .jar.
The only distribution method that we are actively maintaining at the moment is the binary release and, of course, the source code for the project. I highly recommend switching to binary releases.
I'll also check the status/ownership of the bioconda/tower-cli package to avoid confusions in the future.

Thanks Jaime. I will not use the conda version any more.
It would be great if you could fix it though, it's a handy install method for tw cli and seqerakit.


expose API for query creation

I have been trying to build query values from a yecc parser (Erlang).  most of you in the Ecto team are surely aware of the attempt, at least @josevalim .  anyhow, I first targeted the quote format, until I received comments explaining that these values are meant to be used in macros, or, as far as I understand, at compile time, not during execution.
next attempt, I described it here on the elixir forum, which did not trigger any reaction.
so I continued on that road and tried to achieve the same from my erlang parser.  which again I discussed on the elixir forum, and the bottom line was that I need an API from ecto.
what I wish to have is an official way to replace the entries wheres, joins, select and from.  that is, given a Ecto.Query, get a new one with one of the fields redefined.
the sequence I wish to perform, but without risking misusing ecto, is this:

create an empty Ecto.Query
based on (1), create a query with a from field,
based on (2), create a query with also a select field,
based on (3), create a query with also a joins field,
based on (4), create a query with also a wheres field.

w = %Ecto.Query{}
w = %{ w | from: %Ecto.Query.FromExpr{source: {"plant", nil}}}
w = %{ w | joins: [
  %Ecto.Query.JoinExpr{
    source: {"accession", nil},
    qual: :inner,
    on: %Ecto.Query.QueryExpr{
      expr: {:==, [], [
        {{:., [], [{:&, [], [0]}, :accession_id]}, [], []},
        {{:., [], [{:&, [], [1]}, :id]}, [], []}
      ]}}},
  %Ecto.Query.JoinExpr{
    source: {"location", nil},
    qual: :inner,
    on: %Ecto.Query.QueryExpr{
      expr: {:==, [], [
        {{:., [], [{:&, [], [0]}, :location_id]}, [], []},
        {{:., [], [{:&, [], [2]}, :id]}, [], []}
      ]}}}
  ]}
w = %{ w | select: %Ecto.Query.SelectExpr{expr: [{{:., [], [{:&, [], [2]}, :code]}, [], []}, {{:., [], [{:&, [], [1]}, :code]}, [], []}, {{:., [], [{:&, [], [0]}, :code]}, [], []}]}}
Botany.Repo.all(w)

or is there already a correct way to do what I wish to achieve?

The API for query creation is exactly what we have today. You are thinking about the internals but it is not necessary to fiddle with them all. Our query api supports both interpolation and dynamic values. For example, imagine you have to parse "foo:43" and convert it to a query. You can do this:
query = "table" # or Schema
[field, value] = String.split("foo:43", ":")
field = String.to_existing_atom(field)
query = from q in querry, field(q, ^field) == ^value

And so on. Ben mentioned the correct way to solve this in the forum here: https://elixirforum.com/t/how-to-produce-executable-code-using-yecc/23644/12 - In a nutshell, you shouldn't build the query inside the parser because the parser goal is to return an AST. Then, in Elixir code, you traverse the AST, building the Ecto query.
Also, please note that we don't use the issues tracker for feature proposals. The mailing list is a better place for this discussion.

And to be clear, yourr parser AST is not going to be elixir quoted expressions. It is simply a representation of what you parser. So going back to the previous example, if you have to parse: "foo:42", your parser should return something like:
{:where, :foo, "42"}

Which then will be translated to Ecto queries.

I'm so sorry, but I don't see how the answer closes the question.  my problem is not in parsing strings, I know how to do that, and how to produce whatever reasonable representation of however complex queries.  my problem is that I do not know how to gradually, stepwise, build a Ecto.Query value corresponding to a non-trivial query.

In this case, it is better to continue the discussion in the forum. The issues tracker is for bugs/issues only.

you probably then want to review your labels:

Review the labels in which sense? Also, the first entry in the issue template says:

Do not use the issues tracker for help or support requests (try Elixir Forum, Stack Overflow, IRC or mailing lists, etc).

Oh, I see what you mean. I said it is for bugs/issues only, but features is also on the list. It has been fixed, thanks!

YMMV/IMO, if I was member of the project, I would first make a strong point in favour, and then vote for keeping also feature requests in the issue tracker, and I would be happy with an extensive pool of open issues, to be used as backlog when planning sprints.  that's how I manage the projects I manage.  again, YMMV.

This is how we do it at company projects but this is open source. If
someone wants a feature, then the best way is to submit a pull request,
rather than have a backlog that will never be worked on. You can use the
mailing list to propose features though, also to discuss if they would be
accepted or if someone is willing to implement it.
José Valimwww.plataformatec.com.br
http://www.plataformatec.com.br/Founder and Director of R&D

precisely because this is open source, you should (IMO) prefer open issues,
your way you do not promote interaction/integration (one has an idea, someone else implements it),
you also break the single inbox policy,
and you make feature requests less visible to people willing to dig in the software.

In all projects I have tried “open issues” approach in more than 12 years maintaining open source projects, my conclusion is that it doesn’t work. The end result is an issues tracker with hundreds or thousands (yes, I have been there) of open issues, where it is impossible to do anything and a large amount of time is spent on triaging issues rather than fixing stuff. That goes on until the project declares issue bankruptcy and has a bot closing everything older than X months, regardless of how good the bug report was or of how complete a patch was.
A single inbox only makes sense if all items have the same priority and in this case they don’t. Fixing any pending issue has higher priority than any feature request.
Maybe there is an approach to making open issues work but I definitely don’t know what it is. Until then, on the projects I maintain, the issues tracker are about issues first and foremost. :)


WB2L - Aldi/Lightway SMART-AL2017-TGTS Downlight

Lightway 8W Smart LED Downlight model SMART-AL2017-TGTS, Sold by Aldi Australia

Dumped in its virgin state with bk7231tools
SMART-AL2017-TGTS.zip

Can you also join to a dummy wifi network, configure with app and attach post-join dump?

Hi there, I have one of these, I'm not presently in a position to try dumping it but I was able to run cloudcutter using the tuya generic device option, and it seems to run the exploit as it updated the SSID to the cloudcutter device and it connects back after power cycle.
However the tool is then failing after the device connects back to the cloudcutter wifi ssid, with a "SSL decrypt or bad MAC error" and from some digging it seems that the TLS PSK or algorithm must be mismatched, either that or I've misunderstood how this is working
(I will try and post a log tomorrow)

Profile is added. Can someone give it a try?
Interestingly, the app code matches a bunch of LSC devices, which do already work:
970716 Smart LED Tunable White E27 806 Lumen
970700 Smart LED Tunable White GU10 345 Lumen
970710 Smart LED RGB + Tunable White GU10 380 Lumen
970820 Smart LED Downlight Tunable White 360 Lumen
970724 Smart LED RGB + Tunable White E27 806 Lumen

Do wonder if there are any differences for the device @pastcompute is trying on, though.

This seems to have worked for me now - I can observe the device on my wifi, with some caveats:

I had to patch the scripts, for some reason the service NetworkManager stop (etc) commands don't find service, and I had to change it to systemctl stop NetworkManager (etc) instead - I'm guessing this is due to whatever version of Debian is running on my nuc
the hostname shows up through DHCP to my Wifi AP as wlan0 which is a bit odd

Now I'm just having trouble getting tinytuya to talk to it but I guess thats a different problem. It is broadcasting something on port 6667, and from Wireshark I can see tinytuya opening a connection on port 6668 but very few bytes seem to be exchanged, I'm possibly just getting the keys wrong somehow

Profile is added. Can someone give it a try?
That profile worked for me, thanks.
Power, dimmer, colourtemp and mode switching all working as expected via tinytuya.

This seems to have worked for me now - I can observe the device on my wifi, with some caveats:
* I had to patch the scripts, for some reason the `service NetworkManager stop` (etc) commands don't find `service`, and I had to change it to `systemctl stop NetworkManager` (etc) instead - I'm guessing this is due to whatever version of Debian is running on my nuc

Might be worth switching to the systemd variant in general. I'll take a look at that, thanks.

* the hostname shows up through DHCP to my Wifi AP as `wlan0` which is a bit odd

I'm afraid that's just how the tuya firmware acts, can't particularly change it without changing the firmware itself. They do that in completely stock operation when onboarded via the apps as well.

Now I'm just having trouble getting tinytuya to talk to it but I guess thats a different problem. It is broadcasting something on port 6667, and from Wireshark I can see tinytuya opening a connection on port 6668 but very few bytes seem to be exchanged, I'm possibly just getting the keys wrong somehow

The code template below works, note the updatedps call which is necessary to "refresh" the device in many cases
import tinytuya

d = tinytuya.BulbDevice('<deviceID>', '<deviceIP>', '<deviceLocalKey>')
d.version = 3.3 # hack to set the version without communicating with the device
d.updatedps()
d.set_version(3.3)
# Do whatever

The profile worked. And tinytuya works fine. However, this light also originally supports colour change but it seems this feature is missing in the profile. Therefore, tinytuya was unable to change the colour of the light. Can anyone add this feature? I suppose it's datapoint 24 (?).

An update has been pushed that should include a profile for this device.  Please update your repo and give it a try.  Please see the instructions page ( https://github.com/tuya-cloudcutter/tuya-cloudcutter/blob/main/INSTRUCTIONS.md ) for any command or input changes.
If the new profile does not work, please re-open this ticket with details (including logs) of the failure.
Any feedback is appreciated.