Poll status API after stream closes in wait_for_final_state until it is final

Summary
wait_for_final_state used to poll for status every x seconds.
This poll logic was a bit heavy on the server and hence PR #33 used the end of the results websocket stream to figure the end of the job, but there is a delay between when the stream closes and the status is updated in the db. So if status is queried in between that time it returns running. So as a short term fix until this is fixed on server side, we can poll for status after stream closes and until it is final.
Details and comments
Fixes #311
Also fixes this intermittent integration test failure due to this https://github.com/Qiskit/qiskit-ibm-runtime/runs/6585776699?check_suite_focus=true#step:5:1795

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 9 (44.44%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.06%) to 67.41%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_ibm_runtime/runtime_job.py
4
9
44.44%

Totals

Change from base Build<PHONE_NUMBER>:
-0.06%

Covered Lines:
2631

Relevant Lines:
3903

💛  - Coveralls


Port healtchecks from openvcloud 2.7 to ays monitoring

[ ] VM crash / start

This has beeen split up in multiple issues


Command Not Found - Mac OSX

Hi guys, I got through the vagrant up step but when we are meant to input
"  vagrant ssh -c "sudo /var/www/html/_install/setup.sh"  "
The terminal returns:
dyn-118-139-85-19:~ bolekvitangcol$ vagrant ssh -c "sudo /var/www/html/_install/setup.sh"
sudo: /var/www/html/_install/setup.sh: command not found
Connection to <IP_ADDRESS> closed.
dyn-118-139-85-19:~ bolekvitangcol$
I tried implementing the other things in the other thread but still doesn't work. Mine just says "Connection to <IP_ADDRESS> closed." and I don't know what to do.

Seems a little strange. Could you try the following

vagrant ssh
cd /var/www/html/_install
sudo ./setup.sh

Same issue here. Mac OS x. Checked /var/ folder .. no www folder there. So needs a correct path.
Thank you

@MandarKarhade It seems that you are on "lucid32" (which is a version of Ubuntu). The omgcatz Vagrantfile calls for "debian/jessie64". I'm not sure how that happened, but it could be part of your issue.

Hi @cadejscroggins Thanx for reply. I checked it later on jessie64 too. But same thing happened. So currently I am using re-track website to get those songs. But I would love to do it on my own virtual machine than some other website.
Thank you so much

Seems odd how you managed to get onto a diff VM. :/ Are you running a clean repo from github?


removing internal css use

#23

Coverage remained the same at 80.18% when pulling f0dd2a0f1f0668b78b6308949943c0bd79aac522 on jread-usgs:master into 854d9156097b9146ff25bc51b83132b488d419fa on USGS-R:master.


Upgrade to Castle.Core 4.4.0 / Castle.Windsor 5.0.0

New packages were NOT backward compatible, due to changes in internal classes.
For more information:
Castle.Windsor: Issue #444

Adam,
It is strange that Travis fails and locally all tests are green on the full .Net framework v4.7.2.
It seems that Travis tries to run the tests in a mono environment.

Thanks Danny, I'll take a look at this at the weekend. I originally setup the build to run on mono because I think it was the only option I could find at the time, but I think I can change that now.

Danny - just to keep you in the loop, I'm setting up an Azure Pipelines build for this project and switching it to using a Windows build agent. Once I've done that we can double check if the build works against your branch.
I'm just having a bit of trouble getting the build's version number passed through to msbuild at the moment. I'll try to get this sorted as soon as I can.

Adam,
Thank you for the fast response, if you need some help, say it.

Hey Danny - I've updated the repo to use Azure Pipelines for building. The build should run on a Windows agent with VS 2017.
Can you rebase your changes against master and update your PR and we can check if they build correctly?
If so, we can get them merged, and I'll remove the Travis build.

Hi Adam,
Build on Azure is green, but the tests didn't run there?

I think they did - you can see them in the build log. I think I just need to configure it to output the tests in a way that pipelines can pick up.
When I've got another bit of spare time I'll sort that, remove the Travis builds and get your change merged.

Danny - that should be the test results sorted. If you rebase again it should show up correctly.
Once that's done I'll get your changes merged and publish a new release.

Rebases and all green :)

Great - thanks a lot Danny! I'll get this merged and publish a new version.

Hi Danny, just to let you know that's the updated package published. It's available at https://www.nuget.org/packages/WindsorAppConfigFacility/<IP_ADDRESS>.
Thanks again for the contribution. Unfortunately I'm not using Windsor on a day to day basis at the moment so I'm a bit out of touch, so it's great that you're willing to help out.


[1.12.2] [Request] Blacklist for generation

I would like to ask if it is possible to add a blacklist for biomes and dimensions to the config section for tree generation. I work on a modpack and Thaumcraft spawns trees in biomes, in which they are not appropriate, e. g. Abyssalcraft or some BOP biomes.

This would be a great addition for mod packs. 🙂

That is the reason why I requested this. :D


Qdrant Vector Database support

It would be great if you could add Qdrant vector database to your project.

Hello, the library does support Qdrant already, I seem to have missed updating the documentation - will fix this. In the meantime, you cann use Qdrant by doing the following -

Install qdrant support package @qdrant/js-client-rest
Import QdrantDb from @llm-tools/embedjs/vectorDb/qdrant
Set vectorDB to QdrantDb like so .setVectorDb(new QdrantDb({ apiKey: string; url: string; clusterName: string }))

Added to documentation


sc-2405 allow contact updates on UpdateVASP

This modifies the UpdateVASP endpoint so that it allows updates to the VASP contacts. I ran into a lot of design decisions with this one so I have some questions and comments in the PR.

Codecov Report

Merging #314 (6343a80) into main (74b22c5) will decrease coverage by 0.14%.
The diff coverage is 21.92%.

@@            Coverage Diff             @@
##             main     #314      +/-   ##
==========================================
- Coverage   45.98%   45.84%   -0.15%
==========================================
  Files          61       61
  Lines        7491     7582      +91
==========================================
+ Hits         3445     3476      +31
- Misses       3403     3451      +48
- Partials      643      655      +12

Impacted Files
Coverage Δ

pkg/gds/emails/client.go
7.83% <0.00%> (-0.30%)
:arrow_down:

pkg/gds/models/v1/contacts.go
54.67% <0.00%> (-19.12%)
:arrow_down:

pkg/gds/admin.go
55.36% <51.02%> (+0.35%)
: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 74b22c5...6343a80. Read the comment docs.


An Error Occurred An unknown error occurred while adding new user

Describe the Bug
When was trying to add new user by the link https://www.bookstack.fbi.ie/settings/users got the error message:
An Error Occurred An unknown error occurred while adding new user
Steps to Reproduce

go to https://www.bookstack.fbi.ie/settings/
click to Users
Enter user details
click save

Expected Behaviour
An Error Occurred An unknown error occurred while adding new user
Screenshots or Additional Context
No response
Browser Details
Chrome Dev 104.0.5112.81 on Linux
Exact BookStack Version
22.04.2
PHP Version
7.4.30
Hosting Environment
AlmaLinux release 8.6 (Sky Tiger)

Hi ssddandbrown,
the nginx error log is showoing:
2022/08/18 14:33:59 [error] 2273#2273: *13816 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ErrorException: Undefined variable: cspNonce in /var/www/bookstack/storage/framework/views/58966642253d57ffe4f154d44ae65835f6011243.php:53
Stack trace:
#0 /var/www/bookstack/storage/framework/views/58966642253d57ffe4f154d44ae65835f6011243.php(53): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(107): require('/var/www/bookst...')
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(108): Illuminate\Filesystem\Filesystem::Illuminate\Filesystem{closure}()
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(58): Illuminate\Filesystem\Filesystem->getRequire()
#4 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(61): Illuminate\View\Engines\PhpEngine->evaluatePath()
#5 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/View.php(139): Il...PHP message: PHP Fatal error:  Uncaught ErrorException: Undefined variable: cspNonce in /var/www/bookstack/storage/framework/views/58966642253d57ffe4f154d44ae65835f6011243.php:53
2022/08/18 14:34:30 [error] 2278#2278: *13932 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ErrorException: Undefined variable: cspNonce in /var/www/bookstack/storage/framework/views/58966642253d57ffe4f154d44ae65835f6011243.php:53
Stack trace:
#0 /var/www/bookstack/storage/framework/views/58966642253d57ffe4f154d44ae65835f6011243.php(53): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(107): require('/var/www/bookst...')
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(108): Illuminate\Filesystem\Filesystem::Illuminate\Filesystem{closure}()
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(58): Illuminate\Filesystem\Filesystem->getRequire()
#4 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(61): Illuminate\View\Engines\PhpEngine->evaluatePath()
#5 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/View.php(139): Il...PHP message: PHP Fatal error:  Uncaught ErrorException: Undefined variable: cspNonce in /var/www/bookstack/storage/framework/views/58966642253d57ffe4f154d44ae65835f6011243.php:53
Stack trace:
#0 /var/www/bookstack/storage/framework/views/58966642253d57ffe4f154d44ae65835f6011243.php(53): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(107): require('/var/www/bookst...')
#2 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(108): Illuminate\Filesystem\Filesystem::Illuminate\Filesystem{closure}()
#3 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(58): Illuminate\Filesystem\Filesystem->getRequire()
#4 /var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(61): Illuminate\View\Engines\PhpEngine->evaluatePath()
Laravel log: https://pastebin.com/K75bzf3c
With Regards,
Andrei.

This looks to just be down to invalid email configuration.
Please configure your SMTP details within you .env file. There's the ability to send a test email within the "Settings > Maintenance" section of BookStack for rapid testing & validation.

we fixed it, thanks! it was unclear in the log files though.

Good to hear, will therefore close this off.

@shinobi31337 How did you fix the error?

@mosesmbadi just added smtp details to .env file and it fixed the issue.


Add automatic build script for examples

This script needs zsh

zsh is a rare dependency. How about sh?

I could not make sh nor bash working properly, that is why I think zsh is better than nothing.

You are not the first one to report that. But there is already a way to build the examples:
./configure --enable-examples
make

But yes, this should be written in the README ...

Fixed by #127

Great


InAppPurchase response always is "invalid items"

Hi guys,
I have a big problem, when a test on my iphone with my variable itemSkus initialized, always get the next message:
"InAppPurchase   ###  didReceiveResponse :: Valid Product Count ::  0"
Never get a "valid items", even with a double checking list:

Check the "Id Pack" from Itunes Connect is the same from Xcode's bundle identifier.
Check the list of "Products ID" from Itunes Connect is the same from variable itemSkus = {
ios: [ ....]}

Version of react-native-iap
0.2.17
Expected behavior
A list of valid items from itemSkus array, with the correct format JSON, by example  : {price: ? , productId: ?}
Actual behavior
A list empty and a next log
"InAppPurchase   ###  didReceiveResponse :: Valid Product Count ::  0"
Steps to reprodue the behabior

import * as RNIap from 'react-native-iap';

initialized a const itemSkus = {
ios: ['id1', 'id2' ,'id3']};

Put the next snippet on componentDidMount()
items =  RNIap.getItems(itemSkus)
3.a. Put the next snippet on custom method onPress:
items =  RNIap.getItems(itemSkus)

The 'Valid Product Count :: n' is from productRequest method in iOS, which is several times tested.
I guess the definition of products in iTunesConnect is not completed. Would you share the settings of them?
Another issue is.
You have to wait some time to test after setting this products in iTunesConnect.
It took sometimes several hours or a day.
Implementation and test in IAP of iOS takes time.

Issue too old. Closing


Initial authorization code

DO NOT MERGE. Using a non-upstreamed custom vendored package

Included in #8


docs: fix indentation and add missing item

Description

The JSON code block's indentation has been corrected for better readability and proper JSON structure
Added the inputs property to build to match the actual turbo.json content

Testing Instructions

Allow CI Workflow Run

[ ] approve CI run for commit: 0d9c2e458f339a605d53b4cc3f0bfb08d785ec5a

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

Allow CI Workflow Run

[ ] approve CI run for commit: 0d9c2e458f339a605d53b4cc3f0bfb08d785ec5a

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

Hi, thanks for the contribution!
It looks like we're missing the last } and the trailing comma does need to be removed, but we're happy with the indentation and configuration shown.
Can you update only for the } and comma? Thanks!

@anthonyshew Thanks for your feedback! I'll update the code accordingly.

@anthonyshew Hmm, I added the missing } and removed the comma without formatting, but it seems that lint-staged adds indentation on git commit. What should I do?

Hm, that sounds like a problem on our end. If you could git commit -m "your message" --no-verify to work around lint-staged for now, I'll look into that later.

@anthonyshew Thank you for the advice. I have committed using --no-verify.


Add non_zero numeric types where acceptable

Discriminant elision may sometimes be effected if the underlying type has a niche. This fact can be exploited to save one machine word's worth of space in enumerations which are option-like (i.e. can be discriminated using a single bit).

Can this be made to consistently save a machine word in practice? Seems like we would be praying to the compiler gods instead of being sure of the actual resulting machine code.

Can this be made to consistently save a machine word in practice? Seems like we would be praying to the compiler gods instead of being sure of the actual resulting machine code.

The niche optimisation is guaranteed by the compiler.
Moreover, the niche is carried over to the larger structure, so a struct Object { a: NonZeroU32 } has a niche, and Option<Object> saves a machine word.


Otp

Otp

@Jaat234642

@ghost-OTPBOT

@ghost-OTPBOT

@Jaat234642 @ghost-OTPBOT

`@```


OSX - Timer pauses when computer sleeps

Hello,
I recently wanted to try the pomodoro technique so I downloaded your app which looks really nice.
I noticed that when I let it run on my lap top and I am doing something else like reading, at some point my computer will sleep and the timer of Tomighty just pauses. It resumes when computer wakes again but at the same time where it paused ...
Is it possible to do something ?
Thanks for your help!

Same issue here. I'll use KeepingYouAwake in the meantime, but it's a bit annoying, of course. tomighty could adapt the use of the caffeinate command that comes with macOS


Searching for a service returns some internal responses but does not forward anything to listener

Hi,
I am trying to search for a service and the service does provide several responses to the query. However, the application never yields these to the listener. Can i access some of these responses some how?
ue }, ttl: 120, created:<PHONE_NUMBER>990, expires:<PHONE_NUMBER>990, refresh:<PHONE_NUMBER>990 }, alias: "service_name_here.local." }
2024-06-20T07:30:55.991442Z DEBUG mdns_sd::dns_parser: 1213: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "service_name_here.local.", ty: 1, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>991, expires:<PHONE_NUMBER>991, refresh:<PHONE_NUMBER>991 }, address: <IP_ADDRESS> }
2024-06-20T07:30:55.991997Z DEBUG mdns_sd::service_daemon: 1624: handle_response: 2 answers 0 authorities 0 additionals
2024-06-20T07:30:55.992919Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "service_name_here.local.", ty: 1, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>801, expires:<PHONE_NUMBER>801, refresh:<PHONE_NUMBER>801 }, address: <IP_ADDRESS> }
2024-06-20T07:30:55.995023Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle: 000000012c }, sock=444, ev=Event { key: 0, readable: true, writable: false }
2024-06-20T07:30:55.995612Z TRACE polling: 499: Poller::wait(_, Some(6.759s))
2024-06-20T07:30:55.996429Z TRACE polling::iocp: 258: wait: handle=IoCompletionPort { handle: 000000012c }, timeout=Some(6.759s)
2024-06-20T07:30:56.807907Z TRACE polling::iocp: 285: new events: handle=IoCompletionPort { handle: 000000012c }, len=1
2024-06-20T07:30:56.808750Z DEBUG mdns_sd::service_daemon: 418: event received with key 0
2024-06-20T07:30:56.809171Z DEBUG mdns_sd::service_daemon: 1422: received 165 bytes from IP: <IP_ADDRESS>
2024-06-20T07:30:56.809558Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 5 answers 0 authorities 0 additionals
2024-06-20T07:30:56.810004Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-20T07:30:56.810946Z DEBUG mdns_sd::dns_parser: 1088: read_others: 5
2024-06-20T07:30:56.811504Z DEBUG mdns_sd::dns_parser: 1213: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._ssh._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>811, expires:<PHONE_NUMBER>811, refresh:<PHONE_NUMBER>811 }, text: [0] }
2024-06-20T07:30:56.812326Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_ssh._tcp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>812, expires:<PHONE_NUMBER>812, refresh:<PHONE_NUMBER>812 }, alias: "service_name_here._ssh._tcp.local." }
2024-06-20T07:30:56.813005Z DEBUG mdns_sd::dns_parser: 1213: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._ssh._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>812, expires:<PHONE_NUMBER>812, refresh:<PHONE_NUMBER>812 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 22 }
2024-06-20T07:30:56.813656Z DEBUG mdns_sd::dns_parser: 1213: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "service_name_here.local.", ty: 1, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>813, expires:<PHONE_NUMBER>813, refresh:<PHONE_NUMBER>813 }, address: <IP_ADDRESS> }
2024-06-20T07:30:56.814483Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_services._dns-sd._udp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>814, expires:<PHONE_NUMBER>814, refresh:<PHONE_NUMBER>814 }, alias: "_ssh._tcp.local." }
2024-06-20T07:30:56.815199Z DEBUG mdns_sd::service_daemon: 1624: handle_response: 5 answers 0 authorities 0 additionals
2024-06-20T07:30:56.815643Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._ssh._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>800, expires:<PHONE_NUMBER>800, refresh:<PHONE_NUMBER>800 }, text: [0] }
2024-06-20T07:30:56.816370Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._ssh._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>807, expires:<PHONE_NUMBER>807, refresh:<PHONE_NUMBER>807 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 22 }
2024-06-20T07:30:56.817318Z DEBUG mdns_sd::service_daemon: 1422: received 154 bytes from IP: <IP_ADDRESS>
2024-06-20T07:30:56.817708Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 4 answers 0 authorities 0 additionals
2024-06-20T07:30:56.818146Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-20T07:30:56.818532Z DEBUG mdns_sd::dns_parser: 1088: read_others: 4
2024-06-20T07:30:56.819027Z DEBUG mdns_sd::dns_parser: 1213: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._sftp-ssh._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>819, expires:<PHONE_NUMBER>819, refresh:<PHONE_NUMBER>819 }, text: [0] }
2024-06-20T07:30:56.819824Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_sftp-ssh._tcp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>819, expires:<PHONE_NUMBER>819, refresh:<PHONE_NUMBER>819 }, alias: "service_name_here._sftp-ssh._tcp.local." }
2024-06-20T07:30:56.820567Z DEBUG mdns_sd::dns_parser: 1213: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._sftp-ssh._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>820, expires:<PHONE_NUMBER>820, refresh:<PHONE_NUMBER>820 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 22 }
2024-06-20T07:30:56.821313Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_services._dns-sd._udp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>821, expires:<PHONE_NUMBER>821, refresh:<PHONE_NUMBER>821 }, alias: "_sftp-ssh._tcp.local." }
2024-06-20T07:30:56.822345Z DEBUG mdns_sd::service_daemon: 1624: handle_response: 4 answers 0 authorities 0 additionals
2024-06-20T07:30:56.822861Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._sftp-ssh._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>805, expires:<PHONE_NUMBER>805, refresh:<PHONE_NUMBER>805 }, text: [0] }
2024-06-20T07:30:56.823604Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._sftp-ssh._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>805, expires:<PHONE_NUMBER>805, refresh:<PHONE_NUMBER>805 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 22 }
2024-06-20T07:30:56.824686Z DEBUG mdns_sd::service_daemon: 1422: received 144 bytes from IP: <IP_ADDRESS>
2024-06-20T07:30:56.825149Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 3 answers 0 authorities 0 additionals
2024-06-20T07:30:56.825670Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-20T07:30:56.826116Z DEBUG mdns_sd::dns_parser: 1088: read_others: 3
2024-06-20T07:30:56.826644Z DEBUG mdns_sd::dns_parser: 1213: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._other._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>826, expires:<PHONE_NUMBER>826, refresh:<PHONE_NUMBER>826 }, text: [6, 83, 67, 71, 45, 67, 85] }
2024-06-20T07:30:56.828295Z DEBUG mdns_sd::dns_parser: 1213: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._other._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>828, expires:<PHONE_NUMBER>828, refresh:<PHONE_NUMBER>828 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 5080 }
2024-06-20T07:30:56.830131Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_services._dns-sd._udp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>830, expires:<PHONE_NUMBER>830, refresh:<PHONE_NUMBER>830 }, alias: "_other._tcp.local." }
2024-06-20T07:30:56.830817Z DEBUG mdns_sd::service_daemon: 1624: handle_response: 3 answers 0 authorities 0 additionals
2024-06-20T07:30:56.831398Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._other._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>802, expires:<PHONE_NUMBER>802, refresh:<PHONE_NUMBER>802 }, text: [6, 83, 67, 71, 45, 67, 85] }
2024-06-20T07:30:56.832204Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._other._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>801, expires:<PHONE_NUMBER>801, refresh:<PHONE_NUMBER>801 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 5080 }
2024-06-20T07:30:56.833156Z DEBUG mdns_sd::service_daemon: 1422: received 203 bytes from IP: <IP_ADDRESS>
2024-06-20T07:30:56.833603Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 5 answers 0 authorities 0 additionals
2024-06-20T07:30:56.833990Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-20T07:30:56.834457Z DEBUG mdns_sd::dns_parser: 1088: read_others: 5
2024-06-20T07:30:56.835013Z DEBUG mdns_sd::dns_parser: 1213: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._block._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>834, expires:<PHONE_NUMBER>834, refresh:<PHONE_NUMBER>834 }, text: [8, 66, 76, 79, 81, 66, 65, 83, 69] }
2024-06-20T07:30:56.835812Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_block._tcp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>835, expires:<PHONE_NUMBER>835, refresh:<PHONE_NUMBER>835 }, alias: "service_name_here._block._tcp.local." }
2024-06-20T07:30:56.836440Z DEBUG mdns_sd::dns_parser: 1213: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._block._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>836, expires:<PHONE_NUMBER>836, refresh:<PHONE_NUMBER>836 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 22 }
2024-06-20T07:30:56.837244Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_services._dns-sd._udp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>837, expires:<PHONE_NUMBER>837, refresh:<PHONE_NUMBER>837 }, alias: "_block._tcp.local." }
2024-06-20T07:30:56.837964Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_other._tcp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>837, expires:<PHONE_NUMBER>837, refresh:<PHONE_NUMBER>837 }, alias: "service_name_here._other._tcp.local." }
2024-06-20T07:30:56.838608Z DEBUG mdns_sd::service_daemon: 1624: handle_response: 5 answers 0 authorities 0 additionals
2024-06-20T07:30:56.838968Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "service_name_here._block._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>813, expires:<PHONE_NUMBER>813, refresh:<PHONE_NUMBER>813 }, text: [8, 66, 76, 79, 81, 66, 65, 83, 69] }
2024-06-20T07:30:56.839822Z DEBUG mdns_sd::service_daemon: 2451: FLUSH one record: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "service_name_here._block._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>814, expires:<PHONE_NUMBER>814, refresh:<PHONE_NUMBER>814 }, priority: 0, weight: 0, host: "service_name_here.local.", port: 22 }

I assume the log is from the client (querier) side ServiceDaemon. Normally I would expected to see at least service found message. Can you share how you called ServiceDaemon::browse() ?

Hi @keepsimple1,
Thank you for the response. I have just copied the example code.
    let targets = tracing_subscriber::filter::Targets::new()
        .with_target("fp_connect_gui", tracing::metadata::LevelFilter::TRACE)
        .with_default(tracing::metadata::LevelFilter::TRACE);

    let mut fmt_layer = tracing_subscriber::fmt::layer()
        .with_target(true)
        .with_level(true)
        .with_line_number(true)
        .with_ansi(false);

    fmt_layer.set_ansi(false);

    tracing_subscriber::registry()
        .with(fmt_layer)
        .with(targets)
        .init();

    // Create a daemon
    let mdns = ServiceDaemon::new().expect("Failed to create daemon");

    // Browse for a service type.
    let receiver = mdns.browse(SERVICE_NAME).expect("Failed to browse");
    // let monitor = mdns.monitor().expect("Failed to monitor");

    // Receive the browse events in sync or async. Here is
    // an example of using a thread. Users can call `receiver.recv_async().await`
    // if running in async environment.
    std::thread::spawn(move || {
        while let Ok(event) = receiver.recv() {
            match event {
                ServiceEvent::ServiceResolved(info) => {
                    println!("Resolved a new service: {}", info.get_fullname());
                }
                other_event => {
                    println!("Received other event: {:?}", &other_event);
                }
            }
        }
    });
    // std::thread::spawn(move || {
    //     while let Ok(event) = monitor.recv() {
    //         dbg!(event);
    //     }
    // });

    // Gracefully shutdown the daemon.
    std::thread::sleep(std::time::Duration::from_secs(3600));
    mdns.shutdown().unwrap();

    let receiver = mdns.browse(SERVICE_NAME).expect("Failed to browse");

What SERVICE_NAME is used here?   I cannot see that in the previous debug log.  I was trying to look for this line:
https://github.com/keepsimple1/mdns-sd/blob/5ca98cb683bf93bc103656e36000e2b0c6bcaae6/src/service_daemon.rs#L1378
but cannot find it in your debug log either.  Was the log collected on the querier side?

He @keepsimple1,
This is a full log from one search and one reply on the last line you can see the next search starting:
2024-06-24T09:40:09.447346Z TRACE polling::iocp: 111: new: handle=IoCompletionPort { handle:<PHONE_NUMBER> }
2024-06-24T09:40:09.458064Z DEBUG mdns_sd::service_daemon: 742: new socket bind to [::]:5353
2024-06-24T09:40:09.460298Z DEBUG mdns_sd::service_daemon: 742: new socket bind to [::]:5353
2024-06-24T09:40:09.461515Z DEBUG mdns_sd::service_daemon: 742: new socket bind to <IP_ADDRESS>:5353
2024-06-24T09:40:09.463321Z DEBUG mdns_sd::service_daemon: 742: new socket bind to [::]:5353
2024-06-24T09:40:09.464465Z DEBUG mdns_sd::service_daemon: 742: new socket bind to [::]:5353
2024-06-24T09:40:09.466270Z DEBUG mdns_sd::service_daemon: 742: new socket bind to <IP_ADDRESS>:5353
2024-06-24T09:40:09.468616Z DEBUG mdns_sd::service_daemon: 742: new socket bind to [::]:5353
2024-06-24T09:40:09.469539Z DEBUG mdns_sd::service_daemon: 742: new socket bind to <IP_ADDRESS>:5353
2024-06-24T09:40:09.471765Z DEBUG mdns_sd::service_daemon: 742: new socket bind to [::]:5353
2024-06-24T09:40:09.473114Z DEBUG mdns_sd::service_daemon: 742: new socket bind to <IP_ADDRESS>:5353
2024-06-24T09:40:09.475690Z DEBUG mdns_sd::service_daemon: 742: new socket bind to [::]:5353
2024-06-24T09:40:09.476717Z DEBUG mdns_sd::service_daemon: 742: new socket bind to <IP_ADDRESS>:5353
2024-06-24T09:40:09.478835Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=300, ev=Event { key:<PHONE_NUMBER>3709551614, readable: true, writable: false }
2024-06-24T09:40:09.479909Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=444, ev=Event { key: 0, readable: true, writable: false }
2024-06-24T09:40:09.480569Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=448, ev=Event { key: 1, readable: true, writable: false }
2024-06-24T09:40:09.481270Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=420, ev=Event { key: 2, readable: true, writable: false }
2024-06-24T09:40:09.482055Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=424, ev=Event { key: 3, readable: true, writable: false }
2024-06-24T09:40:09.482747Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=436, ev=Event { key: 4, readable: true, writable: false }
2024-06-24T09:40:09.483410Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=456, ev=Event { key: 5, readable: true, writable: false }
2024-06-24T09:40:09.484128Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=440, ev=Event { key: 6, readable: true, writable: false }
2024-06-24T09:40:09.485073Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=452, ev=Event { key: 7, readable: true, writable: false }
2024-06-24T09:40:09.486237Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=432, ev=Event { key: 8, readable: true, writable: false }
2024-06-24T09:40:09.487268Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=468, ev=Event { key: 9, readable: true, writable: false }
2024-06-24T09:40:09.487986Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=428, ev=Event { key: 10, readable: true, writable: false }
2024-06-24T09:40:09.488391Z TRACE polling::iocp: 141: add: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=464, ev=Event { key: 11, readable: true, writable: false }
2024-06-24T09:40:09.488823Z TRACE polling: 499: Poller::wait(_, Some(30s))
2024-06-24T09:40:09.489182Z TRACE polling::iocp: 258: wait: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, timeout=Some(30s)
2024-06-24T09:40:09.489763Z TRACE polling::iocp: 285: new events: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, len=5
2024-06-24T09:40:09.490212Z DEBUG mdns_sd::service_daemon: 418: event received with key<PHONE_NUMBER>3709551614
2024-06-24T09:40:09.490906Z DEBUG mdns_sd::service_daemon: 1954: signal socket recvd: Command Browse
2024-06-24T09:40:09.492001Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=300, ev=Event { key:<PHONE_NUMBER>3709551614, readable: true, writable: false }
2024-06-24T09:40:09.492604Z DEBUG mdns_sd::service_daemon: 418: event received with key 1
2024-06-24T09:40:09.493325Z DEBUG mdns_sd::service_daemon: 1422: received 12 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.494026Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.494647Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-24T09:40:09.495258Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.496054Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=448, ev=Event { key: 1, readable: true, writable: false }
2024-06-24T09:40:09.496753Z DEBUG mdns_sd::service_daemon: 418: event received with key 5
2024-06-24T09:40:09.497393Z DEBUG mdns_sd::service_daemon: 1422: received 12 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.498035Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.498448Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-24T09:40:09.498926Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.499623Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=456, ev=Event { key: 5, readable: true, writable: false }
2024-06-24T09:40:09.499983Z DEBUG mdns_sd::service_daemon: 418: event received with key 6
2024-06-24T09:40:09.500575Z DEBUG mdns_sd::service_daemon: 1422: received 12 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.501113Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.501678Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-24T09:40:09.502165Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.502819Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=440, ev=Event { key: 6, readable: true, writable: false }
2024-06-24T09:40:09.503266Z DEBUG mdns_sd::service_daemon: 418: event received with key 9
2024-06-24T09:40:09.503677Z DEBUG mdns_sd::service_daemon: 1422: received 12 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.504447Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.504812Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-24T09:40:09.505378Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.506326Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=468, ev=Event { key: 9, readable: true, writable: false }
2024-06-24T09:40:09.508279Z DEBUG mdns_sd::service_daemon: 1378: Sending multicast queries: [("_device-name._tcp.local", 12)]
2024-06-24T09:40:09.509610Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.510599Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{7702AA1D-10D3-430F-B1EB-3A9CF4BCB37F}", addr: V6(Ifv6Addr { ip: fe80::4ca4:4fa5:713b:13c8, netmask: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff, broadcast: None }), index: Some(26) }
2024-06-24T09:40:09.511774Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.513609Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{7702AA1D-10D3-430F-B1EB-3A9CF4BCB37F}", addr: V4(Ifv4Addr { ip: <IP_ADDRESS>, netmask: <IP_ADDRESS>, broadcast: Some(<IP_ADDRESS>) }), index: Some(26) }
2024-06-24T09:40:09.513817Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.514417Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{DDABA0CE-CB81-46A3-8419-3AAB73E12297}", addr: V6(Ifv6Addr { ip: fe80::405:1e14:e86a:66e8, netmask: ::, broadcast: None }), index: Some(40) }
2024-06-24T09:40:09.515176Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.515886Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{DDABA0CE-CB81-46A3-8419-3AAB73E12297}", addr: V4(Ifv4Addr { ip: <IP_ADDRESS>, netmask: <IP_ADDRESS>, broadcast: Some(<IP_ADDRESS>) }), index: Some(40) }
2024-06-24T09:40:09.516164Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.516761Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{1342F511-09D3-458C-95F3-A8FDE793AA79}", addr: V4(Ifv4Addr { ip: <IP_ADDRESS>, netmask: <IP_ADDRESS>, broadcast: Some(<IP_ADDRESS>) }), index: Some(55) }
2024-06-24T09:40:09.517266Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.517806Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{37217669-42DA-4657-A55B-0D995D328250}", addr: V4(Ifv4Addr { ip: <IP_ADDRESS>, netmask: <IP_ADDRESS>, broadcast: Some(<IP_ADDRESS>) }), index: Some(15) }
2024-06-24T09:40:09.517959Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.518280Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{1342F511-09D3-458C-95F3-A8FDE793AA79}", addr: V6(Ifv6Addr { ip: fe80::65c7:9f42:a1c1:c77f, netmask: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff, broadcast: None }), index: Some(55) }
2024-06-24T09:40:09.518448Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.518778Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{37217669-42DA-4657-A55B-0D995D328250}", addr: V6(Ifv6Addr { ip: fd7a:115c:a1e0:ab12:4843:cd96:6258:3f57, netmask: ffff:ffff:ffff::, broadcast: None }), index: Some(15) }
2024-06-24T09:40:09.519172Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.519997Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{20F10A59-1976-45A4-9A4A-FD4B95E34516}", addr: V4(Ifv4Addr { ip: <IP_ADDRESS>, netmask: <IP_ADDRESS>, broadcast: Some(<IP_ADDRESS>) }), index: Some(111) }
2024-06-24T09:40:09.520302Z DEBUG mdns_sd::service_daemon: 2789: Broadcasting query: 1 questions 0 answers 0 authorities 0 additional
2024-06-24T09:40:09.521011Z DEBUG mdns_sd::service_daemon: 2826: sent out 36 bytes on interface Interface { name: "{20F10A59-1976-45A4-9A4A-FD4B95E34516}", addr: V6(Ifv6Addr { ip: fe80::dcb3:6b08:e345:6963, netmask: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff, broadcast: None }), index: Some(111) }
2024-06-24T09:40:09.521374Z TRACE polling: 499: Poller::wait(_, Some(1s))
2024-06-24T09:40:09.521828Z TRACE polling::iocp: 258: wait: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, timeout=Some(1s)
2024-06-24T09:40:09.522040Z TRACE polling::iocp: 285: new events: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, len=4
2024-06-24T09:40:09.522186Z DEBUG mdns_sd::service_daemon: 418: event received with key 1
2024-06-24T09:40:09.522326Z DEBUG mdns_sd::service_daemon: 1422: received 36 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.522434Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 1 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.522557Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 1
2024-06-24T09:40:09.522731Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.522956Z DEBUG mdns_sd::service_daemon: 1811: question: DnsQuestion { entry: DnsEntry { name: "_device-name._tcp.local.", ty: 12, class: 1, cache_flush: false } }
2024-06-24T09:40:09.523125Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=448, ev=Event { key: 1, readable: true, writable: false }
2024-06-24T09:40:09.523277Z DEBUG mdns_sd::service_daemon: 418: event received with key 5
2024-06-24T09:40:09.523453Z DEBUG mdns_sd::service_daemon: 1422: received 36 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.523705Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 1 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.523846Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 1
2024-06-24T09:40:09.524043Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.524240Z DEBUG mdns_sd::service_daemon: 1811: question: DnsQuestion { entry: DnsEntry { name: "_device-name._tcp.local.", ty: 12, class: 1, cache_flush: false } }
2024-06-24T09:40:09.524745Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=456, ev=Event { key: 5, readable: true, writable: false }
2024-06-24T09:40:09.525110Z DEBUG mdns_sd::service_daemon: 418: event received with key 6
2024-06-24T09:40:09.525260Z DEBUG mdns_sd::service_daemon: 1422: received 36 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.525389Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 1 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.525476Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 1
2024-06-24T09:40:09.525620Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.525809Z DEBUG mdns_sd::service_daemon: 1811: question: DnsQuestion { entry: DnsEntry { name: "_device-name._tcp.local.", ty: 12, class: 1, cache_flush: false } }
2024-06-24T09:40:09.526267Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=440, ev=Event { key: 6, readable: true, writable: false }
2024-06-24T09:40:09.526519Z DEBUG mdns_sd::service_daemon: 418: event received with key 9
2024-06-24T09:40:09.526643Z DEBUG mdns_sd::service_daemon: 1422: received 36 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.526849Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 1 questions 0 answers 0 authorities 0 additionals
2024-06-24T09:40:09.527167Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 1
2024-06-24T09:40:09.527354Z DEBUG mdns_sd::dns_parser: 1088: read_others: 0
2024-06-24T09:40:09.527609Z DEBUG mdns_sd::service_daemon: 1811: question: DnsQuestion { entry: DnsEntry { name: "_device-name._tcp.local.", ty: 12, class: 1, cache_flush: false } }
2024-06-24T09:40:09.528092Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=468, ev=Event { key: 9, readable: true, writable: false }
2024-06-24T09:40:09.528397Z TRACE polling: 499: Poller::wait(_, Some(993ms))
2024-06-24T09:40:09.528630Z TRACE polling::iocp: 258: wait: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, timeout=Some(993ms)
2024-06-24T09:40:09.707253Z TRACE polling::iocp: 285: new events: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, len=1
2024-06-24T09:40:09.707991Z DEBUG mdns_sd::service_daemon: 418: event received with key 1
2024-06-24T09:40:09.708612Z DEBUG mdns_sd::service_daemon: 1422: received 137 bytes from IP: <IP_ADDRESS>
2024-06-24T09:40:09.709338Z DEBUG mdns_sd::dns_parser: 1050: read_header: id 0, 0 questions 4 answers 0 authorities 0 additionals
2024-06-24T09:40:09.709806Z DEBUG mdns_sd::dns_parser: 1062: read_questions: 0
2024-06-24T09:40:09.710361Z DEBUG mdns_sd::dns_parser: 1088: read_others: 4
2024-06-24T09:40:09.711307Z DEBUG mdns_sd::dns_parser: 1213: DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_device-name._tcp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>710, expires:<PHONE_NUMBER>710, refresh:<PHONE_NUMBER>710 }, alias: "specific-device-12._device-name._tcp.local." }
2024-06-24T09:40:09.711998Z DEBUG mdns_sd::dns_parser: 1213: DnsTxt { record: DnsRecord { entry: DnsEntry { name: "specific-device-12._device-name._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>711, expires:<PHONE_NUMBER>711, refresh:<PHONE_NUMBER>711 }, text: [6, 83, 67, 71, 45, 67, 85] }
2024-06-24T09:40:09.712954Z DEBUG mdns_sd::dns_parser: 1213: DnsSrv { record: DnsRecord { entry: DnsEntry { name: "specific-device-12._device-name._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>712, expires:<PHONE_NUMBER>712, refresh:<PHONE_NUMBER>712 }, priority: 0, weight: 0, host: "specific-device-12.local.", port: 5080 }
2024-06-24T09:40:09.713848Z DEBUG mdns_sd::dns_parser: 1213: DnsAddress { record: DnsRecord { entry: DnsEntry { name: "specific-device-12.local.", ty: 1, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>713, expires:<PHONE_NUMBER>713, refresh:<PHONE_NUMBER>713 }, address: <IP_ADDRESS> }
2024-06-24T09:40:09.714446Z DEBUG mdns_sd::service_daemon: 1624: handle_response: 4 answers 0 authorities 0 additionals
2024-06-24T09:40:09.715421Z ERROR mdns_sd::service_daemon: 1672: record: Some((DnsPointer { record: DnsRecord { entry: DnsEntry { name: "_device-name._tcp.local.", ty: 12, class: 1, cache_flush: false }, ttl: 4500, created:<PHONE_NUMBER>710, expires:<PHONE_NUMBER>710, refresh:<PHONE_NUMBER>710 }, alias: "specific-device-12._device-name._tcp.local." }, true))
2024-06-24T09:40:09.740687Z ERROR mdns_sd::service_daemon: 1672: record: Some((DnsTxt { record: DnsRecord { entry: DnsEntry { name: "specific-device-12._device-name._tcp.local.", ty: 16, class: 1, cache_flush: true }, ttl: 4500, created:<PHONE_NUMBER>711, expires:<PHONE_NUMBER>711, refresh:<PHONE_NUMBER>711 }, text: [6, 83, 67, 71, 45, 67, 85] }, true))
2024-06-24T09:40:09.781434Z ERROR mdns_sd::service_daemon: 1672: record: Some((DnsSrv { record: DnsRecord { entry: DnsEntry { name: "specific-device-12._device-name._tcp.local.", ty: 33, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>712, expires:<PHONE_NUMBER>712, refresh:<PHONE_NUMBER>712 }, priority: 0, weight: 0, host: "specific-device-12.local.", port: 5080 }, true))
2024-06-24T09:40:09.809404Z ERROR mdns_sd::service_daemon: 1672: record: Some((DnsAddress { record: DnsRecord { entry: DnsEntry { name: "specific-device-12.local.", ty: 1, class: 1, cache_flush: true }, ttl: 120, created:<PHONE_NUMBER>713, expires:<PHONE_NUMBER>713, refresh:<PHONE_NUMBER>713 }, address: <IP_ADDRESS> }, true))
2024-06-24T09:40:09.840974Z TRACE polling::iocp: 201: modify: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, sock=448, ev=Event { key: 1, readable: true, writable: false }
2024-06-24T09:40:09.841701Z TRACE polling: 499: Poller::wait(_, Some(680ms))
2024-06-24T09:40:09.842369Z TRACE polling::iocp: 258: wait: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, timeout=Some(680ms)
2024-06-24T09:40:10.524323Z TRACE polling::iocp: 285: new events: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, len=0
2024-06-24T09:40:10.524867Z TRACE polling::iocp: 314: wait: no events found, re-entering polling loop
2024-06-24T09:40:10.525471Z TRACE polling::iocp: 285: new events: handle=IoCompletionPort { handle:<PHONE_NUMBER> }, len=0
2024-06-24T09:40:10.527162Z DEBUG mdns_sd::service_daemon: 1378: Sending multicast queries: [("_device-name._tcp.local", 12)]

2024-06-24T09:40:09.508279Z DEBUG mdns_sd::service_daemon: 1378: Sending multicast queries: [("_device-name._tcp.local", 12)]

Looks like the service type name is missing . at the end.  (Should be like _device-name._tcp.local.)  Can you check if add an ending . would fix the problem?
(If that helps, maybe we should add a sanity check for this)

@keepsimple1 you are right with the . it works.
I would like to thank you for the nice library :)


Floyd Warshall Algorithm in Java

💥 Proposal
I would like to add the Floyd Warshall  algorithm in Java.
Have you read the Contributing Guidelines on Pull Requests?
Yes.
Small Description about the Algorithm
Floyd Warshall Algorithm is used in Graphs to find out the minimum cost between all the pair of vertices.
I am a GSSOC'21 participant and would like to work on this issue.

/assign


[Bug] @cornerstonejs/tools tool group, should setToolActive deactived other active binding?

Describe the Bug
When I dynamic change tool active, I found "setToolActive" didn't deactived previous active tool, so it will not working.
Although I can loop to deactive all tools by toolGroup.setToolPassive(k, { removeAllBindings: true }) manually.
I thought setToolActive should do this automatically?
Steps to Reproduce
toolGroup.setToolActive('Zoom', {
    bindings: [ { mouseButton: MouseBindings.Primary } ],
});
toolGroup.setToolActive('WindowLevel', {
    bindings: [ { mouseButton: MouseBindings.Primary } ],
});

The current behavior
toolGroup.toolOptions = {
    "WindowLevel": {
        "bindings": [
            {
                "mouseButton": 1
            }
        ],
        "mode": "Active"
    },
    "Zoom": {
        "bindings": [
            {
                "mouseButton": 1
            }
        ],
        "mode": "Active"
    }
}

Then the operation is not working.
The expected behavior
Should only one active operation.
OS
macOS
Node version
v18.19.0
Browser
Chrome 129

No, it doesn't set that automatically. Should we do it, @wayfarer3130?

No, it is entirely possible to have multiple active tools.  What you are looking for is whether it binds the primary mouse button as the active setting.  It is supposed to rebind the primary mouse button, but often things like zoom are active on other buttons, and are thus still active.  If you were binding a secondary button, then you would want it to automatically remove the old binding on that button, and that is something I think we should do


Warrning: Division by zero error as a result of calculation

Question
If it happens that an image is not loaded for some reason or broken you will get the following error:
Warning: Division by zero, pointing  to -> src/Resources/views/storefront/utilities/thumbnail.html.twig line 22.
You can avoid that by checking if metaProportion is higher than 0
{% if metaProportion > 0 %}
    {% set ratio = (metaProportion.width / metaProportion.height)|round(2, 'floor') %}
{% endif %}

Hey @wexollm
Damn, thank you. Will release a fix tomorrow, latest.


kind: job need toleration

Describe the bug
There is a toleration issue related to job scheduling in the Kubernetes cluster. The job is expected to tolerate specific taints on the nodes, but it fails to do so, leading to scheduling problems and the job being stuck in a pending state.
To Reproduce
Steps to reproduce the behavior:

Deploy the job with the specified toleration in the YAML file.
Apply the job configuration to the Kubernetes cluster.
Check the status of the job using kubectl get jobs.
Observe that the job remains in a pending state due to node taints.

Expected behavior
The job should tolerate the taints specified in its configuration and be scheduled on the appropriate node, moving from pending to running state.
Screenshots
If applicable, add screenshots to help explain your problem. (E.g., screenshots of the YAML configuration and the job's status in the Kubernetes dashboard.)
Desktop (please complete the following information):

OS: [e.g. Ubuntu 20.04]
Browser [e.g. Chrome, Firefox]
Version [e.g. Chrome 93]

Smartphone (please complete the following information):

Device: [e.g. OnePlus 7T]
OS: [e.g. Android 11]
Browser [e.g. Chrome, Firefox]
Version [e.g. Chrome 93]

Additional context
This issue may be related to the configuration of the taints and tolerations in the job's YAML file. Please verify that the taint keys and values match exactly with the node's taints.

File location: playbooks/robusta_playbooks/disk_benchmark.py
this is the snippet.
class DiskBenchmarkParams(PodRunningParams):
    """
    :var pvc_name: Name of the pvc created for the benchmark.
    :var test_seconds: The benchmark duration.
    :var namespace: Namespace used for the benchmark.
    :var disk_size: The size of pvc used for the benchmark.
    :var storage_class_name: Pvc storage class, From the available cluster storage classes. standard/fast/etc.
    """

    pvc_name: str = "robusta-disk-benchmark"
    test_seconds: int = 20
    namespace: str = INSTALLATION_NAMESPACE
    disk_size: str = "10Gi"
    storage_class_name: str


Make IBE-Editor optional for client

On my server, only admins can use IBE-Editor. Ordinary players do not need this mod. Nevertheless, they download mod, since server does not let them in.
Is it possible to make IBE-Editor optional for client?

Fixed in v2.2.4


"PR Checklist" in git commit history is noisy

Is your feature request related to a problem? Please describe.
"PR Checklist" in a commit body is noisy when reading git commit history.
Describe the solution you would like
Remove the part manually when merging a PR, or use a different merge mode .
Additional context
Example:

One option to prevent this without manual interference would be to change the repository settings for pull requests. Depending on the merge method a few options are available. For squash merges f.e. it would be solved by setting the default commit message to either Pull request title and commit details or Pull request title, as shown in the picture below

Probably the best option is to use Pull request title and commit details as then not all context of the commit is lost.


Error with BaseProgressBar

The start and update methods of BaseProgressBar expect a different call signature in dynamics module.

I can fix this as my first issue.

@flowerthrower That would be awesome. Thanks!


No flag for Algeria.

There seems to be no flag for the country Algeria. Algeria is the biggest country in Africa and the 10th biggest overall (by area). So Algeria should have a flag.
I believe it would benefit everyone using this and specially those who are creating product for the African continent.

+1
I would suggest to add it please.

Hey, Thank you for creating this issue. The flag of Algeria is actually in Flagpack (https://github.com/Yummygum/flagpack-core/blob/main/svg/l/DZ.svg). I checked, and I see it is not in our documentation. I have not tested whether you can use the flag in the codebase, but I have passed this issue forward to the team.
Appologies for the delay in Response, I missed this issue in my Inbox until @areeb111 Responded. I hope to get back to you by the end of the week.

Thank you @zoeyfrisart , Actually i tried to use that in vue-flagpack with no chance,
Maybe it's missing in the manifest or some variables.

In the file "src/countryCodeList.ts" there is no information about Algeria.
Would adding this file solve the bug?


un-ignore some test cases

re open some test cases since we have solved  #1472

this PR will fix https://github.com/oap-project/gluten/issues/1471

Run Gluten Clickhouse CI


fix: Tags & Categories - Name row in item RHP is not grayed out when edited offline

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/39169
PROPOSAL: https://github.com/Expensify/App/issues/39169#issuecomment-2026792597
Tests

Go to Collect workspace settings.
Go offline.
Go to Tag > Settings > Custom tag name > Edit the name.
Note that the name row in RHP is grayed out.
Click on any tag > Edit tag name.
Verify that:  the name row in RHP should be grayed out
Repeat Step 5 with category.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Go to Collect workspace settings.
Go offline.
Go to Tag > Settings > Custom tag name > Edit the name.
Note that the name row in RHP is grayed out.
Click on any tag > Edit tag name.
Verify that:  the name row in RHP should be grayed out
Repeat Step 5 with category.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/161821005/adc3cf3e-58a1-4ed0-b058-4bd3417ff2ba

Android: mWeb Chrome

https://github.com/Expensify/App/assets/161821005/a658610c-10f3-4234-87db-6c10a5adebc8

iOS: Native

https://github.com/Expensify/App/assets/161821005/8fb072f6-6298-4746-a9e5-347dadf3d57b

iOS: mWeb Safari

https://github.com/Expensify/App/assets/161821005/a9875101-a0df-48c9-903c-f61241f528c9

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/161821005/054d30e0-802c-40d3-813b-64c9f376ef27

MacOS: Desktop
https://github.com/Expensify/App/assets/161821005/dbc2c5bf-9118-4167-9b18-5ecd48e04a4c

@ntdiary please check again

Performance test failure should be unrelated so merging anyway

🚀 Deployed to staging by https://github.com/arosiclair in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/arosiclair in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/arosiclair in version: 1.4.62-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.4.62-17 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Prefer RETURNING to EXPORTING

PR for issue: https://github.com/larshp/abapGit/issues/3193
./src/objects/zcl_abapgit_object_pinf.clas.locals_def.abap was left out for it doesn't have a fully specified type for the RETURNING parameter.

thanks 👍
probably want to replace ddic reference to char01 sometime in the future
PINF can be fixed/looked at sometime in the future


[🐜] Fixes crash on API 23 for AnimatedVectorDrawables

What ❓
Showing the animated hamburger crashes on API 23 (not on every phone 🤕).
https://stackoverflow.com/questions/46261325/cannot-cast-to-animatedvectordrawablecompat-in-nougat

Long answer:
I was having the same problem when I was trying to loop an animated vector drawable. Until I found out the support library returns different classes (AnimatedVectorDrawable and AnimatedVectorDrawableCompat) on different SDK levels.
It was not documented anywhere except this wonderful blog post of Nick Butcher:
https://medium.com/androiddevelopers/re-animation-7869722af206

Casting it to an Animatable fixes this issue.
How to QA? 🤔
Log in and verify the hamburger animates if you have unread activity.
#527

It's already released so will close the PR!


[Delivers #165496704] Remove dead "risd" code

This is dead code related to a Rhode Island School of Design illustration class @mo-nathan did for the Glossary. See https://www.pivotaltracker.com/story/show/165496704

Coverage increased (+0.004%) to 91.82% when pulling<PHONE_NUMBER>ad469b97c4c0011b678a251909277a on JoeCohen:remove-risd into 825c4f36219c29c2deac59576b0e3e411324cc93 on MushroomObserver:master.


DEV: Improve dockerfile and add a turn-key bash script

Builds on https://github.com/quantopian/zipline/pull/1343

Coverage decreased (-0.05%) to 87.532% when pulling d58c90354460baee0f8d9c9b078706036bb3bae4 on docker-improvements into 9fe8076bbc47636b49b90b6508df8ebca50c8c3f on master.

Coverage increased (+0.08%) to 87.666% when pulling 743b89a07d3482dcac186610ae25c8bdec122a60 on docker-improvements into 9fe8076bbc47636b49b90b6508df8ebca50c8c3f on master.


Add chapter word count & show in Outliner

Problem
I usually write novel in obsidian and
count words for every chapter. But the plugin don't have the function. What a pity.
Idea
Count words per chapter, which could be divided by H1 / H2 title. And the word number can show on the outline.

You're writing an entire novel in a single note? I can't help you there. To me a novel is a vault and each chapter is its own note.
This plugin only alters the File Explorer pane, Outliner is out of scope.