drivers: eeprom: implement driver st25dv

Based on #35842 I have created this new PR to get an eeprom driver for the st25dv into Zephyr.
Tasks done in this PR:

Copied code from original PR
Implemented (some) specific features of the st25dv, including user area configuration, UUID, IC rev / ref read, RF protection configuration
Updated the code to match current Zephyr version
Implemented a shield X-NUCLEO-NFC04A1 that has 3 LEDs and a st25dv chip on it
Wrote a sample project that uses both the EEPROM and the LEDs on the X-NUCLEO-NFC04A1 shield
Created a test project using Twister for st25dv

Copied code from original PR

Then please make sure your commits reflect that (Co-Authored-By), as well as copyright / license headers in the files which are copied/adapted from original PR.

Ideally, the test project for the eeprom_st25dv would depends on eeprom driver, but the issue is that this capability is linked to the presence of the shield, and not the board. I have started a discussion on Discord to know how I can specify that the shield is required for the test, without having to add eeprom capability to the nucleo board (which it does not have). If anyone here are an opinion / idea / indication, don't hesitate.

@henrikbrixandersen Sorry I did not knew about MFD. I knew when I started that ther was no NFC API in upstream and that the issue of building it was still open since 2018. The latest comments on the NFC issue happened only 2 days ago, which is after I started working on this driver.
The NFC API proposal seem very complete and contain a lot of things I wasn't planning on implementing (like NDEF, data exchange...). Features like memory area configuration and RF access protection configuration on the other side does not seem to be included. I'm not very familiar with NFC and don't really know if these features I need are standard things for NFC / EEPROM chips or specific to the ST25DV so I don't know if things like these should be added to NFC API (I guess not).
Do you suggest I should close this PR and just wait for the experimental NFC api to be included ? As I said there seem to be a lot in this driver proposal that I don't have an am not sure how to implement anyway...

@henrikbrixandersen Sorry I did not knew about MFD. I knew when I started that ther was no NFC API in upstream and that the issue of building it was still open since 2018. The latest comments on the NFC issue happened only 2 days ago, which is after I started working on this driver.
The NFC API proposal seem very complete and contain a lot of things I wasn't planning on implementing (like NDEF, data exchange...). Features like memory area configuration and RF access protection configuration on the other side does not seem to be included. I'm not very familiar with NFC and don't really know if these features I need are standard things for NFC / EEPROM chips or specific to the ST25DV so I don't know if things like these should be added to NFC API (I guess not).
Do you suggest I should close this PR and just wait for the experimental NFC api to be included ? As I said there seem to be a lot in this driver proposal that I don't have an am not sure how to implement anyway...

Another option could be to work with the authors of the proposed NFC API to ensure it will meet the requirements for implementing an ST25DV NFC driver. You could convert this PR to draft mode or close it while working on this.

@henrikbrixandersen @nono313 IMHO, NFC communication represents 10% of features that EEPROM offers.
On the other hand, that EEPROM offers the ability to set permissions on data part for NFC communication and a great feature (purely EEPROM-oriented) could be partitioning with NFC flags permission:
`&st25dv {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
interface_loader_partition: partition@0 {
	label = "interface_loader";
	reg = <0x00000000 0x00000040>;
	nfc_read_only;
};
device_data_partition: partition@40 {
	label = "device_data";
	reg = <0x00000040 DT_SIZE_K(1)>;
	nfc_read_write;
};

};
`
Do you think it is an interesting feature to add?

Do you think it is an interesting feature to add?

Not sure exactly what you are suggesting here, but my earlier comment still stands: a separate API is needed for NFC support. Driver-specific API extensions to an EEPROM driver for adding NFC is too much of a hack for me to accept it.


Bump dependencies to reduce number of vulnerabilities

The current plan is to bump dependencies at least to the latest patch version and check the results on the number of vulnerabilities. Next steps would be minor version bumps and manual patches. This should be done for all components in the image containing critical vulnerabilities, not just the main product, but also other dependencies it brings in e.g. things like Phoenix and hbase-operator-tools in the Hbase image.

Current state:
This branch contains a few changes:

Use UBI 9 as base image
Build Phoenix 5.2 and hbase-operator-tools from source
Use Hadoop 3.3.6 in the Hive image
Build Hive with bumped dependencies

I did not test the products yet, I just tried building the images with different approaches and checked the effects on the detected vulnerabilities. I created a 3.1.3-updated-dependencies branch in SecObserve for Hive and a 2.4.17-hardened branch for Hbase with the scan results.
This is currently work in progress and I did not commit the modified Hive source.
What could work to build Hive though:
Clone the Hive source code into ./hive_src/apache-hive-3.1.3-src, cd standalone-metastore, bump dependencies with mvn versions:update-properties -DallowMajorUpdates=false -DallowMinorUpdates=false. Then build the Hive image with bake.

Closing this because: UBI9 switch and building Phoenix from source was part of our vulnerability hackathon, bumping dependencies will likely be done on demand instead of just bumping all dependencies by default.
Scanning images manually can now also be done via https://github.com/stackabletech/stack_scanner/actions/workflows/scan_single_image.yml, this action also automatically reports findings to SecObserve.


[bug] unable to parse inline JSON TAURI_CONFIG env var: unknown field readTextFile,

Describe the bug
error: unable to parse inline JSON TAURI_CONFIG env var: unknown field readTextFile, expected one of scope, all, readFile, writeFile, readDir, copyFile, createDir, removeDir, removeFile, renameFile at line 1 column 960
--> src/main.rs:13:10
|
13 |     .run(tauri::generate_context!())
|          ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this error originates in the macro tauri::generate_context (in Nightly builds, run with -Z macro-backtrace for more info)
I am seeing this error when I am trying to run tauri dev. I am using the https://github.com/tauri-apps/vue-cli-plugin-tauri package, and am not sure yet if the problem is in there. I didn't encounter this problem until I implemented both the SQL and Log plugins, and added the following into my Cargo.toml file:
[patch.crates-io]
tauri = { git = "https://github.com/tauri-apps/tauri", branch = "next" }

I have gone through my tauri.conf.json file and everything looks right:
https://gist.github.com/justinwerner/eb7b608c3eacea504002d26f7bef2c86
I am just really new to Tauri and any help would be appreciated.
Thanks so much for anything!
Reproduction
No response
Expected behavior
No response
Platform and versions
Operating System - Ubuntu, version 21.10 X64

Node.js environment
  Node.js - 16.13.1
  @tauri-apps/cli - 1.0.0-beta.10
  @tauri-apps/api - 1.0.0-beta.8

Global packages
  npm - 8.1.2
  yarn - 1.22.17

Rust environment
  rustc - 1.58.1
  cargo - 1.58.0

App directory structure
/public
/node_modules
/tests
/src
/.git
/src-tauri

App
  tauri.rs - 1.0.0-beta.8
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
  distDir - Set automatically by Vue CLI plugin
  devPath - Set automatically by Vue CLI plugin
  framework - Vue.js (Vue CLI)
  bundler - Webpack

Done in 3.40s.

Stack trace
error: unable to parse inline JSON TAURI_CONFIG env var: unknown field `readTextFile`, expected one of `scope`, `all`, `readFile`, `writeFile`, `readDir`, `copyFile`, `createDir`, `removeDir`, `removeFile`, `renameFile` at line 1 column 960
  --> src/main.rs:13:10
   |
13 |     .run(tauri::generate_context!())
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `tauri::generate_context` (in Nightly builds, run with -Z macro-backtrace for more info)

Additional context
No response

To use the tauri dependency from git you also need to use the latest CLI.
cargo install --git https://github.com/tauri-apps/tauri/
# use `cargo tauri` instead of `yarn tauri`
cargo tauri dev
cargo tauri build

Also remove the readTextFile from tauri.conf.json. It was replaced by readFile. Documentation will be updated next week.


emmet not found on vscode

Does this issue occur when all extensions are disabled?: No

VS Code Version:1.59
OS Version: windows 10

Steps to Reproduce:

shows unknown configuration for emmet
emmet not working and not found ...

In your VS Code user setting, add this line,
emmet.includeLanguages": { "javascript": "html" }

In your VS Code user setting, add this line,
emmet.includeLanguages": { "javascript": "html" }

i have added it and does not fix the issue..
the issue was anything related emmet in vscode does not working and vscode shows unknown configuration setting for anything related emmet..
How to fix the issue?

emmet folder is missing in my vscode extensions..

@Salaimuniselvam For your information Emmet is not and extension. You can probably try reinstalling Vscode.

@Salaimuniselvam For your information Emmet is not and extension. You can probably try reinstalling Vscode.

i know that and i tried reinstalling and it does not work for me...

emmet even not found on settings in vscode..

@Salaimuniselvam For your information Emmet is not and extension. You can probably try reinstalling Vscode.

i know that and i tried reinstalling and it does not work for me...
anything related emmet shows unknown configuration settings in vscode... why.?

Did you try resetting VSCode completely? Also which language do you use frequently?

@Salaimuniselvam For your information Emmet is not and extension. You can probably try reinstalling Vscode.

i know that and i tried reinstalling and it does not work for me...
anything related emmet shows unknown configuration settings in vscode... why.?

Did you try resetting VSCode completely? Also which language do you use frequently?

i m using javascript in meteorjs framework

.

Did you try resetting VSCode completely? Also which language do you use frequently?

I fixed the issue by resetting completely..
I deleted the code folder in appdata after uninstalling vscode and reinstalled it..
now the problem is fixed..
before you mentioning .. i didn't know how to reset completely...
Thank you bro...

.

Did you try resetting VSCode completely? Also which language do you use frequently?

I fixed the issue by resetting completely..
I deleted the code folder in appdata after uninstalling vscode and reinstalled it..
now the problem is fixed..
before you mentioning .. i didn't know how to reset completely...
Thank you bro...

Indeed that worked, thank you, here are the docs:
https://code.visualstudio.com/docs/setup/uninstall#_clean-uninstall

I completely deleted all files and uninstalled vs code and then reinstalled,  now its working fine

.

Did you try resetting VSCode completely? Also which language do you use frequently?

I fixed the issue by resetting completely.. I deleted the code folder in appdata after uninstalling vscode and reinstalled it.. now the problem is fixed.. before you mentioning .. i didn't know how to reset completely... Thank you bro...

I reset my vscode and also reinstall it but still the emmet option is not showing in my vscode.


[gdal] Move dependencies into separate features

Make gdal port more modular by moving dependencies into separate features. My main goal was to be able to use iconv without having to pull a lot of other dependencies like libpq.
Also update recommended-features feature to reflect upstream decisions (https://github.com/OSGeo/gdal/blob/master/cmake/helpers/CheckDependentLibraries.cmake).
Cc @dg0yt

All features are tested successfully in the following triplet:

x86-windows
x64-windows
x64-windows-static

@Osyotr Thanks for the contribution!
@dg0yt Thanks for the review!


Non-globally unique VirtualService name causes periodical connection drops on the ingress gateway

Describe the bug
Using the same .metadata.name for VirtualService in different namespaces, causes envoy listener to be added periodically and leads to disconnections (websocket in my case).
The interval of this event is irregular, in my environment, it ranged from a few seconds to half an hour.
To get an idea of the irregularity, here is an extract of the stackdriver logs from the example yaml in the steps to reproduce:
 [2018-08-15 04:46:50.819][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'
 [2018-08-15 04:46:56.405][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'
 [2018-08-15 04:59:19.424][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'
 [2018-08-15 05:00:19.427][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'
 [2018-08-15 05:10:19.414][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'
 [2018-08-15 05:11:19.408][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'
 [2018-08-15 05:34:19.421][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'
 [2018-08-15 05:35:19.417][24][info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443'

Expected behavior
Using the same VirtualService name in different namespace should not conflict, or there should be a clear warning / validation error when a conflict happens.
Steps to reproduce the bug

create a gateway
create 2 VirtualService with the same name, in different namespaces, each of them bound to the gateway with a different host name
the ingress gateway logs will contain [info][upstream] external/envoy/source/server/lds_api.cc:62] lds: add/update listener '<IP_ADDRESS>_443' at irregular intervals
whenever this message appears in the log, all active connections are closed by envoy

I couldn't confirm, but it seems that having some traffic is necessary for the issue to manifest; the issue seems to take longer (or even not happen) when the cluster is idle. I wasn't able to find a way to make the issue happen systematically, but it seems with enough requests (>1s), the problem would occur almost every minute, at the same second.
Example yaml to reproduce:
Note:  you'll need a proper TLS certificate and to update the domain names
---
  kind: Namespace
  apiVersion: v1
  metadata:
    name: ns1
    labels:
      istio-injection: enabled
  spec:
    finalizers:
    - kubernetes
---
  kind: Namespace
  apiVersion: v1
  metadata:
    name: ns2
    labels:
      istio-injection: enabled
  spec:
    finalizers:
    - kubernetes
---
  apiVersion: networking.istio.io/v1alpha3
  kind: Gateway
  metadata:
    namespace: ns1
    name: gateway
  spec:
    selector:
      istio: ingressgateway
    servers:
    - hosts:
      - '*'
      port:
        name: https
        number: 443
        protocol: HTTPS
      tls:
        mode: SIMPLE
        privateKey: /etc/istio/ingressgateway-certs/tls.key
        serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
---
  apiVersion: networking.istio.io/v1alpha3
  kind: VirtualService
  metadata:
    namespace: ns1
    name: buggy
  spec:
    gateways:
    - gateway.ns1.svc.cluster.local
    hosts:
    - 'ns1.example.com'
    http:
    - match:
      - uri:
          prefix: /v1
      route:
      - destination:
          host: dummy
          port:
            number: 8080
---
  apiVersion: networking.istio.io/v1alpha3
  kind: VirtualService
  metadata:
    namespace: ns2
    name: buggy
  spec:
    gateways:
    - gateway.ns1.svc.cluster.local
    hosts:
    - 'ns2.example.com'
    http:
    - match:
      - uri:
          prefix: /v2
      route:
      - destination:
          host: dummy.ns1.svc.cluster.local
          port:
            number: 8080
---
  kind: Service
  apiVersion: v1
  metadata:
    namespace: ns1
    name: dummy
  spec:
    selector:
      app: dummy
    ports:
      - protocol: TCP
        port: 8080
        targetPort: 8080
        name: http

Version
Istio 0.8 / GKE 1.9.7
istioctl version
Version: 0.8.0
GitRevision: 6f9f420f0c7119ff4fa6a1966a6f6d89b1b4db84
User: root@48d5ddfd72da
Hub: docker.io/istio
GolangVersion: go1.10.1
BuildStatus: Clean

kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9+", GitVersion:"v1.9.7-gke.5", GitCommit:"9b635efce81582e1da13b35a7aa539c0ccb32987", GitTreeState:"clean", BuildDate:"2018-08-02T23:42:40Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}

Is Istio Auth enabled or not?
No
Environment
GKE 1.9.7 / Istio 0.8

I also forgot to mention clearly, but, changing the name of one of the VirtualService seems to solve the issue

@costinm @andraxylia


MAINT: adapt to a scipy-doctests change

Allow the filter-warnings context manager to not receive a (doc)test.
This is useful to filter out DeprecationWarnings which are emitted during test discovery. Which is needed, e.g. for numpy 1/2 transition where things deprecated in numpy 2 emit warnings on import.

While at it, fix an error example in the interpolate tutorial, which started failing with the update in scipy-doctest.


Application Starter

##Application launcher -
The script will automatically run the application specified on computer startup. -
Instructions

Create a new folder for your script and file/folder name should be appropriate.
Create a README.md in your folder for program Instructions
add requirements.txt if needed

Programming Language

[x] Python

Happy Coding

@pawangeek  If possible i you could assign this too me. Its a interesting automation project.

assign me and explain a bit

assign me and explain a bit

Alright, So basically the script should run at startup. The script will then run any 2 applications, and will open the browser of choice with any website(example netflix).

what kind of applications @m4dummies

what kind of applications @m4dummies

So what i mean is that, once your computer starts all your most used or favourite applications should launch. For instance, discord and word can run. Also a web browser with lets say your favourite song playlist on youtube.

TBH not much useful. We have diff moods and work on every single day

Still, if you wanna work I can assign it to you

@pawangeek
can u assign it to me?

@pawangeek  thank you

Hi @pawangeek , I did a little research and as you said it doesn't make any sense making a script that starts applications. Instead can i make a script that opens the browser with any url or your favourite song playlist?


Share "inputs" variables across GLOBAL tasks.json and launch.json

Currently, inputs defined in global tasks cannot be used in worskpace tasks.
Same goes for launch configs defined gobally using settings.json (as described in https://github.com/Microsoft/vscode/issues/18401)
Reusing inputs would allow the user to reduce copy-pasting and improve maintainability of inputs.
Same logic as https://github.com/Microsoft/vscode/issues/72579 to reuse inputs between tasks/launch.json
Would also aid https://github.com/microsoft/vscode/issues/53557 in potentially reducing even more repeated code for tasks/launch.json

Probably all should be considered together for designing future improvements on inputs/tasks/launch

Use case
For example, I have a set of common paths that I use in other tasks as current directory.
For now I have to copy paste this input in the local tasks file where I want to use it...
    "inputs": [
        // pick cd path (cannot replace vscode variables)
        {
            "id": "path-explorer", "type": "pickString",
            "description": "Pick an path...",
            "options": [
                {"label": "_workspace","value": "${workspaceFolder}"},
                {"label": "__user",     "value": "D:\\diego.mateos\\REPOS\\__user"},
                {"label": "win_user",   "value": "C:\\Users\\diego.mateos"},
            ],
            "default": "${workspaceFolder}"
        },

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Generated insert from Data Transfer/Export resultset ignores "Data rows per statement"

When exporting a resultset and defining SQL insert as the transfer type, in the Settings (third screen) there's an Exporter settings, in which one of the parameters is Data rows per statement, which, no matter the value, always generates one statement per row. I would expect that if set the value to >1, insert statements would have >1 rows worth of data per statement.

What is your database?
Most databases just doesn't support multi-row syntax - this option is ignored for them (perhaps we should disable it in UI for such databases).

The target database is MariaDB which does allow multi-row inserts.

Then I can't reproduce this. This is what data export (SQL format) generates for my test MariDB server:
INSERT INTO sakila.actor (first_name,last_name,last_update,data_name,time_name,Column1) VALUES
('PENELOPE','GUINESS','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('NICK','WAHLBERG','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('ED','CHASE','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('JENNIFER','DAVIS','2006-02-15 07:34:38.000',NULL,NULL,NULL)
,('JOHNNY','LOLLOBRIGIDA','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('BETTE','NICHOLSON','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('GRACE','MOSTEL','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('MATTHEW','JOHANSSON','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('JOE','SWANK','2006-02-15 07:34:33.000',NULL,NULL,NULL)
,('CHRISTIAN','GABLE','2006-02-15 07:34:33.000',NULL,NULL,NULL)

Note: it is the configuration of source database.

@serge-rider When I read "Exporter settings" I expect the source to be irrelevant, or it's a misnomer of the window?


Plain text Client ID and Secret in gam folder

There is a .json file saved in the GAM folder that contains the Client ID and Client Secret for the service account. This seems quite dangerous and opens up that service account to have the credentials exfiltrated and used illicitly.
Thoughts?
My layman's idea of a solution:
These credentials should be encrypted and then decrypted by the gam executable after initial write so that you can't access that information without it being processed by the gam binary that saved them during enrollment.
If people are cycling the keys, there could be a way to pass the credentials through the gam binary so that they are also encrypted.

But the decryption would still be stored locally so what's the point?
GAM has always depended on the local device to be secured. You can handle that with your built in OS encryption.


instruction for installation "from source" are outdated

There is an installation from the source and he asks to move to a non-existing folder "CROWDEC"
cp ./cs-nginx-bouncer/nginx/access.lua /usr/local/lua/crowdec/access.lua

We don't provide "from source" installation instruction anymore.


Add files via upload

added notebook for Amazon A2I Fraud detector blog
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I am creating a new pull request and have incorporated all the existing comments.

closing this and creating a new one.


help/want：what mean "total number of batches"？

Batching
When batching is enabled, the producer accumulates and sends a batch of messages in a single request. The batch size is defined by the maximum number of messages and the maximum publish latency. Therefore, the backlog size represents the total number of batches instead of the total number of messages.
help/want：what mean "total number of batches"？the "total number" represents byte unit ? or in "backlog status" batches number ? or Number of batch packets to be sent in the future？？
thank you !

One batch means one send request, also means one entry in bookkeeper.

There may be multi messages in one batch


Add option to use notebook json contents instead of file string when creating a notebook.

When creating a new notebook with .NET Interactive, we get passed a json object to use for the initial file contents, but our code currently expects that notebooks are created from the raw file contents instead. This PR adds the ability to use those JSON contents instead, if available.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 19 (26.32%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.006%) to 42.352%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/contrib/notebook/browser/models/notebookInput.ts
4
11
36.36%

src/sql/workbench/services/notebook/browser/notebookServiceImpl.ts
1
8
12.5%

Files with Coverage Reduction
New Missed Lines
%

src/sql/workbench/services/notebook/browser/notebookServiceImpl.ts
1
31.93%

Totals

Change from base Build<PHONE_NUMBER>:
-0.006%

Covered Lines:
27572

Relevant Lines:
60852

💛  - Coveralls

@Charles-Gagnon there isn't a filed issue for this, but it's meant to fix issues with creating new DIB files from command palette. When you pick the default notebook language it currently isn't preserved when opening the notebook because DIB files don't store metadata in the underlying file. We have to reserialize the DIB file into a string because that's just how our code loads in notebooks, and when deserializing again into JSON the metadata is lost.


Repo sync for protected CLA branch

The pull request is created from master637472989056559968 to master to fix git push error for protected CLA branch

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

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


Default mode on fallback-input-type="color"

Is there a way to default to HEX on advanced colour picker.

looks like a stackoverflow question, vue swatches does not control the behaviour of the fallback input

Thanks. Another question. Can we have both HEX input and html5 colour picker as fallback? Something like this

No, It's not supported

Would be great to have a way to set HEX as default.

Closing this, since there is no way this library could change that


[Feature request]  according to RFC:4685

any plans for atom feeds (like #97 does for rss)?

Do you have any example of feeds that use it?

Wordpress does it http://old.blog.mro.name/feed/atom/ and I'm about adding it to e.g. https://l.mro.name/o/t/@Moggi/.

I added the feature in this commit: https://github.com/miniflux/miniflux/commit/cfb6ddfcea3e387a7141d4c65099d2f08bc1732b

wow, will check it out after xmas during 36c3. Thx so much!

Thx for adding it to #535 in cfb6ddfcea.
Would you mind lifting the restriction to mime-type text/html because there's more a browser can sensibly navigate than html - in my case https://l.mro.name/o/t/@Moggi/ it's actually xslt-rendered xml (atom to be precise).

The mime-type restriction is there because you can have multiple `reply links in a feed entry. From a end-user perspective it's better to open a HTML page in their browser instead of a XML document. I'm not sure if there is a way to guess if the linked XML document is rendered with XSLT without fetching it.
This scenario is described in this test case: https://github.com/miniflux/miniflux/blob/master/reader/atom/atom_10_test.go#L737-L761

indeed there can be more reply entries. But if there's just one discarding that, because it doesn't declare itself to be text/html is rather brute, don't you think?
If I may put forward a wish, please just use the first, no matter the type.

I'm beginning to see the issue - e.g. wordpress links both, a raw and a rendered comments feed. That's hard to guess right without adding complexity.
options:

just take the first text/html
just take the first
take em all (how to label them?)
rank + sort + take the winner

I noticed that I forgot the application/xhtml+xml mime type... Maybe, it can be done by order of preference: returns preferably the first link with text/html or application/xhtml+xml, and if nothing is found then return the first reply link regardless of the mime type.
I have hard time to find more examples in the wild. If you have any that would be appreciated.

actually wp may be what is out there in the wild in terms of volume.
In the end it's IMO a question of expectations – what does the publisher, what the reader expect. Miniflux, being a web-interface, can easily navigate to what the user-agent can display. So it may sensibly offer what the browser can display.
This will be graphical and textual browsers, so Firefox and lynx just to name one of each group.
Both can display html and the raw feed xml as a better-than-nothing fallback. The first group can even display xml with xslt like seen at https://l.mro.name/o/p/ (currently just , soon 'replies' also).
For my example it's a chicken-egg problem to support it and I'm even unsure if I shouldn't just fill both mime-types redundantly.
To cut a long story sort:

if there's something, show something (don't filter them all)
ideally show them all (short, arbitrarily numbered labels are ok to save space but be verbose e.g. in the hover/title/mouseover)

Closing. I think the actual implementation is good enough. There are not so many feeds that use this.


[HUDI-5823][RFC-65] RFC for Partition TTL Management

Change Logs
RFC-65  Partition TTL Management
Impact
None
Risk level (write none, low medium or high below)
Low
Documentation Update
None
Contributor's checklist

[x] Read through contributor's guide
[x] Change Logs and Impact were stated clearly
[x] Adequate tests were added if applicable
[ ] CI passed

@stream2000, could we also introduce record ttl management? Partition ttl management and record ttl management both need the ttl policy.

@stream2000, could we also introduce record ttl management? Partition ttl management and record ttl management both need the ttl policy.

@SteNicholas It will be nice to have record-level ttl management~ We can open another RFC for record-level TTL management and concentrate on Partition TTL Management in this RFC. We can also discuss more on how to make it easy to integrate other types of ttl policy in this RFC.

@stream2000, do you have any updates?

Partition TTL can cover most scenarios, will bring a lot of convenience.
I have a simple record level TTL idea. We configure a general TTL, update the query api to ensure that expired data can't not queried, and then delete the expired record when we do  compaction or clustering.

Can this feature be supported in advance? Especially hope for the next version after 0.14.

Can this feature be supported in advance? Especially hope for the next version after 0.14.

I hope so, too! Will work on this feature in the few weeks and push a POC code to my personal repo ASAP.

@nsivabalan @nbalajee @codope @SteNicholas would you please take another pass since the RFC have been simplified to make it more clear to implement.

Hi community, I have implemeted a poc version of partition lifecycle management in this PR: #9723. This PR provide a simple KEEP_BY_TIME strategy and can do the partition lifecycle management inline after commit. This POC implementation will help understand the design mentioned in this RFC. Hope for your review😄

Will version 1.0 support this feature? This feature is greatly needed.
@danny0405 @stream2000

For 1.0.0 and later hudi version which supports efficient completion time queries on the timeline(#9565), we can get partition's lastModifiedTime by scanning the timeline and get the last write commit for the partition. Also for efficiency, we can store the partitions' last modified time and current completion time in the replace commit metadata. The next time we need to calculate the partitions' last modified time, we can build incrementally from the replace commit metadata of the last ttl management.
@danny0405 Added new lastModifiedTime calculation method for 1.0.0 and later hudi version. We plan to implement the file listing based lastModifiedTime at first and implement the timeline-based lastModifiedTime calculation in a separate PR. This will help users with earlier hudi versions easy to pick the function to their code base.
I have addressed all comments according to online/offline discussions. If there is no other concern, we can move on this~

@geserdugarov Thanks very much for your review! I think the most important part of the design to be confirmed is whether we need to provide a feature-rich but complicated TTL policy in the first place or just implement a simple but extensible policy.
@geserdugarov @codope @nsivabalan @vinothchandar Hope for your opinion for this ~

Yes, you're right about the main difference in our ideas.

@danny0405 @geserdugarov Thanks for your review! I have addressed all comments, hope for your opinions.

@stream2000 Thank you for reply. As you mentioned, I've wrote all my ideas in a separate RFC to simplify details discussion: https://github.com/apache/hudi/pull/10248
@danny0405 @stream2000 Do you mind me asking for your comments?

@geserdugarov I'm gonna merge this one first, can you fire your suggestion chagne PR incrementally based on this one? And we can move the discussions there.

@geserdugarov I'm gonna merge this one first, can you fire your suggestion chagne PR incrementally based on this one? And we can move the discussions there.
@danny0405 Ok, I will work on it.


az error: unrecognized arguments: --disable-oidc-issuer

I get this error while running the command: az aks upgrade -n ClusterName -g ResourceGroupName --disable-oidc-issuer
Also getting the Same error when tried with update command instead of upgrade
Note: I have registered to EnableOIDCIssuerPreview feature flag on my subscription and Updated my AKS cluster with OIDC Issuer.
Now I'm trying to disable the OIDC Issuer on my AKS cluster and the disable command is not working.

Also I have already unregistered the feature flag EnableOIDCIssuerPreview using az feature unregister --name EnableOIDCIssuerPreview --namespace Microsoft.ContainerService

Document Details:
https://docs.microsoft.com/en-us/azure/aks/cluster-configuration#oidc-issuer-preview

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

ID: e1e42fdb-aa59-786b-ba0d-659f67db3cf3
Version Independent ID: cc199e1d-6737-5f52-f2a2-b6c0b603dbdc
Content: Cluster configuration in Azure Kubernetes Services (AKS) - Azure Kubernetes Service
Content Source: articles/aks/cluster-configuration.md
Service: container-service
GitHub Login: @palma21
Microsoft Alias: jpalma

@sundeeplella,
Thank you for your feedback. We will investigate and update the thread further.

@sundeeplella,
I have assigned the issue to the content author to investigate further and update the document as appropriate.
@palma21- We don't have steps/commands to use for disabling OIDC Issuer. can we get that added as the above use case don't work.

#reassign:MGoedtel

#reassign:schaffererin

Hi @sundeeplella, thank you for the feedback. I apologize for the delay in responding. Since this GitHub issue was raised, the doc has been updated and no longer includes information about OIDC. Therefore, no doc updates are necessary. There's a separate AKS article, Create an OIDC provider on AKS with OIDC issuer information, including a callout stating that "after enabling OIDC issuer on the cluster, it's not supported to disable it." I will now close this issue. Thank you again!
#please-close


docs: add an 'Announcing' section to PUBLISHING.md

I might be wrong, but I think talk.resin.io has been deprecated. @alexandrosm @craig-mulligan ?

@jviotti no we are reviving it to supplement gitter.

I see. Do you know if there is a way we can trigger this automatically,
maybe as part of the CI builds?
On Tue, Nov 01, 2016 at 09:51:41AM -0700, Craig Mulligan wrote:

@jviotti no we are reviving it to supplement gitter.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/resin-io/etcher/pull/814#issuecomment-257621326

--
Juan Cruz Viotti
Software Engineer

Lets get this merged, and see if we can sort out automatic announcements later on.
@lurch Do you mind wrapping the text to match the rest of the file?
diff --git a/docs/PUBLISHING.md b/docs/PUBLISHING.md
index 3c40781..3f8eaf8 100644
--- a/docs/PUBLISHING.md
+++ b/docs/PUBLISHING.md
@@ -75,7 +75,8 @@ Run the following command:
 Announcing
 ----------

-Post a message to https://talk.resin.io/c/etcher/annoucements announcing the new version of Etcher, and including the relevant section of the Changelog.
+Post a message to https://talk.resin.io/c/etcher/annoucements announcing the
+new version of Etcher, and including the relevant section of the Changelog.

 [aws-cli]: https://aws.amazon.com/cli
 [cygwin]: https://cygwin.com

@lurch Do you mind wrapping the text to match the rest of the file?

I could, but it might be easier you you to do that? (project maintainers have the power to edit PRs before merging)
As I made this change through the GitHub web interface, fixing it would involve adding another commit to this PR.

Regardless of this PR being merged, I guess https://talk.resin.io/c/etcher/annoucements should still be updated... ;-)

As I made this change through the GitHub web interface, fixing it would involve adding another commit to this PR.

That doesn't make a difference, because the maintainer who merges can squash your commits and change the message. I believe that @jviotti already does this with most PRs anyway to update the commit message for their format.

Fair enough - new commit added to this PR :)

Right, we have "Squash and merge" enabled for this repository, which allows mergers to edit the final commit message. This has been proven to be super useful to gracefully deal with contributors that are not familiar with our commit guidelines.

There you go: https://talk.resin.io/t/etcher-1-0-0-beta16-release/379

You linked to http://www.etcher.io instead of https://etcher.io/  ;-)

I copied this from the v1.0.0-beta.15 announcement. I fixed the latest
one, but looks like I don't have enough permissions to edit the old one.
/cc @imreh
On Tue, Nov 01, 2016 at 06:21:26PM -0700, Andrew Scheller wrote:

You linked to http://www.etcher.io instead of https://etcher.io/  ;-)
--
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub:
https://github.com/resin-io/etcher/pull/814#issuecomment-257746686

--
Juan Cruz Viotti
Software Engineer


Will TOC tags be supported in Markdown?

Or is there another solution?

What are TOC tags?
If it's not standard syntax in a popular markdown flavour, it probably won't be supported.

What are TOC tags?
If it's not standard syntax in a popular markdown flavour, it probably won't be supported.

If you'd like to modify how the markdown rendering happens you can use an external renderer that supports the flavour you prefer. See more at: https://docs.gitea.io/en-us/external-renderers/

If you'd like to modify how the markdown rendering happens you can use an external renderer that supports the flavour you prefer. See more at: https://docs.gitea.io/en-us/external-renderers/

An automatic ToC is already possible add the frontmatter:
---
gitea: none
include_toc: true
---

the gitea: tells gitea to not present the frontmatter in a table form.
Documentation for the frontmatter ToC was missed in its PR - and I've been too busy to sort it out.

An automatic ToC is already possible add the frontmatter:
---
gitea: none
include_toc: true
---

the gitea: tells gitea to not present the frontmatter in a table form.
Documentation for the frontmatter ToC was missed in its PR - and I've been too busy to sort it out.


FIX - Bug: useCharacterLimit doesn't work if adding a character before the overflow

Bug: useCharacterLimit doesn't work if adding a character before the overflow [#5096 ]

fixed useCharacterLimit(), instead of merging previous oveflow node it now merges next overflow node (fixed creating unnecessary overflow nodes)
updated useLexicalCharacterLimit.test.ts to support new method mergeNext() instead of mergePrevious()
updated CharacterLimit.spec.mjs to also support new overflow nodes merging

Thank you, it seems like some tests are not passing. I appreciate the fixes and I'm happy to merge them as soon as the CI passes but I also wanted to bring to your attention that we're planning to release a brand new version of the CharacterLimitPlugin in the upcoming weeks.

@zurfyx Hi! any news for the brand new CharacterLimitPlugin?
The gap between remaining characters and overflow nodes still happens.


Test Travis switch

(Hoping that I've finally configured Travis and GitHub
so that commits will trigger a build on travis-ci.com

Replaced by PR #738 which fixes the underlying SSLError issue,
with no other changes.

Replaced by PR #738 which fixes the underlying SSLError issue,
with no other changes.


Update Gemfile

PR's key points
Make it able to answer to security alerts

@danielgallegovico there's a security flaw in one gem of the repo that must be fixed asap


Add Driver Station POVs to 3d Field

Is your feature request related to a problem? Please describe.
no
Describe the solution you'd like
I found when right clicking on the 3d field, it gives you a list of the camera options (orbit, robot POV, and any cameras on the model).  Could there be another selection for driver POV behind the glass?
It could have all the selectors (Red 1 - Blue 3), but maybe an auto could be added also to read the DS info and get alliance and station data and select the right driver station.
Describe alternatives you've considered
none
Additional context
Like this:

Thanks for the suggestion, this is now implemented. There are options for each Driver Station and an "auto" option that uses the data from the log file.


Feature: show warning on unsupported node.js version

fixes #551

Code looks good! However I think it would be simpler (and less code) to use semver (https://github.com/npm/node-semver) to parse/compare versions. WDYT? Note that we already have it as dev dep, so we might want to "promote" is as a normal dep.

@marcopiraccini thank you for recommendation! Switched to semver and promoted to dep


Update localized Chinese language pack

ISSUE TYPE

Improvement Request

COMPONENT NAME

zh_CN.json

CLOUDSTACK VERSION

4.17.0

CONFIGURATION

OS / ENVIRONMENT

SUMMARY

STEPS TO REPRODUCE

Direct coverage "/public/locales/zh_CN.json"

EXPECTED RESULTS

ACTUAL RESULTS

@luwei1970 are you having the knowledge of Mandarin  to do this?

@luwei1970 can you please recreate your PR https://github.com/apache/cloudstack/pull/6573 using correct remote

As others advised, @luwei1970 pl submit a new PR - we rely on contributors for language translations.

@luwei1970 I looked at your old PR - looks like you're having issues with opening the Github PR, I've submitted your change on your behalf to assist you - can you review this https://github.com/apache/cloudstack/pull/6653
I'll close this issue instead


Constant random 0x1281 OpenGL errors in multiwindow app

I am trying to create multiwindow app. One for main interface, one for setting window, one for context menu window and so on. Some windows (especially context menu) should be able to be closed and reopen again when requested. Right after opening another window I get error from various objects trying to be drawn on screen inside window.on_draw method.
I made sure to initialize all resources related to the window after that window's constructor is called.
Error log
  self.text.draw()
  self._batch.draw_subset(self._vertex_lists)
File "...\pyglet\graphics\__init__.py", line 463, in draw_subset
  visit(group)
File "...\pyglet\graphics\__init__.py", line 448, in visit
  alist.draw(mode)
File "...\pyglet\graphics\vertexdomain.py", line 241, in draw
  self.domain.draw_subset(mode, self)
File "...\pyglet\graphics\vertexdomain.py", line 456, in draw_subset
  self.vao.bind()
File "...\pyglet\graphics\vertexarray.py", line 23, in bind
  glBindVertexArray(self._id)
File "...\pyglet\gl\lib.py", line 79, in errcheck
  raise GLException(f'(0x{error}): {msg}')
pyglet.gl.lib.GLException: (0x1282): Invalid operation. The specified operation is not allowed in the current state.

System Information
Platform
------------------------------------------------------------------------------
platform:  Windows-10-10.0.19045-SP0
release:   10
machine:   AMD64

Python
------------------------------------------------------------------------------
implementation: CPython
sys.version: 3.10.6 (tags/v3.10.6:9c7b4bd, Aug  1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
sys.maxint:<PHONE_NUMBER>854775807

pyglet
------------------------------------------------------------------------------
pyglet.version: 2.0.9
pyglet.compat_platform: win32
pyglet.options['audio'] = ('xaudio2', 'directsound', 'openal', 'pulse', 'silent')
pyglet.options['debug_font'] = False
pyglet.options['debug_gl'] = True
pyglet.options['debug_gl_trace'] = False
pyglet.options['debug_gl_trace_args'] = False
pyglet.options['debug_gl_shaders'] = False
pyglet.options['debug_graphics_batch'] = False
pyglet.options['debug_lib'] = False
pyglet.options['debug_media'] = False
pyglet.options['debug_texture'] = False
pyglet.options['debug_trace'] = False
pyglet.options['debug_trace_args'] = False
pyglet.options['debug_trace_depth'] = 1
pyglet.options['debug_trace_flush'] = True
pyglet.options['debug_win32'] = False
pyglet.options['debug_input'] = False
pyglet.options['debug_x11'] = False
pyglet.options['shadow_window'] = True
pyglet.options['vsync'] = None
pyglet.options['xsync'] = True
pyglet.options['xlib_fullscreen_override_redirect'] = False
pyglet.options['search_local_libs'] = True
pyglet.options['win32_gdi_font'] = False
pyglet.options['headless'] = False
pyglet.options['headless_device'] = 0
pyglet.options['win32_disable_shaping'] = False
pyglet.options['dw_legacy_naming'] = False
pyglet.options['win32_disable_xinput'] = False
pyglet.options['com_mta'] = False
pyglet.options['osx_alt_loop'] = False

pyglet.window
------------------------------------------------------------------------------
display: <pyglet.canvas.win32.Win32Display object at 0x000001B86F5D4C40>
screens[0]: Win32Screen(x=0, y=0, width=1920, height=1080)
config['double_buffer'] = 1
config['stereo'] = 0
config['buffer_size'] = 32
config['aux_buffers'] = 4
config['sample_buffers'] = 0
config['samples'] = 0
config['red_size'] = 8
config['green_size'] = 8
config['blue_size'] = 8
config['alpha_size'] = 0
config['depth_size'] = 24
config['stencil_size'] = 0
config['accum_red_size'] = 16
config['accum_green_size'] = 16
config['accum_blue_size'] = 16
config['accum_alpha_size'] = 16
config['major_version'] = 3
config['minor_version'] = 3
config['forward_compatible'] = None
config['opengl_api'] = 'gl'
config['debug'] = None
context: Win32ARBContext(id=1891646603520, share=Win32Context(id=1891653998896, share=None))

window.context._info
------------------------------------------------------------------------------
gl_info.get_version(): (3, 3)
gl_info.get_vendor(): NVIDIA Corporation
gl_info.get_renderer(): NVIDIA GeForce RTX 3060/PCIe/SSE2

pyglet.gl.glx_info
------------------------------------------------------------------------------
GLX not available.

pyglet.media
------------------------------------------------------------------------------
audio driver: <pyglet.media.drivers.xaudio2.adaptation.XAudio2Driver object at 0x000001B86F6144F0>

pyglet.media.ffmpeg
------------------------------------------------------------------------------
FFmpeg not available.

pyglet.media.drivers.openal
------------------------------------------------------------------------------
Library: <CDLL 'openal32', handle 10000000 at 0x1b875b097e0>
Version: 1.1
Extensions:
   ALC_ENUMERATE_ALL_EXT
   ALC_ENUMERATION_EXT
   ALC_EXT_CAPTURE
   ALC_EXT_EFX

pyglet.input.wintab
------------------------------------------------------------------------------
WinTab not available.

How To Reproduce
I was able to create minimal required code for reproducable result. Error could be risen up after 5-th or 10-th or 30-th call but it always arise in several seconds.
import pyglet
from pyglet.gui.widgets import PushButton

context_menu_width = 150
context_menu_item_height = 30
image = pyglet.image.create(context_menu_width, context_menu_item_height, pyglet.image.SolidColorImagePattern((200,200,200,255)))

class Button(PushButton):
    def __init__(self, name, y):
        super().__init__(0, y, image, image)
        self.text = pyglet.text.Label(name, batch=self._batch, group=self._bg_group)

    def draw(self):
        self._sprite.draw()
        self.text.draw()

class ContextMenuWindow(pyglet.window.Window):
    def __init__(window):
        super().__init__(width=context_menu_width, height=context_menu_item_height)

        window.widgets = [ Button("Item", 0) ]

    def on_draw(window):
        window.clear()
        for widget in window.widgets:
            widget.draw()

window = ContextMenuWindow()

def recreate_window(x):
    global window
    window.dispatch_pending_events()
    window.close()

    window = ContextMenuWindow()

class MainLoop(pyglet.app.EventLoop):
    def __init__(self):
        super().__init__()

    def on_window_close(self, window):
        pass

pyglet.app.event_loop = MainLoop()
pyglet.app.event_loop.clock.schedule_interval(recreate_window, 0.2)
pyglet.app.run()

OpenGL 3.3 is very picky about window creation with resources.
You will need to have both Windows created before you create any resources. Create both Windows, then make your labels and widgets after.
Closing a Window is typically not advised unless you are completely done with it, as then you will not be able to create a new window after a resource has been created. You should create the maximum number of Windows your application will need. You can then decide to hide and show them when necessary.
If you move to pyglet 1.5, the restrictions are more lenient in very old OpenGL versions, however you will have no shader support there.

switch_to() does not help in the case above.
Didn't know hiding a window was a thing, it works perfectly and definitely what I needed in case for context menu.
Also I have a case where I have a window and I want it to be resizable only when user is requested it (like, he changed it's status to resizable, resized it and locked it to unresizable again). Should I recreate my window or I can change it's status without recreation, what is recommended? Or should I create two identical windows except resizability, one is hidden by default and they share the same resources between each other?

@CORRUPTOR2037 to your last question, it seems by the docs location here (and you can try fiddling the Window object to verify) that changing this property after creating the window is not possible.
I'm not sure about the issue with avoiding to close and reopen windows, perhaps someone can elaborate on how this limitation comes into play as it's not familiar to me from using other mutli-window applications (they do create windows arbitrarily according to user interaction, I am not aware that they pre-create them to afford some maximum number of windows)

I'm not sure about the issue with avoiding to close and reopen windows, perhaps someone can elaborate a little more on what this general limitation precisely stems from?

It varies by drivers. For instance, with Intel drivers in Windows with OpenGL 3.3, when you generate a buffer, you cannot create a shared context after. In other words you need all windows created before you make anything, otherwise creating a Window later on will error out. AMD/NVIDIA seem to be fine with it depending on driver and config, but it's not guaranteed and in all situations. VAOs also cannot be shared between contexts.

Thanks, I can easily refactor my application to create its multiple windows on startup, but then if the user closes a window, which we can't prevent them from doing (or can we?) then it seems that the application is at a dead end if it needs to start it again and we're out of unused pre-created windows.
It's reasonable in my application that the user would close a window and proceed with the other ones, and then expect the same window as the one they have closed, to appear again at a later point.
It the memory cost of allocating many windows upon startup in any way negligible?
I had never realized this limitation as a desktop user before.

It seems that we can fake and avoid closing the window:
       def on_close():
            # TBD: set the window invisible, unregister its events
            # and then avoid it from closing:
            return pyglet.event.EVENT_HANDLED

Is that the canonical design for multi-window applications out there?
I was never aware of this limitation in general context of desktop applications before to be honest.

I believe the other way is to not have any context sharing at all between windows. However, I am not 100% sure on the consequences, pros, or cons of that. Multiple Windows could probably use a refactor since changing to OpenGL 3.3, as the current system was designed based on the OpenGL 2.x. If you need more Windowing freedom, then pyglet 1.5 may be preferable (provided you don't need shaders).

Thank you very much.
I think I have no issue with the new refactor based on the above, in which the window never closes. It seems well behaved in all circumstances according to my initial testing after refactoring towards that design, while also circumventing https://github.com/pyglet/pyglet/issues/911, and I'd surely not go back to pyglet 1.5.
As an aside I only notice, in the overall context of a multi window app, that many pyglet methods of a Window can handle the wrong window if switch_to is not carefully used to set the OpenGL context to the right window ― not only methods you'd expect to draw. So I guess any updated multi-window application guidelines may use broader language when describing it, but I should make a reproducible list for that.
Should I be concerned about context sharing in the context of only using the high-level subset of pyglet drawing api? I understand from here that context sharing is happening under the hood when using pyglet api, but also something that one can introduce if they directly use the more direct OpenGL addressing parts of the pyglet api.
Thanks for all the attention, I will put the new design to the longer test of time ― possibly coming back to make a pull request to the multi-window example code to reflect it all if it seems conclusive.

Closing as this is stale and went off topic. If the issue still persists, re-open.
However, the context issue stated in this thread should have been resolved in https://github.com/pyglet/pyglet/pull/917

Apologies, I am not sure which parts were the off-topic ones and how https://github.com/pyglet/pyglet/pull/917 is the place for follow-up discussion about it. I've mentally revisited this facet and searched for more suited tickets, the current one does mention Window.switch_to early on and it's mandatory for the current issue and scenario as I know it at least.
I would like to re-raise it as a question please ―
Currently, in a multi-window application, one has to make sure to call switch_to before preparing objects for drawing or changing their attirbutes. This is simple in simple applications but gets more involved inapplications drawing from both timed callbacks and keyboard / mouse triggered callbacks, esp. whereby the user interaction triggered callbacks may arise in either window of the bunch. Does it make sense to abstract over this anywhere in efficient native (C/C++) code in pyglet, such that an application doesn't need to explicitly call switch_to? Sorry to ask it, just when going through code refactors or adding features to an already large and involved application, it may get a tad slippery to judiciously place those calls such that they cover all cases.
To reiterate, the complexity arises from having multiple callbacks manage multiple windows, some of which are user triggered and some running on an event loop cadence. The challenge for application maintenance is that a missing call (to switch_to) would cause a crash that won't always pop up so soon in testing since there are sometimes too many combinations of the order of callbacks given user interaction and event loop cadence scheduling, making it not as obvious to reason about where was the missing switch_to not placed in a large application catering for a lot of features. It makes it a little hard to ship with confidence.
As a case in point, my application already has 20+ occurences of calling switch_to. Sometimes when a new feature is developed, or feature changes are made, the typical error arising from the lack of such a call will raise its head and then it's a cross-cutting review of the codebase as the error doesn't pop up locally to where the call is missing. Since it's also not deterministic, the error is not local in time to the time of the very last code change. This is very challenging for maintaining and evolving a heavy-weight application.
I'm assuming here that calls to switch_to are not performance-wise trivial on some of the supported platforms.
Apologies again for re-raising this facet, or any mistakes or errors in how I have framed it.


Typos in the textbook page 12~13

Hello,
It seems there are some typos in the book page 12~13 in section 2.2.1 Semantics for STRINGY.
For example, in the third definition for concatenation, it says
$[[s_1 ++ s_2]]_S(str) = [[s_1]]_S(x) ++ [[s_1]]_S(x)$,
but I think it should be
$[[s_1 ++ s_2]]_S(str) = [[s_1]]_S(str) ++ [[s_2]_S(str)$,
so changing $x$ to $str$ and the second $s_1$ to $s_2$.
In the fourth definition, there is a similar problem with $n_1$ and $n_2$.
In the fifth definition, I believe $find$ should be wrapped around by $[[ \cdot ]]_N$ instead of $[[ \cdot ]]_S$.

Fixed thanks! It will appear in the updated version soon


[cloud_firestore] Problems when running on iOS with flutter version 1.20.2

Describe the bug
I am having issues using cloud firestore in my project. The app runs perfectly fine on android but when I try to run on iOS I get a build failure.
Build output from the flutter run
Xcode build done.                                           10.1s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **

Xcode's output:
↳
    Command MergeSwiftModule failed with a nonzero exit code
    /myapp/ios/Pods/gRPC-Core/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c:10:10: fatal error:
    'upb/msg.h' file not found
    #include "upb/msg.h"
             ^~~~~~~~~~~
    1 error generated.
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description
    warning: Mapping architecture armv7 to i386. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS
    Simulator platform. (in target 'in_app_purchase' from project 'Pods')
    warning: Mapping architecture arm64 to x86_64. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS
    Simulator platform. (in target 'in_app_purchase' from project 'Pods')

Could not build the application for the simulator.
Error launching application on iPhone 8 Plus.

To Reproduce
Steps to reproduce the behavior:

I started a new flutter project, and it ran on iOS
I then added the cloud firestore to my pubspec
cloud_firestore: ^0.13.7
Ran the pub get, and then started the app in debug

Expected behavior
App should start and show the default counter app
Additional context
Add any other context about the problem here.
Flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.20.2, on Mac OS X 10.15.6 19G73, locale en-GB)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.48.0)
[✓] Connected device (1 available)

• No issues found!

@Tedsterh could you try one of the following suggested in the flutterfire docs?

Sadly still no luck, I removed the Podfile.lock and ran the pod install.
It still did not build.
So I ran pod repo update, but still did not work, same errors as before:
myapp/ios/Pods/gRPC-Core/src/core/ext/upb-generated/
    google/protobuf/wrappers.upb.c:10:10: fatal error: 'upb/msg.h' file not found
    #include "upb/msg.h"
             ^~~~~~~~~~~
    1 error generated.
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Constructing build description

hi
I solve it with :
rm -rf Pods Podfile.lock  // iside <your_project_path>/ios
then
pod cache clean --allpod
then
 pod install // iside <your_project_path>/ios    (Don't worry if takes a lot of time)
now you can build your app
Good luck

Please file a new issue if this problem persists, this is a major version out of date for firestore and flutter.


Safety checker is not working (OVStableDiffusionPipeline)

Safety checker is not working with OVStableDiffusionPipeline.

Hi @echarlaix , any update on this?
Thanks.

Hi @rupeshs, this needs to be added to optimum.exporters and make sure it's compatible with StableDiffusionPipelineMixin and loaded in the pipeline https://github.com/huggingface/optimum-intel/blob/v1.15.2/optimum/intel/openvino/modeling_diffusion.py#L119, I don't have much bandwidth to do it in the coming weeks but if you have some time to work on the integration I'll be happy to help

@echarlaix could you advise on https://github.com/huggingface/optimum/pull/1783/ ?


MudDataGrid inside of a MudDialog

Bug type
Component
Component name
MudDataGrid, MudDialog
What happened?
When using an editable MudDataGrid (Phase 2 in 8.0.6) inside of an MudDialog (that is showed using IDialogService), the nested dialog of the datagrid will always be shown and it's actually embedded into the dialog itself, rather than using an additional dialog.
Example when EditMode is set to Form:

Even when the EditMode is set to Cell, the dialog is always visible:

Expected behavior

The dialog of the form edit should not be visible inside of the dialog containing the data grid and use a separate popover - maybe this is a bug with it being an inline dialog?
The dialog should not be rendered at all, when edit mode is set to cell.

Reproduction link
https://try.mudblazor.com/snippet/GkcwYRQXcrcEwCVM
Reproduction steps

Create a MudDialog with a nested MudDataGrid
Make the nested data grid editable
Show an instance of the dialog using the IDialogService

Relevant log output
No response
Version (bug)
6.0.8
Version (working)

What browsers are you seeing the problem on?
Microsoft Edge
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

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

Also happens on chrome

Is there any way to circumvent this bug? That bug alone makes it impossible for me to upgrade to any version greater than 6.0.7 (where the DataGrid wasn't using an inline dialog).
I played around a little bit further and it seems to be a general bug with nested dialogs where the IsVisible property is not working properly:
https://try.mudblazor.com/snippet/cYQmYfufSlQxQWdj

I'm also expiriencing this problem. Is there any workaround?

Same with us. This big is really a showstopper for us at the moment.

Same here

I am running into it now as well. Unfortunately on a time crunch so I cannot debug.  For me the nested muddialog is in a child component and it just displays the nested muddialog, essentially breaking the component

I'm also experiencing this issue, but with a MudDialog, nested within another MudDialog.
The nested dialog is always shown on the page.

You can use the Table component instead here is an example of using both MudDatagrid an MudTable inside a dialog and outside a dialog, in which you can see the difference between MudDatagrid and MudTable behaviors :
https://try.mudblazor.com/snippet/mOmcFkwFTloRSxim

Issue still present.
Yes you can use a table and the issue won't apper but you lose all the datagrid functionality such as filters on columns.
I was able to do a workaround to still use a Dialog and show a MudDataGrid to get the full functionality of it.
Just created a custom component similar to a dialog.
If someone needs some temporary help until they fix it then I'll be happy to copy paste the code here.

@iColdoCatalin I would really appreciate if you could share your CustomDialog component. Thanks in advance!

@iColdoCatalin maybe you could share / add the component it here: https://github.com/CodeBeamOrg/CodeBeam.MudExtensions

@nvm-uli @enkodellc
It is nothing special, just done something simple until they fix it.
I tryied to maintain the aspect of the original Dialog and added some cascading parameter in order to invoke the statehaschanged from child component to parent. (its needed for the close button and re-render the page)
As I said something simple and quick since I don't have time to maintain the component becouse the guys from MudBlazor will certainly fix it.
Parent component:
`@page "/"
@using System.ComponentModel
@using System.Runtime.CompilerServices
@inject ISnackbar snackbar
@inject IDialogService dialogService
@implements IDisposable
Index
Hello, world!
Welcome to your new app.
Open Custom Dialog
@if (showCustomDialogModel.Show)
{

}
@code {
private ShowCustomDialogModel showCustomDialogModel { get; set; } = new();
protected override void OnInitialized()
{
    showCustomDialogModel.PropertyChanged += (sender, args) => StateHasChanged();
}

public void Dispose()
{
    showCustomDialogModel.PropertyChanged -= (sender, args) => StateHasChanged();
}

public class ShowCustomDialogModel : INotifyPropertyChanged
{
    private bool _show;
    public bool Show
    {
        get => _show;
        set => SetProperty(ref _show, value);
    }

    public event PropertyChangedEventHandler PropertyChanged;
    void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

    bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
    {
        if (Equals(storage, value))
        {
            return false;
        }

        storage = value;
        OnPropertyChanged(propertyName);
        return true;
    }

    public void ToogleShowCustomDialog()
    {
        Show = !Show;
    }

    public void CloseDialog()
    {
        Show = false;
    }
}

}`
Child component (dialog):
`@using static BlazorServer_TESTING_SOLUTION.Pages.Index
@inject ISnackbar Snackbar
@inject WeatherForecastService ForecastService

                @DialogTitle

                @if (forecasts is not null)
                {

                }

Close

<MudOverlay<EMAIL_ADDRESS>DarkBackground="true" ZIndex="1000" AutoClose="false" />
@code {
[CascadingParameter]
private ShowCustomDialogModel showCustomDialogModel { get; set; }
[Parameter]
public string DialogTitle { get; set; } = string.Empty;

private WeatherForecast[]? forecasts;
private string _searchString;

protected async override Task OnInitializedAsync()
{
    forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}

private void Cancel()
{
    showCustomDialogModel.Show = false;
}

}`

News?


invalid AST error, Code: -32001 (v10.0, VSCode, Windows)

I'm getting an error when trying to use Clangd 10.0 with VSCode on Windows (with clang-cl.exe):
[Error - 3:48:57 PM] Request textDocument/documentLink failed.
Message: invalid AST
Code: -32001
This happens with all the file I open in VSCode. I'm using the binaries from  https://releases.llvm.org/download.html
Full log (from start of VSCode to the error) here: https://pastebin.com/nqcsp6Rk

Key driver errors from the log:

drv_out_file_argument_with_multiple_sources
Cannot specify '/Foobj/base/util/memory_pressure/memory_pressure/system_memory_pressure_evaluator_win.obj' when compiling multiple source files

fe_expected_compiler_job
Unable to handle compilation, expected exactly one compiler job in ...

(That "invalid AST" error message is terrible, we should fix it)

Not sure if it's useful as all the information is probably in the previous log but here's my compile_command entry for this file
{
"directory": "C:\src\chrome\src\out\Release",
"command": "..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe --driver-mode=cl /showIncludes:user -imsvc..\..\third_party\depot_tools\win_toolchain\vs_files\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\win_sdk\Include\10.0.18362.0\um -imsvc..\..\third_party\depot_tools\win_toolchain\vs_files\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\win_sdk\Include\10.0.18362.0\shared -imsvc..\..\third_party\depot_tools\win_toolchain\vs_files\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\win_sdk\Include\10.0.18362.0\winrt -imsvc..\..\third_party\depot_tools\win_toolchain\vs_files\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\win_sdk\Include\10.0.18362.0\ucrt -imsvc..\..\third_party\depot_tools\win_toolchain\vs_files\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\VC\Tools\MSVC\14.23.28105\include -imsvc..\..\third_party\depot_tools\win_toolchain\vs_files\9ff60e43ba91947baca460d0ca3b1b980c3a2c23\VC\Tools\MSVC\14.23.28105\atlmfc\include -DUSE_AURA=1 "-DCR_CLANG_REVISION=\"n345635-5d881dd8-1\"" -D_HAS_NODISCARD -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -D_LIBCPP_NO_AUTO_LINK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_RS2 -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../third_party/boringssl/src/include -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=0 -fcomplete-member-pointers /Gy /FS /bigobj /utf-8 /Zc:twoPhase /Zc:sizedDealloc- /X -fmsc-version=1916 /guard:cf,nochecks -m64 /Brepro -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes /W4 -Wimplicit-fallthrough -Wthread-safety -Wextra-semi /WX /wd4091 /wd4127 /wd4251 /wd4275 /wd4312 /wd4324 /wd4351 /wd4355 /wd4503 /wd4589 /wd4611 /wd4100 /wd4121 /wd4244 /wd4505 /wd4510 /wd4512 /wd4610 /wd4838 /wd4995 /wd4996 /wd4456 /wd4457 /wd4458 /wd4459 /wd4200 /wd4201 /wd4204 /wd4221 /wd4245 /wd4267 /wd4305 /wd4389 /wd4702 /wd4701 /wd4703 /wd4661 /wd4706 /wd4715 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-ignored-pragma-optimize -Wno-implicit-int-float-conversion -Wno-final-dtor-non-final-class -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-non-c-typedef-for-linkage -Wno-pointer-to-int-cast /O1 /Ob2 /Oy- /Zc:inline /Gw /Oi -ftrivial-auto-var-init=pattern /MT -Xclang -add-plugin -Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare /TP /wd4577 /GR- -I../../buildtools/third_party/libc++/trunk/include /c ../../base/util/memory_pressure/system_memory_pressure_evaluator_win.cc /Foobj/base/util/memory_pressure/memory_pressure/system_memory_pressure_evaluator_win.obj /Fd"obj/base/util/memory_pressure/memory_pressure_cc.pdb"",
"file": "../../base/util/memory_pressure/system_memory_pressure_evaluator_win.cc"
},

First obvious question is why the driver is seeing multiple jobs/input files here, it doesn't jump out at me but I don't know clang-cl well.

I also have the issue.

Actually I disabled GCC's pre-compiled headers and it seems to work now.

the first thing i noticed is existence of /showIncludes:user, which printed text to stdout and mangled channel between clangd and lsp client. Even though there are a couple unknown flags to me, none of them seem to be related to precompiled headers.
the /showIncludes:user one is fixed at head currently, can you try again with a clangd built at head(or from our weekly releases at https://github.com/clangd/clangd/releases) ? @sebmarchand

I'm now using Clangd ToT and it work fine! I think that we can close this issue as it was only happening with clangd 10.0


Revert "abb: 1.1.7-0 in 'indigo/distribution.yaml' [bloom]"

Reverts ros/rosdistro#7747
The release repos is missing all the indigo tags. It's causing repeated failures of the sourcedeb jobs.
tfoote@yeti:/tmp/abb-release$ git tag | grep debian | grep hydro | wc -l
174
tfoote@yeti:/tmp/abb-release$ git tag | grep debian | grep indigo | wc -l
0

@Levi-Armstrong fyi


Deny access for the same URI

Hi,
I've a problem about an exemple of authentication, it's not possible to reject a user for a specific route without stop my application. I detail :
In the route I do :
$app->mount('/', new \Api\Toto\Provider\TotoControllerProvider());
$app->mount('/', new \Api\Tata\Provider\TataControllerProvider());

TotoControllerProvider I do :
class TotoControllerProvider extends AuthControllerProvider {
    $oController->post('/test', 'Api\Toto\Controller\TotoController::postAction');
}

TataControllerProvider I do :
class TataControllerProvider extends AuthControllerProvider {
    $oController->post('/test', 'Api\Tata\Controller\TataController::postAction');
}

AuthControllerProvider I do :
public function connect(Application $oApp)
{
        $oControllers = $oApp['controllers_factory'];

        $oControllers->before(function (Request $oRequest, Application $oApp) {
            $oHeaderIdentifier = $oRequest->headers->get('auth-identity', null);
            if (!$this->isAllowed($oHeaderIdentifier)) {
                return Response('failed');
            }

            return null;
        });

        return $oControllers;
}

If a user Tata is allowed to access in TataController he is rejected by TotoController cause of return Response('failed');
And if user Toto is allowed to access in TotoController he is reject by TataController cause of return Response('failed');
Is it possible to deny access to the controller without stopping API ?
Thank you in advance.

Can you elaborate on Is it possible to deny access to the controller without stopping API ??

Yes of course.
I would like unmount a group of controller when a before return Response('failed') for exemple because return a response freeze my application.
Do you understand ?

I think I understand but I fail to see your use case, sorry. Can you explain what is what you are trying to achieve without explaining how are you trying to do it? It seems to me that you are overcomplicating things...

@silverpark Maybe a more deep read about Middlewares can help you.
http://silex.sensiolabs.org/doc/middlewares.html#finish-middleware

Great !
I did not think about that.
Thanks


Multiple shortcuts

In Vimium I can use CTRL E / j and CTRL Y / k to scroll up and down. I actually use both of them.
How can I specify multiple shortcuts? Shall I separate them with commas ,?

I am looking forward to this feature too.


Nothing happens after install

The installation was successful but my powershell looks the same as before. Should I do anything else beside running the script?
Thanks :)
After install

In the folder where you executed the script, there should be a 'Cove.zip' File
extract it and then install it
if you read the script in setup.ps1, theres a function that dowloads cascadiacode and install it
you might have to restart your terminal though
https://github.com/ChrisTitusTech/powershell-profile/blob/main/setup.ps1

Thank you for clearing this. I have read that but there is no cove.zip in the whole machine (at least everything search could not find one) :/
I looked the zip in the right directory. Do you have any other ideas maybe what could be the cause?

Click on 'v' in the bar then go to settings then 'PowerShell' then 'Appearance' then 'Font face' then select 'CaskaydiaCove Nerd Font Mono'
-> Download Caskaydia font and install from nerdfont.com , if you dont see that font..........

Hi there @DRYN07 I had the same issue as you, not sure if you've already sorted it, but here are the steps I took to sort it:

Select Settings within the dropdown.

Select PowerShell, find the Additional settings section and select Appearance.

Change the Font face to CaskaydiaCove Nerd Font Mono or a NF Mono patched font you like (most should work), and if you fancy you can change the Color scheme. Don't forget to press Save.

Final result should be similar to:

@fdzalex Thank you for writing, to be honest, I haven't dealt with it since then. Now it has come up again to do it, I read the description, and it was quite clear that last time I got stuck with the cove.zip, even though I could have used a different font as well... :D

Hmmm a small other question. I did a clean install of this on a clean virtual machine. On the appearance, everything is fine but the powershell looks like the default one. Am I missing something? I restarted the explorer.

Might be missing oh-my-posh
Oh-My-Posh debug pwsh

See the output and post here.
Also check that your Environment for your ps1 profile is correct
$PROFILE

and lastly verify that the oh-my-posh is on path by doing
$env:PATH | grep oh-my-posh

show me what the output is and we can get this solved!!

Hmmm a small other question. I did a clean install of this on a clean virtual machine. On the appearance, everything is fine but the powershell looks like the default one. Am I missing something? I restarted the explorer.

Finally, I found the problem: the issue was caused by UniGetUI already having installed a version of Choco, just not in the default location. As a result, the script simultaneously stated, "WARNING: Choco is not installed" and "WARNING: Choco is already installed." If I leave the UniGetUI installation until the end, ensuring that Choco is already installed in the proper location, everything works fine :)
Thank you for the detailed help anyway.


Removal Of 'terminal' attribute in children

This could be derived from the children attribute. If children is undefined, then it is a terminal node. If children is [empty] array then it is a potential parent, that needs to load in its children. If children has elements, then it is definitely a parent node. Can anyone see any issues with this?

It makes sense for your core module. But you should really consider to outsource the toggle functionality to your decorator and join together header/toggle, as this would easily allow us to customize the behavior.

Maybe a good step in the right direction is for treebeard to determine this and pass it as a prop to the decorators. Then we can look at the decorators as a separate issue. What I'm trying to achieve here is simplifying down the data input as much as possible, so getting Treebeard setup is a snap for people in general. At the moment, the data bit feels a little contrived.

Separate those properties, that you need for core functionality (children, toggled) and those additional for default out-of-the-box behavior (name, active, ...). Allow for a custom .id property used as a key instead of 'index' for building the tree. Allow for renaming core properties by this occasion, like items instead of children.
Don't forget that there will always be the users who want their tree state managed by treebeard and those who want to manage it themselves, which currently works okay if you suppress the default onToggle with e.preventDefault(), so there is no setState({toggled: true}).

Also it would be great to use something like http://jnuno.com/tree-model-js/ to store the tree data, but a node will have its toggled inside of a property model in that case. So maybe you could allow overwriting the toggled by a function passed as a prop like:
function isToggled(node){
   return node.model.toggled;
}
<TreeBeard isToggled={isToggled}/>

I'll add in the id -> key option as I think that is definitely a good idea. We have to make sure we aren't making it over complicated with some of these things.


Add jade

So we still need to use Blockstream Green to setup the device? It looks like other wallets are able to set it up themselves?

Waiting feedbacks

I would be nice to have a tiny bit of context or documentation about what this PR is supposed to implement or not...

So we still need to use Blockstream Green to setup the device? It looks like other wallets are able to set it up themselves?

Waiting feedbacks

I would be nice to have AT LEAST a tiny bit of context or documentation about what this PR is supposed to implement or not...

There is 3 way:

blockstream green
web usb installer
python script using serial port over usb

@pythcoiner what you link is about upgrading the firmware, i'm talking about setting up the device.

@pythcoiner what you link is about upgrading the firmware, i'm talking about setting up the device.

right i misunderstand your last message, i'll factory reset by device as i don't remember if i connect to green first time i spin up this device, and give you feedback

Apparently you definitely need a companion app for the first setup.
Anyways @edouardparis i'll need more documentation here. I've set my Jade up but it still only shows "connect to a Green companion app" and isn't detected in the GUI installer.

i've done factory reset, import a mnemonic, then get stuck when my jade ask to connect to a compatible device, but at this step if you wait long enough (5-10min) it will leave this screen and (i dont remenber if i set the password before or after) get logged in.
at this step, i can found the jade in the setting menu for register descriptor (trying register mainnet descriptor make jade crash ), but the jade is not displayed if i want create a new wallet in signet while its detected if i want create a wallet on mainnet.

Here what i get on the jade while trying to register descriptor from the settings menu:

I can only unlock my Jade from the installer, not from launched wallet

Apparently you definitely need a companion app for the first setup.

@darosior You either need a companion app to initialize Jade with a PIN (but this can be done within Liana for example, you don't need Green) or using the QR PIN Unlock process linked when a user chooses "QR" during setup

it seems jade is limited in the size of descriptor it can display (3 screen)

Will have our team take a look at this!

it seems jade is limited in the size of descriptor it can display (3 screen)

Right.  You say 'medium size descriptor' ... what lengths of script to do usually use ?
Q: are you using the<EMAIL_ADDRESS>placeholder values to hold the signers and hence shorten the script, or have you got all the xpubs included in the main script string ?
In any case, if we receive a script we deem 'too long to handle' (whatever that is) we ought to error more gracefully than hitting that assert, so def need a fix there.

Q: are you using the<EMAIL_ADDRESS>placeholder values to hold the signers and hence shorten the script, or have you got all the xpubs included in the main script string ?

i'm no sure, will check, but i think not.....
here an example of a 'big' (minitap)script
are you constain by memory on Jade hardware?

At the moment we limit scripts on input to 512 byes/chars - if the script gets long how is the user realistically expected to check it on the Jade screen and verify it ?
We allow (and in most cases expect) signers/keys to be passed as @n placeholders, which makes the script/policy much easier to read and verify (and the signers/keys can be checked separately).
However - still agree that the assert at display time is a bug and needs fixing.  Cheers for the report.

last commit fix the unlock issue, but find smth new:

i first login to my jade w/ its normal seed
get the xpub
then load a temporary seed via QRCode
want to get the temporary xpub for add to my setup

=> still have the xpub related to the normal seed, i think we do not fetch the xpub as we link the xpub to the device id?

Try something different:

Restart my jade w/ USB unplugged
Select Options
Select Temporary Signer
Continue
Scan QR
Scan the temporary seed
Select USB
Plug USB Cable to the Jade
Liana still not detect Jade ( but polling)

  2024-04-13T06:55:24.554606Z  INFO liana_gui::hw:461: Device("Error { code: -32002, message: Some(\"Cannot process message - hardware locked or uninitialized\"), data: None }")

  2024-04-13T06:55:26.876307Z  INFO liana_gui::hw:461: Device("Error { code: -32002, message: Some(\"Cannot process message - hardware locked or uninitialized\"), data: None }")

  2024-04-13T06:55:29.195030Z  INFO liana_gui::hw:461: Device("Error { code: -32002, message: Some(\"Cannot process message - hardware locked or uninitialized\"), data: None }")

  2024-04-13T06:55:31.516320Z  INFO liana_gui::hw:461: Device("Error { code: -32002, message: Some(\"Cannot process message - hardware locked or uninitialized\"), data: None }")

  2024-04-13T06:55:33.835397Z  INFO liana_gui::hw:461: Device("Error { code: -32002, message: Some(\"Cannot process message - hardware locked or uninitialized\"), data: None }")

After importing a Seed through QrCode and connecting to usb and using https://github.com/Blockstream/Jade
 python jade_auth.py
Fetching jade version info over serial
Connecting...
Sending: {'method': 'get_version_info', 'id': '487301'} as cbor of size 35
Received msg: {'id': '487301', 'result': {'JADE_VERSION': '1.0.30-alpha1', 'JADE_OTA_MAX_CHUNK': 4096, 'JADE_CONFIG': 'NORADIO', 'BOARD_TYPE': 'JADE_V1.1', 'JADE_FEATURES': 'SB', 'IDF_VERSION': 'v5.1.2', 'CHIP_FEATURES': '32000000', 'EFUSEMAC': '782184944810', 'BATTERY_STATUS': 5, 'JADE_STATE': 'LOCKED', 'JADE_NETWORKS': 'ALL', 'JADE_HAS_PIN': True}}
Connected: {'JADE_VERSION': '1.0.30-alpha1', 'JADE_OTA_MAX_CHUNK': 4096, 'JADE_CONFIG': 'NORADIO', 'BOARD_TYPE': 'JADE_V1.1', 'JADE_FEATURES': 'SB', 'IDF_VERSION': 'v5.1.2', 'CHIP_FEATURES': '32000000', 'EFUSEMAC': '782184944810', 'BATTERY_STATUS': 5, 'JADE_STATE': 'LOCKED', 'JADE_NETWORKS': 'ALL', 'JADE_HAS_PIN': True}
Sending: {'method': 'auth_user', 'id': '232825', 'params': {'network': 'mainnet', 'epoch':<PHONE_NUMBER>}} as cbor of size 63
Received msg: {'id': '232825', 'error': {'code': -32002, 'message': 'Cannot process message - temporary wallet associated with different connection'}}
Exception causing JadeAPI context exit.
<class 'jadepy.jade_error.JadeError'>
JadeError: -32002 - Cannot process message - temporary wallet associated with different connection (Data: None)
  File "/home/edouard/code/sandbox/Jade/jade_auth.py", line 65, in <module>
    while jade.auth_user(network, http_request_fn) is not True:
  File "/home/edouard/code/sandbox/Jade/jadepy/jade.py", line 743, in auth_user
    return self._jadeRpc('auth_user', params,
  File "/home/edouard/code/sandbox/Jade/jadepy/jade.py", line 325, in _jadeRpc
    result = self._get_result_or_raise_error(reply)
  File "/home/edouard/code/sandbox/Jade/jadepy/jade.py", line 278, in _get_result_or_raise_error
    raise JadeError(e.get('code'), e.get('message'), e.get('data'))
Draining interface...

I got the same problem than @pythcoiner with no liana or other app running outside of the .py script

i got the same issue w/ Sparrow, definitively not only w/ us:

The app has to call auth_user before it can do anything with wallet keys.  (fyi non-wallet calls like eg. get_version_info can work before the auth_user call is made).
eg:
connect, call get_version_info (if desired), call add_entropy (best practice), call auth_user (to unlock jade wallet).

At this point Jade may ask for a PIN and you may need to do an http roundtrip to the blind-oracle to unlock jade - the details are all in the returned data.
Or, if you have previously done 'Temporary Signer' setup the auth_user call should just return true.

The above errors look like auth_user has not been called, and the wallet not unlocked for use.

Re: QR Mode - this is for using airgapped mode, using QRs only.  All (wallet-related) USB or Bluetooth comms will be rejected.
Basically you need to connect to Jade and set/unlock a wallet by some means - USB, Bluetooth or QR code.  Once this has been done the Jade wallet is unlocked for that method only.
ie. if you connect and call auth_user by USB, and the user unlocks the wallet that way - you can't then send jade sign_tx messages over Bluetooth (more importantly, nor an attacker!).
"QR Mode" is for scanning QRs only, all (wallet-related) network comms rejected.
"Temporary Signer" mode is fine - you ought to be able to scan a qr to load the temporary mnemonic/seed, but you must call auth_user over the interface you want to use - ie. USB.  In this mode Jade is stateless, in that no wallet data is saved on Jade - the user must enter(or scan) the seed every session.
In "PIN-protected mode", the user sets a wallet phrase and then provides PIN.  An AES key is securely generated by negotiation between the Jade unit and the remote Blind Oracle server.  The wallet root is then encrypted and saved in Jade storage.  ofc the user must enter the correct PIN each session to be able to decrypt the saved wallet.  This method requires a single http roundtrip to the Blind Oracle server.

I just tested on master branch the following, and it appeared to work as expected:

On Jade, Options->Temporary Signer
Scan QR (to load seed data)
'USB' for connection mode
connected to app, which then called get_version_info and auth_user (no user interaction w/ Jade required), then successfully called 'get_xpubandsign_message` (requires user to confirm on Jade before returning signature).

Let me know if this does not appear to be working for you.

NOTE: if jade is 'READY' a call to auth_user should just return true immediately, pretty much no-op - so if it's easier you can just call this without checking state.  Either path is fine.
(fyi: similarly, before using a descriptor (or multisig) wallet on jade, you need to register the details using register_descriptor (or register_multisig).  The user must confirm the details of the wallet on Jade, which are then persisted for future use.  At any time the user can delete the registration via the Options menus.
It can be non-trivial for a client app to work out whether the desired wallet details are already/currently registered on Jade - so again calling 'register_descriptorpassing the details of a wallet that is already registered just returns immediately without user interaction, pretty much no-op.  So again it may be easier to callregister_descriptor` before each use, rather than trying to deduce whether that call is strictly necessary.  Again, either course of action is fine.)

Thank you very much for all the information. It is now I think very clear for me.
I added a doc section about the Jade behavior in https://github.com/wizardsardine/liana/pull/999/commits/8e42e6fc06ae10390c3ff6b1209e062f0f82b55e

Please do '@' me if you have any questons / issues.  Really looking forward to seeing Jade and Liana together! :heart:

I'll merge the changes we have so far (to Jade master).
ie. what you have in that 1.0.30-alpha1 build, plus better checking/graceful-error for long descriptors.
(Because we expect the user to manually check the descriptor policy script string and the signers xpubs/details on the Jade UI before agreeing/registering, we sanity-limit the script length and number of signers.  If we need to look at extending these we can do so, but it's more impactful so right now I'm just cleaning up error checking to avoid the assert/abort.  [ ofc also atm Jade does not handle tr() ... it's on the list ... ;-) ])

re: this error, can you share the policy/script so I can add it to regression tests ? Cheers.

yep here the descriptor:
wsh(or_i(and_v(v:thresh(1,pkh([fba81f7f/48'/0'/0']tpubDDsgY25vr3v3ZMeZRMV5GgbRxA2tZXnw96ndrpSHSBqa3h1FQobq2bQnwgCUDsRvAN4jnk8W3BkT5QJGgSfuB3kyM161GkWrLMk1Lkjypus/<4;5>/*),a:pkh([71f42e50/48'/0'/0']tpubDCryh7jnCW3mQTqtSBGk1Pa7CWLVe6ja9q6MMZsrsV3dv1n362xD3vjeZrLtmYMbxH4Rm2P2LLq7YsDqCr5M7m3JbM9BPXFN1iXxHMsh7WN/<6;7>/*)),older(65535)),or_i(and_v(v:thresh(2,pkh([fba81f7f/48'/0'/0']tpubDDsgY25vr3v3ZMeZRMV5GgbRxA2tZXnw96ndrpSHSBqa3h1FQobq2bQnwgCUDsRvAN4jnk8W3BkT5QJGgSfuB3kyM161GkWrLMk1Lkjypus/<2;3>/*),a:pkh([71f42e50/48'/0'/0']tpubDCryh7jnCW3mQTqtSBGk1Pa7CWLVe6ja9q6MMZsrsV3dv1n362xD3vjeZrLtmYMbxH4Rm2P2LLq7YsDqCr5M7m3JbM9BPXFN1iXxHMsh7WN/<4;5>/*)),older(51234)),or_i(and_v(v:thresh(1,pkh([f38d4037/48'/0'/0']tpubDDpE8cYNYT3rYXE1x1dVxYEX3Ud2AyxZVoAM2Dcndwto8Dx9b717oGnPq4N1PtSTBb8AgKjRD9oj1srbYSCmXBAR161q76pEhCiQBmgTSJr/<4;5>/*),a:pkh([71f42e50/48'/0'/0']tpubDCryh7jnCW3mQTqtSBGk1Pa7CWLVe6ja9q6MMZsrsV3dv1n362xD3vjeZrLtmYMbxH4Rm2P2LLq7YsDqCr5M7m3JbM9BPXFN1iXxHMsh7WN/<2;3>/*)),older(41001)),or_d(multi(2,[f38d4037/48'/0'/0']tpubDDpE8cYNYT3rYXE1x1dVxYEX3Ud2AyxZVoAM2Dcndwto8Dx9b717oGnPq4N1PtSTBb8AgKjRD9oj1srbYSCmXBAR161q76pEhCiQBmgTSJr/<0;1>/*,[7eb8fcb3/48'/0'/0']tpubDCxRQvc8EdGgiEKatkGrvCBt7yVtzjJWKNzx9AwHq2DsjjyQZSMAiNd5y6T2xramodXmDPuQUHPySPPfBnMhvYKZSn6Jz4CuS7yg315XYRH/<0;1>/*),and_v(v:thresh(3,pkh([f38d4037/48'/0'/0']tpubDDpE8cYNYT3rYXE1x1dVxYEX3Ud2AyxZVoAM2Dcndwto8Dx9b717oGnPq4N1PtSTBb8AgKjRD9oj1srbYSCmXBAR161q76pEhCiQBmgTSJr/<2;3>/*),a:pkh([7eb8fcb3/48'/0'/0']tpubDCxRQvc8EdGgiEKatkGrvCBt7yVtzjJWKNzx9AwHq2DsjjyQZSMAiNd5y6T2xramodXmDPuQUHPySPPfBnMhvYKZSn6Jz4CuS7yg315XYRH/<2;3>/*),a:pkh([fba81f7f/48'/0'/0']tpubDDsgY25vr3v3ZMeZRMV5GgbRxA2tZXnw96ndrpSHSBqa3h1FQobq2bQnwgCUDsRvAN4jnk8W3BkT5QJGgSfuB3kyM161GkWrLMk1Lkjypus/<0;1>/*),a:pkh([71f42e50/48'/0'/0']tpubDCryh7jnCW3mQTqtSBGk1Pa7CWLVe6ja9q6MMZsrsV3dv1n362xD3vjeZrLtmYMbxH4Rm2P2LLq7YsDqCr5M7m3JbM9BPXFN1iXxHMsh7WN/<0;1>/*)),older(31111)))))))#gcpytqnu

How did you manage to load that into Jade ? I get a (graceful) rejection trying to register it, as it's over-long ?

i hit this error testing Liana (not this ONE descriptor, as the descriptor hitting the assert have real coins, i redo the exactly same setup w/ signet tpubs ).
Maybe Liana (or async-hwi) convert it to the wallet policies template?
How do you manage to load in Jade on your side?

The verbatim script you gave me was being rejected as too long - once I manually made the keys/xpubs @ placeholders as you suggest it loaded fine - and in master then gave me the same crash you report above.  :+1:
I then tested the fixed code (will support up to 5 script display screens btw, up to 512 chars) and added this script as to our unit tests.
Cheers :rocket:
(all these fixes will be included in the next fw beta we make - will keep you in the loop)

@edouardparis, on async-hwi side do we send the full descriptor or wallet policy?

Jade api register_descriptor requires that the policy template and keys are send in separated fields.
From the full descriptor string, async-hwi will extract the template and the keys for example in register_wallet: https://github.com/wizardsardine/async-hwi/blob/master/src/jade/mod.rs#L206 with extract_keys_and_template: https://github.com/wizardsardine/async-hwi/blob/master/src/utils.rs#L134
Ex of unit test of extract_keys_and_template:
let res = extract_keys_and_template::<String>("wsh(or_d(multi(2,[b0822927/48'/1'/0'/2']tpubDEvZxV86Br8Knbm9tWcr5Hvmg5cYTYsg92vinqH6Bie6U8ix8CsoN9W11NQygdqVwmHUJpsHXxNsi5gXn36g4xNfLWkMqPuFhRZAmMQ7jjQ/<0;1>/*,[7fc39c07/48'/1'/0'/2']tpubDEvjgXtrUuH3Qtkapny9aE8gN847xiXsf9MDM5XueGf9nrvStqAuBSva3ajGyTvtp8Ti55FvVXsgYSXuS1tQkBeopFuodx2hRUDmQbvKxbZ/<0;1>/*),and_v(v:thresh(2,pkh([b0822927/48'/1'/0'/2']tpubDEvZxV86Br8Knbm9tWcr5Hvmg5cYTYsg92vinqH6Bie6U8ix8CsoN9W11NQygdqVwmHUJpsHXxNsi5gXn36g4xNfLWkMqPuFhRZAmMQ7jjQ/<2;3>/*),a:pkh([7fc39c07/48'/1'/0'/2']tpubDEvjgXtrUuH3Qtkapny9aE8gN847xiXsf9MDM5XueGf9nrvStqAuBSva3ajGyTvtp8Ti55FvVXsgYSXuS1tQkBeopFuodx2hRUDmQbvKxbZ/<2;3>/*),a:pkh([1a1ffd98/48'/1'/0'/2']tpubDFZqzTvGijYb13BC73CkS1er8DrP5YdzMhziN3kWCKUFaW51Yj6ggvf99YpdrkTJy4RT85mxQMHXDiFAKRxzf6BykQgT4pRRBNPshSJJcKo/<0;1>/*)),older(300))))#wp0w3hlw").unwrap();
assert_eq!(res.0, "wsh(or_d(multi(2,@0/<0;1>/*,@1/<0;1>/*),and_v(v:thresh(2,pkh(@0/<2;3>/*),a:pkh(@1/<2;3>/*),a:pkh(@2/<0;1>/*)),older(300))))");
assert_eq!(res.1.len(), 3);
assert_eq!(res.1[0], "[b0822927/48'/1'/0'/2']tpubDEvZxV86Br8Knbm9tWcr5Hvmg5cYTYsg92vinqH6Bie6U8ix8CsoN9W11NQygdqVwmHUJpsHXxNsi5gXn36g4xNfLWkMqPuFhRZAmMQ7jjQ".to_string());
assert_eq!(res.1[1], "[7fc39c07/48'/1'/0'/2']tpubDEvjgXtrUuH3Qtkapny9aE8gN847xiXsf9MDM5XueGf9nrvStqAuBSva3ajGyTvtp8Ti55FvVXsgYSXuS1tQkBeopFuodx2hRUDmQbvKxbZ".to_string());
assert_eq!(res.1[2], "[1a1ffd98/48'/1'/0'/2']tpubDFZqzTvGijYb13BC73CkS1er8DrP5YdzMhziN3kWCKUFaW51Yj6ggvf99YpdrkTJy4RT85mxQMHXDiFAKRxzf6BykQgT4pRRBNPshSJJcKo".to_string());

fyi Jade fw 1.0.30 is prepped for release, including all changes/fixes to support Liana, as in the previous alpha build.
It is available for download/upgrade atm as a 'beta', but that exact build will be promoted to the public latest/stable build in the next 18 hours or so, all being well with final tests.
(You might want to ensure [or least document] that 1.0.30 is the minimum fw version you need to integrate with Liana ...)


Installation page for beginners

Here are some propositions to facilite the installation for beginners.

Thanks a lot for reviewing the documentation. Your PR includes a lot of eclipse configuration files (e.g. .settings directory) which shouldn't be committed in the repository could you remove them and amend your commit?

I think I did what you were talking about, sorry for the 80 supplementary commits, I didn't find a better solution... tell me please if it is ok like that. Thank you !

I did some modifications on the OpenStreetMap example, but less because it was ok for me to do it. I only didn't success to do the last step with the --enable-aws command and the S3 url, even while documenting myself for a moment on the AWS site. I could add some explanations if I would success it.