Fine tune BLIP Image Captioning to custom dataset

Hi, thanks for your amaizing work, i'm enjoy to use BLIP which demonstrate impressive results:)
Now i have a question: how can i fine tune BLIP for Image Captioning task on custom dataset?
My dataset consists of categories, each of which has pictures for this category, an example of categories: Chimneys, pedestrian crossings and more, I don’t have text captions for pictures, only the name of the categories, I can implement my plan?
I studied your article on arxiv but could not find the answer to my question.

Hi, to finetune BLIP's image captioning model on a custom dataset, you can prepare your annotation file in a similar format as the coco captioning file (coco_karpathy_train.json), and create your own dataset following coco_karpathy_dataset.py.

Thank's for your answer, i will try this way.

@LiJunnan1992 – appreciate all your engagement in the discussion!  I'm also interested in fine-tuning BLIP on a proprietary dataset in an effort to generate "contextual captions" and have a few questions  :)

Would it be possible / make sense to fine-tune BLIP with variable prompt prefix?  That is, instead of "a picture of " as a constant prompt prefix, I'd use a different prompt prefix for each image, incorporating contextual information I have about each image.  For example, I might do something like "a picture from Vegan Delights website of ", and my hope would be that the text output would begin to reflect the content of the contextual prompt – for example by returning "a plate of vegan food" instead of "a plate of food"

If this does make sense, are there any limits to the prompt prefix length I should be aware of?  I've tried to track this down and it seems (from the bert-base-uncased model card on huggingface) that the limit might be 512 tokens?  "The only constrain is that the result with the two "sentences" has a combined length of less than 512 tokens."

If I took this approach, do you have any idea how many images I'd need to use in fine-tuning?  I understand that more is better, but wondering if you have any rough guidance.  OpenAI, for example, suggests 1000 examples for fine-tuning GPT3 – a basic rule of thumb like that would be super helpful.

Thanks again!

Hi @labenz, thanks for your question.

Yes it is possible to use variable prompt.
The maximum number of tokens that BLIP accepts is the same as BERT (512 tokens). However, BLIP is pretrained mostly on short sentences. To reduce memory cost, we have hard-coded the maximum text length as 40 (https://github.com/salesforce/BLIP/blob/48211a1594f1321b00f14c9f7a5b4813144b2fb9/models/blip.py#L110), but you can change it to other values.
It is hard for me to say how many samples are enough. Please also note that BLIP's text decoder is much much much smaller than GPT-3, so the "prompt magic" may not work as well in BLIP.

thanks very much for the feedback – appreciate it!!

@labenz Did you ever have and success with this approach? Looking to do a similar project.

We ended up using a different approach, which used BLIP image-text matching
instead of captioning.
(For context, our problem was “image selection”, so we found that
generating “ideal captions” and then selecting images by ITM was more
effective than selecting by caption, and this seemed likely to be true even
if we had fine tuned, especially because our images are extremely diverse)
On Fri, Apr 28, 2023 at 4:35 PM ConorDoyle314 @.***>
wrote:

@labenz https://github.com/labenz Did you ever have and success with
this approach? Looking to do a similar project.
—
Reply to this email directly, view it on GitHub
https://github.com/salesforce/BLIP/issues/37#issuecomment-1528064629,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB73EXDEGFOWF5FCPNNXBTXDQSYZANCNFSM5RLRO76Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @labenz, thanks for your question.

Yes it is possible to use variable prompt.
The maximum number of tokens that BLIP accepts is the same as BERT (512 tokens). However, BLIP is pretrained mostly on short sentences. To reduce memory cost, we have hard-coded the maximum text length as 40 (https://github.com/salesforce/BLIP/blob/48211a1594f1321b00f14c9f7a5b4813144b2fb9/models/blip.py#L110
), but you can change it to other values.
It is hard for me to say how many samples are enough. Please also note that BLIP's text decoder is much much much smaller than GPT-3, so the "prompt magic" may not work as well in BLIP.

Thanks for the replies, regrading to your answer 2. If I would like to fine tune BLIP model, but my text file is far more than 512 tokens, is there any solution to this without retrain BLIP (edit text length==40).
Thanks.

Hi,
We do have a notebook on that here in case you'd like to fine-tune the Hugging Face version of BLIP: https://github.com/huggingface/notebooks/blob/main/examples/image_captioning_blip.ipynb.
We also have a notebook using PEFT (LoRa): https://github.com/huggingface/notebooks/blob/main/peft/Fine_tune_BLIP2_on_an_image_captioning_dataset_PEFT.ipynb. This is more memory efficient since you only train a couple of linear projection layers, while keeping the model itself frozen.

How big does the fine-tuning dataset need to be in order to have good performance for the image caption model?

I would start with a couple of hundred but as always, the more the better.

Hi, to finetune BLIP's image captioning model on a custom dataset, you can prepare your annotation file in a similar format as the coco captioning file (coco_karpathy_train.json), and create your own dataset following coco_karpathy_dataset.py.

hi @NielsRogge @LiJunnan1992 checking to see if it possible to do on custom images... i have seen BLIP works good on plain english terms but some terms are geographic specific and are not identified while using BLIP? Love to see if there is a sample notebook for training on custom images , as mentioned above,"you can prepare your annotation file in a similar format as the coco captioning file (coco_karpathy_train.json), and create your own dataset following coco_karpathy_dataset.py."

Hi,
You can create a custom image captioning dataset as follows: https://huggingface.co/docs/datasets/image_dataset#image-captioning

Hi,
You can create a custom image captioning dataset as follows: https://huggingface.co/docs/datasets/image_dataset#image-captioning

But i would need to annotate pics which are not detected as part of the captioning before creating the dataset?

Hi,
You can create a custom image captioning dataset as follows: https://huggingface.co/docs/datasets/image_dataset#image-captioning

yes, i am trying it out, thanks @NielsRogge

Hello,
I am trying to generate a detailed description of an image using blip model and it has to be more then 200 words. For example:

Is it possible to do using the same model and if not then what could be the other options that I can explore?

I'm afraid BLIP is not able to read text from image in such a detailed way. I'd recommend taking a look at Pix2Struct which uses a much higher image resolution to be able to read such text.

嗨，感谢您令人着迷的工作，我喜欢使用 BLIP 它展示了令人印象深刻的结果：） 现在我有一个问题：如何在自定义数据集上微调图像字幕任务的 BLIP？
我的数据集由类别组成，每个类别都有此类别的图片，类别的示例：烟囱、人行横道等，我没有图片的文本标题，只有类别的名称，我可以实施我的计划吗？我研究了你关于arxiv的文章，但找不到我问题的答案。

Hello, brother!
I am very confused. I have been working on fine-tuning BLIP to generate captions using my own dataset for a long time, but I still cannot achieve success. I saw your message and let me know that I may have found a solution to the problem. Here are some of my questions:

Do you need to rewrite 'create_dataset()' the function'?
2.How to define the yaml file for one's own dataset?
This is the area that troubles me the most. I need help, and I hope you can help me. Thank you!

Hello everyone,
I tried to use BLIP to generate image captions for images from surgical procedures. However, the generated captions are repetitions of words like a person, the, an etc. My dataset consists of hundreds of photos that belong to 44 different text descriptions. The learning rate is 0.000001. How can this be solved?
Thank you in advance!

你好，
如果您想微调BLIP 的Hugging Face 版本，我们确实有一个笔记本：https: //github.com/huggingface/notebooks/blob/main/examples/image_captioning_blip.ipynb。
我们还有一个使用 PEFT (LoRa) 的笔记本：https://github.com/huggingface/notebooks/blob/main/peft/Fine_tune_BLIP2_on_an_image_captioning_dataset_PEFT.ipynb。这可以提高内存效率，因为您只训练几个线性投影层，同时保持模型本身冻结。

Hello!
How can I use my own image text dataset to fine tune the BLIP2 model. The task I need to perform is the image captioning task. I have found that using pre trained BLIP2 alone to generate text descriptions for my images does not work well. I would like to fine tune my dataset first before performing the captioning operation? May I ask how to implement the specific operation and which pre trained model can be fine tuned to achieve better results?
Looking forward to your reply, thank you again!
Good luck to you!

We ended up using a different approach, which used BLIP image-text matching instead of captioning. (For context, our problem was “image selection”, so we found that generating “ideal captions” and then selecting images by ITM was more effective than selecting by caption, and this seemed likely to be true even if we had fine tuned, especially because our images are extremely diverse)
…
On Fri, Apr 28, 2023 at 4:35 PM ConorDoyle314 @.> wrote: @labenz https://github.com/labenz Did you ever have and success with this approach? Looking to do a similar project. — Reply to this email directly, view it on GitHub <#37 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAB73EXDEGFOWF5FCPNNXBTXDQSYZANCNFSM5RLRO76Q . You are receiving this because you were mentioned.Message ID: @.>

Hello！
Have you fine-tuned ITM? If you did, could you tell me how you did it?

At this point we have upgraded to multi-modal foundation models to solve
this problem in a similar but slightly different way.  In short, we simply
ask the language model to evaluate images on criteria that we define and
then filter and sort from there.
On Tue, Oct 29, 2024 at 2:17 AM Gae @.***> wrote:

We ended up using a different approach, which used BLIP image-text
matching instead of captioning. (For context, our problem was “image
selection”, so we found that generating “ideal captions” and then selecting
images by ITM was more effective than selecting by caption, and this seemed
likely to be true even if we had fine tuned, especially because our images
are extremely diverse)
… <#m_-82466634830478376_>
On Fri, Apr 28, 2023 at 4:35 PM ConorDoyle314 @.> wrote: @labenz
https://github.com/labenz https://github.com/labenz
https://github.com/labenz Did you ever have and success with this
approach? Looking to do a similar project. — Reply to this email directly,
view it on GitHub <#37 (comment)
https://github.com/salesforce/BLIP/issues/37#issuecomment-1528064629>, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB73EXDEGFOWF5FCPNNXBTXDQSYZANCNFSM5RLRO76Q
https://github.com/notifications/unsubscribe-auth/AAB73EXDEGFOWF5FCPNNXBTXDQSYZANCNFSM5RLRO76Q
. You are receiving this because you were mentioned.Message ID: @.>
Hello！
Have you fine-tuned ITM? If you did, could you tell me how you did it?
—
Reply to this email directly, view it on GitHub
https://github.com/salesforce/BLIP/issues/37#issuecomment-2443306232,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB73EUQY5KBBEOVK6WBB7DZ54SA7AVCNFSM6AAAAABQZCXV2CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBTGMYDMMRTGI
.
You are receiving this because you were mentioned.Message ID:
@.***>


GH-1294 Fixed NPE in AvroSchemaRegistryClientMessageConverter

The NPE was a result of not following defensive programming practices and that is fixed.
Also, we already support both reader and writer schema being null where new ReflectDatumReader(type) is used in getDatumReader(..)  operation.
That said there may still be conditions which are not supported and that is okay since in the end it's a MessageConverter and as such it is one
of the extension points of the framework allowing user to provide a custom one follwing instructions in 'User-defined Message Converters' of the reference guide.
Resolves #1294

Codecov Report

Merging #1340 into master will increase coverage by 0.35%.
The diff coverage is 66.66%.

@@             Coverage Diff              @@
##             master    #1340      +/-   ##
============================================
+ Coverage     61.39%   61.74%   +0.35%
- Complexity      820      825       +5
============================================
  Files           136      136
  Lines          3932     3929       -3
  Branches        548      550       +2
============================================
+ Hits           2414     2426      +12
+ Misses         1246     1225      -21
- Partials        272      278       +6

Impacted Files
Coverage Δ
Complexity Δ

...avro/AvroSchemaRegistryClientMessageConverter.java
57.14% <66.66%> (-2.7%)
19 <0> (ø)

...ud/stream/binder/AbstractMessageChannelBinder.java
47.44% <0%> (+4.77%)
24% <0%> (+2%)
:arrow_up:

...gframework/cloud/stream/binder/DefaultBinding.java
33.33% <0%> (+6.66%)
7% <0%> (+3%)
:arrow_up:

Continue to review full report at Codecov.

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


Tidy up values-prod.yaml

What
Link to story
Removed the redundant entry from the values file.
Checklist
Before you ask people to review this PR:

[ ] Tests should be passing: ./gradlew test
[ ] Github should not be reporting conflicts; you should have recently run git rebase main.
[ ] Avoid mixing whitespace changes with code changes in the same commit. These make diffs harder to read and conflicts more likely.
[ ] You should have looked at the diff against main and ensured that nothing unexpected is included in your changes.
[ ] You should have checked that the commit messages say why the change was made.

This change is to remove the blank entry, i.e. ingress.environmentName


Adsk Contrib - File rule improvements

Signed-off-by: Patrick Hodoul<EMAIL_ADDRESS>The pull request improves the FileRule public API by:

Adding a method to access a file rule by its name (refer to  FileRules::getIndexForRule),
Fixing the file rule name comparison (to always be case insensitive),
Fixing several code issues.

Friendly reminder that this PR qualifies for single approver rule so it could be merged this week unless there are some objections.


error when using captions from text file for validation

Hi,
I'm trying to load captions from txt files during validation (i.e. the if block on line 223 in datasets.py).
However it gives me the following error:
RuntimeError: Error(s) in loading state_dict for RNN_ENCODER:         size mismatch for encoder.weight: copying a param of torch.Size([26835, 300]) from checkpoint, where the shape is torch.Size([27297, 300]) in current model.
This has also been reported in the AttnGAN issues: https://github.com/taoxugit/AttnGAN/issues/45
Would be great if you could tell me why this error pops up using txt files.
The validation works if I use the default method.

Hi,
I'm trying to load captions from txt files during validation (i.e. the if block on line 223 in datasets.py).
However it gives me the following error:
RuntimeError: Error(s) in loading state_dict for RNN_ENCODER: size mismatch for encoder.weight: copying a param of torch.Size([26835, 300]) from checkpoint, where the shape is torch.Size([27297, 300]) in current model.
This has also been reported in the AttnGAN issues: taoxugit/AttnGAN#45
Would be great if you could tell me why this error pops up using txt files.
The validation works if I use the default method.

Model mismatch, maybe.
you should train RNN_ENCODER in correct size.

If you want to generate images from customized descriptions, you should modify B_VALIDATION to False.
https://github.com/MinfengZhu/DM-GAN/blob/d515995b6fade48be9762c7f069c9d889d4d5559/code/cfg/eval_bird.yml#L8

Thanks @WhereISmyroad and @MinfengZhu . Another thing worth mentioning here is that the vocabulary (build_dictionary) of the pre-trained RNN_ENCODER and the new input captions must be the same -- that's the reason for the error.
Two solutions are

to load the dictionary for the pre-trained model
train rnn-encoder with the new dictionary.

Closing the issue. Thanks!


[flutter_lints] not enabled by default with flutter create

On https://pub.dev/packages/flutter_lints it says

Flutter apps, packages, and plugins created with flutter create starting with Flutter version 2.xx are already set up to use the lints defined in this package.

But there is no import in pubspec.yaml, nor the file analysis_options.yaml (Flutter 2.2.2).
Furthermore, clicking on View/report issues leads to https://github.com/flutter/packages/pulls, which has issues disabled.
A bit misleading.

This landed after the branch point for 2.2. @goderbauer was the "xx" a placeholder that was supposed to be changed to the actual version later?

Furthermore, clicking on View/report issues leads to https://github.com/flutter/packages/pulls, which has issues disabled.

This is already fixed in the repository, so will fixed the next time the package is published.

Yeah, xx was meant as a placeholder and I forgot to fill it in. @nohli Thanks for sending the PR!


refactor(distinct-spec): update distinct operator tests to use pipeable operators

update distinct spec to use updated import sites and pipeable operators

Coverage decreased (-0.2%) to 96.691% when pulling 5155c82f6d161fda30c7533681c525a3e3775afd on natmegs:distinct-spec-pipeable into bc49e40a887d2b1946bf5294b4027369f0b753c3 on ReactiveX:master.

Thanks again, @natmegs!


Client id verification

Will always return NO if client id is correct. Removed negation to
return YES when valid.

@cashgl The assertion has to fail if  [self.appClientID isEqualToString:@"<Client Id here>"]


PortableText

The space between the paragraphs are not displaying.

What space between paragraphs? Are you referring to your CSS styles?

There is a space between the two, but when it is being rendered on the page, there isn't.
I haven't styled anything for the p elements. I am not getting why this is happening.

Sanity does not include any spacing or layout information on blocks. It is up to you to include CSS to style things how you'd like. Can you share what the actual JSON portable text content is for this field, and what the markup is in your app?


Use trust_store instead of ca_path

Hi,
First I would like to thank you for your incredible work !
I'm currently testing chirpstack v4 and tried to connect to a HiveMQ hosted mqtt server without any success while the previous version of chirpstack was working properly.
After doing some research and tried out few thing, I understood that the problem comes from the paho mqtt library for rust. It requires a certificate (even if the server does not), but even with giving the root ca it still not working. However I've been able to make it work by changing the function ca_cert into trust_store and give the path of the root ca.
I've been able to test using the make test-server target and connect to my broker.
So if you think this function should be changed then please merge, otherwise is it possible to have an option to give the root ca and add it in the trust store?
Thanks again

Good spot, this should indeed have been trust_store rather than ca_path. Thanks :+1:


Refactor BotocoreStubber/BaseBackend into separate files

Also removes the Model-class, as it didn't have any use.
Follow-up to #5121

Codecov Report

Merging #5122 (1037be8) into master (e49e67a) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #5122   +/-   ##
=======================================
  Coverage   95.88%   95.88%
=======================================
  Files         679      680    +1
  Lines       67138    67122   -16
=======================================
- Hits        64373    64359   -14
+ Misses       2765     2763    -2

Flag
Coverage Δ

servertests
36.88% <56.73%> (-0.02%)
:arrow_down:

unittests
95.82% <100.00%> (+<0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

moto/core/__init__.py
100.00% <100.00%> (ø)

moto/core/base_backend.py
100.00% <100.00%> (ø)

moto/core/botocore_stubber.py
100.00% <100.00%> (ø)

moto/core/common_models.py
88.88% <100.00%> (ø)

moto/core/models.py
96.42% <100.00%> (-1.41%)
:arrow_down:

moto/ec2/models/spot_requests.py
98.77% <100.00%> (-0.02%)
:arrow_down:

moto/instance_metadata/models.py
100.00% <100.00%> (ø)

moto/moto_api/_internal/models.py
100.00% <100.00%> (ø)

moto/moto_api/_internal/responses.py
88.88% <100.00%> (ø)

Continue to review full report at Codecov.

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


Add a README file

Please create a README file for this repository as specified in our GitHub Repo Guidelines

@kgodey please check the readme file.

looks good, thanks!


raspberry pi 3 plus and u-boot

hello guys,
I can boot a rpi3 with u-boot using meta-raspberrypi@rocko, poky@rocko succesfully. By the way the same image doesn't boot on a raspberry pi 3 plus. I'm tuck to the rainbow screen. What am I missing ?
thanks,
F-

@ikoes we haven't tested support of the 3+ board with u-boot. So at this point, it is just not supported as nobody looked into it (afaik). Obviously, we encourage you to try and contribute but if that's not an option, you can always use the proprietary bootloader from the foundation which is tested to work on 3+.

I've modified rocko:
conf/machine/include/rpi-base.inc
recipes-bsp/common/firmware.inc
recipes-kernel/linux/linux-raspberrypi.inc
recipes-kernel/linux/linux-raspberrypi_4.9.bb
in order to match their master counterparts.
I'm not a linux expert but I think that the main problem is related to the new pi3+ dtb that in rocko is missing.
Now u-boot works as expected

Uh wait. Can you try poky rocko + master of this layer? I just realised that rpi3+ support is only available in master.

@ikoes rainbow screen means its not using right dtb file

@kraj , thanks to confirm that.
@agherzan, Pocky@rocko + meta-raspberry@master fails due to bitbake policy. It was my first try. Hence I took only the files specified above from the master branch and replaced to the ones in rocko. It seems to solve the ssue.

What do you mean by "took only the files specified above from the master branch and replaced to the ones in rocko"? Did you inject files in the boot partition?

@agherzan
I've taken
conf/machine/include/rpi-base.inc
recipes-bsp/common/firmware.inc
recipes-kernel/linux/linux-raspberrypi.inc
recipes-kernel/linux/linux-raspberrypi_4.9.bb
from your master branch and hence added it to your rocko branch

Got it. That makes sense. Would you be able to backorder, cherry pick the commits and push a PR?
Did this fix the U-boot boot?

With the new addition u-boot is working. what do you mean for push a PR ? i'm a very basic user.

Ok. Don't bother about that. I'm glad this fixes your problem in which case I'll close this issue.


[FEATURE] toggle mouse display with key

Description
Currently, it is not possible to hide or show the mouse during the presentation.
This would be a nice feature to add.
Screenshots
No response
Additional information
A key, e.g. HIDE_MOUSE: Key = Key(ids[Qt.Key_H], name="HIDE / SHOW MOUSE") shoud be created in manim_slides/config.py.
Then, the App.keyPressEvent method in manim_slides/config.py should be modified to listen to config.HIDE_MOUSE.match(key) and toggle on / off the blank key.
Note that the config argument must, therefore, also be saved in App and that some kind of state must be kept about whether the mouse is hidden or not.

Hello, I'm interested in working on this task.

Hi @MikeGillotti, glad to hear that! :D
Feel free to start working on this, and propose a Pull Request once you feel ready for a review :)

Closed with #56


Artifacts if rendered with a non-integer display scaling factor on Windows

Hey, thanks for the fun font project! I'm enjoying the bit of whimsy when coding!
One of my displays is set to a 1.25 scaling factor. On that display, the font displays ugly rendering artefacts around the edges, especially at sizes typically used in a editor (the font size in the attached screenshot is 16px, the editor is VS Code). These artifacts are especially noticable on letters like the lower-case e and s. There are no such issues if the window is moved over to a 2x display.

Sounds like hinting getting too zealous. Have you tried switching between the TTF and OTF versions and/or changing antialias settings on vscode?


Feature: Environment-based warnings or scripts

It would be nice to have an additional guardrail or warning before performing requests in certain environments.
Insomnia has become indispensable for my day-to-day work and I use it to run requests in development and sometimes production. I get paranoid about accidentally leaving the environment selector on Production and performing a destructive request there.
It would be great to have a toggle that will display a warning before running any task in specific environments.
Potential options

Simple checkbox in the Manage Environment window for each environment (i.e. "[] Confirm before making any request").
A specific environment variable that Insomnia looks for. For example:{
  "INSOMNIA_ENV_WARNING": "Are you sure you want to make the request in {{_.ENV_NAME}}?"
}

More advanced: Attached a script block to an environment that is run before the request is made.

Is there an issue when calling variable, because I see all using {{_.name}} instead of {{name}}.
#3064

@hsul4n That seems unrelated to my feature request. I'm not sure of an issue with using the underscore or not, it's just what the type-ahead recommends.

I found a bit of a workaround using the prompt tag. Each environment has an API_ROOT variable used to define the domain that the API should hit. Adding the prompt tag to the front of this value will cause a prompt modal to appear. Of course, if the user enters anything in the text area, the request fails, but otherwise, this works alright.
{
  "API_ROOT": "{% prompt 'Are you sure?', '', '', '', false, false %}https://production.com",
}

Just found this insomnia plugin that basically does what I need:
https://insomnia.rest/plugins/insomnia-plugin-ask-before-sending


Update documentation. Fix spelling and formatting.

Updated documentation to match Truffle v.1.0.1
-fixed spelling and formatting
-fixed description of environment configuration settings to use config.js rather than config.json
-removed description of truffle resolve cli command

Not sure why I didn't merge this sooner. Thanks!


xone 23 c

hello.maybe you can help me.with udev entry i can't get my xone 23 c with 4/4 in-/output to run on my rpi4
dmesg
[  108.918527] usb 1-1: new high-speed USB device number 7 using xhci_hcd
[  108.940110] usb 1-1: New USB device found, idVendor=22f0, idProduct=0008, bcdDevice= 2.00
[  108.940111] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  108.940112] usb 1-1: Product: Xone:23C
[  108.940113] usb 1-1: Manufacturer: Allen&Heath
[  108.940114] usb 1-1: SerialNumber: no serial number
[  108.974774] usb 1-1: 1:2 : UAC_AS_GENERAL descriptor not found
[  108.976281] usb 1-1: 2:2 : UAC_AS_GENERAL descriptor not found
Udev
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="22f0", ATTR{idProduct}=="0008", ATTR{bConfigurationValue}="2"

Hi @molli1312 you may find more help at https://mixxx.discourse.group or mixxx.zulipchat.com/
The mixxx team may want to add it to their udev entry as well, but I'm not sure what support the xone 23c.

Here I did some investigation:
https://gist.github.com/timnugent/ed65a79b2bd6c63788bfada3624756a4
First we need to see which kernel broke the driver but for that I need somebody that could help me.

@molli1312 If you want we could join forces.

@molli1312 If you want we could join forces.

I can help you, but i am work only on a raspberry pi. I think we must compile a kernel... Or we can do a bug report on https://github.com/raspberrypi/firmware

i have wrote a issus by alsa...
https://github.com/markc/alsa/issues/49

and a kernel bug report
https://bugzilla.kernel.org/show_bug.cgi?id=217089

@pierregermain I'm curious and can't wait for Friday. runs with the command the mixer on the rpi4 with mixxx-pi-gen?

solution:
echo Y >/sys/module/usbcore/parameters/old_scheme_first
add it to crontab for use it by reboot
sudo crontab -e
#add the line
@reboot echo Y >/sys/module/usbcore/parameters/old_scheme_first

or add line
usbcore.old_scheme_first=1
on the end of
/boot/cmdline.txt
so the mixer can already appear when booting. does not have to be switched the mixer on and off again

@molli1312 not sure what the implications are for setting this in the image for other usb devices. I could put this in the readme?


I didn't try yet. As far as I know, you can use cygwin.

@lightning0016 ,
Could you share me with the steps how to run on Windows?
I would like to get a Windows laptop, and try 'select dir' issue

Hi @lightning0016 ,
Could you share the steps with me?

Steps to run on windows

Download PyQt4 and Python 2.7
Open cmd and go to labelImg folder
pyrcc4 -o resources.py resources.qrc
python labelImg.py
Install the required modules like PIL, xlml, numpy, etc.

Hi @lightning0016,
I setup the cross compile for windows. You can download exe file from  http://tzutalin.github.io/labelImg/


Remove references to deprecated Faye::RackAdapter#listen.

Faye::RackAdapter#listen is deprecated since faye 1.0.0, introduced by
81ecd3a9c388654f3d2249c040157e3cd653fb3c.
Deprecation was introduced by https://github.com/faye/faye/commit/c09913550cf616022aeabecf62b343fb32dff590

Thanks!


[EVM GW] Remote registers and state re-execution

Re-executing state locally requires for us to listen to all new transactions (ingestion engine handles that) and re-execute all the transactions locally. In order to re-execute a transaction we need to have a state upon which the transaction is applied and we need to have a EVM which the transaction uses to be executed.
We are reusing the flow-go EVM Emulator for re-execution of the transaction, we just need to make sure we can provide the state. Emulator uses a atree.Ledger to fetch register values. We can plug-in the remote register API to fetch the registers upon a get function is called. This will simulate registers being present locally and will avoid the complexity of actually keeping the state locally.
The biggest concern with this approach is scalability. Most importantly will the register API requests be fast enough during the re-execution, so that the re-execution won't be delayed behind the on-chain state. If the latency of those requests is too high this approach won't work and we will have to move toward local register index #322
We should do stress-testing to figure out the scalability possibilities with this approach, with a local AN and EVM GW setup (so the latency of the network is minimized).
### Tasks
- [ ] https://github.com/onflow/flow-evm-gateway/issues/575
- [ ] https://github.com/onflow/flow-evm-gateway/issues/576
- [ ] https://github.com/onflow/flow-evm-gateway/issues/577
- [ ] https://github.com/onflow/flow-evm-gateway/issues/578
- [ ] https://github.com/onflow/flow-evm-gateway/issues/579
- [ ] https://github.com/onflow/flow-evm-gateway/issues/580
- [ ] https://github.com/onflow/flow-evm-gateway/issues/581
- [ ] https://github.com/onflow/flow-evm-gateway/issues/582
- [ ] https://github.com/onflow/flow-evm-gateway/issues/583
- [ ] https://github.com/onflow/flow-evm-gateway/issues/585
- [ ] Validate re-executed state

no longer needed, moving to dry-run solution (https://github.com/onflow/flow-go/issues/6539)

Alternative implemented by https://github.com/onflow/flow-evm-gateway/pull/635


Add CPU initialization method

I don't think I like the explicit option there. Ideally we would have the "meta" device support so that one would choose which device to initialize on, but in the meantime, maybe we should just have a global switch instead? We need to keep the initialization directly on the GPU for compatibility, but the fact that we do that is actually different from the regular pyTorch modules.

/te-ci


Add builder for Device

fixes #673

Codecov Report

Merging #674 into master will increase coverage by 0.11%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #674      +/-   ##
============================================
+ Coverage     63.84%   63.96%   +0.11%
- Complexity      588      591       +3
============================================
  Files           134      134
  Lines          2586     2589       +3
  Branches        318      318
============================================
+ Hits           1651     1656       +5
+ Misses          788      786       -2
  Partials        147      147

Continue to review full report at Codecov.

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


Share Cancelled?

I'm getting "Share Cancelled" on what seems like a valid share in Android.  This even happens from the demo app if I add a check on err.  The share seems to go through OK and I'm left on the home screen of Instagram showing the new photo in the feed.  I then hit the back arrow to get back to the calling app, and I think this is being interpreted as a cancel.  Is there another way I should be leaving instagram to get back to my app after a share?  This is on a Nexus 5.

anything new on this one?

Confirmed to be happening today. one possible reason could be:
The Intent to share seems to be one-way...because once you share the photo, it redirects you to Instagram's main feed. To return to my app (where the plugin initiated the share), I either back out of the Instagram app altogether, or via the "recent apps" screen...

I guess they updated the way their Intents work because they don't talk about RESULT_OK or RESULT_CANCELED anymore...

Hello mates, I can confirm this happening... the intent is not returning RESULT_OK in ANY case, and Instagram is directing the user to their feed automatically, what I did to create a "workaround" was to launch a "local notification" to suggest the user to come back to our application since he receives a prize for posting certain hashtags, but of course I had to do a server-side query to Instagram to see if the image was in fact posted. I guess our hands are tied here

If you have the error "Share Canceled" the problem can also be that you haven't shared a photo before on Instagram. You should tap on the camera inside the instagram app. Instagram will then ask for access to your photos. After you accepted that the error could be gone.

Same issue here, going back with the back-arrow will result in a 'Share Cancelled' error. Using Android 4.4.2, with the latest instagram app.

The result of the share operation is not reliable because the Instagram app does not return the correct response.
I'm going to lock this conversation until there is a change in Instagram app behaviour. If a future version of Instagram will fix it the plugin will handle it.


Update web-frameworks.md

This is a small fix to the reference datafusion url link for "approx_percentile_count" in the documentation path dir "logfire/docs/integrations/use-cases/web-frameworks/" documentation.

Gracias 🙏


Fix repository in package.json

Coverage remained the same at 100.0% when pulling 3c3a06753be77eff57d38437d4b7be1f8d9b5086 on pdehaan:patch-1 into 9badb7d95dafbc9096be190b28e2a402b0577b93 on uber-web:master.

Good catch, thanks!


Should we allow scaling beyond the full size of an image?

Currently trying to get an image that’s larger than its original resolution from Loris returns a 404 error:

https://iiif.wellcomecollection.org/image/V0002007.jpg/full/10000,/0/default.jpg
Not Found: Resolution not available (404)

This is the default behaviour in Loris.
The IIIF standard says the following:

The image server may support scaling above the full size of the extracted region.

I’ve just had @gestchild tell me that this causes issues for the experience team, if they request an overly large image. Might be useful for other users.
(FWIW, DLCS falls over with an unhelpful message as soon as you go over the original image size.)

Yes.


Better handling of effect priority

We realized that we probably weren't propagating task priorities correctly when merging and concatenating effects, so this is an attempt to fix it. We're not sure it's correct, and there are some things we don't fully understand in how Swift deals with priority.
For merging, we decided to abandon TaskGroup because it seems that child tasks don't use their priority at all:
Task(priority: .high) {
  print("outer", Task.currentPriority.rawValue)
  await withTaskGroup(of: Void.self) { group in
    group.addTask(priority: .low) {
      print("inner", Task.currentPriority.rawValue)
    }
  }
}

This prints:

outer 25
inner 25

We're not sure if this is a bug in Swift or if there is something about this we don't understand.
So, instead of TaskGroup we can just use Task { ... } and manage the cancellation ourselves. We also make some attempts to leverage async let where possible, thinking that may be more efficient, but it's just a guess.
Also, the main Effect.run that executes the merge is given a priority that is the minimum of of the two priorities being merged. We think this is the correct decision to prevent priority inversion, although Swift already does work to upgrade low-priority tasks to avoid this.
And then, for concatenate we now set its priority to the minimum like described above, but we also do extra work to avoid spinning up new Task's when not necessary.
Does anyone have any thoughts on this?

@mbrandonw Nevermind, I've just looked more closely at the code, and the context priority is only used to avoid spinning new Task, not to run them. I have no concern then.

It means that if I'm requesting to chain .high, .high, .background, it will produce:
run(.background) { send in
  await Task(priority: high) { … }
  await Task(priority: high) { … }
  await …
}

So this task is a .background task and it may not immediately run. Shouldn't the max priority be used in this case?

So this task is a .background task and it may not immediately run. Shouldn't the max priority be ideally used in this case?

Maybe. But on the other hand, if we take the max then it means a high priority thing can be waiting on a low priority thing, causing priority inversion. And considering the weird things I'm seeing with priority elevation in task groups and async let, this seems like a real possibility.
We're not going to merge this anytime soon until we get a better understanding of how priority elevation works. I started a forum post here.
For one thing, I couldn't even write a test to prove that priority is propagated correctly. It seems all effects just get .high priority no matter what.

@mbrandonw You're right about the max issue. I need to effectively check things because the doc is not always clear. There are special cases too, like the doc mentions, and it seems easy to step into them while implementing general utilities.


MC wrapper PR after a cleanup (replaces PR #87)

This PR may only be accepted after PR #181 to core framework.
Redundant files were removed and the example is now as simple as possible.

Actually, there is a conflict to solve


Removed 'is_static' parameter from 'BUILTIN' macro, because was never used.

JerryScript-DCO-1.0-Signed-off-by: László Langó<EMAIL_ADDRESS>

LGTM (informally)

LGTM


net/http/httptest: ensure that a superfluous WriteHeader call panics in httptest

In net/http, using WriteHeader() twice creates a log entry, since the second one is superfluous: https://cs.opensource.google/go/go/+/refs/tags/go1.23.1:src/net/http/server.go;l=1201
In net/http/httptest though, while a check is made, there is no way to detect the superfluous usage, making superfluous calls reasy to reach production runtimes.
To help prevent that, this change proposes rejecting any superfluous WriteHeader calls in the httptest package.

I considered logging first, but it appears nothing uses logs in that package (yet), and we do already have a panic() with invalid HTTP statuses.
I'm happy to change this to something less intrusive though.


Trim clustermesh-apiserver ClusterRole permissions when external workloads support is disabled

The clustermesh-apiserver only requires read-only access to a limited set of Kubernetes resources and Cilium CRDs, except when external workflows are enabled, as in that case it needs to additionally be able to create and update CiliumNodes, CiliumIdentities and CiliumEndpoints on behalf of the external workloads themselves.
As an effort to harden the clustermesh security posture, let's make sure that we grant these additional write permissions only when external workflows support is effectively enabled, so that in all other cases we stick with the reduced set of read-only permissions.

Trim clustermesh-apiserver ClusterRole permissions when external workloads support is disabled

/test


add zoom_max to TouchCameraConfig

This changes behavior, previously you could zoom out forever.

Looks good, thanks for the contribution!


[Docs] Kitti Dataset Preparation Error: No module found

Branch
main branch  https://mmdetection3d.readthedocs.io/en/latest/
📚 The doc issue
Help I am stuck on this,
Command Run:
python3 tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti --extra-tag kitti
Error:
Traceback (most recent call last):
File "tools/create_data.py", line 8, in
from tools.dataset_converters import indoor_converter as indoor
ModuleNotFoundError: No module named 'tools.dataset_converters'
I am using VSCode, and my pylance json file has the following:
"python.analysis.extraPaths": [
"/usr/local/lib/python3.8/site-packages",
"/home/usr/local/lib/python3.8/site-packages/",
"/home/nihal/miniconda3/envs/mmdet3d/bin"
],
Suggest a potential alternative/fix
No response

Resolved, changed the import module directories

Resolved, changed the import module directories

how do you slove this error
"tools/create_data.py", line 5, in
from tools.dataset_converters import indoor_converter as indoor
ModuleNotFoundError: No module named 'tools.dataset_converters'

I am also struggling here. Seems like either we are missing something or the documentation is outdated. tools is not a python package, and is not sinatlled when we do the pip install -e to install mmdet3d.
Are we missing something?

已解决，更改导入模块目录

how to do

I am also struggling here. Seems like either we are missing something or the documentation is outdated. tools is not a python package, and is not sinatlled when we do the pip install -e to install mmdet3d.
Are we missing something?

Try export PYTHONPATH=$PYTHONPATH:$PWD before running the script as stated in huang's answer. For details refer to here.


How to use it in Gin

Hi, I have some problems using this in Gin
main.go
	builder, err := di.NewBuilder()
	if err != nil {
		fmt.Print(err.Error())
		return
	}

	_ = builder.Set("config", &GlobalConfig)

	err = builder.Add(container.Services...)
	if err != nil {
		fmt.Print(err.Error())
                return
	}

	app := builder.Build()

	defer app.Delete()
        ......

services.go
var Services = []di.Def{
	{
		Name:  "nsq",
		Scope: di.App,
		Build: func(app di.Container) (interface{}, error) {
			c,_ := nsq.NewProducer(app.Get("config").(*conf.Config).NsqAddr, nsq.NewConfig())
			return &producer.Producer{
				NSQClient : c,
			}, nil
		},
	},
}

user.go
func IntegralByLogin(c *gin.Context) {
	fmt.Print(di.Get(c.Request, "nsq").(*producer.Producer).Test())
}

result:
could not get the container from the given *http.Request

Hi,
di.Get(c.Request, "nsq") is a shortcut for di.C(c.Request).Get("nsq").
But in your case di.C(c.Request) fails because it can not retrieve the container from the given request. You have to inject the context in the request first, with a middleware for example.
The middleware for the go handlers is available here: https://github.com/sarulabs/di/blob/master/http.go#L23
You have to write something similar for gin. I'm not a gin user but I think something like this should work:
func DI() gin.HandlerFunc {
    return func(c *gin.Context) {
        ctn, err := app.SubContainer()
        if err != nil {
            // TODO: handle error
            return
        }
        defer func() {
            if err := ctn.Delete(); err != nil {
                // TODO: handle error
            }
        }()

        c.Set("di-container", ctn)

        c.Next()
    }
}

r := gin.New()
r.Use(DI())

Here I inject the container in the gin Context instead of the request. So the di.C function must be rewritten:
di.C = func(i interface{}) di.Container {
    if ctn, ok := i.(di.Container); ok {
        return ctn
    }

    c, ok := i.(c *gin.Context)
    if !ok {
        panic("could not get the container with C(): not a *gin.Context")
    }

    ctnI, ok := c.Get("di-container")
    if !ok {
        panic("could not get the container from the given *gin.Context")
    }

    ctn, ok := ctnI.(Container)
    if !ok {
        panic("could not cast the container from the given *gin.Context")
    }

    return ctn
}

With this, you should be able to write:
func IntegralByLogin(c *gin.Context) {
    fmt.Print(di.Get(c, "nsq").(*producer.Producer).Test())
}

If you have only one scope, the middleware may be too much for you and you can make the code work with just:
di.C = func(i interface{}) di.Container {
    return app
}

Thank you for your reply


feat: add skeema/skeema

skeema/skeema: Declarative pure-SQL schema management for MySQL and MariaDB
$ aqua g -i skeema/skeema

How to confirm if this package works well
Reviewers aren't necessarily familiar with this package, so please describe how to confirm if this package works well.
Please confirm if this package works well yourself as much as possible.
Command and output
$ skeema --help
Usage:  skeema [<options>] <command>

Skeema is a declarative schema management system for MySQL and MariaDB. It allows you to export a database schema to the filesystem, and apply online schema
changes by modifying CREATE statements in .sql files.

Commands:
      add-environment  Add a new named environment to an existing host directory
      diff             Compare a DB instance's schemas to the filesystem
      format           Normalize format of filesystem representation of database objects
      help             Display usage information
      init             Save a DB instance's schemas to the filesystem
      lint             Check for problems in filesystem representation of database objects
      pull             Update the filesystem representation of schemas
      push             Alter objects on DBs to reflect the filesystem representation
      version          Display program version

Global Options:
  -o, --connect-options value  Comma-separated session options to set upon connecting to each database instance
      --debug                  Enable debug logging
  -?, --help[=value]           Display usage information for the specified command
  -H, --host-wrapper value     External bin to shell out to for host lookup; see manual for template vars
      --ignore-func value      Ignore functions that match regex
      --ignore-proc value      Ignore stored procedures that match regex
      --ignore-schema value    Ignore schemas that match regex
      --ignore-table value     Ignore tables that match regex
      --[skip-]my-cnf          Parse ~/.my.cnf for configuration (enabled by default; disable with --skip-my-cnf)
  -p, --password[=value]       Password for database user; omit value to prompt from TTY (default "$MYSQL_PWD")
      --ssl-mode value         Specify desired connection security SSL/TLS usage (valid values: "disabled", "preferred", "required")
  -u, --user value             Username to connect to database host (default "root")
      --version                Display program version

Complete documentation for this command suite is available online: https://www.skeema.io/docs/commands

Reference

https://www.skeema.io/

Thank you for your contribution!

📝 Looks good.
https://www.skeema.io/docs/install/

it can be downloaded as a prebuilt binary in several formats.
The CLI is a single native binary that just needs to be placed in your $PATH. You may download it directly, or follow our Community CLI installation guide for a tutorial.

https://www.skeema.io/docs/install/community/
Downloading from GitHub Releases.

v4.122.0 is out 🎉
https://github.com/aquaproj/aqua-registry/releases/tag/v4.122.0


Mgid RTD module docs

🏷 Type of documentation

[x] new feature

📋 Checklist

[x] Related pull requests in prebid.js or server are linked
[x] For new adapters check submitting your adapter docs

Relevant PR - https://github.com/prebid/Prebid.js/pull/9120

@fowler446 https://github.com/prebid/Prebid.js/pull/9120 is already merged. Can you merge this pull request too, please?

@velichkin thanks for the ping. Merging is done after the next prebid.js release, when this adapter will be included.

@muuki88 Thanks for the answer. New version is already released, so, can you merge it, please?

Done


NH-29204: Adding semi-automated way of releasing Helm chart

semi-automated as some manual steps still remains (run GH action and merge produced PR). But at least the release is fully in our control.
Used customized version of chart-releaser-action - mentioned the changes in license headers
Making sure that produced release are not consider as DockerHub image releases
Adjusted deployment documentation

I think that instead of having a custom fork of the chart-releaser-action, we might as well write the script ourselves. We just need to:

Set the env variables
Download and extract the cr tool
Run cr package ..., cr upload ... and cr index

The code will be much more readable, maintainable (maybe 50 lines in total, instead of 350) and we will not have to deal with 3rd party license.

I think that instead of having a custom fork of the chart-releaser-action, we might as well write the script ourselves. We just need to:

Set the env variables
Download and extract the cr tool
Run cr package ..., cr upload ... and cr index

The code will be much more readable, maintainable (maybe 50 lines in total, instead of 350) and we will not have to deal with 3rd party license.
Edit: Maybe something like this: https://gist.github.com/pstranak-sw/958df33259c7e3a93063b528fdfc1bba (it could probably be even more simplified)

Ok it makes sense, it was not so hard to refactor it (thank you for providing the snippet). I updated PR (I verified the changes, so it works)


feat(eslint-plugin): implement no-tui-assert-without-ng-dev-mode rule

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Refactoring
[ ] Build or CI related changes
[ ] Documentation content changes

What is the current behavior?
Closes #4150
What is the new behavior?
no-tui-assert-without-ng-dev-mode rule is implemented
Does this PR introduce a breaking change?

[ ] Yes
[x] No

I thought it would be much easier :) the restrictions of esquery are crazy. I can't use multiple selectors at the same time, so I have to reinvent the wheel with all these traversals. or maybe I'm missing something. And we definitely need to implement ts because all this type stuff is a huge mess

ngDevMode && tuiAssert.assert(TuiYear.isValidYear(year));

tuiAssert.assert(TuiYear.isValidYear(year));

true && tuiAssert.assert(TuiYear.isValidYear(year));

false || true || (false && tuiAssert.assert(TuiYear.isValidYear(year)));

if (true) {
    tuiAssert.assert(TuiYear.isValidYear(year));
}

if (ngDevMode) {
    tuiAssert.assert(TuiYear.isValidYear(year));
}

if (true) {
    tuiAssert.assert(TuiYear.isValidYear(year));
}

ngDevMode ? tuiAssert.assert(TuiYear.isValidYear(year)) : null;

false ? tuiAssert.assert(TuiYear.isValidYear(year)) : null;

console.assert();


Add configurable cornerRadius

Summary
This PR adds support for letting any PanModalPresentable set the desired corner radius on the modal.
It also simplifies how the mask path is created.
Requirements

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.

[x] I've read and agree to the Code of Conduct.

[ ] I've written tests to cover the new code and functionality included in this PR.

To make things simple. I'm going to merge & then fix the PR feedback. Happening in a few..

Thanks so much for your contributions! I was going to make a cocoapod release on Monday. Let me know if you need this changes on cocoapods sooner.

Happy to contribute! I use Carthage, so I'll be fine :)


Multiple type definitions behavior questions

I would love some more details about the expected validation behavior when defining multiple types for a field (as outlined in the Multiple Definitions For One Key section).
If I define that a field can be of type Foo or type Bar, is the field validated against both types successively and passes if at least one of the type's validation passes?
Is there a way to define a function to manually indicate which type should be used? My use case is making a survey builder. Depending on the survey being filled out, the data field of my documents can be different, but I know what to expect so ideally I would be able to specify which of the multiple possible survey schemas to validate the document against. Does that make sense?

@SachaG Yes, I believe what you said is correct. As long as one type validation results in no errors, it's assumed to be valid. For your needs, is it possible to build a factory function that dynamically builds the schema and returns it?
Or if using collection2, then the multiple schemas approach is often used for that case: https://github.com/Meteor-Community-Packages/meteor-collection2#attaching-multiple-schemas-to-the-same-collection
Either approach essentially involves having more than one schema. Some parts of field definitions can be a function, but not type, and there has been no attempt to do that AFAIK. It might be possible, but I think it would be yet another new feature similar to but separate from SimpleSchema.oneOf.

I believe the implementation of oneOf may be buggy - I'm currently using this and it is attempting to validate all keys of all sub objects. My use case is almost identical to @SachaG, however I don't think that is relevant - it seems that any field defined as  SimpleSchema.oneOf(Schema1, Schem2) will have this problem

I now see that perhaps this has already been reported here: https://github.com/longshotlabs/simpl-schema/issues/112


Can't run coverage on travis

Hi
I followed your instructions to run the code coverage on github, but it doesn't work.
https://travis-ci.org/crondaemon/dines/builds/33904246
I made many tries, but no luck. If I run cpp-coveralls from my local copy, it works fine.
Any Idea?

Just for searchability, another symptom of this mismatch is out of memory errors, see the end of the build here: https://travis-ci.org/CleverRaven/Cataclysm-DDA/jobs/240641468


Add doc for paddle.i1 and paddle.i1e document.;test=docs_preview

PR types
New features
Chnages
Add docs for paddle.i1 and paddle.i1e.
References
code link: https://github.com/PaddlePaddle/Paddle/pull/53210
rfc link: https://github.com/PaddlePaddle/community/pull/489

Fix bug in our new commit @sunzhongkai588

We have resolved confilits and fix the typo.


Add CI that requires all Tests pass

This is partly blocked and requires issue #2 to complete first.
Can be set up in the mean time.
Considering a seperate runner from the nuget.yml.

action added


merge vue-language-server

This is a huge pull request.
Main idea:

change server into a separate npm module. So debug/release can be independent of client.
change client to depend on npm module. This keeps server code in same repo and issues concentrated. Development does not need installServerIntoExtension but a npm link

Other things include code improvement, stylus support and test code.
I think it might also be an option to create a repository for vetur in vuejs organization.

If this is to be accepted, may I suggest using lerna? It would make it easier to add and manage additional packages in the repo in the future.

It only have two packages. learna might be an overkill, I think.

Overall comments:

Good job on bringing back test and the stylus support.
I think it's better to stick with yarn, since npm5 is buggy and not many people are using it.
There are some styling / consistency problems. If we are to do this together, what do you think about using prettier with a line width limit like 120 or 140? I'm using this plugin: https://github.com/esbenp/prettier-vscode
I haven't been able to build yet, since I'm having really slow connection now and not npm5 yet. I just took a general look but haven't looked some of the implementations more carefully.
Overall I'm pro for merging this asap and we can address bugs later. Otherwise I don't want to push too much changes to master. Once this settles down I can start adding some work for #209.

Again, thanks a lot for the PR 👍

And BTW, would you be OK if I push some changes to your branch?

I pushed a change to master to make sure tslint works with tslint@5.
Can you download the tslint plugin and fix your styling issues.
Otherwise looks good, thanks!

Fixes have been pushed.

One thing left is updating client folder's yarn lock. My yarn is configured to taobao's registry, not yarn-pkg. (Curse GFW).

@octref Ping

Thanks!


Application Open In Background

i want to automate the Windows application ( .exe ). but it open in background every time . how can i automate It .can anyone suggested.

WinappDriver Error
{
"using": "name",
"value": "New"
}
HTTP/1.1 404 Not Found
Content-Length: 139
Content-Type: application/json
{"status":7,"value":{"error":"no such element","message":"An element could not be located on the page using the given search parameters."}}

No. What is shown in inspect?

ProcessId:	7108
RuntimeId:	[2A.310546]
AutomationId:	"llDell"
FrameworkId:	"WinForm"
ClassName:	"WindowsForms10.STATIC.app.0.141b42a_r6_ad1"
NativeWindowHandle:	0x310546
ProviderDescription:	"[pid:6204,hwnd:0x310546 Main:Nested [pid:7108,hwnd:0x310546 Main(parent link):Microsoft: MSAA Proxy (unmanaged:uiautomationcore.dll)]; Hwnd(parent link):Microsoft: HWND Proxy (unmanaged:uiautomationcore.dll)]"
IsPassword:	false
HelpText:	""
IsDialog:	[Not supported]
FillColor:	[Not supported]
OutlineColor:	[Not supported]
OutlineThickness:	[Not supported]
FillType:	[Not supported]
CenterPoint:	[Not supported]
Rotation:	[Not supported]
Size:	[Not supported]
VisualEffects:	[Not supported]
HeadingLevel:	[Not supported]

can you please look above comment  .i send the inspect tools data

application is WPF

sourabh-verma Could you describe your problem in more detail. Is the program open collapsed or just under other active apps on the screen?
Сan you try
driver.setFocus()

@Shakevg
Is there a method "SetFocus" in WinAppDriver?

@kamilchodola Yes for C#: Session.SetFocus();


Macos Flutter started printing out an excessive amount of debug info

Flutter is printing out a lot from HIToolkit, AppKit and dyld to stdout.
Steps to Reproduce
Platform details:
Ventura 13.1
Apple clang version 14.0.0 (clang-14<IP_ADDRESS>)
Target: x86_64-apple-darwin22.2.0

Create a macos flutter app
Run flutter run

Expected results:
My app's print statements and the occasional output from Flutter
Actual results:
This is repeatedly printed on rebuilds and user interaction.
1   HIToolbox                           0x00007ff81622e0c2 _ZN15MenuBarInstance22RemoveAutoShowObserverEv + 30
2   HIToolbox                           0x00007ff8162457e3 SetMenuBarObscured + 115
3   HIToolbox                           0x00007ff81624c29e _ZN13HIApplication11FrontUILostEv + 34
4   HIToolbox                           0x00007ff816245622 _ZN13HIApplication15HandleActivatedEP14OpaqueEventRefhP15OpaqueWindowPtrh + 508
5   HIToolbox                           0x00007ff81623f950 _ZN13HIApplication13EventObserverEjP14OpaqueEventRefPv + 182
6   HIToolbox                           0x00007ff816207bd2 _NotifyEventLoopObservers + 153
7   HIToolbox                           0x00007ff81623f3e6 AcquireEventFromQueue + 494
8   HIToolbox                           0x00007ff81622e5a4 ReceiveNextEventCommon + 725
9   HIToolbox                           0x00007ff81622e2b3 _BlockUntilNextEventMatchingListInModeWithFilter + 70
10  AppKit                              0x00007ff80fa35f33 _DPSNextEvent + 909
11  AppKit                              0x00007ff80fa34db4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1219
12  AppKit                              0x00007ff80fa273f7 -[NSApplication run] + 586
13  AppKit                              0x00007ff80f9fb427 NSApplicationMain + 817
14  picking                             0x0000000103b4d769 main + 9
15  dyld                                0x00007ff80c4dd310 start + 2432

flutter doctor -v:
[✓] Flutter (Channel stable, 3.3.10, on macOS 13.1 22C65 darwin-x64, locale
    en-US)
    • Flutter version 3.3.10 on channel stable at /Users/adam/lib/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 135454af32 (5 weeks ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6
    • DevTools version 2.15.0

[!] Android toolchain - develop for Android devices (Android SDK version
    33.0.0)
    • Android SDK at /Users/adam/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Users/adam/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/213.7172.25.2113.901473
      8/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      11.0.13+0-b1751.21-8125866)

[✓] Android Studio (version 2021.3)
    • Android Studio at /Users/adam/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/213.7172.25.2113.912333
      5/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.1)
    • IntelliJ at /Users/adam/Applications/JetBrains Toolbox/IntelliJ IDEA
      Ultimate.app
    • Flutter plugin version 71.2.6
    • Dart plugin version 223.8214.16

[✓] IntelliJ IDEA Ultimate Edition (version 2022.3)
    • IntelliJ at /Users/adam/Library/Application
      Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/223.7571.182/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Ultimate Edition (version 2022.3.1)
    • IntelliJ at /Users/adam/Library/Application
      Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/223.8214.52/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.1 22C65 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 109.0.5414.87

[✓] HTTP Host Availability
    • All required HTTP hosts are available

Closing this as duplicate of https://github.com/flutter/flutter/issues/117663


Diagnostic provider "outsourced" errored

I get this error when VSCode loads, can this be fixed?
[2024-03-08 13:52:31] phpactor.ERROR: Diagnostic provider "outsourced" errored with "Failed to write to stream; fwrite(): Write of 619 bytes failed with errno=32 Broken pipe", removing from pool {"channel":"LSPDIAG","stack":"#0 [internal function]: Phpactor\\LanguageServer\\Core\\Diagnostics\\DiagnosticsEngine->Phpactor\\LanguageServer\\Core\\Diagnostics\\{closure}()\n#1 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Coroutine.php(115): Generator->throw(Object(Amp\\ByteStream\\StreamException))\n#2 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Failure.php(33): Amp\\Coroutine->Amp\\{closure}(Object(Amp\\ByteStream\\StreamException), NULL)\n#3 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Internal/Placeholder.php(143): Amp\\Failure->onResolve(Object(Closure))\n#4 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Internal/Placeholder.php(177): Amp\\Coroutine->resolve(Object(Amp\\Failure))\n#5 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Coroutine.php(137): Amp\\Coroutine->fail(Object(Amp\\ByteStream\\StreamException))\n#6 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Failure.php(33): Amp\\Coroutine->Amp\\{closure}(Object(Amp\\ByteStream\\StreamException), NULL)\n#7 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Internal/Placeholder.php(143): Amp\\Failure->onResolve(Object(Closure))\n#8 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Deferred.php(53): Amp\\Promise@anonymous->resolve(Object(Amp\\Failure))\n#9 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/process/lib/ProcessOutputStream.php(48): Amp\\Deferred->resolve(Object(Amp\\Failure))\n#10 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Internal/Placeholder.php(149): Amp\\Process\\ProcessOutputStream->Amp\\Process\\{closure}(NULL, Object(Amp\\ByteStream\\ResourceOutputStream))\n#11 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Deferred.php(53): Amp\\Promise@anonymous->resolve(Object(Amp\\ByteStream\\ResourceOutputStream))\n#12 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/process/lib/Internal/Posix/Runner.php(71): Amp\\Deferred->resolve(Object(Amp\\ByteStream\\ResourceOutputStream))\n#13 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Loop/NativeDriver.php(327): Amp\\Process\\Internal\\Posix\\Runner::onProcessStartExtraDataPipeReadable('j', Resource id #5698, Array)\n#14 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Loop/NativeDriver.php(124): Amp\\Loop\\NativeDriver->selectStreams(Array, Array, 0)\n#15 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Loop/Driver.php(138): Amp\\Loop\\NativeDriver->dispatch(false)\n#16 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Loop/Driver.php(72): Amp\\Loop\\Driver->tick()\n#17 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/amphp/amp/lib/Loop.php(95): Amp\\Loop\\Driver->run()\n#18 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/phpactor/language-server/lib/Core/Server/LanguageServer.php(111): Amp\\Loop::run(Object(Closure))\n#19 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/lib/Extension/LanguageServer/Command/StartCommand.php(50): Phpactor\\LanguageServer\\Core\\Server\\LanguageServer->run()\n#20 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/symfony/console/Command/Command.php(298): Phpactor\\Extension\\LanguageServer\\Command\\StartCommand->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#21 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/symfony/console/Application.php(1040): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#22 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/symfony/console/Application.php(301): Symfony\\Component\\Console\\Application->doRunCommand(Object(Phpactor\\Extension\\LanguageServer\\Command\\StartCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#23 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/lib/Application.php(48): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#24 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/vendor/symfony/console/Application.php(171): Phpactor\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#25 phar:///home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar/bin/phpactor(45): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#26 /home/developer/.vscode-server/extensions/phpactor.vscode-phpactor-1.3.0/phpactor.phar(15): require('phar:///home/de...')\n#27 {main}"} []

What O/S are you running, how are you running Phpactor?

Hi, Thanks for your reply. I'm running inside a docker container from a php:8.2-fpm image.
My setup is devcontainers with VSCode. I'm installing and enabling pcntl and installing phpactor in the container.
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"```

I'm pretty sure others have had issues with this configuration cc @BladeMF ... you can try disabling "outsouved diagnostics" (check configuration reference) though I'm not sure how far you'll get after that.

Just want to say same happens to me and I'll investigate when I can.

Don't see a cause at the moment...


onkyo: fix selecting sources with only one name

Description:
Onkyo media_player component mishandles input sources with only one name. It expects a list of names for the input source and iterates over them. This fails when onkyo-eiscp returns a single name (string).
Fixes 'fm', 'am' and 'phono'.
Checklist:
If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

LGTM, thanks!

Thanks, that was fast!


[Snyk] Upgrade lerna from 7.3.0 to 7.4.2

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade lerna from 7.3.0 to 7.4.2.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 4 versions ahead of your current version.
The recommended version was released a month ago, on 2023-10-27.

Release notes

Package name: lerna

7.4.2 - 2023-10-277.4.2 (2023-10-27)
Bug Fixes

version: support changelog-presets using async factory funcs (#3873) (bb5e7d7)

7.4.1 - 2023-10-187.4.1 (2023-10-18)
7.4.0 contained a malformed dist directory, please bump to 7.4.1 for the correct artifacts

7.4.0 - 2023-10-177.4.0 (2023-10-17)
Bug Fixes

version: update lock files after the version hook (#3849) (7e30a31)

Features

version: add json option (#3858) (86f22f4)
version: add option to force version update (#3852) (914dd96)

7.3.1 - 2023-10-107.3.1 (2023-10-10)
Bug Fixes

core: update package engines.node to correctly include only >=16 (#3861) (0674555)

7.3.0 - 2023-09-137.3.0 (2023-09-13)
Bug Fixes

core: skip unnecessary cycles when running tasks (#3834) (d477529)
init: generate pnpm workspace yaml (#3822) (489aa92)
update make-dir to 4.0.0 and npm audit fix (#3828) (373b8bc)
version: Fix crash when using gitSignTag with independent versioning mode (#3832) (4940f2d)

Features

version: add --sync-dist-version option (#3787) (ba8b946)
version: option to not ignore scripts on lock update (#3823) (4843c3c)

    from lerna GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

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

Comparison is base (3afdc09) 78.04% compared to head (cbd7f26) 78.04%.

:exclamation: Current head cbd7f26 differs from pull request most recent head bbcec52. Consider uploading reports for the commit bbcec52 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1933   +/-   ##
=======================================
  Coverage   78.04%   78.04%
=======================================
  Files          39       39
  Lines        3061     3061
  Branches      616      616
=======================================
  Hits         2389     2389
  Misses        481      481
  Partials      191      191

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


⚠ ETF has degraded performance

In 6160ee7, ETF (https://markets.hankyung.com/equity-product/etf) experienced degraded performance:

HTTP code: 200
Response time: 6886 ms

Resolved: 한경메인 performance has improved in 4b6cff9.


Configuration file not accepting aiservice

While running the ./Configure.sh on my terminal with values for each element. The output keeps printing even when I enter the value for --aiservice
Please specify an AI service (AzureOpenAI or OpenAI) for --aiservice.
To Reproduce
For MacOS
Download co-pilot chat repo
Run ./Install-brew.sh
Run ./Configure.sh --aiservice {AzureOpenAI} --apikey {XXXXXXXXXXXXXXX} --endpoint {https://xxxx.openai.azure.com/} --clientid {XXXX}
Output: Please specify an AI service (AzureOpenAI or OpenAI) for --aiservice.
Expected behavior
It should either accept the config or throw an error. It always says "Please specify an AI service (AzureOpenAI or OpenAI) for --aiservice." Even when specified
Platform

OS: [Mac]
IDE: [VS Code]

Additional context
The app still launches but gives invalid URL error. Might be a different bug. But this is what my server says:

Had a bug with the brackets


New bitcoin_client in rust

This PR adds a new bitcoin_client_rs directory.
The crate does not support the communication layer between the device
and the client but the messaging protocol between them.
TODO:

[ ] Add more test cases
[ ] fix comments and documentation

Ledger Bitcoin application client
Client library in Rust for the Ledger
Bitcoin application with minimal dependencies.
If you wish to contribute to this library, please read
CONTRIBUTING.md.
Minimum Supported Rust Version
bitcoin_client_rs should always compile using Rust 1.43 and pass
tests using Rust 1.49.
Getting started
The client::BitcoinClient struct implements the methods that call and
interpret the commands between the Ledger device and your software.
pub struct BitcoinClient<T: Transport> {...}
impl<T: Transport> BitcoinClient<T> {
    pub fn get_extended_pubkey(
        &self,
        path: &bitcoin::util::bip32::DerivationPath,
        display: bool,
    ) -> Result<bitcoin::util::bip32::ExtendedPubKey, BitcoinClientError<T::Error>>;
}

It requires an internal connection implementing the client::Transport
Trait.
pub trait Transport {
    type Error: Debug;
    fn exchange(&self, command: &APDUCommand) -> Result<(StatusWord, Vec<u8>), Self::Error>;
}

In order to satisfy this Trait, it is possible to import the
ledger-transport-hid crate from https://github.com/Zondax/ledger-rs.
Please, read the examples/ledger_hwi/src/transport.rs file to find an example.
The async feature
The optional feature async adds the async_client module to the crate
and imports the async_trait library. The async_client::BitcoinClient
struct is an asynchronous equivalent to the BitcoinClient struct. It
requires an internal connection implementing the async_client::Transport Trait.
#[async_trait]
pub trait Transport {
    type Error: Debug;
    async fn exchange(&self, command: &APDUCommand) -> Result<(StatusWord, Vec<u8>), Self::Error>;
}

The no-std support
Work in progress.
Example
The code source for a simple tool to communicate with either a Ledger device or Speculos
emulator can be found in the examples directory.
Example of a command to retrieve the extended pubkey with the given
derivation path and display it on the device screen:
cargo run --package ledger_hwi -- \
get-extended-pubkey --derivation-path "m/44'/0'/0'/0/0" --display

Any reason for the choice of MSRV?

Added rust tests to the CI (ignore CodeQL and Sonarcloud, they're broken on our end).

Codecov Report
Base: 83.70% // Head: 83.80% // Increases project coverage by +0.10% :tada:

Coverage data is based on head (d636730) compared to base (dac3de1).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop      #76      +/-   ##
===========================================
+ Coverage    83.70%   83.80%   +0.10%
===========================================
  Files           17       17
  Lines         2086     2099      +13
===========================================
+ Hits          1746     1759      +13
  Misses         340      340

Flag
Coverage Δ

unittests
83.80% <ø> (+0.10%)
:arrow_up:

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

Impacted Files
Coverage Δ

src/common/write.c
100.00% <0.00%> (ø)

src/common/buffer.h
100.00% <0.00%> (ø)

src/common/parser.h
100.00% <0.00%> (ø)

src/common/wallet.h
100.00% <0.00%> (ø)

src/common/bitvector.h
100.00% <0.00%> (ø)

src/ui/display_utils.c
100.00% <0.00%> (ø)

src/common/wallet.c
84.60% <0.00%> (+0.02%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Doesn't work with special characters

Filemanager creates a folder with the special characters messed up, like "Licitações" turning into "LicitaÃ§Ãµes". The select file callback returns the correct name, so when I try to access the folder it gives me an error because the actual folder has a wrong name.

Update: it happens only on Windows. In our CentOS production server, it works just fine.

Got it. Thanks for reporting this. We will make sure this won't happen in v2.0.


subctl gather should have option to output to stdout

What would you like to be added:
Add option to subctl gather to output results to stdout instead of a file.
Why is this needed:
This will allow our CI/CD to run subctl gather as part of post-mortem, instead of using custom shell scripts. This way, we will not only be able to test subctl gather as part of CI/CD, but any newer additions to data required to troubleshoot will not require changes in multiple places. This will also help enable the use case to run gather from a pod within cluster.

I think we can do https://github.com/submariner-io/shipyard/issues/764 by uploading the gather files to GH, we don't need to dump them to the logs. Scrub thinks we should close this.


Unable to use bb8-redis pool connection to execute query_async commands on redis

Hi all, I am not sure why this isn't working. Any help is appreciated. Here's the error:
error[E0277]: the trait bound `PooledConnection<'_, RedisConnectionManager>: redis::aio::ConnectionLike` is not satisfied
   --> src/graphql/page/dataloaders.rs:28:26
    |
28  |             .query_async(&mut conn)
    |              ----------- ^^^^^^^^^ the trait `redis::aio::ConnectionLike` is not implemented for `PooledConnection<'_, RedisConnectionManager>`
    |              |
    |              required by a bound introduced by this call
    |
    = help: the following other types implement trait `redis::aio::ConnectionLike`:
              MultiplexedConnection
              redis::aio::Connection<C>
note: required by a bound in `Cmd::query_async`
   --> /Users/vamshiaruru/.cargo/registry/src/github.com-1ecc6299db9ec823/redis-0.22.1/src/cmd.rs:379:12
    |
379 |         C: crate::aio::ConnectionLike,
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Cmd::query_async`

For more information about this error, try `rustc --explain E0277`.

Here's the code:
        let mut conn = redis_pool // This is of type Pool<RedisConnectionManager>
            .get()
            .await
            .expect("Should be able to get connection from pool");
       // this works
       let data: Vec<String> = conn.get(keys).await?;
       // this doesn't work
       let data: Vec<String> = redis::cmd("MGET")
            .arg(keys)
            .query_async(&mut conn)
            .await?

Any help is appreciated. Thanks.

I think you need &mut *conn.

Thanks @djc , I can't test it at the moment, but I don't seem to have any compilation errors at least when I use that.

I'll close this for now, feel free to reopen if you're still having issues.


E2E Test for default PS server

We should create an E2E test to make sure that the default PS server behaves correctly.

I think we should make it easy to run a test given a YAML file containing the TfJob spec. Then we can just create different YAML files corresponding to different test cases.


Remove requirement of userName or userId

Since we discussed these being optional, I think it may make sense for the JS SDK to reflect that.

#AintNobodyGotTimeForThis


ConnectableObservable, refCount, and connection state

@blesh @mattpodwysocki @benjchristensen @headinthebox
I'm revisiting ConnectableObservable and soliciting feedback on how to proceed so we can close our outstanding issues before release. Please chime in with additional thoughts or points I've overlooked.
ConnectableObservable connection state has become problematic
At the moment, ConnectableObservable caches and shares the same connection to the underlying source with all its subscribers. This means multiple calls to refCount share the same connection, which each RefCountObservable will choose to connect or disconnect based on its local subscription count. This is philosophically problematic, as the RefCountObservable can no longer guarantee referential transparency. For example:
import Rx from 'rx';

const numbers = Rx.Observable.interval(10).publish();
const firstFour = numbers.refCount().take(4);
const skipTwo = numbers.refCount().skip(2);

firstFour.subscribe(::console.log); // <-- prints 0, 1, 2, 3
skipTwo.subscribe(::console.log); // <-- prints         2, 3

In this example, the subscription count of firstFour drops to zero after taking four values. skipTwo's  subscription count remains at one, but firstFour's disposes the numbers connection anyway.
One potential solution to this problem is to move the refCount state to ConnectableObservable, so it can be shared and mutated alongside the connection subscription. This would eliminate the difference between multiple subscribers to a single RefCountObservable, and one subscriber to each of multiple RefCountObservables:
import Rx from 'rx';

const numbers = Rx.Observable.interval(10).publish();

// This behavior is identical...
const refCounted1 = numbers.refCount();
const refCounted2 = numbers.refCount();
refCounted1.take(5).subscribe(::console.log);
refCounted2.skip(5).take(20).subscribe(::console.log);

// ... to this behavior
const refCounted = numbers.refCount();
refCounted.take(5).subscribe(::console.log);
refCounted.skip(5).take(20).subscribe(::console.log);

I've attempted to brainstorm other alternatives that don't involve the ConnectableObservable maintaining connection state, but don't see any viable alternatives.

Random idea, so I'm not sure if this make sense or would break anything:
Make ConnectableObservable work like refCount itself. If you call connect twice, you have 2 disposable connections. Require them both to be disposed/unsubscribed before the ConnectableObservable stops.
That way, the connection kept by refCounted1 and refCounted2 wont interfere.


prefix queue names with app name

This is in line with prefixing pub/sub channels with app name.

This is implemented via the prefixed method inherited from pulsar.apps.data.channels.Connector


Testing docs

Summary
Started to expand the docs on testing to cover some more advanced aspects of testing. Focused on approaches to manage the app host within test runs and accessing the resources that are available in the app host during a test.
Fixes #1516

Internal previews

📄 File
🔗 Preview link

.github/dependabot.yml
Generated by dependabot-bot.

docs/fundamentals/setup-tooling.md
.NET Aspire setup and tooling

docs/testing/accessing-resources.md
Accessing resources in .NET Aspire tests

docs/testing/manage-app-host.md
Managing the app host in .NET Aspire tests

docs/testing/writing-your-first-test.md
docs/testing/writing-your-first-test

docs/toc.yml
docs/toc

docs/whats-new/dotnet-docs-aspire-mod0.md
.NET Aspire docs: What's new for September 2024

This looks great, thank you so much! I provided a lot of suggestions, but that's to ensure that this content aligns with the expected quality, consistency, and styling of the docs. I didn't approve this yet, as I want to have another look once suggestions are applied.

Appreciate all the feedback, making sure that everything is the same stylistically and structurally is important.

Also, we need to determine if this is going into the .NET Aspire 9 GA release branch or main.

The content is valid in 8.x and from what I've seen there isn't anything major changing in the testing structure for 9.0 so it'll come down to your choice on what you prefer the ship timeline to be.

All the suggestions should have been applied now (some caused problems in VS Code when applying)


Feature to sort existing playlist rather than create a new one

Reorder tracks
Update playlist name

Decided not to pursue this, Spotify API requires making individual calls for each track individually to be repositioned.  The alternative was clearing the existing playlist of all tracks and re-adding them in the sorted order, but this causes the "Date Added" metadata to be lost, which is a bad thing.


add section about monitoring npm Enterprise

We should start by documenting the /_monitor/status endpoint, which folks can use to check the status of the main npme container.
CC: @nexdrew

Does this mean we should unconditionally allow unauthenticated requests to /_monitor/status for the website? If so, will require a small change to the web proxy.


Adds new Car State struct to hold all relevant state information

An instance of this new struct will be a local variable in the main function that is passed as part of the p_arg parameter to each task that needs it. This way we avoid all the getter functions as well as the problems that come with separate, global, cross-module variables.

Are global states not needed for all of the lights? Why are only the blinkers included?

Are global states not needed for all of the lights? Why are only the blinkers included?

There's only one thread that will ever be messing with the main lights, plus none of the tasks rely on being able to read the state of the lights. The Blinker lights are meant as an indication to the BlinkLight task of which light it should be blinking.

I had just one more comment/question. Would it be possible to make the switchstates match the structure of the switchstates enum from the switches driver? Something like:

I had just one more comment/question. Would it be possible to make the switchstates match the structure of the switchstates enum from the switches driver? Something like:
typedef struct switch_states_t {
uint8_t CRUZ_SW;
uint8_t CRUZ_EN;
uint8_t HZD_SQ;
uint8_t FR_SW;
uint8_t HEADLIGHT_SW;
uint8_t LEFT_SW;
uint8_t RIGHT_SW;
uint8_t REGEN_SW;
uint8_t IGN_1;
uint8_t IGN_2;
uint8_t REV_SW;
} switch_states_t;

We should definitely use the State type for each of these to keep it consistent. In terms of the naming, we can append the _SW to them. But also with this, I think the enum needs to be updated to have a separate FW and REV switches since they are separate inputs now to accommodate for our neutral gear.

I had just one more comment/question. Would it be possible to make the switchstates match the structure of the switchstates enum from the switches driver? Something like:
typedef struct switch_states_t {
uint8_t CRUZ_SW;
uint8_t CRUZ_EN;
uint8_t HZD_SQ;
uint8_t FR_SW;
uint8_t HEADLIGHT_SW;
uint8_t LEFT_SW;
uint8_t RIGHT_SW;
uint8_t REGEN_SW;
uint8_t IGN_1;
uint8_t IGN_2;
uint8_t REV_SW;
} switch_states_t;

We should definitely use the State type for each of these to keep it consistent. In terms of the naming, we can append the _SW to them. But also with this, I think the enum needs to be updated to have a separate FW and REV switches since they are separate inputs now to accommodate for our neutral gear.

I think the enum in the switches driver already has a discrete FR_SW and REV_SW.

I had just one more comment/question. Would it be possible to make the switchstates match the structure of the switchstates enum from the switches driver? Something like:
typedef struct switch_states_t {
uint8_t CRUZ_SW;
uint8_t CRUZ_EN;
uint8_t HZD_SQ;
uint8_t FR_SW;
uint8_t HEADLIGHT_SW;
uint8_t LEFT_SW;
uint8_t RIGHT_SW;
uint8_t REGEN_SW;
uint8_t IGN_1;
uint8_t IGN_2;
uint8_t REV_SW;
} switch_states_t;

We should definitely use the State type for each of these to keep it consistent. In terms of the naming, we can append the _SW to them. But also with this, I think the enum needs to be updated to have a separate FW and REV switches since they are separate inputs now to accommodate for our neutral gear.

I think the enum in the switches driver already has a discrete FR_SW and REV_SW.

Ah yes sorry. Should probably change the FR_SW to just a FWD_SW


Firefox support in CallComposite

I'm not sure whether this should be considered a bug or a feature request.
Describe the bug; what happened?
Starting the CallComposite preview in Firefox results in no cameras found and the following errors in the browser console:
permissions API is not supported by browser TypeError: 'camera' (value of 'name' member of PermissionDescriptor) is not a valid value for enumeration PermissionName.
permissions API is not supported by browser TypeError: 'microphone' (value of 'name' member of PermissionDescriptor) is not a valid value for enumeration PermissionName.

According to the Azure Communication Services documentation the SDK should support Firefox, but what about the UI library?
What are the steps to reproduce the issue?

Start up Firefox
Go to the CallComposite preview
Enter a valid user identifier and token
Allow the site to use your camera and microphone
The CallComposite is now loaded with 'no cameras found' under the cameras dropdown. Also the camera of the live preview cannot be enabled. And lastly the mentioned errors are logged to the browser console.

What behavior did you expect?
I would expect Firefox to be supported by the UI library.
If applicable, provide screenshots:

In what environment did you see the issue?
The Storybook demo/preview site. According to a log line in the console: This Storybook was compiled for @azure/communication-react version 1.10.0-beta.1

OS & Device: Windows on PC
Browser: Mozilla FireFox
Browser Version: 119.0.1

Hi @Mrlten as of right now firefox is only in public preview for the azure/communication-calling package and the UI library. As a result there will be some hiccups with the two SDK's. In the mean time until we fully support our calling experiences on the browser we recommend using another browser like Chrome, Edge or Safari depending on your platform. Please see our browser support docs here: https://learn.microsoft.com/en-us/azure/communication-services/concepts/voice-video-calling/calling-sdk-features

@JamesBurnside If this is going to be fixed, maybe we could leave this issue open?
As it's a useful way for us to track when firefox support will be supported - because it not 'completed' nor is it a won't fix.
I was just hit with this, and didn't find as a open issue.
Firefox support is important to our customers.

We have the same issue. any timeline for it?

(Currently doing some summer Github cleaning and I realized we unfortunately left you on a cliffhanger, and you may need to sit tight for a bit longer)
@mahdi-openup @jahead @Mrlten
Thank you for reaching out and sharing your interest in Firefox support for Azure Communication Services. At this time, Firefox is not on our immediate roadmap as we are prioritizing other key areas within Azure Communication Services.
However, we are keen to revisit this in the future and would love to gather more feedback and continue testing over the next few quarters. Your insights are invaluable to us, and we would greatly appreciate learning more about your specific customers, their use cases, and their anticipated call volumes. This information will help us better prioritize and potentially integrate Firefox support into our upcoming roadmap.
Thank you for your understanding and support. We look forward to hearing from you.

@alkwa-msft and others, at my company we've dropped the idea of using CallComposite in favor of building our own videocall component using the different ACS UI components.
We've got Firefox working reliably with the statefulCallClient / deviceManager combo. An important thing we've noticed is that if you get the cameras on Firefox using this:
await deviceManager.askDevicePermission({ video: true, audio: true });
const cameras = await deviceManager.getCameras();

The const cameras will most likely be empty (only on Firefox). The deviceManager will only return cameras of which the MediaDeviceInfo.label is set. But on Firefox there's a (small) delay between getting the device permissions and the MediaDeviceInfo labels getting set. You could add a delay between the askDevicePermission and getCameras calls but we've noticed that sometimes, even after waiting 30 seconds between those two calls, the labels still aren't set thus fetching zero available cameras.
The fix we've come up with that works reliable on Firefox is this:
await deviceManager.askDevicePermission({ video: true, audio: true });

// Asking for devices permissions again on Firefox makes sure the MediaDeviceInfo labels are set thus always getting cameras back from the getCameras() call.
if (navigator.userAgent.toLowerCase().includes('firefox')) {
    await deviceManager.askDevicePermission({ video: true, audio: true });
}

const cameras = await deviceManager.getCameras();

If I remember correctly the CallComposite doesn't use deviceManager.askDevicePermission(...) so not sure how you can fix it there.
And another thing, you will get a lot of errors in the browser console (and your favorite logging/telemetry tool), namely due to the speakers getting fetched on devices that don't support that (Firefox and most mobile browsers). That bug can be found in the CallClientProvider.tsx where the getSpeakers() call is missing a check if the browser supports fetching speakers (isSpeakerSelectionAvailable?). Also looking at that code, why are the getCameras(), getMicrophones() and getSpeakers() calls not awaited before setDeviceManager(...) is called?

@Mrlten thanks for the update! Great to hear you were unblocked here. The main reason why we don't officially support this time is that the underlying Calling SDK needs to do more verification on these other browsers which is why the UI Library had similar challenges in supporting Firefox. Specifically in the beta version of the UI Library there was a feature called Call Readiness which attempts to be smarter about supporting customers by directly blocking access here. However with the UI components you are free to do what you want but it means you will have to do more. On the bright side it does mean more flexibility to do what you want to do.
the CallComposite does this type of coding under the hood and uses a majority of the code most developers would need to write using the calling SDK we just attempted to package it all in an easy to use way however it may seem inflexible for some customers.
While we may not officially say we support Firefox out of the box due to the issue above I am happy to refine some of your information into a Github show+tell so we can point other developers to the great information you have shared here. As for the speaker check I will run this by the team and see if we need to log this as a bug and put it into our backlog!
I really appreciate you coming back to this thread and I hope you can share other issues and findings.