feat(plugins): add flash.nvim

https://github.com/ayamir/nvimdots/discussions/494#discussioncomment-6616409

In core/mapping.lua, I wrote a function for users who don't have flash.nvim installed.
I only bind partial keymap available in flash.nvim in keymap/editor.lua, because I use the default s quite often.

I'm not sure If I should remove cleverf, because it involves delete&replace it's keymap.

https://github.com/ayamir/nvimdots/pull/926/commits/21748b22826a0d381ad0ea8749eb13b507d5aea3: remove clever-f should work, it's keymap seems equal to flash.nvim's default. Do we need to define , and ; explicitly?

What's the reason to add this, it doesn't do more than hop and treehopper

What's the reason to add this, it doesn't do more than hop and treehopper

You can check out it's README.md. In short, it combines all three plugins (include clever-f) and enhances /. Isn't it worth it? :D

I agree, but I'm only using some of the basic features of comments.nvim. Can you explain how it conflicts with flash.nvim? Because it seems to me that I only defined S, and clever-f also defines f and F.

I support to use flash to replace clever-f and then users can freely choose whether to use it as a replacement for hop.

They had the advantage over each other and I didn't remove hop.nvim, even though I use flash.nvim more often.

I support to use flash to replace clever-f and then users can freely choose whether to use it as a replacement for hop.

Hmm FWIW this way the drawbacks of this plugin outweigh the potential benefits it may bring. I mean, why do we need to replace a single working plugin with a highly-integrated one? We can add wildfire.vim for custom textobjects and have each plugin do their respective functionality, which will also reduce maintenance pressure as no plugin will experience way faster iterations.

And https://github.com/ayamir/nvimdots/discussions/494#discussioncomment-6260886 cmp also enhance /

Ah thanks for providing a working example! I'm working on this, trying to cover some cornercases 😄

I support to use flash to replace clever-f and then users can freely choose whether to use it as a replacement for hop.
IMO hop, tree-hopper and incremental-selection covers the functionalities of flash very well and they are already in this repo. I'm also implementing folke/flash.nvim#52 on the top of TS.
And #494 (comment) cmp also enhance /

This is a little bit different IMO, flash.nvim also support fast jump in search mode, however, cmp and other plugins don't.

I support to use flash to replace clever-f and then users can freely choose whether to use it as a replacement for hop.

Hmm FWIW this way the drawbacks of this plugin outweigh the potential benefits it may bring. I mean, why do we need to replace a single working plugin with a highly-integrated one? We can add wildfire.vim for custom textobjects and have each plugin do their respective functionality, which will also reduce maintenance pressure as no plugin will experience way faster iterations.

And #494 (comment) cmp also enhance /

Ah thanks for providing a working example! I'm working on this, trying to cover some cornercases smile

I've been using cmp-cmdline, because sometimes lsp integrate is needed in cmdline. but wilder.nvim's statusline is quite useful ...

This is a little bit different IMO, flash.nvim also support fast jump in search mode, however, cmp and other plugins don't.

Maybe we can only enable this specific feature? b/c we'll probably load flash.nvim at { "CursorHold", "CursorHoldI" }, this way, its setup will unlikely to result in performance overhead.

but wilder.nvim's statusline is quite useful ...

Yeah I'm trying to address this issue (if we can collect and import these missing items using external sources)

Maybe we can only enable this specific feature?

You mean f, F and / or only f and F?

You mean f, F and / or only f and F?

I mean we can only enable "fast jump in search mode". This way we can avoid introduing breaking changes - if users do want to activate some of flash's features, they can enable it themselves. To me, I tend to distribute functionalities to as many plugins as possible, as this reduces maintenance pressure by eliminating the need to frequently update a specific config (file). But this is just a matter of taste :) If a plugin can bring about better experience then, why not?

I agree, as if we should replace hop.nvim by flash.nvim is not my concern, everyone has their own preferences. For introducing this plugin:

clever-f has some bug, sometimes highlight won't clear.
flash.nvim offers fast jump in search mode.

I tend to agree with @Jint-lzxy, maybe we can introduce flash.nvim gradually, first for just f, and F. For search mode I think telescope should be more than enough

I feel like I'm the author of 'flash.nvim' :D, but seems telescope can't do this.

clever-f has some bug, sometimes highlight won't clear.

Hmm I haven't encountered this issue before, but clever-f does clear its highlight after some time. Is this related to ur issue?

I feel like I'm the author of 'flash.nvim' :D, but seems telescope can't do this.

Yeah that's why I said "we can only enable 'fast jump in search mode'"

Hmm I haven't encountered this issue before, but clever-f does clear its highlight after some time. Is this related to ur issue?

I kind of forgot how to reproduce that bug, if I finish the JUMP then there is no highlight at that point. But when I press ; again (without pressing f), the highlight doesn't get cleared.

Another thing, as flash takes place of statusline, and it's prompt is configurable, we can make it look like lualine section a, maybe better.

Another thing, as flash takes place of statusline, and it's prompt is configurable, we can make it look like lualine section a, maybe better.

Good point, I will take a look in the morning.

Before I read the readme of flash.nvim, I was leaning toward Jint's side, which is distribute functionalities to each plugins, since we already had the experience of lspsaga.
But after reading the readme, I found it was THE motion plugin I tried to find an year ago! If flash.nvim was created at that time, I think I will go all in on this.
Considering there might be lots of ppl using the repo, I think it would be better to replace one functionality/plugin at one release.
Not sure about the status line thingy tho, I didn't look super deep into flash.nvim.

Considering there might be lots of ppl using the repo, I think it would be better to replace one functionality/plugin at one release.

Also quite in favor of this (as per https://github.com/ayamir/nvimdots/pull/926#issuecomment-1662666094) - we can gradually complete such transition like what we did in #920 and #921. Cause from the user's perspective, those individual PRs only adds a few files, along with several trivial (and "conflict-friendly") changes that are easy to adopt. This can also effectively avoid breaking changes (which can be quite annoying in some cases).

Tried it but seems it has a certain learning curve compared to hop.nvim.

Tried it but seems it has a certain learning curve compared to hop.nvim.

True, there is no learning curve for hop.nvim.

For anyone who might be interested, I've created a plugin to replace wildfire.vim.

@fecet wrong link direct to wildfire?

It's wildfire.[n]vim so that's correcct :laughing:

Maybe it's time to promote this PR @YuCao16 ?

Maybe it's time to promote this PR @YuCao16 ?

Yes, give me sometime.

Sorry for the long delay, what other changes do I need to make before merge?

IMO the jump function is enough to replace HopWord. But other functions like search and jump can't replace wilder.nvim because it doesn't support file level. Its remote function is wired for me and I can't understand its value.

IMO it's better to leave the decision to users. It looks good to me now.

Sorry for the delay. This PR LGTM now 😸 I explicitly disabled flash.nvim's search mode integration (but kept the related keymap to facilitate user customization), b/c IMHO this may not be the point that some users expect to change, and there're compatibility issues with wilder.nvim (correct me if I'm wrong :D)

I agree, LGTM, thanks for your help!


Example use of "query" function

Can't find out how the query function should be used.
I searched for an example use but I can't find any. Did I miss it somewhere?

Can't seem to make it work properly
http://jsfiddle.net/george_black/xamxryn6/

It's not working because callback() is called out of scope in the query method. Something we should probably fix in the lib itself. But at the moment you can use this: http://jsfiddle.net/xamxryn6/16/

I used the query and worked. Below is my code:
$('#query').tokens({
query: function (query, callback) {
this.callback = callback;
//Write here your code to fetch the data
this.callback(autoCompleteData); //autoCompleteData contains the data
}
});


Py: update README

Updated legacy notes, comments WIP bug functionality.
Description

How Has This Been Tested?

Merge criteria:

All the commits have been signed-off  (To pass the DCO check)

[ ] The commits have meaningful messages; the author will squash them after approval or in case of manual merges will ask to merge with squash.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work.
[ ] Code changes follow the kubeflow contribution guidelines.

If you have UI changes

[ ] The developer has added tests or explained why testing cannot be added.
[ ] Included any necessary screenshots or gifs if it was a UI change.
[ ] Verify that UI/UX changes conform the UX guidelines for Kubeflow.

e64e9e3 related: https://github.com/kubeflow/model-registry/issues/358


Segmentation fault on clGetPlatformIDs in process also with an OpenGL context

I'm using ROCm 3.0 on NixOS via this repository.  While NixOS is a strange distribution, ROCm has not been unusually patched from what I can see, so while the paths will look strange in the following, the actual functionality should be the same as upstream.
I have an odd issue where OpenCL via ROCm works fine, unless I try to initialise it in a process that has also initialised OpenGL.  For example, the following program segfaults on the clGetPlatformIDs() call:
#include <GL/glut.h>
#include <CL/cl.h>
#include <assert.h>

int main(int argc, char *argv[]) {
  glutInit(&argc, argv);

  cl_int err;
  cl_platform_id platform;
  err = clGetPlatformIDs(1, &platform, NULL);
  assert(err == CL_SUCCESS);

  return 0;
}

The backtrace is the following:
Thread 1 "glut" received signal SIGSEGV, Segmentation fault.
0x00007fff925cbcad in llvm::TargetPassConfig::addPass(llvm::Pass*, bool, bool) () from /nix/store/j4mq693adgd5v1svv84qkz4rnvdrbpgb-rocm-llvm-lib/lib/libLLVM-10git.so
(gdb) bt
#0  0x00007fff925cbcad in llvm::TargetPassConfig::addPass(llvm::Pass*, bool, bool) () from /nix/store/j4mq693adgd5v1svv84qkz4rnvdrbpgb-rocm-llvm-lib/lib/libLLVM-10git.so
#1  0x00007fff925ce908 in llvm::TargetPassConfig::addRegAssignmentOptimized() () from /nix/store/j4mq693adgd5v1svv84qkz4rnvdrbpgb-rocm-llvm-lib/lib/libLLVM-10git.so
#2  0x00007fff925cec94 in llvm::TargetPassConfig::addOptimizedRegAlloc() () from /nix/store/j4mq693adgd5v1svv84qkz4rnvdrbpgb-rocm-llvm-lib/lib/libLLVM-10git.so
#3  0x00007fff925cf1d6 in llvm::TargetPassConfig::addMachinePasses() () from /nix/store/j4mq693adgd5v1svv84qkz4rnvdrbpgb-rocm-llvm-lib/lib/libLLVM-10git.so
#4  0x00007fff92367d01 in addPassesToGenerateCode(llvm::LLVMTargetMachine&, llvm::legacy::PassManagerBase&, bool, llvm::MachineModuleInfoWrapperPass&) () from /nix/store/j4mq693adgd5v1svv84qkz4rnvdrbpgb-rocm-llvm-lib/lib/libLLVM-10git.so
#5  0x00007fff9236d4fd in llvm::LLVMTargetMachine::addPassesToEmitFile(llvm::legacy::PassManagerBase&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::CodeGenFileType, bool, llvm::MachineModuleInfoWrapperPass*) () from /nix/store/j4mq693adgd5v1svv84qkz4rnvdrbpgb-rocm-llvm-lib/lib/libLLVM-10git.so
#6  0x00007fff954cac9e in (anonymous namespace)::EmitAssemblyHelper::AddEmitPasses(llvm::legacy::PassManager&, clang::BackendAction, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*) [clone .constprop.1066] () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#7  0x00007fff954cf22a in (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#8  0x00007fff954d0ef4 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/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#9  0x00007fff954a8f40 in clang::CodeGenAction::ExecuteAction() () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#10 0x00007fff960331f1 in clang::FrontendAction::Execute() () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#11 0x00007fff95ff76f3 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#12 0x00007fff952c27db in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#13 0x00007fff9527a3cd in COMGR::InProcessDriver::execute(llvm::ArrayRef<char const*>) () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#14 0x00007fff952807c6 in COMGR::AMDGPUCompiler::processFile(char const*, char const*) () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#15 0x00007fff95280c14 in COMGR::AMDGPUCompiler::processFiles(amd_comgr_data_kind_s, char const*) () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#16 0x00007fff952bd70f in amd_comgr_do_action () from /nix/store/c52nnmr5z8qjv2q7mqdykv4rxf40xl7l-comgr-3.0.0/lib/libamd_comgr.so.1
#17 0x00007fffe847a338 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/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#18 0x00007fffe847e2f8 in device::Program::linkImplLC(amd::option::Options*) () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#19 0x00007fffe8481029 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/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#20 0x00007fffe8492015 in amd::Program::build(std::vector<amd::Device*, std::allocator<amd::Device*> > const&, char const*, void (*)(_cl_program*, void*), void*, bool) () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#21 0x00007fffe84683cf in amd::Device::BlitProgram::create(amd::Device*, char const*, char const*) () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#22 0x00007fffe84b0dee in roc::Device::create(bool) () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#23 0x00007fffe84b0243 in roc::Device::init() () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#24 0x00007fffe846855c in amd::Device::init() () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#25 0x00007fffe8489ec2 in amd::Runtime::init() () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#26 0x00007fffe846234a in std::call_once<clIcdGetPlatformIDsKHR::$_0>(std::once_flag&, clIcdGetPlatformIDsKHR::$_0&&)::{lambda()#2}::__invoke() () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#27 0x00007ffff7c9d9c9 in __pthread_once_slow () from /nix/store/qn76sklvyalzw9ilnxz6sh0020gl2qn6-glibc-2.27/lib/libpthread.so.0
#28 0x00007fffe84622b0 in clIcdGetPlatformIDsKHR () from /nix/store/77897wl9gs9xv4qg927z0x93drfy8pag-rocm-opencl-runtime-3.0.0/lib/x86_64/libamdocl64.so
#29 0x00007ffff7fc92e1 in khrIcdVendorAdd () from /nix/store/cb6138amx915ww5syssyv61drq2xn5n0-rocm-opencl-runtime-3.0.0/lib/x86_64/libOpenCL.so.1
#30 0x00007ffff7fcb04a in khrIcdOsVendorsEnumerate () from /nix/store/cb6138amx915ww5syssyv61drq2xn5n0-rocm-opencl-runtime-3.0.0/lib/x86_64/libOpenCL.so.1
#31 0x00007ffff7c9d9c9 in __pthread_once_slow () from /nix/store/qn76sklvyalzw9ilnxz6sh0020gl2qn6-glibc-2.27/lib/libpthread.so.0
#32 0x00007ffff7fc9591 in clGetPlatformIDs () from /nix/store/cb6138amx915ww5syssyv61drq2xn5n0-rocm-opencl-runtime-3.0.0/lib/x86_64/libOpenCL.so.1
#33 0x00000000004010a3 in main (argc=<optimized out>, argv=<optimized out>) at glut.c:10

Interestingly, if I do the OpenCL initialisation first, then it is the call to glutInit() that fails, but with a similar stack trace:
Thread 1 "glut" received signal SIGSEGV, Segmentation fault.
0x00007ffee30ef4fd in llvm::TargetPassConfig::addPass(llvm::Pass*, bool, bool) () from /nix/store/hzk4k1lpp5qcsfm5y940sgjx60v0mgf2-llvm-9.0.0-lib/lib/libLLVM-9.so
(gdb) bt
#0  0x00007ffee30ef4fd in llvm::TargetPassConfig::addPass(llvm::Pass*, bool, bool) () from /nix/store/hzk4k1lpp5qcsfm5y940sgjx60v0mgf2-llvm-9.0.0-lib/lib/libLLVM-9.so
#1  0x00007ffee30f2138 in llvm::TargetPassConfig::addRegAssignmentOptimized() () from /nix/store/hzk4k1lpp5qcsfm5y940sgjx60v0mgf2-llvm-9.0.0-lib/lib/libLLVM-9.so
#2  0x00007ffee30f24c4 in llvm::TargetPassConfig::addOptimizedRegAlloc() () from /nix/store/hzk4k1lpp5qcsfm5y940sgjx60v0mgf2-llvm-9.0.0-lib/lib/libLLVM-9.so
#3  0x00007ffee30f2a5e in llvm::TargetPassConfig::addMachinePasses() () from /nix/store/hzk4k1lpp5qcsfm5y940sgjx60v0mgf2-llvm-9.0.0-lib/lib/libLLVM-9.so
#4  0x00007ffee2eab841 in addPassesToGenerateCode(llvm::LLVMTargetMachine&, llvm::legacy::PassManagerBase&, bool, llvm::MachineModuleInfo&) () from /nix/store/hzk4k1lpp5qcsfm5y940sgjx60v0mgf2-llvm-9.0.0-lib/lib/libLLVM-9.so
#5  0x00007ffee2eafd0d in llvm::LLVMTargetMachine::addPassesToEmitFile(llvm::legacy::PassManagerBase&, llvm::raw_pwrite_stream&, llvm::raw_pwrite_stream*, llvm::TargetMachine::CodeGenFileType, bool, llvm::MachineModuleInfo*) () from /nix/store/hzk4k1lpp5qcsfm5y940sgjx60v0mgf2-llvm-9.0.0-lib/lib/libLLVM-9.so
#6  0x00007ffee70399bf in ac_create_llvm_passes () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#7  0x00007ffee6f816ba in si_init_compiler () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#8  0x00007ffee6f83aa2 in radeonsi_screen_create_impl () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#9  0x00007ffee6fff5cc in amdgpu_winsys_create () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#10 0x00007ffee6f84211 in radeonsi_screen_create () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#11 0x00007ffee6dc9076 in pipe_radeonsi_create_screen () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#12 0x00007ffee6e69c48 in pipe_loader_create_screen () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#13 0x00007ffee6dcd55b in dri2_init_screen () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#14 0x00007ffee6dca7a6 in driCreateNewScreen2 () from /run/opengl-driver/lib/dri/radeonsi_dri.so
#15 0x00007fffefda901a in dri3_create_screen () from /run/opengl-driver/lib/libGLX_mesa.so.0
#16 0x00007fffefd95ad9 in __glXInitialize () from /run/opengl-driver/lib/libGLX_mesa.so.0
#17 0x00007fffefd91224 in GetGLXPrivScreenConfig () from /run/opengl-driver/lib/libGLX_mesa.so.0
#18 0x00007fffefd9178d in glXQueryExtensionsString () from /run/opengl-driver/lib/libGLX_mesa.so.0
#19 0x00007ffff7f047fe in fgPlatformInitialize () from /nix/store/fnh3vij5aj7hy6mr4awcxwniynkczpqn-freeglut-3.0.0/lib/libglut.so.3
#20 0x00007ffff7efaa8c in glutInit () from /nix/store/fnh3vij5aj7hy6mr4awcxwniynkczpqn-freeglut-3.0.0/lib/libglut.so.3
#21 0x00000000004010ae in main (argc=<optimized out>, argv=0x7fffffffd5d8) at glut.c:11

I'm not even sure that ROCm is at fault here, since the radeonsi_dri.so driver is from Mesa.
It's not a GLUT-specific problem, because the same segmentation fault occurs when using SDL.

I've noticed this same problem. ROCm and Mesa both use LLVM, but ROCm uses its own modified version that conflicts with the system version Mesa is linked against when both are loaded into the same process. As far as I can tell this effectively makes virtually any GUI-based program (at least OpenGL-based ones like Blender) unusable with ROCm. I haven't been able to find any kind of official fix or workaround for this, or even whether it's considered a bug or if ROCm is just meant to only be used in applications that don't use OpenGL at the same time (which would be a serious limitation for most users).

That's also my diagnostic.  Interestingly, I have used ROCm 3.0 on NixOS 19.09, which has an older version of Mesa, where it works fine.

I can confirm that an otherwise-up-to-date NixOS, except with Mesa bumped down to 19.1.5 and compiled with LLVM 7, can have OpenGL and ROCm OpenCL co-exist in the same process.  Mesa 19.1.5 with LLVM 9 fails.  Next step for me is to try the newest NixOS Mesa (19.3.3) but with LLVM 7.

Mesa 19.3.3 with LLVM 8 seems to work as well.

So it theoretically can play nice with Mesa, just not if using LLVM 9? I have Mesa 20 with LLVM 9 (Gentoo) currently. I might see if I can build either that Mesa version or 19.3.5 against LLVM 8. The ebuild seems to depend on either 8 or 9, but I may have to modify it to be able to manually select which one to use without having to remove the llvm:9 slot.

Yes, in theory.  But there are so many moving parts here that it's hard to say whether what worked for me will also work for you.

Since this doesn't happen for me with the new versions of ROCm and Mesa, I'm closing the issue.


[Feature] Introduce Dark Theme

We have seen countless rants about absence of a dark theme so I guess it would only be justified if there was an option to switch to a dark theme and since mostly devs visit this site this issue is slightly important.
My guess is adding a darker background color should do the job. Other ideas are most welcome

Pull request to be reviewed by @toloveru and @atagulalan

Pull request to be merged after review by @atagulalan


Loading icon in resource viewer, error not rendering.

When a resource 404's, or throws another error, the error does not render. Instead, the loading indicator remains visible. When a property of the LinkedResourceContainer is manually adjusted (e.g. set forceRender to true), the Error component renders properly.
According to @fletcher91, this has something to do with bulkRequests.

This is still (or again?) the case.


Upload will insert new row when setup primary key at model ?

When i change primary key at model to new character ID, After saved will add new row, not update this row, I found cause and fixed
At line 30 core/helpers/mvc_form_helper.php
$html .= '<input type="hidden" id="'.$this->input_id('hidden_id').'" name="'.$this->input_name('id').'" value="'.$object_id.'" />';
Replace to below:
$html .= '<input type="hidden" id="'.$this->input_id('hidden_id').'" name="data['.$this->model->name.']['.$this->model->primary_key.']" value="'.$object_id.'" />';
Thanks

Thanks. Please submit a pull request if you think you have found a bug. :)
On 17 November 2017 at 10:37, tuanrobe1989<EMAIL_ADDRESS>wrote:

When i change primary key at model to new character ID, After saved will
add new row, not update this row, I found cause and fixed
At line 30 core/helpers/mvc_form_helper.php
$html .= '';
Replace to below:
$html .= '';
Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tombenner/wp-mvc/issues/199, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAqV5aCy2ELeDB3KUyVKM6S3P0H2Dr19ks5s3WHZgaJpZM4Qh2Kf
.


Add demo with using BentoML to deploy pickled pipelines

Going back to https://github.com/alteryx/evalml/issues/1400, now that we can pickle pipelines, we should explore trying to use BentoML (or other open source libraries) to deploy pickled pipelines.
Would be a great showcase of multiple open source libraries!

Agreed!
I have been silently working on this recently :) we'll need evalml 0.24.0 to go out first. Then I'm gonna try to get this PR merged to bentoml, which adds support for evalml pipelines as artifacts. Then we can have a fun demo.

Blocked on bentoml doing a release. I have a notebook which is ready to go though!


Add an SMTP adapter

The current implementation supports:

sending emails through SMTP (use gen_smtp)
tls, and ssl protocols
cc and bcc

The current implementation doesn't support:

HTML emails (in progress)

This Pull Request is still a WIP of an SMTP adapter. I'm not quite sure if it meets bamboo standards but it works on my application. I just wanted to create the PR early to have feedbacks as soon as possible.
We still need to add, at least:

[ ] tests
[ ] add HTML body support

Any feedback is welcome 😸

Since Bamboo requires Elixir ~> 1.2, I'd say swap Dicts with Maps?
@paulcsmith Also, this feature adds so much dependency, would you / thoughtbot be interested in keeping it as a separate repo / hex package that you guys officially supports / maintains.

As suggested by @keichan34 in this issue https://github.com/thoughtbot/bamboo/issues/60, I'm reworking it to use gen_smtp so it would reduce the number of dependencies.
I used Dicts instead of Maps to make it easier to talk with mailer so moving to gen_smtp will also get rid of this. 👍
I created as a pull request as #60 seemed to suggest they wanted it here. Instead, creating it as a separate hex repo / package makes total sense for me as Bamboo has been created to be extensible. :)

All good points. Thanks Kevin!
On Tue, 26 Apr 2016, 15:43 Kevin Disneur<EMAIL_ADDRESS>wrote:

As suggested by @keichan34 https://github.com/keichan34 in this issue
#60 https://github.com/thoughtbot/bamboo/issues/60, I'm reworking it to
use gen_smtp so it would reduce the number of dependencies.
I used Dicts instead of Maps to make it easier to talk with mailer so
moving to gen_smtp will also get rid of this. 👍
I created as a pull request as #60
https://github.com/thoughtbot/bamboo/issues/60 seemed to suggest they
wanted it here. Instead, creating it as a separate hex repo / package makes
total sense for me as Bamboo has been created to be extensible. :)
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/thoughtbot/bamboo/pull/135#issuecomment-214621829

I just pushed a new commit replacing mailer by gen_smtp.
It's currently working as plain text.
I still need to implement the HTML emails 😁
I have to stop working on this today so will try to finish the HTML part tonight.

Just before starting my working day \o.
I just added the HTML support. So if people want to try it, hopefully it should work.
I still need to find the best way to generate the multipart delimiter. If you have any suggestions :)

I should be able to help test your implementation tomorrow morning (Australia time)
I'll update you if I do get to it.

@kdisneur I started on this as well a few days ago and got a pretty good test situation set up, if you'd like use my initial tests I've pushed it up for you here. I tried to follow the same pattern as the others in doing a fake server type of situation

@kdisneur First off, thank you so much! An SMTP adapter will be very helpful for a lot of people.
I think it's fine to have the PR here so we can help with the review, but I think it would be best to extract this to it's own package and repo once review is done. The reason for that is that I don't think it makes sense to add gen_smtp as a dependency to Bamboo for those not using SMTP, and because the adapters that ship with Bamboo are ones we have tried or are currently using. Because we're using them we know they work. The last reason is that once Bamboo hits 1.0 I will move all adapters (except for LocalAdapter and TestAdapter) to their own repos and Bamboo will just have the core functionality. Users can then include whatever adapter they would like.
So I think we can review things here and help you out with tests if you'd like and then once it looks good, could you make a new repo and hex package for it? Then you can ping me and I'll add a link to it in the repo just like I did for the SparkpostAdapter https://github.com/thoughtbot/bamboo/commit/04df26bca295949a11047fcc8efe1c29c72321f7

Thanks @princemaple, it would be awesome if you have some ideas of how to test them. I will not have time to look at this before tomorrow morning (French time). @anellis suggested to look at his tests. It can maybe help.
Thanks @drapergeek for the review. I will update that tomorrow morning.
Thanks @anellis, I will have a look to your tests tomorrow morning. That could be really helpful. 🙇
Thanks @paulcsmith, I will create a new repository / hex package as soon as the PR is done. It makes total sense to extract the adapters to other repositories.

tested with a newly mixed app, with mailgun smtp
config :test_bamboo_smtp, TestBambooSMTP.Mailer,
  adapter: Bamboo.SMTPAdapter,
  server: "smtp.mailgun.org",
  port: 2525,
  username<EMAIL_ADDRESS>  password: "PASSWORD",
  tls: :if_available, # can be `:always` or `:never`
  ssl: :false, # can be `:true`
  retries: 1

defmodule TestBambooSMTP.Mailer do
  use Bamboo.Mailer, otp_app: :test_bamboo_smtp
end

defmodule TestBambooSMTP do
  use Application

  def start(_type, _arg) do
    Supervisor.start_link([], [strategy: :one_for_one])
  end
end

iex(3)> TestBambooSMTP.Mailer.deliver_now %Bamboo.Email{from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>subject: "test smtp", html_body: "hi", text_body: "hi"}

13:53:52.412 [debug] Sending email with Bamboo.SMTPAdapter:

%Bamboo.Email{assigns: %{}, bcc: [], cc: [], from: {nil<EMAIL_ADDRESS>headers: %{}, html_body: "hi", private: %{}, subject: "test smtp", text_body: "hi", to: [nil<EMAIL_ADDRESS>
%Bamboo.Email{assigns: %{}, bcc: [], cc: [],
 from: {nil<EMAIL_ADDRESS>headers: %{}, html_body: "hi",
 private: %{}, subject: "test smtp", text_body: "hi",
 to: [nil<EMAIL_ADDRESS>
Mailgun logs screenshot

Inbox screenshot

The datetimes in the screenshots differ, but it's just mailgun web interface not respecting my local time :)
@kdisneur I've read through the test written by @anellis , I think it is a good way of testing the SMTP adapter, i.e. not to test the smtp client. After all we just need to know whether our adapters correctly transformed the data into the right formats; we don't want to test whether mailgun sends the email, whether httpoison makes the http call, or whether gen_smtp does the right thing.

Thank you very much for your test and feedback @princemaple
I agree, it makes no sense to test gen_smtp behaviour. So, I will have a look to @anellis work and start to write my tests with a fake gen_smtp adapter, to be able to test only the bamboo SMTPAdapter.
I don't think I will have time to finish this part before my day work. So, I will more likely give you some updates tomorrow morning.

Sounds good! No rush in anything. I really appreciate your work in this! And thanks @princemaple for testing out the adapter :)

On Apr 27, 2016, at 2:33 AM, Kevin Disneur<EMAIL_ADDRESS>wrote:
Thank you very much for your test and feedback @princemaple
I agree, it makes no sense to test gen_smtp behaviour. So, I will have a look to @anellis work and start to write my tests with a fake gen_smtp adapter, to be able to test only the bamboo SMTPAdapter.
I don't think I will have time to finish this part before my day work. So, I will more likely give you some updates tomorrow morning.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

@princemaple did the adapter send the email twice or did you send it twice? I'm on my phone so maybe I missed something. Code snippets are a bit tricky to read on a small screen :P
Sent from my iPhone

On Apr 27, 2016, at 12:18 AM, Po Chen<EMAIL_ADDRESS>wrote:
tested with a newly mixed app, with mailgun smtp
config :test_bamboo_smtp, TestBambooSMTP.Mailer,
adapter: Bamboo.SMTPAdapter,
server: "smtp.mailgun.org",
port: 2525,
username<EMAIL_ADDRESS>password: "PASSWORD",
tls: :if_available, # can be :always or :never
ssl: :false, # can be :true
retries: 1
defmodule TestBambooSMTP.Mailer do
use Bamboo.Mailer, otp_app: :test_bamboo_smtp
end
defmodule TestBambooSMTP do
use Application
def start(_type, _arg) do
Supervisor.start_link([], [strategy: :one_for_one])
end
end
iex(3)> TestBambooSMTP.Mailer.deliver_now %Bamboo.Email{from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>subject: "test smtp", html_body: "hi", text_body: "hi"}
13:53:52.412 [debug] Sending email with Bamboo.SMTPAdapter:
%Bamboo.Email{assigns: %{}, bcc: [], cc: [], from: {nil<EMAIL_ADDRESS>headers: %{}, html_body: "hi", private: %{}, subject: "test smtp", text_body: "hi", to: [nil<EMAIL_ADDRESS>%Bamboo.Email{assigns: %{}, bcc: [], cc: [],
from: {nil<EMAIL_ADDRESS>headers: %{}, html_body: "hi",
private: %{}, subject: "test smtp", text_body: "hi",
to: [nil<EMAIL_ADDRESS>Mailgun logs screenshot
Inbox screenshot
The datetimes in the screenshots differ, but it's just mailgun web interface not respecting my local time :)
@kdisneur I've read through the test written by @anellis , I think it is a good way of testing the SMTP adapter, i.e. not to test the smtp client. After all we just need to know whether our adapters correctly transformed the data into the right formats; we don't want to test whether mailgun sends the email, whether httpoison makes the http call, or whether gen_smtp does the right thing.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

@paulcsmith it worked as expected, i.e. sent once. The code snippet was a little messed up, copying from iex to here mixes up the logging and the returned value.

Oh that makes sense! Thanks for the clarification.

On Apr 27, 2016, at 8:20 AM, Po Chen<EMAIL_ADDRESS>wrote:
@paulcsmith it worked as expected, i.e. sent once. The code snippet was a little messed up, copying from iex to here mixes up the logging and the returned value.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

I added some tests, I guess they could look better but at leat they test the behaviour. If you have any suggestion to make them look better. :)
@paulcsmith : any conventions about how we should name bamboo adapters? I can see the only one listed in the readme is named bamboo_sparkpost so, I would suggest bamboo_smtp.

After looking at hex.pm it seems like the convention is to use bamboo_<adapter-name> so I created the package: bamboo_smtp: https://hex.pm/packages/bamboo_smtp
Thanks everyone for the help with this PullRequest. If you have any more feedback, please create an issue on: https://github.com/fewlinesco/bamboo_smtp


Added information about default inventory icon sizes

Added the following as a note to the inventory documentation:
The default Popochiu GUI Templates have different inventory icon sizes. Images will be scaled to fit into the inventory slot. As a general rule it's better to scale a larger image down to a smaller one to avoid having unwanted artifacts in the image.
2-Click Context-Sensitive: has an inventory icon size of 16x16 pixels.
Sierra: has an inventory icon size of 24x24 pixels.
9 Verb (LucasArts): has an inventory icon size of 40x24 pixels.

Thank you so much for the note!


chore: use embed pkg to split long template to file

Splitting long content template into file is more friendly for reading, also for IDE rendering.
BTW: I noticed that config/toml.go has introduced the similar changes in upstream cometbft/comebft, so I didn't update it.

@rootulp Hi sir, anything else that need I update for this pr?

How was this PR tested? Did you run the e2e test before + after this change to confirm that the template works as expected? Can you please document testing in the PR description.

I would change this upstream in CometBFT first, and then we could pull after

thanks for this @winniehere, I would change this upstream in CometBFT first, and then we could pull after

Hi sir, I didn't see the changed files in the upstream repo, I thought they are new custom files in this repo, did I miss something here?


Fix for no-output enrichment for multi-worker environments, e.g. Gunicorn

The issue is that new "dummy" Div elements (used for hidden outputs) get their id value generated randomly (uuid.uuid4()). This works when a single worker runs the app. However, if multiple workers run the app, each worker will get different UUID value, and the callbacks won't run. See issue #80
This PR replaces uuid.uuid4() call with uuid.UUID(bytes=seed, version=4). The seed is a string that will be unique for each callback, and therefore the resulting UUID value will be the same for all workers.
There are three different types of callbacks (Python, JS literal function, JS asset reference), and each needs a separate way of generating the "seed" string.
Closes #80

Thanks for the PR. I looked through the code, and I really like the idea. However, I had a few ideas on how to simplify the code. I wasn't sure how to suggest them in the best way, so i created a branch with the changes,
https://github.com/thedirtyfew/dash-extensions/tree/no-output-multi-worker
Do you think it looks OK?

Hi @emilhe, it's good to hear back from you!
I really love your simplification. I have merged your branch into this PR, leaving in the changes that I made to the example app, to be able to test it with both variants of clientside callbacks. IMO it makes sense to test and show examples of both variants, but you might also want to keep the example apps as small as possible...
But back to the main topic - The only thing I would change from your simplified code is the condition to detect clientside vs. Python callbacks. I'm worried that ClientsideFunction actually has a __module__ attribute. So it seems a bit "risky" to only relay on it not having the __name__ attribute. Here is the simple change of the condition (also in this PR):
https://github.com/thedirtyfew/dash-extensions/pull/81/commits/3220739729810d818747d103888bab52db9e05b0

I tested my proposed solution, and it seemed to work. I think the modification you proposed it similarly robust though, so let's just keep it as-is.

I have merged the PR and pushed a new release, which should include the fix,
https://pypi.org/project/dash-extensions/0.0.56/


Confusing Documentation

The documentation and demo's are very confusing and hard to build/deploy.  Are there any simple example projects out there for people to get started?
If possible, instead of abstracting everything away with Springboot, can we see some examples using a simple Spring-MVC project (ie Hello World)

What documentation are you referring to and what specifically is confusing? May be an opportunity to improve the documentation if you provide something concrete.

This subproject is a vanilla spring mvc application example

Our concern with using that project is we do not have access to Gradle
where we work, so we cannot deploy it.  Do you have a build agnostic
project example?
On Tue, Jul 7, 2015 at 3:34 PM, Dilip Krishnan<EMAIL_ADDRESS>wrote:

This subproject
https://github.com/springfox/springfox-demos/tree/master/spring-java-swagger
is a vanilla spring mvc application example
—
Reply to this email directly or view it on GitHub
https://github.com/springfox/springfox-demos/issues/6#issuecomment-119311910
.

the thing about gradle is that it is bootstrapped already using the gradle wrapper (gradlew). if you use the gradlew command it will automatically download everything you need.
./gradlew clean build #equivalent to mvn clean install

Its very simple to translate a gradle project to maven. Also we provide the instructions in our documentation have everything you need as regards maven or gradle.
Another great source to generate a skeleton project for maven is available at http://editor.swagger.io Generate Server -> Spring MVC, tho' the skeleton is a little out of date.
It would be much appreciated if you contribute a maven example that we can include in the spring demos, but we simply don't have the bandwidth to do that an maintain it unfortunately!

Thank for your response.  I have tried creating a skeleton project with the
swagger editor project, unfortunately, there's a bug
https://github.com/swagger-api/swagger-editor/issues/530 that prevents
its creation.
Also, I wouldn't expect mvn clean install to startup and deploy to a web
container.  Do you have anything setup to run mvn jetty:run?
On Tue, Jul 7, 2015 at 4:13 PM, Dilip Krishnan<EMAIL_ADDRESS>wrote:

the thing about gradle is that it is bootstrapped already using the gradle
wrapper (gradlew). if you use the gradlew command it will automatically
download everything you need.
./gradlew clean build #equivalent to mvn clean install
Its very simple to translate a gradle project to maven. Also we provide
the instructions in our documentation
http://springfox.github.io/springfox/docs/current/#getting-started have
everything you need as regards maven or gradle.
Another great source to generate a skeleton project for maven is available
at http://editor.swagger.io Generate Server -> Spring MVC, tho' the
skeleton is a little out of date.
It would be much appreciated if you contribute a maven example that we can
include in the spring demos, but we simply don't have the bandwidth to do
that an maintain it unfortunately!
—
Reply to this email directly or view it on GitHub
https://github.com/springfox/springfox-demos/issues/6#issuecomment-119321527
.

Thank for your response.  I have tried creating a skeleton project with the
swagger editor project, unfortunately, there's a bug that prevents
its creation.
Also, I wouldn't expect mvn clean install to startup and deploy to a web
container.  Do you have anything setup to run mvn jetty:run?

I wanted to document my continued troubles using the springfox-demo project.
I pulled down the latest code and opened it into eclipse.  I then opened a terminal and issued the following commands:
C:\eclipse\workspace\springfox-demos>gradle spring-java-swagger:appRun
:spring-java-swagger:compileJava UP-TO-DATE
:spring-java-swagger:processResources UP-TO-DATE
:spring-java-swagger:classes UP-TO-DATE
:spring-java-swagger:prepareInplaceWebAppClasses UP-TO-DATE
:spring-java-swagger:prepareInplaceWebAppFolder UP-TO-DATE
:spring-java-swagger:prepareInplaceWebApp UP-TO-DATE
:spring-java-swagger:appRun
19:25:42 INFO  Spring WebApplicationInitializers detected on classpath:     [springfoxdemo.java.swagger.ApplicationInitializer@60dce7ea]
19:25:42 INFO  Initializing Spring FrameworkServlet 'dispatcher'
....
Jul 07, 2015 7:25:47 PM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler
INFO: Mapped URL path [/swagger-ui.html] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Jul 07, 2015 7:25:47 PM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler
INFO: Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Jul 07, 2015 7:25:48 PM org.springframework.web.servlet.DispatcherServlet initServletBean
INFO: FrameworkServlet 'dispatcher': initialization completed in 5865 ms
19:25:48 INFO  Jetty 9.2.9.v20150224 started and listening on port 8080
19:25:48 INFO  spring-java-swagger runs at:
19:25:48 INFO    http://localhost:8080/spring-java-swagger
Press any key to stop the server.

However, when I visit the webpage I get a 404 error
HTTP ERROR 404
Problem accessing /spring-java-swagger/. Reason:
Not Found
Powered by Jetty://

Have you read the readme?

@dilipkrish - If anything, I think that proves the point I was trying to make.  Why do we need to run that script instead of just using native Gradle?
Also, yes; I did read the file and I am still getting the same response:
C:\eclipse\workspace\springfox-demos>gradlew spring-java-swagger:appRun
:spring-java-swagger:compileJava
warning: [options] bootstrap class path not set in conjunction with -source 1.7
1 warning
:spring-java-swagger:processResources
:spring-java-swagger:classes
:spring-java-swagger:prepareInplaceWebAppClasses
:spring-java-swagger:prepareInplaceWebAppFolder
:spring-java-swagger:prepareInplaceWebApp
:spring-java-swagger:appRun
20:13:49 INFO  Spring WebApplicationInitializers detected on classpath:     [springfoxdemo.java.swagger.ApplicationInitializer@60dce7ea]
20:13:50 INFO  Initializing Spring FrameworkServlet 'dispatcher'
Jul 07, 2015 8:13:50 PM org.springframework.web.servlet.DispatcherServlet initServletBean
INFO: FrameworkServlet 'dispatcher': initialization started
....
Press any key to stop the server.
Jul 07, 2015 8:14:03 PM org.springframework.web.servlet.PageNotFound noHandlerFound
WARNING: No mapping found for HTTP request with URI [/spring-java-swagger/] in     DispatcherServlet with name 'dispatcher'
Jul 07, 2015 8:14:06 PM org.springframework.web.servlet.PageNotFound noHandlerFound
WARNING: No mapping found for HTTP request with URI [/spring-java-swagger/] in     DispatcherServlet with name 'dispatcher'

HTTP ERROR 404
Problem accessing /spring-java-swagger/. Reason:
Not Found
Powered by Jetty://

I also wanted to document more confusion we are facing in regards to trying to figure out dependencies.  For example why do we need the following (classpath:/META-INF/resources/):
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {

    registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}

A simpler project for people to get used to springfox might be very beneficial.

To answer your questions:

If anything, I think that proves the point I was trying to make. Why do we need to run that script instead of just using native Gradle

Without repeating the official gradle documentation, the gradle wrapper is only so that you don't need to install gradle on the machine. Secondly, its a way to provide a specific version of gradle (2.4-rc-1) and not depend on the natively installed gradle, and that applies to CI environments as well.

Also, yes; I did read the file and I am still getting the same response:

If you had read the readme, you'd have known that

the apidocs are @ http://localhost:8080/spring-java-swagger/v2/api-docs
the swagger ui is available @ http://localhost:8080/spring-java-swagger/swagger-ui.html

If you were expecting that by going to http://localhost:8080/spring-java-swagger/ the browser would magically redirect you to one of those places, thats obviously not going to work, unless YOU write code for it.

To simplify the project, I would think adding the controllers into the project would make the most sense instead of using the ones in the dependent jar files.

Not sure what you mean.

For example why do we need the following (classpath:/META-INF/resources/)

This is for the convenience of library users and is completely optional. This is only needed if you want to use a pre-packaged version of the swagger-ui with your application. We've bundled a custom version of swagger-ui into a web jar and the we need to register resource handlers to serve the bundled swagger-ui.html. You'd have to do the same thing if you hand rolled your own solution. More info on web jars here.

A simpler project for people to get used to springfox might be very beneficial.

What constitutes "simple" is always a slippery slope. In our opinion, this is the simplest setup to have spring-swagger integration, which also includes the swagger-ui built in. Which is what 90% of the people want to accomplish. If you want instructions on a simpler setup the getting started documentation is the best place to go. In general the demo apps are targeted towards typical setups.
Lastly; and this is by no means tongue in cheek; this is all open source, and we love for you to give back to the community by either adding to the list of demos a sample maven setup or improving the documentation or contributing bug-fixes or even just plain sharing your ideas. Stuff that might be useful for folks similar to yourself. More importantly it would give us an idea as what you mean by "simpler project".
Hope that helped you with your confusion. I'd be happy address any more of your feedback or questions but non-constructive criticism is neither going to be productive for your nor this project.

@dilipkrish, thank you for such a thorough response.  I will have to do some research on the links provided.  I appreciate the time you took responding.
Thanks again


Pax Header Issue

Getting an error running the default newrelic recipe on setup in AWS OpsWorks
The error I get is:
================================================================================
Recipe Compile Error in /var/lib/aws/opsworks/cache.stage2/cookbooks/newrelic/providers/PaxHeader/deployment.rb
================================================================================

SyntaxError
-----------
/var/lib/aws/opsworks/cache.stage2/cookbooks/newrelic/providers/PaxHeader/deployment.rb:1: syntax error, unexpected tIDENTIFIER, expecting end-of-input
18 gid=1160039685
^

Cookbook Trace:
---------------
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/mixin/from_file.rb:42:in `class_eval'
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/mixin/from_file.rb:42:in `class_from_file'
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/provider/lwrp_base.rb:94:in `build_from_file'
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/run_context/cookbook_compiler.rb:199:in `load_lwrp_provider'
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/run_context/cookbook_compiler.rb:190:in `block in load_lwrps_from_cookbook'
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/run_context/cookbook_compiler.rb:189:in `each'
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/run_context/cookbook_compiler.rb:189:in `load_lwrps_from_cookbook'
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/run_context/cookbook_compiler.rb:120:in `block in compile_lwrps'

my key is correct and is in proper location
I think it may have something to do with:
https://tickets.opscode.com/browse/CHEF-4107

The way I am including this cookbook is by using it pretty much exactly as described here
Also to note it seemed to be working just fine the other day when running and seems to be not working anymore.  I also verified that the error does not occur by just including the Berksfile. However when running newrelic::default the error occurs
Moar stack trace
Relevant File Content:
----------------------
/opt/aws/opsworks/releases/20150304172806_33700020150304172806/vendor/bundle/ruby/2.0.0/gems/chef-11.10.4/lib/chef/mixin/from_file.rb:

35:
36:        # Loads a given ruby file, and runs class_eval against it in the context of the current
37:        # object.
38:        #
39:        # Raises an IOError if the file cannot be found, or is not readable.
40:        def class_from_file(filename)
41:          if File.exists?(filename) && File.readable?(filename)
42>>           self.class_eval(IO.read(filename), filename, 1)
43:          else
44:            raise IOError, "Cannot open or read #{filename}!"
45:          end
46:        end
47:
48:      end
49:    end
50:  end
51:

[2015-03-28T22:42:16+00:00] ERROR: Running exception handlers
[2015-03-28T22:42:16+00:00] ERROR: Exception handlers complete
[2015-03-28T22:42:16+00:00] FATAL: Stacktrace dumped to /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out
[2015-03-28T22:42:16+00:00] ERROR: /var/lib/aws/opsworks/cache.stage2/cookbooks/newrelic/providers/PaxHeader/deployment.rb:1: syntax error, unexpected tIDENTIFIER, expecting end-of-input
18 gid=1160039685
^

Just got the very same error. Locking cookbook version to 2.8.0 solved this issue for me, but it's just workaround. Try to update your Beksfile to this:
cookbook 'newrelic', '~> 2.8.0'

thanks @peterslivka that work around worked for me!
Just a note the issue is still happening on other deployments running 2.9.0

same issue

same issue here as well

same here

Hi all,
I've recently given up of my Windows-machine and started devving on a MBP...
Let me have a look into a workaround so I can get 2.9.0 pushed out properly.
Sorry for the inconvenience!
Kind regards,
David

@djoos, you might just bump a version and publish cookbook from Linux VM :)

Same issue here

Sorry guys, rushed home from work to watch Belgium (:soccer:) play ;-)
I've just pushed 2.9.1 out from my Linux machine...
I'll close off this issue for now, but please do let me know how it goes!
Kind regards,
David

gnutar has now replaced bsdtar on my machine - 2.12.0 just got released this way, so please do let me know if you have any PAX header issues...
Thanks in advance!


Add simple refinement types following function declaration

This is a feature that might help with https://github.com/PistonDevelopers/dyon/issues/635
A simple refinement type in Dyon is extra type information than can be added after function declaration to catch more errors with the type checker.
For example:
fn add(a: any, b: any) -> any {return a + b}
(f64, f64) -> f64
(vec4, f64) -> vec4
(f64, vec4) -> vec4
(vec4, vec4) -> vec4
(mat4, mat4) -> mat4
(str, str) -> str

The extra type information is only used by the type checker and can be otherwise ignored.
Another example:
// Use `any` implicitly.
fn foo(x) -> {return x + 1}
// Add simple refinement types to catch more errors.
(f64) -> f64
(vec4) -> vec4

bar(x: f64) = x + 1

fn main() {
    x := bar(foo((1, 2))) // ERROR: Expected `f64`, found `vec4`
    println(x)
}

The type checker understand that since (1, 2) is vec4, the return type will be vec4, which collides with the expected argument type f64:
 --- ERROR ---
In `source/test.dyon`:

Type mismatch (#100):
Expected `f64`, found `vec4`
10,14:     x := bar(foo((1, 2)))
10,14:              ^

Ad-hoc types require ambiguity handling when refining the type of a function call, but are otherwise well-behaved for simple refinement types because they do not trigger premature type errors.


[fix][broker]Persist cursor info error when cursor close

Motivation
When we call cursor.close will trigger cursor info persistent, there are two steps to persistence( ensure as little data loss as possible ):

try to persist to Bookie
if Bookie doesn't work, try to persist to ZK

Here's how we want it to work:

change state to closing
try to persist to BK
if Bookie doesn't work, try to persist to ZK
change state to closed

(High light)But there's something wrong with this code,  here's how it exactly works:

change state to closing
try to persist to BK
(High light) race condition
3-1. if Bookie doesn't work, try to persist to ZK. (High light) this command asynchronously works on thread bk client worker, and will fail caused of cursor state check(see code below).
3-2. change state to closed

https://github.com/apache/pulsar/blob/b0909aba5398481278f27f185955fb820502e402/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java#L2474-L2478
Modifications
Make change cursor state to closing always be executed after persistence
Documentation

[ ] doc-required

[x] doc-not-needed

[ ] doc

[ ] doc-complete

/pulsarbot rerun-failure-checks


Implement getEpochInfo API

Implement getEpochInfo in the Connection class that will call the getBlockHeight RPC.

Resolved by https://github.com/sol4k/sol4k/pull/37


Fix comparisons for complex types using floats in RowContainer

Addresses raised issue https://github.com/prestodb/presto/issues/20283
The issue is that leftValue == rightValue does not work if both sides are NaN. In fact, none of the comparisons with a NaN work. Equals is false and other comparisons cause an exception.
Therefore, for floating points additional logic is needed to handle the equals case.
The row container implementation contained two bugs when
using complex types.

Incorrect comparison implementation for floating point
types when NaN values are used.
The comparison flags were not passed down to
lower level functions.
Refactor to use SimpleVector::comparePrimitiveAsc in RowContainer
and ContainerRowSerde for a common comparison function.

In addition, the PR adds testing for floating point using the
RowContainer (and subsequent ContainerRowSerde).
== NO RELEASE NOTE ==

Test results prior to code change:
czentgr@Christians-MacBook-Pro tests % ./velox_exec_test --gtest_filter=AggregationTest.testFloatingPointArrayNaNGroupBy
Note: Google Test filter = AggregationTest.testFloatingPointArrayNaNGroupBy
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from AggregationTest
[ RUN      ] AggregationTest.testFloatingPointArrayNaNGroupBy
/Users/czentgr/gitspace/velox/velox/exec/tests/utils/QueryAssertions.cpp:1013: Failure
Failed
Expected 1, got 2
1 extra rows, 0 missing rows
1 of extra rows:
        ["NaN",1,2]

0 of missing rows:

Note: DuckDB only supports timestamps of millisecond precision. If this test involves timestamp inputs, please make sure you use the right precision.
DuckDB query: SELECT c0 FROM tmp GROUP BY c0
/Users/czentgr/gitspace/velox/velox/exec/tests/utils/QueryAssertions.cpp:1013: Failure
Failed
Expected 1, got 2
1 extra rows, 0 missing rows
1 of extra rows:
        ["NaN",1,2]

0 of missing rows:

Note: DuckDB only supports timestamps of millisecond precision. If this test involves timestamp inputs, please make sure you use the right precision.
DuckDB query: SELECT c0 FROM tmp GROUP BY c0
[  FAILED  ] AggregationTest.testFloatingPointArrayNaNGroupBy (29 ms)
[----------] 1 test from AggregationTest (29 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (58 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] AggregationTest.testFloatingPointArrayNaNGroupBy

 1 FAILED TEST

Test result after fix
czentgr@Christians-MacBook-Pro tests % ./velox_exec_test --gtest_filter=AggregationTest.testFloatingPointArrayNaNGroupBy
Note: Google Test filter = AggregationTest.testFloatingPointArrayNaNGroupBy
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from AggregationTest
[ RUN      ] AggregationTest.testFloatingPointArrayNaNGroupBy
[       OK ] AggregationTest.testFloatingPointArrayNaNGroupBy (29 ms)
[----------] 1 test from AggregationTest (29 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (57 ms total)
[  PASSED  ] 1 test.

@aditi-pandit @mbasmanova if you get a chance please review. This is the fix for the NaN value in array group by issue.

@mbasmanova Thank you for your review. I'm on vacation for the next two weeks and be back Aug 17. Then I will take care of your comments.

@czentgr Thank you for fixing this.
Should we also check BaseVector::compare and equalValueAt to see if it has a similar issue?

@czentgr : Yes, I too feel that this code change would be needed but the problem has a bigger scope requiring a change at BaseVector::compare and equalValueAt level. So it would be worth spending some time looking at different SQL queries which need a NaN comparison in different places to come up with the most generic solution.

@czentgr

I'm on vacation for the next two weeks and be back Aug 17. Then I will take care of your comments.

Thank you for the heads up.

I checked BaseVector::compare and BaseVector::equalValueAt. Both of these functions are calling a pure virtual compare function that is implemented by the more specific BaseVector derived classes. For example, I then checked the SimpleVector class functions and it handles the NaN case (see function comparePrimitiveAsc which is called by the implementation of the pure virtual compare function of the base class). It appears that for the other vector types FlatVector, ComplexVector and ConstantVector compareeventually will callcomparePrimitiveAscofSimpleVector`.
The difference to the vector functions and ContainerRowSerde is that one side is a vector input which are compared against a byte stream (and not another vector). It doesn't build a vector from the stream itself (which would enable it then to use the vector compare function without running into the problem).
I believe the Vector cases are already handled properly. Perhaps there is something where two streams are compared that could have a similar situation? It doesn't appear that ContainerRowSerde implements a compare for two byte streams.

It doesn't appear that ContainerRowSerde implements a compare for two byte streams.

I see this method in velox/exec/ContainerRowSerde.h
  static int32_t compare(
      ByteStream& left,
      ByteStream& right,
      const Type* type,
      CompareFlags flags);

Yes. I found this since as well. Which means this piece is also susceptible to the bug. There is lots of the same code with minor differences in how values are accessed from the input (byte stream or vector).

It doesn't appear that ContainerRowSerde implements a compare for two byte streams.

I see this method in velox/exec/ContainerRowSerde.h
  static int32_t compare(
      ByteStream& left,
      ByteStream& right,
      const Type* type,
      CompareFlags flags);

@czentgr : In general RowContainer::compare (which is used in HashAgg, HashJoin, Window etc) would be the origin of these calls.
There is a variant being used from
https://github.com/facebookincubator/velox/blob/main/velox/exec/RowContainer.cpp#L521
that invokes the compare on 2 ByteStreams. We should fix this.

Yes. I found this since as well. Which means this piece is also susceptible to the bug. There is lots of the same code with minor differences in how values are accessed from the input (byte stream or vector).

We should standardize on this style https://github.com/facebookincubator/velox/blob/main/velox/exec/RowContainer.h#L1023

Yes. I found this since as well. Which means this piece is also susceptible to the bug. There is lots of the same code with minor differences in how values are accessed from the input (byte stream or vector).

We should standardize on this style I feel https://github.com/facebookincubator/velox/blob/main/velox/exec/RowContainer.h#L1023

Yes, this should be a better fix compared to making new templated functions. There is some addition with regards to the (possibly requested) ordering but lets see if this can be worked out.

@mbasmanova @aditi-pandit Please take another look when you get a chance. I've added comprehensive tests for the complex types based on the existing RowContainer test. These tests test both types of interfaces - 1. two byte streams and 2. byte stream and decoded vector .
As a result, I found a second bug where the compare flags were not passed down to the lower comparison functions for the complex types which is fixed in this PR as well.

CC: @duanmeng
@czentgr Does this logic match both Presto and Spark semantics? Since this is shared code we need to make sure it works for both.

CC: @duanmeng
@czentgr Does this logic match both Presto and Spark semantics? Since this is shared code we need to make sure it works for both.

@mbasmanova I believe this to be the case. In the end we didn't invent new semantics for handling floating point NaN values. We applied the existing logic to compare complex type elements when resolved to the native floating point type that is encapsulated in the complex type.
The handling of NaN in Spark is

NaN Semantics
There is special handling for not-a-number (NaN) when dealing with float or double types that do not exactly match standard floating point semantics. Specifically:
- NaN = NaN returns true.
- In aggregations, all NaN values are grouped together.
- NaN is treated as a normal value in join keys.
- NaN values go last when in ascending order, larger than any other numeric value.

from https://spark.apache.org/docs/latest/sql-ref-datatypes.html
This matches the implementation for the comparison added here.
As for Presto, the documentation on this topic isn't as exhaustive as Spark's. I checked and did not find a similar detailed explanation for the behavior regarding the special floating point values.

I was playing with a matrix comparison test for the compare of decoded vector and row by not using sort. But I think there is some elegance to the currently used method.

That's fair. Maybe add a comment in the code to explain the usage of std::sort.

@czentgr : Please can you rebase your code and push again to retry the linux-presto-fuzzer-run. The log doesn't clearly indicate the problem.

I created a new issue (https://github.com/facebookincubator/velox/issues/6757) for the fuzzer failure. I was able to repro the fuzzer problem on the main code without the changes in this PR.

@mbasmanova do you think the current changes are ok?
The latest failures are unrelated to this change

linux-build failure:  all unit tests passed but the memory xml doc for one test appears to not have the correct structure and upload failed.
linux-presto-fuzzer-run: the fuzzer found a possible problem comparing an aggregation on a timestamp column that should cause overflow - but for one plan does not (I'm looking into that one to see how this all works). Will open an issue if I can't find an matching existing one.

@czentgr What's the status of this PR. I see that CI is red.

@mbasmanova It has been plagued by pipeline issues. Some failing tests have been addressed. There are two failures

MultiFragmentTest.maxBytes failed. First time this test failed (having run many pipelines since this code has been rebased multiple times). Also @aditi-pandit saw this once so likely unrelated. However, I tried to repro the problem but after 300+ iterations was not able to repro it. I opened an issue that it may be flaky.
A problem with the xml document generated by the velox_memory_test. When uploading the results it claims that

failed uploading test results: File: tmp/test_xml_output/velox_memory_test_72.xml had the following problems:
  * invalid top level end element: testsuite
  * invalid top level end element: testsuites
  * invalid top level end element: testsuites

Other PRs have the same issue except there it is different memory test number.
I think I addressed all the review comments. I'm rebasing again and hoping the pipeline will pass.

@czentgr Would you file GitHub issue for test failure with details? We need to look into these and fix.

@mbasmanova Yes, for the MultiFragmentTest.maxBytes failure I have opened https://github.com/facebookincubator/velox/issues/6984.
For the uploading of the artifacts I can open an issue. It seems to affect PRs that have a test failure (like this PR had). Another example of this is pipeline https://app.circleci.com/pipelines/github/facebookincubator/velox/35382/workflows/f0bbb571-b29d-44a0-b23c-bc5022f056e4/jobs/233104
I will open an issue for this as well.

@mbasmanova this time build and tests look better. This time there is a fuzzer failure. I think it is related to the switch expression for which an issue exists already (though it mentions array_union which contains a switch).

@mbasmanova

Let's document the rules for comparing floating point types in https://facebookincubator.github.io/velox/develop/types.html
Yes, I saw you had opened issue https://github.com/facebookincubator/velox/issues/6717. I suppose we do this in a different PR?

What functions / operators are affected by this change? OrderBy, TopN, Join?
Basically, anywhere where comparison of complex types is required. The comparison is now equivalent to how scalar types are compared (the complex types are serialized into their scalar type elements and compared). From my understanding there was an assumption that this was intended originally.

I will try to come up with a list to add to the description.

@mbasmanova do you think this is good now? The linux-build fails due a test around memory arbitration not passing. There is an issue open for these flaky tests.

@czentgr Seeing lots of lint warnings like this and CI is red. Please, take a look.

There is one more linter warning. What is it about? Should I address it?


Can you please build a verision for ruuning on MacOS?

Hello, I really interesting in your codes for hunting keys. I wanna try my luck with my MacbookPro which has 64gb RAM. but your code only work with window (by .dll lib). Can you please make some change in your code so I can use them on MacOS like Dormant5 and bsgs. Thanks

ETH_Hunt2 will use the gmp_ec which is based on gmpy2 library. It should work on MacOS. Although batch inverse is not added there so it maybe a little bit slower


[Feature Request] Update all plugins

Current
It lists all plugins and asks user to choose which plugin to upgrade.
Request
Besides listing plugins, it also provides an option so that user can upgrade all listed plugins.

Added in acc1586376eca965308287f16ff37d1913f60323


Stop?

How to stop Parallel Render ?
I just pressed ESC and the Blender info log / render message changed, but did not stop rendering...

I only can handle events (like pressing ESC key) between frames.
So it will only stop after it has completed currently rendered frames.
How long did you wait for it to finish?


Some default shortcuts don't work with non-english layout: cmd + ., etc

The What
VSCode should use keywords for hotkey (like [Period]), rather than pure symbols (like .), - for the default key settings that have cmd or ctrl in it.
The Why
So default shortcuts could work universally between all the layouts, so no one has to manually fix those default settings for this purpose.
For example:

In English layout "Quick Action" shortcut counts as: cmd + ., since . is .
In Russian layout "Quick Action" shortcut counts as: cmd + ю, but pure symbols (.) don’t count this: ю isn't .
But if it were cmd + [Period] in setttings, not cmd + ., then it would both count as cmd + . and cmd + ю, - because they're both the same physical key, - which is neat! (Thanks VSCode for having those keywords)

Therefore the default "Quick Fix" action does not work sometimes when you're using other than English layout, so user has to change the layout, which is… Irritating.
Alternatively, user has to fix default hotkeys in settings himself, changing those . to [Period] manually… Which is unfortunate.
The How
TL;DR: Change the default shortcuts so they use the mentioned keywords (like [Period]), instead of pure signs (like .).
As I said, a user can solve each problematic hornet with custom setting like in this example:
// ✅ Good: English layout is respected in whatever currently chosen language in OS
{
  "key": "cmd+[Period]",
  "command": "editor.action.quickFix",
  "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
}

This [Period] keyword makes it work throughout different layouts, as long as it shares the same physical key with whatever else symbols in other than English language. But the defaults, it seems, uses the pure symbols:
// ❌ Bad: Although this hotkey works in English layout, however in Russian layout the same (physically) key doesn’t output a dot symbol, thus it doesn’t fire the «Quick Fix» action
{
  "key": "cmd+.",
  "command": "editor.action.quickFix",
  "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
}

So hence the problem: VSCode default shortcuts don't work with non-english layout sometimes. This fix (the keywords) should be used throughout all the default keys, in order to solve the issue.
Other problematic shortcuts (examples):
Although I don't know all the concrete examples, there are few ones that I stumbled upon, other than shift + cmd + .:

cmd + shift + { (shift+cmd+х in Russian layout)
cmd + shift + } (shift+cmd+ъ in russian layout)

Does this issue occur when all extensions are disabled?: Yes

Version: 1.63.2 (Universal)
Commit: 899d46d82c4c95423fb7e10e68eba52050e30ba3
Date: 2021-12-15T09:37:28.172Z (1 mo ago)
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Darwin x64 20.6.0
Formal steps to Reproduce:

Using default VSCode settings, hit cmd + . shortcut when using Russian layout
See it doesn't work
Try cmd + shift + {, cmd + shift + }, - they don't work too

Thank you for your proposal. We have considered this, but while this might apply with [Period] on the Russian keyboard layout, this doesn't apply across all keyboard layouts. Some immediate examples that come to mind:

on the German keyboard layout, / is produced via Shift+[Digit7]. Users that use a German keyboard layout expect that toggle line comment is Cmd+Shift+[Digit7], not Cmd+[Slash].

on the French keyboard layout (AZERTY), users expect that select all is Cmd+[KeyQ] and not Cmd+[KeyA].

on the Dvorak keyboard layout, users expect that undo is Cmd+[Slash] and not Cmd+[KeyZ]:

In the meantime, I can try to look into improving our heuristics for layouts like Russian (if there are no keys that produce ., we can add a fallback that [Period] produces . and use [Period] as the physical key for default keybindings involving ., as we already do for all letters A-Z).
IMHO there are two ways to tackle this in:

either we ship with keyboard layout specific default keybindings (tracked in https://github.com/microsoft/vscode/issues/1240)
the community creates extensions that define keymaps suitable for each keyboard layout.

Oh, I see… But why not keep both? I.e.

cmd + ., - so German/French/Dvorak/etc people can use their language-specific shortcuts

AND, if there no such action, propagate to what I would call "default english hotkey":

cmd + [Period], - which respects english layout shortcut despite of currently chosen layout

This way you can achieve both, and please both audiences. In the rest some 2% edge cases when there's a conflict with user settings or something, VSCode will respect the language-specific shortcut. Sounds good, isn't it?
Because in my case I don't have any actions on cmd + ю so what happens is: nothing (instead of firing "Quick Fix" action). The same with cmd + shift + х and cmd + shift + ъ, - also nothing (instead of navigating tabs). I'd like them to propagate to their respective English shortcuts in such cases.
P.S. I didn't had this problem for years of using VSCode, because I was always using it purely as code editor, never needed Russian language in VSCode before, but lately I'm using it to writing russian articles, etc.

Just stumbled upon broken hotkeys. What was the reasoning for this change?
On a Mac hotkeys doesn’t depend on keyboard layout. Every app opens settings with cmd + . (key code 190) independent of chosen language.

Oh, actually I just re-read my message since then, and find it so confusing by two reasons:

Once I accidentally wrote cmd + , instead of cmd + . (now fixed)
I had some redundant non-important details (now removed)

So since I edited my original message, can you, please, re-read it, - @daniilshustov and @alexdima?
Additionally, @daniilshustov, - you seem to also misspelled the shortcut. Every app opens settings with cmd + ,, not cmd + . 😀 Well, misspellings happen… But what's important is that VSCode doesn't open it when I have Russian language currently chosen in OS. Which is, as I said originally: unfortunate and irritating. So your statement, @daniilshustov:

On a Mac hotkeys doesn’t depend on keyboard layout

Wrong. Although it is true for other apps, it isn't true for VSCode.

I'm not a fan of the logic behind the change, but I could get behind it, if it worked properly. I can't have a shortcut like ctrl+ı but i can have ctrl+alt+ı. A lot of my shortcuts stopped working all of a sudden for some reason. I have no idea why but I have an idea how this could be avoided. Completely eradicate referring the keys with their output. That's exactly what is not in common with different layouts and causes issues. It has never been a good idea and I have never seen it work properly on any app.
It's not just the different layouts. It can be modified at other levels on the OS. I have my Caps Lock on LeftShift+RightShift and the key for Caps Lock works as Alt Gr for example. Best decision of my life by the way. This is set up via KDE. Can you honestly say you account for these type of situations? If I try to use Caps Lock key as Alt Gr or Shift_3 or whatever in a shortcut will you be able to know?

Thank you for your proposal. We have considered this, but while this might apply with [Period] on the Russian keyboard layout, this doesn't apply across all keyboard layouts. Some immediate examples that come to mind:

on the German keyboard layout, / is produced via Shift+[Digit7]. Users that use a German keyboard layout expect that toggle line comment is Cmd+Shift+[Digit7], not Cmd+[Slash].

on the French keyboard layout (AZERTY), users expect that select all is Cmd+[KeyQ] and not Cmd+[KeyA].

on the Dvorak keyboard layout, users expect that undo is Cmd+[Slash] and not Cmd+[KeyZ]:

The German slash example applies to turkish keyboard too. We too have slash at shift+7 and guess what, i can assign ctrl+shift+7 to a shortcut and it doesn't think it's ctrl+/. If you name the key for / on english keyboard [Slash] we will not try to press shift+7 in it's stead. We will know what's going on. In fact, I don't know why are we talking about this like it is not the case already. My ğ key is already referred as [BracketLeft] and it's fine.
Take the letters ı and İ for example. My keyboard has a key that says "I" and one that says "İ" on it. If i press the "I" one whitout shift it types "ı" and the other one types "i". The keys are accent letters depending on if they're capital or not. Now, the shortcut used to identify the "I" one as "ı" and luckily it worked and wasn't affected by the presence of shift in the combination. It stopped working recently. Whereas my "Ğ" key works just fine. Wanna know why? Because it says [BracketLeft] when i set a shortcut with it. It never crossed my mind to press shift+8 to trigger a left bracket while using it.
Yes the french see a Q on their keyboard where it would be named [KeyA]. Big deal. It's just counter-intuitive. I'd very much rather have confusing names for the keys with working shortcuts than having to worry about my layout getting in the way of setting up shortcuts. The names are not for human eye anyway. U can have the "problematic" names in the settings file and the graphical shortcut settings tool can show whatever it types with the current layout. This way it would still be readable even if the layout changes after the shortcuts are set.
Sorry if this is too emotional but I find this an absolute nobrainer and just can't stand still having issues with it. Even after solving them, they reappear. It's keyboard shortcuts. Keys are being mapped to actions. Didn't have to have anything to do with what they'd type. It's just something the keys do apart from this.

@toramanlis is on point. I've recently switched between using VSCode on Win, on Mac, on Win on a Mac etc and I have the same issues. Today a previously functional shortcut stopped working
In the keybinding editor I see this when I press cmd+[button to the left of number 1] I see 3 different things:

In the keyboard debugger I get this:

Not sure if it's exactly the same but it seems to be somewhat messy. Now I'm mainly annoyed one of my most used shortcuts stopped working.

There seems to be a development on this issue (in both senses). It still relies on the typed character seemingly but there's a fix shipped to insiders:
https://github.com/microsoft/vscode/issues/173515#issuecomment-1419012339


Minor corrections to tests.

Went to go make a release, discovered a test wasn't passing.
Looks like simple copy paste errors copying from the location group test.
Did decide to just get a little more drastic cleaning up at the end of the test though.

Caused by not fully fixing the copy/paste in: https://github.com/USACE/cwms-radar-api/pull/371

This is still Draft - right?

Yes, if you have time though I was hoping you could just take it over. I'm working on the office id in DTO concept (so far working except minor oddity in a deserializer I'm about to look at.)

except for the change to .../{id value}", object) This work was included within the larger office id feature.


DPL-1106 - As developers we need to create a printers table so we can add printers without having to redeploy traction-ui

User story
As developers we need to create a printers table so we can add printers without having to redeploy traction-ui. Currently printers are added in the config for traction-ui which means that adding and removing printers involves a story, code review, deploy to UAT and production
Who are the primary contacts for this story
Steve
Who is the nominated tester for UAT
PSD
Acceptance criteria
To be considered successful the solution must allow:

[ ] A new table for printers
[ ] A unique name name for each printer
[ ] A type for each printer will have a labware type; tube, plate96 or plate384 (not currently used)
[ ] A way of retrieving printers via the API
[ ] A way of filtering printers by their type
[ ] A way of deactivating printers that are no longer in use

Dependencies
This story is blocked by the following dependencies:

#<issue_no.>
sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

#<issue_no.>
sanger/#<issue_no.>

Additional context
Add any other context or screenshots about the feature request here.

@stevieing

A way of deactivating printers that are no longer in use

Is this required as part of the API, or just a requirement at the database level?

It will be a boolean column and part of the API. There are other tables where we enact this using a deactivated_at column. It also allows us to create a standard scope so we can omit records that are not active in queries.


Fix test using a non-specific selector

Reference Issues or PRs
Fixes #2473
What does this implement/fix?
Put a x in the boxes that apply

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds a feature)
[ ] Breaking change (fix or feature that would cause existing features not to work as expected)
[ ] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build related changes
[ ] Other (please describe):

Testing

[ ] Did you test the pull request locally?
[ ] Did you add new tests?

Any other comments?
Let's hope the CI passes!

Cypress tests are now passing but playwright tests are failing due to the new popup dialog layout:

I believe that the cypress/playwright tests are fine, but the deployments tests are failing:
_____________________ ERROR at setup of test_dask_gateway ______________________
Traceback (most recent call last):
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/site-packages/urllib3/connectionpool.py", line [46](https://github.com/nebari-dev/nebari/actions/runs/9177179471/job/25234168892?pr=2475#step:20:47)7, in _make_request
    self._validate_conn(conn)
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/site-packages/urllib3/connectionpool.py", line 1099, in _validate_conn
    conn.connect()
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/site-packages/urllib3/connection.py", line 653, in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/site-packages/urllib3/connection.py", line 806, in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
               ^^^^^^^^^^^^^^^^
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/site-packages/urllib3/util/ssl_.py", line 465, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/site-packages/urllib3/util/ssl_.py", line [50](https://github.com/nebari-dev/nebari/actions/runs/9177179471/job/25234168892?pr=2475#step:20:51)9, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/ssl.py", line [51](https://github.com/nebari-dev/nebari/actions/runs/9177179471/job/25234168892?pr=2475#step:20:52)7, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/ssl.py", line 1104, in _create
    self.do_handshake()
  File "/home/runnerx/miniconda3/envs/test/lib/python3.11/ssl.py", line 1382, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)

ERROR tests/tests_deployment/test_dask_gateway.py::test_dask_gateway - requests.exceptions.SSLError: HTTPSConnectionPool(host='github-actions.nebari.dev', port=443): Max retries exceeded with url: /hub/api/users/test-user/tokens (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)')))
ERROR tests/tests_deployment/test_dask_gateway.py::test_dask_gateway_cluster_options - requests.exceptions.SSLError: HTTPSConnectionPool(host='github-actions.nebari.dev', port=443): Max retries exceeded with url: /hub/api/users/test-user/tokens (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)')))
ERROR tests/tests_deployment/test_jupyterhub_ssh.py::test_simple_jupyterhub_ssh - requests.exceptions.SSLError: HTTPSConnectionPool(host='github-actions.nebari.dev', port=443): Max retries exceeded with url: /hub/api/users/test-user/tokens (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)')))
ERROR tests/tests_deployment/test_jupyterhub_ssh.py::test_print_jupyterhub_ssh - requests.exceptions.SSLError: HTTPSConnectionPool(host='github-actions.nebari.dev', port=443): Max retries exceeded with url: /hub/api/users/test-user/tokens (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)')))
ERROR tests/tests_deployment/test_jupyterhub_ssh.py::test_exact_jupyterhub_ssh - requests.exceptions.SSLError: HTTPSConnectionPool(host='github-actions.nebari.dev', port=443): Max retries exceeded with url: /hub/api/users/test-user/tokens (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)')))
ERROR tests/tests_deployment/test_jupyterhub_ssh.py::test_contains_jupyterhub_ssh - requests.exceptions.SSLError: HTTPSConnectionPool(host='github-actions.nebari.dev', port=443): Max retries exceeded with url: /hub/api/users/test-user/tokens (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)')))

I am also seeing this error in https://github.com/nebari-dev/argo-jupyter-scheduler/pull/10#issuecomment-2122616224. Any ideas on what might be the issue?
Otherwise I think this PR is ready for review.

I wonder why this only showed up now... thanks for raising the issue @krassowski

I was able to track this down to our version of requests changed from 2.31.0 to 2.32.2 recently which contains a fix for a bug that was making our tests pass previously (https://github.com/psf/requests/blob/main/HISTORY.md#2320-2024-05-20).

The bug was making our tests pass previously
Ha, that's funny! Nice catch @Adam-D-Lewis, great work @krassowski


136 edit platform modal pending

depends on https://github.com/openlibraryenvironment/gokb/pull/496

There seems to be an issue with the displaying of the error messages:
<v-col v-if="c.id"> {{ $t('component.platform.conflict.noProvider', [c.id]) }} (line 48/49)
Should be for !c.id (no provider id) and the parameter should be c.platformId instead of c.id.

Changed.


"No repeated property names" error in object literals is duplicated in strict mode

In strict mode (strict: true, inside a class or inside a module), duplicated property names get two errors instead of one:
// @strict: false
const first = { a: 1, a: 2 }
class C {
    m() {
        const second = { a: 1, a: 2 }
        return second.a
    }
}

Expected: one error on each a: 2.
Actual: two errors on the a: 2 inside the class:

Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode
Diagnostics.Duplicate_identifier_0

In fact, the first error is better, but isn't used for first;
Expected: On firsts a: 2, the error should be "An object literal cannot have multiple properties with the same name."
Actual: Duplicate identifier 'a'.
This inconsistency arose because Typescript originally targetted ES3 and ES5; duplicate property names are only an error in ES5's strict mode. In fact, they're not even an error in ES2015+'s strict mode. But this is a good error, and it should apply everywhere.
Expected: The error should be "An object literal cannot have multiple properties with the same name."
Actual: "An object literal cannot have multiple properties with the same name in strict mode."
Thanks to https://stackoverflow.com/questions/36321790/js-two-or-more-object-properties-with-the-same-name-in-non-strict-mode for pointing out the spec changes.

In strict mode (strict: true, inside a class or inside a module)

Wait, is this talking about JavaScript strict mode, or TypeScript strict: true?

Typescript's approximation of Javascript's strict mode. I think the flag is actually alwaysStrict: true, and strict: true includes it. But classes and modules also put their contents into strict mode.

classes and modules also put their contents into strict mode

Yep, I knew this, but then you mentioned strict: true (i.e. strict type checking mode) and got confused as to which one you were referring to.  Classes and modules don't automatically enable all the strict type checker options, as far as I'm aware. :)

I will work on this issue 💪


Library doesn't allow for handling connection errors

Hi! I'm starting to use gomusicbrainz in my project and encountered a quite simple but annoying issue - there are 2 cases that call log.Fatalln(err) (namely https://github.com/michiwend/gomusicbrainz/blob/master/gomusicbrainz.go#L140 and https://github.com/michiwend/gomusicbrainz/blob/master/gomusicbrainz.go#L147), and thus don't give any chance to handle these errors.
Is there any reason to consider these errors really fatal? Looks like simple return err should be enough here.

Hi @serejja
yeah you are right, it'd be better to return these errors. I already saw your pr, will merge it. Thx for contributing!


Support multi devicepath for quotapath & Add events to node resource manager

What type of PR is this?
/kind feature
What this PR does / why we need it:
Does this PR introduce a user-facing change?

@mowangdk please fix image build errors.


WIP: matrix-registration: init 1.0.0.dev4

Motivation for this change
added my python module matrix-registration to nixos.
Since systemd 247 is merged I tried to set secrets securely via credentialsFile, but I am not sure if I understand this mechanism.
Currently setting it will fail with:
matrix-registration.service: Failed to set up mount namespacing: /run/systemd/unit-root/run/credentials/matrix-registration.service: No such file or directory
matrix-registration.service: Failed at step NAMESPACE spawning /nix/store/9lbym293mblc59gfjr21ypvlcn377hgc-unit-script-matrix-registration-pre-start/bin/matrix-registration-pre-start: No such file or directory

As long as this setting is not set it should work.
A configuration like this
services.matrix-registration = {
  enable = true;
  settings = {
    admin_secret = "verysecuresecret";
    server_location = "http://localhost:8008";
    registration_shared_secret = config.services.matrix-registration.registration_shared_secret;
  };
  # credentialsFile = /etc/nixos/secrets;
};

services.matrix-synapse = {
  enable = true;

  database_type = "sqlite3";
  registration_shared_secret = "testsecret";

  listeners = [
    {
      port = 8008;
      bind_address = "::1";
      type = "http";
      tls = false;
      x_forwarded = true;
      resources = [
        {
          names = [ "client" "federation" ];
          compress = false;
        }
      ];
    }
  ];
};

should allow to create a token with:
$ matrix-registration generate
DoubleWizardSky

and then to create an account either per webbrowser at localhost:5000/register
or per curl:
curl -X POST \
     -F 'username=test' \
     -F 'password=verysecure' \
     -F 'confirm=verysecure' \
     -F 'token=DoubleWizardSki' \
     http://localhost:5000/register

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

also available to test via NUR
https://github.com/ZerataX/nur-packages/blob/master/modules/matrix-registration.nix

Result of nixpkgs-review pr 107654 run on x86_64-linux 1

1 package blacklisted:

tests.nixos-functions.nixos-test

1 package built:

matrix-registration

Also is there a package that already makes use of the LoadCredential mechanism? I'm unsure how to progress with this.
alternatively I could of course make use of an environment file

I don't think I've seen anyone use LoadCredential in a NixOS module yet - it is very new. I haven't had a chance to play around with it, but am hoping to find some time for that soon.

@aanderse @mweinelt been a while, but i finally got around to fix this. seems to work now, but I will create some tests probably tomorrow as well.
I use this to test:
{ pkgs, config, lib, ... }:
with lib;

{
  services.matrix-registration = {
    enable = true;
    credentialsFile = ./secrets;
  };

  services.matrix-synapse = {
    enable = true;
    database_type = "sqlite3";
    registration_shared_secret = "testsecret";
  };
}

and a secrets file that looks like this:
registration_shared_secret=testsecret

then test that setup with
# matrix-registration generate
$ curl -X POST \
     -F 'username=test' \
     -F 'password=verysecure' \
     -F 'confirm=verysecure' \
     -F 'token=theTokenIJustGenerated' \
     http://localhost:5000/register


Issue With Firefox Driver

I get the following message when using the Firefox driver.
webRequestError The underlying connection was closed: An unexpected error occurred on a receive
I am using this example program in Excel
Private Sub Use_Firefox()
Dim driver As New FirefoxDriver
driver.Get "https://www.google.co.uk"
driver.Quit
End Sub
The browser opens at the driver.Get line but the website doesn't open.  It was working and stopped this week. BTW Chrome and IE work.  I am sure but it appears the server that connects to Firefox doesn't run.  I've uninstalled/installed Firefox.  I reinstalled SeleniumBasic.  I've rebooted PC numerous times. I've repaired Office.
Anyone have any ideas on what to try?
Using Win 10 and Excel 2010.

I tracked down the problem.  Firefox v47.0 released June 7 is causing the problem.  I reverted to 46.0.1 and everything works.  I don't know if SeleniumBasic uses it but in the notes:
FUEL (Firefox User Extension Library) has been removed. Add-ons relying on it will stop working.
Can version 47 be supported?  I like to stay on the latest version and I prefer Firefox over Chrome.  I just know Firefox's Firebug and Firepath better.

The cause of this issue is documented here https://github.com/SeleniumHQ/selenium/issues/2110
It looks likely that the mozilla changes re extension-signing and marionette may require an update to SeleniumBasic.

Thanks for the info.  Glad to see it is not a SeleniumBasic only issue.  Hard to believe this slipped through Firefox's QC cycle.  I have it working now with the prior version but am getting Firefox's nag message to update all the time.

I just tried Firefox 48.0 and the problem isn't fixed.  Does SeleniumBasic need to be updated?


Base Docker image : Unable to locate package gradle-2.4

Beaker base docker image build fails because the package gradle-2.4 is not in ppa:cwchien/gradle repository.

thanks for the report, i'll look into this.

I was able to build the image with the latest version of gradle.

👍 thx!