"Error: Native host has exited" on Chrome and NixOS

NixOS 17.03
Chrome 55.0.2883.87
Browserpass 2.04
Browserpass says "Error: Native host has exited" immediately upon clicking on the icon in Chrome. Trying to look up an entry in my password file has no effect.
I initially tried to install it with Nix, but got an error it couldn't locate the package. I then used the Chrome Web Store and, after the problem first appeared, downloaded it and used your install script to see if that would make a difference (even though the versions are currently the same).
The problem persists even when Chrome is launched from root and the paths seems correct so I'm not sure what could be causing the extension to crash.

First run this and see how many results you have, should be one or two if you installed browserpass only for one browser:
$ locate com.dannyvankooten.browserpass.json

Then look into one of those files that is in the native-messaging-hosts folder - take the path from it to the binary. That is the binary that extension will try to use, /usr/bin/browserpass in my case.
Judging by your error, Chrome tries to execute this app, but fails for some reason. Check permissions on the file, can you execute it as a normal user?
Download this file and try this command - this is exactly what browser extension is doing when it wants to search for github.com passwords, see what this returns:
$ /usr/bin/browserpass < request.hex.txt

The path inside ~/.config/google-chrome/NativeMessagingHosts/com.dannyvankooten.browserpass.json is /home/sophia/.browserpass/browserpass-linux64, which is correct (this was the first thing I checked).
I didn't think to check its permissions, but they're currently set to rwx for myself and r-x for all other users so that doesn't seem to be the problem.
However, if I try to direct your request to the browserpass executable, i.e. /home/sophia/.browserpass/browserpass-linux64 < request.hex.txt, then I get "browserpass-linux64: command not found" despite it very clearly being marked as executable.

I also just installed it for Firefox and get the analogous "Error: Attempt to postMessage on disconnected port" message so it doesn't seem to be a browser issue :confused:

....  then I get "browserpass-linux64: command not found" ....

This is very strange 🤔 It is definitely the cause of your issue, if you can't execute this app via terminal, browsers cannot execute it too...
Not knowing much about NixOS, I'm wondering if the binary formats are compatible with other linuxes?

If you want, you can also compile a binary directly on your hardware to see if it works. If you don't want to spend time on installing Go, dep and the rest of prerequisites, I suggest to use Docker, you only need to run two commands, build an image and compile frontend+backend (instructions here). This will generate browserpass executable file, which then you can try to run and feed it the same request.hex.txt file.

NixOS doesn't use any weird binary formats. You could run apt on it if you wanted and it would work fine. Sometimes there are path issues when things with dependencies are installed through other means (although I find that's much more common when using Nix on Darwin), which is why that was the first thing I check here.  I should probably also mention that if I try directing your request to the full path of the executable rather than from inside the directory then I get a "No such file or directory" error from bash. I thought it could be because it's in a dot directory, but I still get the error when changing that. I also tried updating the JSON file native-messaging-hosts accordingly to see if that solved the issue, but nope.
Not sure what else to try other than a manual build...

I'm not sure what the "allowed_origins" field does in the native messaging JSON file. I currently have two:
chrome-extension://naepdomgkenhinolocfifgehidddafch/
chrome-extension://klfoddkbhleoaabpmiigbmpbjfljimgb/

These are correct entries for "allowed_origins". Besides trying a manual build, I have only one idea - I'm attaching a hello-world app compiled on the same machine where I compiled browserpass-linux64 with the same parameters. Could you try to put it in the same folder where you have browserpass-linux64 and execute it, and see if it works? The .txt extension is only needed to fool Github, you can remove it, it is a binary. I'm trying to find out if the problem is specifically with browserpass binary, or with any binary that I am distributing.
hello-world.txt

That executes fine if I remove the extension and call chmod +x on it. But browserpass-linux64 < request.hex (with the exact same permissions as your hello-world) gives me "browserpass-linux64: command not found."
Just to be clear: it doesn't need to be run with any flags or anything before directing that request? Fwiw, I also tried browserpass-linux64 .{"action":"search","domain":"github.com"}, with and without the dot before the opening brace, and get the same error.

Hmm... No, I can't think of anything extra, it should just work...
"Command not found" is very confusing to me, it sounds as if OS cannot find the binary at the provided location. Did you have browserpass-linux64 and hello-world in the same folders? If not, try putting browserpass-linux64 to the folder where you had hello-world. I'm asking this because recently someone had exactly this problem, they put browserpass-linux64 in a folder which was mounted without executable flag. Otherwise... I don't know, maybe try to rename browserpass-linux64 to hello-world, in case the file name is for some reasons not acceptable (although I can't think of any reason for that).

Apologies, but I think this is a red herring: it's not currently in my path and I didn't call it with ./. However ./browserpass-linux64 < request.hex returns nothing at all.
I just moved the browserpass folder to ~/bin, which is on my path, but I still need need to launch the binary as ./browserpass-linux64 and it's still crashing according to Chrome and Firefox.

Do you have a password stored for github.com? It's not super obvious how to compose this request.hex, but you can try to change domain to something else in the file and see if it can discover the password. This tool is also good, it simplified testing a lot.
When you moved the browserpass to ~/bin, did you adjust the com.dannyvankooten.browserpass.json to point to the new path? Browser will not look in $PATH, it will look only in that file.

Hey @Sophia-Gold, did you have a chance to investigate this further? I can't think of anything I could do on my side to help you right now, so far it looks like you had some success moving the executable from one folder to another, hopefully it's only a matter of adjusting the json file now. Let me know how it goes.

I haven't had time yet, although I did modify the path in the json file when moving the browserpass directory. And I do have an entry for github.com, although even if I didn't that wouldn't explain Chrome telling me the native host is crashing.
I haven't been able to troubleshoot this further since I've been at work where I use OS X. I did install browserpass there as well, via the same means. While it does recognize when I'm on a site that I have a password stored for, but when still gives me "Error: Native host has exited" when it tries to look them up.

Okay, thanks. Not having an entry wouldn't explain the Chrome crash indeed, but it could have explained why you see empty result from the host application itself. I still believe this is the key to your issue on NixOS, find out why the host app doesn't work, make it work via terminal and Chrome will also be able to make use of it.
As for issues on Mac, the folks in #13 would be able to give you some hints, I don't have a Mac myself, but I picked up that starting browser from terminal and having GPGtools installed helped many people - I recommend heading to that issue if you want to also investigate issues on OS X.

@Sophia-Gold you can't run binaries from other systems on NixOS.
Try to run ldd /home/sophia/.browserpass/browserpass-linux64 and look at the ld-linux path. It doesn't exists on NixOS and this is why you see command not found.
You need to patch it with https://nixos.org/patchelf.html.
You can find more at:

http://sandervanderburg.blogspot.com/2015/10/deploying-prebuilt-binary-software-with.html
http://anderspapitto.com/posts/2015-02-28-deb-installation-nixos.html
https://brianmckenna.org/blog/running_binaries_on_nixos

Wow, thanks, that's interesting to know.
Thinking out loud, it would be awesome if someone from the community would create a package for NixOS, just like there is AUR package for ArchLinux - that way no one would need to patch anything.

Hey, isn't this a browserpass package for NixOS? The version is quite old, but at least it already exists. @Sophia-Gold wanna try it out?

I was about to say...there is a Nix package (I also use Nix on OS X), but when I tried to install it at home Nix couldn't find it on channel NixOS 17.03 😕

There's 17.09 now, so why not update your system, especially having atomic updates and rollbacks :) You can't break NixOS.

@Sophia-Gold if you don't see the package, could you perhaps follow up on this with folks at NixOS/nixpkgs/? Making this package available would benefit everyone, and you wouldn't need to patch anything. Also, they should update the version to 2.x, there have been soo many improvements since v1 🙂

I'll close the ticket since the mystery seems to be solved and there is nothing to do in this repo. Thanks to both of you for reporting, doing experiments and eventually finding the answer!

Somehow I totally missed @kamilchm's comments earlier in the week. Thanks for explaining the dynamic linking issue.
I just had to switch channels to 17.09 and then upgrade to get Browserpass. Although in response to "You can't break NixOS"... I've had to rollback to a 16.03 build from May every time I reboot, likely due to Nvidia issues and the lovely fact that I can't disable graphics (even integrated) in BIOS on this machine.
Anyway, the issue with Browserpass remains, but I suspect it's because the rebuild wiped out a ton of stuff...including my chrome config and pass itself...

Because I just spent a couple hours debugging this:
I was getting the error "Error: Attempt to postMessage on disconnected port" on NixOS. I was using the firefox-beta-bin version, which doesn't work! Browserpass only works with non--bin versions on NixOS.
Why? These -bin versions of firefox are pretty much just fetched directly from mozilla and patched up to work on NixOS. The non--bin versions however are built from source. If we don't build from source, we can't get this patch which makes firefox look at the correct place for the native-messaging-hosts jsons.
So, these are the final instructions on how to install browserpass on NixOS:

Install the extension like normal
On NixOS: Make sure you have this in your /etc/nixos/configuration.nix:{ pkgs, ... }: {
  # Note: firefox*-bin versions won't work with browserpass
  environment.systemPackages = [ pkgs.firefox ];
  programs.browserpass.enable = true;
}

and rebuild your system.
On non-NixOS: Make sure you have this in your ~/.config/nixpkgs/config.nix:{
  firefox.enableBrowserpass = true;
}

and reinstall firefox with nix-env -iA nixpkgs.firefox (alternatively nix-env -iA nixos.firefox on NixOS)
Running a browserpass-enabled firefox without installing:$(nix-build --no-out-link '<nixpkgs>' -A firefox \
  --arg config '{ firefox.enableBrowserpass = true; }')/bin/firefox

@maximbaz These instructions would be well suited for a small NixOS section in the readme

Nice job @Infinisil, have a look at https://github.com/browserpass/browserpass/pull/307, is there anything you want me to add?

Specifically, I'm curious if this only applies to Firefox or also to Chrome?


Fixed Mirror.cs FileStream bug

Fixes a bug where certain pieces of software (Libre office/Free office) try to open a filestream with FileMode.CreateNew and FileShare.Read which throws an IO exception.

Thank you @FrankRodelli for reporting the issue and sharing the fix! Very appreciated


Quick Accent Toolbar should be positioned next to what's being written.

Description of the new feature / enhancement
The toolbar where you can see the accent options should appear right next to the text being written, instead of in a fixed position that makes you look away and look for the toolbar.
Scenario when this would be used?
Text fields change positions in your screen, so this would simplify and assign the toolbar position for where its being used. E.g. if I'm writing someting in the Windows Search Bar in the bottom of the screen I have to look all the way up for the accents. And no matter the position option there are always cases where it's too far from where you'd point your eyes.
Mac OS and Mobile phone keyboards in general have this option already, and it's well implemented.
Supporting information
No response

/dup #20306


Reduce build and check times

I can update this with some concrete timing information, but cargo build and cargo clippy times are on the rise as the project grows. This is a tracking issue to improve the situation and discuss sources of slowness.

Anyone is welcome to get involved here, this is a great way to improve the health of the project without deep knowledge of Python packaging.


Step over just continues and doesn't break on next instruction

OS:
Ubuntu 20.04.2 LTS
VSCode:
Version: 1.56.2
Commit: 054a9295330880ed74ceaedda236253b4f39a335
Date: 2021-05-12T16:45:26.313Z
Electron: 12.0.4
Chrome: 89.0.4389.114
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 5.8.0-53-generic snap
CodeLLDB: 1.6.4
configuration:
        {
            "name": "imgui_test (lldb)",
            "type": "lldb",
            "request": "launch",
            "program": "${workspaceFolder}/bin/imgui_test",
            "cwd": "${workspaceFolder}/bin"
        },

Problem:
Step over doesn't actually step over a line and break on the next one, but instead continues on with program execution.

Sorry, but this report does not contain enough information to go on.  Please check out this page.


ScriptHost Site Extension crashing site

Hi,
I've followed the directions in option 1 to install the Script Host as a private site extension. Unfortunately, whenever I do this, it crashes my API. I can't seem to find anything in the logs before this happens.
Note that as soon as I delete the private extension and restart the server, everything works again.
Any recommendations on debugging this?
Thanks,
James

Did some additional investigating and I'm not sure the API crashes, but it becomes unavailable. For example, I have an endpoint /ping, that I use for basic health monitoring. When attempting to hit this after the site has started, I just get a 404.
When running using the extension, are WebJobs the only thing allowed to be run on the web server or something?

Note that the instructions on https://github.com/Azure/azure-webjobs-sdk-script/wiki are overly complicated, and were written at a time where we didn't have Functions app. If you already have a Functions app and just want to use a private Function runtime, use these steps: https://github.com/Azure/azure-webjobs-sdk-script/wiki/Deploying-the-Functions-runtime-as-a-private-site-extension
And yes, when using a Functions app, the Functions runtime takes over the web root, but that is true whether you use private bits or not.


gdu: init at 2.0.0

Motivation for this change
Gdu is intended primarily for SSD disks where it can fully
utilize parallel processing. However HDDs work as well, but
the performance gain is not so huge.
https://github.com/dundee/gdu
Fixes #108359
Things done

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

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

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

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108372 run on x86_64-darwin 1

1 package built:

gdu

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108372 run on x86_64-darwin 1

1 package built:

gdu

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108372 run on x86_64-linux 1

1 package built:

gdu

This is a semi-automatic executed nixpkgs-review which does not build all packages (e.g. lumo, tensorflow or pytorch)
If you find some bugs or got suggestions for further things to search or run please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 108372 run on x86_64-linux 1

1 package built:

gdu


License

Just saw this on Hackernews and it looks very interesting. I was wondering if you could add a license file so others know to what extend they can use this project.

Added, thanks!


ViewModel folder organization under AllReady\Areas\ (low priority)

this is low priority

the Models folder should be renamed to ViewModels
We should organize the ViewModels folder to have the name of the controller as a directory, and then all relevant ViewModel classes go under that directory.
this is a similar refactoring to #857

I noticed that the models in the Allready/Areas/Admin/Models folder are used to query the data and then are sent to the View:

while the controllers that are not in the Admin area use a Model to query the data and then build a ViewModel and pass it to the view, like for example in the CampaignController

where

and

Is it ok to just reorganize the folder moving the files to subfolders or it would be better to create ViewModel objects? I don't think will be necessary because the Models are already highly specialized and not really shared across controllers but I wanted to get your opinion on this.

@danielepo
How the ViewModel is built is irrelevant. The ViewModel may be built by a MediatR query handler, or as your code snippet above shows, it may be constructed by the controller from a model and then a ViewModel built from that model by some other means.
In a perfect world, all ViewModels would be built by MediatR handlers, and the controllers would simply pass back the ViewModel to the view (and I would like to see AllReady move in this direction going forward)
Right now, this is a hard pattern to use in AllReady because:

the same ViewModel is dragged across all action methods of a controller instead of a ViewModel optimized per PRG.
some ViewModels are shared across multiple controllers.
some ViewModels (as well as Models) contain extension methods that do all sorts of things they should not do (database calls). These extension methods are used by other objects that have no business interacting with said ViewModel.

Issue #994 is an example of this.
For now, I would concentrate on the renaming of the folder, the creation of sub-folders based on the controller and potentially renaming any classes that have the name "Model" in them to "ViewModel"
The term "Model" (at least in AllReady) refers to a class that is a representation of a database table. I find it confusing that we're using the term "Model" to refer to classes returned to the View when we're talking about items in \Areas\Admin, but the term "ViewModel" is used for classes returned to the View for items not in \Areas\Admin.
They should all be referred to/renamed to "ViewModel".

@mgmccarthy  thank you very much for your explanation, I really appreciate it!

@tonysurma, this Issue can be closed


Resolve undefined instances in docs where available

Description
There is a number of | undefined | values in our documentation. This PR is an attempt to reduce their number.
Actions

Added comments for a few missing parameters and functions.
Moved away from OpenZeppelin documentation inheritance, as it is not in line with out documentation style.

Note
The current compiler (0.8.16) generates 1385 instances of | undefined | and the latest version (0.8.18) generates 1263 instances of | undefined |. Once we upgrade, we shall get rid of a few additional cases of undefined.
Checklist

[N/A] Verified code additions
[x] Updated NatSpec comments (if applicable)
[x] Regenerated docs
[x] Ran prettier
[N/A] Added tests to fully cover the changes

This PR changed the number of | undefined | occurrences from 3672 to 1385, so they are reduced by more than a half 🦾


Double output in console

Don't know this is by design, but it appears that the autorun commands go off twice.
1-gdb-set target-async on
2-environment-directory "c:\\dev\\abc/out/obj"
3-target-select remote localhost:4444
undefined=thread-group-added,id="i1"
Reading symbols from c:\dev\abc/out/use/A_Myriad_A_5_9.elf...
done.
Not implemented stop reason (assuming exception): undefined
target remote localhost:4444
monitor interface=0
monitor port=0
monitor speed=500000
monitor type=0
monitor unit=2
monitor connect
4-stack-list-frames 0 20
target remote localhost:4444
A program is being debugged already.  Kill it? (y or n) [answered Y; input not from terminal]
Remote debugging using localhost:4444
0x0000a408 in CanOpen_GetSetS16 (WriteBOOL=0 '\000', DataU8Ptr=0xa401 "") at CanOpenDef.h:132
132             else          { ((U16Type*)CanOpenDataU8Ptr)->DataU16 = (U16)*VarS16Ptr; }
Not implemented stop reason (assuming exception): undefined
monitor interface=0
monitor port=0
monitor speed=500000
5-stack-list-frames 0 20
monitor type=0
monitor unit=2
monitor connect
Failed to run command `stack-list-frames 0 20`: Cannot access memory at address 0x4
An error occured: Cannot access memory at address 0x4
Failed to run command `stack-list-frames 0 20`: Cannot access memory at address 0x4
An error occured: Cannot access memory at address 0x4

which one of those are your autorun commands? gdb-set, environment-directory and target-select are predefined ones which are always executed first

{
    "version": "0.4.2",
    "configurations": [
        {
            "name": "Debug GDB",
            "type": "gdb",
            "request": "attach",
            "target": "localhost:4444",
            "remote": true,
            "printCalls": true,
            "executable": "${workspaceRoot}/Sw/A_XMC/out/use/A_Myriad_A_5_9.elf",
            "cwd": "${workspaceRoot}/Sw/A_XMC/out/obj",
            "autorun": [
                "target remote localhost:4444",
                "monitor interface=0",
                "monitor port=0",
                "monitor speed=500000",
                "monitor type=0",
                // "monitor protocol=0",
                "monitor unit=2",
                "monitor connect"
            ]
        }
    ]
}

A program is being debugged already.  Kill it? (y or n) [answered Y; input not from terminal]
I think GDB calls those again, the code only runs the commands once

Also see this for the implementation: https://github.com/WebFreak001/code-debug/blob/master/src/gdb.ts#L125-L133
Note: javascript promises (the then + callback) can only be called once (javascript ensures that)

Ok, I removed target remote localhost:4444 and it disappeared. It's odd because I always needed that in an earlier version of this plugin.
Still trying to trick my GDB debugger to think that it's paused.

Not implemented stop reason (assuming exception): undefined
Here it tries to pause, but because it gets called before finishing the starting up it then thinks its resumed

You mean that the debugger tries to stop before the autorun commands have run?

Thats partly correct. the debugger sends a "Stop" signal to the UI so you get the actions like stepping and resuming and then sends a "Start" signal to the UI when the autorun commands have run. Those signals are only for the UI though

Well, what I'm trying to accomplish is to trick the debugger into thinking that it's paused. Would leaving out "Start" after the autorun do that?
I tried with a more standard
{
    "version": "0.4.2",
    "configurations": [
        {
            "name": "Debug GDB",
            "type": "gdb",
            "request": "attach",
            "target": "localhost:4444",
            "remote": true,
            "printCalls": true,
            "executable": "${workspaceRoot}/Sw/A_XMC/out/use/A_Myriad_A_5_9.elf",
            "cwd": "${workspaceRoot}/Sw/A_XMC/out/obj",
        }
    ]
}

but I still got the Not implemented stop reason
1-gdb-set target-async on
2-environment-directory "c:\\dev\\VdW\\Myriad_trunk/Sw/A_XMC/out/obj"
3-target-select remote localhost:4444
undefined=thread-group-added,id="i1"
Reading symbols from c:\dev\VdW\Myriad_trunk/Sw/A_XMC/out/use/A_Myriad_A_5_9.elf...
done.
Not implemented stop reason (assuming exception): undefined
4-stack-list-frames 0 20
5-data-evaluate-expression ArOS_1msTimerU32
6-stack-list-variables --thread 1 --frame 0 --simple-values

This is a bug. I will fix it later today. I just need to set a boolean "crash" if the stop gets called before starting. Then when its finished it can immediately stop

Not sure if this is resolved.
1-gdb-set target-async on
2-environment-directory "c:\\dev\\abc/Sw/A_XMC/out/obj"
3-target-select remote localhost:4444
undefined=thread-group-added,id="i1"
Not implemented stop reason (assuming exception): undefined
monitor interface=0
monitor port=0
monitor speed=500000
monitor type=0
monitor unit=2
monitor connect
add-symbol-file ../use/A_Myriad_A_5_9.elf 0x8020000
4-stack-list-frames 0 20
monitor interface=0
monitor port=0
monitor speed=500000
monitor type=0
monitor unit=2
monitor connect
add-symbol-file ../use/A_Myriad_A_5_9.elf 0x8020000
add symbol table from file "../use/A_Myriad_A_5_9.elf" at
	.text_addr = 0x8020000
(y or n) [answered Y; input not from terminal]
Reading symbols from c:\dev\abc\Sw\A_XMC\out\obj/../use/A_Myriad_A_5_9.elf...
done.
Cannot access memory at address 0xa404

ok this is weird now

@csholmq Can you still reproduce that?


turbo run build --graph=my-graph.png not working

What version of Turborepo are you using?
1.4.6
What package manager are you using / does the bug impact?
Yarn v1
What operating system are you using?
Windows
Describe the Bug
when I do turbo run build --graph=my-graph.png it doesn't make an image file.
Expected Behavior
I should get an image with the graph
To Reproduce
$ turbo run build --graph=my-graph.png

 WARNING  `turbo` uses Graphviz to generate an image of your
graph, but Graphviz isn't installed on this machine.

You can download Graphviz from https://graphviz.org/download.

In the meantime, you can use this string output with an
online Dot graph viewer.

digraph {
        compound = "true"
        newrank = "true"
        subgraph "root" {
                "[root] ___ROOT___#build" -> "[root] ___ROOT___"
                "[root] docs#build" -> "[root] tsconfig#build"
                "[root] docs#build" -> "[root] ui#build"
                "[root] tsconfig#build" -> "[root] ___ROOT___#build"
                "[root] ui#build" -> "[root] tsconfig#build"
                "[root] web#build" -> "[root] tsconfig#build"
                "[root] web#build" -> "[root] ui#build"
        }
}

I have graphviz installed

Hmm got it - thanks for that info - this is how we check graphviz is installed, can you ensure this is working outside the context of turbo by running:
dot -v

and ensuring you get return?
For example on my system this looks like:
1 > dot -v
dot - graphviz version 3.0.0 (20220226.1711)
libdir = "/opt/homebrew/Cellar/graphviz/3.0.0/lib/graphviz"
Activated plugin library: libgvplugin_dot_layout.6.dylib
Using layout: dot:dot_layout
Activated plugin library: libgvplugin_core.6.dylib
Using render: dot:core
Using device: dot:dot:core
The plugin configuration file:
	/opt/homebrew/Cellar/graphviz/3.0.0/lib/graphviz/config6
		was successfully loaded.
    render	:  cairo dot dot_json fig gd json json0 map mp pic pov ps quartz svg tk visio vml vrml xdot xdot_json
    layout	:  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout	:  textlayout
    device	:  bmp canon cgimage cmap cmapx cmapx_np dot dot_json eps exr fig gd gd2 gif gv icns ico imap imap_np ismap jp2 jpe jpeg jpg json json0 mp pct pdf pic pict plain plain-ext png pov ps ps2 psd sgi svg svgz tga tif tiff tk vdx vml vmlz vrml wbmp webp xdot xdot1.2 xdot1.4 xdot_json
    loadimage	:  (lib) bmp eps gd gd2 gif jpe jpeg jpg pdf png ps svg webp xbm

This is likely going to look different since you're on Windows.
Also, if you're immediately blocked by this - here is your graph from an online generator!

I tried to install graphviz twice from here, but it still doesn't work.
These are the installers I tried:
graphviz-5.0.1 (64-bit) EXE installer
graphviz-4.0.0 (64-bit) EXE installer

Not 100% sure this will fix the issue, but it looks like we were using the wrong flag in our graphviz-detection check. If you run dot -V from the terminal, do you get a version displayed?
Flag fix: https://github.com/vercel/turborepo/pull/1954

Hmm, I tried the 5.0.1 installer linked above and got:
C:\Users\greg>dot -V
dot - graphviz version 5.0.1 (20220820.1526)

I did have to start a new terminal to pick up an updated %PATH% variable, maybe that's the problem?
@JacobWeisenburger can you determine how to run graphviz normally on your system? Then we can probably update our check to account for it.

I was able to get it working. I think it was because I didn't add to the system PATH.

When I did this, it worked:


Pending Trips Backend

What is a quick description of the change?
Created the majority of the backend infrastructure for the pending trips system.
Is this fixing an issue?
none
Are there more details that are relevant?
Summary of changes in each file:

trip-view.js: Enum that defines the "trip views" for the pending trip invites feature.
database.js: Update constants to include new collaborator uid fields and additional field for RawTripData collaborator email field.
ViewActivites/index.js: Updated trip collaborators uid arr field to accepted collaborators field in componentDidMount.
edit-trip-button.js: Replaced 'props.formattedTripData(RawTripData obj) withprops.tripData` (TripData obj).
ViewTrips/indexjs: Added state tripView to specify the current "view" as well as replacing defaultFormData with tripData that comes from trip.js.
save-trip-modal.js: use TripData rather than RawTripData to support multiple trip page views.
trip-utils.js: Add getCollaboratorField and updated formatTripData (and associated) functions to support multiple trip views.
trip.js: Updated TripData typedef and pass tripData to EditTripButton rather than RawTripData.
trips-container.js: Incorporate tripView prop to grab the trips corresponding to the current view.

Check lists (check x in [ ] of list items)

[x] Test written/updating
[x] Tests passing
[x] Coding style (indentation, etc)

Unit tests written/updated in trip-utils.js.
The new functionality of various "trip views" was tested manually by updated the tripView state in ViewTrips/index.js. This manual testing consisted of:

When new trip is created:

Only current user can see the trip in active view.
Other invited users can only see the trip in pending view.

Upon editing a trip:

Rejected users do not show up.
Pending and accepted users can be removed from a trip.

A trip shows up in the rejected or accepted view when manually moving the user uid from pending uid array to the respective uid arrays..

Any additional comments?

Approved as long as the comments I left are addressed before merging.

Approved as long as the comments I left are addressed before merging.

All addressed 😄 !


Adds candidate node list and tracking for nodes who have pending token movements

Builds upon the refactor in https://github.com/onflow/flow-core-contracts/pull/321
Adds Pending Token Movements Dictionary
Adds a stored dictionary that represents nodes and delegators who have submitted a transaction to move tokens between buckets in some way. They are added to this record when they submit their transaction, not when the system chunk checks.
At the end of the epoch, when the moveTokens function is called, the function will only iterate through nodes and delegators who have submitted requests to move tokens, instead of checking all of the nodes and delegators.
This dictionary is cleared when the moveTokens function is called. Nodes who's unstaked tokens are moved to unstaking are automatically added to the dictionary for the next epoch.
This should significantly improve performance for the end epoch transactions.
This did not require any new tests because the existing tests were sufficient.
Adds a Candidate Node List
A candidate node is defined as a node who is not participating/staked in the current epoch, but has committed enough tokens to participate in the next epoch.
The candidate node list is a dictionary that maps roles to an array of node IDs:
{UInt8: [String]}

This is added to make the random slot selection process easier. In the next PR, I'll add a feature similar to what was included in https://github.com/onflow/flow-core-contracts/pull/309 but this process will be much more efficient with the candidate node list because it can select nodes for each role separately instead of having to do them all in one loop.
Some tests were added to test this list as well as some testing utility functions
Adds Events for Unstaking Requests
Events were added to mark when a node or delegator requests to unstake, indicating how much they requested
Additional TokensUnstaked event emissions were added on unstaking requests when tokens in the commited bucket are moved to the tokensUnstaked bucket. it isn't a full unstaking per se, but it matches the rest of the patterns that TokensUnstaked is emitted when tokens are moved into the tokens unstaked bucket.

@jordanschalm @satyamakgec @peterargue I've just pushed my changes based on your comments and our discussions this week about candidate lists and access node minimums, so they're ready for review when you get the chance. No worries if you don't get to it until monday


MacVim deletes searcch string of other apps even with MMShareFindPboard set to false

I have MMShareFindPboard set to false so that MacVim's search string doesn't interfere with that of other Cocoa apps.  (There's nothing worse than e.g., hitting Cmd-F in Safari only to find the little search box pre-populated with something like \(foo\|bar\)\+.)
I've noticed however that MacVim will clear another app's search string.
Reproduce: Open Safari, go to some webpage, and search (Cmd-F) for some string that is present on the page.  Maybe hit Cmd-G to go to the next instance.  Do not close the "find bar" in Safari.  Then Cmd-Tab to an open MacVim document (or just open one afresh) and hit /; enter a search string and hit .  Then Cmd-Tab back to Safari and observe that, while the find bar is still open and occurrences of your search string are still highlighted, your search string is gone, and Cmd-G no longer works because it doesn't know what string it should be looking for the next occurrence of.

additionally, with some plugins like better-whitespace, Safari's search string will be last search to clear whitespaces.

Can confirm this happens. Will look into it.


Check to see whether user has fasterq-dump installed

If users have older versions of sra-tools installed, grabseqs sra will fail--we can avert this!

Actually, more broadly should check to see whether the dependencies are installed. Not guaranteed they'll come in with conda if users install via pip


Can't serve as a server

Logs:
+ exec python3 -m SimpleHTTPServer 8000
/apps/el-gen/.venv/bin/python3: No module named SimpleHTTPServer

https://github.com/ghickman/classify/issues/16


Feat navbar

Helooo 🍉
In this PR I've:

changed syntax of components from function to arrow function
added Navbar
installed ui components ( dropdown menu, icons ) from radix ui

Then I've been working on some UI fixes that Jordane spotted/suggested:
Dropdown menu (on mobile)

capitalize items
changed the hove effect to underline
used padding instead of margin to space element.
used an hamburger icon instead of ... for the Trigger.
made sure that the menu closes when changing the screen size to >= md

On Desktop

Capitalize the items in the menu/navbar
Underline the menu items so it's clear it's actionable.
set your logout icon to have the same size than the avatar to look a tiny bit better / homogeneous.
centered items using flex rather than padding

Then I made the logo into a link to '/' page
I'll wait for review 🐬

I just committed a tiny change by adding an outline-none on the items - was a bit weird on Chrome.
Also removed the cursor-pointer from the Avatar placeholder. The picture won't be actionable.
OK to merge for me. @ssim22 second thought?

OK to merge.


Extremely poor ES6 module import syntax for default exports

(my original comment on the ES6 modules thread: https://github.com/Microsoft/TypeScript/issues/2242#issuecomment-80935521)
Here's a challenge: ask the average programmer what this soon-to-be-valid TypeScript code does:
import X from "M";

My guess is that 90% of the respondents will tell you it would probably import some member (or "export", in the official terminology) called X from a module called M. Now what about this?
import X, * as Z from "M";

Well, that would probably import member X and the whole module (represented by *) aliased as Z from M. Then show them this:
import {X} from "M";

And this:
import {X, Y as Z} from "M";

My guess? they'll answer "the same?" - meaning it imports Xas itself and Y with alias Z
Now here's the real thing: according to the spec, the first example, although appearing quite straightforward, would do something completely different than most people (including myself) would expect. It wouldn't import an export called X but instead alias the default export of M to the identifier X.
So essentially it would appear to compile and run but later give out unexpected and weird run-time errors when X is accessed and used with a different semantic meaning. The third example, on the other hand, would import the X member as expected.
The second and forth examples, although very similar in appearance, still suffer from this problem, In the second example X will alias the default export, but in the forth it would import the member X as expected.
So the first example could have been replaced, for instance, by a simpler and more natural syntax such as this:
import "M" as X;

And the second (not sure if any of this is valid syntax today but certainly could be):
import default as X, * as Z from "M";
// or
import {default as X, * as Z} from "M";

This may not be a TypeScript issue per se, but I cannot understand how anyone would allow such a poorly designed syntax to be introduced to an existing language that's currently quite neat and readable? I believe that as soon as this syntax gets to wider adoption, it would be inevitable to change it. ES would be literally forced to fix this by the masses of developers perplexed by this insanity.
I personally think it's better sooner than later, and now this gaining early adoption within TypeScript and other transpilers, there's going to be actual production code using this, so a price may have to be payed when this is "fixed" later by ES.
Please keep this issue open as I honestly consider this to be a bug. It wouldn't be wise to direct all responsibility to ES as there are some talented people at Microsoft who have been spending years now in designing, developing and implementing a scalable, usable and readable language. It would be demotivating to force them to maintain and support a faulty and confusing syntax such as this (and later spend much time and thought on how to fix it and work around legacy code still making use of the "older" syntax).

You should definitely open a thread on esdiscuss by going here

I completely disagree with most of the points you make here, but let me go through them bit by bit.
Remember, the module syntax in ES6 (which is what this is, just added to TypeScript) was designed to please both people coming from CommonJS and people comming from AMD, and had to be statically verifiable as well as a whole bunch of other requirements. The syntax has been iterated quite a few times already, and the way you imported whole modules (* as foo) used to be quite different, and it lead to much confusion, thus it was changed.
Now, first off, let's look at the default import
import X from './foo';

What this does, is basically replace the simple require statement that returned a function or similar, and it isn't much more illogical than
let X = require('./foo');

True, the functionality is actually different, but the usage should be the same once we start writing modules with this syntax, because instead of setting module.export we'll be exporting the default export instead.
I actually am much more confused by your proposed syntax
import 'M' as X;

This is something akin to what the old "import *" syntax used to look like, and that's basically what I interpret it as. If X was set to the default export, and not the module itself, I'd be really confused.
Now, the beauty about the last syntax is that the authors realized that 90% of the time when we write modules we end up doing either this:
let foo = require('./foo'),
    bar = foo.bar
    baz = foo.baz;

or
let foo = require('./foo');

// later
doSomeStuff(foo.bar);

We normally don't need a handle for the module's export itself. Normally we're only interested in some (or all) of the exports. Thus a syntax was added to address that. And the beauty of it is that it's almost just an appliance of destructing.
Basically, you can turn this:
import {bar} from './foo';

into this:
import * as foo from './foo';

let {bar} = foo;

@Alxandr, I appreciate the points you've made about compatibility and trying to capture the "spirit" of legacy and different module systems (though many of them had very little use in practice such older ES6 drafts or less popular ones such as requirejs, or wasn't heavily used on the web like CommonJS), but my approach to evaluating syntax is mainly based on general readability and parallelisms with natural language semantics, similar to the way designers of languages like Java, Python or C# would approach new syntax.
I'm not sure there's much way to bridge our perceptions. I do agree though that
import "M" as X;

Is somewhat ambiguous between a * import and default import, but although not perfect, it is still somewhat acceptable compromise. Perhaps a better alternative could be found but as someone unassociated with both Ecmascript and Microsoft, I don't see the point of spending time on working out and trying to defends proposals that probably wouldn't be accepted anyway.

There's a few things here.
Is this syntax confusing? I am inclined to say "yes" and I think most of the TypeScript team would agree with you on this. It was not well-received when we reviewed the proposal the committee was working on.
Will the ES committee change this later? Absolutely not, at least not in a way that changes the semantics of a supported syntax. The ES6 draft is basically at the last stage before final and once it has some behavior in runtimes, that is not going to change.
What should TypeScript do about it? It's not like we're going to diverge from ES6 behavior, and adding another syntax variant would almost certainly be more confusing rather than less. Even if the ES6 module syntax is nuts, it's a kind of nuts you can learn and eventually reason about. It's not in our goals to create lots of syntactic variations on existing constructs.


Rethink help texts on methods

Right now self is missing from help texts on methods, e.g.:
classdef NrnRef < handle
    methods
        function self = NrnRef(obj)
        % Initialize NrnRef
        %   NrnRef(obj) constructs a Matlab wrapper for C++ NrnRef obj
            ...
        end
        function value = get(self, ind)
        % Get value.
        %   value = get()
        %   value = get(index)
            ...
        end
    end
end

It is probably better to do something like:
classdef NrnRef < handle
    methods
        function self = NrnRef(obj)
        % Initialize NrnRef
        %   nrn_ref = NrnRef(obj); constructs a Matlab wrapper for C++ NrnRef obj
            ...
        end
        function value = get(self, ind)
        % Get value.
        %   value = nrn_ref.get()
        %   value = nrn_ref.get(index)
            ...
        end
    end
end

I have no idea what the MATLAB documentation convention is... but I like this idea in that it makes clear that you probably want to hang on to the returned value so it's not garbage collecting whatever you just created.

I have no idea what the MATLAB documentation convention is... but I like this idea in that it makes clear that you probably want to hang on to the returned value so it's not garbage collecting whatever you just created.

There is no convention, as far as I know!


Add a snippet to auto-complete "initialize" section

The "initialize" section of the manifest file has a predictable format. We should allow users to populate this section instantly when they start writing it out
initialize:
  plugins:
    <PLUGIN-NAME-HERE>:
      method:
      path:
  outputs:

Adding snippet functionality is trivial, but there's a catch when it comes to UX. VScode doesn't have language support for YAML by default, so all contents in a yaml file are treated as strings. This means that (with default settings), snippet prompts are not shown for words typed into yaml files. This can be amended in VSC settings by setting the "quick suggestions.strings" setting to "on", but that's awkward to expect the user to have to do.
Alternatively, adding language support for yaml (e.g. via redhat's VSC extension for yaml) lets words typed into yaml files to be treated as proper keywords & displays snippets as expected.


Pipeable Parity

Given you started on this already a change I was intending to make is for operators, currently we only support data-first operators but pipeables should also be supported, we could rename tsplus operator to tsplus fluent-operator and tsplus pipeable-operator

Also the following case from @IMax153 shows something strange, looks like some parameters are not correctly handled R1 etc should be inferred and concrete


Use NS_BLOCK_ASSERTIONS for SwiftPM release builds

Xcode doesn't automatically set the NS_BLOCK_ASSERTIONS flag for SwiftPM release builds.
Use cSettings to set the flag, so NSAssert doesn't crash release builds and behavior is similar to using Carthage or Cocoapods.
See https://forums.swift.org/t/assertions-in-swift-packages/42692 for more info.
Fix for #261

Thank you!

Hello all - do you have any plans to incorporate this fix into a new release?

Hey, also wondering about when this will be added a new release?
Any plans or eta?
Thanks.

Thank you for contributing this fix 😃 I am also wondering if there are plans to include this in a new release? Any input would be greatly appreciated 👍

I just released the fix as part of v2.0.1 (https://github.com/datatheorem/TrustKit/releases/tag/2.0.1). Thanks for your patience!


plugins: action: change to Hold mode before sending DO_REPOSITION

Go-To's are only processed in PX4 if in Hold mode. So one needs to enforce changing to this mode first before sending the DO_REPOSITION Mavlink command.

or should it return an error if it is not in the right flight mode and let the user do it?

That seems counter-intuitive. QGC/AMC do force a mode change before sending the GoTo. So I believe this should happen here as well.

@JonasVautherin sorry I accidentally deleted the branch. Follow-up here: https://github.com/mavlink/MAVSDK/pull/1553.


Allow test result list filtering on archived patient

Related Issue

Closes #3567
Test results for archived patients are included in the test results list, but such patients do not appear as suggestions in the Filter by name input field

Changes Proposed

The showDeleted parameter on patients() GraphQL queries was renamed to includeArchived

The parameter for the relevant resolver and service methods was also renamed to includeArchived

The behavior of the showDeleted parameter on the patient search GraphQL query is changed in-place

More specifically, this parameter would formerly return only archived users when true
This now returns archived users in addition to active ones
Normally we would never do this as it's a backwards-compatibility no-no!

However, no query ever performed by frontend sets that parameter to true
Therefore we are able to change the behavior of the existing query rather than creating a side-by-side backwards compatibility shim

This is true only for the test result list filter
This is false for the "add to queue" search, since we do not want to accept new test results for archived patients

Screenshots / Demos
Can search for test results for archived patients
https://user-images.githubusercontent.com/27730981/188238151-b0241bf3-14ee-4ed6-ad20-01db0f77b943.mov
Can search for active patients
https://user-images.githubusercontent.com/27730981/188238329-bd723c3f-2f6b-4357-a10c-f26713dd70dc.mov
Checklist for Author and Reviewer

[ ] Please confirm that I am not changing the behavior of any existing patient search queries by the frontend

Specifically, we're looking for calls where showDeleted: true where the desired behavior is receiving a list of only archived patients

[ ] Does this introduce any sneaky side effects?

Design

[x] Any UI/UX changes have a designer as a reviewer, and changes have been approved
[x] Any large-scale changes have been deployed to test, dev, or pentest and smoke-tested by both the engineering and design teams

Content

[x] Any content changes have been approved by content team

Support

[x] Any changes that might generate new support requests have been flagged to the support team
[x] Any changes to support infrastructure have been demo'd to support team

Security

[x] Changes with security implications have been approved by a security engineer (changes to  authentication, encryption, handling of PII, etc.)
[x] Any dependencies introduced have been vetted and discussed

Documentation

[x] Any changes to the startup configuration have been documented in the README

It sounds like e2e tests are fixed on main, would you mind pulling in main and re-running?

@nathancrtr I'll be happy to resolve the merge conflict on this, since I caused it. let me know


Saving player/level information and settings

We should make a text file containing the data from self.memory (player/level information and settings).

python sometimes corrupts the txt file but we can use as the temporary memory save for player memory for now.

That's concerning, let's talk about it in the next meeting 👍


Video list is empty.

Steps to reproduce

Select Anime
Choose episode
Issue happen (see the video)

https://github.com/user-attachments/assets/400df4ff-a441-4334-a444-3175c5ce0a0b
Expected behavior
It's should I'm watching Anime. LOL
Actual behavior
This happened instead I should have watched the anime, but I couldn't
Crash logs
App version: <IP_ADDRESS> (standard, 959f84a, 124, 2024-07-01T22:25Z)
Android version: 11 (SDK 30; build CPH2269_11_A.35)
Android build ID: CPH2269_11_A.35
Device brand: OPPO
Device manufacturer: OPPO
Device name: OP4F97 (CPH2269T2)
Device model: CPH2269
WebView: Android System WebView 129.0.6668.31
MPV version: 4d32db2
Libplacebo version: v7.349.0
FFmpeg version: n7.0
--------- beginning of main
09-08 18:10:07.537  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:08.930  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
--------- beginning of system
09-08 18:10:09.717  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:09.744  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:09.784  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:09.823  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:09.856  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:09.897  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:09.951  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:09.966  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.325  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.364  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.380  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.411  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.424  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.463  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.480  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.496  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.512  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.529  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.546  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.597  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:11.641  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.343  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.369  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.388  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.402  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.412  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.444  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.464  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.489  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.495  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.511  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.528  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.545  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.561  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.577  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.594  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.611  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.643  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.668  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.679  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:12.954  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.433  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.460  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.475  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.494  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.518  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.535  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.551  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.566  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.579  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.597  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.620  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.632  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.654  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.675  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:13.689  7954  8230 E FrameEvents: updateAcquireFence: Did not find frame.
09-08 18:10:15.047  7954  8196 E DatabaseUtils: Writing exception to parcel
09-08 18:10:15.047  7954  8196 E DatabaseUtils: java.lang.SecurityException: Permission Denial: reading androidx.core.content.FileProvider uri content://xyz.jmir.tachiyomi.mi.provider/ext_cache_files/aniyomi_crash_logs.txt from pid=16229, uid=1000 requires the provider be exported, or grantUriPermission()
09-08 18:10:15.047  7954  8196 E DatabaseUtils: 	at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:820)
09-08 18:10:15.047  7954  8196 E DatabaseUtils: 	at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:684)
09-08 18:10:15.047  7954  8196 E DatabaseUtils: 	at android.content.ContentProvider$Transport.query(ContentProvider.java:239)
09-08 18:10:15.047  7954  8196 E DatabaseUtils: 	at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107)
09-08 18:10:15.047  7954  8196 E DatabaseUtils: 	at android.os.Binder.execTransactInternal(Binder.java:1161)
09-08 18:10:15.047  7954  8196 E DatabaseUtils: 	at android.os.Binder.execTransact(Binder.java:1130)
09-08 18:10:25.361  7954  8051 E DatabaseUtils: Writing exception to parcel
09-08 18:10:25.361  7954  8051 E DatabaseUtils: java.lang.SecurityException: Permission Denial: reading androidx.core.content.FileProvider uri content://xyz.jmir.tachiyomi.mi.provider/ext_cache_files/aniyomi_crash_logs.txt from pid=16229, uid=1000 requires the provider be exported, or grantUriPermission()
09-08 18:10:25.361  7954  8051 E DatabaseUtils: 	at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:820)
09-08 18:10:25.361  7954  8051 E DatabaseUtils: 	at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:684)
09-08 18:10:25.361  7954  8051 E DatabaseUtils: 	at android.content.ContentProvider$Transport.query(ContentProvider.java:239)
09-08 18:10:25.361  7954  8051 E DatabaseUtils: 	at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107)
09-08 18:10:25.361  7954  8051 E DatabaseUtils: 	at android.os.Binder.execTransactInternal(Binder.java:1161)
09-08 18:10:25.361  7954  8051 E DatabaseUtils: 	at android.os.Binder.execTransact(Binder.java:1130)
Aniyomi version
<IP_ADDRESS>
Android version
Android 11
Device
Oppo A16
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an extension, I should be opening an issue in the extension's repository.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

If this is an issue with an extension, I should be opening an issue in the extension's repository.


Images are too large (and include apt 's cache)

I'd recommend clearing the apt cache in the same RUN invocation that you update it in. It ensures that you don't wind up making everyone download a copy of your apt cache.
example:
https://github.com/colemickens/polykube/blob/637b17dec481e8fba86d0628c13469efd019d485/dotnet/dockerfiles/dotnet-base/Dockerfile#L10

Docs: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#apt-get


fisher up wipes fishfile of all items that haven't already been installed

To reproduce:
$ fisher self-uninstall
$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
$ echo "stark" >> .config/fish/fishfile

Then run: fisher up in another shell.
On my machine, I received the following output - no acknowledgment of my existing fishfile whatsoever.
$ fish - c "fisher up"
OK fisherman is up to date
Done in 753ms
$ cat .config/fish/fishfile

Expected behaviour: fisher up would install plugins that haven't been installed yet, and update those that have.
Actual behaviour: fisher up only updates plugins that have already been updated, and removes all other plugins from the fishfile. (Thankfully I have it tracked in my dotfiles repo)

In addition: some plugins (eg: my own fork of clearance) don't seem to ever stay in my fishfile (after if I run fisher). The theme doesn't even install at all - I'm left with the default prompt.

I just ran into this issue and it seems pretty serious. I am not using GNU stow. My fishfile is simply symlinked from my dotfiles repo. Whenever I run fisher up the fishfile is erased. Is there another place this stuff is being stored?
Linked?
https://github.com/fisherman/fisherman/issues/380#issuecomment-363592660

@JorgeBucaran I produced it exactly as written.  However, I am no longer experiencing it, and am thinking I was on an older version. Unfortunately at this point it isn't possible for me to verify it was an older version, but you can mark my issue as closed.

Oh, this is the worst kind of bug, it fixes itself and now we'll (hopefully) never find out until...

it happens again, of course.

For what it's worth, I'm getting this issue as well, but only on certain machines. My remote EC2 machine doesn't have the problem. My home computer doesn't have the problem, but my laptop does. And the funny thing is that all of them are running Arch, haha. I'll see if I can figure it out since I have a decent test case.

this happened to me right now as well;
@jorgebucaran As far as I can tell it happens here: https://github.com/fisherman/fisherman/blob/c32e1e215adb4aea556a35326d306a5c105a9fd7/fisher.fish#L389
I think this is how it happens:

install fisher, e.g. via curl
run only fisher up, no fisher

In that case, script gets to Line 389, ./config/fisherman is of course empty, so it wipes fishfile.

@neon64 @adamkiss @norcalli @bryaan I just released fisher/releases/tag/3.0.0~! 🎉
V3 implements a simpler, less error-prone package resolution algorithm and the fishfile is now correctly updated.

For more information see the new documentation.


Vairant stock function does not work

Description
There appears to be a discrepancy in functionality within the /app/item/Test_variant01 path, specifically under the variants tab. The variant attributes and variants lists are not displaying for the Store Admin user role. However, these functions are visible and operate normally for the Super Admin user.
Expected Behavior
The Store Admin should have access to view and manage the variant attributes and variants lists in the same manner as the Super Admin, assuming correct permissions are granted.
Actual Behavior
When the Store Admin accesses the variants tab in Test_variant01, no functions are available for variant attributes and variants lists. In contrast, the Super Admin has full access with all features displaying and operational.
Steps to Reproduce

Log in as a Store Admin user.
Navigate to /app/item/Test_variant01.
Click on the variants tab.
Observe the missing functionalities for variant attributes and variants lists.

Possible Cause
This issue may be related to permission settings that differ between the Store Admin and Super Admin roles.
Request
Please investigate the permissions configurations for the Store Admin role in the context of the Test_variant01 item variants functionality. Determine if the issue stems from incorrect permission settings or if there is another underlying cause.
Urgency
This is affecting the Store Admin's ability to manage item variants effectively. A timely resolution would be appreciated.
Thank you for your attention to this matter.

Fixed
Add a new role permission for following roles:

Workspace Item
Workspace Sales

as attached link http://beta.zaviago.com/app/permission-manager
For DocType: Item Variant Settings
Pending - Checking by login<EMAIL_ADDRESS>

Should be ok - closing


Short solution needed: "How to delete unused docker images" (docker)

Please help us write most modern and shortest code solution for this issue:
How to delete unused docker images (technology: docker)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

How to delete unused docker images


No Option to Clear The Selected Image On Sample Test Page

Describe the bug
There's no option to clear the selected image on images uploaded in sample test page
To Reproduce
Steps to reproduce the behavior:

Go to '/sample' page
Click on Update Sample Test Status on any test card
Select test completed in New Status Field
Upload the image
See the error

Expected behavior
An option to clear the selected image should be provided
Screenshots
https://github.com/user-attachments/assets/5b3afd37-86d9-4bae-9ca3-580ef02f4fd1
Desktop (please complete the following information):

OS: Windows
Browser Chrome
Version Latest

@rithviknishad @Jacobjeevan I'd like to work on this issue

Well, before user clicks upload, they can just click on the file name again to select a different file, though it's better to have a clear button there 🤔
On a side note, I wonder if said clear button should also allow to clear after the file is uploaded/before submit is clicked (in which case, we might have to deal with archiving or deleting the file) @rithviknishad


Update dependencies

Make the library ready for PHP 8.x
This PR includes #1

is this ready for review despite the dependencies not being resolvable?

I forgot to update the Travis file, now it's ready to review.


Missing machineSelectorConfig throws unhandled exception

A missing machineSelectorConfig for an RKE2 cluster can cause the edit form to fail to render.
Steps to reproduce

Navigate to Cluster Management and click on Create
Select Custom
Add a name to the cluster and click on "Edit as YAML"
Update machineSelectorConfig to machineSelectorConfig: []
Click Create
Select the Overflow Menu for your newly created cluster and select "Edit Config"

Expected behavior
The edit form will render. If a missing machineSelectorConfig is an unexpected state, provide a warning to the user with information on how to resolve.
Actual behavior
The loading indicator is shown indefinitely, while an error is thrown in the browser console

Additional details

Reported in Rancher 2.9.1
The original report was for a recent install of Rancher v2.9.1; the cluster was created with terraform
Rancher was installed with the agent TLS mode set to Strict
The reproduction detailed above produces the same error as what was repported
This behavior looks to have introduced in #10186

@torchiaf can you provide more details on this error? I'm unsure if an empty machineSelectorConfig is a valid state, but it appears that there are ways to create RKE2 clusters that would put a cluster into this state.

/backport v2.9.3

@rak-phillip the edit form now loads properly when machineSelectorConfig is missing however, a few errors are thrown in the console. Are they expected? They don't seem to have any adverse effects but wanted to ask

TypeError: this.spec.rkeConfig.machineSelectorConfig is undefined
TypeError: this.cloudProviderOptions is undefined

Since we have some time now, let's reopen this and assess the work involved to see when this needs to go in and then the backport. It doesn't sound like a blocker.

Edit form now loads properly when machineSelectorConfig is missing and no longer seeing console errors. Tested in:

Rancher v2.10-f2de3bdd8d8e76892fd3534c1168973ad8710973-head
Dashboard master a1152d7


Loader must be added when we create any product, sitemap etc, in the submit button. So that we cannot click them. Single Entry must pass.

Terms

[X] Before you openning this issue, i have checked if the issue has already been reported.

Bagisto Version(s) affected
Master
Issue Description
A loader must be added to the submit button when creating any product, sitemap, etc. This will prevent multiple clicks and ensure that only a single entry is submitted.
Let Suppose when I am creating a sitemap and there after submiting the entry and clicking on the save button multiple times, there I can see that multiple entries are created.
Preconditions

Admin must be logged in.

Steps to reproduce

Go to Admin -> Marketing -> Sitemaps and SEO -> Sitemaps
Create Sitemap and clich submit button multiple times.
We can see that multiple entries are created.

Expected Result
We can user loader and also we can disable the button for some time till it is loading background work.
Actual Result
Currently we can see that multiple entries are created. Please check the video for reference.
Video
https://github.com/user-attachments/assets/9834daed-f796-4d97-a8c0-8d4c6a698b3a
Screenshots
No response
Additional context
No response

Checked and found that the loader has been added and now it is working fine -> https://prnt.sc/q7sO2j0KJOK7


Help needed for implementation.

Hi There! Si algorithm is great, I need to solve a problem like this, would be great if someone could share an iOs or just a playground implementation of this, help would be much appreciated :D

Added to Wishlist #317


Error detected while processing function compe#setup

I installed compe using minPlug (which uses Vim's native package system) and when I launch Neovim, it's giving me this error:
Error detected while processing function compe#setup:
line    1:
E5108: Error while calling lua chunk for luaeval(): ...g/nvim/pack/plugins/opt/nvim-compe/lua/compe/context.lua:20: attempt to index field 'b' (a nil v
alue)
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_buffer.vim:
line    7:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_calc.vim:
line    6:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_nvim_lsp.vim:
line    7:
E5105: Error while calling lua chunk: .../pack/plugins/opt/nvim-compe/lua/compe_nvim_lsp/init.lua:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_nvim_lua.vim:
line    7:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_omni.vim:
line    7:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_path.vim:
line    7:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_spell.vim:
line    7:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_tags.vim:
line    7:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Error detected while processing /home/xigoi/.config/nvim/pack/plugins/opt/nvim-compe/after/plugin/compe_vsnip.vim:
line    7:
E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: loop or previous error loading module 'compe'
Press ENTER or type command to continue

Here's the relevant part of my init.vim:
MinPlug hrsh7th/nvim-compe
  let g:compe = {
        \ 'enabled': v:true,
        \ }

The error also happens when I remove the let g:compe = ….

Probably a duplicate of #264, now that I look at it.

I agree, looks exactly like the problem I encountered.

Do you get results from the following snippet on your init.lua/init.vim?
echomsg luaeval('vim.bo.filetype')

Do you get results from the following snippet on your init.lua/init.vim?
echomsg luaeval('vim.bo.filetype')

E5108: Error while calling lua chunk for luaeval(): [string "<VimL compiled string>"]:1: attempt to index field 'bo' (a nil value)

@xigoi what version of neovim have you got?

@cloggier It was 0.4.4 (the latest release). Now I installed the 0.5 pre-release and it's working. So the README should probably mention that the pre-release is needed.

@xigoi Thank you for your investigation.
We'd adddocument.


Integrate event add/edit page with Redux

Right now the event add/edit page (/src/pages/add-edit/add-edit-page.jsx) does not use the Redux data store at all.
What needs to be changed

When editing an event, the info should be loaded from the Redux store rather than by making an AJAX request
Saving logic (network requests, response handling, etc) should be moved to /src/data/actions.jsx

I think we should put off doing this until after the first launch. It really should be done as part of a more comprehensive migration to Redux, with all of the event data being loaded out of the React components and by Redux instead. This would require really sitting down and mapping out the flow of data in the current system to fully optimize it and make sure we don't break anything during the migration.
This issue also requires knowledge of how recurring events work, which is another thing to learn about.


Settings side bar is transparent on firefox

running on firefox 83.0 on ubuntu 18.04

From version 70: backdrop-filter feature is behind the layout.css.backdrop-filter.enabled preference (needs to be set to true) and the gfx.webrender.all preference (needs to be set to true). see link
I will remove backdrop-filter effect  from settings panel and add backdrop shadow
thanks for participate


Layered Transaction Pool

PR description
WIP still not readt for review
Fixed Issue(s)

Documentation

[ ] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[ ] I thought about the changelog and included a changelog update if required.

Superseded by https://github.com/hyperledger/besu/pull/5290


timestamp uneccesarily dirties package repository

In my daily use of mksrcinfo, I find commit f4ae8e8375392cb1df4b525d338c1642202787b9 to be quite impractical.
I often forget to update the .SRCINFO when I made changes to the PKGBUILD, so I often automate mksrcinfo execution. A git hook can easily invoke it before every commit. With a timestamp in every .SRCINFO, the file is guaranteed to change whenever mksrcinfo is run. This introduces unnecessary changes into the repository, as it is possible for the PKGBUILD or other files in the package repository to change without affecting the contents of .SRCINFO.
I am aware that I could manually filter out the line, but would prefer a command-line switch to turn off the timestamp to begin with. An even better possibility would be to use the modification time of the PKGBUILD in place of the time mksrcinfo was run.
I see that the timestamp was introduced to mirror the behaviour of makepkg. I am unsure whether this issue does belong here or should be discussed on the pacman-dev mailinglist, so feel free to redirect my request, if you think so.

If you dislike this behavior, please bring it up with pacman-dev. I'm trying to stay as close to pacman upstream as possible.

Late update: the timestamp seems to be gone with 7888e4ca6253f40ce2c656ef0eedd57910e4b974.


Das_Geek: Watch nfstash.com

Das_Geek requests the watch of the watch_keyword nfstash\.com. See the MS search here and the Stack Exchange search here.

nfstash\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Machavity in Charcoal HQ


Update go-rpmdb

New commits upstream
Reordered carry commits in anticipation of upstreaming one of them

Coverage: 82.09%. Remained the same when pulling a116013ff3ef31f2ccad2f221b7423da68cfecdf on bcrochet:bump-go-rpmdb into 09d850164e7f8c05b2d05b4ae7aa328dea8dc7a3 on redhat-openshift-ecosystem:main.

/retest

/retest

/lgtm


Integrate raven for automatic error reporting

https://getsentry.com

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

ok but it is not free!!

Yes it is https://sentry.io/pricing/

Actually never mind, a setDefaultWrapperException method exists, we can report to sentry from there.

Let's face it there is already too much to do. Automatically Exceptions that flood us is probably not gonna help

I don't know how Raven works, but I know Sentry. And the point behind sentry is that it aggregates same exceptions. So you can just look at the ones with very high occurrence.

As @Brutus5000 mentioned it will provide you with aggregation and general insights along with user environment info. This video will give you a good overview https://player.vimeo.com/video/340759078
Raven was the old implementation of the sentry library, it's now just called sentry-sdk I believe.
I'm not really involved with this project anymore, but I did some early work with integration here https://github.com/FAForever/downlords-faf-client/pull/845
Feel free to pull it + change it as needed if you find it relevant.

Seems like this was not desired


Neither OpenApiBodyParameter nor Consumes are respected with FromForm

I'm using the MSBuild & CLI option to generate a static OpenAPI file as part of my build pipeline.  For an OAuth2 token endpoint, I need to support an application/x-www-form-urlencoded POST body (while the rest of my application uses application/json).
My endpoint signature:
        [AllowAnonymous]
        [Consumes("application/x-www-form-urlencoded")]
        [OpenApiBodyParameter("application/x-www-form-urlencoded")] // workaround attempt per https://github.com/RicoSuter/NSwag/issues/2508
        [HttpPost]
        [Route("/v2/oauth2/token")]
        [ValidateModelState]
        [SwaggerResponse(StatusCodes.Status200OK, typeof(string))]
        [SwaggerResponse(StatusCodes.Status401Unauthorized, null)]
        public IActionResult RequestToken([FromForm(Name = "grant_type")] OAuth2GrantType grant_type)

The generated requestBody:
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                grant_type:
                  $ref: '#/components/schemas/OAuth2GrantType'
          application/x-www-form-urlencoded:
            schema:
              type: string
              format: binary

The expected requestBody:
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                grant_type:
                  $ref: '#/components/schemas/OAuth2GrantType'

Additional info:

I've also tried wrapping the grant_type in a [FromBody] object, but that just changes "multipart/form-data" to "application/json"
My Startup.cs includes an AddNewtonsoftJson

Is there any update?

You can try to implement a custom IOperationProcessor
public class OctetStreamProcessor(string parameterName) : IOperationProcessor
{
    private const string ApplicationOctetStream = "application/octet-stream";
    private const string Format = "byte";

    public bool Process(OperationProcessorContext context)
    {
        ArgumentNullException.ThrowIfNull(context);
        context.OperationDescription.Operation.RequestBody = new OpenApiRequestBody
        {
            Name = parameterName,
            Content =
            {
                [ApplicationOctetStream] = new OpenApiMediaType
                {
                    Schema = new JsonSchema
                    {
                        Type = JsonObjectType.String,
                        Format = Format
                    }
                }
            }
        };

        return true;
    }
}

And then use it in your Controller Method:
[OpenApiOperationProcessor(typeof(OctetStreamProcessor), "saveDocumentInput")]
public async Task<IActionResult> Save([FromBody] byte[] saveDocumentInput, [FromQuery] Guid id)
{
// impl...

Then you dont need ConsumeAttribute or OpenApiBodyParameterAttribute


CMake build fails with The source directory does not appear to contain CMakeLists.txt

Description of defect
[EXAMPLES]> INFO     In folder 'mbed-os-example-filesystem'
[EXAMPLES]> INFO     In folder 'mbed-os-example-mesh-minimal'
[EXAMPLES]> INFO     In folder 'mbed-os-example-bootloader'
[EXAMPLES]> INFO     Compiling mbed-os-example-bootloader K64F GCC_ARM
[EXAMPLES]> INFO     Executing command 'mbed-tools compile -t GCC_ARM -m K64F -c'...

#### STDOUT ####
Configuring project and generating build system...

#### STDERR ####
CMake Error: The source directory "/builds/workspace/mbed-os-ci_cmake-example-GCC_ARM-dev@4/examples/mbed-os-example-bootloader" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
ERROR: CMake invocation failed!

More information may be available by using the command line option '-v'.

Target(s) affected by this defect ?
K64F
Toolchain(s) (name and version) displaying this defect ?
GCC_ARM
What version of Mbed-os are you using (tag or sha) ?

9bbc8c914c7e
What version(s) of tools are you using. List all that apply (E.g. mbed-cli)
Mbed CLI 2
How is this defect reproduced ?
mbed-tools compile -t GCC_ARM -m K64F -c

Thank you for raising this detailed GitHub issue. I am now notifying our internal issue triagers.
Internal Jira reference: https://jira.arm.com/browse/IOTOSM-3791

This example shall be deprecated and not required to have CMake support as agreed previously.
@donatieng Please review . If agreed, I can add deprecated notes and request CI test removal with CMake.

Yes, agreed we'll deprecate this example.

Fixed by https://github.com/ARMmbed/mbed-os-example-bootloader/pull/148


TFE Disassociation - Include origin of token within select dropdown

Currently when dissassociating tokens if both vesting and wallet tokens are associated, the select dropdown doesn't identify  what the select option origin is.
There is a tooltip which takes 3 seconds to appear (which does show this info) see screenshot

but from a UX perspective i totally missed it - better to include within the dropdown itself - agreed with Michael

Proposed:


unifying NUMBER_PAGES_LOADED constant

Since NUMBER_PAGES_LOADED "must be the same in JTCalendarView, JTCalendarMenuView, JTCalendarContentView", it makes sense to define it as a single constant rather than in three separate places.

Ugh, need to fix a few things. Closing for now.


[Table] allow for any element to be passed into TableRow field value

Summary
Being restricted to a single string, number, or boolean does not allow for complex table fields.
For example, our table implementation uses input fields that have multiple identifiers and keys. By being restricted to one of the above, I have to try and pass a single value that can identify all of the values that I need.
Available extra resources
What resources do you have to assist this effort?
Will fix myself

:tada: This issue has been resolved in version 2.45.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Volume mountpoints should have additional flags

Volume mountpoints in a container should have data explaining how they are used to help runtimes decide what should be done with them. The first and most obvious is a "readonly" boolean. There are a couple other flags which also could be useful.
readonly:
  true if the container only needs to read from the mountpoint (generally implemented by mounting a readonly volume)
  example: directory for process config files
temporary:
  true if the volume should be cleared between runs of the container process (generally implemented by mounting a tmpfs)
  example: directory for pid files or secrets that only exist for the current run of the process
data:
  true if the image has data in this directory that can be used to initialize the volume (generally implemented by copying data out of the container when creating the volume)
  example: directory with an initial database

The purpose of these flags might be illustrated with an example. Lets say I'm making a mysql container. I might have the following mountpoints defined:
"volumes": [
  # config files
  {"name": "config",
   "path": "/etc/mysql",
   "readonly": true, # config should be modified from the outside
   "data": true}, # because the default config lives here
  # pid files
  {"name": "run",
   "path": "/var/run/mysql",
   "temporary": true}, # for the pid file
  # uds socket
  {"name": "tmp",
   "path": "/tmp",
   "temporary": true}, # for the mysql socket file
  # db files
  {"name": "db",
   "path": "/var/lib/mysql",
   "data": true}, # because a default db exists here
  # log files
  {"name": "log",
   "path": "/var/log/mysql"},
]

Clearly some of these could be consolidated using symlinks (tmp and run could share the same dir, as well as db and logs), but I wanted to give a verbose description.

On Thu, Nov 03, 2016 at 02:18:21PM -0700, Vish Ishaya wrote:

readonly:
true if the container only needs to read from the mountpoint
(generally implemented by mounting a readonly volume) example:
directory for process config files
temporary:
true if the volume should be cleared between runs of the container
process (generally implemented by mounting a tmpfs) example:
directory for pid files or secrets that only exist for the current
run of the process
data:
true if the image has data in this directory that can be used to
initialize the volume (generally implemented by copying data out
of the container when creating the volume) example: directory with
an initial database

I'd like to support all of these by distributing opaque directories
with runtime-spec config.json inside (discussion in #87).  Then you'd:
$ oci-unpack some-image.tar some-image
$ cd some-image
$ tree
.
├── config.json
├── data
│   └── seed.json
├── root
└── rootfs
3 directories, 1 file
$ cat config.json
{
…
"mounts": [
{
"type": "tmpfs",
"source": "tmpfs",
"destination": "/tmp",
"options": ["nosuid", "strictatime", "mode=755", "size=65536k"]
},
{
"type": "bind",
"source": "root"
"destination": "/root",
"options": ["rbind", "ro"]
},
{
"type": "bind",
"source": "data"
"destination": "/data",
"options": ["rbind", "rw"]
}
]
}
Of course, my proposed sanitizer would clobber some of those ‘source’
values 1, but you could use your own sanitizer if you trusted the
bundle already (e.g. because it was signed by someone you trust, #22,
#176, #400).

These seems more like a runtime concern and there are good reasons it is the way it is today.
The Volumes field is really only used to say "this part of the filesystem is not part of the container". How that is implemented and the permissions and behavior associated with it are specified by mounts. Even in the docker API, mostly named volume mounts don't use the Volumes field on the container config, they use Binds (and now Mounts).
Volumes really only specifies what could be considered "ephemeral" locations. There are implications to how mounts and volume declarations would interact that may result in odd behavior.
Allowing the image to name volumes will lead to security problems in systems that have a single volume namespace or overlap in volume names within a namespace (imagine a malicious container that wants to mount the log volume and read your logs).
The other issue with such a design is that booleans without considering mutual exclusion create a number of combinations that don't make a lot of sense. As you add more booleans, the space of invalid option combinations increases. For example, what is the use of a temporary, readonly volume with data=false? What if the temporary space is required but a tmpfs won't provide enough storage (these are really "ephemeral", rather than tmpfs)?
More than just booleans, such a design would probably also call for parameterization. How would these parameters interact with mount specifications?
Given this, we may want to be more explicit about how directory permissions are maintained between unpacking the image and mounting the volume over a directory location.
NB. The term data used in the example has been historically called copy, which instructs the runtime to copy data from the image into the freshly minted volume.

I agree, I don't think this is a good feature. And even if it might be we need more people asking for it.

I am moving this to post v1.0

Volumes really only specifies what could be considered "ephemeral" locations. There are implications to how mounts and volume declarations would interact that may result in odd behavior.

Allowing the image to name volumes will lead to security problems in systems that have a single volume namespace or overlap in volume names within a namespace (imagine a malicious container that wants to mount the log volume and read your logs).

I'm not sure I follow your logic here. I'm not suggesting the image spec defines anything about what the runtime names the volumes. My goal here is for the builder of the image to specify locations in the image filesystem that represent a interfaces (either input-->config or output-->logs). The current definition is not rich enough. Either we need to put enough information into the image-spec so that a runtime could determine how to set up mounts properly, or (as @wking suggests) we allow a runtime spec to be shipped.
I personally like the separation between Binds defined by the image-spec and Mounts defined by the runtime-spec, but the Bind needs some hints to tell the runtime how the mount is going to be used. For example if the bind has configuration data, then the runtime likely wants to copy the data out into the volume it creates, and the mount should be read-only.

The other issue with such a design is that booleans without considering mutual exclusion create a number of combinations that don't make a lot of sense. As you add more booleans, the space of invalid option combinations increases. For example, what is the use of a temporary, readonly volume with data=false? What if the temporary space is required but a tmpfs won't provide enough storage (these are really "ephemeral", rather than tmpfs)?

I agree that a list of booleans might not be the best description, maybe we define a simple enum that describes how the volume should be used.
BindType {
  Config --> runtime could implement with copy out and read-only mount
  Tmp --> runtime could implement with tmpfs
  Data --> runtime could implement with a r/w volume
}

If we don't think that we can agree on a common set of bind types, then it probably would be enough to allow some arbitrary metadata in the Bind (or as it is currently written: Volume) definition.


Installation & folders

While install under Windows, setup creates C:\zabbix-agent\zabbix-smartmontools folder that contains zabbix-smartmontools.conf file.
Then
move zabbix-smartmontools.conf C:\zabbix-agent\ move Win\zabbix_agentd.conf.d\userparameter_smartctl.conf C:\zabbix-agent\zabbix_agentd.conf.d\
is needed, and C:\zabbix-agent\zabbix-smartmontools is not used. It is kinda confusing.
Also, it could be great to choose/change installation folder. Maybe just add info where to do it in setup file.

I will clear this up in the new version.

Returned to a previous unpackaged version - it's no longer an issue.
Also updated the paths to never ones.


Takes a while to load dates

I am using hermes and polyfill, at first I was using another locale but I changed it back to en but it doesn't seem to fix it. I also thought that it might be the emulator but I have tried on real devices and the problem is still there

I was about to open an issue for that :sweat_smile:
This issue is very noticeable in lower-end devices such as iPhone 5s
Example with production bundle

Dev env ( It's taking more than 2s )

Is it really necessary to load 4 months at once? wouldn't be better to render only the current one?

Interesting will be a nice case to improve performance since as far as I know I have tried almost every optimisation possible.
I hope React Native Fabric will improve things...
Maybe we can indeed render less on low-end devices but we need to at least render 3 months because it will be too much white when scrolling else.

@RichardLindhout how about rendering the current month in the first render and then render the other 3 right after?
I think we could try to wrap a function responsible for rendering the other 3 months with InteractionManager.runAfterInteractions

@brunohkbx hm that is interesting but in my case I was not loading multiple months as it still load when I change to next month

I think the rendering needs to te be faster as this will bite back when we scroll down

Let's rewrite it in Flutter :-P

Maybe we could detect the performance of the device and edit the amount of months loaded, because I also want fast scrolling so maybe it's a good idea to only 1 month on smaller screens

Indeed we should not need to load 4 months at once, it also seems like the all 4 month are re-rendered when user scrolls while only new ones should reload

I've improved some things in v0.4.4, I would also recommend using Hermes on Android.

I am using Expo with Hermes (and polyfills) and still seeing very slow loading performance 🤷

Is it only on my end, ,or does this continue to be an issue?

Well still an issue for me..

I think we could optimize using the native view / text directly. See https://github.com/callstack/react-native-paper/issues/4157? cc: @iM-GeeKy


Android events toast

Updated lib to 1.1.9, now android work, but it always show toasts with "started load ad" and "ad loaded"

Hi, do you mind re-running Gradle sync to pull the latest Android AppLovin SDK?

I sync project with gradle files in android studio, but still nothing... How i can check SDK version?

Could you update to the 1.1.10 version of this module? It should be fixed then. We hardcoded the AppLovin SDK version it links against to our latest one without the Toasts bug: https://github.com/AppLovin/AppLovin-MAX-React-Native/commit/c3f8d82d29de06ab32a6eac0f44ed80918a299b1

Updated, everything is ok, thanks...