Change the resource allocation system

Currently, all of the resource sizes are evaluated and then the memory allocation is made. No further allocation is possible. To allow for allocation after the the launch of the application, the memory allocation system needs to be changed. For now the plan is to make a virtual addressing system, add newer allocations if necessary but also manage the older ones, in case those are freed up.

I think I can close this issue at this point. I didn't implement a virtual addressing system but I have made a MemoryManager which uses kind of an Arena allocation to allocate multiple VkAllocators. Each allocator has a fixed Memory and then we allocate either images or buffers from those. When one runs out, we make a new one. Released memory can also be reused.


Bug: parsing port-reservation output isn't language independent

Hey,
just updated. Not using elevated rights sounds really great - many thanks 👍.
However, when updating via the installer, I got an error when registering the port. Everything seems to work though.
I guess the problem is that the console output isn't in English and contains special characters like ü. I've added the translations in {{}}:
2022-01-17 18:12:03.525 +01:00 [INF] [PROGRAM] Extended logging disabled
2022-01-17 18:12:03.532 +01:00 [INF] [SYSTEM] Post-update mode activated
2022-01-17 18:12:05.988 +01:00 [INF] [SETTINGS] Config storage path: D:\Programme\HASS.Agent\config
2022-01-17 18:12:06.067 +01:00 [INF] [SETTINGS] Configuration loaded
2022-01-17 18:12:06.088 +01:00 [INF] [SETTINGS_QUICKACTIONS] Loaded 1 entities
2022-01-17 18:12:06.098 +01:00 [INF] [SETTINGS_COMMANDS] Loaded 2 entities
2022-01-17 18:12:06.117 +01:00 [INF] [SETTINGS_SENSORS] Loaded 2 entities
2022-01-17 18:12:06.446 +01:00 [INF] [SCHEDULEDTASK] HASS.Agent task found, checking state ..
2022-01-17 18:12:06.528 +01:00 [INF] [SCHEDULEDTASK] Task in unexpected state, removal might fail: Disabled
2022-01-17 18:12:11.626 +01:00 [INF] [SCHEDULEDTASK] Task succesfully removed
2022-01-17 18:12:11.626 +01:00 [INF] [POSTUPDATE] Legacy scheduled task removed
2022-01-17 18:12:11.631 +01:00 [INF] [POSTUPDATE] Registry based launch-on-login method activated
2022-01-17 18:12:11.645 +01:00 [INF] [NOTIFIER] Executing port reservation for port: 5115
2022-01-17 18:12:12.111 +01:00 [ERR] [NOTIFIER] Unexpected console output, port reservation probably failed
2022-01-17 18:12:12.111 +01:00 [INF] [NOTIFIER] Console output:

Die URL-Reservierung wurde erfolgreich hinzugefgt. {{The URL-Reservation was added successfully}}

2022-01-17 18:12:12.111 +01:00 [ERR] [POSTUPDATE] Unable to execute port reservation, notifier api might fail
2022-01-17 18:12:23.223 +01:00 [INF] [SYSTEM] Application shutting down
2022-01-17 18:12:23.233 +01:00 [ERR] [SYSTEM] Error shutting down nicely: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. {{The Objectreference didn't get set to an Objectinstance}}
2022-01-17 18:12:34.363 +01:00 [INF] [LOG] Coderr exception reporting disabled
2022-01-17 18:12:34.365 +01:00 [INF] [PROGRAM] Extended logging disabled
2022-01-17 18:12:34.883 +01:00 [INF] [SETTINGS] Config storage path: D:\Programme\HASS.Agent\config
2022-01-17 18:12:34.919 +01:00 [INF] [SETTINGS] Configuration loaded
2022-01-17 18:12:34.929 +01:00 [INF] [SETTINGS_QUICKACTIONS] Loaded 1 entities
2022-01-17 18:12:34.941 +01:00 [INF] [SETTINGS_COMMANDS] Loaded 2 entities
2022-01-17 18:12:34.958 +01:00 [INF] [SETTINGS_SENSORS] Loaded 2 entities
2022-01-17 18:12:34.974 +01:00 [INF] [NOTIFIER] Initializing local API ..
2022-01-17 18:12:35.023 +01:00 [INF] [MQTT] Connecting ..
2022-01-17 18:12:35.141 +01:00 [INF] [HOTKEY] Completed bind for global quickaction hotkey
2022-01-17 18:12:35.142 +01:00 [INF] [HOTKEY] Completed bind for 1 individual quickaction hotkeys
2022-01-17 18:12:35.236 +01:00 [INF] [HASS_API] Home Assistant version: 2021.12.9
2022-01-17 18:12:35.304 +01:00 [INF] [MQTT] Connected
2022-01-17 18:12:35.573 +01:00 [INF] [HASS_API] System connected with http://<IP_ADDRESS>:8123
2022-01-17 18:12:35.992 +01:00 [INF] [NOTIFIER] API listening on port 5115
2022-01-17 18:12:37.196 +01:00 [INF] [MQTT] Initial registration completed```

Thank you for sharing this, you're absolutely right. Will fix

Fixed, patched the v2022.1.17 release because of the impact. Thanks again!

Great! But you're doing the real work here!
Btw. Do you plan or maybe already have a discord? I think this would be great to quickly help others with simple questions.
(comming from hass-workstation-service, this worked really well)

Yea good idea, why not. Just created one:
https://discord.com/channels/932957721622360074/932957771027087381
I'll advertise the link on the github/hass forum pages tonight.

Cool 👍, but you should publish an invitation link. One can't join unless he is invited.

Of course heh: https://discord.gg/nMvqzwrVBU


Handle potential too long LoadBalancer name

What would you like to be added:
We currently construct the LoadBalancer name from the cluster and Service name and add a UID suffix. This might result in a name which is longer than 64 chars.
Proposed solution:
Use a GeneratedName or UID of the Service when creating the LoadBalancer resource. Add to the LoadBalancer resource the cluster name and Service name as annotations in order to "find" it when running EnsureLoadbalancer.
Backwards compatibility concerns:
We might want to keep backwards compatibility by first trying to get the "old" name. If that can't be find we transition to the new generated name based handling of LoadBalancers.

It will be better if we can derive LoadBalancer from the service name as per the GetLoadBalancerName() method signature as well GetLoadBalancerName(ctx context.Context, clusterName string, service *v1.Service) other cloud providers also following similar approach
https://github.com/kubernetes/cloud-provider-openstack/blob/ffd6a76bfabb83d00926dc049c0b6ea28f88142f/pkg/openstack/loadbalancer.go#L366
https://github.com/kubernetes/cloud-provider-aws/blob/d12b519d94e4ea9085af38a071a3d73ce946b147/pkg/providers/v1/aws.go#L2561
So going ahead with populating name with service UID approach


Error: element located, but timed out after 30 seconds; Regarding: text_field and input

Meta -
Watir Version: 6.7.3
Selenium Version:
Browser Version: Chrome 63.0.3239.132 (Official Build) (64-bit)
Browser Driver Version: Chromedrive 2.27
OS Version: OSX 10.10.5
Expected Behavior -
Running this code should set text to text_field:
@browser.input(name: "add_comment_text").send_keys "TEST"
@browser.text_field(name: "add_comment_text").set "TEST"
Actual Behavior -
Instead, I get the error:
Watir::Exception::UnknownObjectException: element located, but timed out after 30 seconds, waiting for #<Watir::Input: located: true; {:name=>"add_comment_text", :tag_name=>"input"}> to be present from /Users/EdwardMcCarthy/.rvm/gems/ruby-2.4.0/gems/watir-6.7.3/lib/watir/elements/element.rb:692:in raise_present'`
Steps to reproduce -
So, I'm trying to automate behavior where a user would enter text in a textfield below:

I tried the following to pinpoint where I was going wrong:
@browser.text_field(name: "add_comment_text").exists? ==> true
@browser.text_field(name: "add_comment_text").visible? ==> false
@browser.text_field(name: "add_comment_text").visible? ==> false

Clearly I can see it the text_field.

I found something similar in this issue: https://github.com/watir/watir/issues/566, but the workaround using Watir.relaxed_locate = false  does not work for me. Let me know if I can get a lot more info, especially the actual HTML I am trying to navigate.

And, I finally figured out why the error message was dumb.
Fixed: ec7bb9b01c3a9cb74b992c7ef18956fee9f1e6ad
Thanks


Sqlx Error type

It would be nice for sqlx to have its own .Err type that implements the error interface. Someone could later cast it and get more details on the error.
For instance, I'm always getting errors like this:
sql: Scan error on column index 29: Scan source was not []bytes .. which tell me the column index, but don't reveal the column name or any other details. It would be nice to at least get the column name with the index. Hmm perhaps this doesn't require a custom error type, maybe it should just include the column name if its available.

I think that's a database/sql error;  I'd have to parse it I think to determine which column it was.  It sounds brittle, but I'm open to suggestions.

Yea, that error, and many others come from database/sql. The idea is that since sqlx is aware of the index : column name, it could give better hints and improve on the error messages from database/sql, so they are more helpful. One idea would be to have an error mapper, that would proxy error messages from database/sql to callers of sqlx functions. Just a suggestion anyways.

It would probably be helpful if database/sql exposed a ScanError type with a Column method of field. Currently it just uses fmt.Errorf

@kisielk I agree, but who knows when something like that would make it into stdlib

Well, if nobody asks for it then never.

https://groups.google.com/forum/#!forum/golang-nuts would probably be a better venue for a feature request like that than this library.

I agree, hence my suggestion he ask for better error types from database/sql before anything can be done here. Also golang-nuts is not the best place to ask for feature requests either, better to just file a bug in the bug tracker.


[SUPPORT] WHEN I USE run_sync_tool.sh it take a error java.lang.ClassNotFoundException: org.apache.http.config.Lookup

Tips before filing an issue

Have you gone through our FAQs?

Join the mailing list to engage in conversations and get faster support at<EMAIL_ADDRESS>

If you have triaged this as a bug, then file an issue directly.

Describe the problem you faced
A clear and concise description of the problem.
To Reproduce
Steps to reproduce the behavior:

cd hudi-0.11.0/hudi-sync/hudi-hive-sync
./run_sync_tool.sh  --jdbc-url jdbc:hive2://localhost:10000 --user hive --pass hive --base-path hdfs://localhost:9000/user/data/hudi/test9 --database default --table test9

Expected behavior
hudi's metadata is synchronized to hive
Environment Description

Hudi version : 0.11.0

Spark version :

Hive version : 2.3.9

Hadoop version : 2.7.3

Storage (HDFS/S3/GCS..) : HDFS

Running on Docker? (yes/no) : no

Additional context
I checked the hudi-hive-sync-bundle-0.11.0.jar package path in the script, and it exists, and I tried some methods, but it didn't work.
Stacktrace
2022-06-08 20:00:41,644 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2022-06-08 20:00:42,153 INFO  [main] conf.HiveConf (HiveConf.java:findConfigFile(187)) - Found configuration file file:/Users/yekai/opt/apache-hive-2.3.9-bin/conf/hive-site.xml
2022-06-08 20:00:42,595 INFO  [main] table.HoodieTableMetaClient (HoodieTableMetaClient.java:<init>(117)) - Loading HoodieTableMetaClient from hdfs://localhost:9000/user/data/hudi/test9
2022-06-08 20:00:42,741 INFO  [main] table.HoodieTableConfig (HoodieTableConfig.java:<init>(242)) - Loading table properties from hdfs://localhost:9000/user/data/hudi/test9/.hoodie/hoodie.properties
2022-06-08 20:00:42,821 INFO  [main] table.HoodieTableMetaClient (HoodieTableMetaClient.java:<init>(136)) - Finished Loading Table of type COPY_ON_WRITE(version=1, baseFileFormat=PARQUET) from hdfs://localhost:9000/user/data/hudi/test9
2022-06-08 20:00:42,821 INFO  [main] table.HoodieTableMetaClient (HoodieTableMetaClient.java:<init>(139)) - Loading Active commit timeline for hdfs://localhost:9000/user/data/hudi/test9
2022-06-08 20:00:42,893 INFO  [main] timeline.HoodieActiveTimeline (HoodieActiveTimeline.java:<init>(131)) - Loaded instants upto : Option{val=[==>20220608193400815__commit__INFLIGHT]}
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/config/Lookup
        at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at org.apache.hudi.hive.ddl.JDBCExecutor.createHiveConnection(JDBCExecutor.java:101)
        at org.apache.hudi.hive.ddl.JDBCExecutor.<init>(JDBCExecutor.java:56)
        at org.apache.hudi.hive.HoodieHiveClient.<init>(HoodieHiveClient.java:85)
        at org.apache.hudi.hive.HiveSyncTool.initClient(HiveSyncTool.java:95)
        at org.apache.hudi.hive.HiveSyncTool.<init>(HiveSyncTool.java:89)
        at org.apache.hudi.hive.HiveSyncTool.main(HiveSyncTool.java:433)
Caused by: java.lang.ClassNotFoundException: org.apache.http.config.Lookup
        at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 9 more```

I solved the problem by downloading httpclient-4.5.jar httpcore-4.4.1.jar and running commands with their paths in run_sync_tool.sh
But I encountered the following error
Exception in thread "main" org.apache.hudi.exception.HoodieException: Got runtime exception when hive syncing test9
        at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:141)
        at org.apache.hudi.hive.HiveSyncTool.main(HiveSyncTool.java:433)
Caused by: org.apache.hudi.hive.HoodieHiveSyncException: Failed to sync partitions for table test9
        at org.apache.hudi.hive.HiveSyncTool.syncPartitions(HiveSyncTool.java:412)
        at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:230)
        at org.apache.hudi.hive.HiveSyncTool.doSync(HiveSyncTool.java:150)
        at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:138)
        ... 1 more
Caused by: java.lang.IllegalArgumentException: Partition path  is not in the form yyyy/mm/dd
        at org.apache.hudi.hive.SlashEncodedDayPartitionValueExtractor.extractPartitionValuesInPath(SlashEncodedDayPartitionValueExtractor.java:55)
        at org.apache.hudi.hive.AbstractHiveSyncHoodieClient.getPartitionEvents(AbstractHiveSyncHoodieClient.java:81)
        at org.apache.hudi.hive.HiveSyncTool.syncPartitions(HiveSyncTool.java:390)
        ... 4 more

https://github.com/apache/hudi/issues/5698#issuecomment-1141895241
can you check this out.

oh, you got it fixed is it.whats the format of your partition.
IllegalArgumentException: Partition path  is not in the form yyyy/mm/dd

By default we use data partitioned extractor.
you might have to set the right value for https://hudi.apache.org/docs/configurations/#hoodiedatasourcehive_syncpartition_extractor_class

for possible values, you can check for classes implementing PartitionValueExtractor within hudi code base.
Defualt is org.apache.hudi.hive.SlashEncodedDayPartitionValueExtractor

@ykPrograWorld Did the above pointers help?
i solved it with another method it is with hms by thrift to sync data from hudi to hive

Closing it as it's resolved with HMS mode. Also, this shouldn't be relevant as we upgrade to Hive 3 in 0.12.0


multiple changes to code and docs

explisitly set rounded corners style of
channels (edges with circle)
update position of plugin missing label to
the bottom middle of diagram (to avoid
overlapping with other diagram parts)
base64 encode the icons of toolbar
actions (otherwise they are not shown at
app.diagrams.net in Chrome)
Read settings from Editor.globalVars
instead of localStorage
Update documentation with new way to
configure plugin in various environments
Add docs to workaround app.diagrams.net
restrictions of plugin domains

Few notes:

Currently the "hediet.vscode-drawio.globalVars" VSCode setting works only if you install insiders build version of the Draw.io Integration extension (also available in the marketplace), because the author of the extension merged corresponding PR #304, which introduces this setting, today.
The README.md has a link to my repo for bookmarklet. You can publish the content of gh-pages branch of my fork to your repo (same branch) and update the link in README.

I added GitHub pages content and script. To make it work, please enable GitHub pages feature in Settings --> Pages and configure it to look at main branch and /docs folder.


Fix location of docker-{init,proxy}

Not sure why the docs point to /usr/libexec, the docker scripts in /hack seem to install them to /usr/bin

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "doc-fix" git@github.com:mrueg/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

The docs are just giving an example of where you might decide to install them.

I actually agree that it's confusing. Not any of our scripts installs them there.
@mrueg but you need to sign your commit, take a look at https://github.com/docker/docker/pull/30525#issuecomment-275818493

@LK4D4 /usr/libexec is "The libexec/ directory contains small helper programs called by other programs" according to some interpretations of FHS, so it is a reasonable place to put these, as they are not intended to be called by the user directly.

@justincormack shouldn't we install them there then?

ping @mrueg for signing your commit.
/cc @thaJeztah too :angel:

This is just an example, so I don't think it needs to match the path we use in the packages.
@LK4D4, @thaJeztah The commits are signed. Let's either merge this or close it.

@justincormack shouldn't we install them there then?

on Fedora and RHEL, we install those binaries exactly under /usr/libexec/docker. The issue is this location isn't in $PATH and one must use "--userland-proxy-path=" flag.

btw, I think the example is right, and it shows a different location for init/proxy. What @mrueg is doing here is using the default locations which aren't really providing a great example of those "init-path" and "userland-proxy-path". I would rather leave this example as is.

Ok, I agree.
@mrueg thanks for the contribution! I think we're happy with the current example, so we wont be changing it at this time.


Limit port 5672 to localhost

This port is listening with no TLS or authentication so should be restricted to local access for qdstat

Testing
Initially wanted to remove this listener entirely, but found that we'd tried and backpedaled on that once before: https://github.com/infrawatch/service-telemetry-operator/commit/5f380f5d0fbd0d944dae67844388ab3118413a50
Sure enough, if I remove the port entirely I see this:
$ oc exec -it deploy/default-interconnect -- qdstat --connections

ConnectionException: Connection amqp://<IP_ADDRESS>:amqp disconnected: Condition('proton.pythonio', 'Connection refused to all addresses')
command terminated with exit code 1

So instead I just restricted the port to <IP_ADDRESS>
Before the change
Port 5672 is found in nmap
$ kubectl get pods -o json | jq -r '.items[] | "\(.metadata.name): \(.status.podIP)"' | grep default-interconnect
default-interconnect-fb96557cc-zz565: <IP_ADDRESS>

$ oc run --privileged=true --image=quay.io/instrumentisto/nmap --rm -i -t nm -- -Pn -p- <IP_ADDRESS>
[...]
Host is up (0.0000080s latency).
Not shown: 65527 closed tcp ports (reset)
PORT      STATE    SERVICE
5671/tcp  open     amqps
5672/tcp  open     amqp
5673/tcp  open     jms
8672/tcp  open     unknown
8888/tcp  open     sun-answerbook
22623/tcp filtered unknown
22624/tcp filtered unknown
55671/tcp open     unknown
MAC Address: 0A:58:0A:80:00:DC (Unknown)

After the change
Port 5672 is NOT found in nmap, but qdstat commands still work
$ kubectl get pods -o json | jq -r '.items[] | "\(.metadata.name): \(.status.podIP)"' | grep default-interconnect
default-interconnect-77664697fd-fhpfx: <IP_ADDRESS>

$ oc run --privileged=true --image=quay.io/instrumentisto/nmap --rm -i -t nm -- -Pn -p- <IP_ADDRESS>
[...]
Host is up (0.00024s latency).
Not shown: 65528 closed tcp ports (reset)
PORT      STATE    SERVICE
5671/tcp  open     amqps
5673/tcp  open     jms
8672/tcp  open     unknown
8888/tcp  open     sun-answerbook
22623/tcp filtered unknown
22624/tcp filtered unknown
55671/tcp open     unknown
MAC Address: 0A:58:0A:82:00:D9 (Unknown)

$ oc exec -it deploy/default-interconnect -- qdstat --connections
2024-05-13 18:31:12.415775 UTC
default-interconnect-77664697fd-fhpfx

Connections
  id  host             container                             role    dir  security     authentication  tenant  last dlv      uptime
  =========================================================================================================================================
  1   <IP_ADDRESS>:35118  84bc110a-2732-4c73-9eea-e2653c1c7cea  normal  in   no-security  no-auth                 000:00:00:00  000:00:00:00

recheck

recheck

recheck

recheck

recheck

recheck


istioctl verify-install: Colorize success/failure markers

Resolves https://github.com/istio/istio/issues/29336
The only output change is to colorize the little ✔ and ✘ markers.
Uses the same technique as istioctl analyze to see if it is safe to colorize.
I didn't test this on Windows.  Windows has some non-ANSI terminals.  Our progress bar uses github.com/mattn/go-colorable for those Windows terminals.  I didn't bring that it, because I don't have a Windows machine to test on and invoking it directly outside of a progress bar would mean changing go.mod.

@esnible: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test release-notes_istio

unit-tests_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@esnible: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test release-notes_istio

unit-tests_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test unit-tests_istio

integ-ipv6-k8s-tests_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test integ-ipv6-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@esnible: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test unit-tests_istio

integ-ipv6-k8s-tests_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test integ-ipv6-k8s-tests_istio

release-notes_istio
5225e6aaafacf2878fa07fadde2c078cb426c12a
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Crunchyroll: Download Specific Playlist

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm requesting a site-specific feature
[X] I've verified that I'm running yt-dlp version 2022.11.11 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
United States
Example URLs
https://www.crunchyroll.com/series/GZJH3DJ8E/the-daily-life-of-the-immortal-king
Provide a description that is worded well enough to be understood
The Crunchyroll extractor is able to detect different seasons as playlist. However, you cannot download a specific playlist. You instead have to manually define the episode numbers using -I or --playlist-items. Ideally, you would be able to select the season / playlist you want.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['https://www.crunchyroll.com/series/GZJH3DJ8E/the-daily-life-of-the-immortal-king', '-vU']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] ytdl-patched/yt-dlp version 2<IP_ADDRESS>9 [d619eec] (win_exe)
[debug] ** This build is unofficial daily builds, provided for ease of use.
[debug] ** Please do not ask for any support.
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22621-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-92132-g0a41a8bf29, ffprobe N-92132-g0a41a8bf29
[debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1751 extractors
[debug] Fetching release info: https://api.github.com/repos/ytdl-patched/yt-dlp/releases/latest
Latest version: 2<IP_ADDRESS>9, Current version: 2<IP_ADDRESS>9
yt-dlp is up to date (2<IP_ADDRESS>9)
[crunchyroll:playlist] Extracting URL: https://www.crunchyroll.com/series/GZJH3DJ8E/the-daily-life-of-the-immortal-king
[crunchyroll:playlist] Retrieving main page
[crunchyroll:playlist] Authenticating with grant_type=client_id
[crunchyroll:playlist] Retrieving signed policy
[crunchyroll:playlist] the-daily-life-of-the-immortal-king: Retrieving series metadata
[crunchyroll:playlist] the-daily-life-of-the-immortal-king: Retrieving season list
[download] Downloading playlist: The Daily Life of the Immortal King
[crunchyroll:playlist] the-daily-life-of-the-immortal-king: Retrieving episode list for the-daily-life-of-the-immortal-king-english-dub
[crunchyroll:playlist] the-daily-life-of-the-immortal-king: Retrieving episode list for the-daily-life-of-the-immortal-king
[crunchyroll:playlist] the-daily-life-of-the-immortal-king: Retrieving episode list for the-daily-life-of-the-immortal-king-season-2-english-dub
[crunchyroll:playlist] the-daily-life-of-the-immortal-king: Retrieving episode list for the-daily-life-of-the-immortal-king-season-2
[crunchyroll:playlist] the-daily-life-of-the-immortal-king: Retrieving episode list for the-daily-life-of-the-immortal-king-season-3
[crunchyroll:playlist] Playlist The Daily Life of the Immortal King: Downloading 59 items of 59
[download] Downloading item 1 of 59
[crunchyroll] Extracting URL: https://www.crunchyroll.com/watch/G31UXDJPX/the-giant-frog-triple-killed-by-wang-ling
[crunchyroll] the-giant-frog-triple-killed-by-wang-ling: Retrieving episode metadata
[crunchyroll] the-giant-frog-triple-killed-by-wang-ling: Retrieving stream info
[crunchyroll] To get all formats of a hardsub language, use "--extractor-args crunchyrollbeta:hardsub=<language_code or all>". See https://github.com/yt-dlp/yt-dlp#crunchyrollbeta for more info
[crunchyroll] the-giant-frog-triple-killed-by-wang-ling: Downloading adaptive_hls HLS manifest
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] G31UXDJPX: Downloading 1 format(s): adaptive_hls-8098
[debug] Invoking hlsnative downloader on "https://pl.crunchyroll.com/evs3/638d83481aadfd485bb2210b65aa965a/assets/00281b1a0aa4b67afc65486dbd3b23c0_4591870.mp4/index-v1-a1.m3u8?res=1920x1080&Expires=1672679662&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy82MzhkODM0ODFhYWRmZDQ4NWJiMjIxMGI2NWFhOTY1YS9hc3NldHMvMDAyODFiMWEwYWE0YjY3YWZjNjU0ODZkYmQzYjIzYzBfNDU5MTg3MC5tcDQvaW5kZXgtdjEtYTEubTN1OD9yZXM9MTkyMHgxMDgwIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNjcyNjc5NjYyfX19XX0_&Signature=CUOkuqjm0oBfajd2A151mq0L5T8J~v0M-a8ERQivZUGOH6EFEIcAZCja08TioLy49IadhJwB4s22THdrLf7Pp0~Ih0Br7FFOuPzu~uF2X1R9ctFOuRkJv-lz-PVkU5vecbSQDGJqszGVLPLbLBBuC3n8x~nRHrxnTySSZ1eqPXFFSRN7QSAszz3MSFBYy7hJzb9iWdeZiW3aqW6~JV6Jtd5nFV4fjUGQutnu0TfsfX-plgud1Ws3jKydcoi~iMJ3z7nRXF-f1la8hAaUVd5YA4PYDrNXVl7OHjeswXS7igAEBHQ7i3mDf5L~LbuW7660Bn9zD30OoTSraI8PZT1PJw__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 284

Does the individual seasons have their own URLs? If not, how would we support it?
You can use --match-filter "season=..." to filter what u want

the-daily-life-of-the-immortal-king-season-3

Negative; seasons do not have their own URLs. The only line that represents a season is crunchroll:playlist.

Note to self: --playlist-start and --playlist-end can also be used to only download certain episodes.


Change the button background color on the book page.

Describe the task
Right now all the buttons on the book page are of blue color, so we have to give different colors to a different button.
Go to KnowledgeCafe --> Library --> Select any book.
Expected behavior
Change the button background color.

References
Bootstrap button:- https://getbootstrap.com/docs/4.0/components/buttons/

Working Fine.


Kev test

Description

How Has This Been Tested?

Merge criteria:

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

Merging as the check seems to be flakey


Failed request to Sign API with status code 503 and payload "b'{"code":503,"error":"API is not ready for connections yet."}'".

While starting the event data capturing of a tiktok live, at the first stage , I got the below error. And, after this , no data was being captured. I faced this problem , couple of times! But. no clue why this error happened and how to resolve. Please try to fix this ERROR!
[SIGN_NOT_200] Failed request to Sign API with status code 503 and payload "b'{"code":503,"error":"API is not ready for connections yet."}'".
Package Version
My version of TikTokLive is 6.0.4
Thanks!

Fixed.
Long-term please see #announcements in the Discord. A major focus of the project is now on achieving stability with the signing server.
Isaac


fix(deps): :arrow_up: update dependency vega to v5.27.0

This PR contains the following updates:

Package
Change
Age
Adoption
Passing
Confidence

vega
5.26.1 -> 5.27.0

Release Notes

vega/vega (vega)
v5.27.0
Compare Source
changes from v5.26.1:
docs

Addition of an example: Zoomable Circle Packing (via #3841 and #3842). (Thanks @Giammaria!)

monorepo

add codeowners file. (Thanks @domoritz!)
replace indexOf with equivalent includes and startsWith (via #3845). (Thanks @domoritz!)

vega-scenegraph

Fix blurry zoom from caching devicePixelRatio (via #3844). (Thanks @lsh!)

vega-transforms

fix sum([invalid]) -> undefined (via #3849). (Thanks @nicolaskruchten!)
fix: correct aggregate params types (via #3846). (Thanks @domoritz!)

vega-typings

Add experimental 'hybrid' renderer to vega-typings (via #3847). (Thanks @jonmmease!)

vega-view

Add option to resize on devicePixelRatio change (via #3844). (Thanks @lsh!)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/@angular/core
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@angular/animations
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2024-01-06T21_03_32_411Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2024-01-06T21_03_32_411Z-debug-0.log

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/@angular-devkit/build-angular
npm ERR!   dev<EMAIL_ADDRESS>from the root project
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@angular-builders/custom-webpack
npm ERR!     dev<EMAIL_ADDRESS>from the root project
npm ERR!   3 more (@nx/angular, @storybook/angular, jest-preset-angular)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! dev<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Conflicting peer dependency<EMAIL_ADDRESS>npm ERR! node_modules/@angular/compiler
npm ERR!   peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@angular/localize
npm ERR!     peerOptional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!     node_modules/@angular-devkit/build-angular
npm ERR!       dev<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2024-01-19T08_12_37_558Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2024-01-19T08_12_37_558Z-debug-0.log

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/esbuild
npm ERR!   dev<EMAIL_ADDRESS>from the root project
npm ERR!   optional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/jest-preset-angular
npm ERR!     dev<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peerOptional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@nx/angular
npm ERR!   dev<EMAIL_ADDRESS>from the root project
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@nrwl/angular
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!
npm ERR! Conflicting peer dependency<EMAIL_ADDRESS>npm ERR! node_modules/esbuild
npm ERR!   peerOptional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@nx/angular
npm ERR!     dev<EMAIL_ADDRESS>from the root project
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!     node_modules/@nrwl/angular
npm ERR<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2024-02-12T11_46_58_952Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /tmp/renovate/cache/others/npm/_logs/2024-02-12T11_46_58_952Z-debug-0.log


v-t directive does not rerender when locale switches

Reporting a bug?
v-t directive does not update when locale switches
Expected behavior
Changing the locale updates all references of v-t
Reproduction
Stackblitz: https://stackblitz.com/edit/vitejs-vite-3sfn11?file=src%2FApp.vue
GitHub Repo: https://github.com/DerZade/vue-i18n-locale-switching-bug-report

<template>
  <button @click="changeLanguage">change</button>

</template>

System Info
System:
    OS: Linux 6.8 Ubuntu 24.04.1 LTS 24.04.1 LTS (Noble Numbat)
    CPU: (16) x64 AMD Ryzen 7 7840U w/ Radeon  780M Graphics
    Memory: 44.28 GB / 60.63 GB
    Container: Yes
    Shell: 5.2.21 - /bin/bash
  Binaries:
    Node: 20.18.0 - ~/.nvm/versions/node/v20.18.0/bin/node
    Yarn: 1.22.22 - ~/.nvm/versions/node/v20.18.0/bin/yarn
    npm: 10.9.0 - ~/.nvm/versions/node/v20.18.0/bin/npm
  Browsers:
    Chrome: 129.0.6668.100
  npmPackages:
    @vitejs/plugin-vue: ^5.1.4 => 5.1.4
    vite: ^5.4.8 => 5.4.9
    vue: ^3.5.12 => 3.5.12
    vue-i18n: ^10.0.4 => 10.0.4

Screenshot
No response
Additional context
I started investigating this and found that apparently the composer of the v-t in my example is not the global composer (I don't know why tho, since there is only one instance in the whole app), therefore the watcher for the locale isn't added in the register hook of the directive:
https://github.com/intlify/vue-i18n/blob/43072e83fe185c977424c7a0690ae0d3963a1185/packages/vue-i18n-core/src/directive.ts#L102-L107
Really dumb question: Why can't we just always add the watcher, why does it only work for the global instance?
Validations

[X] Read the Contributing Guidelines
[X] Read the Documentation
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussions

Thank you for your reporting!
Hmm.
vue-i18n does not seem to work v-t on legacy mode, currently.
you can avoid composition mode.
https://stackblitz.com/edit/vitejs-vite-gdnzpe?file=src%2FApp.vue,src%2Fmain.js
Legacy mode will be removed in future versions of vue-i18n.
I recommend you will use composition mode.


Add hsl() support

Add HSL support, closes #1468

Hi! hsl() function has different syntaxes and might contain different units.
The regexp you added doesn't process alpha values, hsla prefix, deg and rad units, modern slash syntax, etc.


Adding link to condition/decondition docs in DynamicPPL

Following up on a user comment in slack, I've added a link to the docs on condition/decondition syntax in the coin-flip example.

many thanks @PavanChaggar and @devmotion !


add tmp_dir

Following https://github.com/galaxyproject/training-material/issues/3944
I propose to add tmp_dir
Do not hesitate to amend this.

You're welcome. As I said do not hesitate to fix it or make it more accurate.


feat(pitch): ✨ add +, - operators

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1018

Relevant Lines:
1018

💛  - Coveralls


Azure Chatbot, Webchat Widget accessibility keyboard navigation and screen reader focus order is not logical.

🚨 The issue tracker is not for implementation questions 🚨
Please view our Technical Support Guide before filing a new issue.

This repo focuses on the development of Web Chat, a client/channel for Bot Framework. If you have questions on implementation or about other features of Bot Framework, please see the below list to direct your questions to the correct repo or site.

Topic
Description
Link

Web Chat 'How to' Questions
Ask implementation questions about Web Chat
https://stackoverflow.com/questions/tagged/web-chat

Bot Framework Questions
Ask implementation questions related to the BotFramework SDK
https://stackoverflow.com/questions/tagged/botframework

Bot Builder
A comprehensive list of Bot Framework SDKs and tools
https://github.com/microsoft/BotBuilder

[Question]
Azure Chatbot, Webchat Widget accessibility keyboard navigation and screen reader focus order is not logical.
Need clarification for screen reader focus order and key navigation when new buttons are available.
Ex:
i) When new buttons are available, it requires users to press "enter" and then "tab" key to access the buttons. The screen reader does not read this direction all the time.
ii) When a set of buttons are available on the screen, focus still trapped on the first set of buttons.

I have also observed the same malfunctions when there are multiple sets of buttons available. The focus stays only in the first set of buttons (when pressing UP or DOWN arrow keys).

@jason-walgreens
For your first point, when a message with buttons arrive (e.g. Adaptive Cards), the screen reader should narrate: "Bot said: . Message is interactive. Press shift tab key 2 to 3 times to switch to the chat history. Then click on the message to interact." Are you seeing some messages with buttons arrived without this narratives? If yes, could you record a short video showing this behavior?
For your second point, according to keyboard navigation pattern in WAI-ARIA, we put the focus on the element which the user is focused last time. Thus, we are not moving the focus to the new message. Excerpt from the page:

The element that had focus the last time the composite contained focus. Or, if the composite has not yet contained the focus, the first element. Widgets that usually employ this pattern include grid and tree grid.

That's the reason why the focus could keep on the first message when the second message arrive.
However, if the user sent a message, we will consider the user has an intention to acknowledge the messages and we will take this opportunity to move the focus to the last message. E.g.

Assume the chat history has 1 message from the bot, e.g. greeting
The user move the focus to the chat history, it should focus on the greeting message
The user move the focus to the send box, then sent a message
The bot responded, thus, there are now 3 messages in the chat history (bot greeting, user message, bot respond)
The user move the focus to the chat history
The focus should be on the very last message in the chat history, instead of the first one (greeting)

It will be great if you can give a reference to the WAI-ARIA so we can understand our inconsistencies with the guideline.

@sknaappilaswd
When the user focus inside the message (e.g. "Button 1" in your first set of buttons), we intentionally trap the focus inside the message until the user press ESC key.
Web Chat is a complex widget (a.k.a. widget could contains more widgets), and we are implement the navigation pattern based on layout grid navigation pattern. Excerpt from the WAI-ARIA Authoring Practices guideline:

Tab: moves focus to the next widget in the grid. Optionally, the focus movement may wrap inside a single cell or within the grid itself.
Shift + Tab: moves focus to the previous widget in the grid. Optionally, the focus movement may wrap inside a single cell or within the grid itself.

We implemented the optional part of the pattern and wrap the focus movement inside the cell. When the user press Enter key to "focus inside" the message, the focus will be wrapped around until the user press ESC key to restore the navigation pattern.

@compulim
Hi! There might be a misunderstanding. I see that you refer to multiple messages, but I am talking about one message (bot's answer to the user) that contains multiple sets of buttons. I am not able to get to the second set of buttons because the focus stays in the first set of buttons. If I press ESC the focus leaves the message and I may navigate to other messages, but I do not want to leave the bot's message but instead be able to navigate within it.
WCAG 1.3.2: Meaningful Sequence (A), WCAG 2.4.3: Focus Order (A).
Here is the AdaptiveCard that was used to reproduce this. The user asks a question and the bot answers with this:
{   "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",   "type": "AdaptiveCard",   "version": "1.3",   "body": [     {       "type": "TextBlock",       "text": "An ActionSet in the body:",       "wrap": true,       "weight": "bolder"     },     {       "type": "ActionSet",       "actions": [           {             "type": "Action.Submit",             "title": "Button 1",             "wrap": true,             "data": {               "continue": "true"             }           },           {             "type": "Action.Submit",             "title": "Button 2",             "wrap": true,             "data": {               "continue": "true"             }           },           {             "type": "Action.Submit",             "title": "Button 3",             "wrap": true,             "data": {               "continue": "true"             }           }       ]     },     {       "type": "TextBlock",       "text": "An ActionSet in the body (buttons not accessible by keyboard. If buttons are accessed using TAB, this text is not read to to screenreader):",       "wrap": true,       "weight": "bolder",       "spacing": "extraLarge"     },     {       "type": "ActionSet",       "actions": [           {             "type": "Action.Submit",             "title": "Button 1",             "wrap": true,             "data": {               "continue": "true"             }           },           {             "type": "Action.Submit",             "title": "Button 2",             "wrap": true,             "data": {               "continue": "true"             }           }       ]     }   ] }

@compulim Any updates on this issue?

@compulim Could you please provide updates on this issue? Thanks!

@compulim any updates?

I am using the Adaptive Card from @sknaappilaswd and created a chat history (attached below).
When I load it into Web Chat 4.15.2, I can press TAB and SHIFT + TAB key to focus on all 5 buttons of both sets. And NVDA 2022-01 did narrate all the buttons correctly when I am using TAB key to focus between them.

Click to see the chat history JSON
[
  {
    "id": "a-00001",
    "text": "What can I do for you?",
    "timestamp": "2022-06-09T21:18:06.367Z",
    "type": "message",
    "attachments": [
      {
        "contentType": "application/vnd.microsoft.card.adaptive",
        "content": {
          "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
          "type": "AdaptiveCard",
          "version": "1.3",
          "body": [
            {
              "type": "TextBlock",
              "text": "An ActionSet in the body:",
              "wrap": true,
              "weight": "bolder"
            },
            {
              "type": "ActionSet",
              "actions": [
                {
                  "type": "Action.Submit",
                  "title": "Button 1",
                  "wrap": true,
                  "data": {
                    "continue": "true"
                  }
                },
                {
                  "type": "Action.Submit",
                  "title": "Button 2",
                  "wrap": true,
                  "data": {
                    "continue": "true"
                  }
                },
                {
                  "type": "Action.Submit",
                  "title": "Button 3",
                  "wrap": true,
                  "data": {
                    "continue": "true"
                  }
                }
              ]
            },
            {
              "type": "TextBlock",
              "text": "An ActionSet in the body (buttons not accessible by keyboard. If buttons are accessed using TAB, this text is not read by the screenreader (NVDA)):",
              "wrap": true,
              "weight": "bolder",
              "spacing": "extraLarge"
            },
            {
              "type": "ActionSet",
              "actions": [
                {
                  "type": "Action.Submit",
                  "title": "Button 1",
                  "wrap": true,
                  "data": {
                    "continue": "true"
                  }
                },
                {
                  "type": "Action.Submit",
                  "title": "Button 2",
                  "wrap": true,
                  "data": {
                    "continue": "true"
                  }
                }
              ]
            }
          ]
        }
      }
    ]
  }
]

https://user-images.githubusercontent.com/1622400/172965749-3cb2177a-294e-4e35-9b34-a275b5bf2c9a.mp4

But in this reproduction and video the text above the second set of buttons is never read, so the buttons miss their context. I have not been able to hear the text paragraphs of the second set of buttons. With the TAB key you can jump from one button to another by also jumping from one set to another, but without hearing instructions (e.g. a question) the button sets become meaningless.
Say you want to ask the user would they rather answer questions based on their age or shoe sizes. The first set of buttons (age) could contain buttons with "30-35", "36-40", 41-45". The second set of buttons could also contain buttons with the same or different values, but they would be shoe sizes. How can the screen reader user know what the numbers are about, if the text above the button set is not accessible?
That is what I meant with these WCAG 1.3.2: Meaningful Sequence (A), WCAG 2.4.3: Focus Order (A).
Indeed with the tab key you can focus on buttons in different sets, but then you miss the text content present in the card completely. I have only been able to access the text and buttons in the first button set (focus gets trapped when using arrow keys). Never been able to achieve the same with the second button set.

When pressing TAB keys to focus on different elements, non-interactive elements, such as text or <p>, are never read by the screen reader. Only interactive elements, such as <button> or <a>, will be narrated. This is behavior also true for normal HTML webpage.
Could you repro your Adaptive Card outside of Web Chat? You can paste your card JSON into Adaptive Card Designer, then turn on the "Preview mode" to test. This will help to determine whether this is an issue on Adaptive Cards or Web Chat.


[BUG] Embedded App Installer Not Loading Updates

:information_source: Info

Version: ^3.16.1
:speech_balloon: Description

Thank you for a great package! I see there has been hours of work put into this project.
I ran dart run msix:publish to create the app installer. I then followed the instructions found on Microsoft docs (click me)  to embed the app installer file that was created using  dart run msix:publish  into the MSIX file. After completing the instructions I installed the new MSIX that has the app installer embedded and the application doesn't check for updates. I also tried to run dart run msix:publish again to create a new version so that I would receive a prompt to upgrade to the new version. That didn't work either.  It seems that the application bypasses the update check when the app installer is embedded.
Any advice or guidance is greatly appreciated on how to successfully embed the app installer into the MSIX. I would like to contribute to this project and create a pull request for this issue.
Side note:
On the Microsoft docs, (click me) they use  xmlns="http://schemas.microsoft.com/appx/appinstaller/2021" for the app installer file. The project currently uses  xmlns="http://schemas.microsoft.com/appx/appinstaller/2018" in the creation of the app installer file. I tried to update the  xmlns to "http://schemas.microsoft.com/appx/appinstaller/2021" but then I received the error below. I wonder if the xmlns value being 2018 is related to the application not checking for updates when the app installer is in embedded.

:scroll: Pubspec.yaml

name: my_msix
description: A new Flutter project.
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=3.0.1 <4.0.0'
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^2.0.0
msix: ^3.16.1
flutter:
uses-material-design: true
msix_config:
display_name: My MSIX App
certificate_path: xxxRemovedForPrivacyxxx
certificate_password: xxxRemovedForSecurityxxx
app_installer: #<-- app installer configuration
publish_folder_path: xxxRemovedForPrivacyxxx
hours_between_update_checks: 0
automatic_background_task: true
update_blocks_activation: true
show_prompt: true
msix_version: <IP_ADDRESS>
Thank you for reading!

Hello @Eradparvar
Embedded app-installer is not yet supported with this package.
It will be good future feature.

Thank you, @YehudaKremer, for the quick response. Would you like me to create a pull request for this feature? Can you provide any guidance on what I should focus on to implement this?


Python FileNotFoundError: [Errno 2] No such file or directory: 'ffprobe' on Synology

Hi, I was making a small python 3.8 script to sort photos and videos according to their metadata on my Synology NAS (working on DSM 7.0), overall it works well on ubuntu but it fails on the NAS with this error :

FileNotFoundError: [Errno 2] No such file or directory: 'ffprobe'

I've been searching everywhere for help on this issue, I saw this post and tried the solutions but I still got the error on any video I try to read metadata from.
ffmpeg is installed and so are ffmpeg-python and ffprobe-python
Here's my test code:
from datetime import datetime
import ffmpeg

name = "VID_20200130_185053.mp4"
path = "/volume1/photo/phone/DCIM/Camera/"
data_keys = ["DateTimeOriginal", "DateTime", "creation_time"]
file = f"{path}{name}"
print(file)
vid = ffmpeg.probe(file)['streams']
# vid = ffprobe.FFProbe(file).streams
for key in data_keys:
    if key in vid[0]['tags']:
        print(datetime.strptime(vid[0]['tags'].get(key).split('T')[0], "%Y-%m-%d"))

Hey @Boris-Sachet
I'm new here, but I ran into this immediately as well. The problem was that ffmpeg (and ffprobe) weren't installed on my system.
This Python package is just a wrapper for the crazy commands for ffmpeg on the command line, it doesn't actually install ffmpeg as a program on your computer.
I'm on a Mac, so I just ran ran brew install ffmpeg on the command line, and then ran the following code in iPython:
import ffmpeg
details = ffmpeg.probe('test.mp4')

And it worked perfectly.
Hope this helps!

details = ffmpeg.probe('test.mp4')

Hi, when I trying to use the .probe function, I came across this error:"ffmpeg._run.Error: ffprobe error (see stderr output for detail)".
Using the exact same lines of python and also on a mac with ffmpeg installed through brew.
Did you ever have seen this error before? Looking for help.


Use Travis CI to run tests on every pull request

The owner of the this repo would need to go to https://travis-ci.org/profile and flip the repository switch on to enable free automated flake8 testing of each pull request.
Use flake8 to find Python syntax errors and undefined names.  There are Python 3 syntax errors and many undefined names which may raise NameError at runtime. This PR runs flake8 runs in two passes: The first looks at critical issues in stop-the-build mode and the second looks at style violations in everything-is-a-warning mode.
Output
Python 2: https://travis-ci.com/nodejs/node/jobs/135827428#L505
Python 3: https://travis-ci.com/nodejs/node/jobs/135827419#L501

Checklist

[ ] npm install && npm test passes
[ ] tests are included
[ ] documentation is changed or added
[ ] commit message follows commit guidelines

Description of change

@nodejs/gyp @bnoordhuis @maclover7 @richardlau @gibfahn @Fishrock123 @vsemozhetbyt @refack
Can we please get Travis CI tuned on for this project like other Node projects?  There are existing tests and linting for JavaScript (#1497) and Python (this PR) that should be run on all pull requests before they are reviewed.

This is a policy decision for @nodejs/node-gyp to take (I'm not a comitter on this project). There is an existing https://ci.nodejs.org/job/nodegyp-test-pull-request on Node.js' own CI, but I think it currently only runs tests and not linting.

but I think it currently only runs tests and not linting.

That could be easily fixed by having the flake8 command be part of an npm run lint script that is run by the test command (so npm run test actually calls npm run lint && npm run tap).
I'm not a fan of this as it stands, as people will think that the test suite has been run successfully, when in fact only the linter has run. It's also a step that has to be run manually by contributors.

Can we please get Travis CI tuned on for this project like other Node projects?

@cclauss what exactly is your goal here? If it's to have flake8 run on test suites, then my suggestion above is the quickest way to do that.
If it's to enable travis for node-gyp, then that is a different discussion.

There are existing tests and linting for JavaScript (#1497) and Python (this PR) that should be run on all pull requests before they are reviewed.

Why should they be run on all pull requests before they are reviewed? As long as they are run before the PR is landed, a linter change is unlikely to be the difference between landing and closing a PR.

The entire trend of CI/CD is about using automation to test early and test often.  It questions the value of having humans review code before it has gone through some level of automated testing.
As example, let’s consider #1333 and #1334 where our code could be raising NameError exceptions at runtime.  These PRs have been open for eight months with no comment.  If flake8 was turned on then everybody who was trying to improve the code would put a 👍 on these PRs and they would have been merged months ago.
Sometime over the next 500 days this repo either needs to be ported to Python 3 or archived.  Publicly visible automated testing is recommended for efficiently doing the former.

https://travis-ci.com/nodejs/node/builds/79706150

This is PR is not attempting to be the end solution. It is merely trying to get Travis CI turned on for this repo (as it is for nodejs/node, etc.) so that we can collaborate on creating better and better tests.

Thanks for the reply, but that doesn't really answer my question.
If you want to add Travis testing to node-gyp, then Travis should be running npm test.
If you want to add flake8 to the test suite, it should be run as part of npm test, which should probably be a separate PR.

Is there someone who could re-implement this PR in a way that satisfies @gibfahn's request above?
I do not understand the npm approach well enough but this PR has been open for almost a year and I believe that we would all benefit from having some basic Python linting in place.

@gibfahn  npm install ; npm test in place.  @refack

@gibfahn Can you or someone else please mentor me through this issue?  There are 42 open PRs and none of them go through any CI testing.  No new commit in the past week.  I opened #1337 over a year ago and one year from now Python 2 is end of life.  Is it really so difficult to turn on Travis CI or any similar CI tool so that we can try to achieve Python 3 compatibility in time?

@gustavosizilio See https://github.com/nodejs/node-gyp/pull/1336#issuecomment-406903438

Are there any strong arguments against activating TravisCI?
I dont think adding this and activating needs a policy decision or similar, as its only a supporting part. It does not replace or change any of the existing processes the project has.
It also does not break anything.
And having this merged may lead to further improvements of the travis setup and reduce communication roundtrips where a maintainer is needed.
Is there anything I did miss?
//cc @refack @maclover7


doc for subst

The doc for jbuilder subst --help is wrong, it says to add:
 ["jbuilder" "subst" name] {pinned}

which is not a valid command (I guess a -n is missing). Also there is no doc about it in the manual. Would be great to explain what substitution it does (by default, and maybe if there is a way to add custom ones)

Indeed, I updated the doc

Thanks!
Also http://jbuilder.readthedocs.io/en/latest/search.html?q=subst&check_keywords=yes&area=default doens't return any result. Would be great to add a section about that command there too :-)

Indeed, I added some doc


fix random haustier bug

Scope & Purpose
Fix a bug randomly reported via Slack about "Haustiere" results.

[x] :hankey: Bugfix
[ ] :pizza: New feature
[ ] :fire: Performance improvement
[ ] :hammer: Refactoring/simplification

Checklist

[ ] Tests

[ ] Regression tests
[ ] C++ Unit tests
[ ] integration tests
[ ] resilience tests

[ ] :book: CHANGELOG entry made
[ ] :books: documentation written (release notes, API changes, ...)
[x] Backports

[x] Backport for 3.10: TO DO
[ ] Backport for 3.9: -
[ ] Backport for 3.8: -

Related Information

[ ] Docs PR:
[ ] Enterprise PR:
[ ] GitHub issue / Jira ticket:
[ ] Design document:

It's a breaking change for ALL

Yes, it is definitely a breaking change, but a sensible one.
Consider the following behavior of ArangoDB <= 3.10:
arangod> db._query("RETURN @values ALL > 3", { values: [] });
[ true ]

arangod> db._query("RETURN @values ANY > 3", { values: [] });
[ false ]

I find that pretty inconsistent. You ask for whether all values of an empty array are > 3 and get true back, and then you ask whether any value of an empty array is > 3 and get false back. That's not truly Vulcan logic.
So this PR proposes to change the behavior for ALL for empty arrays, so that it makes actual sense and is in line with the behavior of the ANY operator.

If you read "ANY > 3" as "there exists a value x such that x > 3", false is actually the correct answer, as there is no value ;)

If you read "ANY > 3" as "there exists a value x such that x > 3", false is actually the correct answer, as there is no value ;)

True.
I think we need to agree on the desired behavior, and from that follows whether we need to make a downwards-incompatible change or not.
I am not a mathematician, so I don't know if there is a commonly accepted way of how such operations are supposed to work.

If you read "ANY > 3" as "there exists a value x such that x > 3", false is actually the correct answer, as there is no value ;)

True. I think we need to agree on the desired behavior, and from that follows whether we need to make a downwards-incompatible change or not. I am not a mathematician, so I don't know if there is a commonly accepted way of how such operations are supposed to work.

There is one for ALL. ALL should be read as "every that exists", so if there is none (in the empty set), then ALL is true, regardless of the statement about it.
ANY is considered (by some logicians and I agree with them for our case) to be sometimes unclear. Unless it is explicitly defined for some area, of course. It can be interpreted as ALL (see above), as EXISTS, which means, well, there is an element with the described property, and, if used with a negation, as NO, which means, there is no element with the property.

Ok, I modified the PR so that the behavior regarding ALL does not change anymore.


Code review comments

I got rid of some extraneous comments and made it clearer what the hash function does. Note that these are "comments" so I haven't tested that they don't break something. :)

This pull request is now managed with CodeReviewHub. Refresh.

:shipit:


Bar Chart: Tooltip Each Bar

This is not an issue but I just want to share this, In Bar Chart I wanted each bar to have it's own tooltip, this is what I did. Hope this will help others too.

and here's the code

var chart = c3.generate({
    data: {
        columns: [
            ['A', 120, null, null, null, null, null, null, null, null],
            ['B', null, 30, null, null, null, null, null, null, null],
            ['C', null, null, 100, null, null, null, null, null, null],
            ['D', null, null, null, 76, null, null, null, null, null],
            ['E', null, null, null, null, 50, null, null, null, null, null],
            ['F', null, null, null, null, null, 45, null, null, null, null],
            ['G', null, null, null, null, null, null, 80, null, null, null],
            ['H', null, null, null, null, null, null, null, 23, null, null],
            ['I', null, null, null, null, null, null, null, null, 10, null],
            ['J', null, null, null, null, null, null, null, null, null, 89]
        ],
        groups: [
            ['A', 'B', 'C', 'D', 'E', 'F','G','H','I','J']
        ],
        type: 'bar'
    },
    bar: {
        width: {
            ratio: .5 // this makes bar width 50% of length between ticks
        }
    },
    axis: {
        x: {
            type: 'category',
            categories: ['A', 'B', 'C', 'D', 'E', 'F','G','H','I','J']
        }
    },
    legend: { show: false },
    tooltip: {
        format: {
            title: function (x, index) { return 'Jan 19 ' }
        }
    }
});

This is not an issue but I just wanted to share this.

This is not an issue but I just wanted to share this.


Add support for specifying specific Lua runtime version

Is your feature request related to a problem? Please describe.
As stated in Redis documentation, the only supported Lua runtime is Lua 5.1. Logically, I would also expect it to work with Lua 5.x, because the new minor versions should be backward-compatible with previous minor versions. However, that is not the case. In Lua 5.2 unpack was completely removed and replaced with table.unpack.
So when using Lua with fakeredis, the only available version is 5.4 and in the real-world environment it's 5.1. Being unable to fix the Lua version and use one of somebody's choice forces to do such a fix to make it working:
table.unpack = table.unpack or unpack

Describe the solution you'd like
Probably, a good solution will be to pass Lua version with an environment variable like FAKEREDIS_LUA_VERSION and default it to the latest one in case it's not present or lupa doesn't support runtime for this version.

Oh, so redis supports only LUA 5.1 while fakeredis supports LUA 5.4.
I think it would be better to default it to 5.1 on fakeredis.

The issue is with lupa2.0.
If you install lupa 1.14.1 lua 5.1 works fine

Sure, but can it be the feature of the fakeredis to have the ability to specify a specific Lua version or at least have 5.1 as a default one? I don't think lupa maintainers will ever update 1.14.x version.

A bug should be opened on lupa package. They claim 5.1 is supported in v2.

Sorry, but I don't get it. How does opening an issue ticket in lupa package fix this problem? And what even is the exact problem with lupa?
As stated in lupa documentation:

The binary wheels include different Lua versions as well as LuaJIT, if supported. By default, import lupa uses the latest Lua version, but you can choose a specific one via import.

At the time of writing, the latest version of Lua is 5.4. So when you do
from lupa import LuaRuntime

it's the 5.4 is the one that gets used. But in specific Redis scenario, Lua version is fixed to 5.1, so importing the LuaRuntime should like as follows:
from lupa.lua51 import LuaRuntime

So with lupa2 - from lupa.lua51 import LuaRuntime does not exist

I created an issue on lupa, closing this issue.

I also opened the issue some time ago right here.
Basically, we'll have it with the next release, so I wouldn't close this issue as you'll still need to import from lupa.lua51 and not lupa

Good point...

thank you!


Include system messages in mailbox stats

As discussed in gitter, let's include system messages in mailbox stats.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Debug mode

#55  支持debug模式
使用Debug(true)函数打开该功能

Codecov Report

Merging #67 into master will increase coverage by 0.91%.
The diff coverage is 80.95%.

@@            Coverage Diff             @@
##           master      #67      +/-   ##
==========================================
+ Coverage   64.63%   65.55%   +0.91%
==========================================
  Files          19       20       +1
  Lines         707      749      +42
==========================================
+ Hits          457      491      +34
- Misses        213      220       +7
- Partials       37       38       +1

Impacted Files
Coverage Δ

gout.go
100% <ø> (ø)
:arrow_up:

req.go
76.66% <0%> (-2.65%)
:arrow_down:

group.go
87.82% <0%> (-2.36%)
:arrow_down:

debug.go
100% <100%> (ø)

utils.go
62.06% <50%> (-1.94%)
:arrow_down:

Continue to review full report at Codecov.

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


Unable to setup this plugin due to the use of deprecated package

Hi @tduniec ,
When I tried to add the plugin package using the command: yarn add --cwd packages/app @tduniec/backstage-plugin-time- saver
I encounter the following error. Error couldn't find package "<EMAIL_ADDRESS>required by "@tduniec/backstage- plugin-time-saver" on the npm registry.
Upon researching the issue, I found this

--which is deprecated,and instead of @types/react-chartjs-2@ ^2.5.7 now its using react-chartis-2
Any assistance in resolving this issue would be greatly appreciated.

Sorry for late response, do you managed to resolve the issue yourself ? Is there any action required from us ?

Hi @tduniec,
Template is created and not able to fetch the template
GET http://localhost:7007/api/scaffolder/v2/tasks/ net:: ERR_CONNECTION_REFUSED
Error:
TypeError
Message
Failed to fetch
Stack Trace:
TypeError: Failed to Fetch


Fixes breaking pyright checks across py versions

Pyright was failing depending on the python version being used; It seems the type hints available change depending on the python version, either because the hints are gated behind version checks or because the dependencies change versions to stay compatible with the python version.
This patch squelches some warnings and tells pyright to use the version of the current interpreter instead of always using 3.8 from pyproject.toml

I think one of the tests is failing because the PR comes form a fork. Clsing and re-opening with a branch in this repo.


L2 Missing Routes in native routing

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
When starting cilium on a multi-node cluster, and native routing, I expected it to 'just work' as long as the L2 network is configured.
How cilium as installed:
cilium upgrade --set kubeProxyReplacement=strict --set k8sServiceHost=cluster.bottled.codes --set k8sServicePort=6443 --datapath-mode native --set tunnel=disabled --set ipv4NativeRoutingCIDR=<IP_ADDRESS>/8 --set autoDirectNodeRoutes=true --set bpf.masquerade=true --set endpointRoutes.enabled=false --set loadBalancer.mode=dsr --set bpf.hostLegacyRouting=false

However, once cilium starts up, it only configures the route on the existing node. Example of the routing table:
default via <IP_ADDRESS> dev enp8s0 proto static onlink
<IP_ADDRESS>/24 via <IP_ADDRESS> dev cilium_host src <IP_ADDRESS> <-- cilium added
<IP_ADDRESS>/8 dev internal proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> dev cilium_host scope link
<IP_ADDRESS>/16 dev external proto kernel scope link src <IP_ADDRESS>

Working routes (manually adding the routes from other nodes):
default via <IP_ADDRESS> dev enp8s0 proto static onlink
<IP_ADDRESS>/24 via <IP_ADDRESS> dev cilium_host src <IP_ADDRESS> <-- cilium added
<IP_ADDRESS>/8 dev internal proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> dev cilium_host scope link
<IP_ADDRESS>/24 via <IP_ADDRESS> dev internal <-- manual
<IP_ADDRESS>/24 via <IP_ADDRESS> dev internal <-- manual
<IP_ADDRESS>/16 dev external proto kernel scope link src <IP_ADDRESS>

Scripting this to handle node reboots and changes is not all that difficult, but it seems like Cilium itself is better equipped to handle this.
Cilium Version
cilium-cli: v0.15.0 compiled with go1.20.4 on linux/amd64
cilium image (default): v1.13.4
cilium image (stable): v1.13.4
cilium image (running): 1.13.4

Kernel Version
Linux capital 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
{
  "clientVersion": {
    "major": "1",
    "minor": "26",
    "gitVersion": "v1.26.6+k3s1",
    "gitCommit": "3b1919b0d55811707bd1168f0abf11cccc656c26",
    "gitTreeState": "clean",
    "buildDate": "2023-06-26T17:51:14Z",
    "goVersion": "go1.19.10",
    "compiler": "gc",
    "platform": "linux/amd64"
  },
  "kustomizeVersion": "v4.5.7",
  "serverVersion": {
    "major": "1",
    "minor": "26",
    "gitVersion": "v1.26.6+k3s1",
    "gitCommit": "3b1919b0d55811707bd1168f0abf11cccc656c26",
    "gitTreeState": "clean",
    "buildDate": "2023-06-26T17:51:14Z",
    "goVersion": "go1.19.10",
    "compiler": "gc",
    "platform": "linux/amd64"
  }
}

Sysdump
cilium-sysdump-20230702-072346.zip
Relevant log output
No response
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I see this error in your log (this is a log for a single node, but all nodes have a similar error).
2023-07-02T05:05:22.840850290Z level=warning msg="Unable to install direct node route {Ifindex: 0 Dst: <IP_ADDRESS>/24 Src: <nil> Gw: <IP_ADDRESS> Flags: [] Table: 0 Realm: 0}" error="route to destination <IP_ADDRESS> contains gateway <IP_ADDRESS>, must be directly reachable" subsys=linux-datapath
2023-07-02T05:05:22.840877850Z level=warning msg="Unable to install direct node route {Ifindex: 0 Dst: <IP_ADDRESS>/24 Src: <nil> Gw: <IP_ADDRESS> Flags: [] Table: 0 Realm: 0}" error="route to destination <IP_ADDRESS> contains gateway <IP_ADDRESS>, must be directly reachable" subsys=linux-datapath

This happens when your nodes are not L2 reachable to each other. In this case, the logs say your node capital (<IP_ADDRESS>) is not directly (L2) reachable from cantor. Looking at the address assignment of cantor, I see /32 route assigned to the node.
2: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc fq state UP group default qlen 1000
    link/ether a8:a1:59:8e:72:b5 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/32 scope global enp9s0
       valid_lft forever preferred_lft forever
    inet6 2a01:4f9:6a:4297::2/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::aaa1:59ff:fe8e:72b5/64 scope link
       valid_lft forever preferred_lft forever

With /32, you cannot directly reach any node with L2.

Those log entries are a red herring (I think?) I don't need routes to the external IP from pods. Those routes are onlink and don't need any special help. They are public ips thus the routing table for them is outside of the cluster.
What is missing, are the actual L2 routes to other nodes (which doesn't involve the external IP at all)

This log message is a bit confusing, but it doesn't try to insert routes to the external IP from pods. In this case, what it tries to insert is <podCIDR of capital> via < capital's nodeIP>. The error message is generated from here.
https://github.com/cilium/cilium/blob/043ff5b8cbc59684885a2f60094aa420b93f7fe1/pkg/datapath/linux/node.go#L222-L226
I think there's a bug in the --set autoDirectNodeRoutes=true implementation. Basically, what it does is do ip route get <capital's nodeIP> and check the next hop. If there's a next hop, it fails. However, this doesn't take the onlink route into account.

That was a good hint (I'll have to see if it creates routes), but the error message goes away when adding onlink routes to the other two nodes:
ip route                                                                                ─╯
default via <IP_ADDRESS> dev enp9s0 proto static onlink
<IP_ADDRESS>/24 via <IP_ADDRESS> dev internal
<IP_ADDRESS>/8 dev internal proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/24 via <IP_ADDRESS> dev cilium_host src <IP_ADDRESS>
<IP_ADDRESS> dev cilium_host scope link
<IP_ADDRESS>/24 via <IP_ADDRESS> dev internal
<IP_ADDRESS> dev internal scope link
<IP_ADDRESS> dev internal scope link
<IP_ADDRESS>/29 dev external proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS>/16 dev external proto kernel scope link src <IP_ADDRESS>

I think you did the right workaround. Now <IP_ADDRESS> and <IP_ADDRESS> are in the link scope, so now the check I mentioned above succeeds because the NodeIPs of other nodes are L2 reachable. That's why Cilium added
<IP_ADDRESS>/24 via <IP_ADDRESS> dev internal
<IP_ADDRESS>/24 via <IP_ADDRESS> dev internal

For the moment, I recommend you go with this workaround. I can fix this issue.

Thanks for the quick response. Indeed, this workaround works (most other things on the main network are using ipv6, so are unaffected by any of this -- monitoring/ssh/etc), from what I can tell. I'm very curious how it is working, so I'll probably be breaking out tcpdump in the near future just to understand what is really going on.

I can work for modifying Cilium to take onlink into account.

Really appreciate this and all the hard work that has gone into this project.  I'm wondering how your external network forward the traffic to the right node without knowing PodCIDR => NodeIP mapping.

The pods were previously reachable after adding the manual L2 routes. I had a script run on boot that called cilium status on the other two nodes to get the <IP_ADDRESS>/8 gateway for that node. They're all on the same L2 network, so it just works™. The only issue I had was contacting other nodes ips (aka, the kubeapi server), the local one was fine. I worked around that by creating a node-local policy in cilium.
Once I added the onlink route to the other nodes's "management" ip (which is public fwiw, the 65.x ips you were asking about) add attached it the the internal VLAN, traffic going between nodes moved off of the 'real' physical network and into the VLAN. Linux appears to be fine with this and it will happily respond on the VLAN with the 65.x ips. So, full connectivity is now had, without the node-local policy. Cilium sees this as a completed route and now creates the "appropriate" routes without my script.
The bug (I think its a bug) is that cilium didn't see that it was on a VLAN and seemed to only see the physical NIC, thus it thought there had to be a direct route or something and didn't create the routes. If it just blindly created the routes, like my script did, it would have been fine. That's what led me to report this in the first place.
FWIW, this is the script

Might be worth showing the network topology a bit:
  |--------internet------|-------- [ssh/management/etc]
  |           |          |
  |--external-VLAN-------|-------- [load balancer : external ip pool : MetalLB]
  |           |          |
  |--internal-VLAN-------|-------- [workers]
  |           |          |
Node1       Node2      Node3

There's only a single physical NIC, but several networks.

For anyone on Hetzner that wants to use this... I ended up doing some crazy shenanigans. I'm using dedicated servers, so each server has the following systemd:
[Unit]
Description=Special Network Configuration
Before=k3s.service
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/after-reboot
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target
RequiredBy=k3s.service

Where /usr/local/bin/after-reboot is a php script that I never bothered converting to bash:
$configs = [
    [
        'subnet' => 'VNET/29',
        'gateway' => 'VNET_GW',
        'device' => 'external',
        'table' => 'vswitch',
        'mode' => '',
    ],
    [
        'mode' => '-6',
        'subnet' => 'VNET_6/64',
        'gateway' => 'VNET_GW_6',
        'device' => 'external',
        'table' => 'vswitch',
    ]
];

$remove = [
    [
        'mode' => '',
        'ip' => 'INTERNAL_IP/16',
        'device' => 'external'
    ]
];

function echoit($command)
{
    echo $command . PHP_EOL;
    passthru($command);
}

function scopeit(string $route, string $ip): void
{
    global $fullTable;
    if (!str_contains($fullTable, "default via $route")) {
        echoit("ip route add $ip dev internal scope link");
    }
}

foreach ($remove as ['mode' => $mode, 'device' => $device, 'ip' => $ip]) {
    echoit("ip $mode addr del $ip dev $device");
}

$fullTable = trim(shell_exec("ip route show"));
foreach ($configs as ['mode' => $mode, 'subnet' => $subnet, 'device' => $device, 'table' => $table, 'gateway' => $gateway]) {
    if (!(str_contains($fullTable, "$subnet dev external"))) {
        echoit("ip $mode rule add from $subnet lookup $table");
        #echoit("ip $mode rule add to $subnet lookup $table");
        echoit("ip $mode route add $gateway dev $device table $table proto static scope link");
        echoit("ip $mode route add default via $gateway dev $device table $table");
    }
}

Basically, we remove the internal ip address, add the subnet to a lookup table, set the gateway, then add the external ip addresses.
This needs to happen after we have already set the internal ip address via netplan to bring the network up properly (yes, I reported this as a bug to the appropriate mailing list but was told it "wasn't a bug").


Just never save the settings

Summary of the Pull Request
This is more trouble than it's worth. We had code before to re-serialize settings when they changed, to try and gracefully migrate settings from old schemas to new ones. This is good in theory, but with #754 coming soon, this is going to become a minefield. In the future we'll just always be providing a base schema that's reasonable, so this won't matter so much. Keys that users have that aren't understood will just be ignored, and that's fine.
Related Issues

#2389
#754

PR Checklist

[x] Related to #754.
[x] I've discussed this with core contributors already.

Validation Steps Performed
I tried changing "acrylicOpacity" to 0.9. When re-serialized, 0.9 becomes 0.8999grabage. This would have caused a re-format before, but no longer does :)

This actually causes issues in that the GUID if not specified is not saved.


INTEL MKL: Enhance MkL BatchNorm ops with primitive reuse

Enable MKL BatchNorm ops with primitive reuse, to improve
(1) model training and
(2) inference of small batch size
by minimizing primitive creation time.
************ Notes *******************
Please review and merge this PR first
https://github.com/tensorflow/tensorflow/pull/19399

Close temporarily - pending conv_bwd PR

mkl_conv_ops.cc has been reverted to avoid any review confusion.
The new version of mkl_conv_ops.cc is contained in PR #19399.
Thanks

Pending on https://github.com/tensorflow/tensorflow/pull/19754

Reopen since PR #19399 has been merged

Yes, i have already singed CLA, and should be ok to contribute.

Hi,
I am the PR submitter and confirm that I am OK with all the changes made by yiqianglee.
Thanks,
GZ

@gzmkl I think many of my comments for PR 19403 would apply to this as well, please modify accordingly.

Plan to apply  PR 19403 comments on this PR too.

Latest code change based on PR 19403 code review suggestions.
Summary:
(1) Change signature of Execute (...) so that input parameters are declared as "const" while output parameter as "non-const".
(2) In many places, remove unnecessary static_cast and const_cast to simplify the code.
(3) Back-out code in SetOp() method (mkl_util.h) - using "emplace" causes unit test failures of ops/nn_grad_test.py.
(4) Minor changes in some comment statements to make descriptions more accurate.
BTW, related code review suggestions from PR 19399 & 19400 have also been reflected in this PR.

@gzmkl Thanks for the update. Let's try to get PR 19403 merged first before we push the remaining PRs. Running tests for it again now.

@gzmkl resolved conflict

Hi Rasmus,
Please choose "master" version to address the following conflict in mkl_util.h
<<<<<<< primreuse_batch_norm
#include

master

Line of "#include " seems to be duplicated.

Please take the branch code with the following conflict
<<<<<<< primreuse_batch_norm
#include "tensorflow/core/platform/cpu_info.h"                          // Keep this line

master

Thanks!


AutofillGroup control

when creating an authentication page, my browser never asks me if it can save the password for me.
There is an HTML property for TextField: autocomplete="username" and autocomplete="current-password" that appears to turn this feature on in browsers.  Can we add a property in Textfield to add this to the final HTML? (https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete).  and here is a stackoverflow answer for flutter: https://stackoverflow.com/questions/67448771/flutter-autofill-login

Good suggestion!
It requires implementing of AutofillGroup widget.

Any chance of getting this looked at for 0.9.0?

Sure!


Why loss is nan in training

Hi, I was trying to train this model but the loss was nan. Do you know where is wrong?

I found the bug is in encode function. When 'matched ' is all zero, the encoded box coords will become -inf or nan

What is your batch size?

Thank you for relying. I solved the problem. The nan is caused by the division operation '/'.

@yijingru hi could you pin point the line of code that cause the problem? I'm experiencing the same, thanks a lot!

@tianyu-tristan Hi, I think it's caused by the version of python? I just modify several '/ 'operations like in voc0702.py, when normalize the groundtruth bounding box, I changed cur_pt/width to float(cur_pt) / width so that the coordinates will not be 0.

@yijingru thanks, i see what you mean. I may have messed up somewhere else since I'm on python3. thanks anyway!

@yijingru divsion '/' where in multibox loss??/

How could you figure it out, I met the same problem using all default values. I mean, do I need to change batch_size or learning rate?

can you give me some advice?  Thank you.

How could you figure it out, I met the same problem using all default values. I mean, do I need to change batch_size or learning rate?

can you give me some advice? Thank you.

I set batch_size 32 and learning rate 4e-3, you could try it.

in voc0712.py change code as
cur_pt = cur_pt / width if i % 2 == 0 else cur_pt / height
==>
cur_pt = 1.0 * cur_pt / width if i % 2 == 0 else 1.0 * cur_pt / height

@yijingru thanks, i see what you mean. I may have messed up somewhere else since I'm on python3. thanks anyway!

@tianyu-tristan Did you find out what was the fix to the problem? I am trying this out on a different dataset, and I am encountering this problem. I am using Python 3+, so division shouldn't be the issue.


Naming unification

Check that:

we use same flags for all commands
name command go files accordingly (e.g. deploy/cmd.go should be named deploy/deploy.go)
normalise help text e.g.

ArgsUsage: "<path to monaco project folder to convert>",
ArgsUsage: "[working directory]",

remove v2 from package names. v2 is default version now

the explanation of flags of the output of running monaco download are incorrect
OPTIONS:
   --verbose, -v                           (default: false)
   --environments value, -e value          Yaml file containing environment to deploy to
   --specific-environment value, -s value  Specific environment (from list) to deploy to
   --downloadSpecificAPI value, -p value   Comma separated list of API's to download
   --help, -h                              show help (default: false)

There is actually a difference between arguments in [] and <>. Arguments
in <> are required whereas [] are optional. I have no idea how we could make
this clearer to the end user.

flags unified with 2.0 commands


Redirect URI

Hello, I am new to Electron. I wanted to know how to continue to another file after authenticating.
Currently after the authentication, the window just closes. Please help.
Thank you in advance!

Hi, welcome to Electron!
If I understand your question right, you should focus on this part of the code in the README
  myApiOauth.getAccessToken(options)
    .then(token => {
      // use your token.access_token

      myApiOauth.refreshToken(token.refresh_token)
        .then(newToken => {
          //use your new token
        });
    });

The window closes because the OAuth either succeeded or failed. It's up to you to decide what to do in your app when the window closes. The way you do that is with ES6 Promises. Please be sure you understand ES6 promises.
Here's an example from my app. I have this code within a function called googleDriveOauth2().
export function googleDriveOauth2() {
  // ... code to setup config and windowParams...

  const myApiOauth = electronOauth2(config, windowParams);

  return new Promise((resolve, reject) => {
    myApiOauth.getAccessToken(options)
      .then((token) => {
        log.info(`Response from Google Drive is`, token);
        resolve({
          accessToken: token.access_token,
          refreshToken: token.refresh_token,
        });
      })
      .catch((error) => {
        log.error(`Couldn't get Google Drive token: ${error}`);
        reject(error);
      });
  });
}

Then in the calling code...
export function listenConnectGoogleDrive() {
  ipcMain.on('start-connect-google-drive', (event) => {
    log.info(`Main received start-connect-google-drive`);
    googleDriveOauth2()
      .then((tokens) => {
        log.info(`Google Drive IPC - Main succeeded on start-connect-google-drive`);
        event.sender.send(
          'finish-connect-google-drive',
          { success: true, tokens },
        );
      })
      .catch((error) => {
        log.error(`Google Drive IPC - Main failed on start-connect-google-drive`);
        log.info(error);

        let polishedErrorMessage;

        if (error === 'OAUTH_APP_ACCESS_DENIED') {
          polishedErrorMessage = `You don't have permissions to use the Google Drive connector. :(`;
        } else if (error.message === 'window was closed by user') {
          /**
           * The user closed the window instead of signing in
           * Rewrite ugly error from electron-oauth2
           * https://github.com/mawie81/electron-oauth2/blob/master/index.js#L54
           */
          polishedErrorMessage = 'The sign in window was closed.';
        } else {
          // Something else unknown happened
          polishedErrorMessage = error.message;
        }

        /**
         * NOTE: We have to send an errorMessage via IPC as a string, not an
         * Error object. We'll reconstruct an Error object on the other side
         * (see code below).
         */
        event.sender.send(
          'finish-connect-google-drive',
          { success: false, errorMessage: polishedErrorMessage },
        );
      });
  });
}

You can see that I use Electron's IPC to trigger the OAuth, and when the Promise returns from electron-oauth2, I send a message back to the Electron renderer process. Please also be sure you understand the difference between the Electron main and renderer processes.


Improvements on the timewarp doc

Start of a process to review and improve the code documentation.

infra/Pos/Util/TimeWarp.hs

Hi there, I requested a review in dec and you reply now with aborted? can you please explain?


⚠ AlphaRatio has degraded performance

In 6e34bb6, AlphaRatio ($AR) experienced degraded performance:

HTTP code: 200
Response time: 6320 ms

Resolved: AlphaRatio performance has improved in 74cb85d.


TypeError: str.toLowerCase is not a function

Got this error
$ bos open-balanced-channel --recover

err:
  - 400
  - FailedToParseChainAddressToRecover
  -
    err:
      message: str.toLowerCase is not a function
      stack:
        - TypeError: str.toLowerCase is not a function
        -     at __decode (/home/ben/.nvm/versions/node/v16.15.0/lib/node_modules/balanceofsatoshis/node_modules/bech32/dist/index.js:116:29)
        -     at Object.decode (/home/ben/.nvm/versions/node/v16.15.0/lib/node_modules/balanceofsatoshis/node_modules/bech32/dist/index.js:155:21)
        -     at fromBech32 (/home/ben/.nvm/versions/node/v16.15.0/lib/node_modules/balanceofsatoshis/node_modules/bitcoinjs-lib/src/address.js:59:31)

It requires the address with funds you want to recover
You can also just use the refund tx that is displayed at the start of the flow

Or you could try the new open group channel, it doesn't need a refund tx


Not returning full list of followed artists.

I wanted to use Zotify to dump out a list of artists, albums and the corresponding album urls for all artists i follow.
however it only seems to be returning 24 of my followed artists?

i have just stuck a print statement in the get_artist_albums function

Same issue here, although it stops at 30 for me. No rhyme or reason (at first I thought it was picking the most recently followed, but nope - all over the place with those 30.) Will take a look through the code and functions later to see if anything jumps out.


Elements with and ng-show directive appears briefly on view loading even if expression is false

Elements with and ng-show directive appears briefly on view loading even if expression is false.
Happens both on ionic view and on a build.phonegap.com built packge.
Ionic: 1.0.1
Devices: iPhone 5, iPad Air
Example on
http://codepen.io/anon/pen/yNGZGb

Greetings @carlobonamico!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Hi @carlobonamico, you might have success using ng-if instead of ng-hide / ng-show where possible.
Your problem appears to be similar to something I experienced in the past: https://github.com/driftyco/ionic/issues/3495

This sounds exactly the same as #3495
Closing this as it has already been talked about.


Figure out metrics/run them

[ ] num sub trees
[ ] amount of captured sub trees (use paths of dag), find similarity metric, possibly sub tree recreation

For graph similarity, likely need to add more sim nodes that are standardized for #90


Example in documentation is not correct

Description
field ".spec.version" does not exist in httpendpoint declaration

Thanks for your contribution!


Used primary value on object field

I initiated an dumb modfication to use primary value of the object attribute instead of the object itself

Sorry for the delay in getting back to you about this. I just want to check before I review that I properly understand what you're after here - is your use case that you'd like to be able to avoid defining both an ID field and a field for a relation on your models?
Can you please show me some simple examples of your mapping?

As mentionned in #23, I have experienced cases where I have a mapped class ClassA having a one to one assocation with a mapped class ClassB. Imagine it like this:
/**
 * @table TableA
 */
class ClassA {
...
/**
 * @has.one.of ClassB
 * @has.one.on b
 */
protected function getB()
{
...
}

protected function setB(ClassB $b)
{
...
}
}

/**
 * @table TableB
 */
class ClassB {
...
}

In this situation, if I wa


Make thumb up/down in display question page work

Pushed the PR. this is how it looks:

And for unsigned user it looks like:

I love the new like/dislike buttons.