Display command to enable logging

When you click on "no permission to log" the command "pm grant taco.scoop android.permission.READ_LOGS" should appear to apply to adb. I'm sure few people will search for this command on the internet.

Or to just be copied to the clipboard when tapping on that entry in the settings/preferences, which will act as an button.
@TacoTheDank - I wrote you in one of my reps and tagged / mentioned you, please "react" when you read it, as you did before (I didn't created "issue" tickets here on purpose, I hope that it's not that big of an issue).
Thank You.

Or to just be copied to the clipboard when tapping on that entry in the settings/preferences, which will act as a button.
The "Wiki" can totally be merged with / included/copied to the ReadMe, its not that long at all, there's no need in my humble opinion to be in a separate place/page/tab with jumps, hoops and links from the readme to the wiki, buried that deep and hard to find for a newbie...
@TacoTheDank - I wrote you in one of my repos and tagged / mentioned you, please "react" when you read it, like you did before (I didn't created "issue" tickets here on purpose, I hope that it's not that big of an issue).
Thank You. Wish you well and all the best - bye for now.

What about the ability to copy the command from the app itself ?
Have you read my input in my repo where I mentioned you, would you mind sharing an opinion there please, or at least react with an emoji, like how you did here, so I can at least know that you've read it ?
Thanks in advance ;)

Yeah, I've read it. I'm taking the backseat for coding for a couple months to focus on school and other stuff.
Regarding copying from the app itself, I don't believe that's necessary, really. You would have to use ADB from a command line on the computer if you don't have root, so just copying it to the phone's clipboard would be pointless (because you need it on the computer). The only reason I would see for this is if you (for some reason) were manually granting the permission from a terminal on the phone, like Termux or whatnot.

You're lying. wirless debug helps, and you don't need a pc. for example ladb already made it possible.

I forgot about wireless ADB. It's pretty new, only having been introduced in Android 11. I've never used it.
I had no idea LADB even existed until now.  Instead of calling people liars (which is very accusatory), just say something like "that isn't true" and correct them nicely. Please consider how your words and tone may come across to other people.
I will add a link to the Wiki as a preference option. I will also add a preference that will copy the command to your clipboard when pressed, as @drogga suggested.

OK, thank you, but please if you link the page in the app, don't make it open inside the app (by using the WebView - I hate when apps do that and there's no way around it), but make it as a link that asks the system with which browser to open it (even tho A.12 can't have "none" set as default - that I hate the most of G's stupid decisions), even tho I think this is a bit pointless, since you already added a "Source Code" button under "About" in the settings.
Currently the "Permission Status" can be tapped/pressed, it's already like a button, but juat doesn't do anything, so there's no need to do anything fancy or complicated, you can just use what's already there and make it copy the command as a plain text (can probably be done in less than 10 mins.), but IDK if you need to use the full command, including "adb shell", or just start from "pm grant", because LADB and others, like the "Remote ADB Shell" app, are already in the shell, so that first part will be unnecessarily and it will probably throw an error.
BTW, the other day I used "Shizuku" (was already activated form a PC on A.9) and "Termux" (works tru Shizuku in order to have elevated permissions, like shell) to activate "Scoop".
Also please keep in mind that it will be nice if the "Permission status" button copies the command even if and when "Scoop" thinks and reports\shows that the READ_LOGS permission is granted, because, as I mentioned elsewhere, even with root it might still not collect\capture crash logs, like in VMOS with Android 9 Pie ROM with BusyBox and their preferred SuperUser manager app.
I noticed that there's a 'Crash the App' in some apps for "power users", I can't name any currently, because I don't remember which, but you might also add such button, tho IDK how it will capture the carsh log, if the app that's supposed to grab it crashes, but still I think that it's a nice idea (I altered a app to always crash when launched in order to test such LogCat apps).
Let's hope that when you finally have some time to work on Scoop, you can also add a theme switch button in the main interface (it can be a button with a sun\moon icon) or one in the settings... ;)

Combine same crashes
Combine crashes from the same app with the same stack trace into one item
^ I don't think this option is actually working, as it doesn't seem to do anything for me or make any difference.

^ I don't think this option is actually working, as it doesn't seem to do anything for me or make any difference.

Yeah, I've never seen a difference, either. I might remove this.


fix alpha and mobile flags together not creating tauri.conf file

i tried to test the new tauri beta and when i tried the alpha only tauri.conf file was there but when alpha and mobile it was not

please try again with the @latest version. I released a fix half an hour ago.

p.s. nonetheless, thanks for looking into it and contributing!


Lyrics command

Bug description
Bot sure if this bug is when you use the lyrics command without putting the song name it will say interaction error it is like you need to put the song name so it will work can you make it when the current song is playing we use the lyrics command without put the song command it will get the lyrics current playing song
Step to reproduce
No
Operating system
Linux
Nodejs version
18
Errors / Logs
No

Bug description
Bot sure if this bug is when you use the lyrics command without putting the song name it will say interaction error it is like you need to put the song name so it will work can you make it when the current song is playing we use the lyrics command without put the song command it will get the lyrics current playing song
Step to reproduce
No
Operating system
Linux
Nodejs version
18
Errors / Logs
No

I will look into it, may be tomorrow. I have to take a rest rn. 👍

I think this issue is fix. Cannot reproduce (try using node 17 instead if u still getting the issue on the latest update)

My mistake I was using node 18

lyrics wont work anymore


cgal: 4.11 -> 4.11.1

Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:

built on NixOS
ran /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin/cgal_create_CMakeLists -h got 0 exit code
ran /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin/cgal_create_CMakeLists help got 0 exit code
ran /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin/cgal_create_cmake_script -h got 0 exit code
ran /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin/cgal_create_cmake_script --help got 0 exit code
found 4.11.1 with grep in /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1

cc @7c6f434c for review

Success on x86_64-darwin (full log)
Attempted: cgal
Partial log (click to expand)
-- Installing: /nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/lib/CGAL/CGAL_ImageIOExports-release.cmake
-- Installing: /nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/lib/CGAL/CGAL_ImageIOLibConfig.cmake
post-installation fixup
gzipping man pages under /nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/share/man/
strip is /nix/store/vb6mgjqgd9h11nbv60fvrp1ls9nxck2y-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/lib  /nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/bin
patching script interpreter paths in /nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1
/nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/bin/cgal_create_cmake_script: interpreter directive changed from "/bin/bash" to "/nix/store/8hdxjv3m14jgdnawi5l0mz2h59qkk2g9-bash-4.4-p19/bin/bash"
/nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/bin/cgal_create_CMakeLists: interpreter directive changed from "/bin/bash" to "/nix/store/8hdxjv3m14jgdnawi5l0mz2h59qkk2g9-bash-4.4-p19/bin/bash"
/nix/store/in2dw9y970v0njjfm52anb9paivn2ivb-cgal-4.11.1/bin/cgal_make_macosx_app: interpreter directive changed from "/bin/sh" to "/nix/store/8hdxjv3m14jgdnawi5l0mz2h59qkk2g9-bash-4.4-p19/bin/sh"

Success on x86_64-linux (full log)
Attempted: cgal
Partial log (click to expand)
shrinking /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/lib/libCGAL.so.13.0.1
shrinking /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/lib/libCGAL_Core.so.13.0.1
gzipping man pages under /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/share/man/
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/lib  /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin
patching script interpreter paths in /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1
/nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin/cgal_create_CMakeLists: interpreter directive changed from "/bin/bash" to "/nix/store/q1g0rl8zfmz7r371fp5p42p4acmv297d-bash-4.4-p19/bin/bash"
/nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin/cgal_make_macosx_app: interpreter directive changed from "/bin/sh" to "/nix/store/q1g0rl8zfmz7r371fp5p42p4acmv297d-bash-4.4-p19/bin/sh"
/nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1/bin/cgal_create_cmake_script: interpreter directive changed from "/bin/bash" to "/nix/store/q1g0rl8zfmz7r371fp5p42p4acmv297d-bash-4.4-p19/bin/bash"
checking for references to /build in /nix/store/prp059sdh2cfi1n6m1y43w7hf33ixs7x-cgal-4.11.1...

Success on aarch64-linux (full log)
Attempted: cgal
Partial log (click to expand)
shrinking /nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/lib/libCGAL_Core.so.13.0.1
shrinking /nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/lib/libCGAL.so.13.0.1
gzipping man pages under /nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/share/man/
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/lib  /nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/bin
patching script interpreter paths in /nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1
/nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/bin/cgal_make_macosx_app: interpreter directive changed from "/bin/sh" to "/nix/store/3gg2p6n4kv2f0lsxd41f5iz1ivkbzyzr-bash-4.4-p19/bin/sh"
/nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/bin/cgal_create_cmake_script: interpreter directive changed from "/bin/bash" to "/nix/store/3gg2p6n4kv2f0lsxd41f5iz1ivkbzyzr-bash-4.4-p19/bin/bash"
/nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1/bin/cgal_create_CMakeLists: interpreter directive changed from "/bin/bash" to "/nix/store/3gg2p6n4kv2f0lsxd41f5iz1ivkbzyzr-bash-4.4-p19/bin/bash"
checking for references to /build in /nix/store/0vj7brb4vjci0ybppb721m7vm2nfpnjk-cgal-4.11.1...

@GrahamcOfBorg build openscad

No attempt on x86_64-darwin
The following builds were skipped because they don't evaluate on x86_64-darwin: openscad
No log is available.

Success on aarch64-linux (full log)
Attempted: openscad
Partial log (click to expand)
glibPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/dlx4a702m5km1zy7pakwhg9rdzd3vdlj-openscad-2015.03-3
shrinking /nix/store/dlx4a702m5km1zy7pakwhg9rdzd3vdlj-openscad-2015.03-3/bin/openscad
gzipping man pages under /nix/store/dlx4a702m5km1zy7pakwhg9rdzd3vdlj-openscad-2015.03-3/share/man/
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/dlx4a702m5km1zy7pakwhg9rdzd3vdlj-openscad-2015.03-3/bin
patching script interpreter paths in /nix/store/dlx4a702m5km1zy7pakwhg9rdzd3vdlj-openscad-2015.03-3
checking for references to /build in /nix/store/dlx4a702m5km1zy7pakwhg9rdzd3vdlj-openscad-2015.03-3...
/nix/store/dlx4a702m5km1zy7pakwhg9rdzd3vdlj-openscad-2015.03-3

Success on x86_64-linux (full log)
Attempted: openscad
Partial log (click to expand)
glibPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/ys6r726vgcxdkw17xng0vd3b754511im-openscad-2015.03-3
shrinking /nix/store/ys6r726vgcxdkw17xng0vd3b754511im-openscad-2015.03-3/bin/openscad
gzipping man pages under /nix/store/ys6r726vgcxdkw17xng0vd3b754511im-openscad-2015.03-3/share/man/
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/ys6r726vgcxdkw17xng0vd3b754511im-openscad-2015.03-3/bin
patching script interpreter paths in /nix/store/ys6r726vgcxdkw17xng0vd3b754511im-openscad-2015.03-3
checking for references to /build in /nix/store/ys6r726vgcxdkw17xng0vd3b754511im-openscad-2015.03-3...
/nix/store/ys6r726vgcxdkw17xng0vd3b754511im-openscad-2015.03-3


README instructions for loader

Is there a reason that the README specifies the following instructions? I couldn't get it to work without appending -loader to the svg-inline key.
    {
        test: /\.svg$/,
        loader: 'svg-inline'
    }

It is just because I haven't used Webpack 2, appending -loader is a must in Webpack 2. It should be fixed 😃


Distinguish Zeros from import in Scenario and Zero due to missing Data

In the implementation of Scenario Importers it was enabled to save zeros for RawVariable and IfrsVariable, due to fact that users may need to "suppress" some line in the Cashflow or Actuals. This feature led to an implementation which  is not optimal. Hence, is important to distinguish between a compact, meaningful set of zeros that are representative of the business logic and discard the rest.

I think we can close this ticket because it has been solved with the PR #112
@dcolleoni @calderinisystemorph


New version 2.5, Device not found by Alexa

Hi, and thanks for the fantastic job. I am truly grateful.
Using the previous version I had no problems with Alexa, but as soon as I upgraded to version 2.5 Alexa no longer sees the device.
I've already tried turning Alexa off and on several times, deleting the old device and searching for it.
I also tried to search with the Philips bridge, but nothing.
The strange thing is that this update should have solved the problems that instead caused me again (even at the beginning I had to struggle to find the device, but once I did I had no more problems).

Hi!
I am very sorry that the newer version is causing trouble for you.
What is your Echo model?
Also please find out the IP of your ESP (either in your router or by serial output of one of the examples) and check what http://[esp-IP]/api/api/lights returns. That may help with troubleshooting. Thank you :)

I have 2 Echo:

Echo Dot ver. 3
Echo ver. 2 (https://www.amazon.it/dp/B079PNT5T6/ref=cm_sw_r_u_apa_fabc_76Z3FbJ7XQWMY)

I did these tests:

I tried to revert to version 2.4.7 and after several attempts Alexa was able to find the device.
I then tried to reload version 2.5 and Alexa returns that the device is not responding.
Reloading the 2.4.7 version, started working again.

This is what I see in http://[esp-IP]/api/api/lights:
-with 2.5.0 version:
{"1":{"state":{"on":false,"bri":254,"hue":0,"sat":0,"effect":"none","xy":[0.500000,0.500000],"ct":500,"alert":"none","colormode":"xy","mode":"homeautomation","reachable":true},"type":"Extended color light","name":"Luce1","modelid":"LCT015","manufacturername":"Philips","productname":"E4","uniqueid":"0291481f1c01","swversion":"espalexa-2.5.0"}}
-with 2.4.7 version:
{"75624897": {"state": {"on": true, "bri": 254, "hue": 0, "sat": 0, "effect": "none", "xy": [0.500000, 0.500000], "ct": 500, "alert": "none", "colormode": "xy", "mode": "homeautomation", "reachable": true}, "type": "Extended color light", "name": "Luce1", "modelid": "LCT015", "manufacturername": "Philips", "productname": "E4", "uniqueid": "75624897", "swversion": "espalexa-2.4.7 "}}
Thanks again for the work done, I hope these problems will be solved.

I'm not sure what Alexa version I have, but I tested using Alexa phone app (using "find new devices" command), and I have same problem, I think.
curl http://<IP_ADDRESS>/api/api/lights

{"1":{"state":{"on":false,"bri":254,"hue":0,"sat":0,"effect":"none","xy":[0.500000,0.500000],"ct":500,"alert":"none","colormode":"xy","mode":"homeautomation","reachable":true},"type":"Extended color light","name":"arch 1","modelid":"LCT015","manufacturername":"Philips","productname":"E4","uniqueid":"cca8ae982e01","swversion":"espalexa-2.5.0"}}

I tried manually adding it (under "Devices", in alexa app) and it asks about bluetooth & a bridge. I answered yes to bluetooth, and it did searched but did not discover it. I answered no to bluetooth, and it said I need a hub. I tried "V2 bridge" and it required an app install. "V1 bridge" tried to find it, but had no luck.

Badly the new version did not discover for me too :(
Maybe take a look at master branch of: https://github.com/vintlabs/fauxmoESP
this is working for me on first try and really stable.

I upgraded to v2.5 and with Echo Dot Gen3, discovery did work again, but grouping devices does not.
I have 5 ESP8266 with 2 Espalexa devices each, I can see and control all 10 devices individually in Alexa. But if I add 2 devices into a  group, it always remembers only 2 of them. Even if I put any 2 devices into the group, it remembers 2 different ones. That makes me believe that something with the uniqueid is still off.

Maybe the discovery issue is on ESP32 only?...


Unlimit mochawesome report files above 1000 and rename them

Hello.
I use mochawesome with my Cypress running in kubernethes for reports purposes.
The tests got run more than 1000 times (so the last file is mochawesome_999.html) and from there there is no new report created.
in addition, I want the ability to give name for the reports file (with regard to the test file name), can I generate unique names for mochawesome reports?
Thanks.

The tests got run more than 1000 times

Do you mean you have more than 1000 spec files or a single test was run more than 1000 times?
Please provide some sample code or an example repo to reproduce this issue as there is enough information to go on.


Add initial .metadata contents for Integrator Profile

Purpose

Add initial .metadata contents for Integrator Profile for parallel development

Goals

Add .metadata contents for Integrator Profile

Security checks

Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? yes
Ran FindSecurityBugs plugin and verified report? yes
Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? yes

Closing as per #8


SwitchInput in modal

Hi,
when i add Switchinput in modal, which is loaded by renderAjax - it's broken like photo below. Sometimes it work fine, but generally it's borken.

me too!
My solution：
1、create a simple switchInput in parent,that will be work.
2、or use SwitchInputAsset::register($view); in the parent.
hope fix that!!!

@wskeee second solution is the clearest one I guess, nevertheless that worked! Thanks! :)

It worked for me! Many thanks!


Support for Redis Sentinel

Hi,
It does not look like that Redix is currently supporting Redis Sentinel and it would be great to do so.
Guidelines for Redis clients can be found here: http://redis.io/topics/sentinel-clients

Hey @tlvenn, I think support for Redis Sentinel would be great as a separate package. I'm not able to work on this right now (and for a while), but if you want to give it a try, I can help with advice/design decisions whenever I have some time :).

Hi @whatyouhide, we are also in need of Redis Sentinel support in conjunction with Redis Pub/Sub.
I am willing to take a shot at implementing it, but I am very much new to Elixir. Any guidance or advice you would be willing to provide as to how to approach it would be greatly appreciated.
Thanks!

@hwrd the documentation at https://redis.io/topics/sentinel-clients is pretty good, and that would be my main starting point. As far as I can see, the whole sentinel support can be built on top of Redix (in a separate package): basically, you implement one "connection manager" that holds the list of sentinels, and such manager will perform the steps described in the docs, basically try to get master addresses from the sentinels, and so on. When it needs to instantiate a connection, it starts a Redix.start_link connection. You can use the :exit_on_disconnection option for Redix so that when a single Redix connection goes down, it doesn't try reconnection, but you handle that in the "connection manager", again contacting the sentinels and generally following the steps in the sentinel documentation. Does this make things a bit clearer?

@hwrd did you get anywhere with this? I don't see anything in your repo list. I need it too, and am willing to work on it. @whatyouhide thanks for the pointers, indeed that seems the way to go.

Oh, look, there's an implementation here


Review

Unweildy Origins is arguably the single greatest origins mod I've ever played in my nearly two years in this community. This is solely because of the time and effort invested into it. Its mechanics are unique, and provide an infinite amount of single player and multi-player content. Pug has once again reinvented the entire game even better than the origins mod itself did.
Last edited by NotJustJosh: Feb 4, 2022
Also add dragonborne flight owo

Wanna do WoF Rp?


Exposing current event loop handle to a service

Hi – I’m trying to get async file I/O working within a Hyper service, and I’m having trouble getting hold of the event loop handle. I’m not sure if I’m missing something obvious, or if there is something missing from hyper 0.11a0.
(This may be related to #1075, and maybe I’ve just confused myself by using the “easy mode” APIs. If so, perhaps some improved docs / examples of how and when to do things the non-easy way would be helpful.)
I recently wrote a little static file webserver in Rust, which serves the files using async I/O. The crate tokio-file-unix (0.4.0) supports async I/O; all I needed to do was:
        let f = std::fs::File::open(path).expect("Couldn't open file");
        let file = tokio_file_unix::File::new_nb(f).expect("Couldn't set nonblocking");
        let reader = file.into_reader(&handle).expect("Fail to generate reader");
        // … and then you can use tokio_io::io::read(reader, buf) to read data from the file.

However, tokio_file_unix::File::into_reader needs to be provided with a tokio::reactor::handle (a handle to the current event loop), which it ultimately passes to tokio::reactor::PollEvented::new.
My problem is that I can’t see how to get hold of that handle!
As far as I can see, hyper::server::Http::bind() just passes an http::request::Request to the enclosed tokio_service::Service. There is no mention of handles.
To work around this, I forked hyper and made the following change. As you can see, it does the following:

hyper::server::Http::bind_connection now stores a clone of the current Handle in the HttpService struct.
The Service’s Request is now a pair (http::request::Request, tokio::reactor::Handle) rather than just an http::request::Request.
HttpService::call now passes a clone of the Handle (from the HttpService struct) to the service.

That’s obviously not the right solution. Am I missing something obvious, or is there something missing from Hyper at the moment?
Thanks.

You can do something like this w/o modifying hyper:
    let mut core = Core::new().unwrap();
    let handle2 = core.handle();
    let listener = TcpListener::bind(&http_listen_addr, &handle2).unwrap();

    let server = listener.incoming().for_each(|(sock, addr)| {
        let s = MySuperService;
        Http::new().bind_connection(&handle2, sock, addr, s);

        Ok(())
    });
    core.run(server).unwrap();

Btw, I don't think tokio-file-unix does what you think it does.

Ah, fair enough. I was worried that I would lose the goodness of Http::Server (which bind() creates), in particular, the shutdown handling, but I guess in reality that's not too important to me.
What's your concern about tokio-file-unix? The docs say "Asynchronous support for file-like objects via Tokio", and a superficial look through its lib.rs seems to suggest it does the right things.

What's your concern about tokio-file-unix?

It doesn't work for regular files.

I'm not sure what you mean by that. We have used it succesfully to read files from disk in our tests, and it appeared to be behaving in a correctly asynchronous manner (judging by the response behaviour etc). This is on CentOS. By "doesn't work" do you mean it panics, or it appears to work but isn't fully asynchronous?

OK, the answer to my original question seems to be that Hyper is fine, but the docs don't make it clear that if you want access to the handle, you must use Http::bind_connection rather than Http::bind.
Please could the docs be improved? As a newbie, I clicked through to hyper::server which lists four structs, one of which is "Server: an instance of a server created through "Http::bind". So I went to Http::bindand it seemed to do what I wanted. Immediately below isHttp::bind_connectionbut it says "This is the low-level method ... This method is typically not invoked directly but is rather transitively used throughbind`."
I think those statements are a bit too strong.

Firstly, despite the name, Server is just another server - it's not special in any way. Http is the key struct for HTTP servers. Can the first sentence of the Server comment say "Convenience type used by Http:bind", so it's more obvious this isn't the primary type?
Secondly, can Http::bind say "if you need more flexibility, use bind_connection" and Http::bind_connection remove the comments about "low-level" and "not typically invoked directly"? Instead it could say "For simple cases consider using bind instead".

@kw217 would you mind providing a small gist of what your final solution (with https://github.com/hyperium/hyper/issues/1207#issuecomment-306496191) looks like?
I'm having troubles finding how to get back a reference to the handle in the call function of my service (spoiler alert: I'm a complete Rust beginner).

Your service is a struct which implements the Service trait, and hence the call method. In your new method, just pass in the handle as an argument and store it in the struct. Then it's there for you to use in the call method.
The key point is that you should construct the server the way https://github.com/hyperium/hyper/issues/1207#issuecomment-306496191 does with Http::bind_connection, rather than using Http::bind as the docs imply.

There is #1322 opened which proposes a solution to the base problem encountered here. As such, I'm going to close this particular issue.

OK, I'm happy to follow #1322 instead, as long as the docs are improved to make the new usage clear.


Need help in creating workspace like appinventor

hai
i am working to make a webpage to write program using blockly.
i used the following files to create the workspace:

Blockly_compressed.js
Blocks_compressed.js
javacsript_compressed.js
en.js

from the google blockly repository https://github.com/google/blockly
so i created workspace using
Blockly.inject('divforworkspace',options);
then i got the following workspace
https://community.appinventor.mit.edu/uploads/default/original/3X/4/7/47b826323409319864fd4fb8492b9ec57792646c.png
But i need to integrate:

Toolbar like  :https://community.appinventor.mit.edu/uploads/default/original/3X/7/2/7267270acf7fbd07033027391cd44b1df242dbc2.png

Warnings and errors like :https://community.appinventor.mit.edu/uploads/default/original/3X/a/e/ae9d9ebbf81aa7f889718534c47a0c9cc79dd545.png

Backpack :https://community.appinventor.mit.edu/uploads/default/original/3X/7/e/7eba003812f9f278f72afa17e67973857405b95a.png

finally the workspace should be as following
https://community.appinventor.mit.edu/uploads/default/original/3X/4/c/4cdf99583c95d33af33bc53b675c7238329e2ad9.png
i refered to blockly docs but didn't found anything .i found it in app inventor open source github repository but unable to understand the procedure how to integrate in my code using javascript
i need only Blocks part not the designer part from appinventor
Regards,surya
Advanced thanks

You've already asked about this in the community. It's not an issue with the App Inventor sources so I'm closing this.


Orin NX: Add Dockerfile and scripts for provisioning the Orin NX in X…

…avier NX Devkit NVME
Change-type: patch

The image is currently in staging as per the internal thread https://balena.zulipchat.com/#narrow/stream/360838-balena-io.2Fos.2Fdevices/topic/Orin.20NX.20support.20in.20meta-tegra/near/347129317

The instructions look good to me @acostach

Thank you @alanb128! I assume the Dockerfile and the scripts too but please let me you spot anything

@acostach nothing jumped out at me eyeballing the Dockerfile or scripts, but I don't have the hardware to test them!

I know, this needed a fresh pair of eyes though so thanks for reviewing it @alanb128 !

@balena-ci I self-certify!


Update documentation on AMQP Port Requirements

closing/reopening to trigger automation

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

#sign-off

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


CLI Options duplicate names check

Evidently, that options with the same names on CLI don't have a sense. It would be useful to add a strict check for duplication of options' names and trace detailed info for a user.
Note: it shouldn't be forgot - a command also has options. Now intersection of command options' names with CLI options ones isn't checked. The behavior need to be defined futher.
The issue is connected with: Config CLI options #111.

So reiterating the behavior:

(0.24) If two standalone options have the same long name, an exception is thrown.
(0.23) If two commands have the same long name, an exception is thrown.
(0.23) If a standalone option and command have the same long name, nothing happens.
(0.23) If a standalone option and one of the command's options have the same long name, nothing happens.


OCS Alerts: Alerts for OCS plus files to reuse(helpers)

Alerts: CephClusterErrorState, CephClusterWarningState, CephOSDVersionMismatch,
PersistentVolumeUsageCritical, CephClusterCriticallyFull, CephClusterNearFull,
CephClusterReadOnly, CephMonVersionMismatch, CephPoolQuotaBytesCriticallyExhausted,
CephPoolQuotaBytesNearExhaustion

/retest

@iamniting , @nbalacha, Please provide review when you have time. Thanks in advance.

@iamniting , @nbalacha, Please provide review when you have time. Thanks in advance.

@jmolmo I'm uncertain as to why I received the review request from the bot, as I don't possess the expertise necessary to evaluate this PR. I believe Umanga might be better suited for the task.

@iamniting , @nbalacha , I do not know why the bot include you as reviewers.
@jan--f , @NautiluX, @ravitri , @RiRa12621
Can you help me to review the PR?  It is needed a reviewer from OCS?

Bot picks a random person from the list https://github.com/openshift/runbooks/blob/master/alerts/openshift-container-storage-operator/OWNERS

@RiRa12621 I need a review on this pull request. Who can help me?

  - jarrpa
  - obnoxxx
  - umangachapagain
  - agarwal-mudit
  - nbalacha
  - BlaineEXE
  - nb-ohad
  - iamniting

or probabaly @NautiluX can help you too

@umangachapagain can you review the PR?


Configuration profile support for istio-proxy. Sidecar in root namespace with labelSelector?

Describe the feature request
Currently, there is no support for configuration profiles at root namespace level.
All proxies get the entire config on startup.
Can we enhance the Sidecar CRD to have a meshWorkloadSelector which when defined in root namespace will consider all workloads in the mesh.
apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: minimal-config-profile
  namespace: mesh-root
spec:
  egress:
  - hosts:
    - 'mesh-root/metrics-service.svc.cluster.local'
    - '*/httpproxy.svc.cluster.local'
    - '*/logs-service.svc.cluster.local'
  meshWorkloadSelector:
    labels:
      mesh-proxy-bootstrap-profile: minimal

Describe alternatives you've considered
Sidecar CRD supports a workload selector already but it is applied on a namespace level only.
Every namespace must define the Sidecar CRD and there is risk of Sidecar config being not ready when Deployment & Sidecar are applied together (for eg. a fresh namespace creation)
In case of updates to the configuration profile, multiple copies of the same resource needs to be updated.
Affected product area (please put an X in all that apply)
[ ] Ambient
[ ] Docs
[ ] Installation
[x] Networking
[x] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[x] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Additional context
This is to improve the startup time of istio-proxy when running in large mesh installations having thousands of clusters.
Onboarding to a configuration profile is a label away for existing customers of a mesh offering.

NOTE 2: A Sidecar configuration in the MeshConfig [root namespace](https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig) will be applied by default to all namespaces without a Sidecar configuration. This global default Sidecar configuration should not have any workloadSelector.

Hi @zirain, I am aware of that. I am proposing an enhancement.
That's the reason of using meshWorkloadSelector instead of workloadSelector.

While I understand the use case I feel this brings substantial complexity and differences between different APIs for benefits that don't meet the costs. Higher level tooling like helm, etc can trivially solve this.

@howardjohn my reasoning here was that the mesh-root namespace is special in the sense that all workloads fall under its purview.
By restricting the workloadSelector based on k8s semantics is taking that privilege away. It becomes just another namespace.

but your point about cost benefit ratio is solid. I will close this. Thanks!


[improve][client] Increase default Java client connectionMaxIdleSeconds to 60 seconds

Motivation
The setting was decreased from 180 seconds to 25 seconds in #22541.
The default setting of 25 seconds is causing connection disconnects and connects when they aren't expected.
The reason is that the default for autoUpdatePartitionsInterval is 60 seconds and if idle timeout is shorter, it causes connections to close and open unnecessarily each time the scheduled task runs.
Modifications
Increase connectionMaxIdleSeconds to 60 seconds
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 74.31%. Comparing base (bbc6224) to head (96ea622).
Report is 655 commits behind head on master.

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #23430      +/-   ##
============================================
+ Coverage     73.57%   74.31%   +0.73%
- Complexity    32624    34340    +1716
============================================
  Files          1877     1949      +72
  Lines        139502   146867    +7365
  Branches      15299    16168     +869
============================================
+ Hits         102638   109141    +6503
- Misses        28908    29291     +383
- Partials       7956     8435     +479

Flag
Coverage Δ

inttests
27.52% <100.00%> (+2.93%)
:arrow_up:

systests
24.39% <100.00%> (+0.07%)
:arrow_up:

unittests
73.65% <100.00%> (+0.81%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines
Coverage Δ

...lsar/client/impl/conf/ClientConfigurationData.java
96.89% <100.00%> (+0.20%)
:arrow_up:

... and 622 files with indirect coverage changes


Refactoring

Thanks for your pull request, but I don't think it's necessary, especially since we are already happy with the current organization and this pull requests no longer passes our CI and reduces the code coverage.
Maybe if you can ellaborate on what specifically drove you to make this change and articulate what the benefits are compared to the current wording that would help us understand.
I haven't specifically looked though the new code yet as I wanted to better understand the above first so we can drive together in the right direction.

Closing due to no response.


Production compilation options

Since the switch over to cmake, is it still recommended to use custom compilation flags similar to the old build systems' OPT="-O2 -DNDEBUG"?
I guess the equivalent in cmake would be cmake -DCMAKE_CXX_FLAGS="-O2 -DNDEBUG"?

Those (-O2/NDEBUG) should be set correctly when setting CMAKE_BUILD_TYPE. Please reopen if you have followup questions.

Thank you! Looks like I missed this in the readme: https://github.com/google/leveldb/blob/53e280b56866ac4c90a9f5fcfe02ebdfd4a19832/README.md#build-for-posix

Are there any other flags added by CMAKE_BUILD_TYPE= Release? I'm having a hard time finding where that's defined in the project.

I'm having a hard time finding where that's defined in the project.

It's part of CMake: https://stackoverflow.com/a/34314956/332798


A Pinned Tab has no name!?

Tab Modifier version
Browser: Chrome
Extension version: 0.20.0
Expected behavior
the name of a Tab should not get removed if a tab is pinned.
Pinned tab is nice as it is, but i would also like to rename it. Right now i have only color icons and must remember which color stands for what...
Actual behavior
name of tab is removed, only very tiny tab with icon is visible anymore
Steps to reproduce the behavior

define a name for specific url to get the tab mopdified (new name)
pin that tap
look what name the tab has now -> no name anymore

Hi @MasterFuba,
I'm not sure if the concept of pinned tab is clear for you, a pinned tab hides its title to let more space in the tab bar but the title is not removed. You have to hover the pinned tab with the mouse to see the title as a tooltip.
Tab Modifier does not interfere with this Chrome core feature.

It's clear to me. But I'd like this feature anyway - even to be able to give a pinned tab a name as an option would be great.

It would be great to have this feature. On Visual Studio Code it pins the tab and keeps the name to....

The most useful pinned tab is the Gmail tab. But if it is pinned without a title, it becomes useless as you don't know is there are any new mails. You should, at least, give the option to show titles on pinned tabs.

The most useful pinned tab is the Gmail tab. But if it is pinned without a title, it becomes useless as you don't know is there are any new mails. You should, at least, give the option to show titles on pinned tabs.

You can't control that. Anyway, in the GMail settings, you can show the number of unread messages in the favicon, it works even if it's pinned.

@sylouuu tnx, I didn't know about that. It is "Unread message icon" option in Advanced Gmail settings.


Ensure that CodeBuild Project encryption is not disabled

Possible check to target the following resource

[ ] aws_codebuild_project

I think this check will need to include both artifact encription and encription in all secondary artifacts as well. I will also report a warning when there is no artifact produced (type = "NO_ARTIFACT")


it have a event when trigger when a new row is ready to be created

Does $table.on('record:add', function (event, record, index) { /* ... */ }) work for you? I just found out that we don’t document it in the README yet, would you send a pull request to add it to the documentation? I’d very much appreciate it :) The events are listed in the source code at https://github.com/gr2m/editable-table/blob/master/editable-table.js#L11-L15

Hi @gr2m, ok I will do that, thanks


{Microsoft.SecurityInsights/dataConnectors uses a preview version (              2022-08-01-preview ) and there is a non-preview version for that a             piVersion available.

Our ArmTTK test are failing because of the following error:
Errors    : {Microsoft.SecurityInsights/dataConnectors uses a preview version (
2022-08-01-preview ) and there is a non-preview version for that a
piVersion available.}
Warnings  : {}
Output    : {Valid Api Versions:
2022-08-01
2022-08-01-preview
2022-08-01
2022-07-01-preview
2022-06-01-preview
2022-05-01-preview
2022-04-01-preview
2022-01-01-preview
2021-10-01-preview
2021-10-01
2021-09-01-preview
2021-03-01-preview
The issue is, that we need to preview version of the API as there are funktions that are only in that API
Can we get so that we can get the preview api without disabling all API tests?
https://docs.microsoft.com/en-us/azure/templates/microsoft.securityinsights/2022-08-01/dataconnectors?pivots=deployment-language-bicep

Not sure I understand the config you want... some bg, the pattern is a bit odd, that the preview version of a GA'd version has more/necessary functionality.  That would be an anti-pattern in ARM, but it's not the first I've seen (however rare).
In the TTK we wouldn't want a global rule for allowing the preview, so how would you envision excepting the case?

Hello @bmoore-msft
I want to still be able to run the api version checks, is there a possibility to use some kind og exclude when you need a specific API version for some resource?

Ok, in #687 I have a prototype of something that may work for this specific test case, if you want to take a look at that PR - specifically the test case: https://github.com/Azure/arm-ttk/blob/master/unit-tests/apiversions-should-be-recent/Pass/old-apiVersion-skipped.json#L9
Feel free to reopen if needed.


Possible NullPointerException in DelegatingAsyncDisruptorAppender when flushing appenders

The DelegatingAsyncDisruptorAppender may throw a NullPointerException at line https://github.com/logstash/logstash-logback-encoder/blob/master/src/main/java/net/logstash/logback/appender/DelegatingAsyncDisruptorAppender.java#L69 in the appender's output stream is null.
This may appear very odd, but appenders like the RollingFileAppender may have a null output stream during rollover or even after if it failed to rotate the underlying file... I'm pretty sure the FileAppender will throw an exception before the DelegatingAsyncDisruptorAppender had a chance to flush at the end of the batch - so there is no point in checking for a null output stream. At least not until the FileAppender is "fixed" and can handle the null case gracefully...

so there is no point in checking for a null output stream

So you're saying don't check for a null outputstream in DelegatingAsyncDisruptorAppender?  What would the fix be then?

That's not what I meant... I should have say "... it seems there is no point in checking for a null output stream because it is likely an exception would be thrown earlier anyway...
The OutputStreamAppender#getOutputStream() doesn't say anything about whether it may or not return a null output stream. IMHO it would be safer to check for null anyway.
My example around the RollingFileAppender is from experience. The output stream can be null for a very short time during rollover (fair enough) - but it can stay null for longer when it fails to roll. In this case the appender is usually broken and won't be able to recover by itself.
Sorry for not being clear the first time :-(

Closed by #457


Change grammars to lowercase

Description
Change the name of the grammar files to lowercase. Fix any issues that arise from the change.

Closed by #53.


Sik-Ho Tang | Review -- MoCo v2: Improved Baselines with Momentum Contrastive Learning.

Sik-Ho Tang. Review — MoCo v2: Improved Baselines with Momentum Contrastive Learning.

Overview
MoCo v2, Improves MoCo Using SimCLR Suggestions

A batching perspective of two optimization mechanisms for contrastive learning (Left: SimCLR, Right: MoCo).
Improved Baselines with Momentum Contrastive Learning
MoCo v2, by Facebook AI Research (FAIR)
2020 arXiv, Over 700 Citations
Self-Supervised Learning, Unsupervised Learning, Contrastive Learning, Representation Learning, Image Classification, Object Detection

SimCLR systematically studies the major components for the success of self-supervised contrastive learning.
MoCo v2 is achieved by enhancing MoCo v1 based on SimCLR’s studies: using an MLP projection head and more data augmentation.
Indeed, this tech report only got 2 pages excluding the reference section.

MoCo v2
Background

Contrastive loss function, called InfoNCE, in CPC, is used:

where $q$ is a query representation, $k^{+}$ is a representation of the positive (similar) key sample, and $\{k^{-}\}$ are representations of the negative (dissimilar) key samples. $\tau$ is temperature hyper-parameter.

End-to-End (Fig. a): In an end-to-end mechanism, the negative keys are from the same batch and updated end-to-end by back-propagation. SimCLR is based on this mechanism and requires a large batch to provide a large set of negatives.

Memory Bank (Fig. b): The negative keys are maintained in a queue, and only the queries and positive keys are encoded in each training batch.

In MoCo, a momentum encoder is adopted to improve the representation consistency between the current and earlier keys. MoCo decouples the batch size from the number of negatives.

Improved Designs

SimCLR improves the end-to-end variant of instance discrimination in three aspects:

a substantially larger batch (4k or 8k) that can provide more negative sampples,
replacing the output fc projection head with an MLP head,
stronger data augmentation.

In the MoCo framework, a large number of negative samples are readily available.

To enhance MoCo, the MLP head and data augmentation are used.

Experimental Results
Temperature

Search for an optimal $\tau$ w.r.t. ImageNet linear classification accuracy.

Using the default $\tau=0.07$, pre-training with the MLP head improves from 60.6% to 62.9%; switching to the optimal value for MLP ($\tau=0.2$), the accuracy increases to 66.2%.

MLP Head, Augmentation, Cosine Learning

Ablation of MoCo baselines, evaluated by ResNet-50 for (i) ImageNet linear classification, and (ii) fine-tuning VOC object detection (mean of 5 trials).

MLP: replace the fc head in MoCo with a 2-layer MLP head (hidden layer (= 2048-d) 2048-d (> 128-d), with RELU).
aug+: Extra blur augmentation is added onto the default one.
cos: Cosine learning rate schedule.

MLP+aug+cos improves MoCo v1. With longer training time of 800 epoches, results are even better.

SOTA Comparison

MoCo vs. SimCLR: ImageNet linear classifier accuracy (ResNet-50, 1-crop 224×224).

With MLP, aug+, cos, and longer training time (800 epoches), MoCo v2 achieves 71.1%, outperforming SimCLR’s 69.3% with 1000 epochs.

Computational Cost

Memory and time cost in 8 V100 16G GPUs.
For end-to-end mechanism, the 4k batch size is intractable even in a high-end 8-GPU machine. Also, under the same batch size of 256, the end-to-end variant is still more costly in memory and time, because it back-propagates to both $q$ and $k$ encoders, while MoCo back-propagates to the $q$ encoder only.

Later on, MoCo extends as MoCo v3 by using Vision Transformer, ViT.

Reference

[2020 arXiv] [MoCo v2] Improved Baselines with Momentum Contrastive Learning.


Replacing vectorize brakes code

I used uniform from a previous release, and it worked fine. Since the latest update that replaced vectorize with jit my code stopped working. Here is a minimal working example:
import numpy as np
import numba as nb
from numba import njit

from numba_stats import uniform as uniform_numba

@njit()
def get_lnprior_helper():
    """jittable helper for calculating the log prior"""
    prior = 1.0

    #loop through uniform parameters
    for i in range(3):
       prior *= uniform_numba.pdf(0.5, 0.0, 1.0)

    return prior

print(get_lnprior_helper())

This now gives the following error:
No implementation of function Function(<function pdf at 0x114f8bdc0>) found for signature:

 >>> pdf(float64, float64, float64)

This seems to only happen if it's within a jitted function. If I remove @njit() from above, it works fine. I'm at numba 0.53.0.
Any idea why this might be happening?

Hi @bencebecsy, this looks like a bug, I am investigating.

I will try to restore that functionality, but using numba_stats in this way is not going to give you good performance. numba_stats is optimised for vectorised operation on arrays. Internally, it is using arrays everywhere. So if you feed it a single number, it is converted into an array and then the implementation operates on that array. It is possible that the numba optimizer recognizes this and reduces the code again to a calculation on numbers, but I am not sure. In any case, to reap the performance benefits of numba_stats, you should process chunks of number at once and write your code in this way.

Hi @HDembinski, thanks for looking into this. Thanks for the info on the best way to use numba_stats. To be honest, I got decent performance this way, and the main reason I used uniform_numba.pdf instead of uniform.pdf from scipy.stats is not the performance but the fact that I couldn't get that working in a jitted function. If I do from scipy.stats import uniform in the above example, and replace uniform_numba.pdf(0.5, 0.0, 1.0) with uniform.pdf(0.5, 0.0, 1.0), I get the following error:
Untyped global name 'uniform': Cannot determine Numba type of <class 'scipy.stats._continuous_distns.uniform_gen'>

Do you know if there's any way around this other than using numba_stats?

No there is no other way, that's the raison d'etre for numba_stats. I will try to restore this functionality, but if you care about performance, you should organise your code to use arrays of values as the smallest unit instead of individual values. Otherwise you cannot use the powerful SIMD instructions of modern CPUs.


Rockpaperscissors jenilgajjar20 branch

Hi @thinkswell, I have added a new project. Kindly review and merge.

Please go through the project's readme and make the required changes.
Make your PR again, will review it quickly.
Thank You.


Use parentheses with print in python

In python3, the print function needs parentheses.
And for environments using python3 by default, it is more convenient
to have python code compatible with python3.
See #39 and #38

Thanks!
Merged.
This also made me realize that we weren't building Java bindings in the packaging scripts anymore.
Now fixed!


CMS - SQL Login

Added ability for SQL Login and saving connection (with and without password) for CMS servers.
Fixes https://github.com/microsoft/azuredatastudio/issues/5858 and https://github.com/microsoft/azuredatastudio/issues/5856

  			}

Noticing this here - but we should really avoid throwing just strings for errors like this and always wrap them in at least an Error(...). This has a couple of benefits :

If we keep consistent with this we don't have to check whether an error is a string or an error object which can help prevent errors. For example above this you added some code that assumes the returned object is an actual error object but as we can that isn't always the case
Error objects add in useful stuff like stack trace and line numbers

Refers to: extensions/cms/src/cmsUtils.ts:228 in 6141c2b. [](commit_id = 6141c2bedbe91fe375b16eed5ad8a75507e98750, deletion_comment = False)

  			}

I'd suggest not doing that for this review but I would appreciate you going through and cleaning that up in a separate review

In reply to: 501027638 [](ancestors = 501027638)

Refers to: extensions/cms/src/cmsUtils.ts:228 in 6141c2b. [](commit_id = 6141c2bedbe91fe375b16eed5ad8a75507e98750, deletion_comment = False)

Please work on adding some tests or at the very minimal least link to manual test cases that can be used to verify this new functionality being added works as expected.

@Charles-Gagnon the old tests already have SQL Login tests included. This just opens it in UI.

We have smoke tests - it would be great to start adding more of those and this seems like a good opportunity to test that out.

@kburtram @Charles-Gagnon Can we get this in early, so we can avoid it being in a PR state for long like last month? Thanks!


Make most public classes final

.. so that we have more freedom to add new public methods to them
without breaking backward compatibility. Note that some classes are not
final yet because 1) it has a deprecated subtype or 2) it will be
package-private later.  They must be finalized once we delete all
deprecated classes before 1.0.0.
Related: #2360

Need to update HttpStreamReaderTest not to use spies.

Gave up and removed final from ArmeriaMessage{Framer,Deframer}. They are going to be annotated with @UnstableApi anyway. :man_shrugging:

Let me merge this to move forward. Please feel free to let me know if something needs to be reverted.


Can't use apostrophe in a keyboard shortcut

Description
Steps to reproduce the problem:

Open up preferences
Go to the Keyboard Shortcuts section
Set 'Editor: Toggle comment' to Cmd + Apostrophe
Click OK
Go to the editor, press Cmd+Apostrophe

The line with the cursor should toggle between commented and un-commented status.  Instead, nothing happens.
With the default keyboard shortcut of Cmd+1, the desired behavior occurs.
Additional information
Also tested on Windows w/ Control+Apostrophe, which does not work either.
Version and main components

Spyder Version:  2.3.4
Python Version:  2.7.10
Qt Version    :  4.8.6, PyQt4 (API v2) 4.11.3 on Darwin

Optional dependencies
pyflakes >=0.5.0:  0.8.1 (OK)
pep8 >=0.6      :  1.6.2 (OK)
IPython >=1.0   :  3.1.0 (OK)
zmq >=2.1.11    :  14.7.0 (OK)
pygments >=1.6  :  2.0.2 (OK)
pandas >=0.13.1 :  0.16.2 (OK)
sphinx >=0.6.6  :  1.2.3 (OK)
psutil >=0.3    :  2.2.1 (OK)
rope >=0.9.2    :  0.9.4 (OK)
jedi >=0.8.1    :  0.8.1 (OK)
matplotlib >=1.0:  1.4.0 (OK)
sympy >=0.7.3   :  0.7.5 (OK)
pylint >=0.25   :  None (NOK)

Looks like issue #478 needs to be fixed first.

This is basically a duplicate of issue #478, which was already solved :-)


Initialize loc member in Dependency

Related to https://github.com/webpack/webpack/pull/6862
This change is being proposed based on this comment that says Webpack prefers initializing possible members in classes

Thanks


Corrected the name of the base folder in IBM PROLOG

Changed the name of the base folder in IBM PROLOG from
op-auto-test to the correct op-test-framework
Signed-off-by: Nageswara R Sastry<EMAIL_ADDRESS>

This change is

Reviewed 78 of 78 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Cannot pass gotoOptions to page.goto()

Which package is this bug report for? If unsure which one to select, leave blank
@crawlee/browser (BrowserCrawler)
Issue description
Hooks and navigation handlers are called with hard-coded gotoOptions: https://github.com/apify/crawlee/blob/master/packages/browser-crawler/src/internals/browser-crawler.ts#L529
Or this there some hidden magic that I'm missing?
Code sample
n.A.

Package version
3.1.0
Node.js version
irrelevant
Operating system
irrelevant
Apify platform

[ ] Tick me if you encountered this issue on the Apify platform

Priority this issue should have
Medium (should be fixed soon)
I have tested this on the next release
not fixed on master branch
Other context
From https://github.com/apify/crawlee/blob/master/MIGRATIONS.md#removal-of-gotofunction

We decided to replace gotoFunction with preNavigationHooks and postNavigationHooks

With preNavigationHooks and postNavigationHooks it's much easier. preNavigationHooks are called with two arguments: crawlingContext and gotoOptions. postNavigationHooks are called only with crawlingContext.

This appears to be wrong/confusing on different levels:
1.) Both hooks are currently called with gotoOptions.
2.) gotoOptions can be accessed in user defined hooks, but I don't understand how it was ever intended to pass them to hooks or why they should ever be needed pre or post-navigation. They only make sense to use when navigating, not before or after. ???
3.) _navigationHandler is called with gotoOptions and it passes them on to page.goto(). but it takes the hardcoded options from _handleNavigation.
Suggestion: You might be able to define gotoOptions on the crawler instance and access it internally in either the crawler specific goto or the general _navigationHandler (while allowing the user to change them during runtime).
It also seems like a good idea to think about for which use cases hooks are suited (IMO to define event listeners and things that happen unrelated to questions of navigating) and when not (IMO passing configuration options to navigation-related functions).

Workaround is to subclass the crawler class and override with _navigationHandler(ctx: Crawlee.PlaywrightCrawlingContext). While this is fine, the method should IMO not be prefixed with an underscore as it is not private or internal and passing gotoOptions should be possible without subclassing.

Hi! Sorry that we didn't reply earlier.
If you are interested in calling page.goto(url, options) in your request handler (= scraping code), that is not affected by Crawlee at all - the call goes directly to Puppeteer/Playwright.
The code that you linked to affects navigation, when Crawlee opens the target URL in the browser to allow you to scrape it. What exactly is your use-case that you want to modify gotoOptions there? But a cleaner workaround that I can suggest is using preNavigationHooks when creating your Crawler, for example like this:
const crawler = new PlaywrightCrawler({
  requestHandler: router,
  headless: true,
  preNavigationHooks: [
    async ({ request }, gotoOptions) => {
      gotoOptions.referer = request.userData.customReferer;
    },
  ],
});

As for the points you mentioned as confusing, you say

2.) gotoOptions can be accessed in user defined hooks, but I don't understand how it was ever intended to pass them to hooks or why they should ever be needed pre or post-navigation. They only make sense to use when navigating, not before or after. ???

Yes, they make sense when navigating - but that is done by Puppeteer/Playwright under the hood. the pre and post-navigation hooks exist to perform some actions before or after that happens - for example, customize the gotoOptions, as I showed above.
Does this answer your questions/did you already solve your issues in some other way and can we close this issue?


World Coordinates

Description
This PR begins to add support for world coordinates, as described in #763 and other places.
It adds two properties to a layer _data_range and _world_range (both of which can be renamed), which provide the range of the layer in data coordinates and world coordinates respectively and leverages to layer._transforms to do this conversion.
The big question now is how these properties should interact with or live on the dims model?
Basically now we're in a somewhat awkward position where some of the necessary info lives on the layer, then some lives on the layer dims model. We also have the dims model that lives on the viewer. The likely resolution of some of that strangeness might come with the layer groups in #1089, where we could just have a dims model for each layer/ layer group and clear ways to composite across them, but for now we'll need to decide where these properties should go.
One approach would be to put everything on the dims model, including the transforms. The other could be to try and move away from having the dims model on each layer all together. Alternatively we could really try and separate concerns between them.
I'll be working on this more tomorrow, but any early input from @jni or @tlambert03 would be welcome.
Type of change

[x] New feature (non-breaking change which adds functionality)

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

Great to see this moving forward! A couple of comments:

I'm not sure what "data coordinates" are -- for image data, are these array indices? If so, since the size of the data array is already represented by it's shape property, I'm not sure what the utility is of representing the same thing twice.  Can you elaborate on this?

Separation of concerns: I think it makes sense to define the mapping between the data and some coordinate space via a single object. Neuroglancer uses this pattern to construct a layer (very analogous to a layer in napari): neuroglancer constructs a layer with data (an array), and a CoordinateSpace object, which fully describes how the the data is embedded into world coordinates. Similarly, an xarray.DataArray is constructed with data (an array) and a coords object, which assigns a point to every array index in data, thereby mapping array indices to positions in some space.

Like you suggest, the natural locus for "object that maps array indices to positions in space" in napari is the dims object. But I think currently dims is trying to do two things at once -- it tries to account for properties of the data (the number of dimensions, the number of samples along each axis) while also tracking properties of the current rendering of the data (the current slice, the display mode, the axis display order) Via this second set of properties, dims is basically doing the work of a geometric sampling plane. It might be necessary to factor out these two distinct functions into separate objects.
I'm interested to hear what other people think! This is exciting!

I like all your suggestions @d-v-b!

I'm not sure what "data coordinates" are -- for image data, are these array indices? If so, since the size of the data array is already represented by it's shape property, I'm not sure what the utility is of representing the same thing twice. Can you elaborate on this?

For image data that is the mostly case, though if the data is rgb then it doesn't include the final dim, and if the data is multiscale then it just takes the highest resolution. Right now we need a concept like to achieve standardization with the other layers like points and shapes. In the case of points and shapes though one could argue that there should be no scale and translate properties on the layer and that data should already come in "world" coordinates. I'm open to revisiting this @jni

But I think currently dims is trying to do two things at once -- it tries to account for properties of the data (the number of dimensions, the number of samples along each axis) while also tracking properties of the current rendering of the data (the current slice, the display mode, the axis display order) Via this second set of properties, dims is basically doing the work of a geometric sampling plane. It might be necessary to factor out these two distinct functions into separate objects.

Indeed well put - this is the source of a lot of the awkwardness right now. Right if there are three things - data, spatial information, and slicing, then we sort of awkwardly mix these things all together, but it is probably cleanest if data + spatial information live nicely together and then slicing can do its own thing on this object.
Note that @pwinston is thinking about some big improvements in #845 that could result in a new tile fetching system, but my sense @jni @royerloic is that we'd want that to live more on the "view" side of things rather than the "model" side of things, right? Maybe riffing off of some discussion in #1272 a good question to start asking ourselves is what would we like a plugin developer to have access to? Certainly they need the data + spatial information, but they might not need the slicing (or at least slicing could be exposed in a more advanced interface).

I think it makes sense to define the mapping between the data and some coordinate space via a single object. Neuroglancer uses this pattern to construct a layer (very analogous to a layer in napari): neuroglancer constructs a layer with data (an array), and a CoordinateSpace object, which fully describes how the the data is embedded into world coordinates. Similarly, an xarray.DataArray is constructed with data (an array) and a coords object, which assigns a point to every array index in data, thereby mapping array indices to positions in some space.

@jni do we want to bite the bullet, depend on xarray, and construct an xarray representation of data with coordinates internally? I'd imagine our public API remains unchanged - we still accept bare numpy arrays, translation, scale parameters, but then we construct an xarray internally where we have all these things nicely. We could either just put that xarray privately somewhere like ._coordinate_array and .data returns whatever they gave us, or just make it so that .data always returns an xarray regardless of what was passed? If people pass us xarray's that conform to our pattern we just use it directly, if they pass us xarray's that have a different structure, i guess we'll need to adapt it to our own xarray conventions? As long as we don't copy data, force instantiation or clober peoples own metadata this could all be ok, but it might get a little crazy, thinking about zarr, dask etc too.
On option would be to always convert what is given to being an xarray, keep track of if an xarray was not given, then if an xarray was not given pull the array out of the xarray for the .data property, otherwise give the xarray back. In this model you'd have numpy in numpy out, xarray in xarray out, always xarray on the inside and only one thing on the inside.
Is this how you were thinking about it @d-v-b?

Following discussion with @jni i'm going to press on with what will hopefully be a fairly minimal feature addition, but more refactoring and improvements to this will hopefully becoming soon.

Progress with the minimal approach is coming along well, the coordinate transform inverse going back from world to data is now in place on the base layer.
I still have some stuff to do on the Qt slider side to get all the float stuff working, and we'll have to make some choices about what labels to appear next to the sliders, (i.e. right now you see the current slider position followed by the max slider position)

Once these sliders are in a "world coordinates" I guess one might be interested in the minimum value, the maximum value, the step size, and the current value? Need to think about this more, and open to suggestions from all

fwiw, I was definitely hoping that a move to world coordinates would not have to change those labels there.  When I think about indexing a dataset (as we do with those sliders), I definitely think in terms of plane number pixel number, and I want the program to convert that to world coordinates/scales for me behind the scenes.

I think eventually the sliders should show both array indices and world coordinates. As soon as you have data at multiple resolutions, you can't think exclusively in terms of plane number / pixel number any more. This was actually why I started using xarray in the first place: I had raw EM data at 4nm resolution, and ground-truth data that had been upscaled to 2nm resolution AND padded. Compared to manually tracking the offset + scaling conversion, it was much much easier to just assign coordinates to these datasets, make xarray.DataArrays, and query the data with arguments defined in the common coordinate system (nanometers). xarray took me from doing error-prone index arithmetic to data.sel({'x': x_range_in_nm, 'y': y_range_in_nm, 'z' : z_range_in_nm}), which is a completely uniform interface for both datasets.

I definitely think in terms of plane number pixel number, and I want the program to convert that to world coordinates/scales for me behind the scenes.

I actually think the opposite -- I'd prefer that napari assume that all images are defined over some kind of space, and internally dispatch to different sampling methods depending on the source of the data (array indexing for arrays, something else for vectors, etc). Plane number / pixel number (i.e., array indices) is an implementation detail of data acquired in a certain way (gridded sampling) and represented internally as an array, but outside of light microscopy these images are actually a special case: e.g., array indices don't make a lot of sense for vector data, or data sampled with a spiral pattern.

On option would be to always convert what is given to being an xarray, keep track of if an xarray was not given, then if an xarray was not given pull the array out of the xarray for the .data property, otherwise give the xarray back. In this model you'd have numpy in numpy out, xarray in xarray out, always xarray on the inside and only one thing on the inside.

Yeah this is roughly what I was thinking. The user does not need to know anything about xarray, and they can always get their data out the way they put it in, but xarray is used internally to track coordinates. An alternative approach would be to implement an xarray-compatible interface / protocol without having xarray as a dependency, but I'm not sure what would keep the APIs from drifting apart.

I think eventually the sliders should show both array indices and world coordinates

fine with me, as long as image indices are clearly available somewhere

@d-v-b @tlambert03 thanks both for weighing in. Sounds like people will want to see both representations, and to move back and forth between them, fairly easily. Will keep you posted!

I have a really basic API question -- what is the difference between the dims attribute of a layer vs the dims attribute of the viewer?

I have a really basic API question -- what is the difference between the dims attribute of a layer vs the dims attribute of the viewer?

The dims on the viewer has the full nD representation of all the layers and is linked to the sliders on the screen. The dims on the layers have the same dim as the layer itself and are then used for the slicing.
There has been some discussion about removing dims from a layer (or at least making it private). This PR experimentally puts a dims on the layerlist rather than the viewer, but we'll see if that's a step in the right direction.
The alternative after #1040 is done is that we can maybe move the slicing logic off the layer itself and then drop the additional dims representations.

It will be nice if this PR fix exception on change spacing of layer like:
IndexError: index 44 is out of bounds for axis 1 with size 44
  File "D:\a\1\s\package\PartSeg\common_gui\napari_image_view.py", line 239, in update_spacing_info
  File "site-packages\napari\layers\base\base.py", line 336, in scale
  File "site-packages\napari\layers\base\base.py", line 403, in _update_dims
  File "site-packages\napari\layers\base\base.py", line 633, in refresh
  File "site-packages\napari\layers\base\base.py", line 586, in set_view_slice
  File "site-packages\napari\layers\image\image.py", line 527, in _set_view_slice

Superseded by #1539


Support optional gRPC server max message size configuration

By default, the gRPC max outgoing message size is 4MB. We need to give user the option to configure the max message size.
ref:
https://github.com/numaproj/numaflow/issues/299
numaflow-go https://github.com/numaproj/numaflow-go/pull/21
numaflow-python https://github.com/numaproj/numaflow-python/pull/23

I can work on this.


Jacoco: fix no coverage result in server and some other modules

According to https://www.eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html
we need to add "@{argLine}" to argLine if it exists in pom.xml
Description
This PR fixes missing jacoco coverage report in some modules

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[x] Major
[ ] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

@weizhouapache maybe worth checking local jacoco? I don't see any difference reported by sonarbot (not sure why codecov didn't kick in)

@weizhouapache maybe worth checking local jacoco? I don't see any difference reported by sonarbot (not sure why codecov didn't kick in)

@rohityadavcloud
I have added this change to my PR for vm autoscaling
the following page shows coverage result of changes on java files in server module.
https://sonarcloud.io/component_measures?id=apache_cloudstack&pullRequest=6571&metric=new_coverage&view=list

w00t @weizhouapache good find, and well done. I suspect, adding argLine on server alone would have addressed a lot of missed unit tests. @shwstppr I suppose we can merge this as this doesn't change the code essentially but how coverage is analysed and args used in the surefire plugin, but does that still require us to fix the powermock issue?


train_model var sym_gen make a error

https://github.com/dmlc/mxnet/blob/master/example/image-classification/train_model.py#L77
Traceback (most recent call last):
File "train_imagenet.py", line 85, in
train_model.fit(args, net, get_iterator)
File "/search/data/user/qhj/github/mxnet/example/image-classification/train_model.py", line 85, in fit
epoch_end_callback = checkpoint)
File "/root/anaconda/lib/python2.7/site-packages/mxnet-0.5.0-py2.7.egg/mxnet/model.py", line 720, in fit
**(self.kwargs))
File "/root/anaconda/lib/python2.7/site-packages/mxnet-0.5.0-py2.7.egg/mxnet/optimizer.py", line 52, in create_optimizer
**kwargs)
TypeError: init() got an unexpected keyword argument 'sym_gen'

@pluskid

you need to pull the latest code.

Yes, please git pull update to the latest code. A new keyword argument was added recently.

@pluskid  @piiswrong  Ok


next step direct link

hi, is any way to get to not first step in this form https://demos.creative-tim.com/material-bootstrap-wizard/wizard-book-room.html? Some direct link or post parameters?

Hi, @karaspr! Thank you for using our products. Please see their docs and maybe this will help you.
Regards,
Dragos

I have read docs prior to my question but I didn't find the answer. So one more time: is any way to get https://demos.creative-tim.com/material-bootstrap-wizard/wizard-book-room.html form directly to second or third tab?

Hi! Unfortunately, if they don't have a solution in their docs then it's difficult to make this works.
Regards,
Dragos

That's sad news. Template offers button to call next tab, maybe is any way to "call" that button/class with url call?

Hi! Please see this link maybe this will help you https://github.com/VinceG/twitter-bootstrap-wizard/issues/115. Regards, Dragos


generate ENDPOINTS.md only for release

Description
Currently endpoints-md pre-commit step generates ENDPOINTS.md on each commit.
This is annoying when merging PR / rebasing
endpoints-md.py should have flag --only-check and used in that way in pre-commit step.
ENDPOINTS.md should be generated together with version bump in pyproject.toml (by manual action when tagging new release)

This issue was migrated from an old repository: https://github.com/CiscoDevNet/catalystwan/issues/437


stairsplus items hidden in creative inventory

All the stairsplus items are hidden in the inventory (I found the following line in config.lua )

-- Show stairs/slabs/panels/microblocks in creative inventory (true or false):
setting("bool", "stairsplus_in_creative_inventory", false)

Is there any specific reason for hidding it ? It's a pain to build in creative mode without stairs, slabs ... already crafted. Otherwise it would be great to turn this to true.
Edit : related #119

Perhaps a slash command would work to configure it?

Actually it displays all stairsplus items (not only stairs and slabs)

I was about to open an issue for the same reason. Pretty annoying actually. I wish the mod would not mess with the normal stairs.
related (for "don't mess with stairs" statement): https://github.com/minetest-mods/moreblocks/issues/139 https://github.com/minetest-mods/moreblocks/issues/138

Stairs+ nodes were hidden because they take up a lot of space in the creative inventory, which made it more difficult to browse.

In my opinion the best would be not hiding the stairs mod stairs but only your own objects. Having to use the saw in creative to just get some normal stairs is not the best way.

Yeah, this is actually a deal-breaker for me. I do use the  search to find the right sort of node that I'm looking for in the creative Unified Inventory anyway, so it would be nice to display the stairs in the search interface for this reason.


Feature: Adding Remember me in Sign In page

I want to add a remember me checkbox in the sign in page, that will save the users email and password. It will help the users to reduce the hustle to type and remember the email and password again and again.

Okay...you can work on this!


stop execution in forks

To save GitHub some compute, the Workflows will only run if a secret by the name of RUN_WORKFLOWS is found and not empty

unfortunatelly this does not work when I open a PR from my Fork to the upstream :-(


Calling via action URL doesn't work

Hi
We can pull feeds fine on demand but the task URL that we are calling via Cron just doesn't run. For example:
http://domain.com/actions/feedMe/feeds/runTask?direct=1&feedId=1&passkey=MYPASSKEY
The result we get indicates that it should have been successful, but the the task isn't listed in the Logs tab so it appears it hasn't run:
{
    success: "Feed ID: 1 - Task started"
}

@russback Please ignore the Logs tab, as that will be shortly removed until further notice, as its not being used. Database logging was removed a few versions ago due to performance issues. Instead, all logging is done to the file system. Is the feed actually not updating entries, or are you just suspecting its not due to nothing showing in the Logs tab?

@engram-design which file do you log to? I've checked /mgmt/utils/logs but can't see any plugin-specific logs there.

@russback After having a look at the log process, there was missing output for when an entry was successfully updated/added. So if you're not seeing a log file in there - thats possibly good now.
In any case, if you could try out the latest version (1.2.8) which fixes this, and see what the log file contains. It will just be called feedme.log, and yes, you can access it through /mgmt/utils/logs.

@engram-design thanks, we're on 1.3.0 now but no feedme.log exists in the log directory and therefore not showing in mgmt/utils/logs.
We're seeing tasks stuck in the task queue and no entries being created. This is across 4 different feeds, for example:
{"id":"286","level":"0","description":"Food Manufacture","status":"running","progress":1

Where to go from here without logs to help?

@russback Hmm - Would you be able to use the support widget for one of those sites? It'll package up all the necessary files so I can investigate further.

What do you need? Be quicker if I send direct to you and give you CMS access

Okay, but there is a lot that it gathers such as your feed settings (mapping and general), fields used for mapping, log files, and your feed itself.
Otherwise, are you on the Craft Slack? Feel free to DM me and we can chat further. I can't look at it right now, but could certainly look at it in the next 24 hours.

I've asked for an invite but it's not come through. Will drop Brad an email.
In the mean time, either that support plugin or a tar of the site and db?

Ah, sure thing. Yeah, just use the Help tab in Feed Me, no need to zip up your entire site. Feel free to drop me an email directly via<EMAIL_ADDRESS>as well.

Sent via Help tab. Will email you at<EMAIL_ADDRESS>now so we're not cluttering this issue thread. Thanks

What's your username on Slack?


Hotfix: Dropdown CSS Var Fix + Fix for Copy to Clipboard

Workaround to fix copy to clipboard rendering
Updating CSS rule to fix Travis build error (oddly not happening locally)

Well huh -- @sghoweri apparently I don't have access to merge PRs? Going to see if @EvanLovely can hook me up!


Updated background invocation & operator to use -WorkingDirectory when starting a new job

PR Summary
Updated the background invocation & operator to use -WorkingDirectory parameter when starting a new job.

PR Context

Previously, Set-Location was appended to the script block of Start-Job in order to set the working directory of a new job invoked by the background invocation operator &. Now that Start-Job accepts a -WorkingDirectory parameter that sets the working directory of the new job, it makes sense to update the code for using the background invocation operator to use the new way of setting the working directory of a new job.
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[ x] Summarized changes
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[x] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[x] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[x] N/A or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
OR
[ ] I have considered the user experience from a tooling perspective and opened an issue in the relevant tool repository. This may include:

[ ] Impact on PowerShell Editor Services which is used in the PowerShell extension for VSCode
(which runs in a different PS Host).

[ ] Issue filed:

[ ] Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.

[ ] Issue filed:

[ ] Impact on PSScriptAnalyzer (which provides linting & formatting in the editor extensions).

[ ] Issue filed:

[ ] Impact on EditorSyntax (which provides syntax highlighting with in VSCode, GitHub, and many other editors).

[ ] Issue filed:

@ayousuf23 Please add test(s) for a scenario you enhance.

@ayousuf23 thanks for creating this PR, I like that you've added a thorough summary and context for this PR as this is really helpful :) the code looks good but having tests will just help us verify it works as expected, this is something we can talk about in the Semester of Code office hours this week, thanks again for creating this!

Right now, the build is failing on my computer. I think this is because of other files (not the ones I changed)

Please create new branch on a commit before #15177, apply your commits and check if test fails still exist.
/cc @daxian-dbw

@iSazonov Thank you for your suggestion. I will add another test.

@anamnavi Sorry for the late response. I added parameter names for the arguments, as you suggested.

@anamnavi @iSazonov Should I combine all the commits into one commit?

@anamnavi @iSazonov Should I combine all the commits into one commit?

No, we will do squash in merge time.

@iSazonov Is there anything remaining for me to do in order to get the PR merged?

@ayousuf23 We are waiting a review from anybody from MSFT team..

@anamnavi Can you please review this PR?

@ayousuf23 Sorry for the delay of response from the team. Can you please mention the number of the issue that you fixed with this PR in the PR description (in the form Fix #xxxxx)? So the issue can be closed automatically when merging this PR.

@daxian-dbw Thanks for your comment! I updated the PR's description.

@daxian-dbw I see the error on Windows CI "##[error]This is a scheduled windows-2016 brownout. The windows-2016 environment is deprecated and will be removed on March 15, 2022. For more details, see https://github.com/actions/virtual-environments/issues/4312"

@ayousuf23 Thanks for your contribution!


Bug: shift causes render artifacts when items are added/removed mid-list

Describe the bug
shift works great when prepending items, but causes lots of rendering artifacts when adding/removing items from anywhere else in the list. To see it, enable shift with a list of items of varying heights and then:

Add items to the middle of the visible list — the items above those inserted will have the wrong heights, as if the cached heights were not updated
Remove items from the middle of the visible list — the same thing happens
Scroll to the top, and prepend a small number of items to the top of the list, several times without scrolling — when you scroll up, there can be overlap and blank spaces

To Reproduce
Use the story in my branch and check out this demo for examples:
https://github.com/inokawa/virtua/assets/518059/61b68e1b-8f7c-4b16-b537-abcf75f502ea
Expected behavior
Rendering glitches should not happen with shift enabled, no matter where in the list items are being added / removed.
Platform:

OS: MacOS
Browser: Chrome, Firefox, Safari
Version of react: 18.2.0
Version of this package: 0.17.5

Additional context
Add any other context about the problem here.

It is not well documented, but by design, shift prop should be true when items are increased/decreased from top. And it should be false when you do other actions which increase/decrease items. Both true and false is OK when you do not increase/decrease items.
That is based on an assumption that increase/decrease at top and increase/decrease at mid/bottom will not happen at the same one render. In that shuffling/refreshing like case it's better to set false.

Got it... I wonder if I could give some more feedback that might adjust your thinking on how shift currently works then?
My concern is that shift can only be true in very specific circumstances, otherwise it causes obvious and hard-to-debug visual glitches. Using it correctly requires very fine-grained control over your render cycles and it's easy for users — myself included! — to do the wrong thing (see: footgun).
The examples in Storybook that use shift are very simplistic, knowing ahead of time where items will be added. But even these can be broken — for example, in Bi Directional Infinite Scrolling scroll all the way up (to initiate prepend and setShifting(true)), then all the way down (to initiate append with setShifting(false)). By the time the prepend actually happens, shift is false, meaning you get scrolled away from your position instead of staying the same spot as items are added. (See demo below.)
The solution to this (and I think a much more common use case) is to check whether to shift on the fly whenever items are changed. But this also seems error-prone. For example, if you keep a ref to the key of the first item, you could compare it in the render cycle and set shift if the key has changed. However if the component goes through multiple renders, this un-intuitively breaks. Here's a branch to go along with the following demo:
https://cloudup.com/c_Nm48VG4y2
Possible solution
Is it possible for Virtua to prevent the wrong thing from happening, by deciding itself whether or not to shift? Whenever it makes scroll adjustments, it checks whether the first items have changed (by comparing keys). This offloads that management from users, and also ensures that it's checking at the moment any jumps happen, to theoretically avoid double-render issues (like those highlighted in my demo).
What are your thoughts @inokawa? shift could still be a prop to enable this "shifting mode", but it would just stay true or false based on the user's preference, rather than changing every time items are changed.

Thank you for your feedback! I agree with that staying true or false would be better, as long as its code can be small.
Contribution is welcome but I'm not sure its possible. I didn't find out a way to do it completely when I implemented shift prop. Actually I started it with comparing key and length of the children on each render. However if users do sorting/refreshing/shuffling children it was hard to guess from them what users wanted to do. That's the reason I took just passing direction of update with shift prop approach. And key is generated after ReactElement is created so we can't rely on key if users choose render prop (implemented recently).

hi @mattwondra , curious if you found any workaround for this issue?

@LookRain Hiya! We rolled our own checking to see whether shift should be enabled. It was kind of complex to set up, but seems to be working OK and is performant enough for us. Essentially:

We keep a boolean ref called shouldShift that gets set, and passed into Virtua

It's a ref instead of state, because on the same render pass where a new message is added, we need to also correctly set shouldShift. Setting state wouldn't update the shift param until the next render pass, by which time Virtua would have already messed up the rendering with the wrong shift value.

The array of messages that will be rendered is heavily memoized, so its reference only changes when an item has been added or removed.
We also keep a ref for the previous list of messages, so that we can compare them whenever the list changes
On every render pass (oof) we check whether the list has changed by comparing previousListData to listData

If they match, we do nothing — the list hasn't changed and we should keep the same shouldShift value

If the list has changed, we check whether the first items match (by an id)

If they don't match, we know we're pre-pending and we set shouldShift.current = true
If they do match, we know an item was added somewhere else in the array and set shouldShift.current = false

Then we update previousListData.current = listData for the next render pass

This ensures that every time listData changes, shouldShift also changes in the same render pass — but if another render happens soon after, shouldShift only changes back when necessary. Here's the hook code, hopefully it's useful for you with some modification:
/**
 * Virtua's `shift` prop helps maintain scroll position when prepending items (like message history).
 * Unfortunately it's finicky and must only be `true` when the beginning of the list changes, otherwise
 * rendering gets broken (see: https://github.com/inokawa/virtua/issues/284).
 *
 * Virtua also requires `shift` to be correct on the same render pass when items are updated — so we can't
 * just use `useEffect` and `useState` to monitor items and update `shift` since those will update _after_ the
 * render pass. Instead, we use refs to check if the underlying data has changed on each render pass, and
 * update a `shift` ref in the same pass.
 *
 * That's all encapsulated in this handy hook, to keep the logic out of the component.
 */
const useShift = (listData?: MessageListData) => {
  const previousListData = useRef<MessageListData | undefined>()
  const shouldShift = useRef<boolean>()
  if (listData !== previousListData.current) {
    if (listData?.messages[0]?.id !== previousListData.current?.messages[0]?.id) {
      shouldShift.current = true
    } else {
      shouldShift.current = false
    }
    previousListData.current = listData
  }
  return shouldShift.current
}

Anyone got a good solution for vue environments experiencing this?


Error: Failed to find module nativescript-angular/application

I'm unable to start my app after switching to nativescript-angular unable to create application com.tns.NativeScriptApplication

Can you please verify that you have all the necessary dependencies in your package.json.
You can create an nativescript-angular hello project using the CLI ($tns create ngProgect --ng) and copy the dependencies from there.

I fixed it with by rebuilding the project and some cleaning


update codeowners file

What does this PR do?

See title.
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


How to force login on starting application

Hi. How would you suggest to implement the functionality to secure the whole app, and make the application directly login when the application is started?

Many ways to go about that, including:

Guarding all routes with the AuthGuardWithForcedLogin
Optionally setting the Router's InitialNavigation to false, and doing the login sequence with the feature to force login

Hope that helps!
(Closing the issue, as I hope this issue -even closed- plus the comments at that last link are enough guidance for future visitors...)

@jeroenheijmans Tried this but not working for me.
It only redirects to server when silent refresh timeout error occurs, i want when the application boots up for the first time it should ask for login.

Hey @Sonik20 sorry to hear you're still having an issue with your setup! I'm just one person here in this repository though, so not really bandwidth to help folks out with their individual setups, beyond general guidance. I recommend asking a question e.g. on Stack Overflow or Reddit or some such, adding a reproducible scenario and telling them what the obstacle is. Many more people there to reliably help you out!

Hi @casha17, what I did here is that I added the following code from my providers array .
{       provide: APP_INITIALIZER,       useFactory: (someService: someServiceName) => () => someServiceName.initializeAuth(), // Whatever the method name inside your service       deps: [someServiceName],       multi: true }
It will be your top level checking before the app.component gets initialize and it will force the user to get redirected to your IDp to sign-in. After that, you can make a guard and add it within the module you want to protect. Basically what the guard will do is it will validate if your idToken & accessToken from OAuthService are valid, otherwise you can call initCodeFlow or other similar method to login.


Doesnt seem to work?

I've downloaded the workflow, however, the workflow and the action stuff doesn't seem to work on my side?  Is there any requirement or setting that I need to do before triggering this function?

Sorry for the confusion!
Do you have CleanShot X installed?
Is your CleanShot X version 3.5.1 or above?
Those are the requirements for the workflow.
I just updated the README to clarify the same.

Closing due to inactivity. Feel free to reopen :)


ImportError: No module named pysteam.steam

Hi all,
I've tried setting up Ice several times, read the readme 's  and looked at the FAQ's.
I think I set it up correctly but when i run ice.py I get the following error:
(copied from stderr.log)
Traceback (most recent call last):
File "C:\emulators\ice 4\src\ice.py", line 7, in
from ice.runners import command_line_runner
File "C:\emulators\ice 4\src\ice\runners\command_line_runner.py", line 9, in
from pysteam.steam import Steam
ImportError: No module named pysteam.steam
Could anyone give me some adivce?
Thank you all in advance.
/Bleda2
(I'm new to both python and Github so i'm sorry if i make some kind of rookie mistake ^_^ )

Hi all i got an error on my Mac running ICE, please be so kind to assist:
Traceback (most recent call last):
File "/Users/Slip7000/Emulators/Ice/ice/main.py", line 7, in
from cli import CommandLineRunner
File "ice/cli/init.py", line 2, in
from runner import CommandLineRunner
File "ice/cli/runner.py", line 10, in
from pysteam.steam import get_steam, Steam
ImportError: No module named pysteam.steam
this the error i got ...


[Autocomplete] Update react-select demo to have isClearable set to true

[x] I have followed (at least) the PR section of the contributing guide.

Closes https://github.com/mui-org/material-ui/issues/13890

@rfbotto Thank you


Allow additional query parameters for media method

The recent media endpoint (docs) allow for a couple of parameters.
This PR introduces the ability to send these parameters with the request.
// get only 3 of the most recent media...

$instagram->media(['count' => 3]);

Thanks @timacdonald! ✨


FR-26052022-2 Force object value re-write using "create-address-from-file"

Is your feature request related to a problem?
currently the script skips any existing objects
Describe the solution you'd like
add a "Force" option to the command, which instructs the script to change the value of existing objects as long as they have the correct type. I believe currently the script accepts only ip-netmask type.
Describe alternatives you've considered
The script currently clearly says which objects already exist so we just create the SET commands for adding them into the groups manually.

please validate with newest PR:
#582
and comment please