Some commands sometimes show empty panes in fish shell

Info

Operating System: macOS
Shell: fish
Terminal: iTerm
nvim --version: v0.8.3
fzf --version: 0.37.0 (brew)

[x] The issue is reproducible with mini.sh

Description
I've been trying to diagnose this one by myself, but I can't figure it out anymore. Maybe you can help me debug this better.
So, I recently switched to Fish as my shell (from ZSH). Everything was working fine, till I started to sometimes see :FzfLua buffers behave strangely:

No error, just that lonely ^[i right there (it's always there when this happens). The thing is, it's not consistent (although once it starts, it'll stay there). I could reproduce with the minimal setup.
It also seems like it may somehow be related to commands related to vim. These are some commands that stop working when this happens:

buffers
registers
tabs
marks
commands
args
(haven't tested all of them)

But other commands do work normally, even when this starts happening, like:

files
grep
keymaps
git_files
git_status
(haven't tested all of them either)

If I run neovim from ZSH, this doesn't happen, it works as expected.
My guess is that something is breaking somewhere, but not showing the error for some reason. I checked messages and stuff, but couldn't find anything.
Do you know what could be going on or how I could debug this further?

This is a very strange issue indeed due to this not being consistent, the same command and code is run by fzf-lua so the inconsistency is making it hard to identify what’s the source of the issue.
The common denominator between the commands that fail seems to be a lua table input into fzf_exec, I’ll look at the code tomorrow and try to figure out what can fail overtime and why specifically fish.

Do you know what could be going on or how I could debug this further?

In the meantime if you can fins a way to consistently reproduce this with steps then I’d be able to solve it easily from my end.

I unfortunately haven't been able to find a consistent way of reproducing it. Although something weird that I saw last night when running the buffers command (which is usually the one I use the most from the failing ones) was seeing the dreaded ^[i for a few milliseconds and then the popups being render properly in place. I ran the command multiple times after that and I didn't see it again for that session. Not sure if it helps, but I figured I'd mention it (could there be some sort of race condition?).
If you want me to add some kind of logging or print statements somewhere you're suspicious of, just let me know. I'm guessing this may be a weird interaction of my system (and likely a mistake on my part), so it's probably going to be incredibly hard to reproduce outside of it.
I'm new to fish, so I probably messed something up. One thing I'll mention given the weird interaction I had with that sort of race condition: I managed to make my fish config significantly faster than my ZSH one (startup time being ~10ms). My guess is that this probably doesn't really matter, but I guess more info doesn't hurt

I unfortunately haven't been able to find a consistent way of reproducing it. Although something weird that I saw last night when running the buffers command (which is usually the one I use the most from the failing ones) was seeing the dreaded ^[i for a few milliseconds and then the popups being render properly in place. I ran the command multiple times after that and I didn't see it again for that session. Not sure if it helps, but I figured I'd mention it (could there be some sort of race condition?).
If you want me to add some kind of logging or print statements somewhere you're suspicious of, just let me know. I'm guessing this may be a weird interaction of my system (and likely a mistake on my part), so it's probably going to be incredibly hard to reproduce outside of it.
I'm new to fish, so I probably messed something up. One thing I'll mention given the weird interaction I had with that sort of race condition: I managed to make my fish config significantly faster than my ZSH one (startup time being ~10ms). My guess is that this probably doesn't really matter, but I guess more info doesn't hurt

Tysm for the details! anything helps.
I'm pretty sure this is not "your fault", any shell and any setup should work regardless of circumstanes, as long as you're patient and willing to work with me on this I can assure you we will not leave a rock unturned and get to the bottom of this issue.
I was able to identify what I believe is the common ground between the failing commands, they are all using the stdin input redirection directive < /path/to/fifo to feed contents into fzf from a FIFO generated by the mkfifo command.
Here's where I get confused: in order to avoid shell woes the fzf command is explicitly wrapped with POSIX shell using sh -c, as you can see below:
https://github.com/ibhagwan/fzf-lua/blob/cddb1c3b23bf6f3e56435410a28e43c2c954b350/lua/fzf-lua/fzf.lua#L178-L184
The commands that never fails (files, etc) are not using stdin input redirection and instead using the environment variable FZF_DEFAULT_COMMAND which is spawned directly by fzf.
According to the termopen/jobstart help, supplying a table as a first argument avoids the shell alltogether, which means that fish isn't used in our scenario, yet somehow this happens only on fish.

:help jobstart

jobstart({cmd} [, {opts}])				*jobstart()*
		Spawns {cmd} as a job.
		If {cmd} is a List it runs directly (no 'shell').
		If {cmd} is a String it runs in the 'shell', like this:
		  :call jobstart(split(&shell) + split(&shellcmdflag) + ['{cmd}'])
		(See |shell-unquoting| for details.)

Althought this might happen because of mkfifo I'm not sure if this is the case as, again, the command is called with first argument as a table which should spwan without a shell and also the strange ^]i escape sequence seems like something more likely to happen after termopen (where mkfifo is called prior):
https://github.com/ibhagwan/fzf-lua/blob/cddb1c3b23bf6f3e56435410a28e43c2c954b350/lua/fzf-lua/fzf.lua#L71-L75
This leaves me to suspect a delay (as you mentioned, sometimes it does open properly after a while) while executing the fzf command which could come from an external command which somehow uses fish?
Although I'm still unsure why this would cause such a behavior, can you post the output of the below:

This is the equivalent of echo $FZF_DEFAULT_OPTS in the shell

:lua print(vim.env.FZF_DEFAULT_COMMAND)
:lua print(vim.env.FZF_DEFAULT_OPTS)

I'm pretty sure this is not "your fault", any shell and any setup should work regardless of circumstanes, as long as you're patient and willing to work with me on this I can assure you we will not leave a rock unturned and get to the bottom of this issue.

I really appreciate the help. I love this library and have used for more than a year now, I'll do anything I can to help! I also appreciate explaining what's going on.

Here's where I get confused: in order to avoid shell woes the fzf command is explicitly wrapped with POSIX shell using sh -c

Smart. I agree this makes it more confusing that this weird behavior would be terminal dependent, but I'm still not knowledgeable enough of fish to be aware of possible differences. I'll mention that, because of how fish works, not only I managed to get a significant speedup on non-interactive startup of fish, I was also able to add more stuff that I couldn't with zsh —because otherwise I would be able to notice a performance impact—, which means I'm loading functions and aliases that I use a lot in interactive sessions that didn't use to be there before (I don't think this is the issue, but probably something to keep in mind). I can't easily "not load them in non-interactive" because they're autoloaded functions (instead of aliases).

This leaves me to suspect a delay (as you mentioned, sometimes it does open properly after a while) while executing the fzf command which could come from an external command which somehow uses fish?
Although I'm still unsure why this would cause such a behavior, can you post the output of the below:

My default command is using fd, a find alternative written in rust.
print(string.format("FZF_DEFAULT_COMMAND: %s", vim.env.FZF_DEFAULT_COMMAND))
print(string.format("FZF_DEFAULT_OPTS: %s", vim.env.FZF_DEFAULT_OPTS))

FZF_DEFAULT_COMMAND: fd -H -E '.git' -E '.keep' --type file --follow --color=always
FZF_DEFAULT_OPTS: --ansi --bind=ctrl-n:page-down,ctrl-p:page-up,alt-a:select-all,alt-d:deselect-all,alt-t:toggle-all,home:first,end:last

One (even weirder) thing, I'm currently on PTO so I'm using my work computer less and this problem is much harder to manifest in my personal computers. One of them is identical to my work computer, a macbook pro from last year, and an old intel mac mini. My dotfiles are in github and the same across the board, so the biggest difference would be me running much heavier applications on my work computer (I usually just SSH into my personal ones from my iPad, and not running things like Docker or the MDM software).
I'll also mention that I use neovim within tmux almost exclusively, although I was able to reproduce outside of tmux (in case you wanted to rule it out).

I just took my work computer to see if I could reproduce again, and the problem was there immediately.
I even saw a flash of ^[i in the files command (but fixed itself almost instantly). The buffers command is not working.
I unset all my FZF environment variables (and double checked with :lua=vim.env.FZF_DEFAULT_COMMAND) and the issue is still there. Are there any print statements or sh -c commands you want me to run?

I recorded a video, if you pay attention to the beginning of the files command (it's just a few frames) you'll see the ^[i appearing:
https://user-images.githubusercontent.com/6660202/218008518-094ca662-e1cd-4c4c-8657-18412cf9538f.mov

While I had the system in this state, I tried changing my $SHELL to zsh.
It doesn't fail... but while recording I'm just realizing I'm seeing the ^[i too, it just gets the right output immediately after:
https://user-images.githubusercontent.com/6660202/218009328-fce05587-2096-4dd9-ad17-b7482a09b7bd.mov

Ty @iovis, this is very helpful.

I'm just realizing I'm seeing the ^[i too, it just gets the right output immediately after

I can clearly see it in both your videos, still no idea where it’s coming from but it’s good to know it’s happening in all commands so I can invalidate some of my other assumptions.

Are there any print statements or sh -c commands you want me to run?

Running any command with debug=true provides debug output of the command, preview parameters and other info, none that would help us in this case though, I can create a branch with extra logging but I’m still unsure where to put these and what information I’m even looking for as I still have no hints as to the source of this thing.
I’m suspecting something in your shell configuration as this issue would have probably come up  before by many others but I can’t pin point what… armed with this new information I’ll keep digging in the code and try to come up with a better idea.

I just took my work computer to see if I could reproduce again, and the problem was there immediately.

One clarification I forgot to ask, is the work computer using the same dotfiles?
If so, are your dotfiles (or at least the shell profile) online? If I can reproduce this on my system with your dotfiles I would be able to solve it much faster.

One clarification I forgot to ask, is the work computer using the same dotfiles?
If so, are your dotfiles (or at least the shell profile) online? If I can reproduce this on my system with your dotfiles I would be able to solve it much faster.

Yes, same dotfiles. You can find them here:

Fish: https://github.com/iovis/dotfiles/blob/master/fish/.config/fish/config.fish

I managed to reproduce with a very minimal configuration (video attached):
# ~/.config/fish/config.fish
/opt/homebrew/bin/brew shellenv | source  # This is the path for `nvim`, `fzf` and friends

sh -c "$(curl -s https://raw.githubusercontent.com/ibhagwan/fzf-lua/main/scripts/mini.sh)"

In the video, I ran the commands with debug=true. It also doesn't look like ^[i appears anymore, although I'm starting to suspect it was a red herring.
https://user-images.githubusercontent.com/6660202/218150923-90911ea6-2942-422e-a2b2-5eab8c6d3577.mp4

Ty @iovis!
I just tried the same exact setup on a OSX, neovim 0.8.3 with fzf 0.37 with your config.fish (with starship installed) and I still can’t reproduce this annoyance lol
I’d like to try something else, I have a hunch that may or may not be true that this might be related to the new load event added with fzf 0.36, would you be able to download fzf 0.35.1 Darwin binary from fzf releases, set fzf_bin within fzf-lua’s setup function and see if the issue persists?

For context, under the same load, it works fine in ZSH:
https://user-images.githubusercontent.com/6660202/218189036-df9cab7f-25f2-4327-9846-5220a72989f7.mp4
Sorry that it's a bit hard to read with the bg being set to magenta for some reason

Also, when reproducing for fish, I'm using this as config.fish:
# ~/.config/fish/config.fish
set -gx XDG_CONFIG_HOME $HOME/.config
set -gx XDG_DATA_HOME $XDG_CONFIG_HOME/.local/share
set -gx XDG_CACHE_HOME $XDG_CONFIG_HOME/.cache

fish_add_path /opt/homebrew/bin

Can't say I'm surprised, I seem to only be able to reproduce it consistently under very heavy load.

What is considered "heavy load", are you running any background process I that I can attempt to do the same?

Sorry that it's a bit hard to read with the bg being set to magenta for some reason

No worries,  I should probably adjust the defaults in to look somewhat normal on the default colorscheme.

Also, when reproducing for fish, I'm using this as config.fish

I used the same as this was inside the config.fish you linked above, can't rule anything out anymore but I'm not sure why this sohuld make a difference.

For context, under the same load, it works fine in ZSH

This is what’s so confusing here, there should be no point in the code where fish shell is run or matters, at all, anywhere a shell command is used is wrapped with sh -c.
During the plug-in development I did notice some commands behave differently if $SHELL is set to fish, for example shellescape, perhaps I should go a both in this route and examine every neovim API call and it’s help to see where there’s a special case for fish.

What is considered "heavy load"?
Are you running any background process I that I can attempt to do the same?
When said command ends and load subsides does it still fail or will it work again?

I just tried stopping everything thinking it would come back to normal and it's still reproducible, so I'm now even more confused of why it's easier to reproduce on my work computer. The biggest difference with my personal computers would be the MDM software, but I still have managed to reproduce in my personal computers at some point or another (just less frequently).

During the plug-in development I did notice some commands behave differently if  $SHELL is set to fish, for example shellescape, perhaps I should go in this route and examine every neovim API call and it’s help to see where there’s a special case for fish. From initial search doesn’t seem like any other command is affected by the $SHELL variable aside from termopen | jobstart which is already wrapped in sh -c…

Do you want to give me some code to run manually in my editor to see if I can pinpoint which line is the one failing? I can compare between ZSH and fish to maybe see if there's any difference

Do you want to give me some code to run manually in my editor to see if I can pinpoint which line is the one failing? I can compare between ZSH and fish to maybe see if there's any difference

I think this is the best route, next chance I’m on the computer I’ll create a debug branch and pepper the code with some “before” and “after” prints, you can then set Lazy to said branch and we can examine the output from :messages which will hopefully be more insightful.

I think this is the best route, next chance I’m on the computer I’ll create a debug branch and pepper the code with some “before” and “after” prints, you can then set Lazy to said branch and we can examine the output from :messages which will hopefully be more insightful.

Sounds good, I appreciate the patience helping me debug this!

I think this is the best route, next chance I’m on the computer I’ll create a debug branch and pepper the code with some “before” and “after” prints, you can then set Lazy to said branch and we can examine the output from :messages which will hopefully be more insightful.

Sounds good, I appreciate the patience helping me debug this!

Can you try branch https://github.com/ibhagwan/fzf-lua/tree/633_debug?
It has prints before and after suspected areas of the code, paste the output of :messages while it’s stuck and especially the message the is displayed while the window is open and hopefully we get a good hint from it.

Can you try branch 633_debug?
It has prints before and after suspected areas of the code, paste the output of :messages while it’s stuck and especially the message the is displayed while the window is open and hopefully we get a good hint from it.

fish
before win create
after win create
before raw_fzf
before tempname1
after tempname1, before tempname2
after tempname2
before mkfifo /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/SGmKtp/1
after mkfifo /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/SGmKtp/1
before termopen
after termopen
before fs_open /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/SGmKtp/1
after fs_open /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/SGmKtp/1
before contents
after contents # => THE ONE DISPLAYED WHILE THE WINDOW IS OPEN
termopen exit with 129
after raw_fzf

zsh
before win create
after win create
before raw_fzf
before tempname1
after tempname1, before tempname2
after tempname2
before mkfifo /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/oPOVuG/1
after mkfifo /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/oPOVuG/1
before termopen
after termopen
before fs_open /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/oPOVuG/1
after fs_open /var/folders/99/_2_c98ys0f9428nsf1_vvp440000gp/T/nvim.david/oPOVuG/1
before contents
after contents
termopen exit with 0
after raw_fzf

Ty @iovis, this just got even stranger lol

after contents # => THE ONE DISPLAYED WHILE THE WINDOW IS OPEN

This is the code part:
https://github.com/ibhagwan/fzf-lua/blob/2d675a6a387eb3d0d67ad83fa038c6ca0cf0f3a0/lua/fzf-lua/fzf.lua#L260-L264
Essentially all the fzf-lua code was executed and now neovim is waiting for the terminal job (fzf) to exit.
Another oddity is an exit code not mentioned in fzf manual:
0      Normal exit
1      No match
2      Error
130    Interrupted with CTRL-C or ESC

Another oddity is an exit code not mentioned in fzf manual:

I can reproduce the error 129 in ZSH (normal operation) when clicking outside the fzf popup in neovim or running :close while the popup is open. So I'm not sure if it's FZF's necessarily. I think that's just related to me closing the term popup weirdly when it fails

Exit code 129 is apparently SIGHUP which gets sent when the terminal is closing which I assume you force closed with <C-w-q>, now the unanswered questions:

Why would a termopen command which is sent sh -c (without any shell) behave differently when you’re using fish shell
Why would it hang only sometimes?
What does this have to do with input redirection (which seems to be a consistent factor)?

I’ll admit, this is quite the bug we got here lol, but at least I know now I need to focus on alternatives to redirecting the fifo into stdin, I’ll look for alternative (perhaps tee can help) and we can do some more testing.

Want me to run the sh -c command directly in fish and zsh?

I wonder if the underlying sh -c is inheriting some weird  env. I noticed that when I ran zsh from a fish env to try to reproduce from zsh, it would fail in zsh too. I had to chsh -s /bin/zsh to "clean it", and it would not be reproducible anymore. So I wonder if the sh -c is somehow inheriting something from my env too

Just switched the input redirection to tail in the debug branch, can you try to pull rebase and see if that solves the issue (I have a good feeling it might)?

@ibhagwan I think you nailed it!
I've been trying to break it with my full config and I can't, it looks rock solid. I don't even see the ^[i flashing in those commands anymore! (I do see the ^[i flashing for things like files, but I know you didn't touch there).
Let me try again with clean configs and zsh and maybe heavy load again. But this looks promising!

@ibhagwan I think you nailed it!

Close but not there yet! It seems it cuts the input arbitrarily at 10 items, for example, try FzfLua bulltin or FzfLua man_pages, I have no idea why, yet :)
I’m still trying to find a solution for this, but otherwise it’s a solid solution, it’s also better to let fzf handle the command process using FZF_DEFAULT_COMMAND.

Close but not there yet! It seems it cuts the input arbitrarily at 10 items, for example, try FzfLua bulltin or FzfLua man_pages, I have no idea why, yet :)

tail defaults to 10 lines! I was just going to mention that FzfLua commands only reported 10 lines and I was looking at the plugin code to see if there was a new paginator haha

@ibhagwan I just changed:
FZF_DEFAULT_COMMAND = string.format("tail %s", vim.fn.shellescape(fifotmpname))
# to
FZF_DEFAULT_COMMAND = string.format("cat %s", vim.fn.shellescape(fifotmpname))

And it works without limiting the output, not sure if that helps

And it works without limiting the output, not sure if that helps

Ofc it helps, this is great, I’m just sure how cat handles ongoing input from a fifo file, I gonna do some more research and you might have just found our solution :)

I'm investigating in the meantime, and it seems like mkfifo works differently than other shells:
https://github.com/fish-shell/fish-shell/issues/2867#issuecomment-204827423

I'm investigating in the meantime, and it seems like mkfifo works differently than other shells:
fish-shell/fish-shell#2867 (comment)
https://stackoverflow.com/questions/61946995/ls-fifo-blocks-fish-shell
https://stackoverflow.com/questions/69216897/what-are-the-differences-between-fish-shell-and-bash-when-handling-named-pipes

The question is, why does this even matter, mkfifo command is executed directly (no shell) and termopen uses sh, so technically fish shell shouldn’t even be a factor here, very confusing.
In any event the cat solution seems to work great, if it works perfectly for you as well I will commit the change, lmk?

The second link you posted seems to be a clue as to what may be happening here, but again, we’re using sh… and it still doesn’t explain the inconsistency of the bug.

In any event the cat solution seems to work great, if it works perfectly for you as well I will commit the change, lmk?

It's working amazing.

The second link you posted seems to be a clue as to what may be happening here, but again, we’re using sh… and it still doesn’t explain the inconsistency of the bug.

Do you think you can give me an sh -c command with mkfifo that I could run directly in fish? I have a feeling something's weird with these subshells. When i ran zsh to get an interactive zsh session from within a fish session, the error was still reproducible as if I was still in fish. It would only "clean up" if I ran a chsh -s /bin/zsh and started over.

Actually, even if termopen is using sh, how would it know where to find fzf if it was not inheriting at least the $PATH? Wouldn't that mean it's not fully isolated?

I've been trying with:
sh -c 'mkfifo myfifo; (ls > myfifo &); cat < myfifo; rm myfifo'

But I couldn't see any error

In any case, thank you so much for fixing this issue and for your patience ❤

https://github.com/ibhagwan/fzf-lua/commit/a294a8330e9b0622acc3de4e0b9ab4e853b53fa2 - I'm on a flight and the plane WiFi is blocking my git ssh connection, I had to do this from the web interface (first time), hopefully I didn't mess up anything :-)
Tysm @iovis for your patience! after much joint efforts I think we've come to the conclusion of this quite mysterious bug.

My hunch right now is that sh -c may not be as isolated as we think it is...

That is the only way to explain it but that would be quite the conundrum, perhaps this is isolated to sh -c within a neovim job? That would make more sense as it's a pretty limited usecase and the reason this hadn't come up until now.

Actually, even if termopen is using sh, how would it know where to find fzf if it was not inheriting at least the $PATH? Wouldn't that mean it's not fully isolated?

Using termopen|jobstart inherits the current env unless clear_env = true is specified in the options, the question is what in the env vars make a difference to input redirection?

I've been trying with:
But I couldn't see any error

Idk if this rabbit hole is worth pursuing any more than what we already did :-)

In any case, thank you so much for fixing this issue and for your patience

Ty again @iovis, it's been a pleasure working with you!

https://github.com/ibhagwan/fzf-lua/issues/633#issuecomment-1426290620:

Sorry that it's a bit hard to read with the bg being set to magenta for some reason

Now fixed with https://github.com/ibhagwan/fzf-lua/commit/1df92492201ff9bf081a276c3c773a36cfee66a0, no more magenta on default colorsceme lol, beats me why linking to a cleared highlight group would choose Pmenu as the background color but the highlight setup now checks for cleared links and resets the hl accordingly:

Much easier to read haha. Btw, the fix has been working wonderfully on my end these days, tysm for looking into this!


[Feature] Introduce a way to allow to use any platform such as Express or fastify

The objective is that any user could use any of the available platform. Also, if a platform does not exists, the user could introduce a new platform by using the exported adapters

Linked to medusa, I did add talked about it in a discussion, probably half of that issu will be done by me in the medusa core package

I will continue that PR later since there is some priority in the same time 😅


JW-98: rt port

[ ] WIP: Before review https://github.com/codilime/contrail-vrouter/pull/82 must be merged.

Retest this pleaser

Retest this please

Retest this please

Retest this please

Retest this please

Those MAC* macros are pretty cool. Nice catch @attil


Added callback for when index changes

This PR adds a callback function onIndexUpdate(index, total) to notify any interested party of an index change that was not programatically.
I believe this is related to https://github.com/leecade/react-native-swiper/issues/99

Good job. Hoping to see this merge along side a function to programatically change page via ref.
A quick extra consideration:

Is there any specific reasoning behind the prop onIndexupdate being invoked before the internal cb? I was thinking that it might be better to finish the internal changes before propagating the change to parent.

Should ´onIndexUpdate´ or onMomentumScroll be called first? I was thinking onMomentumScroll because one would expect this to be fired as soon as the user stops their scrolling, while onIndexUpdate would be fired "when the page shift has finished".

@Jacse
It makes a lot more sense to move the call to onIndexupdate into cb. I have also added changed it to check if the index has changed before calling that function.
Referring to your second point, onIndexupdate should be called as soon as the index is changed, that can happen multiple times while the user is scrolling. I just noticed that the updateIndex function is only called when the scroll ends, and in my opinion that's wrong, although that's something that needs more discussion and would need another PR.

@vfn Thanks for your PR.
I believe we have now onIndexChanged function.
You might want to update it if you want total var in function attributes

Feel free to reopen this PR if needed, resolving conflicts at the same time


Add Geometry Processing with Neural Fields

Thank you for being the first to submit a PR! Manually added the entry. Your paper is live now at: https://brownvc.github.io/neural-fields-review/paper_254.html


Remove mongodb and dynamodb from docs

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

/changelog


feat: Use GRPC from Swift Package Manager

NOTE: Due to a bug in rules_swift_package_manager, the GRPC dependencies generated by this repository from the Package.swift are failing to compile on Ubuntu 22.04 in CI.
https://github.com/cgrindel/rules_swift_package_manager/issues/1012
Until this issue is fixed, we need to continue using the GRPC dependencies from rules_swift, but I have split out a follow-up PR to use the SPM version which I can land after the bug is fixed.
https://github.com/cgrindel/rules_swift_package_manager/pull/1019
Because of these changes, now we can depend on swift GRPC and Protobuf normally through Package.swift and these targets resolve normally too.
let package = Package(
    name: "grpc_example",
    dependencies: [
        .package(url: "https://github.com/grpc/grpc-swift.git", from: "1.15.0"),
        .package(url: "https://github.com/apple/swift-protobuf.git", from: "1.25.2"),
    ]
)

@AttilaTheFun I am going to convert this to a draft until it is ready to review.


Checkbox functionality through customBodyRender

More of a question than a bug -
How should one go about working with checkbox on as bodyrender for a column -
I have defined the column like -
{
name: "check",
label: "Check me",
options: {
customBodyRender: (value, tableMeta, updateValue) => {
return (

<Checkbox
checked={value == "Y"}
color="primary"
value={value}
onClick={event => {
console.log(event.target.value);
updateValue(event);
}}
aria-label="My flag"
/>

);
}
}
}
How should I update the column value when checkbox is selected or modified?
Your Environment

Tech
Version

Material-UI
3.9.2

MUI-datatables
2.0.0-beta-54

React
16.*

You need to use onChange and updateValue inside of that. There are examples of how to do this here: https://github.com/gregnb/mui-datatables/blob/master/examples/component/index.js.


feat: upgrade YurtIoTDock to support edgex v3 api

What type of PR is this?
/sig iot
/kind feature
/kind bug
What this PR does / why we need it:
Upgrade the api to keep up with the new version of edgex v3.
Which issue(s) this PR fixes:

Fixes #1615 and #1627
Does this PR introduce a user-facing change?
cat <<EOF | kubectl apply -f -
apiVersion: iot.openyurt.io/v1alpha2
kind: PlatformAdmin
metadata:
  name: edgex-sample
spec:
  version: minnesota
  poolName: beijing
  components:
    - name: edgex-ui
    - name: edgex-device-rest
    - name: edgex-device-virtual
    - name: yurt-iot-dock
EOF

/assign @LavenderQAQ  @Rui-Gan

/lgtm


AbstractHmTextBody.java:45-49: Implement...

The puzzle 794-b5119934 from #794 has to be resolved:
https://github.com/yegor256/takes/blob/7fb524155b180e8eb35d63545e10d20ab614eb5e/src/main/java/org/takes/facets/hamcrest/AbstractHmTextBody.java#L45-L49
The puzzle was created by rultor on 05-Mar-18.
Estimate: 30 minutes, role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@yegor256/z please, pay attention to this issue

Job #819 is now in scope, role is DEV

The job #819 assigned to @krzyk/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

The job #819 assigned to @paulodamaso/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@paulodamaso/z this job was assigned to you 5days ago. It will be taken away from you soon, unless you close it, see §8. Read this and this, please.

@0crat refuse

@0crat refuse (here)

@paulodamaso The user @paulodamaso/z resigned from #819, please stop working. Reason for job resignation: Order was cancelled

Tasks refusal is discouraged, see §6: -15 point(s) just awarded to @paulodamaso/z

The job #819 assigned to @ypshenychka/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat refuse

@0crat refuse (here)

@ypshenychka The user @ypshenychka/z resigned from #819, please stop working. Reason for job resignation: Order was cancelled

Tasks refusal is discouraged, see §6: -15 point(s) just awarded to @ypshenychka/z

The job #819 assigned to @olenagerasimova/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat wait please for #867 to be merged (here)

@olenagerasimova The impediment for #819 was registered successfully by @olenagerasimova/z

The puzzle 794-b5119934 has disappeared from the source code, that's why I closed this issue.

@ypshenychka/z please review this job completed by @olenagerasimova/z, as in §30; the job will be fully closed and all payments will be made when the quality review is completed

The job #819 is now out of scope

@0crat quality good

Order was finished, quality is "good": +35 point(s) just awarded to @olenagerasimova/z

Quality review completed: +8 point(s) just awarded to @ypshenychka/z


Create k3s.md

This PR addresses the issue of missing documentation for integrating WasmEdge with k3s, a lightweight Kubernetes distribution ideal for edge computing. The goal is to provide a comprehensive guide that outlines the necessary steps for configuring and deploying WasmEdge applications on a k3s cluster.
Explanation

Related issue

What type of PR is this

Proposed Changes

Hello, I am a PR summary agent on flows.network.
It could take a few minutes for me to analyze this PR. Relax, grab a cup of coffee and check back later. Thanks!

@juntao @dannypsnl PTAL

Have you run the steps you wrote in the document?

Yes I have run these steps

Which Wasm application do you use for the example?
And which Wasm service do you use to verify?
Also, what's the expected output of the execution result of it?

Which Wasm application do you use for the example? And which Wasm service do you use to verify? Also, what's the expected output of the execution result of it?

Expected Output of the Execution Result
Deployment YAML:
kind: Deployment
metadata:
  name: wasmedge-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wasmedge-demo
  template:
    metadata:
      labels:
        app: wasmedge-demo
    spec:
      containers:
      - name: wasmedge-demo
        image: wasmedge/example-wasm-server:latest
        command: ["wasmedge-tensorflow-lite"]
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"
        ports:
        - containerPort: 8080

Which Wasm application do you use for the example? And which Wasm service do you use to verify? Also, what's the expected output of the execution result of it?

Expected Output of the Execution Result Deployment YAML:
kind: Deployment
metadata:
  name: wasmedge-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wasmedge-demo
  template:
    metadata:
      labels:
        app: wasmedge-demo
    spec:
      containers:
      - name: wasmedge-demo
        image: wasmedge/example-wasm-server:latest
        command: ["wasmedge-tensorflow-lite"]
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"
        ports:
        - containerPort: 8080

kind: Service
metadata:
  name: wasmedge-service
spec:
  selector:
    app: wasmedge-demo
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

You didn't show the output generated by the wasm application. The YAML you provided is just the configuration.
Could you please share the screenshot of the execution results? Also, it looks like you are using a service. How do you check if this kind of service is running, and how do you interact with it?

Closing it due to inactivity.


dnx migrations do not scaffold properly

I created a context class with a collection based on a simple class.  I used fluent API to configure max length for some string properties of my class.  Running dnx add migration scaffolds properties, but maximum length configuration is ignored as well as required flag.  Happens for both fluent API and attribute based configuration.  This is in VS 2015 RC.  Anything I am missing?  Thanks.

Hey,
MaxLength issue is tracked by https://github.com/aspnet/EntityFramework/issues/882
Attribute based configuration is not implemented yet and is tracked by https://github.com/aspnet/EntityFramework/issues/107
~Rowan


allow customizing base world & syms for authorizer

I've run into some cases where the default world max duration wasn't quite enough, resulting in intermittent failures. This PR exposes options to the caller to override the default limits (and for completeness, the default symbol table).
e.g.
b, err := biscuit.Unmarshal(token)
// ...

authorizer, err := b.Authorizer(
    publicRoot,
    biscuit.WithBaseWorld(
        datalog.NewWorld(
            datalog.WithMaxDuration(3 * time.Millisecond),
        ),
    ),
)
// ...

(rebased to get checks passing)

making it more configurable is a good idea! We're moving away from making the default symbol table configurable though, this makes interoperability a lot harder.

would it be possible to make parameters like timeout configurable without setting the entire base world?

would it be possible to make parameters like timeout configurable without setting the entire base world?

Yup! Are you thinking something like this?
func WithWorldOptions(opts ...datalog.WorldOption) AuthorizerOption {
// ...
}

alright, sounds good!


lib/licenses: add warning about deprecated licenses being used

Motivation for this change
This triggers in repl during evaluation like so
nix-repl> :l ./.
Added 14775 variables.

nix-repl> qbs
trace: Deprecated license lgpl3 used
trace: Deprecated license fdl13 used
trace: Deprecated license gpl2 used
trace: Deprecated license lgpl21 used
trace: Deprecated license gpl3 used
trace: Deprecated license lgpl2 used
«derivation /nix/store/mf9m4r6b2k0m54hb2i7gbgs7xhir4zxz-qbs-1.19.1.drv»

Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 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.

Don't know if it's possible to add information about which specific package is using the license

I don't think we can do that right now because that would trigger a gazillion warnings.

.trace fires exactly once per evaluation


Atomic counter for render resource ids and Render to Gpu rename

Objective

check of the following two points of the list of #2535
Consider RenderDevice + RenderQueue -> GpuDevice + GpuQueue
Consider using atomic counter instead of UUID for render resource ids

Solution

renamed RenderDevice, RenderQueue, RenderInstance, RenderContext to GpuDevice, GpuQueue, GpuInstance, GpuContext
replaced the UUIDs in the render resource ids with an atomic u64 counter for better performance and no chance of collision

might be replaced by the ids of wgpu if they expose them directly

Maybe it would be a good idea to use AtomicUsize instead of AtomicU64, for the sake of platform support? (similar to https://github.com/bevyengine/bevy/pull/2827 )
I know there is actually a realistic chance of overflow / running out of unique IDs here, if the counter is 32-bit, but AtomicUsize would still actually be 64-bit on all the 64-bit architectures, so I don't think using it would be a regression, it would just allow bevy to compile on more targets.
On platforms where AtomicU64 exists, using AtomicUsize would be equivalent, but AtomicUsize exists on all platforms (because std requires it).

AtomicUsize is 32bit on ARM despite AtomicU64 working on Linux ARM targets, so it is a regression.

OK, so apparently I was wrong, and the common 32-bit targets (arm, x86, wasm) should all work fine with AtomicU64. Any platforms that would be unsupported, would be very obscure, and bevy likely wouldn't work there anyway. So, never mind. AtomicU64 is the better solution.

I'm not sure if I like this new panicking thing, but that's not my call to make. Is this hot code? How many of these IDs are generated per frame? If it's not, then it's good, I think. If it is, maybe it's not worth the overhead.
BTW, now that we are starting to have a lot of these "global atomic counter for unique ids" all over the bevy codebase (renderer, ecs, ...), I wonder if it would make sense to have some sort of abstraction type for it (maybe in bevy_util)?
Especially if we go with this panicking thing, and if we potentially want more methods / extra functionality for these ID counters in the future, would be nice to not have all of these duplicate / mostly identical impl blocks for each counter type.

Yeah the panicking is the necessary evil required or we would run into UB on overflow.  I don't know how atomic vs UUID affects performance, but we are generating about 70000 per minute (at 60 fps) for the simple 3d scene pipelined example. I am curious to know what that number is for a complex scene.
At least for u64 the atomic counter overflow seems like a none issue.
Here my calculation:
2^64/3600/24/365/300 =<PHONE_NUMBER>.85
2 billion ids per frame for an entire year running at 300 fps. But I might be wrong.
The problem with an abstraction is that if we want one static counter per Id type we need to implement a unique method (new) for each. I could move the next_id function to bey_util and use it everywhere which would probably reduce the noise a bit and unify the implementation.
Or we could just have one counter for all of them, but I don't know how well this scales across multiple threads.
I am also not quite sure how and where to panic. We could do it inside of next_id or in the code creating the ids (current impl). As it is nearly impossible to ever happen and totally unrecoverable we might not need to duplicate expect everywhere.
If anyone has a better idea for handling the static counters (a macro maybe?) let me know.

So I have made a derive macro which auto generates the new method with a unique counter per type of id. This method will panic with an error message mentioning the type. As this panic can't be prevented/recovered from anyway I don't see any harm in hiding it inside the macro.
Creating a new unique id is now as simple as:
#[derive(Id, Copy, Clone, Hash, Eq, PartialEq, Debug)]
pub struct MyId(IdType);

I've also used this macro for every id that still used uuid or random and this was easily applicable.
Let me know what you think. :)

Hey @kurtkuehnert , this PR was somehow lost in the new renderer migration. Would you be willing to update it now to target main branch? Sorry for the delay!

Hey @mockersf , yes I can try rebasing this PR tomorrow. It will probably be easier to redo it from scratch.
I think it should be split though. Is there still any interest in renaming the types to GPU? I would definitely prefer this naming scheme, but what does @cart think?
The atomic resource counting should be a seperate PR and I am not sure whether this is still a good idea.

I'm on board for both the renames and the move to atomic counters. I agree that they should be separate PRs. Also a small note: I think if we're going to do an Id derive, it should actually implement some Id trait. Using it for adding normal functions to the base type feels a bit confusing.
The Id trait could have the new function, and it would allow us to add new shared functionality in the future if needed.


Remove csvlint stuff as it's all 404

Probably not worth it anyway?

Looks like the old validation was broken.
This one "works", but isn't correct.
http://csvlint.io/validation/5cb4d9550739c9000400007a
What we need to do is put json file and csv file into the gh-pages branch automatically.
Not sure that's worth the time.

IMO it's not worth it, but you're the master. :-)
Please close this if you want to keep README as is.


Job Opportunity Seeder

Describe the task

Create a seeder for creating 3 job opportunities for all domains (hints : hr_jobs table):

Engineering => Software Developer
Designer      => Product Designer
Marketing    => Data Researcher

Create a seeder for job rounds with their respective job_id and round_id. (hints : hr_jobs_round table)

Expected behavior

[ ] Seeder for creating job opportunities.
[ ] Seeder for assigning their respective hr_id and round_id in jobs round.

References

Looks complete. Closing.


[FEATURE] Profile to show GitHub repo

Description

User can add/delete their GitHub repo in their profile
Repo data is fetched from GitHub's API
GitHub data is cached (similar to GitHub profile location data)
Display new tab Project on profile
Have overall app page for projects (similar to Events)

Screenshots
No response
Additional information
No response

Closing as a duplicate of https://github.com/EddieHubCommunity/LinkFree/issues/2835


Make it so Pyflame can be built simultaneously against Python2 & Python3

Since Pyflame doesn't actually link against libpython we can built it against both Python2 and Python3. This will remove the need to have a configure option, and it will also simplify Debian package since a single package can be built that will support both Python versions.
This might require some weird autoconf hacks :-/

I would be great if the configure script could introspect the python command found in the PATH to find out which version of Python to build against. This would make it possible to build a pyflame that matches the python versions in the currently enabled virtualenv.
On a related note, it should be possible to build manylinux1 binary packages for pyflames for common versions of Python and upload those packages to PyPI to make it trivial to install pyflame with pip:
https://github.com/pypa/manylinux

That is a pretty good idea, and definitely easier than what I was thinking. When I get a chance to work on this I'll start as a first step.

I have a POC of this in the deephack branch, which implements this by abusing C pre-processor macros. It can build an executable capable of profiling both py2 and py3 processes.
Things to do before I submit a real PR:

redo all of the code that figures out what version of python the target executable is (major task)
remove a few hard-coded things


Support for static fields in @ScalaJSDefined classes

Tracking issues for  https://groups.google.com/forum/#!topic/scala-js/v3gue_-Tms4

:+1:

@sjrd
I working on mutation's in Relay (https://facebook.github.io/relay/docs/api-reference-relay-mutation.html#fragments-static-property),
Relay.Mutation class has static field fragments in our mutation class we must define fragments.
@ScalaJSDefined
class AddTodoMutation(props : js.Dynamic) extends RelayMutation(props) {
...
}

val addTodoCtor = js.constructorOf[AddTodoMutation]
val addTodoFragFunction: js.Function = ..
addTodoCtor.fragments = js.Dictionary("viewer" -> addTodoFragFunction)

this indeed solved one of two problems but for other problem  react-relay looking for fragments field in base class(RelayMutation) constructor https://github.com/facebook/relay/blob/fbf8c50825ff609a5ab101a934f0b9e165ab5d9b/src/mutation/RelayMutation.js#L230
can we work around this problem .. ?

I don't understand what is the problem? Can you elaborate?

sure ,
https://github.com/facebook/relay/blob/fbf8c50825ff609a5ab101a934f0b9e165ab5d9b/src/mutation/RelayMutation.js#L230

 var fragments = RelayDeprecated.getMutationFragments(this.constructor);

  getMutationFragments: function getMutationFragments(Mutation) {
	    var queries = Mutation.queries;
	    if (queries && !Mutation.fragments) {
	      RelayDeprecated.warn({
	        was: Mutation.name + '.queries',
	        now: Mutation.name + '.fragments'
	      });
	      Mutation.fragments = queries;
	    }
	    return Mutation.fragments;  // its looking for static fragments field
	  }

in runtime fragments is undefined for AddTodoMutation  , what i really want is my fragments should be available in constructor.
addTodoCtor.fragments = js.Dictionary("viewer" -> addTodoFragFunction)   this line is not useful in above scenario.

Isn't this.constructor exactly eq to js.constructorOf[AddTodoMutation] at that point?

no

Er then ... what is it? Maybe that's the problem?

hmm , this.constructor returning RelayMuttion(BaseClass) constructor

in theory my guess is that   js.constructorOf[AddTodoMutation].fragments = ..  this should copy fragments to all base class constructors if possible ?

No, definitely not. That is not at all how things are supposed to work. If this.constructor is RelayMutation, it is normal that this.constructor.fragments would not take the fragments from AddTodoMutation which is a subclass of RelayMutation. Imagine what would happen if that were the case, and there were two sublcasses of RealyMutation, each defining their own fragments. That just does not make sense.
I guess the bug is somewhere else, and this does not refer to the appropriate thing, at that point.

I guess the bug is somewhere else, and this does not refer to the appropriate thing, at that point

yeah , i just tested pure js classes , super class this.constructor is referring to subclass constructor . may be its related to @ScalaJSDefined / ???,  i'll do more research tomorrow :)

Its happening in fullOptJS mode only
fullOptJS :

fastOptJS :

Steps to reproduce :
js code

<script>
    "use strict";

    function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

    var BaseMutation = (function () {
        function BaseMutation() {
            _classCallCheck(this, BaseMutation);
        }

        BaseMutation.prototype.checkThis = function checkThis() {
            console.log(this.constructor);
            console.log(this.constructor.fragments);
        };

        return BaseMutation;
    })();
</script>

scala code :
@js.native
class BaseMutation extends js.Object {
  def checkThis(): Unit = js.native
}

@ScalaJSDefined
class ScalaMutation extends BaseMutation

  new ScalaMutation().checkThis() // check console this is referring to different constructors in two output modes

@sjrd  relay team  fixed fastOptJS  issue https://github.com/facebook/relay/issues/445  , atleast we can work in fastOptJS mode for now until we hit by another road block(if any) ;) ,  can we target this fullOptJS issue for 0.6.6 ?

+1


copr: Switch to use nanosecs for Duration

Signed-off-by: Dian Luo<EMAIL_ADDRESS>
What have you changed?

Removed the fsp in current Duration implementation.
Changed to use the same memory format for the Duration.

Previous PR: https://github.com/tikv/tikv/pull/6434
What is the type of the changes?

Engineering (engineering change which doesn't change any feature or fix any issue)

How is the PR tested?

Unit test

/run-all-tests

/run-all-tests

/run-all-tests


"timestamp-bkp-begin": "" - must not be empty

Please check value "timestamp-bkp-begin": "". It is always empty but required value for our message processing. Every backup should have a start time, so why it is empty? Could you please correct that?
Thanks
Robert

It seems this issue was fixed in #29 : previously the timestamp-bkp-begin was indeed an empty string.
The fix is included in the release I created yesterday: v1.0-beta5. Could you please try it on a test system to make sure it fixes the issue?


Large references

Here is my to-do list for making strobealign work with references with more than $2^{32}$ strobemers. This will resolve #277 and #285.

[x] Counters (unique strobemers, total no. of strobemers etc.) need to be bumped from unsigned to uint64_t. This can be done unconditionally as it’s not a memory or performance issue when these are just always 64 bit.
[x] Audit types: search for int and unsigned and check whether they need to be replace with bucket_index_t, size_t, uint64_t
[x] Switch the bucket_index_t typedef to uint64_t
[x] Test whether this modified versions works with large references.
[ ] Extract the hash table part of StrobemerIndex into a separate class (let’s call it Hashtable here)
[ ] Make bucket_index_t a template parameter of that class
[ ] Decide at runtime whether to use a Hashtable<uint32_t> or Hashtable<uint64_t> (use a virtual function or a function pointer).

Much of the above is done already and the question for me is whether we perhaps want to release a strobealign version now that unconditionally uses 64 bit bucket start indices because I see that it is a bit of work to switch to dynamically deciding which size of indices to use.
For CHM13, the index vector currently needs 1 GiB ($2^{28}$ entries times 4 bytes per entry). That size would double with 64-bit indices, so 2 GiB. Overall memory usage would increase from 13 GiB to 14 GiB. But then, memory usage was 22 GiB before merging #278, so the savings are still huge.

I think its a great idea to unconditionally set it to use 64 bit bucket start indices for now and make a release so that https://github.com/ksahlin/strobealign/issues/277 and https://github.com/ksahlin/strobealign/issues/285 gets resolved. Let's do that!
As you say, going from 1gb to 2gb in human or 2gb to 4gb in rye) is negligible compared to flat vector memory.

When we met yesterday, we decided to close this issue for now as we think it is quite some work to dynamically switch between 32 and 64 bit indices. Always using 64 bits is good enough. Also, we are considering some further memory reduction, which are no longer possible if the index vector only uses 32 bits.


Dropdown Select All button fails if there is no query

fixed with https://github.com/evidence-dev/evidence/pull/2067


 Hotbar Size setting separate from GUI Scale

The hotbar in the mod is quite large by default. However, GUI Scale 6 is the only setting which scales pixels equally on my device. Could you create a setting only to adjust the size of the hotbar on screen (keeping it pixel-perfect), while leaving the other menus the same?

I didn't add it yet because of the GUI Scale option from JE, that makes the hotbar much smaller with a HUD Scale of 1 and lower GUI Scale values, for example.
The better solution, I think, is to make an option that restores something close to the JE edition default max GUI scaling, as a "Mobile Interface" option, like PS Vita Edition.

My issue is that all the menus are scaled perfectly except the hotbar. Everything else looks great.

HUD Scale 1 was always my personal preference. Config option maybe?

Thanks for the suggestion, added in version 1.3.3


Webworker

Polishing the web-worker example.

Writes out long running worker threads messages to HTML instead of console.log
Proper terminates a worker when the Free long running Worker buttons is clicked, since you can not "free" a web worker.

You will probably want to squash my commits upon merge. This is not easily done from my end, since my commits are not consecutive in regard to the nuxt.js repo.

Codecov Report

Merging #3480 into dev will decrease coverage by 0.08%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             dev    #3480      +/-   ##
=========================================
- Coverage   99.1%   99.01%   -0.09%
=========================================
  Files         18       18
  Lines       1112     1112
  Branches     299      299
=========================================
- Hits        1102     1101       -1
- Misses        10       11       +1

Impacted Files
Coverage Δ

lib/core/nuxt.js
96.2% <0%> (-1.27%)
:arrow_down:

Continue to review full report at Codecov.

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

Thanks @dotnetCarpenter

Thanks for demo.
It is mentioned there that hot module reloading is not supported in nuxt 1.4 and below. What about nuxt-edge? From what I see it is not supported there too

It's a good question. I think we should already start moving all examples to nuxt-edge. That will help to make sure that on release of nuxt 2 all the examples are working.
Maybe for next release it would make sense to create a separate branch for new release. But as it is now current src in dev branch is nuxt-edge and it would make sense if rest of examples would match it.
Probably this needs to be discussed with @Atinux @pi0 @clarkdo

@husayt I just tried your suggestion and while HMR kinda of works, it does har page refresh and I get the following error in Firefox: The connection to http://localhost:3000/__webpack_hmr was interrupted while the page was loading.
My nuxt.config.js looks like this:
module.exports = {
  /*
  ** Headers of the page
  */
  head: {
    title: 'web-worker',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'Nuxt.js project' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress bar color
  */
  loading: { color: '#3B8070' },
  plugins: [
    { src: '~/plugins/inject-ww', ssr: false } // web workers are only available client-side, hence ssr: false
  ],
  /*
  ** Build configuration
  */
  build: {
    /*
    ** Run ESLint on save
    */
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }

      // @see https://github.com/nuxt/nuxt.js/pull/3480#issuecomment-404150387
      config.output.globalObject = "this"

      if (isClient) { // web workers are only available client-side
        config.module.rules.push({
          test: /\.worker\.js$/, // this will pick up all .js files that ends with ".worker.js"
          loader: 'worker-loader',
          exclude: /(node_modules)/
        })
      }
    }
  }
}

@husayt Ok, the page reload only happens when I edit the web-worker code which makes sense, since it's a nuxt.js plugin, which could be server-side and the server would have to run the code in order pick up changes.
I'll update this PR with a nuxt.js 2.0 ready example and you guys can choose to merge it if you and when you want.

@husayt https://github.com/nuxt/nuxt.js/pull/3531

Thanks @dotnetCarpenter . One question, I was wondering why did you place worker js files in assets folder?

@husayt because all files in the assets folder gets picked up by webpack and Babel transpiled. It also enables versioning. See https://nuxtjs.org/guide/assets for more info. If I put them in the static folder the files are just served via HTTP. Since they are not .vue files, I thought the assets folder made the most sense. I could be wrong, so if you have a better suggestion, I'm listening.
AFAIK the webpack config is also only applied to the assets folder.
      if (isClient) { // web workers are only available client-side
        config.module.rules.push({
          test: /\.worker\.js$/, // this will pick up all .js files that ends with ".worker.js"
          loader: 'worker-loader',
          exclude: /(node_modules)/
        })
      }


Preview goes to /undefined

When I preview edits, the site goes to <my url>/undefined which returns a 404.
The preview functionality works when I navigate to the correct page afterwards, but why is it initially loading /undefined?

Have you got your linkResolver set up properly? It might be returning undefined, which is then being cast to a string.


npm/npmjs/-/node-releases/1.1.11

Type: Missing
Summary:
npm/npmjs/-/node-releases/1.1.11
Details:
Add Apache-1.1 license
Resolution:
Auto-generated curation. Newly harvested version 1.1.11 matches existing version 1.1.1.
Matching license file(s): package/LICENSE
Matching metadata: registryData.manifest.license: 'MIT'
Affected definitions:

node-releases 1.1.11

You can review the change introduced to the full definition at ClearlyDefined.


style: update prettier eslint and stylelint

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines
[x] tests are included

Description of change

Update ESLint and Stylelint to use official Prettier integration

A couple manual fixes will be needed before this can be merged.
A few upstream bugs will be logged as well.


Unable to share specific credential in a multi credential definition proof challenge.

Wallet has 4 credentials. 2 times name_credential (same credential definition, different data) and 2 times email_credential(same credential definition, but different data). User then receives a proof challenge asking for both types of credentials. To fulfil the proof challenge user has to share  1 name_credential and 1 email_credential. But sine they have 2 of each type they have to choose which ones to share.
Using the following code I accept the proof challenge and I provide it with the filtered proof format containing the credentials I want to share.
   const acceptedRequest = await agent.proofs.acceptRequest({
            proofRecordId: proofRecord.id,
            proofFormats: credentialToShare,
          });

{
	"proofFormats":{
		"indy":{
			"attributes":{
				"f85c5f22-f03c-42cc-b597-1c8b1f292358":[
					{
						"credentialId":"51ce00f7-8351-47da-aa1c-2780f1d92bfb",
						"revealed":true,
						"credentialInfo":{
							"attributes":{
<EMAIL_ADDRESS>							},
							"credentialDefinitionId":"2jYo5xjBZe682KxZpxUyqY:3:CL:84:email_credential",
							"credentialId":"51ce00f7-8351-47da-aa1c-2780f1d92bfb",
							"schemaId":"2jYo5xjBZe682KxZpxUyqY:2:test_email:1.0",
							"credentialRevocationId":"34",
							"revocationRegistryId":"2jYo5xjBZe682KxZpxUyqY:4:2jYo5xjBZe682KxZpxUyqY:3:CL:84:email_credential:CL_ACCUM:2a79447c-def7-4f85-8f87-9507ae4b053f",
							"methodName":"indy"
						}
					}
				],
				"eed6a94d-e0d9-41a7-8390-34e1e55873d9":[
					{
						"credentialId":"fc89abd0-d4b6-4449-b436-950aad03558b",
						"revealed":true,
						"credentialInfo":{
							"attributes":{
								"name":"Miha Novak"
							},
							"credentialDefinitionId":"2jYo5xjBZe682KxZpxUyqY:3:CL:83:name_credential",
							"credentialId":"fc89abd0-d4b6-4449-b436-950aad03558b",
							"schemaId":"2jYo5xjBZe682KxZpxUyqY:2:test_name:1.0",
							"credentialRevocationId":"45",
							"revocationRegistryId":"2jYo5xjBZe682KxZpxUyqY:4:2jYo5xjBZe682KxZpxUyqY:3:CL:83:name_credential:CL_ACCUM:dfc725b9-b9ca-49cf-8c54-20c833c0667c",
							"methodName":"indy"
						}
					}
				]
			},
			"predicates":{

			}
		}
	}
}

Agent in this case completely disregards what I added in the proofFormats parameter and defaults to the credentials it deems that fulfil the proof challenge.
Using this code:
  const _credentialsForRequest = await agent.proofs.getCredentialsForRequest({
        proofRecordId: proofExchangeRecord[0].id,
      });

I get this:
{
	"proofFormats":{
		"indy":{
			"attributes":{
				"966cdcce-c812-4e3d-97d9-1a4be00acdd0":[
					{
						"credentialId":"186946ff-823f-4c05-8362-6f3ff0fdcd43",
						"revealed":true,
						"credentialInfo":{
							"attributes":{
<EMAIL_ADDRESS>							},
							"credentialDefinitionId":"2jYo5xjBZe682KxZpxUyqY:3:CL:84:email_credential",
							"credentialId":"186946ff-823f-4c05-8362-6f3ff0fdcd43",
							"schemaId":"2jYo5xjBZe682KxZpxUyqY:2:test_email:1.0",
							"credentialRevocationId":"33",
							"revocationRegistryId":"2jYo5xjBZe682KxZpxUyqY:4:2jYo5xjBZe682KxZpxUyqY:3:CL:84:email_credential:CL_ACCUM:2a79447c-def7-4f85-8f87-9507ae4b053f",
							"methodName":"indy"
						}
					},
					{
						"credentialId":"51ce00f7-8351-47da-aa1c-2780f1d92bfb",
						"revealed":true,
						"credentialInfo":{
							"attributes":{
<EMAIL_ADDRESS>							},
							"credentialDefinitionId":"2jYo5xjBZe682KxZpxUyqY:3:CL:84:email_credential",
							"credentialId":"51ce00f7-8351-47da-aa1c-2780f1d92bfb",
							"schemaId":"2jYo5xjBZe682KxZpxUyqY:2:test_email:1.0",
							"credentialRevocationId":"34",
							"revocationRegistryId":"2jYo5xjBZe682KxZpxUyqY:4:2jYo5xjBZe682KxZpxUyqY:3:CL:84:email_credential:CL_ACCUM:2a79447c-def7-4f85-8f87-9507ae4b053f",
							"methodName":"indy"
						}
					}
				],
				"dba5129c-f1f5-4014-9b10-1072d2ff95a8":[
					{
						"credentialId":"41a30307-7aef-4b6e-83ca-0e847a5da442",
						"revealed":true,
						"credentialInfo":{
							"attributes":{
								"name":"Name 2"
							},
							"credentialDefinitionId":"2jYo5xjBZe682KxZpxUyqY:3:CL:83:name_credential",
							"credentialId":"41a30307-7aef-4b6e-83ca-0e847a5da442",
							"schemaId":"2jYo5xjBZe682KxZpxUyqY:2:test_name:1.0",
							"credentialRevocationId":"44",
							"revocationRegistryId":"2jYo5xjBZe682KxZpxUyqY:4:2jYo5xjBZe682KxZpxUyqY:3:CL:83:name_credential:CL_ACCUM:dfc725b9-b9ca-49cf-8c54-20c833c0667c",
							"methodName":"indy"
						}
					},
					{
						"credentialId":"fc89abd0-d4b6-4449-b436-950aad03558b",
						"revealed":true,
						"credentialInfo":{
							"attributes":{
								"name":"Miha Novak"
							},
							"credentialDefinitionId":"2jYo5xjBZe682KxZpxUyqY:3:CL:83:name_credential",
							"credentialId":"fc89abd0-d4b6-4449-b436-950aad03558b",
							"schemaId":"2jYo5xjBZe682KxZpxUyqY:2:test_name:1.0",
							"credentialRevocationId":"45",
							"revocationRegistryId":"2jYo5xjBZe682KxZpxUyqY:4:2jYo5xjBZe682KxZpxUyqY:3:CL:83:name_credential:CL_ACCUM:dfc725b9-b9ca-49cf-8c54-20c833c0667c",
							"methodName":"indy"
						}
					}
				]
			},
			"predicates":{

			}
		}
	}
}

So even though Aries knows that multiple credentials fulfil the proof challenge it automatically reverts to the first credential that was added per credential definition. In this case for name_credential thats "Name 2" and for email_credential is<EMAIL_ADDRESS>

Hey @trta2352, thanks for raising this issue, which version of Credo are you using?

Also -- which version of the proof protocol are you using?

This are all related packages:
  "@aries-framework/anoncreds": "0.4.2",
   "@aries-framework/anoncreds-rs": "0.4.2",
   "@aries-framework/askar": "0.4.2",
   "@aries-framework/core": "0.4.2",
   "@aries-framework/indy-sdk": "^0.4.2",
   "@aries-framework/indy-vdr": "0.4.2",
   "@aries-framework/react-hooks": "0.5.0",
   "@aries-framework/react-native": "0.4.2",
   "@hyperledger/anoncreds-react-native": "0.1.0",
   "@hyperledger/aries-askar-react-native": "0.1.0",
   "@hyperledger/indy-vdr-react-native": "0.1.0",

And we are using v1 version of the proof protocol.
Just for reference here is also our agent setup:
 const config: InitConfig = {
        label: 'redacted-wallet-label',
        logger: ariesAnalytics,
        autoUpdateStorageOnStartup: true,
        walletConfig: {
          id: walletId,
          key: code,
        },
      };

      // ID manager uses V1 protocol which is only compatible with LegacyIndyCredentialFormatService
      const legacyIndyCredentialFormatService = new LegacyIndyCredentialFormatService();
      const legacyIndyProofFormatService = new LegacyIndyProofFormatService();

      const agent = new Agent({
        config,
        dependencies: agentDependencies,
        modules: {
          // Askar handles the wallet functionalities
          askar: new AskarModule({
            ariesAskar,
          }),
          connections: new ConnectionsModule({ autoAcceptConnections: true }),
          credentials: new CredentialsModule({
            autoAcceptCredentials: AutoAcceptCredential.Never,
            credentialProtocols: [
              new V1CredentialProtocol({
                indyCredentialFormat: legacyIndyCredentialFormatService,
              }),
              new V2CredentialProtocol({
                credentialFormats: [
                  legacyIndyCredentialFormatService,
                  new AnonCredsCredentialFormatService(),
                ],
              }),
            ],
          }),
          mediationRecipient: new MediationRecipientModule({
            mediatorInvitationUrl: MEDIATOR_CONNECTIONS_INVITE,
            mediatorPickupStrategy: MediatorPickupStrategy.Implicit,
            mediatorPollingInterval: appConfig.debugApp ? 10000 : 5000,
          }),
          // Proof management
          proofs: new ProofsModule({
            autoAcceptProofs: AutoAcceptProof.Always,
            proofProtocols: [
              new V1ProofProtocol({
                indyProofFormat: legacyIndyProofFormatService,
              }),
              // V2 protocol is setup, but it is not being used.
              new V2ProofProtocol({
                proofFormats: [legacyIndyProofFormatService, new AnonCredsProofFormatService()],
              }),
            ],
          }),
          anoncredsRs: new AnonCredsRsModule({
            anoncreds,
          }),
          anoncreds: new AnonCredsModule({
            registries: [new IndyVdrAnonCredsRegistry(), new IndySdkAnonCredsRegistry()],
          }),
          // indyVdr handles the ledger functionalities.
          indyVdr: new IndyVdrModule({
            indyVdr,
            networks: [
              {
                isProduction: appConfig.testEnv,
                indyNamespace: 'did:sov',
                genesisTransactions: genesis,
                connectOnStartup: true,
              },
            ],
          }),
        },
      });

      agent.registerOutboundTransport(new HttpOutboundTransport());
      agent.registerOutboundTransport(new WsOutboundTransport());

      await agent.initialize();

@TimoGlastra Any suggestions or is upgrading to V2 protocol the only option?

@TimoGlastra Issue resolved. If you provide a custom proof format then selectedCredentials.selfAttestedAttributes is not present.
diff --git<EMAIL_ADDRESS><EMAIL_ADDRESS>index 0d2263e..707afcb 100644
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -107,6 +107,11 @@ let AnonCredsRsHolderService = class AnonCredsRsHolderService {
             if (!linkSecretRecord.value) {
                 throw new AnonCredsRsError_1.AnonCredsRsError('Link Secret value not stored');
             }
+
+            if (!selectedCredentials.selfAttestedAttributes ) {
+                selectedCredentials.selfAttestedAttributes = {}
+            }
             presentation = anoncreds_shared_1.Presentation.create({
                 credentialDefinitions: rsCredentialDefinitions,
                 schemas: rsSchemas,

Ah okay, we should fix this, so reopening this issue. Thanks for figuring this out!


Change display name each flavor on debug

What I have done and why
prodDebug and demoDebug is hardly distinguish each app on the screen.
I changed the app name based on the flavor on debug, except release.

before
after

Now, we can distinguish both at once glance on the screen.

If I ever get into the state where I've deployed both prodDebug and demoDebug to the same device, I just uninstall both and reinstall the one I want to test. It might have happened once a year. Not worth updating the code for.


Text colouring functions simplified.

Hi,
I have my eye on a few issues in Gato that I want to close, and I decided to start with something small. I did basic refactoring on the functions used to colour text and combined two similar functions. I hope this helps with code cleanliness. Please let me know what you think.

The CLI file was accidentally deleted.


In Spanish the synchronized text becomes unreadable.

I write in Spanish, in which there is the letter "eñe" and some vowels use accents: á, é, í, ó, ú. When I do it this way, when I synchronize Fleeting Notes it changes the text and replaces the eñes and accents with strange characters of this type: ÃÂ¡, ÃÂ³, ÃÂº, ÃÂ±. With this, a well-written text in Spanish becomes illegible. I would be grateful for a solution to this problem.

Let me investigate this. Thank you for bringing up this issue!

Thank you very much. Fleeting Notes is a great program.


Fixes #3592. DateField unit tests fail on macos.latest.

Fixes

Fixes #3592

Proposed Changes/Todos

[ ] Add conditional for macos

Pull Request checklist:

[x] I've named my PR in the form of "Fixes #issue. Terse description."
[x] My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
[x] My code follows the Terminal.Gui library design guidelines
[x] I ran dotnet test before commit
[ ] I have made corresponding changes to the API documentation (using /// style comments)
[x] My changes generate no new warnings
[x] I have checked my code and corrected any poor grammar or misspellings
[x] I conducted basic QA to assure all features are working

That can be used in other code, too - not just tests, by the way.

Your suggestion is to only run a unit test that only supports or does not support a certain platform. In this case it is a unit test that runs on all platforms (Windows, Linux and Mac) and there are only constraints in 3 situations on the Mac. I also prefer to use the OSPlatform enum because it is more generic.


Navbars not working in Alpha 4

Hello,
I can't get the navbars to work as expected. Most examples themselves seem to be broken.
http://v4-alpha.getbootstrap.com/examples/sticky-footer-navbar/
http://v4-alpha.getbootstrap.com/examples/justified-nav/
http://v4-alpha.getbootstrap.com/examples/dashboard/
The narrow jumbotron examples gives a 404.
http://v4-alpha.getbootstrap.com/examples/jumbotron-narrow/
Thanks for any suggestion on how to fix the navbars.

Please take a look at the navbar examples found here:
http://v4-alpha.getbootstrap.com/components/navbar/
Also, some of these nabbers have been fixed in the v4-dev branch and can be viewed by cloning the repo and opening them manually. When the next website update gets pushed, then the current state of the examples will be reflected in the links you shared.

Thanks a lot @kkirsche those ones seem to be working fine. I noticed they changed the default navigation style for mobile. The navigation is no longer vertical for small screens. It basically just resizes but remains horizontal. Do you know if they're going to drop the old style or keep both?

v4's navbar widget is still a work-in-progress.

http://v4-alpha.getbootstrap.com/examples/sticky-footer-navbar/
http://v4-alpha.getbootstrap.com/examples/justified-nav/

Duplicate of #17026.

http://v4-alpha.getbootstrap.com/examples/dashboard/

Duplicate of #17816.

The narrow jumbotron examples gives a 404.

Duplicate of #17771.


Ssh2 library not supporting Kex ecdh-sha2-nistp384

With SSH2, Kex ecdh-sha2-nistp384 is not being supported.
SSH handshake failed: Error { code: Session(-5), msg: "Unable to exchange encryption keys" }
sess.method_pref(ssh2::MethodType::Kex, "ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521") -> Error: Error { code: Session(-33), msg: "The requested
method(s) are not currently supported" }
We tried enabling this key algorithm using macro to enable libssh2_ecdsa. Still its not working.
This Kex support is highly needed from SSH2 crate. If this is a bug, please provide and update with fix.
If its intentionally not supported, it would be great if you can provide the support.

This may have been fixed with #334. Please let me know if you need anything else beyond that.

This may have been fixed with #334. Please let me know if you need anything else beyond that.

Thanks for the reply @yodaldevoid .
I tried pulling this libssh2 fix locally and provided this path in toml. Still i see sam error and below are the only supported kex list.
Ok(["diffie-hellman-group-exchange-sha256", "diffie-hellman-group16-sha512", "diffie-hellman-group18-sha512", "diffie-hellman-group14-sha256", "diffie-hellman-group14-sha1", "diffie-hellman-group1-sha1", "diffie-hellman-group-exchange-sha1", "ext-info-c"<EMAIL_ADDRESS>[2024-11-05T20:41:43Z ERROR rscm_Conn] SSH handshake failed: Error { code: Session(-5), msg: "Unable to exchange encryption keys" }
Error: Error { code: Session(-5), msg: "Unable to exchange encryption keys" }
Also any reason why this is not released as a proper version upgrade for ssh2?. If you can mainline changes as a version release , in runtime changes will take care

@yodaldevoid Note that the issue is specific to Windows. It appears to work without problems on Linux with version 0.9.4. Perhaps, this has something to do with the build options used on Windows for the libssh2-sys crate?

@yodaldevoid , on Windows libssh2-sys crate is using wincng instead of openssl.
  if target.contains("windows") {
          cfg.include("libssh2/win32");
          cfg.define("LIBSSH2_WIN32", None);
          cfg.file("libssh2/src/agent_win.c");

          if env::var_os("CARGO_FEATURE_OPENSSL_ON_WIN32").is_some() {
              cfg.define("LIBSSH2_OPENSSL", None);
              cfg.define("HAVE_EVP_AES_128_CTR", None);
              cfg.file("libssh2/src/openssl.c");
              println!("cargo:rustc-link-lib=static=libssl");
              println!("cargo:rustc-link-lib=static=libcrypto");
          } **else {
              cfg.define("LIBSSH2_WINCNG", None);**
              cfg.file("libssh2/src/wincng.c");
          }

we tried downloading openssl and setting env variable but we are facing build compilation issues. I tried manually to run and install make file using nmake but still unable to build with openssl. Do we have any specific requirements and procedure to build with openssl on windows?.
Also there seems to be a bug on wincng for not supporting kex ecdh-sha2-nistp384.
Any fix on either building with openssl or wincng will unblock the issue.

This may have been fixed with #334. Please let me know if you need anything else beyond that.这可能已通过 #334 修复。除此之外，如果您还需要其他任何信息，请告诉我。

When I used ssh2 = "0.9.0" to connect to my switch, which only supports the diffie-hellman-group1-sha1 key exchange algorithm, I encountered an error.
   Finisheddevprofile [unoptimized + debuginfo] target(s) in 0.06s      Runningtarget/debug/switch_sshthread 'main' panicked at src/main.rs:13:22: calledResult::unwrap()on anErrvalue: Error { code: Session(-41), msg: "out of bounds" } stack backtrace:    0: rust_begin_unwind              at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:665:5    1: core::panicking::panic_fmt              at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/panicking.rs:74:14    2: core::result::unwrap_failed              at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/result.rs:1700:5    3: core::result::Result<T,E>::unwrap              at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/result.rs:1104:23    4: switch_ssh::main              at ./src/main.rs:13:5    5: core::ops::function::FnOnce::call_once              at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/ops/function.rs:250:5 note: Some details are omitted, run withRUST_BACKTRACE=full for a verbose backtrace.
However, when I changed the ssh2 version to 0.8, it worked for this switch, but I then faced the following error when connecting to a newer switch:SSH handshake failed: Error { code: Session(-5), msg: "Unable to exchange encryption keys" }
What should I do to resolve this issue?

Building with openssl on Windows should work as long as you use the openssl-on-win32 feature of ssh2. It may be simplest to also use the vendored-openssl feature, though it isn't technically required.


⚠ Turnos 24x7 has degraded performance

In 1e80d31, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 1020 ms

Resolved: Turnos 24x7 performance has improved in 3917b8a.


Module is disabled but I still have notifications displayed

@clementdaubeuf
I configure the module to display notifications for: new orders, new customers, new messages
I disable the module and make an order
So, I shouldn't have notifications for new orders, new customers, new messages but I have

I think when I disable the module, exisiting notifications should also be removed

Fixed by #6


feat: Add support for UFID frames (#136)

This PR implements UFID frames.
This pull includes:

Content::Ufid()
Ufid struct with owner_identifier and identifier fields
remove_all_ufids()
remove_ufid_by_owner_identifier()
tests for the above items

The spec indicates that owner_identifier cannot be the empty string, and that identifier is up to a max of 64 bytes long, but I didn't know where to implement these limitations. Let me know if you have suggestions.
For better display purposes, I also made the impl display for the Ufid struct a little different from the others, where it will first try to decode the identifier bytes into a utf-8 string, and then print the {:x?} format if it fails to decode.
Closes #136

The branch is updated with the changes requested.

Thanks! I left a couple more comments, they are only about how some things are named.
Please also rebase, your other patch seems to give a conflict. I also addressed the warning about Storage::reader :)

The latest push contains the naming changes -- I also figured I'd expand the ufid acronym to the full unique_file_identifier form whenever possible. It does create the occasionally long method name though, e.g., remove_unique_file_identifier_by_owner_identifier().
As for the conflict, I'm force pushing updates, is that causing issues? I can create a new non force push if that would be more mergeabe.

Alright! I have resolved the conflicts and merged by hand. Thank you for your effort!
GitHub does not seem to pick up on the merge, but rest assured that your patch is in main now :)


Add diagram

Changes made in this PR

Created diagram for the vet clinic database

Hi @PrangonGhose ;
Great job! Your project is approved!
There is nothing else to say than... yo can merge!


Migrate Header to MUIv5

Closing this issue since the Header component does not import material-ui packages.


Power BI Licensing

Hi team,
I moved this from here: https://github.com/MicrosoftDocs/powerbi-docs.ru-ru/issues/8
The comment below was machine translated
@TimTacko commented 1 hour ago — with docs.microsoft.com
On the page, in the line "License" it is indicated that the product "Power BI Report Server" requires SQL Server EE with the rights of a system administrator. I believe that there is a translation error, instead of the system administrator, you must specify Software Assurance.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a5e43027-f0e6-928a-8c16-4401ee8d0e52
Version Independent ID: 51c87d50-4316-c0d9-a31c-3163d1557e1f
Content: Comparing Power BI Report Server and the Power BI service - Power BI
Content Source: powerbi-docs/report-server/compare-report-server-service.md
Service: powerbi
Sub-service: powerbi-report-server
GitHub Login: @maggiesMSFT
Microsoft Alias: maggies

assigned to myself to write out 'Software Assurance.'

@CeciAc -- Done. Thanks!


Problem Number | Title | Language

Title -149.Max-Points-on-a-Line
What will change - New problem will be added
Type of Issue -

[x] Adding New Code

Programming Language

[x] C++

Self Check

Ask for issue assignment and wait to get assigned to it before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server ✉ - https://discord.gg/CXksGdn
Happy Coding,

Eagerly waiting.. Assign this issue to add 149. Max-Point-on-a-Line on repo


Add version info to API reference.

Mainly while answering questions on StackOverflow I often find myself looking for information about when a method was added to the code base. It would be particularly helpful if we could have this information presented in the API docs themselves like this:

# selection.selectChild([selector]) · Source · Since v2.0.0

Ideally, the version info on the method would link directly to the tagged release version in the GitHub repository like in above example.
Obviously, this needs to be done twice for every method:

Version when added to the module
Version when added to the main bundle

This is a one-time effort, though, as the information will not change in the future. Should we agree on this I would love to volunteer for assembling the information from the repository's history.

This is a really cool idea!
Have you estimated how many edits would need to be made to implement this across all of D3?
Also the changelog might be a good source, instead of combing through commits.
I'm curious what is your current workflow for researching what release included each method?

@curran You won't have to comb through individual commits, sifting through the tagged releases will do.
Back in 2016 I suggested the introduction of the links to the source code behind every method (Add links from API docs to source. #2922) which, I think, is comparable in time and effort. That feat was completed in roughly 3 weeks total (see checklist). Double that time to account for the extra effort for the main bundle and you are still facing a feasible task. Additionally, the source links might change over time, whereas the links to the version are static information.
My current workflow for finding this information is basically a gut-based approach. Since I have closely followed the development of D3 over the past years I have a relatively precise feeling for when a feature was introduced to the code base. When it comes to finding the exact version, though, I always end up poking around in the version history.

Got it. This sounds promising! Maybe open a PR that makes the change for just one method? Then we can try to get an audience with more D3 maintaners and ask for feedback on the formatting before doing it everywhere.
I see a path forward as:

Do it for just one or a few methods
Await approval or feedback from D3 maintainers
Go ahead and do it to completion, maybe one package at a time

There is an effort to work the API in a more (data-) structured way:

data extraction (by reading all the READMEs from all the D3 modules): https://observablehq.com/d/04e78a8833743a0d
example usage: https://observablehq.com/d/352e015b493a0a84

It's not yet reached the point where it can be used to completely regenerate the API.md file, but it's close. Adding more info to that structure would be very useful.

@Fil Sounds promising. I'll have a look into that. BTW, your second link is dead.

@curran, @Fil As a POC I just created a PR for the d3-fetch module with the suggested edits to the README.md. Since it's a relatively small module with a short release history it took only about 15 minutes to compile the information and edit it into the README file.

two remarks:

The more generic syntax we have atm is · [Source](),  [Examples]() with the examples link being optional.
When there is a change in a method's API, would "since" refer to the first time the method was introduced or to the last time it was modified?

PS: I've shared the second link.

Fair enough, among others I also stumbled upon the points you mentioned:

The more generic syntax we have atm is · Source, Examples with the examples link being optional.

I realized the deviation from the generic syntax and I also tried out  · [Source](), [Examples](), Since vx.x.x. However, I found my approach more pleasing to the eye. It's a matter of taste, though, and I am open for discussion.

When there is a change in a method's API, would "since" refer to the first time the method was introduced or to the last time it was modified?

That's a far more tricky one to answer and I am totally undecided on it. I'd love to hear some pros and cons on this.
Two more things which came to my mind:

Should we start off with v1.0.0 as the lowest version for the modules or should we include v0.x.x versions as well as alpha-, beta-, and other pre-releases? The problem with starting at v1.0.0 is that, although the version info might read v1.0.0, we still have to link to the v0.x.x tagged release info because that's the only place the information about the method's addition is consistently available. Personally, I tend to include the v0.x.x versions as well.

As for the main bundle I suggest starting with v3 as the lowest version, because of the extensive changes to the API from v2 to v3.

When there is a change in a method's API, would "since" refer to the first time the method was introduced or to the last time it was modified?

The more I think about those two options the more I tend to the latter. Knowing when a method was first added just by its name is not of much use if its signature has changed in the meantime. The typical use case would be to look when a method with the documented signature first became available in the API.
To get the most out of it I suggest using the following syntax:

For newly added methods:  · Added vx.x.x
For changed methods:  · Changed vx.x.x

The Changed tag should only be used for changes to the signature, though. The decision about what tag to use should solely be made depending on the interface not the implementation.

Yes, it makes sense this way.

Just pushed an update incorporating the proposed changes for changed method signatures.

I’d like to figure out a nice way of doing this for the new VitePress-powered documentation #3655 but I haven’t come up with one yet.

Documenting the current API versions would be a one-time effort, but this request also presents an ongoing burden for any new or changed API on any future release.
By my estimate, there are currently about 1,200 methods that would need version numbers. Possibly you could parse the release notes and look for links to new API methods of the form “Add d3.foo” and detect when new methods were added… maybe this would also work to detect when methods are changed (“Fix d3.foo”) or accept new options. But the release notes are primarily intended for humans and not machines, and thus any attempt to automatically parse them to understand API changes is unlikely to be robust.
So, I think this is just too much work for me, sorry.


Support location delegation in TWA

Handling extraCommand in DelegationService
Add PermissionRequestActivity for showing permission prompt
Add LocationProviderGmsCore & LocationProviderAndroid (similar to the chromium version) to get location data

@EiraGe I have just created an alpha branch: https://github.com/GoogleChrome/android-browser-helper/tree/alpha

@andreban Oh Great!  Changed base.


Built-in sorts are highlighted as strings

Built-in sorts are highlighted as strings, but shouldn't be:

I suggest using a scope like support.type.sort.agda instead.

Also, Level is not highlighted as a built-in. I don't know if this is intentional or not, but I'll record it here anyways.


Absence data

As documented in the library, the official NOAA API service provides presence-only data, frustrating some analysis requiring absence data for proper aggregation. This is likely because inclusion of absence data could cause a dramatic increase in dataset size, taking it from around a million to many millions of records. That said, for users who can handle those data sizes like through iteration-only aggregation, access to that information is important. Those records can be inferred by using the official NOAA flat file for hauls in RACEBASE.
This issue proposes adding a new keyword to the query method called presence_only which defaults to true. If set to false, the library will transparently download the hauls file and yield records with a zero catch from its iterator after API-returned record exhaustion.
Specifically, if set to false, the library would:

Record the set of species  observed from API service returned results.
Record the set of  hauls (survey/cruse/hauls/species combinations) observed from API service returned results.
Return records normally while records remain available from the API service.
Upon exhaustion of the API service results, download the ~1M hauls flat file.
For each species observed in the API returned results check if that species had a record for each haul (survey/cruse/haul combination) reported in the flat file.
For any hauls without the species record, yield an 0 catch record from the iterator for that haul.

This provides absence data without necessarily requiring a very large dataset to be held in memory at once.

Proposed implementation... I am recommending that:

Cursor become ServiceCursor with Cursor being an interface.
Creating NegativeInferenceCursor which decorates ServiceCursor to provide the functionality described above.
ServiceCursor returned if presence_only is true, NegativeInferenceCursor if false.
Creating NegativeRecord which subclasses Record to represent 0 catch records.

@gizarp - opened #18

The original plan of using the official flat file wont work... it looks like it is no longer updated. However, we may be able to host the same having pulled from the web UI as an official record. Not ideal but looking into it.


Add private attribute for aiding in identifying if a function is a bluesky plan

Description
Adds helper functions that can identify if a function is either a generator co-routine, or has been marked with the @plan decorator.
Motivation and Context
Addresses need for checking whether or not a function is a plan as described in: #1779
How Has This Been Tested?
Added a parametrized unit test that passes & checks both positive and negative expected results. All other tests pass without issue (locally, waiting on CI).
(venv) [jwlodek@dell-rhel8 bluesky]$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

(venv) [jwlodek@dell-rhel8 bluesky]$ python
Python 3.11.9 (main, Jun 19 2024, 10:02:06) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import inspect
>>> from bluesky.plan_stubs import mv
>>> inspect.isgeneratorfunction(mv)
False
>>> exit()

(venv) [jwlodek@dell-rhel8 bluesky]$ git checkout custom-wrapper-identify-plan
Switched to branch 'custom-wrapper-identify-plan'

(venv) [jwlodek@dell-rhel8 bluesky]$ python
Python 3.11.9 (main, Jun 19 2024, 10:02:06) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from bluesky.utils import is_plan
>>> from bluesky.plan_stubs import mv
>>> is_plan(mv)
True
>>> is_plan(print)
False
>>> exit()

Generally, double-underscore is supposed to be reserved for use by the Python language. Some frameworks respect that: IPython has methods like _ipython_key_completions_ and _repr_html_. Some frameworks do not: dask has __dask_tokenize__. All else being equal, I'd rather respect it and go with _is_plan_.
Otherwise, I'm happy with this. Thanks @jwlodek.

@danielballan The failures look tiled related (internal errors on starlette), hopefully "just" miss-matched versions?

@danielballan The failures look tiled related (internal errors on starlette), hopefully "just" miss-matched versions?

I ran into this in my beamline's CI as well. starlette <= 0.38.2 works.

Since test issues appear unrelated, I think I will go ahead and merge?


Hotfix for azure-core-test Throwing Exception During Recording

API changes have been detected in com.azure:azure-core. You can review API changes here
API changes
-     public interface ReferenceManager {
-         ReferenceManager INSTANCE = new ReferenceManagerImpl();
-         void register(Object object, Runnable cleanupAction)
-     }


API: generate more RTK Query for edge

This commit adds more RTQ Query in preparation of porting edge source code to image-builder-frontend

Out of curiosity I checked out your PR on my machine, and it's weird that the generating code is making such linting mistakes. @lucasgarfield there's something off :thinking:


Mock crate improvements

mocking could be made a easier to work with if the declared types for responses derived serialize
currently with_body takes a string slice which means users have to hand construct the json that the response types represent. This could be made simpler to express in test cost with existing mock interfaces with something like like the following.
     let mock = MockRequestDispatcher::with_status(200).with_body(&serde_json::to_string(
            &GetParametersByPathResult {
                parameters: Some(vec![Parameter {
                    name: Some("/test/foo".into()),
                    value: Some("bar".into()),
                    ..Parameter::default()
                }]),
                ..GetParametersByPathResult::default()
            },
        ))

..or go one step further and create a helper method on MockRequestDispatcher that took anything with a serialize impl.
@matthewkmayer what do you think? Realizing compile times are already a pain adding a new derive could make them even longer. I wonder if there's a way do a conditional derive serialize only in the context of cfg(test) or something similar to alleviate that. What's feels off is that rusoto has all the information it needs to construct these strings but doesn't have an interface to produce them.

I think the conditional Deserialize support would be possible with cfg_attr

making a note to self. I'm guessing that would happen somewhere around here


Forbid field names starting with the type name

To take care of cases like that:
type User {
   userId: ID!
   userEmail: String!
}

Added in v1.0.0! 🎉