[Event Request] Codeunit 6500 - Procedure RetrieveInvoiceSpecification

Reason:
Need the event to support extensibility of RetrieveInvoiceSpecification function for the codeunit 6500: Item Tracking Management on upgrade project in BC Cloud Tenant.
Sample code:
procedure RetrieveInvoiceSpecification(SourceSpecification: Record "Tracking Specification"; var TempInvoicingSpecification: Record "Tracking Specification" temporary) OK: Boolean
var
    TrackingSpecification: Record "Tracking Specification";
    ReservEntry: Record "Reservation Entry";
    TempTrackingSpecSummedUp: Record "Tracking Specification" temporary;
    IsHandled: Boolean;
begin
    OK := false;
    TempInvoicingSpecification.Reset();
    TempInvoicingSpecification.DeleteAll();
    ReservEntry.SetSourceFilter(
      SourceSpecification."Source Type", SourceSpecification."Source Subtype", SourceSpecification."Source ID",
      SourceSpecification."Source Ref. No.", true);
    ReservEntry.SetSourceFilter(SourceSpecification."Source Batch Name", SourceSpecification."Source Prod. Order Line");
    ReservEntry.SetFilter("Reservation Status", '<>%1', ReservEntry."Reservation Status"::Prospect);
    ReservEntry.SetFilter("Item Tracking", '<>%1', ReservEntry."Item Tracking"::None);
    SumUpItemTracking(ReservEntry, TempTrackingSpecSummedUp, false, true);
    // TrackingSpecification contains information about lines that should be invoiced:
    TrackingSpecification.SetSourceFilter(
      SourceSpecification."Source Type", SourceSpecification."Source Subtype", SourceSpecification."Source ID",
      SourceSpecification."Source Ref. No.", true);
    TrackingSpecification.SetSourceFilter(
      SourceSpecification."Source Batch Name", SourceSpecification."Source Prod. Order Line");

    //EVENT REQUEST
    IsHandled := false;
    OnBeforeFindTrackingSpecification(TempInvoicingSpecification, TempTrackingSpecSummedUp, TrackingSpecification, SourceSpecification, OK, IsHandled);
    if not IsHandled then
    //EVENT REQUEST
        if TrackingSpecification.FindSet() then
            repeat
                TrackingSpecification.TestField("Qty. to Handle (Base)", 0);
                TrackingSpecification.TestField("Qty. to Handle", 0);
                if not TrackingSpecification.Correction then begin
                    TempInvoicingSpecification := TrackingSpecification;
                    TempInvoicingSpecification."Qty. to Invoice" :=
                    Round(TempInvoicingSpecification."Qty. to Invoice (Base)" /
                        SourceSpecification."Qty. per Unit of Measure", UOMMgt.QtyRndPrecision);
                    TempInvoicingSpecification.Insert();
                    OK := true;
                    TempTrackingSpecSummedUp.SetTrackingFilterFromSpec(TempInvoicingSpecification);
                    if TempTrackingSpecSummedUp.FindFirst() then begin
                        TempTrackingSpecSummedUp."Qty. to Invoice (Base)" += TempInvoicingSpecification."Qty. to Invoice (Base)";
                        OnBeforeTempTrackingSpecSummedUpModify(TempTrackingSpecSummedUp, TempInvoicingSpecification);
                        TempTrackingSpecSummedUp.Modify();
                    end else begin
                        TempTrackingSpecSummedUp := TempInvoicingSpecification;
                        TempTrackingSpecSummedUp.Insert();
                    end;
                end;
            until TrackingSpecification.Next() = 0;

    if not IsConsume and (SourceSpecification."Qty. to Invoice (Base)" <> 0) then
        CheckQtyToInvoiceMatchItemTracking(
          TempTrackingSpecSummedUp, TempInvoicingSpecification,
          SourceSpecification."Qty. to Invoice (Base)", SourceSpecification."Qty. per Unit of Measure");
    TempInvoicingSpecification.SetFilter("Qty. to Invoice (Base)", '<>0');
    if not TempInvoicingSpecification.FindFirst() then
        TempInvoicingSpecification.Init();
end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeFindTrackingSpecification(var TempInvoicingSpecification: Record "Tracking Specification"; var TempTrackingSpecSummedUp: Record "Tracking Specification" temporary; TrackingSpecification: Record "Tracking Specification"; SourceSpecification: Record "Tracking Specification"; var OK: Boolean; var IsHandled: Boolean)
    begin
    end;

Do we have an idea about timelines and how to expedite this request because it is holding up a client upgrade, we need to inform the stake holders.

May I follow up on timelines to expedite this request because it is holding up client upgrade, we need to report update the stake holders.

May I follow up again about timelines and how to expedite this request because it is holding up a client upgrade, we need to inform the stake holders.

Please explain why do you need this for upgrade project? In which version you expect us to implement this event?

Thanks. Please let us know when we can test.

Still not found in BC 21.1. Please let us know which build will have this event.

I can see the changes in the 22 release:

I cannot find them in 21.x yet. @AlexanderYakunin, do you have an update on when this event is going to get backported?

Hi
Our client has been delayed in upgrading from NAV to BC due to these missing events.  Waiting until version 22 will mean they will not upgrade as their timeframe to complete the production upgrade is February.  If that date is missed they will need to delay for close a year, incurring both BC costs as well as the cost to host their NAV environment.
Can these be expedited in any way?
Thanks
Barb
[360 Visibility]https://www.360visibility.com/?utm_source=email-signature
Barbara Allen
Vice President, Client Solutions
<EMAIL_ADDRESS>|<PHONE_NUMBER>tel:(905) 907-3604
926 Nashville Rd., Vaughan ON L0J 1C0
[Twitter]https://twitter.com/360visibility[LinkedIn]https://www.linkedin.com/company/360-visibility[YouTube]https://www.youtube.com/user/360visibilityinc[Facebook]https://www.facebook.com/360Vis/[Instagram]https://www.instagram.com/360_visibility/
www.360visibility.comhttps://www.360visibility.com/?utm_source=email-signature
My working hours may not be your working hours. Please do not feel obligated to reply outside of your normal work schedule.
[https://360emailsignatures.blob.core.windows.net/pictures/email-signature-banner.jpg]https://www.360visibility.com/email-signature-banner/?utm_source=email-signature
From: Randy Villanueva @.>
Sent: December 14, 2022 9:11 AM
To: microsoft/ALAppExtensions @.>; microsoft/ALAppExtensions @.>
Cc: Author @.>; Barbara Allen @.***>
Subject: RE: [microsoft/ALAppExtensions] [Event Request] Codeunit 6500 - Procedure RetrieveInvoiceSpecification (Issue #20511)
Hi Jesper,
Is there a way to expedite these event requests on BC21.x?
https://github.com/microsoft/ALAppExtensions/issues/20511https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FALAppExtensions%2Fissues%2F20511&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=Ju8xI3kJXqAHgfihb%2FY%2BErRUQpThc579PKE5hMvEM0I%3D&reserved=0
https://github.com/microsoft/ALAppExtensions/issues/20512https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FALAppExtensions%2Fissues%2F20512&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=Cd2rQvuSC2prGIXuaF7bIbtmF7Cj9Nh8AnuBdtPohGo%3D&reserved=0
It is holding up our upgrade project.
Cheers,
[360 Visibility]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.360visibility.com%2F%3Futm_source%3Demail-signature&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=6SPsdFU3Qtv6zJW0F%2BJPAwQiJ%2BNoEetiinj73FDyhA8%3D&reserved=0
Randy Villanueva
Sr. Dynamics Consultant
<EMAIL_ADDRESS>|<PHONE_NUMBER>tel:(905) 907-3610
926 Nashville Rd., Vaughan ON L0J 1C0
[Twitter]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftwitter.com%2F360visibility&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=1cMMvZl8dQl1Ep%2Bb%2FxPSgggT1q5kFF%2FCk1b2xyQQXoY%3D&reserved=0[LinkedIn]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2F360-visibility&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=MLAXZ4VmmKK3aT3yhGrz7tGHcc4m%2BAP2JYSUwBqRMQg%3D&reserved=0[YouTube]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.youtube.com%2Fuser%2F360visibilityinc&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=F7ub0nWaCn3pzYvjgkkXBRq6Ng9b455fcCt6cpeYakY%3D&reserved=0[Facebook]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.facebook.com%2F360Vis%2F&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=v%2BWnX3NVcJihSrqT3vJHBzY8RakVghb%2F6ZEj4Rd3l3I%3D&reserved=0[Instagram]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.instagram.com%2F360_visibility%2F&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=1BznTd4wIeOiI5s4peICEYASIQP%2Fo0eOAY3SRYry1wQ%3D&reserved=0
www.360visibility.comhttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.360visibility.com%2F%3Futm_source%3Demail-signature&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=6SPsdFU3Qtv6zJW0F%2BJPAwQiJ%2BNoEetiinj73FDyhA8%3D&reserved=0
My working hours may not be your working hours. Please do not feel obligated to reply outside of your normal work schedule.
[https://360emailsignatures.blob.core.windows.net/pictures/email-signature-banner.jpg]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.360visibility.com%2Femail-signature-banner%2F%3Futm_source%3Demail-signature&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=VnJ%2F6DjV40%2BLuZYi63xeMYJEAzswWtRzWV4SVRhMFIU%3D&reserved=0
From: Jesper Schulz-Wedde<EMAIL_ADDRESS>Sent: Tuesday, December 13, 2022 9:42 PM
To: microsoft/ALAppExtensions<EMAIL_ADDRESS>Cc: Randy Villanueva<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/ALAppExtensions] [Event Request] Codeunit 6500 - Procedure RetrieveInvoiceSpecification (Issue #20511)
External Email

I can see the changes in the 22 release:
[image]https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F19796701%2F207339939-b9d052e5-ff1a-47ae-b4ea-00d9066d7ed7.png&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=yiT7FgdR%2FVHNmViuMGK41Gfp8KWsjoDruLHQxk76xAg%3D&reserved=0
I cannot find them in 21.x yet. @AlexanderYakuninhttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAlexanderYakunin&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=HZGLzQJ3msmf7HNZK4DfA%2FeRd3jFOnHxahVXTAPtLKE%3D&reserved=0, do you have an update on when this event is going to get backported?

Reply to this email directly, view it on GitHubhttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FALAppExtensions%2Fissues%2F20511%23issuecomment-1348588020&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=le20ZfXhOFyuO%2FVKXfM%2FvA6LcdADZjHkEiLMHhpay48%3D&reserved=0, or unsubscribehttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FA3LOYGOMUIP7DX4HYY75DNLWNB4JLANCNFSM6AAAAAAQZ2SRKQ&data=05|01|ballen%40360visibility.com|508e25c1889d4f6cf6e008dadddcf62b|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066238375320482|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|7000|||&sdata=1C3hEuC%2FvfgIbbDl1C5xSr24%2BcAqnaSmaxZ0p0R3Uqc%3D&reserved=0.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>Confidentiality Warning: This message and any attachments are intended only for the use of the intended recipient(s), are confidential, and may be privileged. If you are not the intended recipient, you are hereby notified that any review, retransmission, conversion to hard copy, copying, circulation or other use of this message and any attachments is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, and delete this message and any attachments from your system. Thank you Please consider the environment before printing this email.

The merge to 21.x was completed 2 hours ago 🥳 The changes will release with 21.3.

Thanks Jesper.
Were you able to cover this as well?
https://github.com/microsoft/ALAppExtensions/issues/20512
Cheers,
[360 Visibility]https://www.360visibility.com/?utm_source=email-signature
Randy Villanueva
Sr. Dynamics Consultant
<EMAIL_ADDRESS>|<PHONE_NUMBER>tel:(905) 907-3610
926 Nashville Rd., Vaughan ON L0J 1C0
[Twitter]https://twitter.com/360visibility[LinkedIn]https://www.linkedin.com/company/360-visibility[YouTube]https://www.youtube.com/user/360visibilityinc[Facebook]https://www.facebook.com/360Vis/[Instagram]https://www.instagram.com/360_visibility/
www.360visibility.comhttps://www.360visibility.com/?utm_source=email-signature
My working hours may not be your working hours. Please do not feel obligated to reply outside of your normal work schedule.
[https://360emailsignatures.blob.core.windows.net/pictures/email-signature-banner.jpg]https://www.360visibility.com/email-signature-banner/?utm_source=email-signature
From: Jesper Schulz-Wedde @.>
Sent: Wednesday, December 14, 2022 11:57 PM
To: microsoft/ALAppExtensions @.>
Cc: Randy Villanueva @.>; Author @.>
Subject: Re: [microsoft/ALAppExtensions] [Event Request] Codeunit 6500 - Procedure RetrieveInvoiceSpecification (Issue #20511)
External Email

The merge to 21.x was completed 2 hours ago 🥳 The changes will release with 21.3.
—
Reply to this email directly, view it on GitHubhttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FALAppExtensions%2Fissues%2F20511%23issuecomment-1351682959&data=05|01|rvillanueva%40360visibility.com|ef9f3abc20c8479c283008daddebc97a|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066302052345269|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=uyzrufOQ5icdb0s0yHO0qNm5cRQVYgfSFbkUNzTU%2FRo%3D&reserved=0, or unsubscribehttps://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FA3LOYGKOOEURP655GAINR53WNHU3NANCNFSM6AAAAAAQZ2SRKQ&data=05|01|rvillanueva%40360visibility.com|ef9f3abc20c8479c283008daddebc97a|0815a0a621fd4467a0ad296bc115d5f2|0|0|638066302052345269|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=rI1at7pRlAQgjoSkPOyWYF1ummVOXa%2FkCaJngc%2F3yrU%3D&reserved=0.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>Confidentiality Warning: This message and any attachments are intended only for the use of the intended recipient(s), are confidential, and may be privileged. If you are not the intended recipient, you are hereby notified that any review, retransmission, conversion to hard copy, copying, circulation or other use of this message and any attachments is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, and delete this message and any attachments from your system. Thank you Please consider the environment before printing this email.

That one will ship with 21.3 as well, yes.


[Azure Search] Figure out auto-scale settings for Azure Search services

We can probably start with something like PROD's settings, although this is likely too much hardware since much less memory/CPU is needed in our app (the hard work is happening in the Azure Search side).
Also need to figure out the concept of load balancer probe.

I've implemented an initial configuration for this based on load testing. We can revisit again later if needed.


Refactoring with HTTPUrlConnexion

Stop using the DefautHttpClient as recommanded, fixing #24.
@redox: LGTY?

I think we definitely need to go that way @PLNech but it seems that right now this version is not providing any Keep-Alive capabilities because we're re-instantiating the HttpURLConnection at each request.
Do you know if there is some dark magic somewhere keeping the connection alive? Or maybe there is a way to recycle the HttpURLConnection to keep the connection opened?

@redox: There is indeed some dark magic in java that pools HttpURLConnections, which works on Android too as long as you close the underlying InputStream.
However, there may be a bug with gzipped content that prevents connection reuse until Android 4.4.  I'll investigate and if it is an issue, we can always switch to OkHttp!

Yeah, I stumbled upon the gzipped content bug like on my second day with Android! It happens when Content-Encoding: gzip but Content-Length: 0, which basically happens if you are doing a conditional GET (like If-Modified-Since or If-None-Match) and the server replies a 304 Not Modified. So we should not hit it, although I'm really not comfortable with using a bugged library... :/
I have used OkHttp for a personal project, and found it was good.

Thanks for the details, I guess we're safe from this issue for now. Apart from this HttpURLConnection does not seem to have any other known bug that could affect us, but I agree there is no reason to keep using it just for the sake of it being in the standard library.  And besides the stability enhancement, OkHttp has better performance, has HTTP/2 support and a few other advantages. But we may consider the benefits of using it with a high-level wrapper such as Retrofit or Volley before using it.
To fix #24 at the soonest, once I'll confirm Keep-Alive is functional I think we can merge this and release a new minor version. I'll open a ticket for the OkHttp migration as an enhancement!

Works for me :+1: I'll let you guys merge+release/tag+publish

Yes, this PR should definitely be merged. @PLNech Just gimme a sign if you need help on this.
However, I think we need to talk before using OkHttp. I'm not in favor of it (even if it's a good library) and even less in the favor of higher-level libraries like Retrofit or Volley. Remember that we are providing an SDK here, not writing a custom app. So, in my opinion, the less dependencies we have, the better for our users.

@clement-leprovost-algolia: Thanks, as I am WFH I would be glad to let you handle the publishing. I'll notify you when I'm done testing and merging this!
Indeed, that is something we need to talk about. Let's discuss this before any other refactoring!

I share the same opinion about dependencies as @clement-leprovost-algolia. That's why the Swift API Client has no dependency.

After manual testing, Keep-Alive seems to work correctly.
@dethi: Good point. I'm merging this and won't create any ticket regarding OkHttp, as for now it does not seem to have enough benefits to be worth introducing a dependency.


Update CHIL24 deadline

Deadline was extended to Feb 16 23:59 AoE per Call for Papers: https://chilconference.org/call-for-papers.html

Already fixed by #643


Restoring fullscreen appearance will not work and destroy windows positioning

Quitting VS Code while in fullscreen appearance and later re-opening of VS Code will not just

NOT open in fullscreen appearance again, but also
destroy window positioning (and size) information, so it gets a default size and is floating somewhere on the desktop.

(Size/positioning information will get remembered for regular windowed mode.)

VSCode Version: 1.29.0 (user setup)
OS Version: Windows 10 1809 (October 2018 Update)

Steps to Reproduce:

View -> Appearance -> Toggle Fullscreen
File -> Exit
reopen VS Code

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

Set "window.restoreFullscreen": true


Implement bookmarks

Bookmarks should act on the current tab, bookmarks should include:

Folders (events, gurpurabs, themes, etc.)
Dynamic bookmarks
Regular shabad/dictionary bookmarks (user definable)
Compilations / banis (e.g. nitnem, asa ki vaar)

Mockup example:

Bookmarks that come preloaded can be hidden but not permanently deleted. Users can also add their own bookmarks to preloaded folders, which could be deleted by them.
In future, if we push an update to modify the preloaded bookmarks/folders, it should gracefully manage the changes users have made.

Note: Change Asa ki Vaar to a single compiled bookmark, not a folder as shown in the picture.

ਇਤਿਹਾਸਕ ਦਿਹਾੜੇ

Maybe ਸੰਸਕਾਰ is a better term for Ceremonies, it is what Sikh Rehat Maryada uses.

Maybe ਸੰਸਕਾਰ is a better term for Ceremonies, it is what Sikh Rehat Maryada uses.

It also says "reetiyan" in the text. I think whatever is more commonly understood is fine.

When creating bookmarks, user should be given a default title but should be allowed to rename it.
Bookmarks should be created from either the quickdrawer or after long-pressing on a tuk.
If done from the quickdrawer, it will save based on the current view:

When reading an Ang, it would save as a dynamic bookmark with default bookmark title like "Sri Guru Granth Sahib Paath MMDDYY"
When reading a Shabad, would save as a standard bookmark with default title set to title of tab

If created from long-press, it should always (regardless of ang-view or shabad-view) save as standard bookmark with default title set to that tuk.

UI for creating bookmarks should be similar to how YouTube adds videos to lists.
Also, should be able to long-press on a bookmark to rename it.
When in a bookmark (as in, you clicked on the bookmark from the bookmarks modal, NOT after creating a bookmark from a search result), updating the "main line" should notify user of updated bookmark (and include edit button to rename or further modify the updated bookmark).

ok so if i understand this correctly, then bookmarks thing is just a modal, or is it a separate page (or both)?

Modal in the sense it can be pulled down to reveal the tab you were on before you hit bookmarks icon.
Page in the sense that you can navigate to different parts of the folder structure in bookmarks.

Should be similar to YouTube in the sense that we are adding bookmarks to potentially multiple lists / folders
There should be no bookmarks in root folder. And perhaps we should restrict to only one level of folder.
So root level has a bunch of folders / lists to which a user can add bookmarks to. No second level folder.

List vs Folder discussion https://github.com/ShabadOS/desktop/issues/483


Texture previews are misaligned and with a missing pixel

Godot version
4.1.beta3 (again)
System information
4.1.beta3 - Ubuntu 22.04.2 LTS 22.04 - Vulkan (Forward+) - integrated Intel(R) HD Graphics 4400 (HSW GT2) () - Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz (4 Threads)
Issue description
For example:

Steps to reproduce
Anything handled by EditorTexturePreviewPlugin seems to have this problem. The above example is GradientTexture2D with Square mode, centered exactly.
Minimal reproduction project
N/A

I tried but I wasn't able to pin it down. I think the problem is not be limited to the preview.

Can't reproduce at master (ba2c5c1e6196b774d55baa45de54aab530db08e9)

I can reproduce this on 4.3 and even on a 2-weeks-old build of master; I'll try to remember to check later if it was really fixed in the last 2 weeks.

@MewPurPur can you provide minimal reproducible project?

Sandbox.zip
Not very minimal but it's my project where I test out dev stuff. Look at the filesystem, the two textures (gradient and noise texture) they both have the issue.

These previews get their corners rounded, like this:
https://github.com/godotengine/godot/blob/dc5f1b7a2826962f02230227abc486ac160ae66c/editor/plugins/editor_preview_plugins.cpp#L51-L77
The tree items in the File System dock seem to be using such generated preview textures, but of a bigger size than they're shown at. Meaning they're downscaled and thus generated transparent corners are deformed (ending up with only 1 transparent pixel in the top left corner).

100% editor scale
200% editor scale

Horizontal split mode, 100% scale:


Dockerise evidence datasource parser dependencies

Information from @DSuveges -- we can check out this image as a start: https://towardsdatascience.com/optimized-docker-images-for-apache-spark-now-public-on-dockerhub-1f9f8fed1665

@DSuveges what shall we do with this? assign? close?

Please reopen if appropriate


New automatic completion makes it hard to work...

Issue Report Checklist
Problem Description
While I in many ways appreciate the new automatic completion stuff, it also introduced a few challenges. Two which I have isolated and lists here.
It is crucial that Ctrl+s is passed through to the editor. It has happened quite a few times that I have edited a file and pressed Ctrl+s, just to later find out that the file is still marked as modified. (One reason for the many test runs for #9870...)
The behavior below is a bit annoying. What happens is that I press backspace one time to many (in this case it is a Mickey Mouse example) and press return as I would like to insert a line break here again. Not sure what the proper solution is here though (except that I am surprised that the completions start with the first letter of the, earlier, next line, which doesn't really make sense).

I think you can turn it off!

@andfoy, please take look at this one.

After some more use I think a way forward may be:

Do not show the completions after a backspace as this happens also for other cases, such as deciding to break a line and backspacing to get rid of the trailing space before pressing return.

Pass all(?) command keys (Ctrl+.. etc) to the editor. (I can live with that home, end, page up, and page down are not passed through. After all, hard to guess what the user is thinking...)

I also noted a third issue: the completion does not consider case. If there are two completion entries, say foo and FOO, typing foo and pressing enter will lead to FOO (as that is sorted firstly). In fact, foo is not longer shown among the possible completions at that stage. I think that at least exact matches should be considered.
Code for testing:
foo = 1
FOO = 2

now type foo.


[feature] Support Cross Compiling with tfcompile

Tensorflow (using XLA) is able to AOT compile a graph using tfcompile. There does not seem to be a way to, or it it not documented, cross compile the graph (ie compile on OS X for deployment on iOS). (Related SO question).
I suggest adding a means of performing this cross compilation.

I don't think anyone is currently working on this, but maybe @tatatodd can correct me. I'm gonna mark as contributions welcome for now.

Can you get what you want by changing the --target_triple option handed to tfcompile?  I don't have either target to see if the result works here...but from Linux, I can do:
--target_triple=thumbv7-apple-macosx10.6.7
and
--target_triple=thumbv7-apple-ios
which creates a Mach-O object (cross compiling from a Linux host to ios/macosx targets).
Or do you mean something else?

I can confirm that doing what @petecoup suggests does work. I'm able to cross-compile from linux amd64 targetting rpi3 hardware (though, I still lack proper tooling to set the --target_triple= properly, but changing by hand works fine so far).

@petecoup @lissyx In which file do we need to make changes, tfcompile.bzl or tfcompile_main.cc
I see the line  " --target_triple=" + target_llvm_triple() + in tfcompile.bzl     and      flags.target_triple = "x86_64-pc-linux"; in tfcompile_main.cc
I want to compile for both android and ios
For ios I tried first tried, just replacing in tfcompile_main.cc  with flags.target_triple = "arm64-apple-ios";. The bazel build completed successfully but when I include the .h and .o in ios app, it says .o is not built for arm64.
Next, in addition to changes in tfcompile_main.cc, when I also made the change in tfcompile.bzl by replacing the line with  " --target_triple=" + "arm64-apple-ios" +, the bazel build itself failed with error
ERROR: /tensorflow/test_graph_build/BUILD:4:1: Linking of rule '//test_graph_build:test_graph_tfmatmul' failed: link_dynamic_library.sh failed: error executing command external/bazel_tools/tools/cpp/link_dynamic_library.sh no ignored ignored ignored /usr/bin/gcc -shared -o bazel-out/local-opt/bin/test_graph_build/libtest_graph_tfmatmul.so '-fuse-ld=gold' ... (remaining 7 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
/usr/bin/ld.gold: error: bazel-out/local-opt/genfiles/test_graph_build/test_graph_tfmatmul.o:1:1: invalid character
collect2: error: ld returned 1 exit status
Target //test_graph_build:test_graph_tfmatmul failed to build

@ruppeshnalwaya1993 This is what I have in our code, inside the tf_library() section:
tfcompile_flags = select({
        "//tensorflow:rpi3": str('--target_triple="armv6-linux-gnueabihf" --target_cpu="cortex-a53" --target_features="+neon-fp-armv8"'),
--target_features="+sse4.1" --target_features="+sse4.2" --target_features="+avx" --target_features="+avx2" --target_features="+fma"',
        "//conditions:default": str('')
    }),

@lissyx Thanks for your reply! I want to build for iOS and not raspberry pie. Nevertheless, to make sure I understand the process correctly, I tried to build using the changes that you suggested. One thing I am not sure of is given
tfcompile_flags = select({
        "//tensorflow:rpi3": str('--target_triple="armv6-linux-gnueabihf" --target_cpu="cortex-a53" --target_features="+neon-fp-armv8"'),
--target_features="+sse4.1" --target_features="+sse4.2" --target_features="+avx" --target_features="+avx2" --target_features="+fma"',
        "//conditions:default": str('')
    }),

how do specify in the bazel build command in terminal to build for //tensorflow:rpi3 and not //conditions:default or anything else?
Since I was unsure how to specify the target in the terminal command, I specified the default one to be also raspberry pie like this:
tfcompile_flags = select({
        "//tensorflow:rpi3": str('--target_triple="armv6-linux-gnueabihf" --target_cpu="cortex-a53" --target_features="+neon-fp-armv8"'),
--target_features="+sse4.1" --target_features="+sse4.2" --target_features="+avx" --target_features="+avx2" --target_features="+fma"',
        "//conditions:default": str('--target_triple="armv6-linux-gnueabihf" --target_cpu="cortex-a53" --target_features="+neon-fp-armv8"')
    }),

I tried building the test graph mentioned at tensorflow aot page by adding tfcompile_flags as written above in the BUILD file and running the command bazel build test_graph_tfmatmul. BUILD file is as follows kept in a directory //test_graph_build.
load("//tensorflow/compiler/aot:tfcompile.bzl", "tf_library")
tf_library(
    name = "test_graph_tfmatmul",
    cpp_class = "foo::bar::MatMulComp",
    graph = "test_graph_tfmatmul.pb",
    config = "test_graph_tfmatmul.config.pbtxt",
    tfcompile_flags = select({
        "//tensorflow:ios": str('--target_triple="arm64-apple-ios"'),
        "//conditions:default": str('--target_triple="armv6-linux-gnueabihf" --target_cpu="cortex-a53" --target_features="+neon-fp-armv8"')
    }),
)

But after a lot of time compiling, this does throws an error as follows:
INFO: Reading 'startup' options from /etc/bazel.bazelrc: --batch
WARNING: /tensorflow/tensorflow/core/BUILD:1634:1: in includes attribute of cc_library rule //tensorflow/core:framework_headers_lib: '../../external/nsync/public' resolves to 'external/nsync/public' not below the relative path of its package 'tensorflow/core'. This will be an error in the future. Since this rule was created by the macro 'cc_header_only_library', the error might have been caused by the macro implementation in /tensorflow/tensorflow/tensorflow.bzl:911:30.
INFO: Found 1 target...
INFO: From Executing genrule //test_graph_build:gen_test_graph_tfmatmul:
2017-08-29 20:20:29.702831: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
'+neon-fp-armv8' is not a recognized feature for this target (ignoring feature)
'+neon-fp-armv8' is not a recognized feature for this target (ignoring feature)
'+neon-fp-armv8' is not a recognized feature for this target (ignoring feature)
'+neon-fp-armv8' is not a recognized feature for this target (ignoring feature)
'+neon-fp-armv8' is not a recognized feature for this target (ignoring feature)
ERROR: /tensorflow/test_graph_build/BUILD:4:1: Linking of rule '//test_graph_build:test_graph_tfmatmul' failed: link_dynamic_library.sh failed: error executing command external/bazel_tools/tools/cpp/link_dynamic_library.sh no ignored ignored ignored /usr/bin/gcc -shared -o bazel-out/local-opt/bin/test_graph_build/libtest_graph_tfmatmul.so '-fuse-ld=gold' ... (remaining 7 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
/usr/bin/ld.gold: fatal error: bazel-out/local-opt/genfiles/test_graph_build/test_graph_tfmatmul.o: unsupported ELF machine number 40
collect2: error: ld returned 1 exit status
Target //test_graph_build:test_graph_tfmatmul failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 16.549s, Critical Path: 3.46s

What would be the right way to build this ?

I'm not sure about your error. What does file bazel-out/local-opt/genfiles/test_graph_build/test_graph_tfmatmul.o says? It should be some ARM64/iOS stuff I guess. However, the "'+neon-fp-armv8' is not a recognized feature for this target (ignoring feature)" would indicate that you might be trying to issue some ARMv6.
According to tensorflow/tensorflow.bzl, the //tensorflow:ios should the the proper way to check. The fact that you have those +neon-fp-armv8 errors would indicate that it does not gets selected.
My best bet is that you should not be using ld.gold but your arch's ld. In our case, we disable the test and benchmark binaries with gen_test=False, gen_benchmark=False. You should make sure you have properly configured Tensorflow for cross-compiling for iOS (you should not see the warnings about +neon-fp-armv8). And then you may want to disable test and benchmark binaries, in case it is still unable to properly cross-build them.

@lissyx I resolved the error by building tfcompile separately using command bazel build tensorflow/compiler/aot:tfcompile and then using tfcompile tool directly in terminal like this
bazel-bin/tensorflow/compiler/aot/tfcompile --graph=test_graph_build/test_graph_tfmatmul.pb --config=test_graph_build/test_graph_tfmatmul.config.pbtxt --cpp_class=foo::bar::MatMulComp --out_header=test_graph_build/test_graph_tfmatmul.h --out_object=test_graph_build/test_graph_tfmatmul.o --target_triple=armv64-apple-ios

The above command generated  test_graph_tfmatmul.h and test_graph_tfmatmul.o for ios arm64 which I link to the in simple ios example project . I copied the basic program to run the graph as given on tensorflow aot page and built the app. But for some reason some symbols are not found and gives error:
Undefined symbols for architecture armv7:
  "___xla_cpu_runtime_EigenMatMulF32", referenced from:
      _entry in test_graph_tfmatmul.o
  "tensorflow::tfcompile::runtime::FreeContiguous(void*)", referenced from:
      foo::bar::MatMulComp::~MatMulComp() in RunModelViewController.o
  "tensorflow::tfcompile::runtime::MallocContiguousBuffers(long const*, unsigned long, void**, bool)", referenced from:
      foo::bar::MatMulComp::MatMulComp(foo::bar::MatMulComp::AllocMode) in RunModelViewController.o
  "xla::ExecutableRunOptions::set_intra_op_thread_pool(Eigen::ThreadPoolDevice const*)", referenced from:
      foo::bar::MatMulComp::set_thread_pool(Eigen::ThreadPoolDevice const*) in RunModelViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I had already built the simple ios example project  once before, hence I am assuming all the header search paths and linker paths and libs are properly set in build settings of the project. But after additional adding the .h and .o generated from AOT,  with accompanying code to test it, the project it not building. What am I missing? Is there something additional I have to link?

@ruppeshnalwaya1993 Ah, I hit the same kind of stuff, I just chose for now to build the related libs, link my binary against and share them. I am not convinced it is the proper way, I would have preferred they get statically linked by Bazel, but for now it's good enough for me. Targets are: //tensorflow/compiler/aot:runtime //tensorflow/compiler/xla/service/cpu:runtime_matmul //tensorflow/compiler/xla:executable_run_options, and the resulting shared objects are -lruntime -lruntime_matmul -lexecutable_run_options under bazel-bin/tensorflow/compiler/[...] (subdirectories).

@lissyx What will the bazel build command to build say //tensorflow/compiler/aot:runtime for iOS or android target? Just running bazel build tensorflow/compiler/aot:runtime builds default libruntime.a which is neither for target android or iOS.

I don't know, I'm just documenting how I got things to work in my case.

@lissyx Ok, np. Thanks for your help. :)
@cancan101 Any update on cross-compilation documentation? Any comment from you will be very helpful.

@lissyx @cancan101 I got some success. I ran the following command to build lruntime for Android and similarly built -lruntime_matmul -lexecutable_run_options
bazel build -c opt --cxxopt='-std=c++11' tensorflow/compiler/aot:runtime --crosstool_top=//external:android/crosstool    --host_crosstool_top=@bazel_tools//tools/cpp:toolchain    --cpu=armeabi-v7a
And got success in running the test program with the test graph.
Now I try running the frozen and optimised graph of pix2pix(https://github.com/affinelayer/pix2pix-tensorflow) and I get the output to be buffer with all values zero. I double checked that the passed values of input image are correct (floats between 0-1). Has anyone faces such an issue? Is there a way to debug aot generated code?

I also checked with a graph that has a just an input node and a following identity node as ouput. Even in this case the result from xla is buffer with all values either 0.000 or -nan

@ruppeshnalwaya1993 were you able to get pix2pix running on ios ? How did you debug it further ?

@powderluv yes, I was able to run pix2pix using XLA AOT compilation by I did not finally use it as there were no gains in speed as compared to regular tensorflow.
Anyways, other than the things mentioned above, I remember that I had remove all the code and dependencies of normal tensorflow for xla to work. Seems both of them together can't function properly. I have not checked the recent development in xla though.

@ruppeshnalwaya1993 can you share your BUILD file to cross-compile your model to both android and ios? I managed to use aot to compile my model into a shared library and run on linux, but cannot find anything workable in android and ios. Thanks!

@ruppeshnalwaya1993 can you share your BUILD file to cross-compile your model to both android and ios? I managed to use aot to compile my model into a shared library and run on linux, but cannot find anything workable in android and ios. Thanks!

can u share something?


Add support for meta-riscv/meta-updater-riscv

To be used with the freedom-u540 machine target.
Aligned with https://github.com/advancedtelematic/meta-updater/pull/565.
Still performing the build, but configuration seems correct at least.

Built and booted fine, just had to use it together with the changes proposed by https://github.com/advancedtelematic/meta-updater/pull/565.


Copy the base metaclass for each new metaclass

In some circumstances, a method attached to the base metaclass is overridden. I was not able to create a standalone reproducer, in my case this happened in a test suite when the tests are ran in a specific order and when some specific imports are done.
This can be fixed by duplicating the base metaclass, so a unique metaclass is created when DocInheritMeta is called.

Thank you for catching this! I will add a new version to pypi asap

You're welcome, thank you for this very useful tool!

@AntoineD v2.3.2 has been released on pypi


„Inbox Zero“

Hey, I would change the „Inbox Zero“ Text to „inbox empty“. Cheers and thanks for the nice app.

Bug Report Dump (Auto-generated)

Version 1.27.2<PHONE_NUMBER>)
Device: iPhone XS (iOS 12.1.4)
TestFlight: false

I believe this was a conscious wording choice from Ryan back in the day, and is a shoutout to the common strategy where people aim to achieve "inbox zero" (which, as you point out, is to empty your inbox)
Bit of reading here: https://whatis.techtarget.com/definition/inbox-zero


fix util.decode to decode dicts also

Modified aioredis.util.decode to also decode dicts in responses recursively.

Coverage decreased (-1.7%) to 95.568% when pulling 278a358f5114d350ce149354baf2490d1cc5e41a on alefteris:decode-dicts into 2e4edb55e4905c4f1d8ca30511ca5f613ff7990a on aio-libs:master.

I don't remember any commands returning dics. What are they?

@popravich hgetall returns a dict.

Redis HGETALL command returns array reply,
aioredis Redis.hgetall method converts such array reply into dict, decoding is supported as well.

I'm so sorry. Somehow I didn't set the decode for Redis.hgetall and I thought there was an issue with the returned dict. Closing.

no problem


Remove un-needed logging in the Controllers

We have this line in a lot of the Controllers
logging.FromContext(ctx).Info("Setting up event handlers")

@antoineco pointed out that it is a smell.. so I'm creating this to track the removal of all of the log entries.

Closed by #480


fix: remove webhook check for backup overwriting

Closes #852
Signed-off-by: Hai He<EMAIL_ADDRESS>

/ready-to-test

/ready-to-test

/test d=main tl=4

/ready-to-test

/ready-to-test

/test

/ready-to-test

/ready-to-test

/ok-to-merge


Connect!

It's time to connect the client with the server.

Very good! Now you have to do the same with the functions: registerUser and recoverPassword.

Very good! Now you have to do the same with the functions: registerUser and recoverPassword.

Yes, but first I have to create the endpoints on the backend server.

Go ahead!!!

All ready!
https://github.com/tiago1820/integrator-backend/commit/b4d7085f18476bc07a0f1db1efa28d7ee90fb7fb


gyp errors on npm install

Hello,
I am currently getting an error in most of my installed node versions that goes from 14.16.0 up to 18 and latest 20.
I already tried most of the suggested fixs by the community that pass through the sass reinstallation and others.
I have reinstalled the node-gyp@latest globally but didnt solved the problem.

Node Version: 20.11.0 & NPM 10.2.4
Platform: Windows 10 Enterprise
Compiler: ?
Module: local-npm

npm install local-npm gyp errors
npm ERR! code 1
npm ERR! path C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\local-npm\node_modules\pouchdb\node_modules\leveldown
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c prebuild-install || node-gyp rebuild
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using<EMAIL_ADDRESS>npm ERR! gyp info using<EMAIL_ADDRESS>| win32 | ia32
npm ERR! gyp info find Python using Python version 3.12.1 found at "C:\Users\X\Documents\dev\python-3.12.1-embed-win32\python.exe"
npm ERR! gyp http GET https://nodejs.org/download/release/v20.11.0/node-v20.11.0-headers.tar.gz
npm ERR! (node:195480) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
npm ERR! (Use `node --trace-warnings ...` to show where the warning was created)
npm ERR! gyp WARN install got an error, rolling back install
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
npm ERR! gyp ERR! stack is related to network connectivity.  System Windows_NT 10.0.19045
npm ERR! gyp ERR! command "C:\\Users\\X\\Documents\\dev\\node-v20.11.0-win-x86\\node.exe"<EMAIL_ADDRESS>"rebuild"
npm ERR! gyp ERR! cwd C:\Users\X\Documents\dev\node-v20.11.0-win-x86\node_modules\local-npm\node_modules\pouchdb\node_modules\leveldown
npm ERR! gyp ERR! node -v v20.11.0
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in: C:\Users\X\AppData\Local\npm-cache\_logs\2024-01-26T13_43_18_167Z-debug-0.log

Hope to get some assitance or be pointed into possible solutions.
Thanks in advance.

It seems to be happening on other npm installs now
npm ERR! code 1 npm ERR! path C:\Users\T0202788\Documents\bitbucket\gdp-ui-toolkit\node_modules\deasync npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node ./build.js npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using<EMAIL_ADDRESS>npm ERR! gyp info using<EMAIL_ADDRESS>| win32 | ia32 npm ERR! gyp info find Python using Python version 3.12.1 found at "C:\Users\T0202788\Documents\dev\python-3.12.1-embed-win32\python.exe" npm ERR! gyp http GET https://nodejs.org/download/release/v18.19.0/node-v18.19.0-headers.tar.gz npm ERR! (node:4944) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. npm ERR! (Use node --trace-warnings ...` to show where the warning was created)
npm ERR! gyp WARN install got an error, rolling back install
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
npm ERR! gyp ERR! stack is related to network connectivity.  System Windows_NT 10.0.19045
npm ERR! gyp ERR! command "C:\Users\T0202788\.nvm\versions\node\v18.19.0\node.exe" "C:\Users\T0202788\.nvm\versions\node\v18.19.0\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd C:\Users\T0202788\Documents\bitbucket\gdp-ui-toolkit\node_modules\deasync
npm ERR! gyp ERR! node -v v18.19.0
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok
npm ERR! Build failed
npm ERR! A complete log of this run can be found in: C:\Users\T0202788\AppData\Local\npm-cache_logs\2024-01-26T14_01_46_997Z-debug-0.log`

Just tried with v16.20.2 and works without problems! May help you out on understanding what might be wrong here...

You can check by running npm install -g<EMAIL_ADDRESS>

same error... node v18.17

10.4.0

10.4.0

You can try using NPM versions 10.2.4 into 8.10.0

ok that could be a temp fix but i would prefer to use the latest npm if possible

https://github.com/nodejs/node-gyp/issues?q=is%3Aissue+label%3ANODE_TLS_REJECT_UNAUTHORIZED

https://github.com/nodejs/node-gyp/issues?q=is%3Aissue+label%3ANODE_TLS_REJECT_UNAUTHORIZED

im confused.. what does this link provide. I'm also having the same issues as others described above

That link provides a pointer to all the other issues in this repo about the same problem.

@cclauss so does this confirms that the node tls rejection flag is the cause of the problem?

Facing same issues

I met the same error. What should I do ?

Are you all trying to install leveldown or some other module?

@cclauss  I tried to install sqlite3....

https://stackoverflow.com/a/62096421/15046796 this worked for me

https://stackoverflow.com/a/62096421/15046796 this worked for me

this stackoverflow post seems unrelated to the issue, care to explain?

https://stackoverflow.com/a/62096421/15046796 this worked for me

this stackoverflow post seems unrelated to the issue, care to explain?

I am using Mac m1 chip laptop. I've recently updated to latest homebrew version. When I try to install node modules, there were these node gyp errors. So using the stackoverflow post above I was able to downgrade the homebrew version and the node modules were now installed successfully. So the solution that i posted above is for specifically Mac machines.

Ah, thank you for the clarification. With added context your comment can help out Mac users.

@jeniasaigak The full error log will clarify that you have an out-of-date version of node-gyp.

simply do 2 step:

sudo su
npm install -g node-gyp

Then re-run npm install,  all GOOD!!!!!

It is highly recommended that you get out of sudo su mode asap with exit or Ctrl+D.  Failure to do so leaves your system open to lots of nasty, destructive commands.

I tried all the solutions in the comments, but none of them worked.
in the end, it works
step1: npm install node-gyp or add node-gyp to the package.json
step2: npm install
and it works!!! God Please!!!

What solved it for me was downgrading to node version v16.20.2, use python version 3.9.0
And I had to ran the following commands:
npm rebuild
rm -rf node_modules
npm cache clean --force
npm i --legacy-peer-deps

Downgrading to an unsupported version of Node.is NOT recommended.

https://nodejs.org/en/about/previous-releases

I opened a pr https://github.com/npm/make-fetch-happen/pull/316 so make-fetch-happen respect NODE_TLS_REJECT_UNAUTHORIZED.
It will still does not respect other node variables such as NODE_EXTRA_CA_CERTS (which would be ideal for folks behind a corporate proxy).


Fix: BasePlugin saves config structure to DB

I want to merge this change because in PR #4807 was introduced a bug that caused an issue with wrong values saved in PluginConfiguration model.
This can be avoided with simply not using BasePlugin.get_plugin_configuration to fetch configuration from the database. This method modifies the configuration in a way that cannot be saved to DB.
Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] Database migration files are up to date.
[ ] The changes are tested.
[ ] GraphQL schema and type definitions are up to date.
[ ] Changes are mentioned in the changelog.

Here is the report for 903c689f48d679f669a0257bf61ee97083f06fc7 (mirumee/saleor @ fix/unify-plugin-config-structure)
Base comparison is 5d8eb35ab2ba3532303ac63dd65dccde9111b3f9.
No differences were found. (click me)

# api.benchmark checkout
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  add billing address to checkout            	         34	         34	             20
  add shipping to checkout                   	          7	          7	              0
  checkout payment charge                    	         14	         14	              0
  complete checkout                          	          6	          6	              0
  create checkout                            	         48	         48	             24

# api.benchmark homepage
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  retrieve main menu                         	          5	          5	              0
  retrieve product list                      	          4	          4	              0
  retrieve secondary menu                    	          5	          5	              0
  retrieve shop                              	          2	          2	              0

# api.benchmark product
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  product details                            	         15	         15	              3
  retrieve product attributes                	         13	         13	              2

# api.benchmark variant
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  product variant bulk create                	         51	         51	              3
  retrieve variant list                      	         15	         15	              6

# api product sorting attributes
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  sort product not having attribute data     	         21	         21	              0

@korycins could you review?


Default pruneCollection method.

What about making the default pruneCollection method this.referenceCollection.slice(lb, ub) and just making the default getLowerBound and getUpperBound functions return 0 and this.referenceCollection.length-1 respectively?
This would offer the same default functionality that exists now when a user doesn't set up the view properly, but make it easier to get the sliding functionality as the user wouldn't have to define pruneCollection themselves (unless they want to override the default behavior)

:+1:!


String#undump

Adds undump to the String rbi file.
Motivation
undump
Test plan
NA

@DarkDimius ptal

Closing it as stale, please feel free to reopen.


Create docker file to build application as a docker image.

This will allow for easier deployment of the application and will make it behave the same across development devices. This is also a necessary step for deploying this app to a kubernetes cluster which will allow for scalability.

Docker file works for now. May need to be edited if the database is changed


OS X 10.10.2 Breaks Handoff

Doesn't even have the checkbox anymore under General for enabling Handoff

just looked at my machine. its there on mine. it won't be there if its not supported though,

Hmm. I've had it working perfectly until I just updated, even ran the tool again and no luck.

After a reboot it's there but still not working.

Well I'm seeing some weird behavior lol or I must be drunk :P Anyway, keep an eye out with this update.

Weird. I know for me after os updates it takes a few minutes for everything to start working again.


Adrenalin Overrides Fan Control

Ever since updating my GPU drivers yesterday, I have been fighting this issue where Adrenalin keeps taking control of the fans over time. If I disable custom fan control inside of Adrenalin and reload Fan Control it does work, but only for a few seconds, then Adrenalin takes over. I have Fan control on force apply and have updated the ADLX plugin to v1.0. So far nothing has fixed anything.
The curve Adrenalin defaults to.

First: Do not use Force apply.
Second, Adrenaline is not taking over, it's just FanControl who ticks "Zero RPM", which resets the curve, that's normal.
Now if your GPU is not stopping, that means it's too hot, so you should adjust your curve to zero RPM at a lower temperature.
Also, The 1%-30% range is usually not available, so do not try and run your gpu in that range in your fan curves.

It is what it is, you gotta play around the limitations.


Add Configuration to Enable Setting which HttpClient SPI to Use

Description
Adds Configuration setting AZURE_HTTP_CLIENT_IMPLEMENTATION and HttpClientOptions.setHttpClientImplementation to enable configuring which HttpClientProvider implementation should be used when deferring construction of an HttpClient to the SDK. The Configuration setting acts as the default HttpClientProvider to use where as HttpClientOptions.setHttpClientImplementation can be used per instance. This simplifies the need to exclude all dependencies of a given HttpClientProvider implementation to ensure the implementation you want is selected.
For example, by default azure-core-http-netty is included as a dependency by most, if not all, HTTP-based SDKs, if you want to use azure-core-http-okhttp as your implementation you'll need to Maven dependency exclude azure-core-http-netty on all Azure SDKs including that as a dependency. This is very error prone and easy to miss an exclusion. Now, instead if you want to use azure-core-http-okhttp as your implementation you can just set AZURE_HTTP_CLIENT_IMPLEMENTATION to com.azure.core.http.okhttp.OkHttpAsyncClientProvider to set the OkHttp-based implementation of HttpClient to be your default.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-core


Create davidgs.yaml

Adding myself back as an admin

I'm sorry I neglected to do this when you rejoined


Allow list to be used in default_tasks

Right now, default_tasks should contain tasks from the dodo.py configuration.
Sometimes, there are projects, which do not have a good default.
If would be nice to have "default_tasks": ["list"], so when I type doit, I get a nice description of available commands.
Describe alternatives you've considered

In the makefile, by default first target that does not begin with a . is called (https://stackoverflow.com/questions/2057689/how-does-make-app-know-default-target-to-build-if-no-target-is-specified). I can for example have a nice help command.
Always type "doit list", which is fine, but I would like the default to be nice
I tried to create a task in dodo.py, which calls dodo list itself, but it won't work, because it needs to lock the DB.

doit has the concept of "commands" and "tasks". list is a "command", so not suitable to be used as default_tasks
The default command is run. That allows you you to write doit my_task without having to explicitly specify the command as doit run my_task.
Simply switching the default command to list would not work well as doit my_task would simply use the list command and just "list" the task.
But I guess it could be easily special-case doit without any parameters to execute list while any other parameter/option would switch back  to have run as default.
I have seen people define the "default" task just to print a help message, like Use "doit list" to see available tasks or doit help for available commands.
I do not think it is worth the trouble to implement what you are suggesting...
But if anyone is willing to work on that, it should be easy to implement. Look at doit_cmd.py:DoitMain.run().

What I do is something like this:
def task(func):
    func.create_doit_tasks = func
    return func

DOIT_CONFIG = {
    'default_tasks': ['_list'],
}

@task
def _list():
    return dict(actions=["doit list"])

Then using just doit will list all other tasks I have.


VS Code hangs when debugging

This happens when I attempt to debug. The status bar on the bottom of VS Code becomes orange.
I've already built successfully. And I use the docker sourcekite.

Some output from the extension:
(node:22540) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): [object Object]
(node:22540) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.(node:22547) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'getThreads' of null
(node:22547) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.(node:22635) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'getThreads' of null
(node:22635) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

SPM works fine:
Compile Swift Module 'testsrv02' (1 sources)

Compile Swift Module 'testsrv02' (1 sources)
Linking ./.build/debug/testsrv02

This is related to #38.


Failed tests will break pytest teardown phase when running in debug at pycharm

having this code:
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()
    print(report.when)

def test_foo():
    assert 0

The pytest_runtest_makereport method will be called 3 times (setup, call and teardown)
AFTER installing the plugin AND running in debug, the debugger will stop at the exception and will NOT continue to the teardown phase
running without debug will call the pytest_runtest_makereport method at teardown

Related to https://github.com/jlubcke/pytest-pycharm/issues/13?

@stdedos not sure, as the pytest hook isn't a breakpoint rather its a function that isn't called when this issue occurs


Code availability?

Thank you for sharing the great prediction method. When is the code going to be available?

Hi @Zhanwei-Z, I'm currently working on finalizing it. I'll let you know as soon as it's ready for release. Please stay tuned!

Hi @Zhanwei-Z, I just released the source code. Check it out!

Thank you for sharing your excellent code. Are there any plans to release code that supports the SDD and GCS datasets?

Hi @Zhanwei-Z, I just released the source code. Check it out!

Thank you for sharing your excellent code. Are there any plans to release code that supports the SDD and GCS datasets?

Hi @Zhanwei-Z,
We used the same code for both the SDD and GCS datasets. Instead, we convert the SDD and GCS datasets into the ETH/UCY format. For SDD, we imported the Y-Net's trajnet split and extracted text files for each scene. As for the GCS dataset, we processed the original dataset for use. please refer here for more details.

Hi @Zhanwei-Z, We used the same code for both the SDD and GCS datasets. Instead, we convert the SDD and GCS datasets into the ETH/UCY format. For SDD, we imported the Y-Net's trajnet split and extracted text files for each scene. As for the GCS dataset, we processed the original dataset for use. please refer here for more details.

Thank you for your response. Could you please provide the processed datasets for SDD and GCS?


Why does MySQL return OkPacket object with results when a SQL query string ends in a comment?

I get back the OkPacket object at the end of the array of results (causing actual results data to get nested two arrays deep).  I'm using an instance of mysql.createPool() which I have promisify the pool.query method to use async/await syntax on.
Something like:
const sql = 'SELECT table1.id, table1.foo, table1.bar FROM table1 WHERE table1.id = 1; -- mysql comment!';
const result = await pool.query(sql);  // below is result
[   [     {     "id": 1,     "foo": "Some string1",     "bar": "Some string2"     }   ],   {     "fieldCount": 0,     "affectedRows": 0,     "insertId": 0,     "warningCount": 0,     "message": "",     "changedRows": 0,     ...etc   } ]
However, if the comment is omitted, the results are as expected:
const sql = 'SELECT table1.id, table1.foo, table1.bar FROM table1 WHERE table1.id = 1;';
const result = await pool.query(sql);  // below is result
[   {     "id": 1,     "foo": "Some string1",     "bar": "Some string2"   } ]
This obviously isn't a huge deal, but it would be cool to know what's going on here.  Thanks!

this is how driver returns multiple statements results. In your example second statement is comment, result for it is OK packet.
You can also get multiple results even using single statement, for example call to stared procedure can yield multiple resultsets

I see, thanks for the reply.


Issues/#256 split up week and full view

Discussed with Chael, and I'll close this since the redesigned front-end will replace these changes.


Add optional chains to example

Description

Added optional chains to example. Capitalized the C in WalletConnect (title)
PLEASE NOTE- Checklist must be complete prior to review.
Docs Checklist

[x] Include a screenshot of any changes (see docs README on running locally)
[ ] Add/update the appropriate package README (if applicable)
[ ] Add/update the related module in the docs demo (if applicable)
[ ] Add/update the related package in the docs/package.json file (if applicable)

@finessevanes thanks for that! It will be available in the next docs release!


Character encodings end up wrong in some (all?) resources

At least the Scandinavian accented characters (åäöÅÄÖ) end up wrong when applied by the resources. I would suppose the same happens with other non-ASCII characters as well.
Example:
puppetlabs-dsc version 1.2.0
puppetserver 2.6.0 running on Centos 7.2.1511
agent version 4.8.0 running on windows 10
$PSVersionTable
Name                           Value

PSVersion                      5.0.10240.17146
WSManStackVersion              3.0
SerializationVersion           <IP_ADDRESS>
CLRVersion                     4.0.30319.42000
BuildVersion                   10.0.10011.16384
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
[System.Environment]::OSVersion | format-list
Platform      : Win32NT
ServicePack   :
Version       : 10.0.10240.0
VersionString : Microsoft Windows NT 10.0.10240.0
'C:\Program Files\Puppet Labs\Puppet\sys\ruby\bin\ruby.exe' -v
ruby 2.1.9p490 (2016-03-30 revision 54437) [x64-mingw32]
PS C:\Program Files\Puppet Labs\Puppet\sys\ruby\bin> .\ruby.exe -e "puts Encoding.default_external"
CP850
template/set-lcm-mode.ps1.erb:
$encoding       = [Text.Encoding]::UTF8
Resource:
dsc_file {'Testfile':
dsc_ensure          => 'present',
dsc_type            => 'file',
dsc_destinationpath => 'c:\dsc_testfileåäöÅÄÖ',
dsc_contents => 'Scandics here: åäöÅÄÖ',
}
Result:
-a----       12/21/2016  11:29 AM             48 dsc_testfile├Ñ├ñ├Â├à├ä├û
Scandics here: ├Ñ├ñ├Â├à├ä├û
I tried to work around by:

Changing character encoding in Emacs (‘M-x revert-buffer-with-coding-system’)
Changing encoding in templates/set-lcm-mode.ps1.erb
Using escaping with unicode and double quoted strings as in https://docs.puppet.com/puppet/latest/lang_data_string.html#escape-sequences

No success so far.
EDIT: Verified with with dsc-group, dsc-user, dsc-file
EDIT2: ”Inline” local powershell-dsc goes alright:
$result = Invoke-DscResource -Name File -Method Set -Property @{
DestinationPath = "c:\filetest_åäöÅÄÖ.";
Contents = 'åäöÅÄÖ'} -Verbose
$result | Format-List
Result:
-a----       12/21/2016  12:02 PM             15 filetest_åäöÅÄÖ
åäöÅÄÖ

Ok, this seems to work around this:
Put
chcp 65001
$OutputEncoding =[Console]::OutputEncoding
in $PSHome\profile.ps1
This should work out of the box though.

Hi @kibahop - any chance you can file a ticket at https://tickets.puppet.com/browse/MODULES? This will help us better track unicode type issues. There may be something going on here and we'd like to get to the bottom of whether this is an issue or something in your environment. Thanks!

templates/set-lcm-mode.ps1.erb shouldn't be involved here, as your reported PowerShell version is 5 and the default LCM setting allows Puppet to interoperate with it.
The issue will lie in the interaction between the console, PowerShell, and Puppet side. Did you ever get a ticket in? We do have some work being done in the UTF8 and encoding spaces in Puppet and this could be pulled into that work.

I'm going to close this for now, if you have a chance to come back to this feel free to open a ticket and we can work this through together.

There were definitely some UTF-8 related issues that were fixed by moving to binary pipes in the PowerShell module release 2.1.0 from 11/17/2016 as part of MODULES-3690 (code changes in PR https://github.com/puppetlabs/puppetlabs-powershell/pull/142)
Unfortunately, this updated PowerShell manager code hasn't been carried over to the DSC module yet, so those fixes are not present here (yet).  I'm reopening this until the appropriate powershell_manager code is carried over to this project.
Of note, I also believe that PS1 files need to be saved with a BOM when using UTF8 or UTF16 for the encodings to be handled properly by PowerShell (though someone should double check that for certain).

Hi,
Puppet will be shutting down the github issues tab in this repository as there already is a publicly accessible issue tracker on March 24th, 20017.
If you want to continue the discussion from this issue, please follow the ticket already created from this issue (typically MODULES-XXXX) in our issue tracker.
If you would like to file a new issue, please follow the template here to create a new ticket.
Thanks,
James Pogran


ENS name resolution

figure out how to keep the configureChains hook as such:
const { chains, provider } = configureChains(
[chain.polygon, chain.mainnet],
[infuraProvider({}), publicProvider()]
)
and also prompting the user to switch networks whenever they are not in Polygon

Moved tracking to Notion


Updated link to Google JavaScript Style Guide

URL "http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml" was not found so I updated it to the corresponding URL on GitHub.

I signed it!

Anyone out there?


⚠ GitLab Server has degraded performance

In 62592e1, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11573 ms

Resolved: GitLab Server performance has improved in f26533f.


devicemapper: Fix couple of bugs and code cleanup

Fix a bug where we are trying to load even transaction metadata file into hash map which is supposed to contain only devices.
Also couple of comments are wrong on externally visible functions. Fix those.
During device deletion, it is assumed that higher layers have done Get()/Put() properly. Put a check to ensure that. If that's not done, device deletion will fail. This will ensure that any higher level code errors are caught.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO


Button improvements

Motivation
This PR is my answer to https://github.com/kmagiera/react-native-gesture-handler/issues/59
This solution is not a perfect one what was explained in the code. However, it seems to be fairly fine in most use cases
Changes
Changes in button-related files on both iOS and Android side.
iOS fix is only changing one flag in order to force bounding highlight layer
Android is more complex and involved adding extra layer. I didn't wish just to copy code from RN core and I suppose it calls for some changes in RN code.

@kmagiera
Do you really think so? I was searching for it for a long while and found out it as a quite normal solution and see no reasons why not to use it


Rule.use as a function is not documented

Rule.use configuration is documented when used with a list of UseEntries, but not when used with a function.
I'll probably open a PR with something :smiley:

Please go ahead with pr


Django Q tasks are not executed with ./manage.py test

Hello,
My models have some django Q task starting on certain action such as overridden Model.save() . The async tasks work correctly during functional testing, but the tasks are submitted but not executed if I hit the same code with ./manage.py test.
I just see some message of my  13:07:53 [Q] INFO Enqueued 1, probably of my tasks being queued, but they're not executed.
Is this something expected?

Short answer is: Yes it is something expected.
By calling async you queue your task 13:07:53 [Q] INFO Enqueued 1.
There are a few ways you can processed.

Execute the queued task during your test run
or
(what I have done in my projects) Is write tests for the tasks and test them.

Hey Eagllus,
Thanks for the clarification.
How to execute the queued tasks? Is something I should write at code-level within my tests or can I trigger that with some manage.py command?
Thanks

I looked at your testsuite, I think I'll write as the same as you do here:
https://github.com/Koed00/django-q/blob/master/django_q/tests/test_cluster.py#L111
Thanks

I wrote in my tests something like this, which seems working for a single task:
            Model.save() # It submits an async task

            broker.queue_size()
            task_queue = Queue()
            stop_event = Event()
            stop_event.set()
            # push the tasks
            for i in range(task_count):
                pusher(task_queue, stop_event, broker=broker)
            task_queue.put('STOP')

            # let a worker handle them
            result_queue = Queue()
            worker(task_queue, result_queue, Value('f', -1))
            result_queue.put('STOP')

The problem is that I'm submitting a Chain of tasks, and it seems handling only the first one :(
Could you suggest me how to handle chain of tasks manually in order to be executed within TestCases?
Thanks for your help

@epinna a very easy solution would be to change a setting during you tests.
In your tests.py settings files
Q_CLUSTER = {
    'sync': True
}

or at the beginning of your test (if you only have a single test that needs it)
from django.conf import settings
settings.Q_CLUSTER['sync'] = True

That's what I've done at the end :) thanks for your help.

In case someone hit this... If you see that async tasks are executed in some cases (functional testing like here or running docker compose up in my case or ...) and just [Q] INFO Enqueued 1 in some cases (unit testing like here or running docker compose run SERVICE_NAME SOME_CUSTOM_COMMAND or ...) , it means that your QCluster is not running. Most probably it is not running because the command starting it python manage.py qcluster intentionally or accidentally skipped in some environments.

P.S. About the same thing I wrote above: https://github.com/Koed00/django-q/issues/203


add non-GUI method for downloading data

A member of the qiime forum requested a way to download qiita data from the terminal.
https://groups.google.com/d/msg/qiime-forum/yGET2CORs4A/FEc94-n2DQAJ
Community members are also intersted in an API for downloading qiita data.
https://github.com/joey711/phyloseq/issues/491
(If this is a duplicate of a known issue, feel free to close it.)
Thank you all!
Colin

Basically, this means having a restful interface. Closing in favor of: https://github.com/biocore/qiita/issues/1251

Oh perfect. I knew you must have thought of this, I just didn't have the right words.
Thanks Antonio,
Colin


Opentelemetry grpc access logger uses wrong field for instrumentation_library_logs in 1.23.1

Description:
Opentelemetry grpc access logger sends out logs using deprecated instrumentation_library_logs = 1000 field instead of scope_logs = 2 field (using opentelemetry proto v0.18).

Binary Protobuf senders SHOULD NOT set instrumentation_library_logs. Instead scope_logs SHOULD be set.

This was caused by https://github.com/open-telemetry/opentelemetry-proto/pull/362, which was supposed to not be a breaking change for binary-protobuf clients.
As an effect, opentelemetry access logger in envoy 1.23.1 is only compatible with opentelemetry collector from 0.49.0 to 0.57.2 (which implement "instrumentation_library_logs grace period")
This is a regression from envoy 1.22.3, which uses opentelemetry proto v0.11, which uses correct field instrumentation_library_logs = 2 and is compatible with both newer and older collectors.
Note: the issues is no longer present on main, as opentelemetry proto was updated to v0.19 in https://github.com/envoyproxy/envoy/pull/22694 and the correct scope_logs = 2 is now sent out.
Repro steps:
See https://github.com/krdln/repro-envoy-1.23-vs-otel
Admin and Stats Output:
n/a
Config:
See repro repo
Logs:
See repro repo

As an effect, opentelemetry access logger in envoy 1.23.1 is only compatible with opentelemetry collector from 0.49.0 to 0.57.2 (which implement "instrumentation_library_logs grace period")

I ran into this issue with Envoy v1.23.1 as well. Had to use otel-collector v0.57.2 to get this working. It did not work with the much older versions and also not with v0.61.0.

@shashankram This should be fixed in 1.23.2 – released yesterday.


Add schrodinger logo

We've been using Beam for the past year and it's been great!

Thanks a lot!


Upgrade to prop-types

Nice work on a react package that works as expected!
Any chance there is a plan to change PropTypes from react to the prop-types library?

hey @zachariahtimothy  would you be interested in doing a PR?
otherwise i'll see that i update it shortly

@zachariahtimothy published 1.1.0 with the change

Thanks a bunch @novascreen ! Sorry I had a busy week and did not get a chance for a PR.


Options for manually extending

I'm evaluating paperclip in combination with actix-web. My project applies several middlewares that may cause different errors.
Is there an option to manually apply some changes on the spec (e.g. adding the error codes for a complete scope)?

Yes, for example, you can provide an initial spec with wrap_api_with_spec, see an example here. You may also modify on your handler it before presenting it, by using with_raw_json_spec.
What is your use case for error codes? For example, you can configure your error with api_v2_errors, see example here.

Yes, for example, you can provide an initial spec with wrap_api_with_spec, see an example here. You may also modify on your handler it before presenting it, by using with_raw_json_spec.

I'll check that the next days. Maybe I can figure out a way that can help me.

What is your use case for error codes? For example, you can configure your error with api_v2_errors, see example here.

Well yeah that works fine as long as you define the errorcodes on the handler it self. But my middleware or extractors terminate with some errors (e.g. an status 500 or 403). Sure I could create some more or less empty structs and change the return type of all handlers, but I hoped there is an easier way to manage this.

Found a feasible solution.


fix typo

Thanks for the pull request.  This typo is now fixed. 👍🏻

Thanks for the pull request.  This typo is now fixed. 👍🏻


All links in the "100% Fully Open Source" section of the readme are dead

Fixed. Thank you for the report!


feat: learn English block 3.1

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

I'll sort out the failing tests tomorrow morning. I was a bit hasty creating the PR.

All done. I also checked the video solutions. They may not be perfectly random, but there doesn't seem to be an obvious bias to any solution. I think they're good enough.

Thanks @moT01 @naomi-lgbt!


Feedback and issues around transactions and the command line

Hello!
I recently started a new project and was interested in trying out Wolverine after following @jeremydmiller's blog posts. He was asking for feedback so here are my experiences.
The project is a Web API with hexagonal architecture. I'll be using Marten for document storage and right now am interested in the mediator bits of Wolverine. Perhaps async messaging will be added at some point in time when the need arises. The setup relevant Marten / Wolverine looks like this:
services.AddScoped<IBuildingRepository, BuildingRepository>();

var marten = services.AddMarten(options =>
                     {
                       options.Connection(configuration.GetConnectionString("Marten") ??
                                          throw new
                                            InvalidOperationException("Please set the connection string \"Marten\" in appsettings."));

                       options.DatabaseSchemaName = "wpm";

                       // If we're running in development mode, let Marten just take care
                       // of all necessary schema building and patching behind the scenes.
                       if (environment.IsDevelopment())
                       {
                         options.AutoCreateSchemaObjects = AutoCreate.All;
                       }
                     })

                     // This is the wolverine integration for the outbox/inbox,
                     // transactional middleware, saga persistence we don't care about
                     // yet.
                     .IntegrateWithWolverine("wolverine_messages")

                     // Just letting Marten build out known database schema elements upfront
                     // Helps with Wolverine integration in development.
                     .ApplyAllDatabaseChangesOnStartup();

if (environment.IsDevelopment())
{
  marten.InitializeWith<Buildings>();
}

host.UseWolverine(options =>
{
  // Automatic transactions around handlers.
  options.Handlers
         .AutoApplyTransactions();

  options.Handlers
         .Discovery(d => d.IncludeAssembly(typeof(Application.DependencyInjection).Assembly));

  // Enrolling all local queues into the durable inbox/outbox processing.
  options.Policies.UseDurableLocalQueues();
});

Automatic transactions around handlers
These are the handler bits I'll be referring to.
public record RegisterBuildingCommand(BuildingDto Building);

public class RegisterBuildingCommandHandler
{
  public static void Handle(RegisterBuildingCommand command,
                            IBuildingRepository repo)
  {
    repo.Add(command.Building);
  }
}

public class BuildingRepository : IBuildingRepository
{
  readonly IDocumentSession _session;

  public BuildingRepository(IDocumentSession session)
  {
    _session = session;
  }

  public void Add(BuildingDto building)
  {
    _session.Store(building);
  }

  public BuildingDto[] GetAll()
    => _querySession.Query<BuildingDto>().ToArray();
}

The documentation states

With this enabled, Wolverine will automatically use the Marten transactional middleware for handlers that have a dependency on IDocumentSession (meaning the method takes in IDocumentSession or has some dependency that itself depends on IDocumentSession)

My testing found that the "or has some dependency that itself depends on IDocumentSession" bit is currently not true. The BuildingRepository stores the BuildingDto, but that is never committed. Only after injecting the session into the handler and moving the session.Store call right into it the document is inserted into the database.
Handlers with return values log FailureAcknowledgement
There is another handler to retrieve all stored buildings.
public static BuildingDto[] Handle(AllBuildingsQuery _,
                                     IBuildingRepository repo)
    => repo.GetAll();

Whenever this runs the following is logged:
dbug: Marten.IDocumentStore[0]
      Marten executed in 0 ms, SQL: select d.data from wpm.mt_doc_buildingdto as d

dbug: Wolverine.Runtime.WolverineRuntime[100]
      Enqueued for sending FailureAcknowledgement#018625c6-1315-4f01-9793-9bcf2fd1d4fa to local://replies/
dbug: Wolverine.Runtime.WolverineRuntime[102]
      Started processing FailureAcknowledgement#018625c6-1315-4f01-9793-9bcf2fd1d4fa
dbug: Wolverine.Runtime.WolverineRuntime[103]
      Finished processing FailureAcknowledgement#018625c6-1315-4f01-9793-9bcf2fd1d4fa
dbug: Wolverine.Runtime.WolverineRuntime[103]
      Finished processing AllBuildingsQuery#018625c6-118c-44e8-93d8-5d3a9763cd9b
info: Wolverine.Runtime.WolverineRuntime[104]
      Successfully processed message FailureAcknowledgement#018625c6-1315-4f01-9793-9bcf2fd1d4fa from local://replies/

I do not know whether this is to be expected, but FailureAcknowledgement does not sound good to me.
Every time this happens a "Handled" row appears in wolverine_incoming_envelopes with data that looks like this:
sourceInfrastructure
message-type Wolverine.Runtime.RemoteInvocation.FailureAcknowledgement
reply-urilocal://replies/
content-typeapplication/json
correlation-id da4e87378b6d0937490d8b14a5b10cc0
conversation-id$018625c6-118c-44e8-93d8-5d3a9763cd9b
destinationlocal://replies/
accepted-content-typesapplication/json
id$018625c6-1315-4f01-9793-9bcf2fd1d4fa

���{"$id":"1","RequestId":"018625c6-118c-44e8-93d8-5d3a9763cd9b","Message":"No response was created for expected response 'Application.UseCases.Buildings.Models.BuildingDto[]'"}

Command line failures
While researching why automatic transactions are not applied I was interested in seeing the code generated for the handler, similar to what @jeremydmiller uses in his blog posts (e.g. last code snippet here).
$ dotnet run --project src/Web/Web.csproj -- codegen preview
Building...
Searching 'JasperFx.CodeGeneration.Commands, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Weasel.CommandLine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Marten.CommandLine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Wolverine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands

No Wolverine extensions are detected

# => just hangs

$ dotnet run --project src/Web/Web.csproj -- codegen preview -v
Building...
Searching 'JasperFx.CodeGeneration.Commands, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Weasel.CommandLine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Marten.CommandLine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Wolverine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands

No Wolverine extensions are detected

Verbose flag is on.
[red]ERROR:[/]System.NotSupportedException: The IHost (Microsoft.AspNetCore.Builder.WebApplication) is already constructed. See https://jasperfx.github.io/oakton for
alternative bootstrapping to enable this feature.
  at IHostBuilder Oakton.PreBuiltHostBuilder.ConfigureServices(Action<HostBuilderContext, IServiceCollection> configureDelegate)
  at void Oakton.NetCoreInput.ApplyHostBuilderInput()
  at IHost Oakton.NetCoreInput.BuildHost()
  at bool JasperFx.CodeGeneration.Commands.GenerateCodeCommand.Execute(GenerateCodeInput input)
  at Task<bool> Oakton.OaktonCommand`1.Oakton.IOaktonCommand.Execute(object input)
  at Task<bool> Oakton.CommandRun.Execute()
  at async Task<int> Oakton.CommandExecutor.execute(CommandRun run)

This is probably related to https://github.com/JasperFx/oakton/issues/75, so I tried the --launch-profile workaround.
$ dotnet run --project src/Web/Web.csproj --launch-profile Web -- resources check
Building...
Searching 'JasperFx.CodeGeneration.Commands, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Weasel.CommandLine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Marten.CommandLine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands
Searching 'Wolverine, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' for commands

No Wolverine extensions are detected

[red]ERROR:[/]System.Security.VerificationException: Method Spectre.Console.AlignableExtensions.LeftAligned: type argument 'Spectre.Console.FigletText' violates the
constraint of type parameter 'T'.
  at async Task<bool> Oakton.Resources.ResourcesCommand.Execute(ResourceInput input)
  at void System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start<TStateMachine>(ref TStateMachine stateMachine)
  at Task<bool> Oakton.Resources.ResourcesCommand.Execute(ResourceInput input)
  at Task<bool> Oakton.OaktonAsyncCommand`1.Oakton.IOaktonCommand.Execute(object input)
  at Task<bool> Oakton.CommandRun.Execute()
  at async Task<int> Oakton.CommandExecutor.execute(CommandRun run)

Using Paket
I prefer to use Paket for NuGet dependency management. There might be some issues with open version constraints, for example Spectre.Console >= 0.45 required by Oakton 6.0. Paket will always use the newest version that satisfies >= 0.45, as opposed to NuGet which preferred the oldest version that matches the version constraint the last time I used it.
The paket.lock file below does not contain packages starting with System. or Microsoft. (I removed them for brevity).
Spectre.Console 0.45 causes the same System.Security.VerificationException above.

 I'm using Pact to verify the contract between my API and an Angular client. I cannot use Alba because Pact requires a real TCP socket to make requests.
The fixture to spin up the website looks like this:
public class WebFixture : IAsyncLifetime
{
  readonly ITestOutputHelper _testOutputHelper;
  public readonly Uri BackendUri = new("http://localhost:9001");
  WebApplication? _app;

  public WebFixture(ITestOutputHelper testOutputHelper)
  {
    _testOutputHelper = testOutputHelper;
  }

  public Task InitializeAsync()
  {
    var builder = WebApplication.CreateBuilder(new WebApplicationOptions
    {
      EnvironmentName = "ProviderTests",
    });

    builder.Logging
           .Services
           .AddSingleton<ILoggerProvider>(_ => new XUnitLoggerProvider(_testOutputHelper));

    var startup = new StartupWrapper();
    startup.ConfigureServices(builder);

    _app = builder.Build();
    _app.Urls.Add(BackendUri.ToString());

    startup.ConfigureRequestPipeline(_app);

    return _app.StartAsync();
  }

  public Task DisposeAsync()
    => _app?.DisposeAsync().AsTask() ?? Task.CompletedTask;
}

What happens here is nothing special, just the normal bootstrapping and small additional services and middleware (ConfigureServices, ConfigureRequestPipeline) to allow Pact to inject "provider states" into the application.
The test is successful apart from this being logged:
Verifying a pact between WPM Admin and WPM API

  A request for all buildings
     Given There is 1 building
    returns a response which
      has status code 200 (OK)
      includes headers
        "Content-Type" with value "application/json" (OK)
      has a matching body (OK)

fail: Wolverine.Runtime.WolverineRuntime[0]
      Error while trying to stop DurabilityAgent
      System.ObjectDisposedException: Cannot access a disposed object.
      Object name: 'NpgsqlConnection'.
         at Npgsql.NpgsqlConnection.CreateCommand()
         at Npgsql.NpgsqlConnection.CreateDbCommand()
         at Weasel.Core.CommandExtensions.CreateCommand(DbConnection conn, String sql)
         at Wolverine.Postgresql.PostgresqlSettings.ReleaseGlobalLockAsync(DbConnection conn, Int32 lockId, CancellationToken cancellation, DbTransaction tx)
         at Wolverine.RDBMS.DurableStorageSession.ReleaseNodeLockAsync(Int32 lockId)
         at Wolverine.RDBMS.Durability.DurabilityAgent.StopAsync(CancellationToken cancellationToken)

Passed!  - Failed:     0, Passed:     1, Skipped:     0, Total:     1, Duration: < 1 ms - Web.ProviderTests.dll (net7.0)

@agross Oh man, thank you so much for taking all this time. Might take a bit for me to get to think on this enough to respond, but I wanted you to know that I at least saw this come in.

Hi @jeremydmiller,
at the risk of flooding you with feedback (take your time!), I today tried to Wolverine-ify RBAC on the granularity of a command (still talking about IMessageBus).
I use KeyCloak for authentication and there is an excellent NuGet with an example to implement RBAC with a Mediatr behavior..
The code has a comment // TODO: consider reflection performance impact which I'm also after.
From my understanding, the Wolverine equivalent of IPipelineBehavior would be a middleware that would incur the same reflection cost per processed message. My idea was to make use of the code generation capability around the handler and pay that cost only once during setup.
using System.Runtime.CompilerServices;

using Application.Authorization;

using JasperFx.CodeGeneration;
using JasperFx.CodeGeneration.Frames;

using Lamar;

using Microsoft.Extensions.Logging;

using Wolverine.Configuration;
using Wolverine.Runtime.Handlers;

namespace Infrastructure.Authorization;

public class AuthorizationPolicy : IHandlerPolicy
{
  static readonly Dictionary<Type, string[]> MessageTypeToPolicies = new();

  public void Apply(HandlerGraph graph, GenerationRules rules, IContainer container)
  {
    foreach (var chain in graph.Chains)
    {
      Apply(chain);
    }
  }

  void Apply(HandlerChain chain)
  {
    var policies = chain.MessageType
                        .GetCustomAttributes(typeof(AuthorizeAttribute), true)
                        .Cast<AuthorizeAttribute>()
                        .Select(x => x.Policy)
                        .Where(x => !string.IsNullOrWhiteSpace(x))
                        .ToArray();

    if (!policies.Any())
    {
      return;
    }

    MessageTypeToPolicies.Add(chain.MessageType, policies!);

    var method = GetType()
                 .GetMethod(nameof(EnforcePolicy))
                 .MakeGenericMethod(chain.MessageType);

    var methodCall = new MethodCall(GetType(), method);

    chain.Middleware.Add(methodCall);
  }

  [MethodImpl(MethodImplOptions.AggressiveInlining)]
  public static async Task EnforcePolicy<T>(IIdentityService identityService, ILogger logger, T message)
  {
    var policies = MessageTypeToPolicies[message.GetType()];

    foreach (var policy in policies)
    {
      if (await identityService.AuthorizeAsync(policy))
      {
        continue;
      }

      logger.LogWarning("Failed {Policy} policy authorization with user {User} for {Message}",
                        policy,
                        identityService.UserId,
                        message);

      throw new UnauthorizedAccessException();
    }
  }
}

The Apply does the reflection bits and then injects a method call, like a middleware's Before(). But the Before() variant would always need to reflect, right?
As you can see the handler policy uses a dictionary to cache the roles per message, but my ultimate goal would be to pass the list of roles directly to EnforcePolicy, perhaps as the first argument.
I tried that for a couple of hours, even cloned JasperFx.CodeGeneration, but I could not find a way to make the first argument a constant expression. Perhaps another way is to register "required roles per message" in the container, but that seems a bit too overboard. It would be great if you could share your ideas!

Spawning https://github.com/JasperFx/wolverine/issues/218 from this.

Spawning https://github.com/JasperFx/oakton/issues/78 for the Oakton issue.

Spawning https://github.com/JasperFx/wolverine/issues/219 for the release global lock issue

@agross,
I'm technically closing this, but only after spawning a bunch of smaller issues:-)
Thanks for all the feedback!

Thank you for all the work you put into your OSS! 👍