Deployment to Azure not working?

Hello,
I followed the instructions at https://github.com/microsoft/mixed-reality-extension-sdk/blob/red/DEPLOYING.md to deploy my MRE at a new Azure instance, but it doesn't seem to be working.
The public/ directory seems to be served fine at https://pink-box-game.azurewebsites.net.
But when I try to access the MRE in MRETestBed via ws://pink-box-game.azurewebsites.net, the MRE doesn't load and I don't see my debug output in the Azure log to show that an MRE context is being created on a user connection.
This is my server setup:
const server = new WebHost({
	baseUrl: 'https://pink-box-game.azurewebsites.net',
	baseDir: resolvePath(__dirname, '../public'),
	port: process.env.PORT
});

This is the output on the Azure instance:
2020-01-03T17:49:25.473414826Z 2020-01-03T17:49:25.472Z app Node: v10.17.0
2020-01-03T17:49:25.474357130Z 2020-01-03T17:49:25.474Z app @microsoft/mixed-reality-extension-sdk: v0.14.0
2020-01-03T17:49:25.547312240Z 2020-01-03T17:49:25.547Z app Multi-peer Adapter listening on {"address":"::","family":"IPv6","port":8080}
2020-01-03T17:49:25.553088465Z 2020-01-03T17:49:25.547Z app baseUrl: https://pink-box-game.azurewebsites.net
2020-01-03T17:49:25.553359466Z 2020-01-03T17:49:25.553Z app baseDir: /home/site/wwwroot/public

You need to use port 8080 (or whatever's configured). So ws://pink-box-game.azurewebsites.net:8080, and make sure the port is open in the firewall.

Thanks @stevenvergenz , do you mean that I need to set the baseUrl to ws://pink-box-game.azurewebsites.net:8080 in my server file, or just that I need to use that URL in the MRETestBed?

Both.

Also, if you're using Unity version 2018.2 or earlier, loading resources via HTTPS will not work, you need to use plain HTTP.

@stevenvergenz Thanks, it is still not working. I am assuming there are steps missing in the Deployment instructions for the Azure Deployment, because the web socket doesn't want to connect no matter what. I even set 'Web Socket' to ON in the Azure app settings and still nothing.
Thanks again!

@stevenvergenz
I was finally able to get the MRE deployment on Azure working with the following setup:
const server = new WebHost({
	baseUrl: 'https://pink-box-game.azurewebsites.net',
	baseDir: resolvePath(__dirname, '../public'),
	port: (process.env.PORT || 80)
});

And accessing ws://pink-box-game.azurewebsites.net:80 in MRETestBed.
The problem I think is that Azure won't serve any WebSocket content over 8080, only over 80 or 443, but expects to be able to pink 8080 on startup.  Therefore, the port in the MRE needs to both serve 8080 and 80 at various times, I think?
ping @olga-microsoft ^^
The deployment instructions could use some updating, thanks!

I tried these steps and couldn't make websockets work after following my old steps and these. I was reading that Azure Web App expects only usage of ports 80 or 443, but even that didn't work. HTTP works fine, but websocket connection is rejected with 503. I tried only with a free tier app, maybe it's not a supported feature? I'd contact Azure support for this.

I tried these steps and couldn't make websockets work after following my old steps and these. I was reading that Azure Web App expects only usage of ports 80 or 443, but even that didn't work. HTTP works fine, but websocket connection is rejected with 503. I tried only with a free tier app, maybe it's not a supported feature? I'd contact Azure support for this.

@olga-microsoft Did you enable websockets in your web app service configuration?

@tombuMS yes, I did, the first thing. It didn't seem to change anything.

I was working on this a few months ago and found this to work for me at the time for some reason:
https://github.com/evhan55/mixed-reality-extension-sdk-samples/blob/f9752c962447ce104e15678f6071a8d6b00534a7/samples/team-planner/src/server.ts#L21

Confirmed with Azure team that websockets+Linux+free tier is not a supported scenario yet. I will update the instructions.
https://docs.microsoft.com/en-us/answers/questions/61386/can39t-connect-to-a-nodejs-web-app-websocket.html

Closing this, as the instructions have been updated


Cannot send BCH to Bittrex

I have an error when I try to send my funds to bittrex, see picture. I put in the receiving adres. Fill in the password, the code and send. After that the attached warning shows. I don't know what I do wrong?

connect to BCC server and check 2fa thread

How do I do that?

Everytime it has a different warning. Please help me, there is no tutorial about this and I think there are more people with the same problem


Still maintained?

I have no time for implementing new features but I'm happy to review pull requests.


Adldap::search()->get() does not return any results

Hey, i have trouble finding any users at my ldap.
Adldap::search()->get() fails and returns an empty array. Can somebody explain me why this happens? I can contact the LDAP server but don't get any users (an empty array instead). Even Adldap::search()->setDn('existing dn')->get(); fails, with the dn directly copied from LDAP Browser (uid=username,cn=xxx,ou=yyy,l=zzz,dc=de,o=mycorp). Are there any .env variables applied to this syntax, which may can be wrong?
Note that I am able to bind to the server (if I change the admins user name or password I get an error message, so I am definitely connecting to the server!)
Do you have an idea what I am doing wrong?

Hi @ngrippa,
This is likely due to an invalid base DN, or other configuration settings.
Have you changed your schema in the configuration for OpenLDAP instead of ActiveDirectory?
The ActiveDirectory schema is configured by default and will not work with OpenLDAP.
Also ensure your base DN is correct in your configuration file (config/adldap.php).
Your search query is also incorrect, as you're setting the distinguished name to a user account, which will return null unless you specify that you want to read from the set distinguished name.
To locate an exact record, you can either use the built in method findByDn() or manually.
Using built in method:
$dn = 'uid=username,cn=xxx,ou=yyy,l=zzz,dc=de,o=mycorp';

$user = Adldap::search()->findByDn($dn);

Manually:
$dn = 'uid=username,cn=xxx,ou=yyy,l=zzz,dc=de,o=mycorp';

$user = Adldap::search()->read()->in($dn)->whereHas('objectclass')->first();

If you still encounter issues, please comment back and I will re-open this, thanks!


Why it takes a long time to connect Bluetooth devices

await bluetoothDevice.connect();
This statement takes a long time to execute, sometimes tens of seconds

connectSubscription = scanResult.device.state.listen((connectState) async {
if(connectState==BluetoothDeviceState.connected){
var endnow = new DateTime.now();
var end = endnow.millisecondsSinceEpoch;
time = (end -start)~/1000;
print('开锁时间:$time');
List services = await scanResult.device.discoverServices();
services.forEach((service) async {
if(service.uuid.toString().toLowerCase()=='0000fee7-0000-1000-8000-00805f9b34fb'){
var characteristics = service.characteristics;
writeChar = characteristics[1];
readChar = characteristics[0];
await characteristics[0].setNotifyValue(true);
enterOrder=0x01;
infoSubscription = characteristics[0].value.listen((value){
listenChangeData(value);
});//监听变化的流
}
});
}else{
print('蓝牙状态:$connectState');
}
});
await scanResult.device.connect(autoConnect: false);
After debugging, I can use the above method to connect quickly. Is this feasible

I suggest you put the state listener after connect action, and use a try on to catch timeout error

yes!
    I use monitor to execute interactive commands when the connection is successful!Set the auto connect parameter to false, and the connection speed will be faster
like this:
scanSubscription = flutterBlue.scan(withServices: [guid],timeout: Duration(seconds: 5)
).listen((scanResult) async {
// do something with scan result
if(scanResult.device.name!=''){
if(scanResult.device.name.contains("C420EA3F2C84589A")){
bluetoothDevice = scanResult.device;
print('${bluetoothDevice.name} found! rssi: ${scanResult.rssi}');
flutterBlue.isScanning.listen((data){
print(data);
});
flutterBlue.stopScan();
var now = new DateTime.now();
var start = now.millisecondsSinceEpoch;
connectSubscription = scanResult.device.state.listen((connectState) async {
if(connectState==BluetoothDeviceState.connected){
      List<BluetoothService> services = await scanResult.device.discoverServices();
      services.forEach((service) async {
        if(service.uuid.toString().toLowerCase()=='0000fee7-0000-1000-8000-00805f9b34fb'){
          var characteristics = service.characteristics;
          writeChar = characteristics[1];
          readChar = characteristics[0];
          await characteristics[0].setNotifyValue(true);
          enterOrder=0x01;
          infoSubscription = characteristics[0].value.listen((value){
            var endnow = new DateTime.now();
            var end = endnow.millisecondsSinceEpoch;
            time = (end -start)~/1000;
            print('开锁时间:$time');
            listenChangeData(value);
          });//监听变化的流
        }
      });
    }else{
      print('蓝牙状态:$connectState');
    }
  });
  await scanResult.device.connect(autoConnect: false);
}

}
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2019年10月22日(星期二) 下午3:10
收件人<EMAIL_ADDRESS>抄送: "登顶珠峰"<283229485<EMAIL_ADDRESS>主题: Re: [pauldemarco/flutter_blue] Why it takes a long time to connect Bluetooth devices (#410)
I suggest you put the state listener after connect action, and use a try on to catch timeout error
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

i also get this problem.can you share your project?thank you!!

Set autoConnect: false try

I'm still having this problem. Sometime, it takes long time to connect.
Set autoConnect to false doesn't seem to help.

I'm also experiencing a longer-than-expected time to connect to the device. @pauldemarco Do you have any ideas what might be going on?

I'm also experiencing a longer-than-expected time to connect to the device. @pauldemarco Do you have any ideas what might be going on?

Based on my testing:
iPhone 7 = instant connect (under 1000ms)
Redmi Note 4X = sometimes took ages, mostly in about 1-3 secs
Realme 3 = mostly took ages even not gonna connect
Samsung M10 = mostly in about 1-3 secs

Based on my testing:
iPhone 7 = instant connect (under 1000ms)
Redmi Note 4X = sometimes took ages, mostly in about 1-3 secs
Realme 3 = mostly took ages even not gonna connect
Samsung M10 = mostly in about 1-3 secs


create flag to omit "Confusing use of..." messages

Could you introduce a flag that omits messages like this:
 Confusing use of '!'. (../src/js/bla.js:595:9)
  > if (!(somevariable > 0)) {

i have very good reasons to leave the code like it is. (somevariable can be null or undefined)
thanks!

Use /*jshint -W018 */.

Suppress warnings using a configuration file.
$ jshint myscript.js
myscript.js: line 109, col 10, Confusing use of '!'.

1 error

$ cat jshint-config.json
{
  "-W018": false
}

$ jshint --config=jshint-config.json myscript.js
$ echo $?
0

Warning codes
https://github.com/jshint/jshint/blob/HEAD/src/messages.js#L82
#2551

@zachborboa. Finally!
Since when is this possible?
 This syntax works..! It is just undocumented.

https://github.com/jshint/jshint/issues/2551#issuecomment-121148888

Okay nice. So how about documenting it then?

@zachborboa's solution worked. Add "-W018": false to the .jshintrc file.


[docs] test guide

Update test guide documentations

DARKSWORD +21

The testing guide has been updated in https://github.com/web-infra-dev/rspack/pull/6519.
You can refer to https://www.rspack.dev/contribute/development/testing for details.
Please note that we are still improving the testing process and the content in the document will be continuously updated.


.wslconfig is ignored

Windows Build Number
Microsoft Windows [version 10.0.19042.964]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
Linux version 5.4.72-microsoft-standard-WSL2 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Wed Oct 28 23:40:43 UTC 2020
Distro Version
Debian 10
Other Software
Docker Desktop 3.3.1
docker-desktop            Running         2
Debian                          Running         2
docker-desktop-data    Running         2
Repro Steps
I made a simple .wslconfig inside %userProfile%.wslconfig who looked like this :
[ws12] memory=3GB localhostForwarding=true
restart wsl (wsl --shutdown + closing docker desktop)
Expected Behavior
.wslconfig to be used by wsl
Actual Behavior
WSL don't use the .wslconfig.

It can go up to 6GB of ram used.
Diagnostic Logs
No response

just to be sure, you have the .wslconfig in on liner like you wrote, or with new lines as follow:
[wsl2]
localhostForwarding = true
memory = 3GB

as it's a config file, the space might not "split" the options correctly

It's on multiple line, but i didn't put any space round the equal sign, i'll try that

Same thing I am also seeing:
souradeep@DESKTOP-GQJDF6F:~$ cd
souradeep@DESKTOP-GQJDF6F:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           5718          84        5606           0          26        5499
Swap:          2048           0        2048

But in .wslconfig I have done the change:
[wsl2]
memory=4GB
localhostForwading=true
pageReporting=true
idleThreshold=1

If I check dmesg , I can see following:
[   50.851226] hv_balloon: Max. dynamic memory size: 5918 MB

So 4gb limit is not working.
Linux DESKTOP-GQJDF6F 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Windows 10 home 19042.

If I do free -m :
                   total           used        free           shared   buff/cache   available
Mem:          12530        2419        8414         401        1697             9419
Swap:          4096          0             4096

we can see that WSL is still using the default config (80% of ram usage)

If I am correct this config needs to get passed to hyper-v before kernel boots up by wsl.exe . So either parsing is failing, or config setting up in hyper-v is failing.

You may have mistakenly made it .wslconfig.txt instead of .wslconfig.
E.g. If you enter .wslconfig in the notepad's save dialog, the .txt extension will be added unless with double quote. In addition, notepad's title bar hides the .txt extension.
Run notepad "%USERPROFILE%\.wslconfig" from Win+R dialog. Did the expected file open?
Another problem is the character code.
Should be UTF-8. ANSI may works. UTF-8 with BOM, UTF-16 LE and UTF-16 BE don't work.
And your first post [ws12] is 1 of the number instead of lower of L, is that okay?

souradeep@DESKTOP-GQJDF6F:~$ ls -l  /mnt/c/Users/soura/.wslconf
-rwxrwxrwx 1 souradeep souradeep 80 Apr 30 14:00 /mnt/c/Users/soura/.wslconf
souradeep@DESKTOP-GQJDF6F:~$ cat  /mnt/c/Users/soura/.wslconf
[wsl2]
memory=4GB
localhostForwading=true
pageReporting=true
idleThreshold=1souradeep@DESKTOP-GQJDF6F:~$ file  /mnt/c/Users/soura/.wslconf
/mnt/c/Users/soura/.wslconf: ASCII text, with CRLF line terminators
So I have ascii test. Rest all things are fine then. I will change to UTF-8 and will update.

I have restarted the wsl again and checked the dmesg as well:
souradeep@DESKTOP-GQJDF6F:~$ dmesg | grep -i hv_balloon
[    2.260660] hv_vmbus: registering driver hv_balloon
[    2.261684] hv_balloon: Using Dynamic Memory protocol version 2.0
[    2.262749] hv_balloon: Cold memory discard enabled
[   51.074076] hv_balloon: Max. dynamic memory size: 5918 MB
souradeep@DESKTOP-GQJDF6F:~$

So hypervisor driver is keep setting the default value.

As per vscode the character encoding is UTF-8.

Repro Steps
I made a simple .wslconfig inside %userProfile%.wslconfig who looked like this :
[ws12]
memory=3GB
localhostForwarding=true

If that's the actual content it won't work because instead of an L there is a 1 in [wsl2].

Repro Steps
I made a simple .wslconfig inside %userProfile%.wslconfig who looked like this :
[ws12]
memory=3GB
localhostForwarding=true

If that's the actual content it won't work because instead of an L there is a 1 in [wsl2].

@souradeep100  Where is "ig"?

souradeep@DESKTOP-GQJDF6F:~$ ls -l  /mnt/c/Users/soura/.wslconf
-rwxrwxrwx 1 souradeep souradeep 80 Apr 30 14:00 /mnt/c/Users/soura/.wslconf
souradeep@DESKTOP-GQJDF6F:~$ cat  /mnt/c/Users/soura/.wslconf
[wsl2]
memory=4GB
localhostForwading=true
pageReporting=true
idleThreshold=1souradeep@DESKTOP-GQJDF6F:~$ file  /mnt/c/Users/soura/.wslconf
/mnt/c/Users/soura/.wslconf: ASCII text, with CRLF line terminators

So I have ascii test and encoded as UTF only.

Thanks for pointing out. Now it is working :) Missed the ig.
souradeep@DESKTOP-GQJDF6F:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3932          87        3793           0          51        3705
Swap:          1024           0        1024

@benhillis this is the absolute path of my .wslconfig :
C:\Users\nmenettrier.wslconfig

@0xbadfca11 ... ok thanks for pointing this out, it's definitely this. I'm on this since one week I was getting crazy. So yes, it's [wsl2] not [ws12], case closed.

https://github.com/microsoft/WSL/issues/6728#issuecomment-878917522


Service links exist but aren't showing up in UI

v0.26.0-rc1
Steps:

Have two Environments (Default and Dev)
Add host to both
Create two services in each Environment
Go to Default and edit one service and link it to the other
Go to Dev and edit on service and link it to the other

Results:
The link won't show up in Dev environment, if you refresh the page, it will show up.    Refresh and links will show up on Default but won't on Dev.
Expected:
Links should show up for all environments at same time

@tfiduccia I think this is the continuing saga of websocket disconnects?

@vincent99 Nope, this is reproducible on my setup. It's something to do with the fact that there are 2 environments.
In my case, the link didn't show up any time I edit and added the link until I refresh.

@vincent99 This actually happens on create if you have 2 environments. The service links don't show up.

Reported in IRC:
tommmied
On page reload for stacks,  sometimes the service links are not properly labeled on the services and causes cloning/edits of that service to lose them after an update

This still exists in the reskin.

+1
I've seen this as well for a while now.
haven't debugged the actual traffic.. but here's what I see:
We have several environments (3). The default environment that is selected when you log in doesn't have any services in it (only containers), and an empty default stack.
When I select another environment that does have services, it doesn't load the service links properly in the GUI:

After a page reload, it shows up nicely:

@vincent99, as @deniseschannon has reported this as reproducible, I defer any further debugging unless you ask for it.. :)

Adding this to the next milestone.  Customers are hitting it, can we get this fixed?

Ok I was previously trying to solve a similar but different problem with new links to not show up sometimes depending on the order and timing of the change events.. If you do what this issue actually says, the problem is the mapping of service links is loaded once and not reset when switching environments so it's wrong until you reload.  So that's an easy change (https://github.com/rancher/ui/pull/428)

I'll see if it fixes the use case that I've seen in the next RC.

Most anticipated fix for 2016!

Verified with v0.55.0-rc3. My use case (how I run training/demos) seems to not have the previous issues with linking. :)

version - master 01/19
Verified fixed


no color under shellinabox

when I use vim via physical machine or xshell ,the vim is OK
But when I use it in the shellinabox.
Things changed
This can prove shellinabox has color terminal:  (ls -al )

But when I enter vim,  no color  even  no line number

and in the mid of the vim of a null file , it is this:

I guess when I open vim in shellinabox , it is in other open mode??
But the plugins are ok ,because I can still enter ',nn' or ',o' to open them, but they are also no color:

anyone who knows how to solve it?

If I do:
if [ "$TERM" == "xterm" ]; then
export TERM=xterm-256color
fi
then it will occur

Please put this in your my_configs.vim - this seems to be specific to the xterm terminal


Ingress not loading

Hi, im using HA in Version 2024.12.4 and yesterday the addon worked finde but then it was updated to 1.2.4 and nothing works anymore. The error when i click on the Sidepanel is
Unable to load custom panel from https://home.XXXXXX.de/files/ingress/entrypoint.js
Restart and Downgrade to older versions doenst helped for me.

Try to delete cookie and history from your ha instance. Had the same problem. Deleting cookie and histroy solved it. I use google chrome.


Investigate using faer for matmul instead of ndarray.

What should we add?
Right now we're primarily using ndarray's dot() method to do matmul in the accelerate crate (for example: https://github.com/Qiskit/qiskit/blob/bee2b95f6f790831ef1675b311988bb5ce6d2d6d/crates/accelerate/src/two_qubit_decompose.rs#L133 ). According to the faer-rs docs matrix multiplication is faster in faer than ndarray for 4x4 arrays (mostly what we deal with):
https://github.com/sarah-ek/faer-rs/blob/b014e06621550282f877664bf0bbb4d451945b0d/README.md#matrix-multiplication
We should investigate switching all of our matrix multiplication to faer to evaluate whether this applies to our usage in qiskit. Our exact usage of ndarray in qiskit isn't exactly what's being benchmarked in the faer documentation because we're not using the openblas backend in qiskit; we use the generic backend which is in pure rust instead of calling out to openblas. It's not clear whether there will be any performance advantage to using faer in this case, this issue is to track the investigation to figure this out and make a determination.

Semi-related the other project to keep an eye on is nano-gemm from the author of faer:
https://github.com/sarah-ek/nano-gemm
https://sarah-ek.veganb.tw/blog/nano-gemm/
I don't think it's quite ready for use yet (and it's not on crates.io yet) but that might be a good fit for what we do in Qiskit eventually.

Looking at both libraries, it seems like, in our case, faer is also faster than ndarray for 4x4 matrices. I have written a little code under the qiskit's accelerate crate to test both methods, dot() for ndarray and matmul() for faer. In the test, I run the following operation in a loop of 1000 iterations and get the average time per iteration that each matrix multiplication method spent:
$DST = alpha \cdot DST + beta \cdot  A \cdot B$
       where:
             $alpha = 1$
             $beta = 0.5 + 0.5i$
The matrix $DST$ is initialized to 0, and $A$ and $B$ are matrices with their components initialized to a random complex number. I used that specific operation to leverage all the parameters available in the faer's matmul method. Modifying the $alpha$ and $beta$ parameters doesn't change too much the results.
Benchmarks
In the following tables, we can find a comparison between ndarray and faer running the code mentioned above 100 times and getting the minimum, maximum, and average times for different matrix sizes (4x4, 8x8, 16x16). The tests were run on two different computers, being the second one more powerful than the first one, and two different operating systems.
Linux
These results have been obtained running the code in a Linux machine (Debian 12) with an Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz

% change avg (ndarry -> faer)
ndarray (min)
ndarray (max)
ndarray (avg)
faer (min)
faer (max)
faer (avg)

4x4
54.67%
266ns
547ns
292.99ns
121ns
216ns
132.83ns

8x8
-397.25%
659ns
929ns
716.05ns
3.22µs
5.15µs
3.5606µs

16x16
-56.60%
3.03µs
3.72µs
3.2366µs
4.73µs
5.65µs
5.0688µs

macOS
These results have been obtained running the code in a macOS machine (Sonoma) with an Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz

% change avg (ndarry -> faer)
ndarray (min)
ndarray (max)
ndarray (avg)
faer (min)
faer (max)
faer (avg)

4x4
77.71%
391ns
676ns
521.32ns
86ns
271ns
116.1ns

8x8
-119.96%
588ns
1.20µs
691.53ns
1.24µs
2.71µs
1.5211µs

16x16
-1.88%
2.35µs
4.6µs
2.9375µs
2.54µs
5.02µs
2.9926µs

As we can see, faer seems to performs better than ndarray for 4x4 matrices. In the table, we can't find the matrix multiplication with 2x2 matrices but in that case, faer is also performing better. For larger matrices, we see the opposite tendency with a notorious difference for the 8x8 case.
I think it could be a good change for small matrices if we mostly deal with small matrices. To deal with 8x8 matrices in case we decide to switch to faer, do you think it would make sense to maybe have a special case for matrices bigger than 4x4 to still use ndarray without losing the current performance?
I hope the benchmarks help with the decision, and all the results of the executions can be found as well in my fork in the accelerate crate on a text file with the name faer-size_os-cpu.txt or ndarray-size_os-cpu.txt with size = {4, 8, 16}, os = {linux, macos}, and cpu = {i5, i9}.

Ok cool, a ~50% speedup definitely seems worth switching how we do matmul internally. I'm surprised it's that significant of an improvement. Right now the 2 modules where I think this is comes up the most is https://github.com/Qiskit/qiskit/blob/main/crates/accelerate/src/convert_2q_block_matrix.rs and https://github.com/Qiskit/qiskit/blob/main/crates/accelerate/src/two_qubit_decompose.rs and those only deal with 2x2 and 4x4 matrices. So we can update the internals to use faer for matmul we should hopefully see some performance gains.

This does look very promising.
A few more questions it might be worth looking at:

do we know what SIMD extensions were available for both benchmarking tests?
how do they compare to the minimum set that we compile Qiskit with for distribution in our wheels?
could we use pulp's SIMD dispatch to bridge the gap if we need to?

I've been also testing with the kron function that we are also using in convert_2q_block_matrix.rs, and it seems like it's also faster with faer. The improvement with 2x2 (the case we use) is not very noticeable though. Regardless, I think it's a good change given that the script will use Mat instead of ArrayView, but I wanted to know your opinion here. The change can be seen in this PR.
Here are the results of the tests in a similar way to the matmul ones, comparing kron in ndarray vs kron in faer.

% change avg (ndarry -> faer)
ndarray (min)
ndarray (max)
ndarray (avg)
faer (min)
faer (max)
faer (avg)

2x2
5.89%
265ns
865ns
372.04ns
233ns
983ns
350.13ns

4x4
63.42%
1.88µs
3.23µs
2.213µs
664ns
1.46µs
809.51ns

@jakelishman I was testing with pulp as well, but I wasn't able to bridge the gap between both libraries. I was following this example, but maybe I wasn't using it in the correct way

Sorry for the naive questions but I'm not familiar with rust. Is the intuition that the faster matrix-matrix from faer multiply comes from: a) a different data structures; b) better dispatch; c) better underlying algorithm for small matrices; d) other?

My assumption is the primary difference is due to better SIMD dispatch internally. The faer code from my quick scan through it is written to try and leverage simd with runtime dispatch as much as it can (the underlying implementation is here: https://github.com/sarah-ek/gemm/ I think). While the generic ndarray implementation we were using (you can see the code here: https://github.com/rust-ndarray/ndarray/blob/0.15.6/src/linalg/impl_linalg.rs#L74-L93 and  https://github.com/rust-ndarray/ndarray/blob/master/src/numeric_util.rs#L56-L93 ) is written in a way to encourage the compiler to use SIMD instructions with the code structure it's not explicitly calling the SIMD intrinsics. The default x86_64 CPU target will not leverage AVX or AVX2 which were available on both of @arnaucasau's test systems and the default generic x86_64 target only has sse2. But this is just a guess I haven't looked at the assembly comparing the two to see if that's really what's different.
Besides inspecting the assembly output a reasonable test would be to do the test on an arm64 mac as the default arm64 macOS target enables all the neon extensions because the cpu feature set is basically flat for arm64 macs. So I would expect us not to see much of a difference there because I expect the compiler should be using the same SIMD feature set that faer would be manually calling.
I do know the author of faer is looking at doing both 'a' and 'c' with her nano-gemm library but that doesn't appear to be ready yet (see the blog post I linked to here: https://github.com/Qiskit/qiskit/issues/12120#issuecomment-2032784783).


Open Demo Initiative

Scale the demo experience to millions of developers by offering an open demo environment that can be accessed with needing a NR account
Milestone brief here
https://docs.google.com/document/d/1Emmst42VD2YjC22j1ZqPMzff0h4r1FU1PC499RC1LEc/edit#heading=h.dzcob9s7ljl8

@polfliet and I need to detail the work out for this ticket once er define the demo story in New Relic Sandbox requirements Doc


Self-referential jsdoc type aliases don't resolve at end of file

/** @type {Ref2} */
var r2
/**
 * @typedef {Second} Ref2
 * @typedef {{ b: string }} Second
 */

Expected behavior:
No error, and r2 has type { b: string }.
Actual behavior:
"Can't resolve 'Second'."
This only happens when the comment (or set of comments) is at the end of the file. The error happens regardless of order. If the file has some other error in it (eg some other reference to a type that doesn't exist like @type {Foo}, then the error doesn't appear.

@sandersn do you think this is something for the near future or should I be moving our typedefs up in their files for now?
We want to update to typescript@next to be able to use the new @template constraints, but from previous PRs on typedefs/exports it seems like this might be wrapped up in some of the less tractable parts of parsing jsdocs, so no worries if it's going to require more than a little time.
To add to the issue

changing the example from
@typedef {Second} Ref2
into
@typedef {exports.Second} Ref2
also fixes the error (though obviously not what you want to do :)

Might be a separate issue, but some types of code after the typedefs, like an if statement or a for loop (or even just a semicolon) changes the error to Cannot find name 'Ref2', regardless of what comes after that (so, even if at the top of a file).
/** @type {Ref2} */ // [ts] Cannot find name 'Ref2'.
var r2
/**
 * @typedef {Second} Ref2
 * @typedef {{ b: string }} Second
 */

;
// any code you want

@brendankenny I plan to fix this in the next few days. I'm not sure what's happening, though, so it might be a complex fix.

@brendankenny You found a different issue. Typedefs are not bound except when they occur before statements that we expect to have jsdoc -- specifically Class/Function/ExpressionStatement and a few others. I'll file a separate issue because this bug appears to be fixed on master.

@brendankenny I opened #25252 to track the holes in binding jsdoc.


brats_segmentation_3d data loader taking too long

Describe the bug
The data loader here is taking over an hour to load the 100 images: https://github.com/Project-MONAI/tutorials/blob/master/3d_segmentation/brats_segmentation_3d.ipynb. Running on MONAI's master branch.

Hi @rijobro ,
Maybe your device is not very powerful? You can decrease the cache_num.
If still taking same time, maybe need to check whether we have a bug.
Thanks.

Hi @rijobro ,
Maybe your device is not very powerful? You can decrease the cache_num.
If still taking same time, maybe need to check whether we have a bug.
Thanks.

I don't think that's the problem unfortunately, as I'm running on a 32GB V100. Num workers is set to 4 by default, which we could increase, but it's hard to see that having a dramatic reduction in computation time. Does the code run quickly for you? I'm currently trying to run it in colab, but it has to download the 7GB of data first.

I don't think that's the problem unfortunately, as I'm running on a 32GB V100. Num workers is set to 4 by default, which we could increase, but it's hard to see that having a dramatic reduction in computation time. Does the code run quickly for you? I'm currently trying to run it in colab, but it has to download the 7GB of data first.

Ah possibly an IO problem on my cluster, sorry!

Ah possibly an IO problem on my cluster, sorry!


[synapse] enable generator config update from ZK

to: @jolynch, @igor47
cc: @liangg, @jtai , @wei-zhang
Dynamic generator config update in Syapse
In the current implementation, the “watcher” class has the “config_for_generator” field which is initialized when Synapse starts, and loads the static connection configuration from Synapse config.
The major changes to that are:

Allow Zookeeper watcher to update its “config_for_generator” field  when getting update from ZK.
Trigger configuration re-generation when either backend list or generator config changes.
Store front/backend configure in Haproxy stat file, not only backend list.
Add haproxy restart trigger when front/backend configure changes.

Those changes fall into the following Classes.
BaseWatcher Class
The ‘set_backends’ function will take a second argument ‘new_conifg_for_generator’, default to empty hash. The function then compares the new config with the existing one, update the ‘conifg_for_generator’ field and trigger Synapse re-configure if necessary. Watchers other than ZookeeperWatcher do not need to change its function call to “set_backends” as the new argument is default to nil.
ZookeeperWatcher Class
In the “discovery” function, besides reading the children of the znode, also get its node data, parse into generator config.
Pass the new config to the “set_backends” function
Haproxy Class
Haproxy State file should also keep the haproxy config data.
When update_config, compare the new config with the one from state file. If haproxy config changes, it should trigger haproxy restart.
In order to keep backward compatible in the Haproxy Stat file, we propose to add a new key-value-pair under each service, besides the list of backends. The key is specially named as "watcher_config_for_generator". And creates a wrapper class around the current “seen” object (which deserializes the haproxy Stat file) so that it knows how to the added config element from the rest of the backend server list.
{
"service1": {
“watcher_config_for_generator”: { //watcher.config_for_generator["haproxy"]}
"i-xxxxxxx_<IP_ADDRESS>:80": {
"name": "i-xxxxxx",
"host": "<IP_ADDRESS>.83",
"port": 80,
"id": 75,
"weight": null,
"haproxy_server_options": null,
"labels": null,
"timestamp":<PHONE_NUMBER>
}
}
}
For the purpose of comparing two Hash (of the config_for_generator), I am explicitly add the dependency to HashDiff gem, which was implicitly depended by gems that Synapse refers.
Test

updated existing rspec
added new rspec test cases to cover the new feature

@jolynch @igor47 ,
Did you get a chance to take a look at the PR? We have a tight timeline and are pending on this change to make progress.
Please let me know what you think. Happy to chat online.

@lap1817 thanks for the patch, I'll try to take a look asap.
I am curious though, what is the driving motivation? Are you dynamically adding in different ACLs or something based on some external script?

@jolynch, thank you!
I sent you an email earlier this week, with a document regarding the whole story behind this change, including motivation and etc. Is<EMAIL_ADDRESS>the correct email address?
Anyway, here is the doc: https://1drv.ms/b/s!AkCYvnLbJodli0E2OY_GuHITRHuC

Ah, very cool. I actually left Yelp about a week ago for another opportunity, but given that most of my SmartStack work has been on my own time I'm happy to keep working on it heh. I am reading the document now and have a few comments, mostly around the tradeoffs of creating something like synapse-tools (a periodic per machine job that polls sources of services e.g. chef, mesos, etc ... and then filters by upstream service) vs a centralized system that publishes configuration to zookeeper itself.
I'm currently traveling but will try to review the patch tonight. This seems useful regardless of why, especially if we could also discover the list of services from ZK as well (eventually probably not in this iteration).

thank you! I cannot see the comments you left in the doc. Do you mind paste them here? Or we can discuss in email thread (feng.pan@airbnb.com).

@jolynch , thanks for the review! I've updated the README file accordingly. To your question, 'why this is more dynamic than synapse-tool', it is not. The main reason we choose this implementation is that it fits better to Airbnb's current stack, with less additional loads to ZK, and less cost in migration (potentially a long period given all the legacy services we have).

@jolynch , I am merging this PR now. I can make follow-up PRs if you have further questions on the two comments.
And in order for this change to be effective, I made a very minor change in the nerve gem too. Please help to take look. https://github.com/airbnb/nerve/pull/95

@jolynch , I changed the version to 0.15.0 and added a TODO comment in the HaproxyState class.
I don't have the "merge" button". Please help me to merge and publish.
Thanks for taking caring of this over the long weekend. Have a good one!

hi @jolynch , can you help me to merge? I don't have permisison

@lap1817 ok thanks! merged :-)
I think that folks at airbnb can still admin this project fwiw, it's still under the airbnb namespace so I imagine someone should be able to give you merge access in the future (or someone internal if I don't get back soon enough).

@jolynch thank you, I will ask around to check (Igor left Airbnb a while back, who was the last one that I know have the permission).
Did you publish the gem btw?

Yup, 0.15.0 on rubygems


Add phishing email complexity incident

It might be helpful to know the baseline rate that linguistic complexity had been increasing by pre-ChatGPT to isolate what the actual impact of ChatGPT was.

They don’t give info about the baseline rate; my understanding is that it probably was stable, and then jumped 17% above whatever that baseline was in December. If we are unsatisfied with them as a source (perhaps too anecdotal—e.g., no explanation of what linguistic complexity actually means), we can also not include in the database.

Yeah, I wish linguistic complexity was defined. It's also unclear whether the 17% is actually a meaningful increase compared to the standard rate of increase for this measure (I kind of doubt it's just been stable since bad actors were getting more sophisticated over time pre-ChatGPT as well). On top of that, they make a pretty strong claim by attributing this increase to ChatGPT that isn't well-justified. Agree that we can leave this out from the database.


When selecting an item, pressing ESC cannot close it

When selecting an item, pressing ESC cannot close it

upgrade hotkey     "@acrool/react-hotkey": "^0.0.7-alpha.1",
<EMAIL_ADDRESS>


Number of Objects Trained

Out of curiosity, how many objects have been trained with the model packaged in the /dist folder?

Hi Jono,
The model is trained to recognize around 400 objects. For more detail, please take a look at this blog article.
Thanks,
Shuhei

Cool, thanks for the quick response!


Expose project hash on repo

Repos that are organized by projects (usually within an org) return the project data at the root level. This allows access to that data.
Thanks for this SDK. Works like a charm otherwise.

Thanks for your contribution 🎉
I'll check this PR!

LGTM! 👍


Cannot set required field

Option field: { type: 4, name: 'Name', required: true, description: 'Search for a random link with that name' }
but it's not required

This feature is not available for now, maybe I can add it in a free moment soon.


Added Dropdowns by @hyperoslo

Project URL

https://github.com/hyperoslo/Dropdowns
Description

💧 Dropdown in Swift
Why it should be included to awesome-ios (optional)
Because hyperoslo projects are always awesome 🚀
Checklist

[x] Only one project/change is in this pull request
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 / tvOS 10 or later
[x] Supports Swift 3 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 3 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

855
301
https://github.com/terflogag/FacebookImagePicker redirects tohttps://github.com/floriangbh/FacebookImagePicker

1356
301
https://github.com/SwiftOnEdge/Edge redirects tohttps://github.com/skylab-inc/Edge

2388
301
https://github.com/terflogag/OpenSourceController redirects tohttps://github.com/floriangbh/OpenSourceController

  Generated by :no_entry_sign: Danger

Thx!


Value not selected after async loaded options

Hello, I searched through the issues but I'm not 100% if my case is the same as others.
Should x-select select the option set in value after the async options are loaded?
Are there any workarounds for this?
My model
import DS from 'ember-data';

export default DS.Model.extend({
  countryId: DS.attr('integer'),
  stateId: DS.attr('integer'),
});

My route
import Ember from 'ember';

export default Ember.Route.extend({
  setupController: function(controller, model) {
    this._super(controller, model);
    controller.set('countries', this.store.findAll('country'));
    controller.set('states', this.store.find('state', { country_id: model.get('countryId') });
  }
});

My template
{{#x-select value=model.countryId action='countryChanged'}}
  {{#each countries as |country|}}
    {{#x-option value=country.id}}{{country.name}}{{/x-option}}
  {{/each}}
{{/x-select}}

{{#x-select value=model.stateId action='stateChanged'}}
  {{#each states as |state|}}
    {{#x-option value=state.id}}{{state.name}}{{/x-option}}
  {{/each}}
{{/x-select}}

Looks to be related to #81

Closing since this is related to #81 which was fix.


fix temporary mutex and data race in NicerConnection

Description
There are some mutex in ICE implementation classes that probably aren't doing their intended task, because they are instantly constructed and destructed (by the way, it seems to me these locks aren't really needed, maybe its better to remove them?).
This PR fixes this oversight and fixes also a bug in NicerConnection: there's a race between the asynchronous closeSync call and the synchronous one that is done if the former times out.
[] It needs and includes Unit Tests
Changes in Client or Server public APIs

[] It includes documentation for these changes in /doc.

wow! good catch! I don't see why we need closeSync_mutex_ though, shouldn't we use just close_mutex_ instead?

Glad to be of help!


fix: disable create insight button on request

Description
This pr disables the buttons create insight,add repo/contrib and trash icon for both create new repository/contributor insight. This change helps prevent duplicate entries.

What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[x] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents

Fixes #3056
Mobile & Desktop Screenshots/Recordings

BEFORE
https://github.com/open-sauced/app/assets/79809121/cf2f9ce2-5d34-4988-a6c5-86bd3a27c0ab
AFTER
https://github.com/open-sauced/app/assets/79809121/af45ff2f-f39d-4e14-98e5-904941da7850
Steps to QA

Visit your workspaces
Create a new repo/contributor insight page
Fill the inputs and hit the create button
Buttons and text input should be disabled while the request is not done

Tier (staff will fill in)

[ ] Tier 1
[ ] Tier 2
[ ] Tier 3
[ ] Tier 4

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

Thanks @takanome-dev. I don't see where the loading state is being cleared on success

Thanks @takanome-dev. I don't see where the loading state is being cleared on success

Yeah, on slow network, if I set loading to false, I can submit the form again before the page is redirected. To avoid that, I didn't change the state and after success, you are redirected to a new page meaning that the component will unmount and the state will be reset.


inkscape: fix build against upcoming gcc-12

Apologies for the review spam :(. Forgot to rebase from staging to master branch.

Rebased and fixed conflict.


Made sure the custom gradients are compatible with mesh-tensorflow

This means making the non-flowing trajectory gradients 0 instead of None.
Also took advantage of this PR to add the github worfklow.

For now closing since we are not using mesh anymore

For now closing since we are not using mesh anymore


Merge pull request #4 from marceloprni/main

Merge pull request #3 from marceloprni/test_new_rail_rockvr2

alterado


Issue On Returning Error of Exponential backoff

I am getting a status code of 200 even if the rate limiting issue is reached for a webhook url, It is not even sending a status code 429 rather than that it is giving 200, and even it is not returning any body, it is just returning a text, how shall we get to know in code that this error has come, like it is just returning a text, So in that case shall we parse the message each time to check whether the error has come or not this will be a wrong logic I guess, please check it out(url)
this is the message that too in text-
Webhook message delivery failed with error: Microsoft Teams endpoint returned HTTP error 429 with ContextId MS-CV=.....
And the Status Code is 200
please look into this

@Yashkothari9 - Thanks for reporting your issue. We will test this and update you soon.


chore: Uses remote icons for taxonomy stickers

Review App

Review App Sensor
Review App Sensor Print

Task Description

Remove local taxonomy icons and use github helpful places icons configured via env variable

PR Description (Proposed changes, approach, gotchas, etc)

[x] Adds env variable (REACT_APP_ICONS_BASE_URL) to set base icons url path
[x] Adds env variable (REACT_APP_ICONS_PLACEHOLDER_BASE_URL) to set base placeholder icons url path, if no env provided it will use local existing images. If decided to hold placeholder images into remote path, please, create a placeholders folder and place each taxonomy placeholder into this folder with their respective name, which would be access, purpose, tech, etc

So, the link for placeholder icon svg would be something like https://raw.githubusercontent.com/Helpful-Places/dtpr/master/dtpr_icons/placeholders/tech.svg
[x] Removes all icons
[x] Removes all Svg icon React components
[x] Uses remote icon svgs to display sensor taxonomy
[x] Uses remote icon svgs to display sensor print page
OBS: The github link for purpose/ic_white is not matching helpful places master branch icon version, which might cause some error on layout because it has react fill black, not transparent

Steps to Manually Test

Check the sensor page and make sure all icons are there, if not there should show placeholder
Check print page

Print looks good, some text weight inconsistencies:

https://user-images.githubusercontent.com/8290507/113737639-3749a480-96cc-11eb-9a3b-235d1d998e5a.mp4
https://user-images.githubusercontent.com/8290507/113737731-4b8da180-96cc-11eb-8daa-f41e327873aa.mp4


Fix #20 Added ability to read/create/update list member's interests

@gscriver Thanks a lot for your pull request I really appreciate your work on this ! I will take a look at on the weekend


[limits] # of imports at the same time

we should limit the number of imports per person at the same time (and the ones in the queue)

subscribed

I'd say 2, but this is tricky. Imagine an user uploads a zip with more than 5 files...

No no, it is imports count, no number of files. with a limit of 2 you can import up to two zip files at once, then no more imports until at least one of them has finished.

Cool, then I'd say 2 or 3 for the time being.

@xavijam I'll need your FE skills once I have this finished, as there's a flow change on the imports endpoint:
In case of having reached the imports limit, POST to /api/v1/imports  will return:
Status Code: 429
{"errors":{"imports":"We're sorry but you're already using your allowed 3 import slots"}}

(where 3 is the current user's max imports setup)  instead of the typical:
Status Code 200
{ "item_queue_id": DATA_IMPORT_ID, "success": true }

PS: Copy/Text changes are welcome, else this one will do.

@javierarce I summon you :sparkles:
1st you need to run bundle exec rake db:migrate so you get the new User field.
2nd restart rails but don't start resque (if import jobs don't get processed is much easier to test the scenario).
3rd check my previous comment above, is capturing an error with HTTP code 429, and displaying to the user the message, but being performing the POST to /create is a new flow that right now only shows a generic error window.
By default a user can upload 3 files, so trying to upload the 4th one without having finished the others will trigger the rate limit error.
For any question just ask me. Thanks!


Running jest example

I cloned the Next.js repo, and in examples/with-jest I ran npm install and npm test. But it just outputs this, and nothing more happens even after waiting several minutes:
$ npm test

> with-jest@ test /Users/sdubois/Documents/next.js/examples/with-jest
> jest

Nothing is printed either, when using jest --verbose. jest -h prints the help properly. But it's also stuck when running jest -v.
I'm new to Jest, so don't really know how to debug.
node v7.6.0.
macOS Sierra 10.12.3.

Somehow, sudo npm test works!
$ sudo npm test
Password:

> with-jest@ test /Users/sdubois/Documents/next.js/examples/with-jest
> jest

 PASS  __tests__/index.test.js
  With Enzyme
    ✓ App shows "Hello world!" (14ms)
  With Snapshot Testing
    ✓ App shows "Hello world!" (10ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   1 passed, 1 total
Time:        3.612s
Ran all test suites.

Closing as it's nothing related to Next.js, will investigate on Jest's side...

OK really weird issue, but fixed it with brew uninstall watchman. Hat tip to https://github.com/facebook/jest/issues/2305#issuecomment-267754387

I'm running into a similar problem. Jest does run, but it fails on the JSX syntax as if it isn't passing through babel.
From the examples/with-jest directory, I ran yarn, then yarn test. This is the output I'm getting:
$ yarn test
yarn test v0.24.5
$ jest
 FAIL  __tests__/index.test.js
  ● Test suite failed to run

    /bryan.lo/test/next-js-framework/examples/with-jest/__tests__/index.test.js: Unexpected token (11:24)
         9 | describe('With Enzyme', () => {

        10 |   it('App shows "Hello world!"', () => {
      > 11 |     const app = shallow(<App />)
           |                         ^
        12 |
        13 |     expect(app.find('p').text()).toEqual('Hello World!')
        14 |   })

Running sudo yarn test works.
I also ran brew uninstall watchman, but that didn't help.
I'm using node version 6.10.3 with n and have verified that my user owns /usr/local/bin/node
I have no idea what's going on here, as this seemed to be working a few days ago. The only thing I can think of that might have impacted this is that I just updated macOS to version 10.12.5 yesterday.
Any thoughts would be appreciated.


Question - how to print stack trace when WASM throws exception?

I'm using AssemblyScript, when something goes wrong in the wasm logic, WAMR prints: Got exception running WASM code: Exception: unreachable.
I'm wondering if there is anyway to print full stack trace when exception is caught? Or that's something needs to be handled within AssemblyScript's runtime?

Hi, firstly please add -DWAMR_BUILD_CUSTOM_NAME_SECTION=1 to enable the call stack feature.
In addition, I noticed that asc doesn't generate custom name section by default, you may need to pass --debug option to asc.

ahhh @xujuntwt95329 thanks again for answer! yeah I remember seeing stack trace at one point but couldn't remember if I enabled some flag in WAMR or AS. Turned out there is something to enable on both ends. Appreciate it!


Air Quality section showing undefined in case of some city

When selecting certain cities, the Air Quality section displays 'undefined,' as seen in the screenshot below.

Fix: https://github.com/avinash201199/weather-app/pull/237

@milan604 can you assign me this issue i can fix it #237

@milan604 can you assign me this issue i can fix it #237

Already fixed here https://github.com/avinash201199/weather-app/pull/237 @Kokonodray2001


Missing environment variable

In case of the PlantUML feature is used, GenPackageDoc needs to know, where to find java. This is configured in the following way:
"JAVA" : {
          "WINDOWS" : "%JAVA_HOME%/bin/java.exe",
          "LINUX"   : "${JAVA_HOME}/bin/java"
         },

The problem is: On my Linux virtual machine the environment variable JAVA_HOME does not exist. I want to avoid to use hard coded paths to installations.
Is it possible that the installer checks the availability of java and creates this variable?
On my machine e.g. the value would currently be:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

Hi Thong,
please look into this.
Thank you,
Thomas

Hi Holger,
Cc Thomas,
As my investigation, we have a little different between platform Windows and OSD.
Windows

Because the computer has already installed OpenJDK for JAVA before, so we don't need setting JAVA_HOME, and it still work correctly.

OSD

By default, it don't install OpenJDK for JAVA, so we need to install it manually by command below

sudo apt-get install default-jdk

Then we will generate the path at /usr/lib/jvm/java-11-openjdk-amd64
Finally, we can set JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

To resolve this issues, I will request user to install OpenJDK when install our Robot Framework AIO, then I will add JAVA_HOME following the installed package OpenJDK.
If you have any comments, please tell me.
Thank you,
Thong Hua

Hi Thong,
O.K. for Linux.
But for Windows you need to consider that we also don't know if we have the openjdk installed.
Only our Bosch-Internal Machines have this installed, but other machines from github users might not have.
Thank you,
Thomas

Hi Thomas,

About Linux, I have already updated code to implement it. Could you help me review code at branch:   htv3hc/feat/missing-variable-env
About Windows, because I think there are some limitation when install package on windows, so I think that we only notify to user that if they want to use our software correctly, please install open-jdk manually.
For example about contents message notification.

  MsgPage4 := CreateOutputMsgPage(MsgPage2.ID,
             'Install dependency', 'How to use fully features on RobotFramework AIO',
             'You can easily generate documents with RobotFramework AIO (All In One) with the following steps:'#13#13+
             '  1. PlantUML: generate UML sequence.  '#13#13+
             'NOTE: Please manually install OpenJDK for Windows to use PlantUML correctly.');

Then I will check that OpenJDK is already install on there local machine.
if not RegKeyExists(HKLM, 'SOFTWARE\JavaSoft\Java Development Kit') then

If not, I will open brower to download OpenJDK.
begin
    Answer := MsgBox('To use this software, you need to have OpenJDK installed.' +
                     ' Do you want to install it now?', mbConfirmation, MB_YESNO);
    if Answer = IDYES then
    begin
      // Open brower link to download openJDK
      ShellExec('open', 'https://openjdk.java.net/install/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
      Result := False; // Stop user install Robot Framework AIO.
    end;
  end;

Could you think about it?
Thank you and best regards,
Thong Hua

Hi Thong,
where exactly do we need the OpenJDK? I'm not aware about a java dependency?
Thank you,
Thomas


gmsh: 3.0.5 -> 3.0.6

Semi-automatic update. These checks were done:

built on NixOS
Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
found 3.0.6 with grep in /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6
found 3.0.6 in filename of file in /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6

Failure on aarch64-linux (full log)
Partial log (click to expand)
../configure: line 451: can't create lib/Makefile: nonexistent directory
../configure: line 452: can't create lib/Makefile: nonexistent directory
../configure: line 453: can't create lib/Makefile: nonexistent directory
../configure: line 509: can't create lib/Makefile: nonexistent directory
DONE configure
/nix/store/rvpmm1jmqi7j1w3a073511plvlbl4fw7-stdenv/setup: line 100: include/atlas_cacheedge.h: No such file or directory
builder for '/nix/store/mvv5j085g35z6yv9wki6r9s572sqqf49-atlas-3.10.2.drv' failed with exit code 1
cannot build derivation '/nix/store/r6dallw1w3w1g73aw6pj2v8rzq88xnmb-liblapack-3.4.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/vb1v0wb84wmrbqqc8sv3na4gi56m4jf2-gmsh-3.0.6.drv': 1 dependencies couldn't be built
error: build of '/nix/store/vb1v0wb84wmrbqqc8sv3na4gi56m4jf2-gmsh-3.0.6.drv' failed

Failure on x86_64-darwin (full log)
Partial log (click to expand)
/tmp/nix-build-gmsh-3.0.6.drv-0/gmsh-3.0.6-source/contrib/MeshOptimizer/MeshOpt.cpp:243:34: note: treat the string as an argument to avoid this
    sprintf(_optHistory.front(), _iterHistory.back());
                                 ^
                                 "%s",
2 errors generated.
make[2]: *** [CMakeFiles/gmsh.dir/build.make:10287: CMakeFiles/gmsh.dir/contrib/MeshOptimizer/MeshOpt.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:900: CMakeFiles/gmsh.dir/all] Error 2
make: *** [Makefile:163: all] Error 2
builder for '/nix/store/9mhaqxxwbs5wpcagpyrda8i3bgqlglbj-gmsh-3.0.6.drv' failed with exit code 2
error: build of '/nix/store/9mhaqxxwbs5wpcagpyrda8i3bgqlglbj-gmsh-3.0.6.drv' failed

Success on x86_64-linux (full log)
Partial log (click to expand)
-- Installing: /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6/share/man/man1/gmsh.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6
shrinking /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6/bin/gmsh
gzipping man pages under /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6/share/man/
strip is /nix/store/b0zlxla7dmy1iwc3g459rjznx59797xy-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6/bin
patching script interpreter paths in /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6
checking for references to /tmp/nix-build-gmsh-3.0.6.drv-0 in /nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6...
/nix/store/ha4gl4kswiq7pz4chb1ba9ixb51rcdsn-gmsh-3.0.6


Cell Guide SEO

Source:
https://app.zenhub.com/workspaces/single-cell-5e2a191dad828d52cc78b028/issues/gh/chanzuckerberg/single-cell-data-portal/new?issueType=epic

due date TBD, still waiting to add more tickets

@niknak33 can you validate this and close it with the prod release thursday/friday? Thanks!


Get.rootDelegate.toNamed should not remove the current page?

At first I use Get.toNamed('/some_page') to get the SomePage. It work fine, my current page is alive, its controller have never been deleted. When I use Get.back() the state stay as it is (scroll location).
I update my app to Nav2.0, and now using Get.rootDelegate.toNamed(Routes.SOME_PAGE), the getx log tell me that its controller is delete. When I pop the new page, the current page's (first page) controller is re-initialize and I lose its state (scroll location reset to 0).
The two toNamed call should not behave differently, isn't it? Is there a way for me to keep the current page alive?

get version and flutter doctor, please

Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-arm, locale en) [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3) [✓] Xcode - develop for iOS and macOS [✓] Chrome - develop for the web [✓] Android Studio (version 4.1) [✓] VS Code (version 1.59.0) [✓] Connected device (2 available)
get: ^4.3.8

same but the Get.toNamed is not works with me when I use GetMaterialApp.router, is it works with you?

I have also encountered this problem. There is too few documentation about GetRouterOutlet.

My app code base has root and home module following the nav2 example. I try to remove the rootfrom modules and from app_pages.dart because I feel like It is not necessary for my app. Somehow the problem gone. Get.rootDelegate.toNamed(Routes.SOME_PAGE) behave exactly like Get.toNamed('/some_page'). All the controllers are no longer deleted and re-initialize between pages. So I'm closing this problem.
My root view
class RootView extends GetView<RootController> {
  @override
  Widget build(BuildContext context) {
    return GetRouterOutlet.builder(
      builder: (context, delegate, current) {
        return Scaffold(
          body: GetRouterOutlet(
            initialRoute: Routes.HOME,
            // anchorRoute: '/',
            // filterPages: (afterAnchor) {
            //   return afterAnchor.take(1);
            // },
          ),
        );
      },
    );
  }
}

My app code base has root and home module following the nav2 example. I try to remove the rootfrom modules and from app_pages.dart because I feel like It is not necessary for my app. Somehow the problem gone. Get.rootDelegate.toNamed(Routes.SOME_PAGE) behave exactly like Get.toNamed('/some_page'). All the controllers are no longer deleted and re-initialize between pages. So I'm closing this problem.

but this will cause tabbar works dose not propertly, such as /home/products, /home/profile will not contain bottom bar.

I had a similar problem just now, not sure if the same or not.
It happened when/while using a showSearch. In the end, the "problem" was having my controller defined in the bindings via lazyPut, without fenix=true. Having this set to true, allows it to be created correctly.

My app code base has root and home module following the nav2 example. I try to remove the rootfrom modules and from app_pages.dart because I feel like It is not necessary for my app. Somehow the problem gone. Get.rootDelegate.toNamed(Routes.SOME_PAGE) behave exactly like Get.toNamed('/some_page'). All the controllers are no longer deleted and re-initialize between pages. So I'm closing this problem.

but this will cause tabbar works dose not propertly, such as /home/products, /home/profile will not contain bottom bar.

Oh, now I know why I lost the bottom navigation bar. Have you find a way to fix it? Thinking about reopen this issue.

I have read some codes about GetRouterOutlet,  It seems impossible to solve this problem due to its implementation.
You can try to use another route management library named Routemaster.
Finally, I gave up nav 2 and continued to use old way.
from iPhone6艹

在 2021年9月7日，23:30，ChauCM @.***> 写道：

My app code base has root and home module following the nav2 example. I try to remove the rootfrom modules and from app_pages.dart because I feel like It is not necessary for my app. Somehow the problem gone. Get.rootDelegate.toNamed(Routes.SOME_PAGE) behave exactly like Get.toNamed('/some_page'). All the controllers are no longer deleted and re-initialize between pages. So I'm closing this problem.
but this will cause tabbar works dose not propertly, such as /home/products, /home/profile will not contain bottom bar.
Oh, now I know why I lost the bottom navigation bar. Have you find a way to fix it? Thinking about reopen this issue.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

I have read some codes about GetRouterOutlet, It seems impossible to solve this problem due to its implementation. You can try to use another route management library named Routemaster. Finally, I gave up nav 2 and continued to use old way. from iPhone6艹
…
在 2021年9月7日，23:30，ChauCM @.***> 写道：  My app code base has root and home module following the nav2 example. I try to remove the rootfrom modules and from app_pages.dart because I feel like It is not necessary for my app. Somehow the problem gone. Get.rootDelegate.toNamed(Routes.SOME_PAGE) behave exactly like Get.toNamed('/some_page'). All the controllers are no longer deleted and re-initialize between pages. So I'm closing this problem. but this will cause tabbar works dose not propertly, such as /home/products, /home/profile will not contain bottom bar. Oh, now I know why I lost the bottom navigation bar. Have you find a way to fix it? Thinking about reopen this issue. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

Routemaster looks promising, did you try it? How is the compatibility with getx?

Nav2 implementation completely unusable!

Zero documentation
toNamed removes previous page -> no back navigation button, slow back navigation with button
Wirte route tree, initial routes, route naming is unclear and confusing, example not help in many cases (missing docs?)

Nav2 implementation completely unusable!
* Zero documentation

* toNamed removes previous page -> no back navigation button, slow back navigation with button

* Wirte route tree, initial routes, route naming is unclear and confusing, example not help in many cases (missing docs?)

A proper documentation on Navigation 2 would be really appreciate @jonataslaw !

After more than one year, I moved from getx to more matured libs just because of its problems with router and nav2

After more than one year, I moved from getx to more matured libs just because of its problems with router and nav2

What do you use now?

After more than one year, I moved from getx to more matured libs just because of its problems with router and nav2

Can you tell me what you use now?

This might be helpful,
calling .popHistory(); method clears the history
Get.rootDelegate.popHistory();
Get.rootDelegate.offAndToNamed(Routes.MAIN_TABS);

Is this issue resolved? I am also facing same issue. On go to new route it is deleting previous route

Is this issue resolved? I am also facing same issue. On go to new route it is deleting previous route

Did you define participatesInRootNavigator  as true in some pages?
This will cause the navigator to only retain the pages on the path and not retain the history pages.

Is this issue resolved? I am also facing same issue. On go to new route it is deleting previous route

Did you define participatesInRootNavigator as true in some pages? This will cause the navigator to only retain the pages on the path and not retain the history pages.

No I haven't defined


JFXDecorated how to changed node?

Why can not I just change the node, I have to re-open the stage ...
Error without overwrite Stage: java.lang.IllegalStateException: Cannot set style once stage has been set visible

Hello,
not sure what's the issue (changing which node?), a sample code demonstrating the issue would be appreciated.
Regards,

`@Lazy
@SpringBootApplication
public class Main extends AbstractJavaFxApplicationSupport {
@Autowired
private ConfigurationControllers.View mainApp;
@Autowired
private ConfigurationControllers.View editingTest;
public static Main singleton;

Stage stage;

@Override
public void start(Stage stage) throws Exception {
    JFXDecorator decorator = new JFXDecorator(stage, mainApp.getView());
    decorator.setCustomMaximize(true);
    stage.setTitle("кАтлеты v 1.0-Release");
    stage.setScene(new Scene(decorator, 820, 570));
    stage.setResizable(false);
    stage.centerOnScreen();
    stage.show();
    this.stage = stage;
    singleton = this;
}

public static void main(String[] args) {
    launchApp(Main.class, args);
}

public void setStage(Parent parent) {
    stage.getScene().setRoot(new JFXDecorator(stage, parent));

//        stage.getScene().setRoot(parent);
}
}`

When I apply the method setStage an error occurs Error without overwrite Stage: java.lang.IllegalStateException: Cannot set style once stage has been set visible

Hello,
plz note that calling JFXDecorator constructor will set the stage style to UNDECORATED, which you can't do once the stage is visible. I what you are trying to do in setStage is:
((StackPane)stage.getScene().getRoot().getChildrenUnmodifiable().get(1)).getChildren().setAll(parent);
you need to change the decorator content instead of creating a new decorator.
Regards,

th


Convert Most DirectProperty Occurrences to StyledProperty

Is your feature request related to a problem? Please describe.
This one is going to cause some controversy. However, I believe it's time to significantly narrow the use-case of DirectProperty(ies) which are unable to be set by styles in most cases.
Some additional points for discussion:

Using DirectProperty in styles will cause exceptions and crashes (I've seen this come up a few times recently). This is VERY unintuitive to use as developers and we have to carefully check each property type. Of course tooling and compiler errors will improve I think it's more of a fundamental problem.
It is somewhat confusing in Avalonia which property type to use and when. I think this should be documented clearly after this issue is closed (more on that below).
DirectProperty is pretty neat but not something we had to worry about in WPF where all properties are fully supported in styles (except for special read-only ones).
DirectProperty is still useful in some cases (read-only properties and lists) and must not go away
There are good reasons to set some properties that are currently direct within styles.
At the very minimum all direct property usage should be audited for 11.0 and converted to styled properties as required.

With the significant optimization done to the property value store over the past few years, I don't expect a significant performance impact moving most properties over. I could be wrong though.
Describe the solution you'd like
Almost all current DirectProperty occurrences should be converted to StyledProperty so they can be used fully within styles. My original comment was:

direct properties should be reserved only for "data"... which includes content, read-only collections

@tomenscape had some good points and narrowed the scope again:

I would go even further than robloo's suggestion: in light of these changes, DirectProperty should be restricted to read-only properties. This is the only safe way to proceed. Even "data" values can reasonably set in a style, if you have multiple distinct values that you want to switch between depending on UI state.

This means ALL direct properties such as TextBlock.Text, Expander.IsExpanded and SplitPane.IsPaneOpen (which are UI state information) would be converted to styled properties.
Describe alternatives you've considered
There are two alternatives:

Extend the styling system to allow settings DirectProperty as if it was a StyledProperty. No idea how to do this.
No changes...

Additional context
Some recent discussions include:

https://github.com/AvaloniaUI/Avalonia/issues/9800#issuecomment-1367480402 (see whole thread, there are some good comments)
https://github.com/AvaloniaUI/Avalonia/discussions/9719#discussioncomment-4471230
https://github.com/AvaloniaUI/Avalonia/issues/7982 TextBlock.Text detailed discussion and some details on why it was originally considered a direct property (lots of good info here).

@tomenscape  Feel free to duplicate your past comments here. It will put everything in one spot for the future.

Enumerable type properties should also be able to be styled.

Enumerables and lists/collections are almost a separate topic. It goes all the way back to WPF and SelectedItems which doesn't support binding at all (without some tricky work-arounds). Avalonia as I understand it solves this problem by passing around IEnumerable and allowing get/set of the property itself. I'm not sure that is a good solution but at least it supports binding...

(I think you meant "converted to styled")

Thanks, fixed.

And to add another property: TextBlock.Text needs to be styleable.

Yea, I'll add it and link to some of those older discussions.

Also FWIW w/ SplitView, the only reason it's Direct is because I was following Expander's IsExpanded as a model and this was still my early days using Avalonia.

Ah, I didn't realize you did that control. If that's the case I can do a PR eventually to switch that one over. It doesn't seem too confrontational.
Separately: Changing Expander.IsExpanded is problematic now because I added cancellation which requires a direct property to intercept before the property is set. We would need an OnPropertyChanging callback with cancellation to get around this now.

Thanks for making this issue @robloo. I was looking at the new ValueStore last night and I agree that there doesn't seem to be much of a performance difference between setting a StyledProperty with local priority and setting a DirectProperty. It seems that the only remaining benefit of DirectProperty is providing support for read-only properties.
You have described the issue well, so I don't need to replicate most of what I said. I'll just add these details about the use case at my company:

We are using ControlTheme everywhere, and those themes often contains activatable styles. Our use case is actually low-level controls (e.g. Button) which appear within the templates of high-level controls, and the selectors are something like ^[Foo=bar] /template/ #SomeButton.
I understand the problems that come with setting direct properties from this context, but since we never wanted to remove these values, only to switch between multiple different options, that has never been a problem for us.

I would implement this change by first removing DirectProperty.Setter and AvaloniaObject.SetDirectValueUnchecked, and then fixing all the compile errors that arise. The fix for each error would be switching to StyledProperty or removing the setter and making the property read-only. AvaloniaObject.SetAndRaise (which is a protected method) would remain for use within private/protected C# property setters.

Separately: Changing Expander.IsExpanded is problematic now because I added cancellation which requires a direct property to intercept before the property is set. We would need an OnPropertyChanging callback with cancellation to get around this now.

Once the property is changed to StyledProperty, a coercion method could be executed before the value is written.

I actually mostly agree with this. The recent changes to the value store should at least alleviate some of the previous performance problems, and if performance is still a problem with reading in some cases then the value can be cached in a field.
I think the only remaining problems with styled properties are:

As mentioned, styling collections is a problem we inherited from WPF
Styled properties don't currently support data validation. This could be added.

Direct properties should be obviously kept for read-only properties, and read/write direct properties should be kept around for use by client code.

Separately: Changing Expander.IsExpanded is problematic now because I added cancellation which requires a direct property to intercept before the property is set. We would need an OnPropertyChanging callback with cancellation to get around this now.

Yep, as @tomenscape mentioned I think coercion should be able to solve this.

I'm going to make a start on these changes now, since they will prevent us from upgrading to the next preview otherwise.
I can't assign the issue to myself though.

@tomenscape
I'll handle at least Expander by this weekend at the latest. If you need me to do others let me know (was already thinking about TextBlock). I was going to look at doing this on a control-by-control basis to start because I think several controls are doing things in the property setter so it's going to require some thought to change them and review. Will know more once the code is more broadly looked at though.

Once the property is changed to StyledProperty, a coercion method could be executed before the value is written.

Yes, good idea. I spent too much time with UWP/WinUI and often forget to consider coercion like I should.
@grokys

As mentioned, styling collections is a problem we inherited from WPF

I'm going to break this out as a new issue later. This doesn't have to be fully solved to close this issue I think. Conceptually, I've been thinking about it for some time too. The property system needs to itself be aware of and synchronize changes within a type. Even in WPF its really only designed for single values instead of multi-values per property. That line of thought needs a lot of work though and probably a new interface and special, new collection types. Even higher level conceptually, it's going from one dimension to two in the property system.

Styled properties don't currently support data validation. This could be added.

Didn't know that myself. Will definitely have to add that in the future.

I've pushed a branch. It's untested as it doesn't compile yet, but I've made a lot of progress. Remaining types to refactor are ItemsControl (and inheritors), Expander, and SplitView.

@robloo I've now completed the first pass of this change. The control gallery compiles and runs, but renders incorrectly. There are also many failing tests which I'm working through next, and I hope that once everything is green the gallery will work again.
I refactored SplitView, and then when I looked at Expander realised that they are both solving the same problem. So I went ahead brought the two into line with each other. Both now raise a RoutedEvent with an explicit Cancel property. Handling the event is no longer required.
Some classes with weird behaviour that I had to make substantial internal changes to:

SelectingItemsControl
ScrollViewer (and related types)
TextBox

I'll write more about these when the time to open a PR comes.

_

I'm definitely in favour of slicing this up into multiple PRs. Once everything has settled down I'll start extracting clean commits for different areas of the solution. With sensible management we can then open and complete them one by one without breaking master in between. Most changes are quite boring and can come back at the same time, so there shouldn't be too many separate PRs.
I don't mind what the ultimate design is for cancelling Expander events, I just did something that works and was relatively quick to implement. Feel free to change it later. :)

@tomenscape Ok, perfect, sounds like we are on the same page. Thanks for doing all this, really is great work!

I've hit a bump in this project: there is no equivalent to WPF's DependencyObject.SetCurrentValue method. This is necessary when a control is internally setting its own StyledProperty values, because if the property has a value from another source then you need to know which BindingPriority to set your value with. Too low a priority and your new value doesn't become effective, but too high a priority and it overrides any value coming from the binding/style/etc. that wants to set a value too.
A secondary issue is that there are two read-only binding priorities: Unset and Inherited. You can't set a value with either of these priorities.
To complicate matters further, bindings don't modify the target property until they change its value. So if you place a binding on a property, and the binding produces the property's default value, the current BindingPriority remains Unset even though there is a binding is attached and active.
None of this is an issue for DirectProperty because that has no concept of priorities.
WPF
Here's what WPF does: SetCurrentValue allows you to provide a new value for any ValueSource (i.e. BindingPriority). This includes default/unset! Here is some WPF code that demonstrates this:
var oldSource = DependencyPropertyHelper.GetValueSource(this, DataContextProperty);
SetCurrentValue(DataContextProperty, new object());
var newSource = DependencyPropertyHelper.GetValueSource(this, DataContextProperty);

Debugger output:
oldSource
{System.Windows.ValueSource}
    BaseValueSource: Default
    IsAnimated: false
    IsCoerced: false
    IsCurrent: false
    IsExpression: false
newSource
{System.Windows.ValueSource}
    BaseValueSource: Default
    IsAnimated: false
    IsCoerced: true
    IsCurrent: true
    IsExpression: false

As you can see, our value source is still default, but the actual value has changed. It's a weird situation, but since the value source is normally private to the binding system it's at least contained within the framework.
Solutions
I'm not sure what the best way to solve this in Avalonia is. We could replicate what WPF does, but it seems pretty ugly to me. And because Avalonia, unlike WPF, preserves existing bindings when setting a value, I don't think we need to have another code path in the value store.
Another potential solution is to:

Add a SetCurrentValue method which reads the current BindingPriority and writes a new value with it.
Create a new priority called (e.g.) "Current", which sits between Style and Inherited in the enum. If SetCurrentValue finds that the current priority is Inherited or Unset, then it sets the value with this "Current" priority.

Any thoughts?

@tomenscape Can you estimate how widespread this problem is? How many controls are affected? My initial thought is just to skip those controls for 11.0. This change doesn't have to be all or nothing -- it can be just what is currently possible. I highly doubt the changes you are requested will make it in for the next release (even if the spec was decided). Could be wrong though and it's not for me to say -- that's just my impression.

Firstly, a correction: Avalonia does detach bindings when SetValue is called, but only for StyledProperty.
This means that the lack of SetCurrentValue affects every control that sets its own StyledProperty values. On master there are few if any which do this, because DirectProperty is used for these cases instead. Perhaps for this very reason.
The only problematic case I've noticed on master is where a two-way TemplateBinding sets a value on the source object. The source property could easily be a StyledProperty with a binding of its own.
However, the number of problematic cases will leap upwards when DirectProperty becomes read-only. I noticed ScrollViewer breaking on my branch, which is due to it having several sub-components which synchronise values between one another, yet also setting the scroll offset internally (e.g. when dragging the scroll bar or scrolling the mouse wheel). There will be more cases like that, but I haven't looked. Each one will be a serious bug.
Because this is a blocker for this issue, and because this issue in turn blocks my company's transition to Avalonia, I have actually already spent some time implementing SetCurrentValue. I want to write some more tests, then I'll submit a PR for review. It wasn't as complicated as I feared.
BTW, I will be occupied by other tasks between Tuesday and Friday and not able to work on this full time.

However, the number of problematic cases will leap upwards when DirectProperty becomes read-only

I wouldn't make DirectProerty read-only anytime soon. It is used in apps and we don't want to break any existing functionality there. I thought you were disabling that functionally only to identify areas that need to change in Avalonia. We certainly don't want to restrict direct property like this until this change in direction is well-tested and well-established. This is something @grokys also stated:

and read/write direct properties should be kept around for use by client code.

So I think we need to narrow the scope a bit -- which won't affect Avalonia or your companies transition I think.

However, the number of problematic cases will leap upwards when DirectProperty becomes read-only. I noticed ScrollViewer breaking on my branch

Yea, that's certainly more problematic and the kind of issues I was expected. My first thought was perhaps we need to ignore these places for now... however:

I have actually already spent some time implementing SetCurrentValue

That's great!

Those are fair points regarding outright removing DirectProperty setters and their supporting methods. Their continued presence won't hurt anyone.
But I would like to at least deprecate them with ObsoleteAttribute. We are here because DirectProperty setter functionality has already been restricted, and IMO writeable properties in new code should always use StyledProperty instead.

Syncing state between TextBox and TextPresenter is already a nightmare. Converting shared properties to StyledProperty makes this even harder. I don't see any reason to apply this conversion on TextBox/TextPresenter. Changing TextBlock isn't that of an issue.

I don't see any reason to apply this conversion on TextBox/TextPresenter. Changing TextBlock isn't that of an issue.

TextBlock.Text is the main one that needs to be switched to a styled property anyway: #7982

@tomenscape Just an update on this. I'll have time to get back to this in about two weeks. I'm hoping that is enough time before an RC but could be wrong. Before then, I'll complete the other two controls already started.
Hopefully I can then take up several more controls and we can work to merge in your branch piece by piece. I dont think there are any blocking PRs now.

I think I still need to add data validation support to styled properties. Will try to start that this week.

Spotted data validation yesterday while preparing the first refactor branch. That branch contains all of the easy refactorings, and I'll open a PR for it as soon as the data validation PR above is complete.

I've added a tracking list to the original issue description. Apologies for the length but this will help us move this issue to closure.

The first PR is back! The next control I am going to extract from my mega branch is TextBlock. I see that TextBox has been marked as out of scope, but I actually converted it back when this issue was first opened. As predicted it was a bit of a pain, but the port was successful and the control now works very nicely and is fully styleable/animatable.
Maybe it's too big a change to accept at this stage? I think it can wait, since TextBox's nature as a user input control means it is far less likely to have styled values. But there is a catch: TextBox.TextProperty is the result of a call to TextBlock.TextProperty.AddOwner. This means that if we don't convert both to styled properties at the same time, we need to break that link and have two different Text properties floating around, each incompatible with the other. That could become confusing.

I see that TextBox has been marked as out of scope, but I actually converted it back when this issue was first opened. As predicted it was a bit of a pain, but the port was successful and the control now works very nicely and is fully styleable/animatable.

I think due to the complexity of the control there was not only worry about difficult changing these properties -- but issues with synchronization and secondary bugs. There still may be issues with SetCurrentValue() as well.

This means that if we don't convert both to styled properties at the same time, we need to break that link and have two different Text properties floating around, each incompatible with the other. That could become confusing.

That's a good point though. If you are confident with the changes it does sound best to do both. Hope there aren't a lot of issues though. @Gillibald probably needs to give the final go-ahead though.
For TextBlock.Text, don't forget about the original issue: https://github.com/AvaloniaUI/Avalonia/issues/7982

Next up: RangeBase and derived types.

@tomenscape I was planning to give RangeBase an attempt this weekend. As usual you beat me to it :) It seems like a good idea to target base types next. So I'll find another and mention it before I start. Hoping to do 1 or 2 this weekend.

I'm going to do Track and then AutoCompleteBox next. SelectingItemsControl probably is another good base type to target after that but it's going to take a bit more thought.

We're getting very close to 11.0-rc where breaking changes will be halted - what is the status of these changes? Looks like there are still a few controls to convert - are they difficult? Are they necessary?

SelectingItemsControl and descendants are important. There has been a lot of activity in ItemsControl recently though. Have things settled now?

SelectingItemsControl and descendants are important.

Agreed, do you already have changes to these controls partially completed, or should I handle this?

There has been a lot of activity in ItemsControl recently though. Have things settled now?

Yep, I don't think that there are any more incoming changes which will affect the properties of ItemsControl.

I started work on them a long time ago, but those changes are going to be incompatible with master now. Starting again is the best bet, so go ahead!

Does everyone agree that ItemsRepeater and DataGrid should be skipped for v11?

Fine with me!

I've run into a hitch when converting SelectingItemsControl's SelectedIndex and SelectedItem to be styled properties.
At the moment, they're simply projections of the SelectionModel's SelectedIndex and SelectedItem properties, and these properties only raise change notifications after both properties are updated and in sync.
If we switch to styled properties then when change notifications for SelectedIndex and SelectedItem are raised, they will not be in sync - one will necessarily change before the other.
Now, WPF also has this problem, e.g. in WPF:
  <ListBox Name="lb" ItemsSource="{Binding}"/>

            var items = new List<string> { "Item 0", "Item 1", "Item 2" };
            DataContext = items;

            var itemChanged = DependencyPropertyDescriptor.FromProperty(Selector.SelectedItemProperty, typeof(ListBox));

            itemChanged.AddValueChanged(lb, (s, e) =>
            {
                System.Diagnostics.Debug.WriteLine($"Selected item changed: {lb.SelectedItem} {lb.SelectedIndex}");
            });

            var indexChanged = DependencyPropertyDescriptor.FromProperty(Selector.SelectedIndexProperty, typeof(ListBox));

            indexChanged.AddValueChanged(lb, (s, e) =>
            {
                System.Diagnostics.Debug.WriteLine($"Selected index changed: {lb.SelectedItem} {lb.SelectedIndex}");
            });

You see that when the properties change, first SelectedIndex changes and SelectedItem is out of sync, then the notification fires for SelectedItem:
Selected index changed:  0
Selected item changed: Item 0 0
Selected index changed: Item 0 1
Selected item changed: Item 1 1
Selected index changed: Item 1 2
Selected item changed: Item 2 2

Are we OK with changing our SelectingItemsControls to have this behavior? In WPF it's less of a problem because it's harder to listen for individual property changed events, but in our own codebase I've already found a place where this breaks things.

That's tricky and another special case the property system can't handle. I'm almost wondering if we shouldn't pick one to be styled and let the other be direct. Then it seems changes and events could be synronized. Not sure how I would like that design myself though.
Usually, I would just say when in doubt follow WPF when a better idea isn't yet found.

Maybe there could be a new property type (some kind of ProxyProperty), which would just act as a proxy to a state property?
Example: there would be a SelectionState property (styled), and then proxy properties like SelectedIndex and SelectedItem, which would reflect the state, with getters state => state.Index, state => state.Item, and setters (state, index) => state.WithIndex(index) and (state, item) => state.WithItem(item).

@jp2masa Proxy properties have come up a few times before as you probably know. Slightly different usage (usually to alias an existing property) but the functionality is similar.
My guess is it is too late in the 11.0 development process to introduce such a new property type.

Proxy properties have come up a few times before as you probably know.

You're right, it sounds familiar now that you point it out, I probably forgot it.

My guess is it is too late in the 11.0 development process to introduce such a new property type.

Yes, I guess it's too late as well. I was just suggesting it because I hate inconsistency and it was the best solution I could think about, even though there are probably better solutions.

Yes, I guess it's too late as well. I was just suggesting it because I hate inconsistency and it was the best solution I could think about, even though there are probably better solutions.

Definitely agree, I think I'll file another issue for that sometime as well. There are two property-system shortcoming that have come up in the past month or two (weren't solved in WPF either).

Another option is a "property update batch" object which defers notifications for property changes made during its lifetime until disposed. This can be initiated from a control's OnPropertyChanged, since it is executed first.

Track and ProgressBar were reviewed and didn't require any changes. ProgressBar was the most interesting case and it had several direct properties in TemplateSettings. However, these are considered out-of-scope as they are basically calculated and used in animations.
Next up is TreeView. There are only two properties to consider SelectedItem and SelectedItems. Did we resolve what to do about SelectedItems? Styled properties with lists are really supported (I still have to make that other issues). So it seems to me only SelectedItem should change. I want to confirm that everyone is on the same page for this though:
https://github.com/AvaloniaUI/Avalonia/blob/0495f101748696779c05e6cc36ebae5f9a556aa1/src/Avalonia.Controls/TreeView.cs#L42-L46

Another option is a "property update batch" object which defers notifications for property changes made during its lifetime until disposed. This can be initiated from a control's OnPropertyChanged, since it is executed first.

To me that sounds like the only solution that might be doable in the 11.0 timeframe.

Did we resolve what to do about SelectedItems

We didn't, no. I have a WIP which converts SelectedItem and SelectedIndex in SelectingItemsControl to styled properties, but everything breaks :( Selection is a real PITA because there are so many competing sources of selection state, and all of them need to be in sync. We've had quite a few breakages in selection recently due to this. At this point I'm tempted to just say that selection properties need to stay as direct properties, at least until 12.0.

Another option is a "property update batch" object

We actually have this in 0.10.x but I removed it because it was

Complicated and bug-prone. You need to handle situations such as

#8442 "running an empty batch update of >1 value which causes new, empty batch update to run in a PropertyChanged handler triggered from the first batch update"
#5686 "a property was cleared during a batch update and then re-set in the PropertyChanged notification raised on ending the batch update"

Not great for performance, as allocations need to be made to store the state, and each property get/set needs to check for the presence of a batch update

I'd not be totally opposed to adding batch updates back in, but I'd like to think carefully about whether it's really needed. Maybe some kind of simpler mechanism could be introduced (thinking out loud: an API for setting multiple properties at once?)

Did we resolve what to do about SelectedItems

We didn't, no. I have a WIP which converts SelectedItem and SelectedIndex in SelectingItemsControl to styled properties, but everything breaks :( Selection is a real PITA because there are so many competing sources of selection state, and all of them need to be in sync. We've had quite a few breakages in selection recently due to this. At this point I'm tempted to just say that selection properties need to stay as direct properties, at least until 12.0.

I'm tempted to say you're right. In use-cases I can think of I also don't see a reason one would actually want to set the SelectedItem or SelectedItems in styles. This just isn't really done. @tomenscape Can you think of some reasons you need this on your end? Otherwise, I think @grokys is right and we should drop it for now.
I also finally got around to creating a separate issue for lists in the property system: https://github.com/AvaloniaUI/Avalonia/issues/11285.

(thinking out loud: an API for setting multiple properties at once?)

That seems promising!

Our use case is described in #11220. The SelectedItem binding is usually made in the body of a UserControl, but it could conceivably be set via a style too.
It's not a high priority though, since an attached styled property can be used as a proxy.

an attached styled property can be used as a proxy.

Yeah I'd recommend this approach if selection really needs to be styleable. Just make sure you stick to a single selection property (per ItemsControl) and you shouldn't run into problems.

ListBox, SelectingItemsConteol and TreeView were noted as partially complete in the list above with the comment:

Has SelectedItem, SelectedIndex or SelectedItems properties which were not fully converted due to the complexity discussed in this issue: https://github.com/AvaloniaUI/Avalonia/issues/9944#issuecomment-1538012823. This may be separately addressed in a future version of Avalonia.

As far as I know this completes review of the relevant control properties.
I'm closing this issue as complete since most properties were converted and no more will be done for v11.