image not opened when press enter on it

What system are you running Yazi on?
Linux X11
What terminal are you running Yazi in?
kitty 0.35.1 created by Kovid Goyal
Did you try the latest code to see if this problem got fixed?
Tried, but the problem still
Describe the bug
when I move cursor on jpg or png file and press Enter.
The file not opened. The file association is set.
> xdg-mime query default image/png                                  ╯
org.kde.gwenview.desktop

> xdg-mime query default image/jpeg                                ─
org.kde.gwenview.desktop

the image file can be opened in dolphin.
and other file like html can be open ed in Chrome when press enter
Change program to open not work ( I change gwenview to qimgv).
log file
There is a error keep showing in the log file.
  2024-06-24T15:42:56.683806Z ERROR yazi::components::status: runtime error: [string "yazi-plugin/src/lua.rs:50:13"]:2: attempt to index a nil value (field 'hovered')
stack traceback:
	[C]: in metamethod 'index'
	[string "yazi-plugin/src/lua.rs:50:13"]:2: in method 'modified'
	[string "yazi-plugin/src/lua.rs:50:13"]:10: in function <[string "yazi-plugin/src/lua.rs:50:13"]:6>
    at yazi-fm/src/components/status.rs:17

yazi.log
Expected Behavior
open the image with corresponding program.
To Reproduce

install yazi
enter yazi press enter on image jpg / png file.
the file not open in corresponding program like gwenview.

Configuration
keymap.toml
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"

[manager]
prepend_keymap = [
  { on = [ "m" ],      run = "plugin bookmarks --args=save", desc = "Save current position as a bookmark" },
  { on = [ "'" ],      run = "plugin bookmarks --args=jump", desc = "Jump to a bookmark" },
  { on = [ "b", "d" ], run = "plugin bookmarks --args=delete", desc = "Delete a bookmark" },
  { on = [ "b", "D" ], run = "plugin bookmarks --args=delete_all", desc = "Delete all bookmarks" },
  { on = [ "l" ],      run = "plugin --sync smart-enter", desc = "Enter the child directory, or open the file" },
]

keymap = [
	{ on = [ "<Esc>" ], run = "escape",             desc = "Exit visual mode, clear selected, or cancel search" },
	{ on = [ "q" ],     run = "quit",               desc = "Exit the process" },
	{ on = [ "Q" ],     run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
	{ on = [ "<C-q>" ], run = "close",              desc = "Close the current tab, or quit if it is last tab" },
	{ on = [ "<C-z>" ], run = "suspend",            desc = "Suspend the process" },

	# Navigation
	{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "K" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "J" ], run = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "<S-Up>" ],   run = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "<S-Down>" ], run = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "<C-u>" ], run = "arrow -50%",  desc = "Move cursor up half page" },
	{ on = [ "<C-d>" ], run = "arrow 50%",   desc = "Move cursor down half page" },
	{ on = [ "<C-b>" ], run = "arrow -100%", desc = "Move cursor up one page" },
	{ on = [ "<C-f>" ], run = "arrow 100%",  desc = "Move cursor down one page" },

	{ on = [ "<C-PageUp>" ],   run = "arrow -50%",  desc = "Move cursor up half page" },
	{ on = [ "<C-PageDown>" ], run = "arrow 50%",   desc = "Move cursor down half page" },
	{ on = [ "<PageUp>" ],     run = "arrow -100%", desc = "Move cursor up one page" },
	{ on = [ "<PageDown>" ],   run = "arrow 100%",  desc = "Move cursor down one page" },

	{ on = [ "h" ], run = [ "leave", "escape --visual --select" ], desc = "Go back to the parent directory" },
	{ on = [ "l" ], run = [ "enter", "escape --visual --select" ], desc = "Enter the child directory" },

	{ on = [ "<A-a>" ], run = "back",    desc = "Go back to the previous directory" },
	{ on = [ "<A-d>" ], run = "forward", desc = "Go forward to the next directory" },

	{ on = [ "<A-k>" ], run = "seek -5", desc = "Seek up 5 units in the preview" },
	{ on = [ "<A-j>" ], run = "seek 5",  desc = "Seek down 5 units in the preview" },
	{ on = [ "<A-PageUp>" ],   run = "seek -5", desc = "Seek up 5 units in the preview" },
	{ on = [ "<A-PageDown>" ], run = "seek 5",  desc = "Seek down 5 units in the preview" },

	{ on = [ "<Up>" ],    run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ],  run = "arrow 1",  desc = "Move cursor down" },
	{ on = [ "<Left>" ],  run = "leave",    desc = "Go back to the parent directory" },
	{ on = [ "<Right>" ], run = "enter",    desc = "Enter the child directory" },

	{ on = [ "g", "g" ], run = "arrow -99999999", desc = "Move cursor to the top" },
	{ on = [ "G" ],      run = "arrow 99999999",  desc = "Move cursor to the bottom" },

	# Selection
	{ on = [ "<Space>" ], run = [ "select --state=none", "arrow 1" ], desc = "Toggle the current selection state" },
	{ on = [ "v" ],       run = "visual_mode",                        desc = "Enter visual mode (selection mode)" },
	{ on = [ "V" ],       run = "visual_mode --unset",                desc = "Enter visual mode (unset mode)" },
	{ on = [ "<C-a>" ],   run = "select_all --state=true",            desc = "Select all files" },
	{ on = [ "<C-r>" ],   run = "select_all --state=none",            desc = "Inverse selection of all files" },

	# Operation
	# { on = [ "o" ],         run = "open",                                                 desc = "Open the selected files" },
	{ on = [ "e" ],         run = "open",                                                 desc = "Open the selected files" },
	# { on = [ "l" ],         run = "open",                                                 desc = "Open the selected files" },
	{ on = [ "O" ],         run = "open --interactive",                                   desc = "Open the selected files interactively" },
	{ on = [ "<Enter>" ],   run = "open",                                                 desc = "Open the selected files" },
	{ on = [ "<C-Enter>" ], run = "open --interactive",                                   desc = "Open the selected files interactively" },
	{ on = [ "y" ],         run = [ "yank", "escape --visual --select" ],                 desc = "Copy the selected files" },
	{ on = [ "d" ],         run = [ "yank --cut", "escape --visual --select" ],           desc = "Cut the selected files" },
	{ on = [ "p" ],         run = "paste",                                                desc = "Paste the files" },
	{ on = [ "P" ],         run = "paste --force",                                        desc = "Paste the files (overwrite if the destination exists)" },
	{ on = [ "-" ],         run = "link",                                                 desc = "Symlink the absolute path of files" },
	{ on = [ "_" ],         run = "link --relative",                                      desc = "Symlink the relative path of files" },
	{ on = [ "x" ],         run = [ "remove", "escape --visual --select" ],               desc = "Move the files to the trash" },
	{ on = [ "X" ],         run = [ "remove --permanently", "escape --visual --select" ], desc = "Permanently delete the files" },
	{ on = [ "a" ],         run = "create",                                               desc = "Create a file or directory (ends with / for directories)" },
	{ on = [ "r" ],         run = "rename --cursor=before_ext",                           desc = "Rename a file or directory" },
	{ on = [ ";" ],         run = "shell",                                                desc = "Run a shell command" },
	{ on = [ ":" ],         run = "shell --block",                                        desc = "Run a shell command (block the UI until the command finishes)" },
	{ on = [ "." ],         run = "hidden toggle",                                        desc = "Toggle the visibility of hidden files" },
	{ on = [ "s" ],         run = "search fd",                                            desc = "Search files by name using fd" },
	{ on = [ "S" ],         run = "search rg",                                            desc = "Search files by content using ripgrep" },
	{ on = [ "<C-s>" ],     run = "search none",                                          desc = "Cancel the ongoing search" },
	{ on = [ "z" ],         run = "plugin zoxide",                                          desc = "Jump to a directory using zoxide" },
	{ on = [ "o" ],         run = "plugin zoxide",                                          desc = "Jump to a directory using zoxide" },
	{ on = [ "Z" ],         run = "jump fzf",                                             desc = "Jump to a directory, or reveal a file using fzf" },

	# Linemode
	{ on = [ "m", "s" ], run = "linemode size",        desc = "Set linemode to size" },
	{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
	{ on = [ "m", "m" ], run = "linemode mtime",       desc = "Set linemode to mtime" },
	{ on = [ "m", "n" ], run = "linemode none",        desc = "Set linemode to none" },

	# Copy
	{ on = [ "c", "c" ], run = "copy path",             desc = "Copy the absolute path" },
	{ on = [ "c", "d" ], run = "copy dirname",          desc = "Copy the path of the parent directory" },
	{ on = [ "c", "f" ], run = "copy filename",         desc = "Copy the name of the file" },
	{ on = [ "c", "n" ], run = "copy name_without_ext", desc = "Copy the name of the file without the extension" },

	# Filter
	{ on = [ "f" ], run = "filter --smart", desc = "Filter the files" },

	# Find
	{ on = [ "/" ], run = "find --smart",            desc = "Find next file" },
	{ on = [ "?" ], run = "find --previous --smart", desc = "Find previous file" },
	{ on = [ "n" ], run = "find_arrow",              desc = "Go to next found file" },
	{ on = [ "N" ], run = "find_arrow --previous",   desc = "Go to previous found file" },

	# Sorting
	{ on = [ ",", "m" ], run = "sort modified --dir-first",               desc = "Sort by modified time" },
	{ on = [ ",", "M" ], run = "sort modified --reverse --dir-first",     desc = "Sort by modified time (reverse)" },
	{ on = [ ",", "c" ], run = "sort created --dir-first",                desc = "Sort by created time" },
	{ on = [ ",", "C" ], run = "sort created --reverse --dir-first",      desc = "Sort by created time (reverse)" },
	{ on = [ ",", "e" ], run = "sort extension --dir-first",         	   desc = "Sort by extension" },
	{ on = [ ",", "E" ], run = "sort extension --reverse --dir-first",    desc = "Sort by extension (reverse)" },
	{ on = [ ",", "a" ], run = "sort alphabetical --dir-first",           desc = "Sort alphabetically" },
	{ on = [ ",", "A" ], run = "sort alphabetical --reverse --dir-first", desc = "Sort alphabetically (reverse)" },
	{ on = [ ",", "n" ], run = "sort natural --dir-first",                desc = "Sort naturally" },
	{ on = [ ",", "N" ], run = "sort natural --reverse --dir-first",      desc = "Sort naturally (reverse)" },
	{ on = [ ",", "s" ], run = "sort size --dir-first",                   desc = "Sort by size" },
	{ on = [ ",", "S" ], run = "sort size --reverse --dir-first",         desc = "Sort by size (reverse)" },

	# Tabs
	{ on = [ "t" ], run = "tab_create --current", desc = "Create a new tab using the current path" },

	{ on = [ "1" ], run = "tab_switch 0", desc = "Switch to the first tab" },
	{ on = [ "2" ], run = "tab_switch 1", desc = "Switch to the second tab" },
	{ on = [ "3" ], run = "tab_switch 2", desc = "Switch to the third tab" },
	{ on = [ "4" ], run = "tab_switch 3", desc = "Switch to the fourth tab" },
	{ on = [ "5" ], run = "tab_switch 4", desc = "Switch to the fifth tab" },
	{ on = [ "6" ], run = "tab_switch 5", desc = "Switch to the sixth tab" },
	{ on = [ "7" ], run = "tab_switch 6", desc = "Switch to the seventh tab" },
	{ on = [ "8" ], run = "tab_switch 7", desc = "Switch to the eighth tab" },
	{ on = [ "9" ], run = "tab_switch 8", desc = "Switch to the ninth tab" },

	{ on = [ ">" ], run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
	{ on = [ "<" ], run = "tab_switch 1 --relative",  desc = "Switch to the next tab" },

	{ on = [ "{" ], run = "tab_swap -1", desc = "Swap the current tab with the previous tab" },
	{ on = [ "}" ], run = "tab_swap 1",  desc = "Swap the current tab with the next tab" },

	# Tasks
	{ on = [ "w" ], run = "tasks_show", desc = "Show the tasks manager" },

	# Goto
	{ on = [ "g", "h" ],       run = "cd ~",             desc = "Go to the home directory" },
	{ on = [ "g", "c" ],       run = "cd ~/.config",     desc = "Go to the config directory" },
	{ on = [ "g", "d" ],       run = "cd ~/Downloads",   desc = "Go to the downloads directory" },
	{ on = [ "g", "t" ],       run = "cd /tmp",          desc = "Go to the temporary directory" },
	{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Go to a directory interactively" },

	# Help
	{ on = [ "~" ], run = "help", desc = "Open help" },
]

[tasks]

keymap = [
	{ on = [ "<Esc>" ], run = "close", desc = "Hide the task manager" },
	{ on = [ "<C-q>" ], run = "close", desc = "Hide the task manager" },
	{ on = [ "w" ],     run = "close", desc = "Hide the task manager" },

	{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "<Up>" ],   run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ], run = "arrow 1",  desc = "Move cursor down" },

	# { on = [ "<Enter>" ], run = "inspect", desc = "Inspect the task" },
	{ on = [ "x" ],       run = "cancel",  desc = "Cancel the task" },

	{ on = [ "~" ], run = "help", desc = "Open help" }
]

[select]

keymap = [
	{ on = [ "<C-q>" ],   run = "close",          desc = "Cancel selection" },
	{ on = [ "<Esc>" ],   run = "close",          desc = "Cancel selection" },
	{ on = [ "<Enter>" ], run = "close --submit", desc = "Submit the selection" },

	{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "K" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "J" ], run = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "<Up>" ],   run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "<S-Up>" ],   run = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "<S-Down>" ], run = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "~" ], run = "help", desc = "Open help" }
]

[input]

keymap = [
	{ on = [ "<C-q>" ],   run = "close",          desc = "Cancel input" },
	{ on = [ "<Enter>" ], run = "close --submit", desc = "Submit the input" },
	{ on = [ "<Esc>" ],   run = "escape",         desc = "Go back the normal mode, or cancel input" },

	# Mode
	{ on = [ "i" ], run = "insert",                              desc = "Enter insert mode" },
	{ on = [ "a" ], run = "insert --append",                     desc = "Enter append mode" },
	{ on = [ "I" ], run = [ "move -999", "insert" ],             desc = "Move to the BOL, and enter insert mode" },
	{ on = [ "A" ], run = [ "move 999", "insert --append" ],     desc = "Move to the EOL, and enter append mode" },
	{ on = [ "v" ], run = "visual",                              desc = "Enter visual mode" },
	{ on = [ "V" ], run = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" },

	# Character-wise movement
	{ on = [ "h" ],       run = "move -1", desc = "Move back a character" },
	{ on = [ "l" ],       run = "move 1",  desc = "Move forward a character" },
	{ on = [ "<Left>" ],  run = "move -1", desc = "Move back a character" },
	{ on = [ "<Right>" ], run = "move 1",  desc = "Move forward a character" },
	{ on = [ "<C-b>" ],   run = "move -1", desc = "Move back a character" },
	{ on = [ "<C-f>" ],   run = "move 1",  desc = "Move forward a character" },

	# Word-wise movement
	{ on = [ "b" ],     run = "backward",              desc = "Move back to the start of the current or previous word" },
	{ on = [ "w" ],     run = "forward",               desc = "Move forward to the start of the next word" },
	{ on = [ "e" ],     run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
	{ on = [ "<A-b>" ], run = "backward",              desc = "Move back to the start of the current or previous word" },
	{ on = [ "<A-f>" ], run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },

	# Line-wise movement
	{ on = [ "0" ],     run = "move -999", desc = "Move to the BOL" },
	{ on = [ "$" ],     run = "move 999",  desc = "Move to the EOL" },
	{ on = [ "<C-a>" ], run = "move -999", desc = "Move to the BOL" },
	{ on = [ "<C-e>" ], run = "move 999",  desc = "Move to the EOL" },

	# Delete
	{ on = [ "<Backspace>" ], run = "backspace",	        desc = "Delete the character before the cursor" },
	{ on = [ "<C-h>" ],       run = "backspace",         desc = "Delete the character before the cursor" },
	{ on = [ "<C-d>" ],       run = "backspace --under", desc = "Delete the character under the cursor" },

	# Kill
	{ on = [ "<C-u>" ], run = "kill bol",      desc = "Kill backwards to the BOL" },
	{ on = [ "<C-k>" ], run = "kill eol",      desc = "Kill forwards to the EOL" },
	{ on = [ "<C-w>" ], run = "kill backward", desc = "Kill backwards to the start of the current word" },
	# { on = [ "<A-d>" ], run = "kill forward",  desc = "Kill forwards to the end of the current word" },

	# Cut/Yank/Paste
	{ on = [ "d" ], run = "delete --cut",                              desc = "Cut the selected characters" },
	{ on = [ "D" ], run = [ "delete --cut", "move 999" ],              desc = "Cut until the EOL" },
	{ on = [ "c" ], run = "delete --cut --insert",                     desc = "Cut the selected characters, and enter insert mode" },
	{ on = [ "C" ], run = [ "delete --cut --insert", "move 999" ],     desc = "Cut until the EOL, and enter insert mode" },
	{ on = [ "x" ], run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" },
	{ on = [ "y" ], run = "yank",           desc = "Copy the selected characters" },
	{ on = [ "p" ], run = "paste",          desc = "Paste the copied characters after the cursor" },
	{ on = [ "P" ], run = "paste --before", desc = "Paste the copied characters before the cursor" },

	# Undo/Redo
	{ on = [ "u" ],     run = "undo", desc = "Undo the last operation" },
	{ on = [ "<C-r>" ], run = "redo", desc = "Redo the last operation" },

	# Help
	{ on = [ "~" ], run = "help", desc = "Open help" }
]

[completion]

keymap = [
	{ on = [ "<C-q>" ],   run = "close",                                      desc = "Cancel completion" },
	{ on = [ "<Tab>" ],   run = "close --submit",                             desc = "Submit the completion" },
	{ on = [ "<Enter>" ], run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" },

	{ on = [ "<A-k>" ], run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<A-j>" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "<Up>" ],   run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "~" ], run = "help", desc = "Open help" }
]

[help]

keymap = [
	{ on = [ "<Esc>" ], run = "escape", desc = "Clear the filter, or hide the help" },
	{ on = [ "q" ],     run = "close",  desc = "Exit the process" },
	{ on = [ "<C-q>" ], run = "close",  desc = "Hide the help" },

	# Navigation
	{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "j" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "K" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "J" ], run = "arrow 5",  desc = "Move cursor down 5 lines" },

	{ on = [ "<Up>" ],   run = "arrow -1", desc = "Move cursor up" },
	{ on = [ "<Down>" ], run = "arrow 1",  desc = "Move cursor down" },

	{ on = [ "<S-Up>" ],   run = "arrow -5", desc = "Move cursor up 5 lines" },
	{ on = [ "<S-Down>" ], run = "arrow 5",  desc = "Move cursor down 5 lines" },

	# Filtering
	{ on = [ "/" ], run = "filter", desc = "Apply a filter for the help items" },
]

yazi.toml
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"

[manager]
ratio          = [ 1, 4, 3 ]
sort_by        = "alphabetical"
sort_sensitive = true
sort_reverse   = true
sort_dir_first = true
linemode       = "none"
show_hidden    = true
show_symlink   = true
mouse_events   = ["click"]

[preview]
tab_size        = 2
max_width       = 1600
max_height      = 2400
cache_dir       = ""
ueberzug_scale  = 1
ueberzug_offset = [ 0, 0, 0, 0 ]
image_quality = 90

[opener]
edit = [
	{ run = '$EDITOR "$@"', block = true,  for = "unix" },
	{ run = 'code "%*"',    orphan = true, for = "windows" },
]
open = [
	{ run = 'xdg-open "$@"',                desc = "Open", for = "linux" },
	{ run = 'open "$@"',                    desc = "Open", for = "macos" },
	{ run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" }
]
reveal = [
	{ run = 'open -R "$1"',                          desc = "Reveal", for = "macos" },
	{ run = 'explorer /select, "%1"', orphan = true, desc = "Reveal", for = "windows" },
	{ run = '''exiftool "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show EXIF", for = "unix" },
]
extract = [
	{ run = 'unar "$1"', desc = "Extract here", for = "unix" },
	{ run = 'unar "%1"', desc = "Extract here", for = "windows" },
]
play = [
	{ run = 'mpv "$@"', orphan = true, for = "unix" },
	{ run = 'mpv "%1"', orphan = true, for = "windows" },
	{ run = '''mediainfo "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show media info", for = "unix" },
]

[open]
rules = [
	{ name = "*/", use = [ "edit", "open", "reveal" ] },

	{ mime = "text/html",  use = [ "open", "edit" ] },
	{ mime = "text/*",  use = [ "edit", "reveal" ] },
	{ mime = "image/*", use = [ "open", "reveal" ] },
	{ mime = "video/*", use = [ "play", "reveal" ] },
	{ mime = "audio/*", use = [ "play", "reveal" ] },
	{ mime = "inode/x-empty", use = [ "edit", "reveal" ] },

	{ mime = "application/json", use = [ "edit", "reveal" ] },
	{ mime = "*/javascript",     use = [ "edit", "reveal" ] },

	{ mime = "application/zip",             use = [ "extract", "reveal" ] },
	{ mime = "application/gzip",            use = [ "extract", "reveal" ] },
	{ mime = "application/x-tar",           use = [ "extract", "reveal" ] },
	{ mime = "application/x-bzip",          use = [ "extract", "reveal" ] },
	{ mime = "application/x-bzip2",         use = [ "extract", "reveal" ] },
	{ mime = "application/x-7z-compressed", use = [ "extract", "reveal" ] },
	{ mime = "application/x-rar",           use = [ "extract", "reveal" ] },
	{ mime = "application/xz",              use = [ "extract", "reveal" ] },

	{ mime = "*", use = [ "open", "reveal" ] },
]

[tasks]
micro_workers    = 10
macro_workers    = 25
bizarre_retry    = 5
image_alloc      = 536870912  # 512MB
image_bound      = [ 0, 0 ]
suppress_preload = false

[plugin]

preloaders = [
	{ name = "*", cond = "!mime", run = "mime", multi = true, prio = "high" },
	# Image
	{ mime = "image/vnd.djvu", run = "noop" },
	{ mime = "image/*",        run = "image" },
	# Video
	{ mime = "video/*", run = "video" },
	# PDF
	{ mime = "application/pdf", run = "pdf" },
]
previewers = [
	{ name = "*/", run = "folder", sync = true },
	# Code
	{ mime = "text/*",                 run = "code" },
	{ mime = "*/xml",                  run = "code" },
	{ mime = "*/javascript",           run = "code" },
	{ mime = "*/x-wine-extension-ini", run = "code" },
	# JSON
	{ mime = "application/json", run = "json" },
	# Image
	{ mime = "image/vnd.djvu", run = "noop" },
	{ mime = "image/*",        run = "image" },
	# Video
	{ mime = "video/*", run = "video" },
	# PDF
	{ mime = "application/pdf", run = "pdf" },
	# Archive
	{ mime = "application/zip",             run = "archive" },
	{ mime = "application/gzip",            run = "archive" },
	{ mime = "application/x-tar",           run = "archive" },
	{ mime = "application/x-bzip",          run = "archive" },
	{ mime = "application/x-bzip2",         run = "archive" },
	{ mime = "application/x-7z-compressed", run = "archive" },
	{ mime = "application/x-rar",           run = "archive" },
	{ mime = "application/xz",              run = "archive" },
	# Fallback
	{ name = "*", run = "file" },
]

[input]
# cd
cd_title  = "Change directory:"
cd_origin = "top-center"
cd_offset = [ 0, 2, 50, 3 ]

# create
create_title  = "Create:"
create_origin = "top-center"
create_offset = [ 0, 2, 50, 3 ]

# rename
rename_title  = "Rename:"
rename_origin = "hovered"
rename_offset = [ 0, 1, 50, 3 ]

# trash
trash_title 	= "Move {n} selected file{s} to trash? (y/N)"
trash_origin	= "top-center"
trash_offset	= [ 0, 2, 50, 3 ]

# delete
delete_title 	= "Delete {n} selected file{s} permanently? (y/N)"
delete_origin	= "top-center"
delete_offset	= [ 0, 2, 50, 3 ]

# filter
filter_title  = "Filter:"
filter_origin = "bottom-left"
filter_offset = [ 16, 2, 50, 3 ]

# find
find_title  = [ "Find next:", "Find previous:" ]
find_origin = "top-center"
find_offset = [ 0, 2, 50, 3 ]

# search
search_title  = "Search via {n}:"
search_origin = "top-center"
search_offset = [ 0, 2, 50, 3 ]

# shell
shell_title  = [ "Shell:", "Shell (block):" ]
shell_origin = "top-center"
shell_offset = [ 0, 2, 50, 3 ]

# overwrite
overwrite_title  = "Overwrite an existing file? (y/N)"
overwrite_origin = "top-center"
overwrite_offset = [ 0, 2, 50, 3 ]

# quit
quit_title  = "{n} task{s} running, sure to quit? (y/N)"
quit_origin = "top-center"
quit_offset = [ 0, 2, 50, 3 ]

[select]
open_title  = "Open with:"
open_origin = "hovered"
open_offset = [ 0, 1, 50, 7 ]

[log]
enabled = false

Anything else?
No response
yazi --debug output

Yazi
    Version: 0.2.5 (Arch Linux 2024-04-27)
    OS: linux-x86_64 (unix)
    Debug: false

Emulator
    Emulator.via_env: ("xterm-kitty", "")
    Emulator.via_csi: Ok(Unknown([]))
    Emulator.detect: Kitty

Adaptor
    Adaptor.matches: X11

Desktop
    XDG_SESSION_TYPE: Some("x11")
    WAYLAND_DISPLAY: None
    DISPLAY: Some(":0")

SSH
    shared.in_ssh_connection: false

WSL
    /proc/sys/fs/binfmt_misc/WSLInterop: false

Variables
    SHELL: Some("/usr/bin/fish")
    EDITOR: Some("nvim")
    ZELLIJ_SESSION_NAME: Some("拼搏与梦想")
    YAZI_FILE_ONE: None
    YAZI_CONFIG_HOME: None

file(1)
    Version: Ok(Output { status: ExitStatus(unix_wait_status(0)), stdout: "file-5.45\nmagic file from /usr/share/file/misc/magic\nseccomp support included\n", stderr: "" })

Text Opener
    default: Some(Opener { run: "$EDITOR \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })
    block: Some(Opener { run: "$EDITOR \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })

tmux
    TMUX: false

Ueberzug++
    Version: Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })

--------------------------------------------------
When reporting a bug, please also upload the `yazi.log` log file - only upload the most recent content by time.
You can find it in the "/home/lizhe/.local/state/yazi" directory.

Please fill out the bug report template correctly (bug description, steps to reproduce, etc.), otherwise I'm not sure what action to take.

Please fill out the bug report template correctly (bug description, steps to reproduce, etc.), otherwise I'm not sure what action to take.

I post everything I know may related to this issue.
The reproduce

install yazi
config yazi use the file I posted.
press enter on a jpg/png file on image.
the image file wont open in the corresponding program.

I don't know what else do you need ?

What happens when you run file -bL mime-type /path/to/your-image-file and xdg-open /path/to/your-image-file? Is this issue still with the default Yazi config?

file -bL mime-type /path/to/your-image-file

file -bL mime-type ~/wallpaper/ori/0001.jpg                                                                                ─╯
cannot open `mime-type' (No such file or directory)
JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, progressive, precision 8, 4592x3448, components 3

xdg-open /path/to/your-image-file
works fine.

change to default config
I delete the ~/.config/yazi folder then start yazi, still has the issue.

Please upload the failed file

I also don't have a preview for any file.
https://0x0.st/XAFK.log - log

@zaeboba Please create a new bug report and fill out the template. I need to know your specific environment information and the steps to reproduce the issue.

Please upload the failed file

what failed file?
The log file with default config to press enter on the image contains nothing.

what failed file?

The image file failed to open

what failed file?

The image file failed to open

The images seems ok. It can be opened in dolphin

Weird, I can't reproduce it with your image on my Linux VM
https://github.com/sxyazi/yazi/assets/17523360/63ad092f-1e3a-41a3-96c6-ba1775ab6b88
This is my Yazi version:
Yazi 0.2.5 (9a5b756 2024-06-25)

The mime-type of this image on my side (file-5.45):
file -bL --mime-type 342757779-af05c837-ebb4-4948-a0c9-04843766237d.jpg
image/jpeg

And I'm using the default config of Yazi

Weird, I can't reproduce it with your image on my Linux VM
screenshot-000832.mp4
This is my Yazi version:
Yazi 0.2.5 (9a5b756 2024-06-25)

The mime-type of this image on my side (file-5.45):
file -bL --mime-type 342757779-af05c837-ebb4-4948-a0c9-04843766237d.jpg
image/jpeg

And I'm using the default config of Yazi

I want to add some code in the yazi, compile it with source code and check the log.
Seems there is no log file currently about what happened when I press enter on image file .
Can you tell me which part of the code should I read?

You can try:

Press O on the image and see what the first opener is.
Copy the command of that opener, run it in the terminal, and see what happens.

You can try:

Press O on the image and see what the first opener is.
Copy the command of that opener, run it in the terminal, and see what happens.

This? Cant see the opener. I use qimgv as the default program to open images. It works from command line

Curious as to what would happen with a custom opener that explicitly uses qimgv:
[opener]
open-image = [{ run = 'qimgv "$@"', orphan = true, desc = "qimgv" }]

[open]
rules = [
  { mime = "image/*", use = [
    "open-image",
    "reveal",
  ] },
]

Then use O and select qimgv in the pop-up menu

Oh it worked with your config. Why is that ?

Oh it worked with your config. Why is that ? I can press enter on the image and the image will be open

Good question. I don't know why
% xdg-open /path/to/file

works for you but the same command doesn't when run from yazi.
Can your reproduce the issue with other TUI file managers such as joshuto or lf? If not, I don't think the issue is with yazi.
Is there any other file type that open fine with Dolphin but won't open from yazi or does it only happen with images?
What is the content of ~/.config/mimeapps.list (if it exists)?

I use TUI manager ranger it works fine.

Is there any other file type that open fine with Dolphin but won't open from yazi or does it only happen with images?

Havent found yet.

~/.config/mimeapps.list

[Added Associations]
application/x-extension-htm=firefox.desktop;
application/x-extension-html=firefox.desktop;
application/x-extension-shtml=firefox.desktop;
application/x-extension-xht=firefox.desktop;
application/x-extension-xhtml=firefox.desktop;
application/xhtml+xml=firefox.desktop;
text/html=google-chrome.desktop;firefox.desktop;
x-scheme-handler/baiduyunguanjia=baidunetdisk.desktop;
x-scheme-handler/chrome=firefox.desktop;
x-scheme-handler/clash=clash_win.desktop;
x-scheme-handler/http=google-chrome.desktop;firefox.desktop;
x-scheme-handler/https=google-chrome.desktop;firefox.desktop;
x-scheme-handler/jetbrains=jetbrains-toolbox.desktop;
x-scheme-handler/x-github-client=github-desktop.desktop;GitHub Desktop.desktop;
x-scheme-handler/x-github-desktop-auth=github-desktop.desktop;GitHub Desktop.desktop;
x-scheme-handler/mailto=google-chrome.desktop
text.html=google-chrome.desktop
image/png=qimgv.desktop
image/jpeg=qimgv.desktop

[Default Applications]
application/x-extension-htm=firefox.desktop
application/x-extension-html=firefox.desktop
application/x-extension-shtml=firefox.desktop
application/x-extension-xht=firefox.desktop
application/x-extension-xhtml=firefox.desktop
application/xhtml+xml=firefox.desktop
text/html=google-chrome.desktop
x-scheme-handler/baiduyunguanjia=baidunetdisk.desktop
x-scheme-handler/chrome=firefox.desktop
x-scheme-handler/clash=clash_win.desktop
x-scheme-handler/http=google-chrome.desktop;
x-scheme-handler/https=google-chrome.desktop;
x-scheme-handler/jetbrains=jetbrains-toolbox.desktop
x-scheme-handler/x-github-client=github-desktop.desktop
x-scheme-handler/x-github-desktop-auth=github-desktop.desktop
x-scheme-handler/mailto=google-chrome.desktop
text.html=google-chrome.desktop
image/png=qimgv.desktop
image/jpeg=qimgv.desktop

If you use the config from @xfzv but just change qimgv to xdg-open what will happen? And what will happen if you run xdg-open on the image using the built-in shell by clicking ; or :?

If you use the config from @xfzv but just change qimgv to xdg-open what will happen?
works.
And what will happen if you run xdg-open on the image using the built-in shell by clicking ; or :?
works too.

Version: 0.2.5 (Arch Linux 2024-04-27)

Are you sure you're using the latest code?

Version: 0.2.5 (Arch Linux 2024-04-27)

Are you sure you're using the latest code?

Why is your build date 2024-04-27?

Why is your build date 2024-04-27?

I download from aur. I just download the yazi from the release build date 4-23. Same issue

What does yazi -V output?

What does yazi -V output?
What is the differences with --version ?

╰─❯ yazi --version                                                  ─╯
Yazi 0.2.5 (c65a14c 2024-04-23)

╭─ ~/Applications                                                 ─╮
╰─❯ yazi -V                                                         ─╯
Yazi 0.2.5 (c65a14c 2024-04-23)

What does yazi -V output?

What is the differences with --version ?
╰─❯ yazi --version                                                  ─╯
Yazi 0.2.5 (c65a14c 2024-04-23)

╭─ ~/Applications                                                 ─╮
╰─❯ yazi -V                                                         ─╯
Yazi 0.2.5 (c65a14c 2024-04-23)

No, this is not the latest code, please verify if this problem exists in the latest code

What does yazi -V output?

What is the differences with --version ?
╰─❯ yazi --version                                                  ─╯
Yazi 0.2.5 (c65a14c 2024-04-23)

╭─ ~/Applications                                                 ─╮
╰─❯ yazi -V                                                         ─╯
Yazi 0.2.5 (c65a14c 2024-04-23)

No, this is not the latest code, please verify if this problem exists in the latest code

use the latest version. Same issue
yazi -V                                                                                ─╯
Yazi 0.2.5 (c64530b 2024-06-26)

@woshichuanqilz -V and --version is the same (short/long):
% yazi --help
  -V, --version                        Print version

What if you replace
open = [
  { run = 'xdg-open "$@"', desc = "Open", for = "linux" },

with
open = [
  { run = 'xdg-open "$@"', orphan = true, desc = "Open" },

?

Still work

In that case, I think we can simply add orphan = true to the default xdg-open opener rule to fix it. I don't know why, but it works.

I tried again and still couldn't reproduce the issue. I'm not sure if adding orphan = true to the default config is reasonable, so I've decided not to add it atm - I'll see if anyone else reports the same problem.
For now, please override the default image opener in your yazi.toml as a workaround.


skip installation of lspserver if installed

Did you check the docs?

[X] I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.
skip installing lsp's if already available with system package manager
Describe the solution you'd like
autodetect lsp's from PATH and skip installing or better provide an exclude option.
Describe alternatives you've considered
tried the following snippet but no luck
  {
    "williamboman/mason-lspconfig.nvim",
    opts = {
      automatic_installation = { exclude = { "rust_analyzer", "lua_ls" } },
    },
  },

Additional context
No response

This seem to be working except jdtls where the plugins.extras.lang.java seems to hardcode mason path (but one can write their own java.lua I guess)
  {
    "neovim/nvim-lspconfig",
    opts = {
      servers = {
        lua_ls = { mason = false },
        gopls = { mason = false },
        rust_analyzer = { mason = false },
        pyright = { mason = false },
        clangd = { mason = false },
      },
    },
  },


Holistically-Nested Edge Detection

I would like to contribute to the Repo by adding the code for Holistically-Nested Edge Detection. Kindly assign this issue to me.

Assigning you with the same @KKhushhalR2405.
Please add it in the EdgeDetection folder.


Add an option to start selection with a prefix key

Suggested prefix key: Alt

Use the beforestart event to check for the specific key, return false to prevent selection. I'll update the README since that returning false will cancel the selection isn't mentioned anywhere.


Enable-WriteCore-feature-for-selfhelp

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.SelfHelp


Request to POST endpoint crashes the server

Qwik Version
0.0.108
Operating System (or Browser)
macOS
Node Version (if applicable)
16.16.0
Which component is affected?
Qwik City
Expected Behaviour
Steps:

Clone the repo (https://github.com/steverandy/qwik-app)
Run build and serve to start the server.
Go to /api page and click on "Test POST request".
Server should not crash.

Actual Behaviour
Server crashed with the following error:
file:///Users/steve/Developer/qwik-app/server/entry.express.js:851
              data.map((item) => item)
                   ^

TypeError: data.map is not a function
    at onResolved (file:///Users/steve/Developer/qwik-app/server/entry.express.js:851:20)
    at invoke (file:///Users/steve/Developer/qwik-app/node_modules/@builder.io/qwik/core.mjs:158:26)
    at file:///Users/steve/Developer/qwik-app/node_modules/@builder.io/qwik/core.mjs:150:16
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async renderRoot (file:///Users/steve/Developer/qwik-app/node_modules/@builder.io/qwik/core.mjs:5569:5)
    at async renderSSR (file:///Users/steve/Developer/qwik-app/node_modules/@builder.io/qwik/core.mjs:5565:5)
    at async renderToStream (file:///Users/steve/Developer/qwik-app/node_modules/@builder.io/qwik/server.mjs:585:3)
    at async file:///Users/steve/Developer/qwik-app/server/entry.express.js:1988:20

Additional Information
I've also tested the flow with qwik v0.0.106 and there are no errors.

Hi @steverandy
Thanks for sharing your repo. I quickly checked it locally and can confirm the issue.
I also checked if the issue still exists after upgrading to latest qwik (0.12.1) using yarn:
yarn upgrade-interactive --latest // upgraded all pkgs
yarn qwik add express // to switch from the express middleware to the new introduced adaptors in v0.12.0
yarn build
yarn serve

would you like to test this on your side as well?

Thanks. I've just re-tested with qwik latest version (0.12.1) and no longer seeing the server crashed issue.

very nice! thanks for your retesting🙏 since i don't have the power: would you mind to close the issue? 😄


use 29-bit CAN-IDs

at the moment the library uses 11-bit CAN-IDs but UAVCAN uses extended 29-bit CAN-IDs.
See this forum post: https://forum.uavcan.org/t/receiving-heartbeat-message-with-pyuavcan-cli/1035/4?u=generationmake

sorry for setting this to priority high ;-)

I am a mere bystander here so I could be wrong but I think this issue is misplaced. This library does not generate CAN frames, it merely transfers them over from libcanard. The problem must be somewhere in your CAN driver; probably you forgot to set the extended flag or something.


Fix case where there are no test temp directories to create

This behavior, introduced in https://github.com/google/iree/pull/9405,
is broken on Android, where we don't do this temp directory
registration:
https://buildkite.com/iree/iree-test-android/builds/6452
Triggered a run of the android test pipeline on this PR:
https://buildkite.com/iree/iree-test-android/builds/6458

So the test run failed with a timeout in iree/task/executor_test_on_android_device
https://buildkite.com/iree/iree-test-android/builds/6458#01814e4b-c4ab-4c3a-a5b8-24ad9252c6b3
On the most recent passing run, that test finished in under 2 seconds. I'm inclined to merge this anyway because I don't see how it can possibly have made that situation worse.


Power Iteration Clustering in SparkML throws exception, when the ID in IntType

While running the following code, PIC throws exception.
val data = spark.createDataFrame(Seq(
      (0, Array(1), Array(0.9)),
      (1, Array(2), Array(0.9)),
      (2, Array(3), Array(0.9)),
      (3, Array(4), Array(0.1)),
      (4, Array(5), Array(0.9))
    )).toDF("id", "neighbors", "similarities")

val result = new PowerIterationClustering()
      .setK(2)
      .setMaxIter(10)
      .setInitMode("random")
      .transform(data)
      .select("id", "prediction")

Result
org.apache.spark.sql.AnalysisException: cannot resolve 'prediction`' given input columns: [id, neighbors, similarities];;
'Project [id#215, 'prediction]
+- AnalysisBarrier
+- Project [id#215, neighbors#216, similarities#217]
+- Join Inner, (id#215 = id#234)
:- Project [_1#209 AS id#215, _2#210 AS neighbors#216, _3#211 AS similarities#217]
:  +- LocalRelation [_1#209, _2#210, _3#211]
+- Project [cast(id#230L as int) AS id#234]
+- LogicalRDD [id#230L, prediction#231], false
at org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1$$anonfun$apply$2.applyOrElse(CheckAnalysis.scala:88)
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$$anonfun$checkAnalysis$1$$anonfun$apply$2.applyOrElse(CheckAnalysis.scala:85)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:289)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:289)
at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:70)
at org.apache.spark.sql.catalyst.trees.TreeNode.transformUp(TreeNode.scala:288)

`
What changes were proposed in this pull request?

PIC needs to return only "id" and "predictions". Currently it returns the entire data, including neighborhood array and similarity array.
MLLib PIC returns "id" as Long, and "predictions" as Int. So, In ML, we don't need to typecast to the user input ID type. We can directly display the output of MLLib PIC.

How was this patch tested?
Added a UT

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Thanks for the patch!  I just commented on https://issues.apache.org/jira/browse/SPARK-24213 though and would like to replace this with https://github.com/apache/spark/pull/21274
Could you please close this issue and help with reviewing the other PR?  Thanks!

Thank you @jkbradly. Actually one more issue is there. Currently we are skipping some of the nodes which are not there in the ID column, but there in the neighboring column. Spark MLLib is diplaying cluster indices corresponding to all the nodes.
So, Is it necessary for the join operation?Shall I open a new PR, adressing the issue? Kindly reply

@shahidki31 Seemingly what you said above is anothor issue ? You can create another jira for that. :)

@WeichenXu123 Thanks for the comment. I have created another Jira and I have raised a PR for that. That PR will fix this issue as well. Can you please review the PR?
Jira : https://issues.apache.org/jira/browse/SPARK-24217
PR: https://github.com/apache/spark/pull/21277


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.4.159",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=6e80e9314f8bb52d9eabe1907698718ff01120f5"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "6e80e9314f8bb52d9eabe1907698718ff01120f5",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "isofs: Fix out of bound access for corrupted isofs image\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.4.159 by commit 6e80e9314f8bb52d9eabe1907698718ff01120f5. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1002023


[OSF-5808] Add date_retracted to Retraction

Purpose

Currently, withdrawn registrations retain their date_created and date_registered metadata, but the date when the retraction occurs is not stored. This PR adds the retraction date to the metadata of a withdrawn registration.

Changes

Adds a date_retracted field to the Retraction model.
Adds date_retracted to the registration serializer in the API.
Displays date_retracted (as "Date Withdrawn") on the OSF retraction page (mako template changes).

Side Effects

❗ Migrations need to be run ❗

Ticket

OSF-5808

API Docs PR

https://github.com/CenterForOpenScience/developer.osf.io/pull/45

Discussed with @brianjgeiger on Flowdock: A registration withdrawn log already exists, so adding one isn't necessary. And since we have that information, this PR should backfill existing retractions and set their date_retracted using the date of the RETRACTION_APPROVED logs.

@cwisecarver, I wasn't able to apply all of the optimizations you suggested (retraction.registration isn't a thing), but I improved some parts of the forward migration and added a reverse. 👍

@caseyrollins Please update with develop and do the migration thing. Let me know when this is ready and it will be the next migration-filled ticket to be merged.

Test failing. May be related to a hotfix @hmoco made recently?

_______________ TestManualCitationCorrections.test_mla_citation ________________
[gw1] linux2 -- Python 2.7.9 /home/travis/virtualenv/python2.7.9/bin/python
api_tests/nodes/views/test_node_alternative_citations.py:1700: in test_mla_citation
    assert_equal(citation, expected_citation)
E   AssertionError: u'Mercury319, Freddie. \u201cMy Project\u201d. Open Science Framework, 1 May 201 [truncated]... != u'Mercury319, Freddie. \u201cMy Project\u201d. Open Science Framework, 1 May. 20 [truncated]...
E   - Mercury319, Freddie. “My Project”. Open Science Framework, 1 May 2017. Web.
E   + Mercury319, Freddie. “My Project”. Open Science Framework, 1 May. 2017. Web.
E   ?                                                                 +
=================== 1 failed, 1800 passed in 893.71 seconds ====================

I'm going to merge and let Henrique deal with the failing test separately.


Spawn binaries directly with arguments arrays, removing the need to quote options

This PR fixes #118 by spawning the binaries directly with cross-spawn, instead of going through a string passed to the shell. This should avoid issues to do with quoting on all platforms (including windows).
It also introduces a new concept, CliVerbOptions, which is internal to pact-node. This type is used where you have a verb (like publish in pact-broker publish) which must go before all other arguments.

Closing in favour of #202, which does not include the beta tag


fix: update alpine to address CVE-2022-28391

Overview
change the base image from alpine:3.15 to alpine:3.15.4
What this PR does / why we need it
to fix the https://github.com/flant/shell-operator/issues/387
Special notes for your reviewer
Scan the image with harbor . The fix is worked.

Does this PR introduce a user-facing change?

HI ,@diafour , would you please review the PR.

@yankay Thank you for pointing this out!

My pleasure，Russia brother.


[Screen Reader-Home Page-Blog] Name Property and Control type is not defined for the 'Search Icon'  showing near Search edit box.

User Experience:
Users with Visual disabilities might not able to understand the controls if Name Property is not defined. Like in this scenario Name Property is not defined for the Print button.
Test Environment
OS: RS2 Version 1703(OS Build 15063.2)
Platform: Edge.
Screen reader: Narrator
Repro Steps
1-Navigate to url:- https://makecode.com/
2-Navigate to the Blog control lying in the header section on the page and select it.
3-Navigate to the Search icon showing near Search editable box  on blog page.
4-Verify that Name Property and Control type is defined for  'Search Icon' or not.
Actual Result
Name Property and Control type is not defined for the 'Search Icon'  showing near Search edit box  as Screen Reader reads it as Text on scan mode and blank in Items mode.
Expected Result
Name Property and Control type should be defined for the 'Search Icon' showing near Search edit box.
MAS Reference
https://microsoft.sharepoint.com/teams/msenable/Documents/LCA/MAS - July 1, 2017 Release/MAS 4.1.2 – Name, Role, Value.docx?d=w248054a65e6847719e1e242fb5025730&csf=1
Suggested fix:
1- Using aria-label to give an invisible name to element, where name/title property is not used
e.g.
'Close' button can have only ‘X’, to make it more meaningful aria-label attribute is used with ‘Close’ text to help AT’s without showing the content on UI

   This is a pop-up box.
      X

2-   Using ARIA role to expose the control type of user interface component
e.g.

3-   Using ARIA attributes to expose the element’s state
e.g.

Refer Attachment:

MAS4.1.2_Home Page_Blog_Search Icon.zip

Bug is verified on URL : https://makecode.com/ and bug still exists as still Screen Reader reads it as Text on scan mode and blank in Items mode.Hence Reactivated the bug and added the Active tag.

Verified on URL: https://makecode.com/ and issue is fixed now. Hence closing the bug


Roboto Font support

Roboto font family support not found. https://www.google.com/fonts/specimen/Roboto

Yeah, Roboto is a tricky one.
In my tests, Droid Sans is the only as-is font-family available by name on Android. None of the other variants of Droid Sans or Roboto (used in 4.0+) are available for use in font-family, they are used through aliases.
More info here:
http://stackoverflow.com/questions/6809944/default-font-set-on-android
I’m going to leave this open though, I think I’ll need to add a better error message for the fonts that we know about, but are only available through aliases.

For posterity, see also:
http://fontfamily.io/os/android-4-4
http://fontfamily.io/os/android-4-2-2

What about Android Lollipop?

Fonts denoted as only available by alias have a "***" by the name.

@albertorestifo Lollipop is available on the site


iframes are not removed from the body element

Any reason why you commented out the iframe removal code? Does it mean that we should reopen #24?
//iframe cleanup appears to randomly cause the download to fail
//not doing it seems better than failure...
//if ($iframe) {
//    $iframe.remove();
//}

not
2015-11-12 7:28 GMT-08:00 Daniel Pacak<EMAIL_ADDRESS>
Any reason why you commented out the iframe removal code? Does it mean
that we should reopen #24
https://github.com/johnculviner/jquery.fileDownload/issues/24?
//iframe cleanup appears to randomly cause the download to fail//not doing it seems better than failure...//if ($iframe) {//    $iframe.remove();//}
—
Reply to this email directly or view it on GitHub
https://github.com/johnculviner/jquery.fileDownload/issues/112.

If I remember properly sometimes the DL would fail. I don't think having the iframe there really causes any problems does it?

hi, i fix all mi problems removing the copy cookie at the end of a copy, i think like you.

Well, @johnculviner, indeed this is not a big deal. However, in my app (and probably majority of modern web apps) a user may stay on the same index.html for a while without the whole page refresh. If she downloads a lot then the HTML DOM grows which can be problematic at some point. That's why I'd vote for removing useless iframes.

Yeah I been doing mostly SPAs for the last 5 years or so extra junk in the DOM not good! Totally understand your thought here but if its any conciliation an empty iframe shouldn't use too many resources and I'd rather err on the side of it always working

All right. Thanks for clarifications. I got your point. Hence, I'm closing this issue.


Add a post-init extension point for blueprints, etc

Problem:
#4149 - you have to do hacky in-function imports to import from superset in blueprints to avoid circular imports.
Solution:
We add a generic extension point post-init, such as an optional superset_post_init.py with a post_init(app) -> app, that handles extensions
Alternatives:

Rework the way the config or internal library structure is loaded so that imports are not an issue
Make a specific entry point blueprints.py
Do nothing and tell users to deal with it and use the workaround

I believe this also means CUSTOM_SECURITY_MANAGER is unusable, as it has to extend from a superset import

@micimize - I have CUSTOM_SECURITY_MANAGER working on v0.33.0rc1 - can you clarify?

@ericandrewmeadows I might be wrong there. Basically, I was having issues importing from superset directly for blueprints due to circular imports issues, and figured the same would happen with importing the security manager for extension.
With #8004 solved diagnosing exactly what's going on will be much easier

👍 - sounds good.  I was dealing with CSM in v0.34.0rc1, so I just wanted to confirm that it was something else.

I think the simplest way to implement this would be
# config.py
def post_init(app):
    return app

# believe this will work in __init__.py
post_init = conf.get("post_init")
if post_init:
    app = post_init(app) or app


Offline Installer (in pre-release) Incomplete

Hey there,
i wanted to try out harbor with the pre-release offline installer, but noticed some things:

the mysql image in the docker-compose points to vmware/harbor-db, but the image provided in the offline installer is called vmware/mariadb-photon
vmware/harbor-jobservice is missing in the offline installer or is called different
vmware/nginx-photon is missing in the offline installer or is called different

docker images
vmware/harbor-log           v1.3.0-rc2          2b39f3fd1f2f        6 days ago          199MB
vmware/harbor-ui            v1.3.0-rc2          9034e7649eaa        6 days ago          203MB
vmware/harbor-adminserver   v1.3.0-rc2          2662cdda3a55        6 days ago          166MB
vmware/postgresql           9.6.5-photon        a5c79b0473d9        2 weeks ago         285MB
vmware/registry             2.6.2-photon        c38af846a0da        2 weeks ago         240MB
vmware/mariadb-photon       10.2.10             eaaae71dea19        2 weeks ago         586MB
vmware/notary-photon        server-0.5.1        b8cc51024379        2 weeks ago         247MB
vmware/photon               1.0                 efceca798007        2 weeks ago         129MB

harbor-offline-installer-v1.3.0-rc2

We cannot reproduce it on our side.
Can you show me the install console log?
How do you install the offline？

root@harbor:~# sha1sum harbor-offline-installer-v1.3.0-rc2.tgz
b5af1568088c77400150169afb993467d7ac0d74  harbor-offline-installer-v1.3.0-rc2.tgz
root@harbor:~# ls -l harbor-offline-installer-v1.3.0-rc2.tgz
-rw-r--r-- 1 root root 929062516 Nov 29 04:55 harbor-offline-installer-v1.3.0-rc2.tgz

didn't check for file integrity and noticed a wrong hash in the offline installer i downloaded yesterday. downloaded the offline installer again and verified the checksum, and now it is complete.
thank you for the fast replys and sorry for the false alarm :/


Fix test by updating expected result on macOS 11.3 and above

It seems, format of exception strings has changed in Swift 5.4.

          1 Error

:no_entry_sign:
Any changes to library code need a summary in the Changelog.

  Generated by :no_entry_sign: Danger


DM methods to pull down admin entities

Methods required to pull down all entities from ~/aims/api/admin/users. This user data is to be shown in the UserAdmin UI.
This is low priority

TWG - MS moved to 1.1

User functionality exists in DM, just needs to be activated


Improve failure output

I receive the following failure output:
SECRET_KEY
  field required (type=value_error.missing)

The SECRET_KET config looks as follows:
SECRET_KEY: str = Field(default=Undefined, env='DJANGO_SECRET_KEY')

Given I'm using environment variables to pass in the configuration I can not discern the issue from looking at the output, e.g. I don't know I have to provide a value in DJANGO_SECRET_KEY until looking into the code.
Would it be possible to provide more details, possibly the entire config for this field? I see there are title and description available, which could be helpful too:
SECRET_KEY: str = Field(default=Undefined, env='DJANGO_SECRET_KEY', title="Secret key", description="lorem ipsum...")

Possible solution:
SECRET_KEY
  Error: field required (type=value_error.missing)
  Title: Secret Key
  Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed suscipit, orci
      nec facilisis tristique, nibh leo pretium mi, sed consequat nibh magna sit amet elit. Maecenas
      tempus porta tellus eu feugiat. Phasellus eget vehicula libero. Donec eget augue
      pellentesque, condimentum elit sed, lobortis est. Fusce eu risus placerat, mollis dolor at,
      convallis mi.
  Env: DJANGO_SECRET_KEY

Thank you, I will think about it

While I appreciate the usefulness of the request, I think it should be addressed to Pydantic directly as it is the thing which is performing the heavy-lifting of validation and prints the output you are referring to.

^


updates and improvements

Overall Review of Changes:
Update to goss binary for new audit component
pre-commit added to code
several issues
Issue Fixes:

#59
#61
#62
#64
#67
#69

Enhancements:
Many improved tests and logic.
How has this been tested?:
Manually

will fail for audit until audit is merged


Remove AbstractIMF?

Since the PowerLawIMF and LogNormalIMF constructors just create normal truncated distributions and not AbstractIMFs, I'm not sure the abstract type actually helps anything. We're not defining any special methods for AbstractIMFs, so that doesn't support the addition of the abstract type either.

We might use AbstractIMF later if we decide to add normalized volumetric IMFs or something like that ... doesn't seem to be hurting anything for now.


No auto translation for some items in Windows 11 pro 24H2 build (nilesoft shell v1.9.18)

For some reason, the translation of the taskbar context menu is only applied in build 22H2:

And this is what it looks like on the 24H2:

The rest of the menus are fine, only the taskbar menu is affected by the problem.
22H2

24H2

nilesoft shell v1.9.18
24H2 log:
shell.log
22H2 log:
shell.log
Tried uninstalling completely with all configs, no help. Also tried removing English from the system, also no effect.

Microsoft replace shell components with XAML resources. the titles can not be retrieve from the os (respectively, they do not recognize the language)
https://github.com/moudey/Shell/issues/495#issuecomment-2274289058


python311Packages.cvxpy: 1.4.1 -> 1.4.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.cvxpy is: A domain-specific language for modeling convex optimization problems in Python
meta.homepage for python311Packages.cvxpy is: https://www.cvxpy.org/
meta.changelog for python311Packages.cvxpy is: https://github.com/cvxpy/cvxpy/releases/tag/v1.4.2
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.4.2 with grep in /nix/store/vyl2yvasghi956xmykr90zlakkfdwi60-python3.11-cvxpy-1.4.2
found 1.4.2 in filename of file in /nix/store/vyl2yvasghi956xmykr90zlakkfdwi60-python3.11-cvxpy-1.4.2

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath
python311Packages.bambi
python311Packages.blackjax
python311Packages.cvxpy
python311Packages.jaxopt
python311Packages.qutip

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/vyl2yvasghi956xmykr90zlakkfdwi60-python3.11-cvxpy-1.4.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python311Packages.cvxpy https://github.com/r-ryantm/nixpkgs/archive/057b692941a19f3dc0771a6f1e60e0270d80df28.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/057b692941a19f3dc0771a6f1e60e0270d80df28#python311Packages.cvxpy

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/vyl2yvasghi956xmykr90zlakkfdwi60-python3.11-cvxpy-1.4.2
ls -la /nix/store/vyl2yvasghi956xmykr90zlakkfdwi60-python3.11-cvxpy-1.4.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings
cc @drewrisinger for testing.

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

10 packages built:

python311Packages.bambi
python311Packages.bambi.dist
python311Packages.blackjax
python311Packages.blackjax.dist
python311Packages.cvxpy
python311Packages.cvxpy.dist
python311Packages.jaxopt
python311Packages.jaxopt.dist
python311Packages.qutip
python311Packages.qutip.dist


Data can be skipped when using partial dictionary updates

I am experimenting with partial dictionary updates using the update_field parameter.
I found out that time_point is increased after every update, even if there was an error.
Because of that data can be completely or partially skipped.
An example:
There was an error during the initial dictionary loading (create_time >= '0000-00-00 00:00:00')
2018.08.09 20:00:11.179273 [ 23 ] <Trace> MySQLDictionarySource: SELECT `table_name`, `create_time`, (max_data_length/avg_row_length) AS `number` FROM `information_schema`.`tables` WHERE table_schema='information_schema' AND create_time >= '0000-00-00 00:00:00';
2018.08.09 20:00:11.455287 [ 23 ] <Error> ExternalDictionaries: Cannot create external dictionary 'dict' from config path /etc/clickhouse-server/dict/dict.xml: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = mysqlxx::CannotParseValue: Cannot parse signed integer: 2796202.0000, query: SELECT `table_name`, `create_time`, (max_data_length/avg_row_length) AS `number` FROM `information_schema`.`tables` WHERE table_schema='information_schema' AND create_time >= '0000-00-00 00:00:00';, e.what() = mysqlxx::CannotParseValue

But the next time the dictionary only requests new data (create_time >= '2018-08-09 20:00:10')
2018.08.09 20:00:18.407470 [ 23 ] <Trace> MySQLDictionarySource: SELECT `table_name`, `create_time`, (max_data_length/avg_row_length) AS `number` FROM `information_schema`.`tables` WHERE table_schema='information_schema' AND create_time >= '2018-08-09 20:00:10';
2018.08.09 20:00:18.683732 [ 23 ] <Error> ExternalDictionaries: Failed reloading 'dict' external dictionary: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = mysqlxx::CannotParseValue: Cannot parse signed integer: 2796202.0000, query: SELECT `table_name`, `create_time`, (max_data_length/avg_row_length) AS `number` FROM `information_schema`.`tables` WHERE table_schema='information_schema' AND create_time >= '2018-08-09 20:00:10';, e.what() = mysqlxx::CannotParseValue

@vitlibar Can you fix it, please? It should be pretty easy fix. Need just a check that the partial dictionary update was successful before shifting(updating) last updating time?
And would be good to lag (-1 sec) configurable in dictionary config, because 1 second is not enough for most of cases (time drifting & commit exposes rows for committed read later than updated ON UPDATE CURRENT_TIMESTAMP happen).

It seems it's already done.
https://github.com/yandex/ClickHouse/pull/5567

@vitlibar I am not sure that it's fixed.
Check this https://github.com/yandex/ClickHouse/blob/master/dbms/src/Dictionaries/HTTPDictionarySource.cpp#L57
        auto tmp_time = update_time;  // time for current partial update (http_get & updated=tmp_time -1
        update_time = std::chrono::system_clock::now(); // unconditionally set time for next check.

      ......
        do   http_get & updated=tmp_time -1
        { update FAILED for example because of network issue }
        oops we already set update_time to next check and we lost previous value of update_time
     ....

The same for all other dicts.

I still think the problem is already fixed (in another place).

https://github.com/yandex/ClickHouse/blob/master/dbms/src/Dictionaries/HTTPDictionarySource.cpp#L57
update_time = std::chrono::system_clock::now();
Речь про частичное обновление.
Мы запоминаем новое время, до запроса изменений из бекэнда.
Если обновление неуспешно, в следующем цикле partial update мы
прочитаем обновления с новой точки, и теряем частичное изменение неудачного.

I could not reproduce this on 19.13.3


Support for surround output.

In addition to binaural and ambisonic output, allow the export of arbitrary speaker layouts, with presets for common layouts such as stereo, 5.1, and 7.1.

Marked as "feature request"

Hello!
Are there any plans to implement this feature?
It would be really cool if e.g. Apple's Spatial Audio with AirPods would work out of the box.  As there wasn't any activity for 3 years, I assume the development of this project has stalled. If you could guide me in the right direction I'd love trying to implement that 🤞


fix: 🐛 Japan flag included

Japan flag included; the pattern scss to included the flag does not
work, so I  created a css file into a teams folder created, see if is
worth it!
✅ Closes: #17

Hey @Marincor Thanks for your contributation!!!
It's not necessary to add .css file into css folder.
To test you code, You must run:
npm install
and
npm run build
Last command run you .scss files and generate de .css file into css folder.
And to test this project locally, You can Install Live Server extension from VSCode
Or run
npx serve

Css teams folder removed. First time working with scss, sorry 😂. See now. ^^

@Marincor I'll approve your pull request.
Thanks for you contribution :)

@Marincor  Thanks for your contribution :)


WebDAV password

Where to enter the password for WebDAV, because I don't have this option, and WebDAV always has a password

auth will not be possible unless this ui is integrated inio server itself

How to do it on huggingface

huggingface

Why it doesn't work on huggingface

auth will not be possible unless this ui is integrated into server itself

Why it doesn't work on huggingface


Manufacture product Website[GSSOC'23]

Describe the project you want to add with tech stack

Manufacturing Product Animation
Expected behavior

Hello Sir,
I want to add my CSS project on Manufacturing Product animation where we can see a company of blockchain manufacturing products.
Screenshots (optional)

Additional context (optional )

Please assign my project under SSOC'23

@MohitGupta121 @TusharKesarwani @pranjay-poddar Please assign me this issue.


rename QuestionSets to Pages

Rationale / Begründung
rename the QuestionSets to Pages, this would distinguish them in respect to the nested Questionsets.
Affected
Managers
Minimal functionality
One thing I always thought about was to rename the QuestionSets to Pages, this would distinguish them in respect to the nested Questionsets.
Originally posted by @jochenklar in https://github.com/rdmorganiser/rdmo/issues/461#issuecomment-1113030940
References / Verweise

#461
#538

This is part of RDMO 2.0.0.


Support registering the same type multiple times

Description of the feature
It can be useful to have multiple structs in Rust code that should resolve to the same GraphQL type, for example because they are associated with different representations in a database schema.
Registering an object of the same name twice currently always fails. This is overly restrictive, as the second registration could be a no-op if the second type is identical in its shape to the already registered one.

Not allowing multiple Rust types to map to same GraphQL type avoids hard-to-find bugs, so for now I think it's fine. 🙂


Incorrect Typescript type definition for Dropdown additionLabel property

Bug Report
Steps

When using typescript use the following code from the Dropdown component samples on using a component for the dropdown additionLabel:

      <Dropdown
        options={this.state.options}
        placeholder='Choose Language'
        search
        selection
        fluid
        allowAdditions
        additionLabel={<i style={{ color: 'red' }}>Custom Language: </i>}
        value={currentValue}
        onAddItem={this.handleAddition}
        onChange={this.handleChange}
      />

Compile using the typescript compiler

Expected Result
Example compiles correctly, giving a dropdown component with a component as the additionLabel.
Actual Result
Typescript compilation fails with the following error:
error TS2322: Type '{ additionLabel: Element; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<DropdownProps, ComponentState>> & Readon...'.
  Type '{ additionLabel: Element; }' is not assignable to type 'Readonly<DropdownProps>'.
    Types of property 'additionLabel' are incompatible.
      Type 'Element' is not assignable to type 'string | number'.
        Type 'Element' is not assignable to type 'number'.

Version
0.82.1
Testcase
I'm not sure if it possible to create a test case in a pen that demonstrates a Typescript compiler error.

I have a pull request ready with a fix for this, but hesitated on issuing it for two reasons:

The current Dropdown.d.ts definition for the additionLabel  prop is:
additionLabel?: number | string;

but the prop types are:
additionLabel: PropTypes.oneOfType([
  PropTypes.element,
  PropTypes.string,
]),

Therefore I was unsure if:
additionLabel?: number | string | React.ReactNode;

or
additionLabel?: string | React.ReactNode;

was the better fix.

I was not certain how to write tests Typescript compilation in the project. I added a reference to Dropdown in typings.tsx, that would demonstrate the error when tsc is run, but there doesn't seem to be project command that runs tsc.

@DavidHall this is probably correct. I think you can go ahead and submit a PR for this and someone who has more TS experience than I do can confirm on the PR. It will probably get merged faster if conversation can happen over code in a PR. 👍

Was fixed in #3055 :+1:


[Android] Commissioner attestation delegate should be able to override success and failure

Issue Being Resolved
The issues #22318  #16681  have been fixed on the Darwin, but not on Android.
Therefore, I implemented the features on the Android based on the implementation of the Darwin.
Change overview
Implementation of the following two PRs in Android platform.
https://github.com/project-chip/connectedhomeip/pull/22321
https://github.com/project-chip/connectedhomeip/pull/17028

Have DeviceAttestationDelegate add an optional override to use the new flow
Add a new AttestationDeviceInfo object to hold a copy of the device information

Testing
I modified the vendor id of all-cluster-app and flashed M5 Stack with the changes.

Used Android chip-tool and verified the existing path still works
Tested locally with modified Android chip-tool that implements the new delegate callback.
Tested Tuya Gateway(ON_NETWORK Device) in Tuya Smart App.

@yufengwangca @andy31415
Please review this PR.
This should be regarded as the missing function of Android platform, could you evaluate whether to merge it?

[x] API must not add new params to pairDevice. Please use setters for policy replacement

[ ] Overriding outcome on failed attestation, but not providing a way to implement in Java the parts of the attestation that are causing failure
Could I talk about my implementation ideas, and do I understand correctly?
Provide paaCerts and cdCerts parameters passed in when the controller is initialized, and implement AttestationTrustStore for java.
May be ready next Wednesday, need a little verification time.

@tcarmelveilleux

@tcarmelveilleux @andy31415 @yufengwangca
Re-request review.

@tcarmelveilleux Are there any other suggested changes to this feature?

Sorry for your patience. LGTM!

@panliming-tuya I have internal sync with Tennessee this morning on how we should move forward on this PR.  What Tennessee request is to provide a Java interface so that the user can implement the AttestationTrustStore in the app side. I think this is complimentary to the mechanism we already have on iOS side which do the "post allow" by user's agreement.
To unblock, could we split the current PR into two to move forward.

Update this PR to implement the "post allow" which is aligned with iOS implementation
We work together on the follow-up PR to implement what Tennessee asked.

Sorry, I have been busy with the AL certification test for tuya app since last month.
Thank you very much for the internal synchronization, I think the idea is really great.
Today I will take some time to fix the conflicts and modify the suggestions given by others above, and submit the commit in the afternoon.
Tennessee's suggestion is correct I think, but needs some discussion.
Both cd certs and paa certs are obtained from the java side, which essentially requires new paa certs to be obtained from DCL during the Device Attestation process. It doesn't make sense to simply implement an AttestationTrustStore, it still reads paa certs from a static list, and AttestationTrustStore does not contain cd certs.
I think it is necessary to modify the Device Attestation process to dynamically pull paa certs from DCL, and change the synchronous call to an asynchronous call.

@yufengwangca Sorry, I have been busy with the AL certification test for tuya app since last month. Thank you very much for the internal synchronization, I think the idea is really great. Today I will take some time to fix the conflicts and modify the suggestions given by others above, and submit the commit in the afternoon. Tennessee's suggestion is correct I think, but needs some discussion. Both cd certs and paa certs are obtained from the java side, which essentially requires new paa certs to be obtained from DCL during the Device Attestation process. It doesn't make sense to simply implement an AttestationTrustStore, it still reads paa certs from a static list, and AttestationTrustStore does not contain cd certs. I think it is necessary to modify the Device Attestation process to dynamically pull paa certs from DCL, and change the synchronous call to an asynchronous call.

@panliming-tuya
I saw the latest change still contain the AttestationTrustStoreBridge which overwrite the certs, I think that part we need further discussion, could you update the this PR to only contains the "post-allow" changes which has already been implemented on iOS side, I think that part should be good to land

@panliming-tuya

It doesn't make sense to simply implement an AttestationTrustStore, it still reads paa certs from a static list, and AttestationTrustStore does not contain cd certs. I think it is necessary to modify the Device Attestation process to dynamically pull paa certs from DCL, and change the synchronous call to an asynchronous call.

We do not need to dynamically pull anything from DCL in SDK. The device attestation process in AutoCommissioner is already async: the DeviceAttestationVerifier is called asynchronously. However, you are right that
See AndroidDeviceControllerWrapper::AllocateNew in src/controller/java/AndroidDeviceControllerWrapper.cpp:
    // Initialize device attestation verifier
    // TODO: Replace testingRootStore with a AttestationTrustStore that has the necessary official PAA roots available
    const chip::Credentials::AttestationTrustStore * testingRootStore = chip::Credentials::GetTestAttestationTrustStore();
    SetDeviceAttestationVerifier(GetDefaultDACVerifier(testingRootStore));

The Device Attestation Verifier is what could be bridged to Java.
Overall, the flow could be something like:

@startuml

participant "Client" as client
participant "AndroidChipDeviceController" as wrapper
' from AndroidDeviceControllerWrapper
participant "C++ ChipDeviceController" as DevCtrl
' owned by ChipDeviceController
participant "DeviceCommissioner" as Commissioner
' owned by ChipDeviceController
participant "AutoCommissioner" as AutoCommissioner
' Make your custom one
participant "CustomDeviceAttestationVerifier" as Verifier
participant "DCL Client" as DCL

client -> wrapper: <<new ChipDeviceController>>
client <- wrapper: devCtrl
' The following is new
client -> wrapper: SetDeviceAttestationVerifier\n(CustomDeviceAttestationVerifier)
activate wrapper
client -> wrapper: CommissionDevice(...)
wrapper -> DevCtrl: Commission(...)
DevCtrl -> Commissioner: Commission(...)
Commissioner -> AutoCommissioner: StartCommissioning(...)

... some operations pass ...

AutoCommissioner -> Verifier: VerifyAttestationInformation(..., Callback)
Verifier -> DCL: FetchPAA(PAI.authority, PaaFetchedCallback)
Verifier <-- DCL: PaaFetchedCallback(PAA Cert)
Verifier -> Verifier: Bridge to DefaultDeviceAttestationVerifier impl
Note left of Verifier: An ephemeral truststore can be provided\nto DefaultDeviceAttestationVerifier\nthat now has PAA
Note left of Verifier: DefaultDeviceAttestationVerifier does not\nneed to be used, could be custom Java version
AutoCommissioner <-- Verifier: Callback(result)

... more operations pass ...
Commissioner <-- AutoCommissioner: CommissioningStepFinished(kAttestationVerification)
deactivate wrapper

@enduml

The general concept:

It should be possible to implement a DeviceAttestationVerifier in Java fully
That DeviceAttestationVerifier would then NOT need a truststore directly, unless it called into the C++ DefaultDeviceAttestationVerifier with JNI bridging. This should be optional
If we abstract at DeviceAttestationVerifier call, then there is already async implementation from DeviceCommissioner to AutoCommissioner to DeviceAttestationVerifier. You can then take a while to obtain PAA from DCL if needed
We have to make sure not to break existing public API, only make it better. Right now, most Java clients just use the default Device Attestation Verifier and likely know what PAAs they want to trust (e.g. their own). If you are a fully general commissioner, you always need more customization anyway. That is why I was suggesting also bridging the attestation trust store.

Regarding the CD trust store, there is already a set of Well-known keys. The CdWellKnownKeysTrustStore used by default should be good enough for a while.
Overall, I agree that these Java APIs are cumbersome. However, unless someone is willing to help rewrite them to "flow-through" with a frameworked design that works for everyone, we have to keep going incrementally.

This PR has been updated to implement the DeviceAttestationDelegate only (Post-allow), this part is fully aligned with iOS side.
I create issue https://github.com/project-chip/connectedhomeip/issues/24297 to track the follow-up work which implement a DeviceAttestationVerifier in Java to allow user to overwrite the DefaultDACVerifier


Update Multiple environments topic

Fixes #7068
Internal Review Topic
@glennc You only need to inspect the nine lines (Lines 138-147) that pertain to setting an env var in the Application settings of an Azure App Service blade.

@scottaddie This was approved offline by @glennc pending a confirmation of the behavior described on Line 143 ...

Azure App Service automatically restarts the app after an app setting (environment variable) is added, changed, or deleted in the Azure portal.

👍 You're go for throttle up. :rocket:


Static extension methods - compiler error with named parameters

Hi, I am trying the extension methods in Flutter and have an issue, with the following extension method >
extension ExtendedGeoAddress on GeoAddress {

  String prettyAddress({
    bool withCountry = false,
    String separator = ', ',
  }) {
    /// ...
  }

}

The analyzer doesn't have any problems with it but running the compiler, it fails with the following:
Compiler message:
lib/app/clients/clients_list.dart:145:54: Error: The argument type 'CrmClient' can't be assigned to the parameter type 'bool'.
 - 'CrmClient' is from 'package:my_app/domain/crm_client.dart' ('lib/domain/crm_client.dart').
              Text(client.prettyAddress(withCountry: false)

So, obviously, it doesn't like the place where I am using the extension method.

CrmClient is a class that implements GeoAddress.

It seems like a bug to me.
Output from flutter doctor
[✓] Flutter (Channel master, v1.10.15-pre.94, on Mac OS X 10.15 19A583, locale en-US)
• Flutter version 1.10.15-pre.94 at /Users/filip/development/flutter
• Framework revision 532a8fed41 (3 days ago), 2019-10-12 18:58:22 -0700
• Engine revision eed171ff35
• Dart version 2.6.0 (build 2.6.0-dev.0.0 965b8cb1d8)

Still not fixed in 2.6.0-dev.8.1

I cannot reproduce the error on 2.6.0-dev.8.1. Do you have a (small) repro?

It is failing on a large project, I will try to reduce it. It should work with a package off https://pub.dev, right?

It should. The availability of the feature should only be determined by the version of the sdk.

Still getting the error with the large project, gradually trying to reduce it to reproduce the error in a new project...

Facing the same issue. Running Dart Version 2.6.0-dev.4.0.flutter-1103600280.
How do I upgrade to dev 8.1 in Flutter SDK?

@clicksrv you need to upgrade your Flutter installation.


Interface for layer/tile-fetch-function reference

Because the GT server is supposed to be pluggable and generic, we can't strictly mandate the types of objects/information users will ultimately design their programs around. This means that we can't assume, for instance, that UUIDs will always uniquely refer to layers. What people will provide is some means of referring to tiles and some proof that they can produce a tile on the basis of said reference; what we will provide is a means of using the reference, itself, as though it were tile data.
The existing MAML solution in Raster Foundry is actually quite close to this behavior already and such a structure happens to be useful for optimizing MAML resolution. In brief, we:

collect all sources from a given AST
only keep distinct elements (the set of sources)
resolve a tile/region corresponding to each source node in the set
rewrite the AST with tile literals in preparation for evaluation

Likely output for this transformation process:

TMS: (Int, Int, Int) => Tile
Batch/WCS/TIFF: Extent => Raster

Cf. https://github.com/raster-foundry/raster-foundry/blob/develop/app-backend/tile/src/main/scala/tool/TileResolver.scala

Solution currently implemented:

to render something, you have to prove that you have a Decode-able source, and that after decoding, you can get to something that can be Reified (turned into a tile literal). See MamlReificiation https://github.com/geotrellis/geotrellis-server/pull/21/files#diff-5b01a5168f27c99666c3511fea5538efR13


Does nothing on 1.19.0-beta1

@nikhilkalige can you have a looksee sir?

Whoops lost track of that.. Last time I checked it worked!

For me on the latest clean atom it displays a black screen then freezes the app until it suggests restarting atom...

@Superpencil I havent looked at the codebase for a long long time. So I wouldn't expect it to work..

@nikhilkalige perhaps @simurai can re-use your code for https://github.com/atom/github ?

This is happening to me on 1.21.1

Same with 1.22.1.  I issue the command on a file, select the repo in the second list, then opens a pane with nothing in it.


grep links for test names with dots "." don't get escaped correctly.

Steps to Reproduce:

Create a test whose suite name contains a dot, for example "crud-behavior-basic.html"
Navigate to the test page, for example: http://localhost:5000/test/index.html
Click on the link to "crud-behavior-basic.html"

Expected result:
Link reduces the tests to be run to those inside crud-behavior-basic.html file.
Generated link has: grep=crud-behavior-basic.html
Actual result:
No tests are run.
Generated link has: grep=crud-behavior-basic%5C.html
Related bug: https://github.com/mochajs/mocha/issues/1687
Related PR: https://github.com/mochajs/mocha/pull/1698
It appears the following line of code is overzealous. Replacing the . with %5C
https://github.com/benvinegar/mocha/commit/3166e701a356d472656878ae78e5b819099f95d9#diff-998e3fb668a2094eedccab3e56199e4fR204

Thanks! That definitely fixes it. :+1: :-)

The same problem reared its head again in WebComponentTester. Not sure what changed in mocha to add it back in, but just wanted you all to know.

👋 @btelles I'm not familiar with WebComponentTester and don't see a straightforward way to reproduce this in the latest versions of Polymer. I know it's been a few years, but are you able to provide a standalone reproduction for this issue?
(for context on why you're only now getting pinged, see #5027)

Closing out old issues. If someone does have a repro, please do post back - we'd be happy to take a look!


operator: Handle conflicts in CES update.

If for some reason operator has outdated version of CES it will not be able to update such CES and it will never recover from such state.
This can happen not only due to some othe client updating CES but also when the update from operator succeeds but for some reason api-server does't return OK (it can fail after updating etcd).
Signed-off-by:  Alan Kutniewski<EMAIL_ADDRESS>Fix operator entering broken state when it has outdated version of the CES in the cache.

/assign dlapcevic

\assign dlapcevic

Can you also help to correct the sign-off statement in the commit message?
Signed-off-by:  Alan Kutniewski<EMAIL_ADDRESS>

/assign @dlapcevic

/test

Please rebase against the latest main branch to fix the ci-e2e failures.

All tests passed except flaky K8sUpstreamNetConformance / kubernetes-e2e-net-conformance (ipv4)

/lgtm

K8sUpstreamNetConformance / kubernetes-e2e-net-conformance (ipv4) (pull_request

this job is flaky and not required and does not seem related, is on my backlog and I hope I can get to it as it is causing a lot of troubles

removing vendor team from reviewers list now that the PR has no vendor changes.

/test

Thanks for the review. Can we merge it now?

@squeed @sayboras Can we merge this PR?

/test

@squeed @sayboras Can we merge this PR?

Yup, we'll make it happen.
Should this be backported? If so, back to which version?

It is affecting all Cilium (at least v1.11+).
We can backport it all the way we can.
On the other side it's quite uncommon to hit this issue.

All green!

@alan-kut @squeed This PR cannot be nicely backported to all stable branches as it depends on changes made in #24596, which was introduced recently and was not backported.
I am holding off on backporting this one for now, please advise as to whether we want to backport the dependent PR as well or skip backporting this one.

CiliumEndpointSlice is marked as beta, I don't see a good argument for backporting to 1.12 and 1.11 at this stage. Even 1.13 is a little bit questionable with 1.14 around the corner.


question about miRNA metadata

Hi,
I am moving to use wiki Tables as you suggested in the meeting. If I do this:
# Get metadata
metadata_id = "syn3219876"
metadata_obj = synTableQuery(paste('SELECT * FROM',metadata_id,sep=' '))
ALL_USED_OBJ[length(ALL_USED_OBJ)+1] = METADATA_OBJ;
metadata = metadata_obj@values
row.names(metadata) = metadata$UID

I got an error for duplicated samples UID? is that possible?
Error in `row.names<-.data.frame`(`*tmp*`, value = c("CD34-control-DMSO.139.7.40",  :
  duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘SC11-016DE.134.7.1’, ‘SC11-016DE.416.2.34’, ‘SC12-025EB.181+185+187.5+1+6.1’, ‘SC12-025EB.416.2.29’

One example:
 C4_Cell_Line_ID Replicate ReplicateIncomplete biologicalSampleName Diffname_short                UID run lane index     QC pass_qc
1        SC11-016         A                               SC11-016DE             DE SC11-016DE.134.7.1 134    7     1 FAILED   FALSE
2        SC11-016         A                               SC11-016DE             DE SC11-016DE.134.7.1 134    7     1 FAILED   FALSE
  exclude     ExcludeReason CellDiffState comment SampleType SampleTypeIncomplete SampleTypeNotes ReplicateNotes  ThawDate
1    TRUE replicate-exclude        DE-bad  DE-bad         DE                   DE                                 1/4/2012
2    TRUE replicate-exclude        DE-bad  DE-bad         DE                   DE                                6/21/2013
  ThawDateNotes PassageAtThawNotes DateRNAHarvested RNAHarvestedNotes DatemRNAExtracted DatemRNAExtractedNotes DatemiRNAextracted
1            NA                            3/4/2012                NA         3/15/2012                     NA          3/15/2012
2            NA                           7/26/2013                NA        12/11/2013                     NA         12/10/2013

Is like the same sample twice.
so, should I use this table? is this expected?
thanks!

Glad you noticed that too. I have these two samples as 'duplicates':
SC11-016DE, SC12-025EB
The issue is there are duplicates in the sample processing table. See this query:
Duplicates in Sample Processing Table
It seems these biological samples were processed multiple times (look at the extracted dates). As long as you aren't using columns related to dates of processing, it's safe to just 'unique' them. I'm working on contacting the person in charge to resolve it!

I'm making some notes regarding the metadata here:
https://www.synapse.org/#!Synapse:syn1773109/wiki/93226

I should also note that in your example, both of these failed QC...

I haven't forgotten this; need to match up run number with date to see if everything works out.

Fixed in things tangential to this issue.


fix(less):Add exclude path options to less plugin.

Allow users to configure a less exclude paths so that all the less files can be inside the src/app directory, triggering the build on changes on any less file inside src/app. Throw an error message so that broccoli show a more useful message to the user when less compile fails.
This is how the options will look like:
lessCompiler: { 'paths': ['src/app/less', 'node_modules/bootstrap-less' ], 'exclude-targets' : [ 'src/app/less/**/*.+(less)'] } }); }

Closed as this PR was made obsolete by https://github.com/angular/angular-cli/pull/1455.


Add "The Docker Book"

"The Docker Book is for developers, sysadmins, and DevOps-minded folks who want to implement Docker™ and container-based virtualization." -- from Forword

That book is not free (see the book's website at http://www.dockerbook.com/), so that's a pirated copy (which is also outdated).


gulp.start() & async, any idea?

Hey there,
I have many tasks, each one depends on another one - this is how i make all of them run synchronously one after another in correct order (order is important!).
My gulpfile works on many files from one directory.
I was trying to make it work the same, but on many directories - tried using gulp.start and async plugin.
It does not work ;/
Is there any possibility to run it wanted way?
example:
directory1
task1 on file1 (from directory1)
task2 on file2 (...)
task3 on file3 (...)
directory2
task1 on file1 (from directory2)
task2 on file2 (...)
task3 on file3 (...)
end.
Any idea?

@bestplay9384 this can be achieved with a bunch of gulp plugins (in v3+) and with gulp's own modules in v4+.
Please refer to https://github.com/osscafe/gulp-cheatsheet it is a really great curated list of gulp tasks like the ones you are trying to achieve
Please refer to http://gulpjs.org/recipes/ for more information

Use the run-sequence module with gulp 3.x and use gulp.series/gulp.parallel in gulp 4.  Support questions should be directed to StackOverflow.


PictureSign removes the "Edit Sign" keybind in MultiMC

This may sound like it's not a problem, however due to the default keybind being set to "C", it also breaks any other keybinds (such as zoom) that may be set to C.

I think you should enable debug mode in the PictureSign settings and restart the game.

Unfortunately I'm running into this as well. I don't use MultiMC, but anything that I bind to C doesn't work when I have PictureSign installed. This includes when it is set to Debug mode.

Removed in later versions of the mod.
In older versions, you can change the keybinding after enabling debug mode in the config and restarting your game.


Standard 62443 or Similar

What standard similar with IEC62443?

I'm not sure what you are asking?

NIST framework is in the library

Hello People,
In version v9.2.0 have standard  ISA99-IEC 62443.

Yes.  v9.2.0 have IEC-62443


Support using a custom http-like module

Some people may have an API-compatible module that works like http, with custom behavior or a monkey patch or whatever.
This one-liner allows the caller to provide that module in the options.
var my_http = require('./my_http_module')

request({uri:"http://example.com/", httpModule:my_http}, function(er, resp, body) {
  // ...
})

This strikes me as an obscure or advanced feature, so I skipped documentation and tests :) Let me know if you want some and I'll slog through it.

by some people do you mean you :)

this breaks forwards from http to https and vice versa.

Yes, some people means me. But it serves reasonable and general purpose, with no additional lines of code.
I don't see a failing unit test. What forwards from http and https is it breaking? If I can attach tests confirming this feature and also that the forwards don't break, you think you could merge it then?

here's the issue.
we set this.httpModule to the one we are going to use. before, we didn't check if it was already defined and blew it away each time.
during an HTTP forward the request object is recycled so httpModule will already be set, so if we forward from http to https it will fail.
the only API i could see that might survive a forward would be passing in an alternate map of http modules for the http/https check.

Weird, once I pushed new work, it all became associated with this pull requests. Not sure how I feel about that.
If I'm reading this correctly, the new changes include three things:

Redirection tests, for 301 and 302 responses (no change to the main code)
Tests for fetching over HTTPS (no change to the main code)
Your suggestion of an alternate map of http/https modules, with tests.

Awesome, looks good.


Sign up form

A simple sign up form.
Please assign the issue under hacktoberfest label

Hi.....please assign me this issue

Hello sir,
please assign me this issue

I really want to work on this issue please assign it to me.

Hello, I want to work on this issue please assign this to me.


corber start with android device doesn't overwrite existing app

Seems like expected behaviour.
https://github.com/isleofcode/corber/blob/d9175bf7b2a5b2990bd4dec07d73c5222d572975/lib/targets/android/tasks/install-app-device.js#L9
Needs the -r flag here to do so, like the emulator version:
https://github.com/isleofcode/corber/blob/d9175bf7b2a5b2990bd4dec07d73c5222d572975/lib/targets/android/tasks/install-app-emulator.js#L9

Thanks - we were not really thinking through an app already being installed. I'll work on a patch this week.

We're targeting a release for next week - however this is fixed on master if you are blocked right now.

No rush, can just uninstall manually for now, thanks!

Hmm, -r still doesn't work to overwrite the app store version of the app, you get INSTALL_FAILED_UPDATE_INCOMPATIBLE complaining about the signatures not matching. You have to adb uninstall it first, but this is probably beyond what corber should be doing.