zsh-autosuggestions doesn't work until the second prompt

When I have a new shell, I have to do a dummy CTL-C for auto completions to start working.
ZPLG_HOME=$HOME/.zinit

if [[ ! -f $ZPLG_HOME/bin/zinit.zsh ]]; then
    git clone https://github.com/zdharma/zinit $ZPLG_HOME/bin
    zcompile $ZPLG_HOME/bin/zinit.zsh
fi

### Added by zinit's installer
source "$HOME/.zinit/bin/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
### End of zinit installer's chunk

# A.
setopt promptsubst

# B.
zinit ice wait notify
zinit snippet OMZ::lib/git.zsh

# C.
zinit ice wait notify
zinit snippet OMZ::plugins/git/git.plugin.zsh

# D.
PS1="LOADING ➜  ~ " # provide a nice prompt till the theme loads
zinit ice wait'!' notify
zinit snippet OMZ::themes/robbyrussell.zsh-theme

# zplugin ice wait"0" notify atload"_zsh_autosuggest_start"
zplugin load zsh-users/zsh-autosuggestions

zinit ice wait"!1" notify atinit"ZINIT[COMPINIT_OPTS]=-C; zpcompinit; zpcdreplay"
zinit load zdharma/fast-syntax-highlighting

zinit ice wait blockf atpull'zinit creinstall -q .' notify
zinit load zsh-users/zsh-completions

zinit ice notify
zinit snippet PZT::modules/history/init.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/colorize/colorize.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/virtualenv/virtualenv.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::lib/bzr.zsh

zinit ice wait notify
zinit snippet OMZ::lib/clipboard.zsh

zinit ice wait notify
zinit snippet OMZ::lib/clipboard.zsh

zinit ice wait notify
zinit snippet OMZ::lib/compfix.zsh

zinit ice wait notify
zinit snippet OMZ::lib/completion.zsh

zinit ice wait notify
zinit snippet OMZ::lib/correction.zsh

zinit ice wait notify
zinit snippet OMZ::lib/diagnostics.zsh

zinit ice wait notify
zinit snippet OMZ::lib/directories.zsh

zinit ice wait notify
zinit snippet OMZ::lib/functions.zsh

zinit ice wait notify
zinit snippet OMZ::lib/git.zsh

zinit ice wait notify
zinit snippet OMZ::lib/grep.zsh

zinit ice wait notify
zinit snippet OMZ::lib/history.zsh

zinit ice wait notify
zinit snippet OMZ::lib/key-bindings.zsh

zinit ice wait notify
zinit snippet OMZ::lib/misc.zsh

zinit ice wait notify
zinit snippet OMZ::lib/nvm.zsh

zinit ice wait notify
zinit snippet OMZ::lib/prompt_info_functions.zsh

zinit ice wait notify
zinit snippet OMZ::lib/spectrum.zsh

zinit ice wait notify
zinit snippet OMZ::lib/termsupport.zsh

zinit ice wait notify
zinit snippet OMZ::lib/theme-and-appearance.zsh

zinit ice wait blockf atpull'zinit creinstall -q .' notify
zinit load lukechilds/zsh-better-npm-completion

zinit ice notify if'[[ -r $HOME/.zsh_alias ]]'
zinit snippet $HOME/.zsh_alias

zinit ice notify if'[[ -r $HOME/.zsh_local ]]'
zinit snippet $HOME/.zsh_local

zinit ice notify if'[[ -r $HOME/.zsh_functions ]]'
zinit snippet $HOME/.zsh_functions

# zinit ice wait notify if'[[ -e $HOME/.iterm2_shell_integration.zsh ]]'
# zinit snippet $HOME/.iterm2_shell_integration.zsh

# export NVM_DIR="$HOME/.nvm"
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
# [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# export WORKON_CWD=0

You have the ice-command for the autosuggestions commented out. Try with the new for-syntax:
zinit wait lucid atload"!_zsh_autosuggest_start" for zsh-users/zsh-autosuggestions

I'll also share a snippet of how to load syntax-highlighting and other plugins with the autosuggestions, as users are often not aware that autosuggestions should be loaded last:
zinit wait lucid for \
 atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
    zdharma/fast-syntax-highlighting \
 blockf \
    zsh-users/zsh-completions \
 atload"!_zsh_autosuggest_start" \
    zsh-users/zsh-autosuggestions

Hmm, no luck here. still have the same issue unfortunately. only thing that stands out is when using the second approach you listed, the prompt seems stuck, displaying
➜  ~
Loaded lukechilds/zsh-better-npm-completion

indefinitely. if I ctrl-c though, that goes away, and everything starts working with full completion. however before that, it does the same thing of not functioning.

This is weird. You've written that there are no suggestions in the first prompt and it was consistent with the zshrc that you've gave – it had the atload'' hook-ice commented. Now what you report seems weird and little inconsistent – still no suggestions despite the atload'' hook and a weird prompt stuck..… Could you share some more information?

Yeah, so both before opening the issue and after trying your suggestions, I was seeing behavior where if I open a new terminal, I don't get the suggestions until the second prompt. I recorded a clip to see if that helps to explain what I'm seeing. https://imgur.com/a/Ltzlp5o
Something else I've noticed through tinkering some is that PS1="LOADING ➜  ~ " seems to be popping in after a few seconds of using the shell, and then not going away

current rc
ZPLG_HOME=$HOME/.zinit

if [[ ! -f $ZPLG_HOME/bin/zinit.zsh ]]; then
    git clone https://github.com/zdharma/zinit $ZPLG_HOME/bin
    zcompile $ZPLG_HOME/bin/zinit.zsh
fi

### Added by zinit's installer
source "$HOME/.zinit/bin/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
### End of zinit installer's chunk

# A.
setopt promptsubst

# B.
zinit ice wait notify
zinit snippet OMZ::lib/git.zsh

# C.
zinit ice wait notify
zinit snippet OMZ::plugins/git/git.plugin.zsh

# D.
PS1="LOADING ➜  ~ " # provide a nice prompt till the theme loads
zinit ice wait'!' notify
zinit snippet OMZ::themes/robbyrussell.zsh-theme

zinit wait lucid atload"!_zsh_autosuggest_start" for zsh-users/zsh-autosuggestions

# zinit wait lucid for \
#  atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
#     zdharma/fast-syntax-highlighting \
#  blockf \
#     zsh-users/zsh-completions \
#  atload"!_zsh_autosuggest_start" \
#     zsh-users/zsh-autosuggestions

zinit ice notify
zinit snippet PZT::modules/history/init.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/colorize/colorize.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/virtualenv/virtualenv.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh

zinit ice wait notify
zinit snippet OMZ::lib/bzr.zsh

zinit ice wait notify
zinit snippet OMZ::lib/clipboard.zsh

zinit ice wait notify
zinit snippet OMZ::lib/clipboard.zsh

zinit ice wait notify
zinit snippet OMZ::lib/compfix.zsh

zinit ice wait notify
zinit snippet OMZ::lib/completion.zsh

zinit ice wait notify
zinit snippet OMZ::lib/correction.zsh

zinit ice wait notify
zinit snippet OMZ::lib/diagnostics.zsh

zinit ice wait notify
zinit snippet OMZ::lib/directories.zsh

zinit ice wait notify
zinit snippet OMZ::lib/functions.zsh

zinit ice wait notify
zinit snippet OMZ::lib/git.zsh

zinit ice wait notify
zinit snippet OMZ::lib/grep.zsh

zinit ice wait notify
zinit snippet OMZ::lib/history.zsh

zinit ice wait notify
zinit snippet OMZ::lib/key-bindings.zsh

zinit ice wait notify
zinit snippet OMZ::lib/misc.zsh

zinit ice wait notify
zinit snippet OMZ::lib/nvm.zsh

zinit ice wait notify
zinit snippet OMZ::lib/prompt_info_functions.zsh

zinit ice wait notify
zinit snippet OMZ::lib/spectrum.zsh

zinit ice wait notify
zinit snippet OMZ::lib/termsupport.zsh

zinit ice wait notify
zinit snippet OMZ::lib/theme-and-appearance.zsh

zinit ice wait blockf atpull'zinit creinstall -q .' notify
zinit load lukechilds/zsh-better-npm-completion

zinit ice notify if'[[ -r $HOME/.zsh_alias ]]'
zinit snippet $HOME/.zsh_alias

zinit ice notify if'[[ -r $HOME/.zsh_local ]]'
zinit snippet $HOME/.zsh_local

zinit ice notify if'[[ -r $HOME/.zsh_functions ]]'
zinit snippet $HOME/.zsh_functions

# zinit ice wait notify if'[[ -e $HOME/.iterm2_shell_integration.zsh ]]'
# zinit snippet $HOME/.iterm2_shell_integration.zsh

# export NVM_DIR="$HOME/.nvm"
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
# [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

# export WORKON_CWD=0

times
Plugin loading moments:
 -460 ms - PZT::modules/history/init.zsh
 -345 ms - %HOME/.zsh_alias
   -8 ms - %HOME/.zsh_local
   -4 ms - %HOME/.zsh_functions
   14 ms - OMZ::lib/git.zsh
   70 ms - OMZ::plugins/git/git.plugin.zsh
   78 ms - OMZ::themes/robbyrussell.zsh-theme
  190 ms - zsh-users/zsh-autosuggestions
  199 ms - OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh
  207 ms - OMZ::plugins/colorize/colorize.plugin.zsh
  214 ms - OMZ::plugins/virtualenv/virtualenv.plugin.zsh
  229 ms - OMZ::plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
  237 ms - OMZ::lib/bzr.zsh
  244 ms - OMZ::lib/clipboard.zsh
  251 ms - OMZ::lib/clipboard.zsh
  259 ms - OMZ::lib/compfix.zsh
  270 ms - OMZ::lib/completion.zsh
  278 ms - OMZ::lib/correction.zsh
  285 ms - OMZ::lib/diagnostics.zsh
  293 ms - OMZ::lib/directories.zsh
  302 ms - OMZ::lib/functions.zsh
  309 ms - OMZ::lib/git.zsh
  323 ms - OMZ::lib/grep.zsh
  331 ms - OMZ::lib/history.zsh
  338 ms - OMZ::lib/key-bindings.zsh
  349 ms - OMZ::lib/misc.zsh
  357 ms - OMZ::lib/nvm.zsh
  364 ms - OMZ::lib/prompt_info_functions.zsh
  374 ms - OMZ::lib/spectrum.zsh
  382 ms - OMZ::lib/termsupport.zsh
  403 ms - OMZ::lib/theme-and-appearance.zsh
  413 ms - lukechilds/zsh-better-npm-completion
Total: 0.703 sec

OK, thanks. Autosuggestions are being loaded early – good. Could you show also: zi report zsh-users/zsh-autosuggestions?

OK, thanks. Autosuggestions are being loaded early – good. Could you show also: zi report zsh-users/zsh-autosuggestions?

OK, thanks. Autosuggestions are being loaded early – good. Could you show also: zi report zsh-users/zsh-autosuggestions?

eport for zsh-users/zsh-autosuggestions plugin
-----------------------------------------------
Source zsh-autosuggestions.plugin.zsh (reporting enabled)
Zle -N autosuggest-fetch _zsh_autosuggest_widget_fetch
Note: a new widget created via zle -N: `autosuggest-fetch'
Zle -N autosuggest-suggest _zsh_autosuggest_widget_suggest
Note: a new widget created via zle -N: `autosuggest-suggest'
Zle -N autosuggest-accept _zsh_autosuggest_widget_accept
Note: a new widget created via zle -N: `autosuggest-accept'
Zle -N autosuggest-clear _zsh_autosuggest_widget_clear
Note: a new widget created via zle -N: `autosuggest-clear'
Zle -N autosuggest-execute _zsh_autosuggest_widget_execute
Note: a new widget created via zle -N: `autosuggest-execute'
Zle -N autosuggest-enable _zsh_autosuggest_widget_enable
Note: a new widget created via zle -N: `autosuggest-enable'
Zle -N autosuggest-disable _zsh_autosuggest_widget_disable
Note: a new widget created via zle -N: `autosuggest-disable'
Zle -N autosuggest-toggle _zsh_autosuggest_widget_toggle
Note: a new widget created via zle -N: `autosuggest-toggle'
Zle -N autosuggest-capture-completion _zsh_autosuggest_capture_completion_widget
Note: a new widget created via zle -N: `autosuggest-capture-completion'
Autoload add-zsh-hook with options -U -z
Autoload _zsh_autosuggest_start
Note: Starting to track the atload'!…' ice…
 I didn't yet try running your zshrc, however, could you double-check?

BTW. You know that there's the lucid ice that will silence the Loaded … under-prompt messages?

Yeah, those I turned on for debugging help. Unfortunately same issue, although I saw something weird, which I'm attaching, where if I hit backspace something is kinda working. https://imgur.com/a/KpSpiAc

Interesting that on backspace the suggestion does appear. It might be something involving internals of zsh-autosuggestions. I must find a time slot to run your zshrc, hopefully, the problem will reproduce. If not then will be a remote debugging possible, where I'll send you some instructions and patches and ask for the results?

Yeah, I can do that

Can you try the following config? It should do the same thing as yours but faster and without triggering the bug you are running into. It's also quite a bit simpler.
# https://github.com/romkatv/powerlevel10k#instant-prompt
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

ZPLG_HOME=~/.zinit
if [[ ! -f $ZPLG_HOME/bin/zinit.zsh ]]; then
  git clone https://github.com/zdharma/zinit $ZPLG_HOME/bin
  zcompile $ZPLG_HOME/bin/zinit.zsh
fi
source ~/.zinit/bin/zinit.zsh

ZSH_AUTOSUGGEST_MANUAL_REBIND=1  # make prompt faster
DISABLE_MAGIC_FUNCTIONS=true     # make pasting into terminal faster

# Load Powerlevel10k and make it look like robbyrussell.
zinit ice depth=1 atload"source config/p10k-robbyrussell.zsh"
zinit light romkatv/powerlevel10k

zinit snippet PZT::modules/history/init.zsh
zinit snippet OMZ::lib/git.zsh
zinit snippet OMZ::plugins/git/git.plugin.zsh
zinit snippet OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh
zinit snippet OMZ::plugins/colorize/colorize.plugin.zsh
zinit snippet OMZ::plugins/virtualenv/virtualenv.plugin.zsh
zinit snippet OMZ::plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
zinit snippet OMZ::lib/bzr.zsh
zinit snippet OMZ::lib/clipboard.zsh
zinit snippet OMZ::lib/clipboard.zsh
zinit snippet OMZ::lib/compfix.zsh
zinit snippet OMZ::lib/completion.zsh
zinit snippet OMZ::lib/correction.zsh
zinit snippet OMZ::lib/diagnostics.zsh
zinit snippet OMZ::lib/directories.zsh
zinit snippet OMZ::lib/functions.zsh
zinit snippet OMZ::lib/git.zsh
zinit snippet OMZ::lib/grep.zsh
zinit snippet OMZ::lib/history.zsh
zinit snippet OMZ::lib/key-bindings.zsh
zinit snippet OMZ::lib/misc.zsh
zinit snippet OMZ::lib/nvm.zsh
zinit snippet OMZ::lib/prompt_info_functions.zsh
zinit snippet OMZ::lib/spectrum.zsh
zinit snippet OMZ::lib/termsupport.zsh
zinit snippet OMZ::lib/theme-and-appearance.zsh

zinit light zsh-users/zsh-autosuggestions
zinit light lukechilds/zsh-better-npm-completion

[[ -r $HOME/.zsh_alias     ]] && zinit snippet $HOME/.zsh_alias
[[ -r $HOME/.zsh_local     ]] && zinit snippet $HOME/.zsh_local
[[ -r $HOME/.zsh_functions ]] && zinit snippet $HOME/.zsh_functions

autoload -Uz compinit
compinit
zinit cdreplay -q

Or the following, even simpler config utilizing the for-syntax :)
# https://github.com/romkatv/powerlevel10k#instant-prompt
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

ZPLG_HOME=~/.zinit
if [[ ! -f $ZPLG_HOME/bin/zinit.zsh ]]; then
  git clone https://github.com/zdharma/zinit $ZPLG_HOME/bin
  zcompile $ZPLG_HOME/bin/zinit.zsh
fi
source ~/.zinit/bin/zinit.zsh

ZSH_AUTOSUGGEST_MANUAL_REBIND=1  # make prompt faster
DISABLE_MAGIC_FUNCTIONS=true     # make pasting into terminal faster

# Load Powerlevel10k and make it look like robbyrussell.
zinit depth=1 atload="source config/p10k-robbyrussell.zsh" for romkatv/powerlevel10k

zinit wait lucid for \
        OMZ::lib/git.zsh \
        OMZ::lib/bzr.zsh \
        OMZ::lib/clipboard.zsh \
        OMZ::lib/clipboard.zsh \
        OMZ::lib/compfix.zsh \
        OMZ::lib/completion.zsh \
        OMZ::lib/correction.zsh \
        OMZ::lib/diagnostics.zsh \
        OMZ::lib/directories.zsh \
        OMZ::lib/functions.zsh \
        OMZ::lib/git.zsh \
        OMZ::lib/grep.zsh \
        OMZ::lib/history.zsh \
        OMZ::lib/key-bindings.zsh \
        OMZ::lib/misc.zsh \
        OMZ::lib/nvm.zsh \
        OMZ::lib/prompt_info_functions.zsh \
        OMZ::lib/spectrum.zsh \
        OMZ::lib/termsupport.zsh \
        OMZ::lib/theme-and-appearance.zsh \
        OMZ::plugins/git/git.plugin.zsh \
        OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh \
        OMZ::plugins/colorize/colorize.plugin.zsh \
        OMZ::plugins/virtualenv/virtualenv.plugin.zsh \
        OMZ::plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh \
        PZT::modules/history/init.zsh

zinit wait lucid for \
    atload'!_zsh_autosuggest_start' zsh-users/zsh-autosuggestions \
                                    lukechilds/zsh-better-npm-completion

[[ -r $HOME/.zsh_alias     ]] && zinit snippet $HOME/.zsh_alias
[[ -r $HOME/.zsh_local     ]] && zinit snippet $HOME/.zsh_local
[[ -r $HOME/.zsh_functions ]] && zinit snippet $HOME/.zsh_functions

autoload -Uz compinit
compinit
zinit cdreplay -q

Does it reproduce the bug?

Or the following, even simpler config utilizing the for-syntax :)

This isn't simpler at all. This is now an extremely complex config. If the simple config works, there is no reason to add this complexity.

For me it is simple… It doesn't have the snippet redundancy – it most plainly lists the snippets to source. The little logic that's behind for-syntax is IMO helping – it's intellectualizing the config, making it a nice, condensed thing instead of a bloated, boring one…

IMO the for syntax indeed makes this config more complex and less readable but I don't feel strongly about. it. I was referring to deferred initialization. Those wait ices turn a simple and robust config into extremely complex and brittle. If the simple config works, there is no reason to add this complexity and expose oneself to the myriad ways in which deferred loading can break zsh initialization.

Hmm, so more strangeness. with your config, first prompt doesn't work still, but running an arbitrary command (e.g. ls) to get to a second prompt works. At this point must be something on my end, but racking my brain as to what it could be. Any weird caches that might need to be cleared out when trying the config you provided?

@cinnamennen Which config have you tried? Can you link to the comment from which you took it?

Specifically https://github.com/zdharma/zinit/issues/268#issuecomment-591407762

Specifically #268 (comment)

Try the config from https://github.com/zdharma/zinit/issues/268#issuecomment-591285331 instead.

That works perfectly!

That works perfectly!

Great!
You can try removing atload"source config/p10k-robbyrussell.zsh". It'll give you much better prompt. See https://github.com/romkatv/powerlevel10k.

Could you check one thing? I.e.: does commenting the following line:
ZSH_AUTOSUGGEST_MANUAL_REBIND=1   # make prompt faster

make the problem go away?
It's good that without Turbo there's no issue, however, this has a little drawback – the autosuggestions will be loaded possibly quite late. So situations may happen when a new shell is quickly opened and a command is quickly started to be entered and there will be no suggestion. I did encounter this when I was loading F-Sy-H and suggestions quite late – now they are my first Turbo plugins.

Could you check one thing? I.e.: does commenting the following line:
ZSH_AUTOSUGGEST_MANUAL_REBIND=1   # make prompt faster

make the problem go away?

FWIW, this will make prompt twice as slow. On every command there will be extra 10 milliseconds of latency.

this has a little drawback – the autosuggestions will be loaded possibly quite late.

I don't think so. Unless you are using the words "will" and "late" in inconventional sense.
I think @cinnamennen can see whether zsh starts fast or slow.

Without ZSH_AUTOSUGGEST_MANUAL_REBIND=1 the shell is a bit slower, but still works (no weird issues with autosuggestions) either way

# https://github.com/romkatv/powerlevel10k#instant-prompt
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

ZPLG_HOME=~/.zinit
if [[ ! -f $ZPLG_HOME/bin/zinit.zsh ]]; then
  git clone https://github.com/zdharma/zinit $ZPLG_HOME/bin
  zcompile $ZPLG_HOME/bin/zinit.zsh
fi
source ~/.zinit/bin/zinit.zsh

# ZSH_AUTOSUGGEST_MANUAL_REBIND=1  # make prompt faster
DISABLE_MAGIC_FUNCTIONS=true     # make pasting into terminal faster

# Load Powerlevel10k and make it look like robbyrussell.
zinit depth=1 atload="source config/p10k-robbyrussell.zsh" for romkatv/powerlevel10k

zinit wait lucid for \
        OMZ::lib/git.zsh \
        OMZ::lib/bzr.zsh \
        OMZ::lib/clipboard.zsh \
        OMZ::lib/clipboard.zsh \
        OMZ::lib/compfix.zsh \
        OMZ::lib/completion.zsh \
        OMZ::lib/correction.zsh \
        OMZ::lib/diagnostics.zsh \
        OMZ::lib/directories.zsh \
        OMZ::lib/functions.zsh \
        OMZ::lib/git.zsh \
        OMZ::lib/grep.zsh \
        OMZ::lib/history.zsh \
        OMZ::lib/key-bindings.zsh \
        OMZ::lib/misc.zsh \
        OMZ::lib/nvm.zsh \
        OMZ::lib/prompt_info_functions.zsh \
        OMZ::lib/spectrum.zsh \
        OMZ::lib/termsupport.zsh \
        OMZ::lib/theme-and-appearance.zsh \
        OMZ::plugins/git/git.plugin.zsh \
        OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh \
        OMZ::plugins/colorize/colorize.plugin.zsh \
        OMZ::plugins/virtualenv/virtualenv.plugin.zsh \
        OMZ::plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh \
        PZT::modules/history/init.zsh

zinit wait lucid for \
    atload'!_zsh_autosuggest_start' zsh-users/zsh-autosuggestions \
                                    lukechilds/zsh-better-npm-completion

[[ -r $HOME/.zsh_alias     ]] && zinit snippet $HOME/.zsh_alias
[[ -r $HOME/.zsh_local     ]] && zinit snippet $HOME/.zsh_local
[[ -r $HOME/.zsh_functions ]] && zinit snippet $HOME/.zsh_functions

autoload -Uz compinit
compinit
zinit cdreplay -q

does not work correctly

So, still no autosuggestions at the first prompt?

BTW, you can write the conditional loadings in the following way with the for-syntax:
zinit if'[[ -r $HOME/.zsh_alias ]]' is-snippet for $HOME/.zsh_alias
zinit if'[[ -r $HOME/.zsh_local ]]' is-snippet for $HOME/.zsh_local
zinit if'[[ -r $HOME/.zsh_functions ]]' is-snippet for $HOME/.zsh_functions

BTW, you can write the conditional loadings in the following way with the for-syntax

What are the advantages?

correct, no autosuggestions on the first prompt with https://github.com/zdharma/zinit/issues/268#issuecomment-591985475. Using the other config I was able to get everything working however

BTW. The for-syntax can be actually used in an even more effective way:
zinit is-snippet for \
         if'[[ -r $HOME/.zsh_alias ]]'     $HOME/.zsh_alias \
         if'[[ -r $HOME/.zsh_local ]]'     $HOME/.zsh_local \
         if'[[ -r $HOME/.zsh_functions ]]' $HOME/.zsh_functions

What are the advantages?

@romkatv, In my opinion, it brings an additional intellectual property for the zshrc, because it replaces the regular, boring on-foot-methods with specialized, novel automatic ones. Also, when I look at such code, I feel that there will be a mistake less likely because of the DSL (Domain-Specific Language) layer that adds an additional barrier against mistakes.

The Roman's config works but it doesn't leverage Turbo.

That config works and it's super fast and doesn't use subtle and error-prone technique of code reordering and deferred loading.

however with Turbo, you can push this experience even more

Let's ask @cinnamennen if he feels that anything needs to be faster.

What does this code output to you?
avg-time() {
    float sum=0
    integer count=${1:-10}
    repeat $count { time zsh -ic exit } |& \
        while IFS='' read line; do
	    sum+=${${${line% total}##* }//,/.}
        done
    print $(( sum / count ))
}
avg-time 10

Keep in mind that the output of this code is almost irrelevant for the end-user. If you make it 10 times faster or 10 times slower, the user won't notice a difference.

I disagree that the wait ice is error-prone.

Keep in mind that the output of this code is almost irrelevant for the end-user. If you make it 10 times faster or 10 times slower, the user won't notice a difference.

Isn't it that the difference between 100 ms and 1 s would mean having suggestions and syntax-highlighting after 1-second fron the (instant) prompt?

Correct. It makes no practical difference. If you take the current working config of @cinnamennen and make zshrc load 10 times faster without telling them, they won't notice a difference. If you make it load 10 times slower, they won't notice a difference.
This is almost a moot point though. @cinnamennen's problem is solved. They don't have any issues (performance or otherwise) with zsh.

Well IMO the 1-second delay in suggestions and/or s-h is a big problem, and @cinnamennen might also come to this fact, after enough time with occasional micro-rage and disappointments…

Well IMO the 1-second delay in suggestions and/or s-h is a big problem

Just to avoid any confusion, @cinnamennen doesn't have any 1 second delays in their setup.
Look, zinit is a nice plugin manager and @cinnamennen is apparently happy using it. It doesn't seem like a good idea to pressure a happy user into enabling an extremely complex and error prone feature that will provide zero benefit.

@cinnamennen might also come to this fact, after enough time with occasional micro-rage and disappointments…

You keep trying to convince @cinnamennen that there is something wrong with their config (there isn't). It's not nice.

I'm not convincing anybody. I've told @cinnamennen with appropriate, mild tone "It's just fine to do so, as the instant prompt is providing a great experience, however with Turbo, you can push this experience even more " which is a kind of invitation to explore Zsh and Zinit more, and now I'm waiting for a response. It's you that trying to convince – with anything but mild tone by saying "an extremely complex and error prone feature that will provide zero benefit." that Turbo is… well you wrote what you wrote.

I support @psprint here, not because I think anyone is right or wrong, but because I'd like to encourage him to keep doing the great work.
I had the same issue here and I was able to work around by removing the wait for OMZ snippets. I keep the wait ice for everything else.

This thread is kind of old so water-under-the-bridge and all...
I just wanted to say that I thought @psprint made a sound, non-pressuring invitation to checkout using wait and that the language used in this thread could have been much less aggressive and more productive. If I had been on the receiving end of this thread I would have felt much less motivated to support this project and I hope nobody wants @psprint to feel that way 😃 .
Anyway, given that this thread seems to want to evolve into a design discussion and my mind is currently churning I was hoping to share my thoughts. If this is not the appropriate place to do so (and I don't think it is) I'm happy to this move it to a separate issue or to some alternate location. In all cases, I hope my feedback is received as constructive and reflecting only my subjective opinions of the design decisions and potential directions the project could go.
for syntax
I like that the for syntax allows me to reduce my code footprint and consolidate redundant ice declarations into a single line. That said, I prefer the use of multi-line declarations like in many of the examples but I find that the line continuation escape character \ is  ugly/distracting when trying to read through the loading order of my for-style declarations, especially on a 4k monitor. Also, I could just be getting old ;-P
Personally, I find using an array a little more appealing and it seems to work just fine with the latest release. The following is an excerpt from my zshrc for programs I want zinit to manage:
programs=(
	atclone'./bootstrap && ./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	autotools-mirror/automake

	id-as'autoconf' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.xz

	id-as'gettext' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	http://ftp.gnu.org/gnu/gettext/gettext-0.19.7.tar.xz

	id-as'texinfo' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	http://ftp.gnu.org/gnu/texinfo/texinfo-6.7.tar.xz

	id-as'wget' extract'!' atclone'./configure --prefix=$ZPFX --with-ssl=openssl'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/gnu/wget/wget-latest.tar.gz

        id-as'coreutils' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz

        id-as'findutils' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/pub/gnu/findutils/findutils-4.7.0.tar.xz

        id-as'kubectl' pick'kubectl' atload'!source <(kubectl completion zsh)'
	https://storage.googleapis.com/kubernetes-release/release/v1.18.5/bin/darwin/amd64/kubectl

        id-as'fzf' pick'$ZPFX/bin/(fzf|fzf-tmux)' atclone'$XDG_CONFIG_HOME/fzf/setup.zsh'
        atpull'%atclone' make='PREFIX=$ZPFX install'
        multisrc'shell/key-bindings.zsh $XDG_CONFIG_HOME/fzf/fzf.zsh'
	junegunn/fzf
)

zinit as'program' for "${programs[@]}"

I like how using an array removes the \'s but it would be nice if there was a clean way to inline my plugin loading order so I can declare all my shared ice declarations first AND not have a bunch of line continuations all over the place. A crude way to allow this would be to potentially allow the argument after for be a HEREDOC. Building on the same example I imagine it would look something like this:
zinit as'program' for << PROGRAMS
	atclone'./bootstrap && ./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	autotools-mirror/automake

	id-as'autoconf' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.xz

	id-as'gettext' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	http://ftp.gnu.org/gnu/gettext/gettext-0.19.7.tar.xz

	id-as'texinfo' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	http://ftp.gnu.org/gnu/texinfo/texinfo-6.7.tar.xz

	id-as'wget' extract'!' atclone'./configure --prefix=$ZPFX --with-ssl=openssl'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/gnu/wget/wget-latest.tar.gz

        id-as'coreutils' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz

        id-as'findutils' extract'!' atclone'./configure --prefix=$ZPFX'
        atpull'%atclone' make'install'
	https://ftp.gnu.org/pub/gnu/findutils/findutils-4.7.0.tar.xz

        id-as'kubectl' pick'kubectl' atload'!source <(kubectl completion zsh)'
	https://storage.googleapis.com/kubernetes-release/release/v1.18.5/bin/darwin/amd64/kubectl

        id-as'fzf' pick'$ZPFX/bin/(fzf|fzf-tmux)' atclone'$XDG_CONFIG_HOME/fzf/setup.zsh'
        atpull'%atclone' make='PREFIX=$ZPFX install'
        multisrc'shell/key-bindings.zsh $XDG_CONFIG_HOME/fzf/fzf.zsh'
	junegunn/fzf
PROGRAMS

And yet ANOTHER thought I had would be to iterate on the for paradigm entirely. This one might seem a little wonky and lacks a good BNF definition but hopefully you get the idea. Similar to how classic syntax ice declarations work I think zinit could build a sort of tree structure of commands that do not get invoked until some closing command is run. This idea draws similarities with how vim-plug loads plugins if you are familiar. That said, I imagine this could appear more complicated in nested declarations but I don't think that keeps folks from trying to flatten it out or separate declarations in any way they choose. Using the same declarations as before I think that this form could look something like this:
zbegin as'program'

      zbegin atpull'%atclone' make'install'

            zbegin extract'!'

                  zbegin atclone'./configure --prefix=$ZPFX'

                        zinit id-as'autoconf' https://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.xz
                        zinit id-as'gettext' http://ftp.gnu.org/gnu/gettext/gettext-0.19.7.tar.xz
                        zinit id-as'texinfo' http://ftp.gnu.org/gnu/texinfo/texinfo-6.7.tar.xz
                        zinit id-as'coreutils' https://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
                        zinit id-as'findutils' https://ftp.gnu.org/pub/gnu/findutils/findutils-4.7.0.tar.xz

                  zend

                  zinit id-as'wget' atclone'./configure --prefix=$ZPFX --with-ssl=openssl' \
                  https://ftp.gnu.org/gnu/wget/wget-latest.tar.gz

            zend

            zinit atclone'./bootstrap && ./configure --prefix=$ZPFX' autotools-mirror/automake

      zend

      zinit id-as'kubectl' pick'kubectl' atload'!source <(kubectl completion zsh)' \
      https://storage.googleapis.com/kubernetes-release/release/v1.18.5/bin/darwin/amd64/kubectl

      zinit id-as'fzf' pick'$ZPFX/bin/(fzf|fzf-tmux)' atclone'$XDG_CONFIG_HOME/fzf/setup.zsh' \
            atpull'%atclone' make='PREFIX=$ZPFX install' \
            multisrc'shell/key-bindings.zsh $XDG_CONFIG_HOME/fzf/fzf.zsh' \
            junegunn/fzf
zend

waitlazy loading
Earlier in the thread it was suggested that wait is overly-complicated and error-prone; I think that statement is inaccurate and really meant to express something else. First, I strongly disagree that wait is error prone. All it does is provide a way to do time-based lazy loading and I think that it does that job very well and without error. What I think what was trying to be expressed is that mixing and matching eager loading and lazy loading makes it slightly more difficult to intuit the loading order of plugins. Unfortunately, order matters due to the nature of zsh plugins and how some plugins can conflict with one another. However, the complexity of loading order exists regardless of which plugin manager you are using or whether or not you are eager loading or lazy loading a plugin.
I think zinit has a good collection of tools to help debug issues where plugins clobber one another. For example, both fzf and OMZ::plugins/vi-mode have bindings to ^R.  This isn't a big deal if you know OMZ::plugins/vi-mode binds to ^R; there are ways to fix that. But what if you don't know that's the plugin that's clobbering your expected key-binding? You can do some debugging using times, report, bindkeys, etc.. but it's not an immediate way to figure out which plugin(s) are interfering with one another or have some overlap in some way. I'm not nearly smart enough to propose how to solve that problem (or possibly even describe it) but my gut feel is that some kind of collision detection feature could be created that provides a graph or map of which plugins "clobber" each other given a particular thing you are trying to debug. E.g. - zinit explain keybind '^R'
Thanks!
I hope you appreciate my feedback. I'm happy to help out when and where I can if you like any of these ideas and thank you for maintaining such a useful tool. Have a great day!

So I am facing the same issue that autosuggestion not loading on the first prompt. I tried every combination but it didn't work. Has anyone found a solution or a fix?

me too.


Emit switch bytecode when matching unions of a switchable type

Fixes #20410

The CLA check is failing, would you mind signing the CLA at https://www.lightbend.com/contribute/cla/scala ?

The CLA check is failing, would you mind signing the CLA at https://www.lightbend.com/contribute/cla/scala ?

👍 Signed


Fix a typo in image-carousel.js (missing / before "/pages")

Fix a typo in image-carousel.js (missing "/" before "/pages")
Before / After

@auniverseaway I don't have access to "Request a review" so I'm pinging you here instead :D


Fix a bug with has_many and PSQL arrays.

If the value responds to map with out using Oj to parse the JSON, then
use map to convert each value into the correct type.
Adding tests to verify this functionality.

:+1:


Remove version: DominikReichl.KeePass version 2.57.1

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

Close with reason: URL works;


Update for CWP-55790

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #
Test URLs:

Before: https://main--prisma-cloud-docs--hlxsites.hlx.page/
After: https://--prisma-cloud-docs--hlxsites.hlx.page/
Worker: https://prisma-cloud-docs-production.adobeaem.workers.dev/?branch=

Hi @jenjoe22 Just noticed 2 things:

In a few instances for images you have missed adding the graphic path folder.
You need to add a syntax to text for the link.

Thanks Anagha. Resolved the issues you raised.


Rename --extVar to --ext-str

For consistency with other options (hyphenated, not camel case), and
the upstream jsonnet tool.

Fyi @GauntletWizard and PR #28

Thanks for the heads up; I whiffed when writing. Thankfully, I'm only using the -V form.


proton-ge-bin: init at init at 9-1

Description of changes
Seeing extraCompatPackages is now a steam module option as of #293564, I think it's nice to put proton-ge-custom in nixpkgs instead of forcing to get them from random NUR repositories or package locally.
Tested on x86_64-linux. Haven't got any other hardware to test on right now.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

As soon as this is merged, I can also add the stuff to build from source.
Though, I really don't know if this is needed, this would be only for custom upstream WINE patches until VALVe pushes them.

Closed in favor of #296009


Update service-fabric-reliable-actors-enumerate.md

Since there exists a sample for querying all the actors in a given partition, I've added an example for querying all actors across all partitions so that users can stay in Microsoft's docs for this information instead of looking elsewhere (e.g. StackOverflow) for the same.

@WhitWaldo : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@sukanyamsft - If you approve the proposed changes, we might need to move the commits to the private repo so the article can benefit from automated checks and staging.
#label:"aq-pr-triaged"

@ShannonLeavitt I'm the maintainer for these docs, but I can't sign-off because I'm not assigned. Could you merge this for me?
I updated the author fields on the Service Fabric docs to avoid this confusion in the future.
Thanks!

@Court72 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Add --onsigint handler, run on KeyboardInterrupt

This gets run on KeyboardInterrupt/SIGINT, which could be sent by a
--beforerun script, which kills all child processes (i.e. any
currently running py.test instance).
This also introduces the explicit "failed" state, which is not "not
passed" with py.test.

My wrapper script: https://github.com/blueyed/dotfiles/blob/master/usr/bin/ptw-watch-tests
(Yes, it screams for using --runner instead, but it's older already.. :))
It will make use of tmux window title colors.

btw: exit codes are documented (and importable from _pytest.main) at http://pytest.org/latest/_modules/_pytest/main.html.

Hmm, py.test also uses interrupted with -x:

Interrupted: stopping after 1 failures

This should get handled as a failure..

This looks good! Nice find on the importable exit codes, @blueyed.
@lwm Thanks for the bump!

@blueyed I'm thinking of releasing the CLI arg under a different name. sigint is a bit technical. What do you think of --oninterrupt, which is similar to KeyboardInterrupt?

@joeyespo
Sure, go ahead.  But KeyboardInterrupt is really Python specific for SIGINT though (and a bit misleading).
btw: there were some squash! commits meant to be - well - squashed..
So, get your Picard facepalm pictures out.. ;)

@blueyed :smile:

Awesome. Done in 7d9516f6c483b852ebdc6b2b36e63c97708e2feb.

FYI, 4.0 was just published. It contains a slightly more abstract --afterrun option as opposed to --onsigint or --oninterrupt. It gets run after pytest completes or gets interrupted by a re-run. It also receives the exit code from pytest, so it can compliment any initialization done by --beforerun, or perform some more advanced logic based on the exit code.
For running code when you interrupt ptw (or your --beforerun script does) and cause it to exit, use --onexit instead.
Feel free to open a new issue if this doesn't cover all the bases.

@joeyespo
It works great, thanks!
The only "downside" is that a script is required now.
Maybe some printf-replacement could be done on the --afterrun argument?
(e.g. '%d' would be replaced by the exit code?!)
Or, what about setting some environment variable (PTW_EXIT_CODE), that can be looked at by the command?

Thanks!
What do you mean by "script"? As in --afterrun "one && two" doesn't work? That's a good point. I hadn't thought of that case until you said something.
An ENV variable seems reasonable. It's self-contained, more flexible, can be the first of more, and would be just as much work for a script to access it than a CLI argument. Can you think of any downsides to it?


Is there a plan to support rsbuild?

Clear and concise description of the problem
Rsbuild has released version 1.0, and although PostCSS can be used to use Unocss, I think it is similar to Vite. It may be more convenient to create a plugin.
Suggested solution
Develop a plugin
Alternative
Configure PostCSS
Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the README.md of using the package.
[ ] Already used the Interactive Docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

I don't use Rsbuild and I am not sure how much capability it would provide for UnoCSS to scan every fine and generate the virtual module. Unless someone wants to give it a try and make a PoC, I don't think it would happen anytime soon from our team.

🤓


resize rootfs image

We can use resize2fs to resize the rootfs image to a minimal size for better shipping experience.

Fixed by #30 and #50.


Support python 3.8 and 3.9

This PR adds support for Python 3.8 and 3.9.
Addresses #465 and closes #464

Hello @bourque, Thank you for submitting the Pull Request !

In the file exoctk/__init__.py:

Line 27:25: W292 no newline at end of file

In the file exoctk/contam_visibility/field_simulator.py:

Line 81:1: W293 blank line contains whitespace
Line 165:24: W503 line break before binary operator
Line 167:24: W503 line break before binary operator
Line 172:75: W504 line break after binary operator
Line 182:37: W504 line break after binary operator
Line 270:5: E265 block comment should start with '# '
Line 289:5: E265 block comment should start with '# '
Line 294:30: E226 missing whitespace around arithmetic operator
Line 313:5: E265 block comment should start with '# '
Line 348:5: E265 block comment should start with '# '
Line 357:22: E226 missing whitespace around arithmetic operator
Line 359:22: E226 missing whitespace around arithmetic operator
Line 391:5: E265 block comment should start with '# '
Line 402:5: E265 block comment should start with '# '
Line 422:39: E502 the backslash is redundant between brackets
Line 501:5: E265 block comment should start with '# '
Line 524:5: E265 block comment should start with '# '
Line 543:5: E265 block comment should start with '# '
Line 548:30: E226 missing whitespace around arithmetic operator
Line 567:5: E265 block comment should start with '# '
Line 602:5: E265 block comment should start with '# '
Line 611:22: E226 missing whitespace around arithmetic operator
Line 613:22: E226 missing whitespace around arithmetic operator
Line 644:5: E265 block comment should start with '# '
Line 655:5: E265 block comment should start with '# '
Line 671:39: E502 the backslash is redundant between brackets
Line 784:5: E265 block comment should start with '# '

In the file exoctk/contam_visibility/visibilityPA.py:

Line 141:26: E712 comparison to False should be 'if cond is False:' or 'if not cond:'

In the file exoctk/exoctk_app/__init__.py:

Line 3:30: W292 no newline at end of file

In the file exoctk/exoctk_app/app_exoctk.py:

Line 189:21: W605 invalid escape sequence '('
Line 189:25: W605 invalid escape sequence ')'
Line 189:57: W605 invalid escape sequence '\c'
Line 189:74: W605 invalid escape sequence '\e'
Line 195:46: W605 invalid escape sequence '('
Line 195:48: W605 invalid escape sequence '\l'
Line 195:56: W605 invalid escape sequence '\m'
Line 195:66: W605 invalid escape sequence '\h'
Line 195:79: W605 invalid escape sequence '\m'
Line 195:85: W605 invalid escape sequence ')'
Line 196:46: W605 invalid escape sequence '('
Line 196:48: W605 invalid escape sequence '\l'
Line 196:56: W605 invalid escape sequence '\m'
Line 196:66: W605 invalid escape sequence '\h'
Line 196:79: W605 invalid escape sequence '\m'
Line 196:85: W605 invalid escape sequence ')'
Line 197:46: W605 invalid escape sequence '('
Line 197:48: W605 invalid escape sequence '\l'
Line 197:56: W605 invalid escape sequence '\m'
Line 197:66: W605 invalid escape sequence '\h'
Line 197:79: W605 invalid escape sequence '\m'
Line 197:85: W605 invalid escape sequence ')'
Line 203:58: W605 invalid escape sequence '('
Line 203:62: W605 invalid escape sequence '\m'
Line 203:69: W605 invalid escape sequence '\m'
Line 203:75: W605 invalid escape sequence ')'
Line 522:42: E261 at least two spaces before inline comment
Line 528:1: E302 expected 2 blank lines, found 1
Line 533:52: E231 missing whitespace after ','
Line 538:69: E261 at least two spaces before inline comment
Line 538:69: E262 inline comment should start with '# '
Line 539:5: E265 block comment should start with '# '

In the file exoctk/forward_models/forward_models.py:

Line 20:1: E266 too many leading '#' for block comment
Line 39:1: E266 too many leading '#' for block comment
Line 41:1: E302 expected 2 blank lines, found 1
Line 76:41: W504 line break after binary operator
Line 77:17: E128 continuation line under-indented for visual indent
Line 79:5: E722 do not use bare 'except'
Line 116:79: W504 line break after binary operator
Line 117:71: W504 line break after binary operator
Line 278:44: E241 multiple spaces after ','
Line 311:57: E231 missing whitespace after ','
Line 325:9: E303 too many blank lines (2)
Line 326:33: E261 at least two spaces before inline comment
Line 327:39: E261 at least two spaces before inline comment
Line 327:40: E262 inline comment should start with '# '
Line 329:28: E261 at least two spaces before inline comment
Line 330:31: E261 at least two spaces before inline comment
Line 340:67: E226 missing whitespace around arithmetic operator
Line 349:64: E226 missing whitespace around arithmetic operator
Line 350:97: E502 the backslash is redundant between brackets
Line 352:35: E127 continuation line over-indented for visual indent
Line 357:32: E127 continuation line over-indented for visual indent
Line 357:48: E226 missing whitespace around arithmetic operator
Line 357:65: E502 the backslash is redundant between brackets
Line 358:74: E502 the backslash is redundant between brackets
Line 366:50: E226 missing whitespace around arithmetic operator
Line 376:17: E128 continuation line under-indented for visual indent

In the file exoctk/log_exoctk.py:

Line 40:1: W293 blank line contains whitespace
Line 130:20: E261 at least two spaces before inline comment
Line 130:20: E262 inline comment should start with '# '

If you have not done so, please consult PEP8 and PEP257

@hover2pi @nespinoza This is ready to go, could one of you review?

Yup I’ll review it!

@hover2pi Thanks for the review!
RE: contam_visibility -- that could very well be true.  There is a larger issue there though, which is that we are using a very specific commit of jwst_gtvt for reasons that I can no longer remember.  This is likely not sustainable in the long term (as we are seeing with the 3.9 environment).  We should try to work with @mfixstsci et al. to see if we can make the latest version of jwst_gtvt work with ExoCTK, which we can do in a separate issue/PR.


Should create_collation be unsafe?

create_collation scares me, since SQLite says:

The collating function must obey the following properties for all strings A, B, and C:

If A==B then B==A.
If A==B and B==C then A==C.
If A<B THEN B>A.
If A<B and B<C then A<C.

If a collating function fails any of the above constraints and that collating function is registered and used, then the behavior of SQLite is undefined.

That is, this is basically a total order requirement, with the constraint that the "behavior of SQLite is undefined" if you do not implement it properly.
I did a bunch of experimentation with this in the past (when I did the audit), and the versions of SQLite I could find just corrupt your DB if you mess this up. This sucks, since it can happen if the code panics. Additionally:

I don't know that this won't turn into a more serious issue in a future SQLite release.
I don't know that it's not an issue in a SQLite release earlier than I tested with
I don't know that I didn't just fail to trigger UB with my testing (I did run under asan at the time).

Someone I ran this by suggested that "the behavior of SQLite is undefined" is worded carefully and means the code will not exhibit UB, but the database will have "undefined" contents, or whatever, which made sense to me in the past but is pretty dubious on further thought.
Perhaps the right thing is just to make this function unsafe — even though there's no current issue, there could be in the future?
@gwenn — I think you have a lot more knowledge of SQLite internals than I do, what are your thoughts here?

Sorry, I don't know !
We should also report this issue to sqlx...

And there is another issue !
https://sqlite.org/c3ref/create_collation.html

The xDestroy callback is not called if the sqlite3_create_collation_v2() function fails. Applications that invoke sqlite3_create_collation_v2() with a non-NULL xDestroy argument should check the return code and dispose of the application data pointer themselves rather than expecting SQLite to deal with it for them.

So we leak memory here...

See #839


how to upgrade pg_query?

the version of pg_query is old and cannot parse quite a few statements now that are valid.
I'm happy to help and make a PR, are can somebody provide some insight on where to start?

for example, I see these .a files in this commit https://github.com/zhm/node-pg-query-native/commit/cc2dc5f75e3c9b3affc28f853a3bd2a995c6635a, how can we generate those?

@zhm @lfittl any thoughts here?

update: I got tests to pass! However, this would seemingly be major breaking changes:
var query = require('../');
var assert = require('assert');

describe('pg-query', function() {
  it('should parse a query', function() {
    assert.equal(typeof query.parse('select 1').query[0].RawStmt.stmt.SelectStmt, 'object');
  });

  it('should parse a null', function() {
    assert(query.parse("select null").query[0].RawStmt.stmt.SelectStmt.targetList[0].ResTarget.val.A_Const.val.Null);
  });

  it('should parse an empty string', function() {
    assert(query.parse("select ''").query[0].RawStmt.stmt.SelectStmt.targetList[0].ResTarget.val.A_Const.val.String.str === '');
  });

  it('should not parse a bogus query', function() {
    assert.ok(query.parse('NOT A QUERY').error instanceof Error);
  });
});

@pyramation Yeah, unfortunately the RawStmt change was one in upstream Postgres with 10, so its not really something that can be avoided.
For better or worse, Postgres parse trees are not supposed to be consistent across versions, which is why this would happen again in the next release (i.e. 11).

Thanks @lfittl, I see. I suppose people should just tag versions for this repo... what's a good way to deal with this?
fwiw, the tests are passing: https://travis-ci.org/pyramation/node-pg-query-native/builds/414224051
Should I still make a PR?

here's my PR: https://github.com/zhm/node-pg-query-native/pull/10

@pyramation Yeah, in general I would consider upgrading the parser version to be a major version increment on this library, and expect people to upgrade to that version whenever they are ready.
Unfortunately no better way to deal with this that I have found :)

@pyramation Since there's no response from @zhm, will you do the honour to publish a new npm package for this - with different name, since this is breaking change anyway.

And BTW, this module will break when npm install in node 10.x

I already did!
npm install pgsql-parser
I have two repos, one is the new name: https://github.com/pyramation/pgsql-parser
The other is the fork to stay in the community: https://github.com/pyramation/pg-query-parser

@beeing I upgraded pg_query, overhauled the testing system, and added a TON of new functionality. I think well over 100 commits from master.

Underneath, I also had to fork pg-query-native, https://github.com/pyramation/node-pg-query-native
for now I just called it pg-query-native-latest: https://github.com/pyramation/pg-query-parser/blob/master/package.json#L59

Ah... that's nice. Must have missed this out. Thanks!

I just npm i pg-query-native-latest on node 10, it works.
However noticed many V8 deprecation warnings during the build.

Just out of curiosity, how about removing the RawStmt.stmt after parsing it to maintain the backward compatibility?
And BTW, do you able to add Issues in your forked repo as well? We can use your repo to file new issues going forward.

@beeing Just one thought re: removing RawStmt.stmt for compatibility - I wouldn’t recommend this for two reasons:

That parse node sometimes has benefits (when parsing multiple statements it tells you where each statement ends)
This is not guaranteed to be the only incompatible change across versions - its better that the consumer is explicitly aware of the version of the parser (9.5 vs 10), as in a few months there will be a parser release for Postgres 12, and that one will be incompatible in different ways

Unfortunately its not preventable to have incompatible parse trees across versions - thats the same way that Postgres internally handles these structures.

Point noted. Thanks for sharing @lfittl


Capturing freevar tuples as tuples of consts

Hi,
It looks like capturing tuples from outside context does not preserve constness of tuple elements, unlike it's for scalar types, like integers that are captured as literal values. So attempting to use captured tuple in the following use case fails:
import numba
from numba import types
from numba.special import literal_unroll
from numba.extending import overload

def foo(item):
    pass

@overload(foo)
def foo_overload(item):
    if not isinstance(item, types.StringLiteral):
        return None
    item_literal_value = item.literal_value
    def foo_impl(item):
        return len(item_literal_value)
    return foo_impl

captured_tuple = ('abc', 'bb', 'c', 'dddd')
def test_impl():

    # freevar tuples are captured as tuples of non-const values, i.e.
    # captured_tuple is UniTuple(unicode_type x 4)
    for s in literal_unroll(captured_tuple):
        value = foo(s)
        print(value)

    # while this works, as tested_tuple is tuple of const values, i.e.
    # Tuple(Literal[str](abc), ... Literal[str](dddd))
#     tested_tuple = ('abc', 'bb', 'c', 'dddd')
#     for s in literal_unroll(tested_tuple):
#         value = foo(s)
#         print(value)

    return value

hpat_func = numba.njit(test_impl)
hpat_func()

Gives:
(SDC_MASTER) C:\Users\akozlov\AppData\Local\Continuum\anaconda3\hpat>python literal_u
nroll_over_captured.py
Traceback (most recent call last):
  File "literal_unroll_over_captured.py", line 37, in <module>
    hpat_func()
  File "c:\users\akozlov\appdata\local\continuum\anaconda3\numba_master\numba\numba\d
ispatcher.py", line 404, in _compile_for_args
    error_rewrite(e, 'unsupported_error')
  File "c:\users\akozlov\appdata\local\continuum\anaconda3\numba_master\numba\numba\d
ispatcher.py", line 344, in error_rewrite
    reraise(type(e), e, None)
  File "c:\users\akozlov\appdata\local\continuum\anaconda3\numba_master\numba\numba\s
ix.py", line 668, in reraise
    raise value.with_traceback(tb)
numba.errors.UnsupportedError: Failed in nopython mode pipeline (step: handles litera
l_unroll)
Failed in literal_unroll_subpipeline mode pipeline (step: switch const list for tuple
s)
Invalid use of literal_unroll, argument should be a tuple or a list of constant value
s, found unknown problem

File "literal_unroll_over_captured.py", line 23:
def test_impl():
    <source elided>
    # captured_tuple is UniTuple(unicode_type x 4)
    for s in literal_unroll(captured_tuple):
    ^

Can you please consider changing this so that freevar tuples are built as tuple of literal values?
Above was tested on:
numba                     0.48.0+0.gcc7e7c7cf.dirty           dev_0
Best Regards,
Alexey.

@kozlov-alexey thanks for reporting this, I can reproduce this and have labelled it as a bug accordingly.

@kozlov-alexey this is fixed on master and 0.49.0RC1 by virtue of https://github.com/numba/numba/pull/5182, the issue was the guard being too strong and not accepting freevar and global tuples, this bit is the fix https://github.com/numba/numba/pull/5182/files#diff-cf441a3a1255d5f19c14caa32641d71fR677-R680
Please could you confirm this to be the case? Thanks.

@stuartarchibald Yes, it seems it's working on master already. Sorry for reporting, I should have tested on latest dev branch. So this can be closed.

@kozlov-alexey no problem, reports are always welcome. Thanks for confirming the fix. Closing.


[Bug]: HomeKit System Alarm Stuck in "triggered" State

What happened?
When the base station alarm is triggered by a motion sensor on a camera, the HomeKit security alarm is also set to the "triggered" state, as expected.
However, once the system is reset to the "Off" mode, the base station alarm is turned off appropriately, but the HomeKit alarm state is not cleared. This causes repeated HomeKit alerts whenever the system is placed back into "Home", "Away", or "Night" mode. The only way to stop this from continuing is to reboot Homebridge entirely.
From quickly scanning src/accessories/StationAccessory.ts, I suspect that the this.alarm_triggered flag is never reset to false after being set to true whenever the system is switched back to "Off" from a triggered/armed state. That, or potentially a caching issue of some kind?
Device Type
Station (Supported)
Plugin Version
v1.0.x (Supported)
HomeBridge Version
v1.4.x (Supported)
NodeJS Version
v16 (Supported)
Operating System
Raspbian 10+ (Supported)
Relevant log output
No response

hello, thanks for helping, this already a duplicate of #9


Improve CSS

In a project I'm contributing to, we want to customize django-rest-swagger. But we have some issues caused by these resets. So I'm doing this pull request to be sure that the staticfiles of django-rest-swagger won't interfere with other staticfiles.

It look like all others pull requests are sent to master so I close this one and send another to master and not develop.


[Status: Completed] Move project from https://github.com/Enselic/cargo-public-api to https://github.com/cargo-public-api/cargo-public-api

I would like to emphasize that this project is not a one-man show, so I will move  this project from https://github.com/Enselic/cargo-public-api to https://github.com/cargo-public-api/cargo-public-api.
(My co-maintainers have been informed beforehand.)

As far as I know I have completed the move now.
I'll keep this issue open for some time for increased visibility, to avoid confusion among our users/packagers.

3 months should be enough. Let's close.


⚠ Bofrost.fr has degraded performance

In e215d99, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1134 ms

Resolved: Bofrost.fr performance has improved in 3338ba5 after 19 minutes.


Problem with finetuning reward model

I attempted to fine-tune the Reward model based on llama 7b. I selected one example and trained it for multiple epochs. I observed a significant decrease in the loss, indicating that the model was learning. During the training process, I printed the reward for my training example. I noticed that response_j became larger while response_k became smaller, which brought the loss closer to 0.
Later, I loaded an overfitted model that had been trained for 60 epochs using 5 identical examples each. I computed the reward for each example, but the generated rewards appeared to be random. This resulted in a substantial loss, which was unexpected.
What could be the reason behind the encountered issues? Is it possible that the LoRa was not saved correctly? Could there be a problem with the loading process? Should we consider the version of the peft and transformers library being used as a potential factor?

What is the correct method or approach to import the model in a way that ensures consistent predictions aligned with the training phase?


crash on IOS 11.4

With the hidekeyboardaccessoryview set to true on IOS 11.4 the app is crashing.
this is the code block the xcode is showing when the app crashes
on file RNCWebView.m line 32
for some reason the if condition causing the crash.

Unfortunately I am unfamiliar with Objective-c to propose my own solution for this bug.
Would be very grateful for some insight on this or better the fix of this bug.

I can confirm this issue. Also experiencing it in our app. It's not limited to iOS 11.4 but occurring for all iOS 11 versions.
The problem was introduced while fixing iPad compatibility: https://github.com/react-native-community/react-native-webview/pull/661
The only option you right now have is to use the following setting for iOS 11: hideKeyboardAccessoryView={false} showing the input field indicators.

I've just run into this as well on devices < iOS 12. Can this be reopened?


Twine Integration

Hey all! If people are still interested in this functionality, I actually have used the MIT-licensed YarnSpinner pretty extensively, and I think Twine integration would provide a ton of value in terms of rapid prototyping. If there's still interest for this feature I'd like to get a handle on what people would like to see Twine Integration mean. So:

Do we want a one-off translation layer, where a twine file can be made into a Flowchart that is then customized? (Fungus is the content authority after import)
Do we want a runtime translation layer, where a twine file is made into a Flowchart during scene initialization or the like and changes are discarded from the Flowchart? (Twine is the content authority)
The intense option: do we want a bi-directional translation layer, where a Twine file can be imported into a flowchart, but the flowchart can then be exported to a Twine file? (A lawless land where there is no authority and everyone is king)

Also, do people see a value in being able to bind macros for example to Command scripts? Things like that. Thanks in advance!

Hi Conrad. Pretty sure there'd be a lot of interest in this feature if you could get it going. One issue is that the Unity UI text doesn't support hyperlinks in the text. This could be solved now by using Text Mesh Pro which does support hyperlinks, though the Writer class would probably need a bit of a redesign to work properly with all the special tags that Text Mesh Pro supports.
If you want more feedback I'd suggest posting about this again on the Fungus forums as that gets a lot more traffic than github.
Regarding the integration, maybe you don't need to generate Flowcharts at all? You could have a 'Yarn' command that can load and run a Yarn file using the Say Dialog and Menu Dialogs directly - something along the lines of how the Conversation command works. Macros could then be used to control stuff like selecting characters and setting the various dialog options. There could also be Event Handlers to allow flowchart's to handle events raised by the Yarn script.

Hey Conrad, I'd personally be very interested in Twine/Yarn-to-Flowchart integration, particularly if the import tool could be used to map tags to something.


Native Notebooks - Duplicate Error Information

Every time I get an error I see the error both in the output and the cell status bar. Personally don't find it necessary to have this information duplicated.
Can we keep the red x in the cell status bar (in case output is collapsed) but remove the duplication of the text? Not to mention when the text is really long it just disappears off the cell status bar and becomes somewhat unhelpful since you can't scroll to process it all anyway.

This is what was originally requested by the PMs (discussion on teams).
Happy to change again


[WT-75] Set up ticket exchanges

Description
Add the ability to do order item exchanges as well as partial refunds.
Database updates:

Combined orders and refunds into one table so that refunditems can be netted with orderitems on a single order.
Added payment_intent and order_payment_intent tables so that a single payment_intent can be spread across multiple orders as items are exchanged/refunded.
Added a temporarystore table so that we do not have to rely on stripe metadata (which is limited in size) to handle tasks that need to be completed once an order has finished processing.

Backend Updates:

Centralized checkout logic for all order and refund methods.
Updated server and seeding logic to handle the new database structure/refund process.
Added price validation for non-admin orders.
Added logic to allocate discount among tickets, this is probably the wrong logic but is more of placeholder as exchanges on orders with discounts didn't really work without accounting for the ticket level discount.

Frontend Updates:

Added UI to allow for order exchanges.

Risks
It is very possible that the implementation logic around the new order structure is incorrect, or that I missed an edge case when testing.
Validation
Manual testing
Issue
closes #75
Operating System
M1 Mac

This is a fantastic piece of functionality, and it works really well. I think the way you chose to handle refunds or charging extra makes a lot of sense. Due to the size of the PR, I mostly just did manual testing of the feature and here is a little bit of feedback:
In the Cart Section of the page, it might make more sense (if possible) to have 2 sections, one like Items to Return and Items to Exchange where the the customer's already-purchased items appear in the former and the items-to-exchange-for appear in the later. In this way, we could avoid using the financial way of displaying cost values (parens vs no parens), and it might make it more immediately user friendly to have items grouped in this way.
Some Bugs I Noticed:

If you set the price of tickets you're exchanging for to $0 but have fees on those items, the user is not charged the fee. Maybe have the UI set the fee to 0 and disable it if the price is 0
When applying a discount code to an exchange (like exchanging 2 $20 tickets for 2 other $20 tickets), there can be a negative total as a result of the discount code, but discount codes should not make the order go below 0.
updated

Everything looks good. I can approve after this last issue is fixed:
In ticket exchanges, when you select a showing for an event, and then select a ticket type -- but then reset the showing to the Select Showing option the page crashes.

Fixed


Aspen 2 release discussion

This thread will be used to track and discuss the next leap in super-performant tree rendering on planet Earth - Aspen 2.
The next version of Aspen has the following core goals:

Even better performance
More versatility, i.e not being limited to just "file trees"
More lightweight, i.e removing as many dependencies as possible
Codebase enhancements, i.e using functional components, and switching to a monorepo

The stepping-stone has already been set over at aspen-next branch in this repository. Everything you see there is subject to change as the project advances to the beta stage. Many features from current Aspen are yet to be ported over to Aspen 2, but the core framework has already been laid out. The breaking changes can be reviewed in the changelog, this will keep on evolving as the project advances.
You can subscribe to this issue by clicking Subscribe on the right to be notified on the progress of Aspen 2, including the beta release, and up to the final release.
cc @LoganDark @fintara @graup @rodgomesc @adamgruber @khushboovashi
Since you folks use react-aspen in production, your feedback is very important in the direction Aspen will follow.

Overall, I really like the changes that are currently in the pipeline. Generalizing tree views to encompassing more than just filesystems will allow for many unique experiences:

Debuggers, viewing stack frames and their locals, etc.
Dependency trees
Code structure
Widget hierarchy in an interface designer

Functional components are very cool. Is it possible to raise the handle state up though? For example, could it be possible to declaratively specify that you want a certain prompt to exist?
Right now, aspen relies on a lot of imperative function calls that need to be kept around and cleaned up after by the caller, which isn't very fun. It would be nice if more of the library was declarative instead of imperative, since callback hell is the main not-very-fun part. Promises help somewhat (I use async functions heavily), but dealing with them in React is kind of annoying.

Great to hear. My two main issues have also been

Generalizing to other kinds of trees.

Instead of path and name, many trees just have id, children and data.
Type (File or Directory) is often implicit (depending on if children?.length > 0).
I had to re-create a directory-like structure with paths just to translate this tree to a file system tree and also specifically turn off some of the path handling (like OS-style separators and sorting, those are things I don't want to think about.)

Translating between declarative state (React hooks) and imperative style.

I found myself writing wrapper React components that take selectedItems, visibleItems, onChangeSelection(selectedItems) props and translate it to treeHandle calls. Ended up being a strange mix between controlled and uncontrolled components. Ideally, react-aspen would offer a controlled component that works just like standard inputs or selects, i.e. taking props like mentioned above.

Another thing that would be nice is having some extra functions built-in or at least one-line examples of how to achieve them with the API. Examples:

Multiple selection
Expanding/collapsing all or a list of items
Search

On the other hand, I don't care so much about context menus and sorting, although those might certainly be useful in some cases.
Here are two different trees I built for our app showing two very different use cases:
https://user-images.githubusercontent.com/898549/142715200-4361acae-abe3-420a-93dc-13981af779e6.mov
https://user-images.githubusercontent.com/898549/142715202-5aa39099-c31a-481a-a00f-c6f630eedf4c.mov

@graup I've had moderate success implementing multiple select and keyboard bindings in my implementation of Aspen. You can just apply the decoration to multiple items at the same time, and as long as you account for that functionality, everything will Just Work.
Although the imperative style does still bother me - and of course, you have to reimplement all the FileTreeX stuff from scratch (I never did use FileTreeX, anyway - it looked far too simple for my use case).
I'd love to show it off but it's all proprietary for at least the next month.

Hi,
I really appreciate your efforts for creating such a wonderful high
performance tree.
I liked the road map and would like to have below things to be considered
as well.

There should be an option to choose between fixed or dynamic sized tree
The important tree item events (like add/update/delete/load/select)
should be triggered, so those events can be listened to outside component
Search Tree Item
Refresh the tree items
Item path should be id based

Thanks,
Khushboo
On Thu, Nov 18, 2021 at 7:27 PM Neek Sandhu @.***>
wrote:

This thread will be used to track and discuss the next leap in
super-performant tree rendering on planet Earth - Aspen 2.
The next version of Aspen has the following core goals:

Even better performance
More versatility, i.e not being limited to just "file trees"
More lightweight, i.e removing as many dependencies as possible
Codebase enhancements, i.e using functional components, and
switching to a monorepo

The stepping-stone has already been set over at aspen-next branch in this
repository. Everything you see there is subject to change as the project
advances to the beta stage. Many features from current Aspen are yet to be
ported over to Aspen 2, but the core framework has already been laid out.
The breaking changes can be reviewed in the changelog
https://github.com/NeekSandhu/aspen/blob/aspen-next/CHANGELOG.md, this
will keep on evolving as the project advances.
You can subscribe to this issue by clicking Subscribe on the right to be
notified on the progress of Aspen 2, including the beta release, and up to
the final release.
cc @LoganDark https://github.com/LoganDark @fintara
https://github.com/fintara @graup https://github.com/graup @rodgomesc
https://github.com/rodgomesc @adamgruber https://github.com/adamgruber
@khushboovashi https://github.com/khushboovashi
Since you folks use react-aspen in production, your feedback is very
important in the direction Aspen will follow.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NeekSandhu/aspen/issues/19, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADNOKSKPA3YOW7CFECJFSO3UMUA3JANCNFSM5IJVWTFA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Hi, I really appreciate your efforts for creating such a wonderful high performance tree.
I liked the road map and would like to have below things to be considered as well.

There should be an option to choose between fixed or dynamic sized tree

You mean abandoning the virtual list? Since right now react-aspen uses a virtual list (window list or something) that requires you to specify a width/height.

The important tree item events (like add/update/delete/load/select) should be triggered, so those events can be listened to outside component

You mean echoing events that the watcher emits back up? Could be useful.

Search Tree Item

This can be implemented without too much difficulty. Since Aspen 2 is going to be generic over the metadata you store (like name, path, etc.) this is impossible to it to implement directly.

Refresh the tree items

This is a good one. It can already be implemented by doing reading and then telling Aspen to update stuff, but it would be good for convenience.

Item path should be id based

What do you mean item path? Currently, as it's a list, items are indexed by their position in the list. Also, having a reference to an entry means you can access it forever.

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-974580487 - Is it possible to raise the handle state up though? For example, could it be possible to declaratively specify that you want a certain prompt to exist?

No. Aspen MUST have the authority to force terminate a prompt under certain circumstances, for example, when the node to which the prompt is bound is removed. In a scenario like that - code like this becomes contradicting -
<Tree ...>
  <RenamePrompt node={...} />
</Tree>

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-974596605  - Type (File or Directory) is often implicit (depending on if children?.length > 0)

Aspen is async first library. The count of children is unknown upfront, and stays unknown until requested by calling Tree#expand(branch). Plus, a node could actually be a true directory but just not have any children, then a check like this will be unreliable.

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-974596605 - I had to re-create a directory-like structure with paths just to translate this tree to a file system tree and also specifically turn off some of the path handling (like OS-style separators and sorting, those are things I don't want to think about.)

Paths are now gone, forever. It's just pure raw tree nodes, you get to choose what kind of data those nodes actually represent (through the data property on Leaf or Branch). Aspen 1 relied on path-fx library for it to work, it won't anymore.

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-974596605 - Expanding/collapsing all or a list of items

It will be now accessible through a recursive: boolean argument to Tree.expand and Tree.collapse

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-974596605 - I found myself writing wrapper React components that take selectedItems, visibleItems, onChangeSelection(selectedItems) props and translate it to treeHandle calls. Ended up being a strange mix between controlled and uncontrolled components. Ideally, react-aspen would offer a controlled component that works just like standard inputs or selects, i.e. taking props like mentioned above.

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-974596605 and https://github.com/NeekSandhu/aspen/issues/19#issuecomment-975306767 - Search and item selection

The goal of Aspen 2 (when somebody does yarn add react-aspen) is to be super lightweight, minimal, and bloat-free. Not only in terms of bundle size, but also the API footprint. Features like this, and even more like keyboard navigation are best if they are made available through separate packages. This will allow users to opt-in as they deem fit. I welcome you all to contribute to the Aspen project and would love to see more packages under the packages/* directory. If not, you can publish it under your own account, and then have it featured in the readme of Aspen.
I can totally imagine a package like react-aspen-select, that exports hooks like useTreeSelect(tree: Tree). Or imagine react-aspen-search with useTreeSearch(tree: Tree, matchFn: ((node: TreeNode) => number))). And everything just works. Let me know if this sparks interest among one (or more) of you.

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-975306767 - There should be an option to choose between fixed or dynamic sized tree

@LoganDark We can use the variable size list from react-window instead of FixedSizeList conditionally depending on the props supplied to the Tree component at runtime.

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-975306767 - The important tree item events (like add/update/delete/load/select) should be triggered, so those events can be listened to outside component

Events for initial load, addition, and removal will be listenable on the Tree instance using a similar syntax that's already available with Aspen 1.

https://github.com/NeekSandhu/aspen/issues/19#issuecomment-975306767 - Refresh the tree items

Aspen 2 already has Tree#amend, which you can use to insert and re-sort the children of a branch. The reason Aspen never directly exposes a "hard-reload" method is that this would mean loss of expansion state of the child (and grandchildren). If this were to be exposed, what do you expect the call signature to be that also makes the implication clear that it'll cause a loss of expansion state for its children?

I can totally imagine a package like react-aspen-select, that exports hooks like useTreeSelect(tree: Tree). Or imagine react-aspen-search with useTreeSearch(tree: Tree, matchFn: ((node: TreeNode) => number))). And everything just works. Let me know if this sparks interest among one (or more) of you.

Love it, totally up for contributing to both of those ideas.

I can totally imagine a package like react-aspen-select, that exports hooks like useTreeSelect(tree: Tree). Or imagine react-aspen-search with useTreeSearch(tree: Tree, matchFn: ((node: TreeNode) => number))). And everything just works. Let me know if this sparks interest among one (or more) of you.

I totally missed this when I first read your comment. This sounds really cool. I'd probably be able to contribute my select that supports click and ctrl+click and shift+click and ctrl+shift+click and...

Awesome! While you guys are definitely encouraged to use your own creativity in the implementation, I think it's worth sharing a plausible approach to this -
React-ARIA by Adobe is a good example. For the sake of our use-case ignore the "aria" aspect of this package, and instead just look at how this package works in general.
Take for example the  useSelect. This hook is agnostic of the UI, which has been the motto of Aspen from day zero. The user calls the hook, it returns some stuff, some of it contains the workable data, in our case the selectedItems, or searchResults, and some of it is props that need to be bound the some UI element, could be the entire item row, or something inside of it. And guess what, everything just works. Beautifully.
We can jump into this after the first beta release since the API and behaviour will be pretty much stable thereafter.
@LoganDark Will your implementation support "checkbox" driven selection/deselection as well?
@graup Would you like to collaborate with Logan on the selection package, or is there something else altogether that you'd like to kick-off (depending on what you deem important for Superb.ai).
Either way, it'll be nice to have an API proposal beforehand so we all can review and see if it can be one-size-fits-all.

I'll do an alpha release by next Monday (I'll post here the installation instructions). We'll talk discuss feature parity with Aspen 1, and in general, discuss any flaws before advancing on to the beta release soon after that.

@LoganDark Will your implementation support "checkbox" driven selection/deselection as well?

Unfortunately it does not at the moment.

I can provide it but can't really help with extracting it into a separate package yet

No rush. Aspen itself hasn't reached beta yet. I'll ask you after the alpha release again to check if and when you can help by publishing it (just so everyone is in sync with status of things).

I have a feeling that checkbox selection might just be low-hanging fruit for us.
The following API might be exposed which people can then bind to checkbox event listeners -
const { addToSelection, removeFromSelection } = useTreeSelect(...)

Again, just a rough idea. Time will tell.

How about generalizing the "selection" package? We can just make it a useCustomTreeState() and support all kinds of user defined states (aka decorations) like selected, disabled, ... plus addToState, removeFromState, setState.
Are you keeping the decorations concept? Actually it works fairly well, just the API is not so useful. We can just make a const { addToSelection, removeFromSelection, setSelection } = useDecoration('selection', CascadeMode). It can also handle more complicated logic (like de-selecting an item that was selected by cascade -> item should be negated).
I could draw up a proposal for this in a new issue.

We can just make it a useCustomTreeState() and support all kinds of user defined states (aka decorations) like selected, disabled, ... plus addToState, removeFromState, setState.

The only problem I see with this is that the end-user will have to do the plumbing by themself defeating the original vision of plug-n-play lego bricks.

I could draw up a proposal for this in a new issue.

I have enabled GitHub Discussions for this repo. I'd love to see how well that space works, please use Discussions for this discussion by clicking the Discussion tab above.

⚠Important announcement, please read - https://github.com/zikaari/aspen/issues/23


App keeps closing when taking more than 20 photos or 1.0 miles

When capturing a ride no longer than 1 mile, the app closes abruptly without any warning, and had to be opened again. It is also not uploading those sequences to the dashboard. Any way you can fix this?

@panthersdude2001 Please let us know if this is happening on Android or iOS and specify the OS and app version you're using. We'll then get to it. :)

The app is running on Android. OS is 7.1 and App version is 2.7.2

Hello @panthersdude2001 ,
What kind of device are you using, can you provide us with the model?

J327T is the model.

@panthersdude2001 Currently, there are some issues while using the video recording mode, which are already being handled. Switching to JPEG mode shouldn't have the same (crashing) outcome. We know it's not ideal, but this is the current workaroud we have available until we release a new app version.

I just received an update for the OSC, it says minor fixes. Does this include the video crashing issue?

Good news! Just tested the app today, and it did Not crash! But, the application, when uploading the sequence, jumps to 100% and says upload cancelled when switching to wifi from cellular and vice versa. Is this going to be fixed in the later release?


Set max_concurrent_streams to override nghttp2 client default of 100

v2 CDS should set this option by default.
V1 CDS should set option too so that 0.8 LTS is well supported.

ref: https://github.com/envoyproxy/envoy/issues/2941
In absence of this change data path grpc traffic suffers queuing increasing latency to unacceptable levels.

@mdhume

fixed by #5570


Version 42.42.42 in NuGet

I assume this was an error or beta version as it doesn't follow the other versions.
You might want to unlist this package as it is shown as the highest current available version.

This must be a mistake. 42.42.42 was uploaded a long time ago and unlisted right away. I see it unlisted even now in the nuget.org portal and the portal says 1.3.6 is the newest.
Can you share where were you given this version?

I use Rider as my IDE and it shows it in the Rider Nuget UI

That sounds like a bug in Rider then?

Hmm yeah maybe you're right. I've checked the nuget site and can't see it. I'll close this, apologies!

No worries!


test_benchmarking_parallel_simulation fails on CI for one configuration

The test test_benchmarking_parallel_simulation fails for sim_batch_size=1, num_workers=10 but works for all other configurations on CI:
https://github.com/sbi-dev/sbi/actions/runs/8418222476/job/23048287384?pr=1063#step:8:4939
FAILED tests/multiprocessing_test.py::test_benchmarking_parallel_simulation[1-10] - assert 12.29891848564148 <= (5.03387713432312 * 1.1)

The most likely reasons for this failure are either the overhead of creating 10 workers (on a machine with only 2 cores) is not worth it if we only have 1 sample per batch or problems with running this test with -n auto. I think the first is more likely because all other variants work.
This was noticed in PR #1063 when running the slow tests on CI.

I can reproduce this issue locally on a machine with 10 cores, so the number of cores in the CI environment is not the issue. Indeed @famura, running this test with -n auto causes the problem.
I will quickly start a CI run on our slow tests to see if it's worth to run them with -n auto or if we should just get rid of it. They take 33min with parallel execution (see failed run).

Runs here: https://github.com/sbi-dev/sbi/actions/runs/8420009653/job/23053830420

This run took 43min. So running the slow tests in parallel saves 10min.
But the above mentioned tests also fails when sequentially executed: https://github.com/sbi-dev/sbi/actions/runs/8420009653/job/23053830420#step:7:3555

I talked with @michaeldeistler today and he was in favor of changing the test to make it work instead of completely kicking it out. He also mentioned that the test failed on his old machine.
We currently run it with num_workers=10 and num_workers=-2 (all cpus but one). num_workers=10 doesn't really make sense on a machine with only two cores (Github Actions), so I would propose to change it to num_workers=-1.  The downside is that the results could differ from machine to machine but that's also currently the case with num_workers=-2.
This change works on Github Actions: https://github.com/sbi-dev/sbi/actions/runs/8471258924/job/23210817060.
We may have to introduce the additional pytest mark sequential discussed elsewhere to make it work on all machines when people use -n auto.

num_workers=-1 together with -n auto works on Github Actions if we allow joblib to be a little bit slower than the 10% we currently have in the test. I would open a PR for that to get #1063 merged.
Tested here: https://github.com/sbi-dev/sbi/actions/runs/8471478141/job/23211524576

I got a really naive comment that I still want to make. What speaks against using exactly 2 (or 3) workers? I suppose any action runner has at least 2 cores and it would technically still be a parallel simulation. This way we get a more deterministic behavior I suppose.

To be honest I just tried to replicate the current behavior as close as possible. Setting it to 2 should work equally well and I would be in favor of reproducible behavior across machines.


UR5 I/O Support

Hi Greetings!!!!
I am working on UR5 real robot CB2-firmware version >3.2.
I want following task to be done by my Robot using the ur_modern_driver.

I want to connect a analog sensor to the analog pin of UR5 and to monitor the data?
I want to control a solenoid valve from Digital I/O pins of robot?
I want to read states of Digital I/O of robot?

Can it be possible from ur_modern_driver?
I already checked I/O states publish on topic but i need to control the I/O also?

Hi,
I am closing this issue because modern driver already given the I/O states as well as the Service to set the Output pin.
Even analog input pin is giving the states of analog voltage at the output.

Hello @sameergrey
If I want to set the I/O states and the Output pin, which file should I refer to?
Thanks.


mongosql_auth plugin not passing credentials when using GSSAPI

When trying to connect using MySQL client
mysql -u<EMAIL_ADDRESS>--plugin-dir=c:\mysql\lib --default-auth=mongosql_auth -p
Returns Unknown MySQL Error instead of connecting.
Same user can successfully connect to MongoDB using shell
mongo.exe mongo.foo.com:37027/reports  --username<EMAIL_ADDRESS>--authenticationMechanism GSSAPI --authenticationDatabase $external --gssapiServiceName mongodb --ssl
Configuration for mongosqld version 2.5
systemLog:
  logAppend: true
  path: "mongosqld.log"
  verbosity: 2

security:
  enabled: true
  defaultMechanism: GSSAPI
  defaultSource: $external
  gssapi:
    serviceName: mongosql
    hostname: localhost

mongodb:
  net:
    uri: "mongo.foo.com:37027"
    ssl:
      enabled: true
    auth:
      username<EMAIL_ADDRESS>      mechanism: GSSAPI
      gssapiServiceName: mongodb

net:
  bindIp: localhost
  port: 3306
  ssl:
    mode: allowSSL
    allowInvalidCertificates: true
    PEMKeyFile: mongosqld-server.pem

schema:
  sample:
    namespaces: "Reports.*"

processManagement:
  service:
    name: mongosqld
    displayName: mongosqld
    description: "MongoDB BI Connector"

mongo.log
Unauthorized: not authorized on admin to execute command { currentOp: 1, $or: [ { client: { $in: [ "<IP_ADDRESS>:51662", "<IP_ADDRESS>:51659" ] } }, { command.$client.mongos.client: { $in: [ "<IP_ADDRESS>:51662", "<IP_ADDRESS>:51659" ] } } ] }
mongosqld.log:
2018-05-23T22:42:05.217-0500 E NETWORK    [conn11] write packet error: connection closed
2018-05-23T22:42:05.217-0500 E NETWORK    [conn11] handshake error: failed reading auth more data response: EOF

User has following roles
"roles" : [
        {
                "role" : "userAdminAnyDatabase",
                "db" : "admin"
        },
        {
                "role" : "root",
                "db" : "admin"
        }
]

What version of MySQL are you using?

Hi @baburajpb, this error is usually due to an incorrect kerberos configuration. Can you provide some more information so that we can help you debug further?

What platform are you trying to connect from?
What version of the mongosql_auth plugin are you using?
What version of the mysql shell are you using?
What is the output of env | grep KRB in the shell where you are calling?
What are the contents of your kerberos config file?

Additionally, please run the following and provide the output:
export KRB5_TRACE=krb5.log
mysql -u<EMAIL_ADDRESS>--plugin-dir=c:\mysql\lib --default-auth=mongosql_auth -p
cat krb5.log

This information will provide us with the context we need to help troubleshoot your issue futher.

@rychipman
Kerberos configuration seems to be working, we are able to connect to MongoDB (hosted on Linux) from a mongo shell on Windows.

Connecting from Windows using MySQL shell  version mysql  Ver 14.14 Distrib 5.7.22, for Win64 (x86_64)
mongosql_auth version mongosql-auth-win32-x86_64-v1.2.0

MongoDB is hosted on a Linux system and here is the content from krb5.log when successfully connecting from Mongo shell (on a Windows client)
[8428]<PHONE_NUMBER>.643251: AP-REQ ticket<EMAIL_ADDRESS>-><EMAIL_ADDRESS>session key rc4-hmac/7680
[8428]<PHONE_NUMBER>.645915: Negotiated enctype based on authenticator: aes256-cts
[8428]<PHONE_NUMBER>.645951: Authenticator contains subkey: rc4-hmac/EF01
[8428]<PHONE_NUMBER>.646011: Creating AP-REP, time<PHONE_NUMBER>.38781, subkey aes256-cts/8122, seqnum 597861248

I don't see an entry when trying pass credentials through MySQL using the mongosql_auth plugin which made me think credentials are not getting passed.
krb5.conf used by MongoDB server below
[libdefaults]
 rdns = false
 default_realm = LDAP.FOO.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 clockskew=300

[realms]
LDAP.FOO.COM = {
kdc = ldap.foo.com:88
admin_server = server.foo.com
}

[domain_realm]
.server.foo.com =  LDAP.FOO.COM
server.foo.com =  LDAP.FOO.COM

@deafgoat @rychipman I've updated the original issue comment with full log of mongosqld to show what works and what is not working.

@baburajpb I didn't realize you were connecting from a windows client. On windows, you should look in the event logs for information about the client's connection attempts. The logs should either contain an error or a successful TGT request for<EMAIL_ADDRESS>

@rychipman Why would it fail for just mongosqld when I am successfully able to connect to Mongo using mongo.exe? Are there any logs generated by mongosql-auth-c?

The mongosql-auth-c plugin does not currently generate any logs. The most likely cause for this failure is a kerberos misconfiguration. The recommended next step would be to look through the windows event logs to figure out whether the client's TGT request was successful.

There were no TGT events (event ID 4768) generated.
But every time I tried to login an Event of ID 4648 was generated with content that looks like the message below. Connection was attempted using https://github.com/mongodb/mongo-odbc-driver which I believe is using mongosql_auth behind the scenes.
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    <System>
        <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
        <EventID>4648</EventID>
        <Version>0</Version>
        <Level>0</Level>
        <Task>12544</Task>
        <Opcode>0</Opcode>
        <Keywords>0x8020000000000000</Keywords>
        <TimeCreated SystemTime="2018-06-01T20:41:06.104934000Z" />
        <EventRecordID>61361548</EventRecordID>
        <Correlation />
        <Execution ProcessID="548" ThreadID="6020" />
        <Channel>Security</Channel>
        <Computer>HOST.AD.FOO.com</Computer>
        <Security />
    </System>
    <EventData>
        <Data Name="SubjectUserSid">S-0-5-00-0000000000-0000000000-000000000-0000000</Data>
        <Data Name="SubjectUserName">FOO</Data>
        <Data Name="SubjectDomainName">AD</Data>
        <Data Name="SubjectLogonId">0xbbbd1b3d</Data>
        <Data Name="LogonGuid">{6714212E-3351-D18F-5608-EC38236027E8}</Data>
        <Data Name="TargetUserName">FOO</Data>
        <Data Name="TargetDomainName">AD.FOO.COM</Data>
        <Data Name="TargetLogonGuid">{67AB8496-463F-E983-FAA8-3798C467FC32}</Data>
        <Data Name="TargetServerName">mongo.foo.com</Data>
        <Data Name="TargetInfo">mongodb/mongo.foo.com</Data>
        <Data Name="ProcessId">0xba218</Data>
        <Data Name="ProcessName">C:\Windows\System32\odbcad32.exe</Data>
        <Data Name="IpAddress">-</Data>
        <Data Name="IpPort">-</Data>
    </EventData>
</Event>

That event look like it is the sqlproxy admin user getting its ticket for the mongodb service. The event we'd be looking for is one with a target service called mongosql. Is the event you provided getting created every time you try to connect to the BI Connector from the mysql shell, or every time you start mongosqld?

The above said event gets created every time MySql shell / Mongo ODBC driver try to connect to mongosql.


Add CMakeLists.txt file

CMake support is still development.
For more information, see https://github.com/ARMmbed/mbed-os/blob/feature-cmake/tools/cmake/README.md
@0xc0170 @paul-szczepanek-arm

How can we build this with Circle CI ?