RFC: server to client event/notification system

It would be nice if the server could notify the clients on its own, without needing the client to poll from the server. A client can register listeners to an event, and when the server triggers the event, it is multiplexed to all the listeners. Rough idea of what the code might look like:
service! {
    event fn something_changed(olddata: i32, newdata: i32);
}

let client = Client::new(...);
client.something_changed(|old, new| {
    println!("It changed!");
});

impl Server for MyServer {

    fn some_method(&self) {
        self.something_changed(self.old_data, self.new_data);
    }

}

There is a precedent, the Deluge RPC supports events.

I can see how some sort of sugar for this would be useful, but it's probably out of scope for tarpc, at least for now. You can do this already, though, with a pair of subscriber/publisher services. I thought it'd make for an interesting example, so I whipped up one.

This pattern can work in some cases, but there are major issues in some other (e.g. public API). It requires that the server has knowledge of the client's API or that clients implement a generic callback/server trait. But even then, the clients behind a NAT (mobile phones), would need to use UPNP to punch holes in the NAT and be able to listen (I'm not sure if a mobile phone's allowed to do that, probably not). They would also need an auth system to know that the connections really come from the server and not a malicious party.

I don't think it requires knowing anything about the client's API or using a generic callback trait. The subscriber service could be separate from any other clients it's being used with. i.e. you could make an rpc from some other clients in response to a push notification.
An auth system is probably going to be required for most applications anyway, but it's also out of scope, at least for now.

I don't think the library needs an auth system, it was just to illustrate a point. What do you think of the issues related to the client having to open and bind a socket (NAT traversal)?

My expectation is that most clients will be running on servers, where this wouldn't be an issue. Admittedly tarpc isn't mobile-focused, but I also would like to do what I can to support it. Does your specific use case involve mobile apps? Is having to bind a socket in a client-only application a showstopper for you?

I don't have a specific case at the moment, but I want to make projects using Rust as a backend for websites and services. If the library could encode messages as JSON instead of bincode and a WebSocket transport was added, browsers would be able to connect directly to tarpc. Mobile apps would be able to connect to tarpc via WebSocket or plain TCP.
Both web and mobile applications would benefit from not having to create a server.

Regarding JSON, we're definitely planning to be generic over serialization protocol. Just haven't got around to it yet (lots of things to work on :).
I do see your point. The scope of events seems relatively constrained; it wouldn't be hard to add support for it. I fear feature creep, though, and this wasn't a use case we'd originally intended to support, but let me think about it some more.

There is a feature creep danger, I agree. For instance, I was thinking that this could be used to create a chat application. One issue I noticed, is that if you have events coming from a channel, you don't want to send the events to all the listeners, only the ones connected to the channel. So this would require a way of filtering clients before broadcasting, and it's kind of a Pandora's box.

Yeah, I'd definitely like to see how far we can get with the current feature set (plus some known outstanding things like serialization-protocol agnosticism) before deciding to add something like this. I'd love to get feedback from real usage; I encourage you to see what you're able to do with tarpc in its current form!

@sbstp  I think your use case can be handled by supporting streaming RPCs. A subscriber could open a stream to the server, and the server could stream back anything that was published. This is something we've thought about but not put much effort into thus far. It should get done, just not sure how fast.

futures-rs has a nice Stream abstraction. I think it's likely we'll want to use that for something like this.

More information on the Stream type.

It it worth investing in futures given generators could be implemented in the coming months?

The futures crate is being championed by the core team, and IMO it's likely
to be forward compatible with generators. I also very much like the
ergonomics of the futures as existing now, and we don't know when any
alternative will come in the future (no pun intended).
TLDR: I'm happy to pay the price of being an early adopter.
On Wed, Aug 10, 2016, 12:13 PM Simon Bernier St-Pierre <
<EMAIL_ADDRESS>wrote:

It it worth investing in futures given generators could be implemented in
the coming months?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/tarpc/issues/39#issuecomment-238972849, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACx9wVNfGOJ6nFo3oNwoinMC-kqYLgrHks5qeiLugaJpZM4InE6e
.

Another usecase: I'm developing a game in Rust, and server collects input from clients and send them back the physical world updates.  It's not that uncommon to encounter a client behind NAT so it will be really great I can reuse the established connection, for server to call client.
How about supporting server-calling-client-API through the established connection.  I think this bi-directional calling is general enough to be implemented at RPC lib layer.  Socket IO supports that, for example.  And event-notification can be built upon that separately.

That definitely sounds like a valid use case! Adam and I talked a bit about the design a while back, but we never made real forward progress. I'm happy to revisit it, but I don't have a ton of bandwidth in the upcoming weeks to do a deep dive. I want to represent this as an RPC that returns a Stream. Maybe even support multiple streams per RPC, I don't know. And also allow them to be bidirectional.

I think streaming and bi-directional call should be treated independently.  For now, I'm using grpc (which supports streaming but not reverse-call), and squeezing all server-calling-client-API to a stream.    To illustrate, there is one stream opened that gets server msgs
enum ServerMsg {
    PlayerMoved {x:f32, y:f32, z:f32},
    PlayerJumped,
    GamePaused,
    ...
}

Where each msg type deserves separate RPC definitions ideally.

Ah, I see what you're saying. Is there any prior art for that kind of thing? I'm a bit nervous about intermixing client/server roles. There's another open issue for communicating to multiple services over a single connection. Maybe that would better serve your needs? Though admittedly that's also a feature that I don't expect to implement any time soon as it feels like it's better suited to the tokio layer. But I haven't thought about it a ton.

Maybe it's more cleaner layering in this way? It's not server-calling-client but creating a service through an abstracted connection layer, which initiation is implementation detail.  So we will introduce an abstract connection layer(Trait) and provide two impls:

TCP connection stream impl
Stream multiplex component that takes another stream impl and provides N abstract streams (by tagging or whatever).

And a service will be on a stream.  And two streams will be needed in my case.  In this way, supporting multiple services is also very natural.

Btw, it looks like https://github.com/kmcallister/urpc generalizes service over Read + Write Trait.  I think it makes sense because then one can plug any transport layer they want, IPC, UDP+KCP, Websocket, etc...
If tarpc supports that abstraction, it will be easy to implement the above without modifying tarpc, by just writing multiplexed stream component separately.

We probably could abstract over AsyncRead and AsyncWrite. I'd file a separate issue for that!

Thanks! =D

Do you have a plan to implement this in tarpc?
Or should I multiplex one stream to multiple streams and establish multiple tarpc sessions?

I'm pretty sure I won't do this in a first class way, because the best way to do that would be by supporting streaming RPCs, and I'm loathe to do that because it'd basically just end up as a worse HTTP2. I think I like the niche tarpc fills of a simple request-response abstraction.
I suppose that means I should close this issue. ;)


Update app-service-linux-faq.md

After spending time debugging why my dependencies weren't loading, I discovered that the app uses composer.lock NOT composer.json to include new packages.

@lastcoolnameleft,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@lastcoolnameleft : Thanks for your contribution to the Azure documentation! The author, @ahmedelnably, has been notified to review your proposed change.

Adding @nickwalkmsft to comment

Adding @Benjiiim to check me on this, as he was the major contributor on this implementation and he's  more familiar with PHP than I am.
@lastcoolnameleft, you're correct, and I'm approving. I am going to make a note to submit a future PR with a little more detail though. Running composer update in your dev environment to update composer.lock and checking in the lockfile is a standard best practice, in which case the installation will always use the lockfile. But the install script will still install apps that don't have a lockfile, in which case the dependencies will be installed from composer.json.
@Benjiiim, in addition to the FAQ update, I see potentially a couple changes in the implementation, could you comment?

I see Heroku (https://devcenter.heroku.com/articles/php-support#activation) first checks for composer.json to confirm the "PHPness" of your app, but then requires composer.lock, and will reject the deployment without it. This is a pretty good safety check. I'm wondering if that's a feature worth considering.
Does it ever occur in standard practice that a PHP repo will contain a composer.lock and not a composer.json? The deployment script only runs composer install iff composer.json is present, and the detection logic in Kudu only considers composer.lock to be a "potential" indicator of a PHP site, with some extra requirements that may give false negatives (I'm not sure that the presence of a default.html or index.html should prevent Kudu from deciding it's a PHP site.)

#sign-off

Sorry for my late reply.
@lastcoolnameleft > the lock file should be respected by the default PHP deployment script.
Indeed, what it does by default (if you don't override $COMPOSER_ARGS) is only:
composer install --no-interaction --prefer-dist --optimize-autoloader --no-progress --no-dev --verbose
According to the Composer doc, if a composer.lock is present, it is going to be used by composer install.
That mean that your original issue might be caused by something else.
Regarding the not perfect detection logic, as far as I know, you should not deploy a composer.lock without the composer.json.
That mean that the detection logic can be simplify by only looking for composer.json. That is something I would like to do in the following weeks, with one other improvement (move up the php detection before the node.js detection as some PHP projects such as Laravel are using both composer.json and package.json).
@nickwalkmsft > deploying the composer.json without a composer.lock file is not a good practice for production but I don't know if we should enforce this. What about displaying a warning instead?
Regarding the FAQ item, I think that the change should be reverted as the main detection item today is composer.json (and might be the only one if I take the time to submit a new PR).

Thanks for the details.  My initial concern is that the documentation stated only the composer.json was required, but in actuality composer.lock was required.
I will admit the issue was my own Composer noob-ness that had me not check both in, but if the documentation would state using both composer.lock & .json, I think it would have resolved the issue quickly.
For me, the issue was more around documentation, and the gory details to me was less important.
Regardless, I appreciate the assistance.

Actually, only the composer.json is required. :-)

Thanks all. When I get some time I will add a little bit to the documentation here to clear it up.


choose the best iou box

box1_xyxy[:,:2] = box1[:,:2]/14. -0.5*box1[:,2:4]
What's that code mean? Why divide 14 and multiply 0.5？
Thank you .

box[:,:2] is the center of box, divide 14(grid num) to remap it to location relative to the whole image.
box[:,2:4] is the width and height of object, multiply 0.5 to compute top-left corner and bottom-right corner.


Simplify linera-core tests: add_initial_chain → add_root_chain.

Motivation
In the linera-core tests the specific ChainDescription doesn't really matter, but we always manually create it and pass it into add_initial_chain. Also, it has to be a root chain, since child chains should only be created using OpenChain.
In some places we were sending tokens to nonexistent chains, and for the test it really only mattered that they were debited, or even only that a block was created.
Proposal
Rename it to add_root_chain and pass in the index of the new root chain. Use ChainClient::client_id more often rather than ChainId::root, to make it clearer whose client's chain it is.
Use burn for brevity instead of transferring to a nonexistent chain.
Test Plan
The tests will fail in CI if I messed anything up.
Release Plan

Nothing to do / These changes follow the usual release cycle.

Links

reviewer checklist

I'm wondering if it would also make sense (perhaps later?) to remove the indices altogether

Yes, that's true. Otherwise you have to know that root 0 is the admin chain.
Anyway, I'd do that in a separate PR because I don't know if I'll be able to do that today, and probably not next week either. :sweat:


Add mean opacity for photons

We already have a mean (Planck and Rosseland) opacity class for neutrinos, we want a similar feature for photons.

@Yurlungur If you are happy with this (and my latest answer) please merge :)


Prevent release with quay expires-after set

The quay.expires-after label is used by quay.io to indicate the image doesn't need to be kept indefinitely. The goal is to prevent unintentionally releasing images with that label is set.
There's some dependency on the extra rule data name/value chosen in EC-618 so this is WIP for now.
Ref: https://issues.redhat.com/browse/KFLUXBUGS-1223

I didn't test it with a real image yet.

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

Project coverage is 100.00%. Comparing base (7c483fa) to head (a0ddcb5).

Additional details and impacted files

@@            Coverage Diff            @@
##              main      #993   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          103       105    +2
  Lines         4902      4928   +26
=========================================
+ Hits          4902      4928   +26

Files
Coverage Δ

policy/lib/rule_data.rego
100.00% <ø> (ø)

policy/release/quay_expires_after.rego
100.00% <100.00%> (ø)

policy/release/quay_expires_after_test.rego
100.00% <100.00%> (ø)

Be wary both this and #999 modify the same docs so one of them most likely would need to be rebased on top of the other.

A rebase plus minor tweaks.

Let's merge.


Release Distributed Tracing Track 2 Plugin Preview 5 for Java

API Design

N/A

Feature Work

[x] OpenTelemetry Packages available for testing by Azure Java SDK team (no ETA) https://github.com/open-telemetry/opentelemetry-java

[x] Azure SDK Distributed Tracing Plugin / Context tested with OpenTelemetry alpha release

[x] Zero Bug Bounce on active issues https://github.com/azure/azure-sdk-for-java/issues?q=is%3Aopen+is%3Aissue+label%3AClient+label%3AMonitor

Documentation

[x] Update existing code samples for Storage, KeyVault, and EventHubs to include Distributed Tracing for OpenCensus and OpenTelemetry

Related

Release Distributed Tracing Track 2 Support https://github.com/Azure/azure-sdk/issues/501
Preview 4 Tracing Epic for Java: https://github.com/Azure/azure-sdk-for-java/issues/4762
Preview 3 Tracing Epic for Java: https://github.com/Azure/azure-sdk-for-java/issues/4761
Preview 2 Tracing Epic for Java: https://github.com/Azure/azure-sdk-for-java/issues/4433

Closing as this tracked the tracing preview for the November 2019 SDK update
http://repo2.maven.apache.org/maven2/com/azure/azure-core-tracing-opencensus/1.0.0-preview.4/


unable to create channel for cosmwasm contract

while creating ibc channel using wasm port getting below error
 gRPC call `send_tx_simulate` failed with status: status: Unknown, message: "failed to execute message; message index: 0: route not found to module: wasm: route not found

solution
we should add wasm to ibc router
ibcRouter.AddRoute(wasmtypes.ModuleName, wasm.NewIBCHandler(appKeepers.WasmKeeper, appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCKeeper.ChannelKeeper))

fixed by #158


feat: audio-to-audio-search example [WIP]

Following needs to be done:

[ ] Add tests
[ ] Update READMEs
[ ] Polish code
[ ] Upload input data

Tests are now added but are failing on Github - currently under investigation. Also doing experiments to collect accuracy results using various segmenters/encoders.


rm pt.generate_files from sample update

Ha! Good question: basically, when a user updates a sample information file, if a sample is present in a given preparation it will be updated. This was useful for when we actually stored in disk the qiime mapping file (sample + prep for each preparation), this update generated the new preps (still the same info than before); however, now we don't do that. The sample+prep is now generated on the fly so that code is no longer necessary.

I’m still not sure I understand as in this case, preps were reported as updated which did not have samples reflected in the update. Or was there a side effect where updating just a single sample would trigger generation of all preps regardless of sample presence?

On Aug 17, 2021, at 5:12 PM, Antonio Gonzalez @.***> wrote:
Ha! Good question: basically, when a user updates a sample information file, if a sample is present in a given preparation it will be updated. This was useful for when we actually stored in disk the qiime mapping file (sample + prep for each preparation), this update generated the new preps (still the same info than before); however, now we don't do that. The sample+prep is now generated on the fly so that code is no longer necessary.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub https://github.com/qiita-spots/qiita/pull/3132#issuecomment-900714154, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADTZMQDEW7CZMTLF546XALT5L3HXANCNFSM5CK2M23Q.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email.

It will not update all if no new columns were added/deleted, if a new column was added, it will trigger a full update ... sadly.

This is ready for review/merge. Note that the main change was to delete the preparation generation when updating the sample info file and the tests that relied on that - mainly, the timestamp of the latest preparation and the filepath counts.

@unique-identifier @wasade if this PR looks good to you can you go ahead and merge it?

@antgonza May I have write access on Qiita project? I can merge once I have it. Thanks!

@charles-cowart, just invited you; thank you.


fixed Issue 131

The overall idea is to use Store to share the state of opening and closing the info window (show_info), and then redraw the info button background based on this state.

Hi @ZhangHanDong, thank you for looking into this.
While these changes mostly work, the main problem is that the button state is not updated (and these changes don't fix that yet, so you see some conflicts with mouse events afterwards).
This happens because when the Modal is open, the mouse events that would normally cause a "hover-out" of the icon, are not being propagated downwards (which is generally what we want, so that the cursor does not interact with elements behind the modal while it's open).
I'll take a look at how we can fix this within the modal or button widgets (or maybe extending the event propagation system in Makepad). Because I think app developers shouldn't need to deal with updating that state.
That said, if we were to update the button state on our own, I'd perhaps use the modal closing action PortalAction::Close (with some metadata), and listen to it from the invoker, and based on that update status of the button.
This way we would avoid saving those values in the store for each button (this happens also with other modals). I'd avoid having UI visibility specifics in the Store.
Another simpler option could be that when opening the modal we immediately tell the ButtonRef (that we just used to check for .clicked), to update its hover state.
    if self.button(id!(info_button)).clicked(actions) {
           ...
            cx.widget_action(
                widget_uid,
                &scope.path,
                PortalAction::ShowPortalView(live_id!(modal_model_info_portal_view)),
            );
            self.button(id!(info_button)).set_hover(false)
            // ^ something like this, again not ideal to deal with as an app dev
        ...
    }

Either way for those options we would have to extend the button API in Makepad to allow overriding that state (I'm not sure if we want to do that).
Lastly, this other issue https://github.com/moxin-org/moxin/issues/178 hints at other problems with the event/hover handling in these widgets, perhaps there are relevant bugs in that code.
I'll update you with my findings, hopefully we can handle this within Makepad or the within the Widgets.
(feel free to look into it as well if you want)
Thank you for this work, it was good starting point to find out the root problem.

@ZhangHanDong update:
We've been discussing solving this issue within Makepad.
We'll build some mechanism to properly update focus of underlying widgets whenever an Overlay takes over, is a bit tricky but it should be solved at the framework level so that we don't have to deal with it on the application side.
We can leave this on hold for a bit.

@ZhangHanDong We have been working to solve this issue and similar ones. However, as @joulei commented above, the most appropriate solutions were changes or additions to Makepad widgets so we can better control cursor and hover states, specially around buttons. Also, we're reworking how Modal and other floating elements works in Moxin, so we can better deal with this kind of issues.
Although I'm closing this PR (since the issue is gone now) I want to say thanks, because your work and all the conversation with @joulei was very helpful to diagnose the problem and find the right solutions at the framework level 💪


Added Python 1.5: Brief History of Python.md

Hey @adityabisoi
I added the Brief History of Python. Check.

PR title should be exactly equal to that of your issue


Document constructor attributes

AFAICT, returnError is not documented in the README.

https://github.com/IBM/nodejs-itoolkit/tree/v1.0-dev#connection needs a function signature and needs to describe how it behaves with the old parameters and the new object constructor as well as a list of object attributes that are supported by the constructor. Something like https://serialport.io/docs/api-stream#constructor

@kadler
I'm working on this as part of the overall #10 and #22 goals

I'm planning on creating docs/README.md which will document the API.

Closing after merging PR #58


Web show UnimplementedError

@hnvn
When I implement shimmer package app on web app then it's show below error but it's working om mobile side:
======== Exception caught by scheduler library =====================================================
UnimplementedError
====================================================================================================

Duplicate of #25

Duplicate of #25


Nick: Watch geetanjalihomestate.co.in

Nick requests the watch of the watch_keyword geetanjalihomestate\.co\.in. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

geetanjalihomestate\.co\.in has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


ping timeout when container connect to another host ip directly

such as follow example : <IP_ADDRESS> ping <IP_ADDRESS> time out

why would you expect that to work? what are you trying to do?

because in some old system,not every infrastructure system run in container network, new system should adapter to old system.

Did you read about service import?

Based on further information supplied via IRC, I think you are seeing two things.
1: if you run docker with --iptables=false, then no container can talk to any off-Docker address.
2: you can set up further routing and NAT rules to get from <IP_ADDRESS> to core-03 as described at service import, but this requires that you target the destination using a new IP address within the weave network.  You said you didn't want to give it a different IP address.
So far, this is working as designed.
There doesn't seem to be any need to involve weave to get from a container on core-02 to core-03, since they are all on the VM network.  You enable this with further iptables rules, or let Docker set those up if you change its option to --iptables=true
If I have mis-understood any of this I apologise, and please would you supply further information to clarify.


Parameters on-chip

Hi,
the FINN paper says that the parameters are kept on-chip removing the off-chip memory
bottleneck.
In your code, what is the point in that is possible to note that?
I saw the allocAccelBuffer function in xlnkdriver.hpp, but I think it allocates memory in /dev/mem for accelBufIn and accelBufOut.
Can you clarify me how the parameters are loaded on-chip?
Thanks,
Sara

Network parameters are stored in chip, as written in the paper, like here line 50 to 67.
Input images and output classification are instead provided via AXI-4 to the accelerator from the processing system using those buffers


No change in paper-toggle-button when clicked

I created a Polymer custom element consisting of a paper-toggle-button and a paper-slider, it is called a paper-slider-combo. When the toggle is toggled the slider value is updated and vice versa.
The paper-slider is set by the user to 0, this causes the paper-toggle-button to be set to false. The user clicks on the paper-toggle-button but it does not toggle back to true, neither is it's on-change event handler called, in fact apart from a paper-ripple effect nothing appears to happen. A second click and it toggles and the on-change event-handler is called.
Regardless of anything else when the paper-toggle-button is clicked I believe it should change it's state. Even it's on-change event handler is not called so it seems nothing is happening at all apart from a paper-ripple effect. Thus I'm thinking it's an error in the paper-toggle-button.
Here is link to the files:
https://github.com/jbarischr/toggle-slider-combo
Here is a link to the problem in more detail:
http://stackoverflow.com/questions/31004848/polymer-paper-toggle-button-not-toggling-when-clicked

moved to PolymerElements/paper-toggle-button


WARNING: possible circular locking dependency detected (io_rsrc_put_work+0x13d/0x1a0)

Hi Jens,
I got a test failed with a potential deadlock at <rsrc_tags>.
Kernel: 5.14.0-rc3-bluetea-test-00249-gc7d102232649
[ 9257.317473] Running test 232c93d07b74-test:
[ 9261.828744] Running test 35fa71a030ca-test:
[ 9321.858788] Running test 500f9fbadef8-test:
[ 9323.308544] Running test 7ad0e4b2f83c-test:
[ 9324.419221] Running test 8a9973408177-test:
[ 9325.635902] Running test 917257daa0fe-test:
[ 9325.755814] Running test a0908ae19763-test:
[ 9325.871406] Running test a4c0b3decb33-test:
[ 9340.684624] Running test accept:
[ 9342.070441] Running test accept-link:
[ 9342.389549] Running test accept-reuse:
[ 9342.511045] Running test accept-test:
[ 9342.627728] Running test across-fork:
[ 9342.745884] Running test splice:
[ 9342.872690] Running test b19062a56726-test:
[ 9342.981963] Running test b5837bd5311d-test:
[ 9343.100657] Running test ce593a6c480a-test:
[ 9344.229048] Running test close-opath:
[ 9344.339398] Running test connect:
[ 9344.363080] TCP: request_sock_TCP: Possible SYN flooding on port 29878. Sending cookies.  Check SNMP counters.
[ 9344.453743] Running test cq-full:
[ 9344.563967] Running test cq-overflow:
[ 9355.410900] Running test cq-peek-batch:
[ 9355.522211] Running test cq-ready:
[ 9355.635496] Running test cq-size:
[ 9355.747607] Running test d4ae271dfaae-test:
[ 9356.041987] Running test d77a67ed5f27-test:
[ 9356.303955] Running test defer:
[ 9359.413848] Running test double-poll-crash:
[ 9359.528898] Running test eeed8b54e0df-test:
[ 9359.683170] Running test eventfd:
[ 9359.814646] Running test eventfd-disable:
[ 9359.945202] Running test eventfd-ring:
[ 9360.092271] Running test fadvise:
[ 9360.413969] Running test fallocate:
[ 9360.561731] Running test fc2a85cb02ef-test:
[ 9360.677307] Running test file-register:
[ 9378.660480] Running test file-update:
[ 9381.894220] Running test files-exit-hang-poll:
[ 9382.996801] Running test files-exit-hang-timeout:
[ 9384.095303] Running test fixed-link:
[ 9384.194950] Running test fsync:
[ 9384.422513] Running test hardlink:
[ 9384.528068] Running test io-cancel:
[ 9387.144482] Running test io_uring_enter:
[ 9387.506670] Running test io_uring_register:
[ 9389.784601] Running test io_uring_setup:
[ 9389.892289] Running test iopoll:
[ 9402.967112] Running test lfs-openat:
[ 9403.070135] Running test lfs-openat-write:
[ 9403.173498] Running test link:
[ 9403.313011] Running test link-timeout:
[ 9404.916786] Running test link_drain:
[ 9405.841861] Running test madvise:
[ 9406.152754] Running test mkdir:
[ 9406.256519] Running test multicqes_drain:
[ 9451.376548] Running test nop:
[ 9451.477609] Running test nop-all-sizes:
[ 9451.622920] Running test open-close:
[ 9451.868377] Running test openat2:
[ 9452.092030] Running test personality:
[ 9452.197029] Running test pipe-eof:
[ 9452.301000] Running test pipe-reuse:
[ 9452.409544] Running test poll:
[ 9452.512898] Running test poll-cancel:
[ 9452.613946] Running test poll-cancel-ton:
[ 9453.008100] Running test poll-link:
[ 9453.316323] Running test poll-many:
[ 9465.760035] Running test poll-mshot-update:
[ 9474.184772] Running test poll-ring:
[ 9474.294344] Running test poll-v-poll:
[ 9474.815263] Running test probe:
[ 9474.925634] Running test read-write:
[ 9519.635522] Running test register-restrictions:
[ 9519.995146] Running test rename:
[ 9520.108175] Running test ring-leak:
[ 9520.246420] Running test ring-leak2:
[ 9521.360344] Running test rw_merge_test:
[ 9521.470459] Running test self:
[ 9521.582026] Running test send_recv:
[ 9521.702652] Running test send_recvmsg:
[ 9521.820930] Running test shared-wq:
[ 9521.934517] Running test short-read:
[ 9522.136810] Running test shutdown:
[ 9522.253045] Running test sigfd-deadlock:
[ 9522.372489] Running test socket-rw:
[ 9522.485295] Running test socket-rw-eagain:
[ 9522.597577] Running test sq-full:
[ 9522.707849] Running test sq-poll-dup:
[ 9526.798436] Running test sq-poll-kthread:
[ 9529.006681] Running test sq-poll-share:
[ 9536.551806] Running test sqpoll-disable-exit:
[ 9537.131130] Running test sqpoll-exit-hang:
[ 9538.244750] Running test sqpoll-cancel-hang:
[ 9539.352283] Running test sqpoll-sleep:
[ 9539.466045] Running test sq-space_left:
[ 9539.576885] Running test stdout:
[ 9541.760714] Running test submit-reuse:
[ 9545.929462] Running test symlink:
[ 9546.033826] Running test teardowns:
[ 9546.236248] Running test thread-exit:
[ 9546.423347] Running test timeout:
[ 9552.550575] Running test timeout-new:
[ 9555.062722] Running test timeout-overflow:
[ 9555.168925] Running test unlink:
[ 9555.268847] Running test wakeup-hang:
[ 9557.369264] Running test sendmsg_fs_cve:
[ 9557.476769] Running test rsrc_tags:

[ 9568.748103] ======================================================
[ 9568.748111] WARNING: possible circular locking dependency detected
[ 9568.748120] 5.14.0-rc3-bluetea-test-00249-gc7d102232649 #5 Tainted: G           OE
[ 9568.748130] ------------------------------------------------------
[ 9568.748136] kworker/2:4/2684 is trying to acquire lock:
[ 9568.748145] ffff88814bb1c0a8 (&ctx->uring_lock){+.+.}-{3:3}, at: io_rsrc_put_work+0x13d/0x1a0
[ 9568.748183]
               but task is already holding lock:
[ 9568.748190] ffffc90001c6be70 ((work_completion)(&(&ctx->rsrc_put_work)->work)){+.+.}-{0:0}, at: process_one_work+0x1bc/0x530
[ 9568.748219]
               which lock already depends on the new lock.

[ 9568.748226]
               the existing dependency chain (in reverse order) is:
[ 9568.748232]
               -> #1 ((work_completion)(&(&ctx->rsrc_put_work)->work)){+.+.}-{0:0}:
[ 9568.748249]        __flush_work+0x31b/0x490
[ 9568.748263]        io_rsrc_ref_quiesce.part.0.constprop.0+0x35/0xb0
[ 9568.748276]        __do_sys_io_uring_register+0x45b/0x1060
[ 9568.748289]        do_syscall_64+0x35/0xb0
[ 9568.748301]        entry_SYSCALL_64_after_hwframe+0x44/0xae
[ 9568.748316]
               -> #0 (&ctx->uring_lock){+.+.}-{3:3}:
[ 9568.748332]        __lock_acquire+0x119a/0x1e10
[ 9568.748344]        lock_acquire+0xc8/0x2f0
[ 9568.748355]        __mutex_lock+0x86/0x740
[ 9568.748365]        io_rsrc_put_work+0x13d/0x1a0
[ 9568.748376]        process_one_work+0x236/0x530
[ 9568.748388]        worker_thread+0x52/0x3b0
[ 9568.748400]        kthread+0x135/0x160
[ 9568.748411]        ret_from_fork+0x1f/0x30
[ 9568.748426]
               other info that might help us debug this:

[ 9568.748432]  Possible unsafe locking scenario:

[ 9568.748438]        CPU0                    CPU1
[ 9568.748443]        ----                    ----
[ 9568.748448]   lock((work_completion)(&(&ctx->rsrc_put_work)->work));
[ 9568.748459]                                lock(&ctx->uring_lock);
[ 9568.748469]                                lock((work_completion)(&(&ctx->rsrc_put_work)->work));
[ 9568.748479]   lock(&ctx->uring_lock);
[ 9568.748488]
                *** DEADLOCK ***

[ 9568.748494] 2 locks held by kworker/2:4/2684:
[ 9568.748503]  #0: ffff88810004d938 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x1bc/0x530
[ 9568.748531]  #1: ffffc90001c6be70 ((work_completion)(&(&ctx->rsrc_put_work)->work)){+.+.}-{0:0}, at: process_one_work+0x1bc/0x530
[ 9568.748558]
               stack backtrace:
[ 9568.748566] CPU: 2 PID: 2684 Comm: kworker/2:4 Tainted: G           OE     5.14.0-rc3-bluetea-test-00249-gc7d102232649 #5
[ 9568.748580] Hardware name: Acer Aspire ES1-421/OLVIA_BE, BIOS V1.05 07/02/2015
[ 9568.748589] Workqueue: events io_rsrc_put_work
[ 9568.748605] Call Trace:
[ 9568.748620]  dump_stack_lvl+0x6a/0x9a
[ 9568.748639]  check_noncircular+0xfe/0x110
[ 9568.748660]  __lock_acquire+0x119a/0x1e10
[ 9568.748680]  lock_acquire+0xc8/0x2f0
[ 9568.748692]  ? io_rsrc_put_work+0x13d/0x1a0
[ 9568.748712]  __mutex_lock+0x86/0x740
[ 9568.748724]  ? io_rsrc_put_work+0x13d/0x1a0
[ 9568.748738]  ? io_rsrc_put_work+0x13d/0x1a0
[ 9568.748756]  ? io_rsrc_put_work+0x13d/0x1a0
[ 9568.748767]  ? process_one_work+0x1ce/0x530
[ 9568.748779]  io_rsrc_put_work+0x13d/0x1a0
[ 9568.748796]  process_one_work+0x236/0x530
[ 9568.748816]  worker_thread+0x52/0x3b0
[ 9568.748830]  ? process_one_work+0x530/0x530
[ 9568.748845]  kthread+0x135/0x160
[ 9568.748857]  ? set_kthread_struct+0x40/0x40
[ 9568.748872]  ret_from_fork+0x1f/0x30
[ 9579.199425] Running test statx:
[ 9579.337521] Running test sq-full-cpp:

Cc: @isilence

Can you try and add this on top of your kernel?
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 6a8257233061..0c3e90f974e9 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -7195,17 +7195,19 @@ static int io_rsrc_ref_quiesce(struct io_rsrc_data *data, struct io_ring_ctx *ct
 		/* kill initial ref, already quiesced if zero */
 		if (atomic_dec_and_test(&data->refs))
 			break;
+		mutex_unlock(&ctx->uring_lock);
 		flush_delayed_work(&ctx->rsrc_put_work);
 		ret = wait_for_completion_interruptible(&data->done);
-		if (!ret)
+		if (!ret) {
+			mutex_lock(&ctx->uring_lock);
 			break;
+		}

 		atomic_inc(&data->refs);
 		/* wait for all works potentially completing data->done */
 		flush_delayed_work(&ctx->rsrc_put_work);
 		reinit_completion(&data->done);

-		mutex_unlock(&ctx->uring_lock);
 		ret = io_run_task_work_sig();
 		mutex_lock(&ctx->uring_lock);
 	} while (ret >= 0);

Can you try and add this on top of your kernel?

Alright, this patch is a cure. All tests passed. Thanks. Does this affect stable kernel?
Tested-by: Ammar Faizi<EMAIL_ADDRESS>
Test output
ammarfaizi2@integral:~/project/now/liburing$ git log -n1
commit 0ea4ccd1c0e4bb05cb4471d64e55d2e7d4e8a24c (HEAD -> master, origin/master, origin/HEAD)
Author: Jens Axboe<EMAIL_ADDRESS>Date:   Sun Aug 8 21:32:29 2021 -0600

    src/queue: don't flush SQ ring for new wait interface

    If we have IORING_FEAT_EXT_ARG, then timeouts are done through the
    syscall instead of by posting an internal timeout. This was done
    to be both more efficient, but also to enable multi-threaded use
    the wait side. If we touch the SQ state by flushing it, that isn't
    safe without synchronization.

    Fixes: https://github.com/axboe/liburing/issues/402
    Signed-off-by: Jens Axboe<EMAIL_ADDRESS>ammarfaizi2@integral:~/project/now/liburing$ sudo taskset -c 0,1,2,3 make -j4 runtests
make[1]: Entering directory '/home/ammarfaizi2/project/now/liburing/src'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/ammarfaizi2/project/now/liburing/src'
make[1]: Entering directory '/home/ammarfaizi2/project/now/liburing/test'
     CC 232c93d07b74-test
     CC 35fa71a030ca-test
     CC 500f9fbadef8-test
     CC 7ad0e4b2f83c-test
     CC 8a9973408177-test
     CC 917257daa0fe-test
     CC a0908ae19763-test
     CC a4c0b3decb33-test
     CC accept
     CC accept-link
     CC accept-reuse
     CC accept-test
     CC across-fork
     CC splice
     CC b19062a56726-test
     CC b5837bd5311d-test
     CC ce593a6c480a-test
     CC close-opath
     CC connect
     CC cq-full
     CC cq-overflow
     CC cq-peek-batch
     CC cq-ready
     CC cq-size
     CC d4ae271dfaae-test
     CC d77a67ed5f27-test
     CC defer
     CC double-poll-crash
     CC eeed8b54e0df-test
     CC eventfd
     CC eventfd-disable
     CC eventfd-ring
     CC fadvise
     CC fallocate
     CC fc2a85cb02ef-test
     CC file-register
     CC file-update
     CC files-exit-hang-poll
     CC files-exit-hang-timeout
     CC fixed-link
     CC fsync
     CC hardlink
     CC io-cancel
     CC io_uring_enter
     CC io_uring_register
     CC io_uring_setup
     CC iopoll
     CC lfs-openat
     CC lfs-openat-write
     CC link
     CC link-timeout
     CC link_drain
     CC madvise
     CC mkdir
     CC multicqes_drain
     CC nop
     CC nop-all-sizes
     CC open-close
     CC openat2
     CC personality
     CC pipe-eof
     CC pipe-reuse
     CC poll
     CC poll-cancel
     CC poll-cancel-ton
     CC poll-link
     CC poll-many
     CC poll-mshot-update
     CC poll-ring
     CC poll-v-poll
     CC probe
     CC read-write
     CC register-restrictions
     CC rename
     CC ring-leak
     CC ring-leak2
     CC rw_merge_test
     CC self
     CC send_recv
     CC send_recvmsg
     CC shared-wq
     CC short-read
     CC shutdown
     CC sigfd-deadlock
     CC socket-rw
     CC socket-rw-eagain
     CC sq-full
     CC sq-poll-dup
     CC sq-poll-kthread
     CC sq-poll-share
     CC sqpoll-disable-exit
     CC sqpoll-exit-hang
     CC sqpoll-cancel-hang
     CC sqpoll-sleep
     CC sq-space_left
     CC stdout
     CC submit-reuse
     CC symlink
     CC teardowns
     CC thread-exit
     CC timeout
     CC timeout-new
     CC timeout-overflow
     CC unlink
     CC wakeup-hang
     CC sendmsg_fs_cve
     CC rsrc_tags
     CC statx
     CXX sq-full-cpp
make[1]: Leaving directory '/home/ammarfaizi2/project/now/liburing/test'
make[1]: Entering directory '/home/ammarfaizi2/project/now/liburing/examples'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/ammarfaizi2/project/now/liburing/examples'
make[1]: Entering directory '/home/ammarfaizi2/project/now/liburing/test'
Running test 232c93d07b74-test:
Running test 35fa71a030ca-test:
Test 35fa71a030ca-test timed out (may not be a failure)
Running test 500f9fbadef8-test:
Running test 7ad0e4b2f83c-test:
Running test 8a9973408177-test:
Running test 917257daa0fe-test:
Running test a0908ae19763-test:
Running test a4c0b3decb33-test:
Running test accept:
Running test accept-link:
Running test accept-reuse:
Running test accept-test:
Running test across-fork:
Running test splice:
Running test b19062a56726-test:
Running test b5837bd5311d-test:
Running test ce593a6c480a-test:
Running test close-opath:
Running test connect:
Running test cq-full:
Running test cq-overflow:
Running test cq-peek-batch:
Running test cq-ready:
Running test cq-size:
Running test d4ae271dfaae-test:
Running test d77a67ed5f27-test:
Running test defer:
Running test double-poll-crash:
Running test eeed8b54e0df-test:
Running test eventfd:
Running test eventfd-disable:
Running test eventfd-ring:
Running test fadvise:
Running test fallocate:
Running test fc2a85cb02ef-test:
Test needs failslab/fail_futex/fail_page_alloc enabled, skipped
Running test file-register:
Running test file-update:
Running test files-exit-hang-poll:
Running test files-exit-hang-timeout:
Running test fixed-link:
Running test fsync:
Running test hardlink:
linkat not supported, skipping
Running test io-cancel:
Running test io_uring_enter:
io_uring_enter(3, 1, 0,<PHONE_NUMBER>, (nil))
io_uring_enter(-1, 0, 0, 0, (nil))
io_uring_enter(0, 0, 0, 0, (nil))
io_uring_enter(3, 0, 0, 0, (nil))
Allocating 4096 sqes
Submitting 4096 I/Os
Done
Waiting for 4096 events
Reaping 4096 I/Os
Submitting invalid sqe index.
PASS
Running test io_uring_register:
RELIMIT_MEMLOCK:<PHONE_NUMBER><PHONE_NUMBER>)
io_uring_register(-1, 0, (nil), 0)
io_uring_register(3, 0, (nil), 0)
io_uring_register(4,<PHONE_NUMBER>, (nil), 0)
io_uring_register(4, 0, 0x7fff62104b50, 1)
io_uring_register(4, 0, 0x7fff62104b50, 1)
io_uring_register(4, 0, 0x7fff62104b50, 1)
Unable to map a huge page.  Try increasing /proc/sys/vm/nr_hugepages by at least 1.
Skipping the hugepage test
reserve file-backed buffers
io_uring_register(4, 0, 0x7fff62104b50, 1)
io_uring_register(4, 0, 0x7f0ddab0d010, 1000000)
io_uring_register(4, 0, 0x7f0ddab0d010, 1024)
Not enough memory for this test, skipping
io_uring_submit:
	opcode: 6
	flags:  0x00000000
	fd:     4
	poll_events: 0x00000005
io_uring_register(4, 2, 0x7fff62104a9c, 1)
PASS
Running test io_uring_setup:
io_uring_setup(0, 0x7ffda11ffbb0), flags: none, feat: none, resv: 0x00000000 0x00000000 0x00000000, sq_thread_cpu: 0
io_uring_setup(1, (nil)), flags: none, feat: none, resv: , sq_thread_cpu: 0
io_uring_setup(1, 0x7ffda11ffbb0), flags: none, feat: none, resv: 0x00000001 0x00000001 0x00000001, sq_thread_cpu: 0
io_uring_setup(1, 0x7ffda11ffbb0), flags: 0xffffffff, feat: none, resv: 0x00000000 0x00000000 0x00000000, sq_thread_cpu: 0
io_uring_setup(1, 0x7ffda11ffbb0), flags: IORING_SETUP_SQ_AFF, feat: none, resv: 0x00000000 0x00000000 0x00000000, sq_thread_cpu: 0
io_uring_setup(1, 0x7ffda11ffbb0), flags: IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF, feat: none, resv: 0x00000000 0x00000000 0x00000000, sq_thread_cpu: 4
PASS
Running test iopoll:
Running test lfs-openat:
Running test lfs-openat-write:
Running test link:
Running test link-timeout:
Running test link_drain:
Running test madvise:
Suspicious timings (62 > 38)
Running test mkdir:
mkdirat not supported, skipping
Running test multicqes_drain:
Running test nop:
Running test nop-all-sizes:
Running test open-close:
Running test openat2:
Running test personality:
Running test pipe-eof:
Running test pipe-reuse:
Running test poll:
Running test poll-cancel:
Running test poll-cancel-ton:
Running test poll-link:
Running test poll-many:
Running test poll-mshot-update:
Running test poll-ring:
Running test poll-v-poll:
Running test probe:
Running test read-write:
Running test register-restrictions:
Running test rename:
Running test ring-leak:
Running test ring-leak2:
Running test rw_merge_test:
Running test self:
Running test send_recv:
Running test send_recvmsg:
Running test shared-wq:
Running test short-read:
Running test shutdown:
Running test sigfd-deadlock:
Running test socket-rw:
Running test socket-rw-eagain:
Running test sq-full:
Running test sq-poll-dup:
Running test sq-poll-kthread:
Running test sq-poll-share:
Running test sqpoll-disable-exit:
Running test sqpoll-exit-hang:
Running test sqpoll-cancel-hang:
Running test sqpoll-sleep:
Running test sq-space_left:
Running test stdout:
This is a pipe test
This is a fixed pipe test
Running test submit-reuse:
Running test symlink:
symlinkat not supported, skipping
Running test teardowns:
Running test thread-exit:
Running test timeout:
Running test timeout-new:
Running test timeout-overflow:
Skipping
Running test unlink:
Running test wakeup-hang:
Running test sendmsg_fs_cve:
Running test rsrc_tags:
Running test statx:
Running test sq-full-cpp:
All tests passed
make[1]: Leaving directory '/home/ammarfaizi2/project/now/liburing/test'
ammarfaizi2@integral:~/project/now/liburing$

Kernel Log
<3>[  309.627538][    T5] Bluetooth: hci0: command 0x1003 tx timeout
<3>[  309.638176][ T2475] Bluetooth: hci0: unexpected event for opcode 0x1003
<6>[  311.483479][ T2759] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
<6>[  314.627403][ T3050] io scheduler bfq registered
<6>[  318.646697][ T3247] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
<6>[  346.203477][ T3563] Bluetooth: RFCOMM TTY layer initialized
<6>[  346.203634][ T3563] Bluetooth: RFCOMM socket layer initialized
<6>[  346.203751][ T3563] Bluetooth: RFCOMM ver 1.11
<4>[  347.701283][   T44] kauditd_printk_skb: 29 callbacks suppressed
<5>[  347.701296][   T44] audit: type=1400 audit(1628557064.993:41): apparmor="DENIED" operation="capable" profile="libvirtd" pid=2908 comm="daemon-init" capability=17  capname="sys_rawio"
<5>[  359.290314][   T44] audit: type=1400 audit(1628557076.582:42): apparmor="DENIED" operation="capable" profile="libvirtd" pid=2908 comm="daemon-init" capability=17  capname="sys_rawio"
<6>[  381.441045][ T3636] loop8: detected capacity change from 0 to 8
<12>[  420.100770][ T3786] Running test 232c93d07b74-test:
<12>[  424.869089][ T3805] Running test 35fa71a030ca-test:
<12>[  484.808620][T14563] Running test 500f9fbadef8-test:
<12>[  490.415422][T14975] Running test 7ad0e4b2f83c-test:
<12>[  491.705790][T14986] Running test 8a9973408177-test:
<12>[  493.163207][T14998] Running test 917257daa0fe-test:
<12>[  493.461249][T15010] Running test a0908ae19763-test:
<12>[  493.740508][T15021] Running test a4c0b3decb33-test:
<12>[  536.701528][T25041] Running test accept:
<12>[  540.261432][T25053] Running test accept-link:
<12>[  540.769375][T25067] Running test accept-reuse:
<12>[  541.069828][T25078] Running test accept-test:
<12>[  541.368776][T25089] Running test across-fork:
<12>[  541.775466][T25103] Running test splice:
<12>[  542.095216][T25117] Running test b19062a56726-test:
<12>[  542.396804][T25128] Running test b5837bd5311d-test:
<12>[  542.700743][T25139] Running test ce593a6c480a-test:
<12>[  544.106692][T25151] Running test close-opath:
<12>[  544.473766][T25162] Running test connect:
<6>[  544.606850][    C3] TCP: request_sock_TCP: Possible SYN flooding on port 32022. Sending cookies.   I'll mark it for backport. Thanks for reporting, and testing!


.Net: dotnet: CreatePluginFromEmbeddedResource

When creating a dotnet library that includes prompts in files (ex. skprompt.txt) usually such prompts get inserted as Embedded assembly resources. These libraries are useful for reusing code, and as underlying layers of APIs, CLIs, etc. or simply as projects that could be unit-tested.
A helper/utility method similar to CreatePluginFromPromptDirectory and CreatePluginFromObject would be useful.  Such helper methods are already implemented, and its usefulness validated, for example:
dotnet/src/Planners/Planners.OpenAI/Utils/EmbeddedResource.cs
dotnet/src/InternalUtilities/samples/InternalUtilities/EmbeddedResource.cs
dotnet/src/Experimental/Orchestration.Flow/EmbeddedResource.cs
which at the same time duplicates code. Having this as a core function would help other developers to implement and follow similar approaches.

Closing as stale


Evaluate performance of non-final Header methods

Making the methods on the Header class non-final would make it easier to mock the header. The downside is potential performance hit from virtual calls. Need to bench to make sure its not important.

It does have a performance impact. I'm closing for now unless you believe you cannot make progress without it?

Powermock can be used as an alternative which can mock final methods.


Telling VSCode that Prettier is the default formatter

Just helps keep VSCode formatting synced up with what we align to in our Node project.

The test failures are a bit of an unwinding, here. I went looking for the cause of this error:

Failed to run tests Error: spawnSync D:\a\salesforcedx-vscode-mobile\salesforcedx-vscode-mobile.vscode-test\vscode-win32-x64-archive-1.90.2\bin\code.cmd EINVAL

which looked to be fixed by https://github.com/microsoft/vscode-test-cli/pull/46, except vscode-test-cli is new news to me. Went to Microsoft's docs on testing your extension, and it looks like they've quietly rolled out a new Node package to assist in the previous setup.
Going to see what it takes to change our test runner accordingly.

NB: Didn't need to change our test runner over to the other package—and couldn't anyway, because (AFAICT) the need to install the Salesforce Extensions pushes us into the "advanced" setup use case of calling test-electron functions a little more manually.
I ported the changes from the other upstream projects, to our test runner. And tests are working again. @maliroteh-sf I don't know if you want to take another look or not, at those changes specifically.


my template automatically refreshing after upload

Hi ,
My template automatically refreshing after upload  .I used following code

              {{> upload_bootstrap fileTypes='.jpg' multiple=true  callbacks=myCallbacks}}

and i write my callback is
myCallbacks: function() {
return {

    finished: function(index, fileInfo, data) {
    // console.log("FileInfo--------"+fileInfo.status);
    console.log("campaignId--in image helper--------"+currentCampaignId);
   //  var campaignObj=currentCampaignId;
              addImageDetails(fileInfo, currentCampaignId,function(result) {
            if (result) {
                console.log("image record------"+result);
                 }
                 else
                    alertify.alert("Failed");
        });

 }

}

}

Make sure you are not uploading to any meteor directory e.g. public

Thanks @tomitrescak I just had the same issue and this solved it.

HI  tomitrescak  ,
Thank you so much . Now its working fine but how could i display the files in template . And if i store  files in side my application .it may reduce performance of my server how could i  solve it .Can you please help me out
Thanks


Support dynamic worker count

Propagate the information from the CLI regarding max worker count and parallel to the parallel console.

@lacasseio It seems like this only works if I specify --parallel on the CLI. It doesn't seem to be respecting Gradle properties like:
org.gradle.parallel=true
org.gradle.workers.max=3

I'll continue my review tomorrow, but wanted you to be aware of that right away.

I did a couple test and there is one scenario that didn't seem to work out properly: -Dorg.gradle.parallel=false -Dorg.gradle.workers.max=3. In that scenario, it seems the parallel console is activated although the property is set to false. I will look into that scenario right now.

Ok... that explained a lot and could almost be considered a bug. The converter use GUtil.isTrue(Object) which simply look to see if the something is present as oppose to a boolean value. See this video.

@lacasseio Seems like some core tests are failing as well. https://e.grdev.net/s/tcdfp4kixtex2
I'll see if I can fix them for you.

Closing this and putting on release branch for 3.5 instead.


Monico stars info

heyy thanks for the PR, added a new column.. could you fill that in and I'll merge after. Sorry for the abrupt change!

Hey, @malgamves , new column added. 👍

Heyy @monico-moreno that last section really should be "ways I like to contribute to Strapi" that was my intention with that. Trying to get a good idea of what folks like. One last change 🤞 😬

Ha!  🤣  I am too preoccupied with having fun with this!  Sorry about that!  Will fix.

There we go!

Looks like I need to get Boaz's changes....will do in a moment...in a mtg at work...

@malgamves  Pulled latest from upstream (Boaz's changes), rebased, resolved conflicts, and up to date with latest! 👍

looks great!! Thanks, good to have you on the program, welcome ⭐


Send email notifications with brigade

Currently, I can see their is an integration with brigade and slack to send notifications.
Is there any such integration with gmail, using which we can emails for brigade deployment pipelines?

Hey, @disha94!
You can find the full implementation of the Slack notifier here - https://github.com/technosophos/slack-notify
Essentially, if you can build a container that uses either a CLI or library that connects to Gmail (with any private tokens and email addresses as project secrets), then it is entirely possible.

You could probably use this container to relay emails to Gmail from inside a Brigade build

Closing, but feel free to reopen if you have additional questions.
Thanks!


Build Module Interfaces in WMO

Building in incremental mode incurs the overhead associated with the
incremental dependency tracking infrastructure. Considering we're
throwing away all of this stuff anyways, let's just build in WMO to
avoid that.

@swift-ci test

@swift-ci test source compatibility

Build failed
Swift Test OS X Platform
Git Sha - 0ca2399cab198de9b0236047929f5fa882666ffb

@swift-ci test macOS

Build failed
Swift Test OS X Platform
Git Sha - 0ca2399cab198de9b0236047929f5fa882666ffb

Boy, I'm hitting everything today
@swift-ci test macOS

⛵


Question: does overlaybd support ARM64?

Hi, I'm searching for ARM64 support. Is it on the road map?

@northtyphoon We have ARM64 support already, and we'll release it soon. When will you need it?

Thanks @lihuiba. It's great news. Just want to check ARM64 support is on the roadmap. I will circle back once it's released.

@northtyphoon I think there is no obstacle for running overlaybd on ARM64. I have compiled and run it on ARM64 successfully.


Requirements

your requirements are very restrictive. Can you please change it to >= instead of ==.
for example:
numpy>=1.3
pandas>=0.23.0
matplotlib>2.02,<=3.0.3
scikit-learn>=0.19.0

I second this request!

Fixed via #13


Deduplicate js-slang dependency

Pull Request Test Coverage Report for Build 581162608

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

Totals

Change from base Build 580189694:
0.0%

Covered Lines:
2300

Relevant Lines:
7006

💛  - Coveralls


validation and type check on variables #935

Terraform validation (fewer variables) and type constraints (all variables) added.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Elayaraja-Dhanapal
To complete the pull request process, please assign bpradipt after the PR has been reviewed.
You can assign the PR to them by writing /assign @bpradipt in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Elayaraja-Dhanapal: Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

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

@Elayaraja-Dhanapal can you please address the comments and rebase the PR. Would like to close this asap.

@Elayaraja-Dhanapal: Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

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

rebase/merge (https://github.com/ocp-power-automation/ocp4-upi-powervs/pull/133/commits/769ed62421c5a578b46c7ee09471d76f7d7d8b26) contains all the changes. @yussufsh @Prajyot-Parab please validate.

@Elayaraja-Dhanapal please also squash the multiple commits into a single one

@yussufsh @Prajyot-Parab  could you please validate the pull request. Thanks!

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
e912e71c85f09d4932b56b7ec51c1ccffef9a3fd
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
a2863658bdcfc7251bd29d05c7297491944a87ea
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
aa4665d8b061fa919abf82cda35a5b27d84562b8
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@yussufsh  @Prajyot-Parab  I have removed merge commits and squashed all my commits into one. Please validate.

@Elayaraja-Dhanapal: Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
aa4665d8b061fa919abf82cda35a5b27d84562b8
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
83329dabe23e9e9ba04db54c14fdb512f3cda117
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
ce9bf126e307bcadc397f1f53aa17388c33d14bd
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
dc4cfb91e5d92859cbb53cbed61242f844ed77fc
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
cdf4cfbcb7920c372a5b667072be52d72dac5679
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
35f55a7a2350ab4fd57cb00edeff4813023c7d10
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

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

@yussufsh @Prajyot-Parab I have resolved conflicts and squashed the changes. I am not able to squash to a single commit, it ends up at conflicts! and vise versa.. it is like a loop.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Elayaraja-Dhanapal
To complete the pull request process, please assign  after the PR has been reviewed.
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Elayaraja-Dhanapal
To complete the pull request process, please assign bpradipt after the PR has been reviewed.
You can assign the PR to them by writing /assign @bpradipt in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Elayaraja-Dhanapal
To complete the pull request process, please assign bpradipt after the PR has been reviewed.
You can assign the PR to them by writing /assign @bpradipt in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Elayaraja-Dhanapal, yussufsh
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [yussufsh]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/lgtm

New changes are detected. LGTM label has been removed.

@bpradipt can you please provide your review on this PR. Would like to know your inputs.

@Elayaraja-Dhanapal provided few comments. Please incorporate the changes based on existing comments and rebase the PRs.
A quick question. Did you check if the validation works if some of the  variables like API KEY is passed as environment variables and not via the file ?
Here is an example of passing values via env variables - https://github.com/ocp-power-automation/ocp4-upi-powervs/blob/master/docs/quickstart.md#setup-terraform-variables

@Elayaraja-Dhanapal provided few comments. Please incorporate the changes based on existing comments and rebase the PRs.
A quick question. Did you check if the validation works if some of the variables like API KEY is passed as environment variables and not via the file ?
Here is an example of passing values via env variables - https://github.com/ocp-power-automation/ocp4-upi-powervs/blob/master/docs/quickstart.md#setup-terraform-variables

@bpradipt made the changes accordingly.
Yes pradipta, I tested this scenario and is working as expected. Irrespective of the input variables passed, terraform resolves it to variables.tf and applies validation rules.

@Elayaraja-Dhanapal just another change which I want you to do. Rest lgtm.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: bpradipt, Elayaraja-Dhanapal, yussufsh
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [bpradipt,yussufsh]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

New changes are detected. LGTM label has been removed.

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
afb1dfd45083f19a1e1f4f757f601a602a8797e2
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@Elayaraja-Dhanapal: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-ocp4-upi-powervs-terraform-validate
990f0256f5fa84357a28fb44138fb283ba364b30
link
/test pull-ocp4-upi-powervs-terraform-validate

Full PR test history. Your PR dashboard.

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

@yussufsh @Prajyot-Parab Please review.

/lgtm

/retest

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: bpradipt, Elayaraja-Dhanapal, yussufsh
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [bpradipt,yussufsh]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Elayaraja-Dhanapal this needs a rebase again..

New changes are detected. LGTM label has been removed.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: bpradipt, Elayaraja-Dhanapal, yussufsh
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [bpradipt,yussufsh]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: bpradipt, Elayaraja-Dhanapal, yussufsh
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [bpradipt,yussufsh]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Done. Please review. Thanks. @yussufsh @Prajyot-Parab

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: bpradipt, Elayaraja-Dhanapal, yussufsh
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [bpradipt,yussufsh]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

lgtm!

/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: bpradipt, Elayaraja-Dhanapal, yussufsh
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [bpradipt,yussufsh]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Make use of __all__ in init files

Because I prefer to break modules down into smaller files, the auto-completion feature in ipython consoles (i.e. hitting tab to view options) is often overcrowded with options that shouldn't be imported.
A good example of this is hitting tab after...
from simmate.calculators.vasp.error_handlers import

This shows the submodules AND classes. It'd be a better user experience to show just the classes.
The drawback here is with pdoc documentation. I'm pretty sure this would move all of the documentation to a single html page, rather than broken down by submodule.
I'm not sure which approach to go with and also not sure if there's a way to get "the best of both worlds".

After testing this out, the example I gave above did not work as expected. When I listed only classes in the __all__ attribute, the submodules were still listed in the ipython autocompetion. I don't think there's an easy way around this without condensing sub modules into a single file. I'll therefore only use __all__ in the lowest modules

Turns out __all__ only handles how from xyz import * behaves, and not ipython auto-completion like I previously thought. Therefore, adding __all__ doesn't accomplish much in terms of user experience.


Support for multiple endpoints

Describe the feature
Due to reasons I need a custom build.js script that calls vite's build(), patches some files, moves the output to its target destination and creates a custom entry for the handle middleware.
It would be nice if I could integrate calling houdini generate into this file.
And in addition I'd love to have a script that pulls the schemas down (yes, there are mutliple...) with headers and all stuff. Basically I want to import { writeSchema } from 'houdini/build/cmd/utils/writeSchema';.
Currently all of this fails because of the exports field in the package.json.
Criticality
nice to have

@fehnomenal have you checked out #449? The new vite plugin integrates directly into your vite config file and will generate on build. It will also pull down your schema but i didn't realize you had multiple - how do you pull down your schema now? It sounds like we should extend apiUrl to be an array of strings and then the new plugin should do what you want, right?

Yes, I have indeed and boy am I hyped to finally rework four apps to the new kit and houdini :partying_face:
OK, this will solve the generating problem (in the mean time I have svelte-kit sync && houdini generate && node build.js as the build script and pull and commit the schemas manually).
We use directus as a CMS which allows you to manage the structure and contents of a database easily. But our customers need a more domain specific interface and cannot work with the general (and at times cumbersome) interface directus provides. So thats the reason for the sveltekit app.
To avoid naming conflicts, directus has two graphql endoints. The one at /graphql contains all the stuff from the database and the one at /graphql/system is responsible for authentication (and more which we do not use). I switch between them via metadata.isSystem which works really nice but unfortunately is unusable with inline queries.
Additionally, directus allows super fine grained permissions for each database table and adapts the graphql schema based on the collections (what they call the database tables) the user has access to. Because of that I currently set a static token in my local development deployment for an admin user and pull with rushx houdini generate -p -ph Authorization='Bearer 1nO6T7TZ3pvEO3JyG_CKSg3Wl2TDUrZx'. I have to do this two times and in between adjust the config which looks like this (so I only need to comment/uncomment):
/** @type {import('houdini').ConfigFile} */
const config = {
  sourceGlob: './src/**/*.{svelte,gql,graphql}',
  schemaPath: './schema*.graphql',
  // schemaPath: './schema.graphql',
  // apiUrl: 'http://localhost:8055/graphql',
  // schemaPath: './schema-system.graphql',
  // apiUrl: 'http://localhost:8055/graphql/system',
...

Of course generation fails because the queries and mutations in the code access both schemas but during generation houdini knows only the one it has just pulled.
I'm thinking if I want to pull the schemas on each CI build from the staging deployment. Which is probably OK as the schema only changes when the database structure changes and then the staging environment must be used for testing the changes and there is also a migration involved.
I probably could change the apiUrl based on an CI environment variable but there is still the problem of pulling multiple schemas.
AFAICT apiUrl is only used during generation with the pull option. What do you think of replacing apiUrl with an object mapping schema file names to api urls (like the rollup entry config)?

While supporting multiple endpoints is probably a good thing to add, would it be an option to merge your endpoints before SvelteKit consumption?
If I understood, you are doing:
  graph TD;
subgraph SvelteKit
      SK[frontend]
end
      SK-->GA[ /graphql]
      SK-->GB[ /graphql/system]

Would it be possible to do something like:
  graph TD;
subgraph SvelteKit
      SK[frontend]-->M[GraphQL Mesh]
end
      M-->GA[ /graphql]
      M-->GB[ /graphql/system]

I'm curious 😁
Side note, I wanted to play with mermaid graph

I just learned about Mesh and it sounds really cool.
From skimming the docs it should probably work but I'm a bit hesitant to introduce the additional complexity (out of respect for other developers and my own sanity :sweat_smile:):

It works right now :joy:
I think the mesh cannot live inside sveltekit but needs to be external. To build the frontend it needs the schema but it is only accessible after launching the frontend... Maybe I'm wrong here, but actually this would probably not that much of a problem as the Mesh could live in a separate Directus extension.
But these extensions are strangely built and cannot easily access node_modules so it is best to completely bundle all dependencies. Is this even possible with the ymal config approach of Mesh?

Ohh this has been fun to think about. Sorry I took a bit to reply, I wanted to really work through the implications of what you're describing. Really clever use of metadata 👍
So my first reaction was to suggest you go with a schema-stitching approach to combine your APIs into one which removes the need for that metadata trick.  you can avoid the external service by using a library like @graphql-tools/stitch and resolving the stitched schema inside of an endpoint in SvelteKit.  That might work if you dont mind having a different set of names in your application from what you see in your api documentation. It could also potentially enable some neat things for your UI to perform queries that cross this boundary.
That being said, I think this is probably the first real example I've seen for what houdini plugin might want to do. I've always told myself it seemed like a reasonable idea but i never really had something concrete. There are other things that are higher priority atm but i think there is a real possibility to provide a way to let you build a plugin that supports your situation without having to pull tricks like stitching them together.

Even though I would still recommend moving this towards merging at the API level inside of SvelteKit, the new plugin system does have all of the hooks necessary to make this work:

special directive can be defined in schema hook of codegen plugin
can detect the directive on the query and persist it in the artifact with artifactData
the artifact is available to the client plugin pipeline
a fetch plugin can look at the artifact data and send the request to the right URL

Which is pretty cool and validating to see 🎉 Anyway, that means I feel comfortable closing this ticket as part of #871

Would you be willing to provide an example of this working? I am also looking to implement multiple GraphQL APIs in the same SvelteKit app.

Bump on this :)

+1 for an example. struggling with the same problem when integrating directus currently.


Bug: Icons take a while to display under heavy load

Description
Starting in v3.2, icons can take a while to display under heavy load (30+ seconds).
Steps To Reproduce
Issue 1

Open large directory in Grid View
Scroll quickly
Some icons will take 30+ seconds to appear

Issue 2

After reproducing issue 1, navigate to a different location
Observe that navigating away doesn't clear the queue and that the second location has the same issue

In both cases, disabling thumbnails from settings or restarting Files resolves the issue.
Requirements

Load icons right away

Files Version
v3.2.2
Windows Version
Windows 11
Log File
NA

Switching the setting off does not clear the problem.
It's not just caching, I can't get any folders to show icons even if they are just few images.
Using large icons, it won't display any at all.

@DaveFriedel are you using the preview version of Files?


Make change to total_quality_array to reflect actual dimensions from …

…omnical

Omnical returns an overall chisq value per time and per frequency, but not per polarization. The total_quality_array is changed to reflect this. The self-consistency checks are also modified for delay-style calibrations, which will not have a frequency array.

After offline discussion, it was pointed out that this behavior is likely a bug in omnical. The change to the self-consistency check has been kept, since it seems to prevent otherwise valid files from being read in.


fix grammer

I signed it.
On Jan 21, 2016 11:37 AM, "googlebot"<EMAIL_ADDRESS>wrote:

Thanks for your pull request. It looks like this may be your first
contribution to a Google open source project. Before we can look at your
pull request, you'll need to sign a Contributor License Agreement (CLA).
[image: :memo:] Please visit https://cla.developers.google.com/
https://cla.developers.google.com/ to sign.
Once you've signed, please reply here (e.g. I signed it!) and we'll
verify. Thanks.

If you've already signed a CLA, it's possible we don't have your
GitHub username or you're using a different email address. Check your
existing CLA data https://cla.developers.google.com/clas and verify
that your email is set on your git commits
https://help.github.com/articles/setting-your-email-in-git/.
If you signed the CLA as a corporation, please let us know the
company's name.

—
Reply to this email directly or view it on GitHub
https://github.com/google/android-testing-support-library/pull/14#issuecomment-173627476
.

Thanks!


added working nvidia inference example

@Timo21 https://competitions.codalab.org/competitions/public_submissions/30440

Now added the easier to use function predict_floods to src/flood_mapping/nvidia_inference.py . The notebooks
visualise_flood_predictions.ipynb and score_flood_predictions.ipynb work with the output of the inference function. It expects input in the format of which a sample is added in data/inference_sample/ so a follow up task can be setting up a data processing pipeline which collects images and translates them to that format


Return early in yaml_emitter_close

If yaml_emitter_dump failed, the emitter might be in a broken state and have leftover states/events.
yaml_emitter_close calls yaml_emitter_emit which will try to emit those events, so we should return early.
The recommended thing to do for library users is to abort when yaml_emitter_dump fails, but it's easy to add a check here as well.

CI failure addressed by #293


HMR not working in Webpack 5 (Storybook) with Vanilla Extract

Describe the bug
Hey Vanilla Extract team. I'm a dev for a rather large Tech company and we are exploring using Vanilla Extract in some of our apps. I've encountered a bug when trying to setup for Storybook/webpack, as per the steps in your wiki here: https://vanilla-extract.style/documentation/integrations/webpack/
Please see repro steps and explanation below:
Run repro repo locally and then:

While Storybook is running in the browser (Chrome), navigate to src/stories/button.css.ts
Make a change to the styles, e.g. change fontSize property to '100px'.

What happens
HMR kicks in but Storybook can no longer find the component, due to error as shown in screenshot below. I have to do a full page reload to get the updated component
What should happen
HMR kicks in and the component styles gets updated without any issues.
I don't know what's going on, but I did follow the install guide in your wiki here: https://vanilla-extract.style/documentation/integrations/webpack/
After HMR in Storybook kicks in I'm getting the following:

You might say, why is this not a Storybook issue? Well... It's using Webpack 5 and I don't see why there should be any issues since I followed the wiki steps for setting up Vanilla Extract with Webpack 🤷♂
Reproduction
https://github.com/hanshank/storybook-and-vanilla-extract
System Info
System:
    OS: macOS 12.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
    Memory: 80.75 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.13.1 - ~/.nvm/versions/node/v16.13.1/bin/node
    npm: 8.1.2 - ~/.nvm/versions/node/v16.13.1/bin/npm
  Browsers:
    Chrome: 107.0.5304.87
    Firefox: 106.0.1
    Safari: 16.0
    Safari Technology Preview: 16.4
  npmPackages:
    @vanilla-extract/css: ^1.9.1 => 1.9.1
    @vanilla-extract/webpack-plugin: ^2.2.0 => 2.2.0
    webpack: ^5.74.0 => 5.74.0

Used Package Manager
pnpm
Logs
No response
Validations

[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible example of the bug.

Hello; Since Storybook is using splitChunks optimization: https://github.com/storybookjs/storybook/blob/next/code/lib/builder-webpack5/src/preview/iframe-webpack.config.ts#L282-L284 This is not the default value for webpack (https://webpack.js.org/plugins/split-chunks-plugin/)
All you have to do in your .storybook/main.js is to delete config.optimization.splitChunks and should be fixed.

@ybot1122 That's a great find! It does fix the HMR issue for me!!!
I would rather not delete the splitChunks optimization, but I found another approach in this issue: https://github.com/vanilla-extract-css/vanilla-extract/issues/746#issuecomment-1207390899 - I modified @danielberndt's approach ever so slightly to maintain all the default properties of the splitChunks object. But it basically his solution I am using, so thank you!
TLDR:

Copy the official default splitChunks object from Webpack: https://webpack.js.org/plugins/split-chunks-plugin/#optimizationsplitchunks. Wish there was a way to extend the default Webpack config instead, but according to this comment that's not an option 😢
In .storybook/main/.js add this to webpackFinal:

module.exports = {
  // ... other config properties
  webpackFinal: async (config) => {
     // vanilla extract setup

    // add this
    if(process.env.NODE_ENV === 'development') {
      config.optimization = {
        ...config.optimization,
          splitChunks: {
             chunks: 'async',
             minSize: 20000,
             minRemainingSize: 0,
             minChunks: 1,
             maxAsyncRequests: 30,
             maxInitialRequests: 30,
             enforceSizeThreshold: 50000,
             cacheGroups: {
               defaultVendors: {
                 test: `[\\/]node_modules[\\/](?!.*vanilla-extract)`, // this is the line that fixes it
                 priority: -10,
                 reuseExistingChunk: true,
               },
              default: {
                minChunks: 2,
                priority: -20,
                reuseExistingChunk: true,
              },
          },
        }
      }
    }
  }
}

The cacheGroups.defaultVendors.test property was changed from the default /[\\/]node_modules[\\/]/ => [\\/]node_modules[\\/](?!.*vanilla-extract)
If someone has a better solution I'm all ears!


lr scheduler can now monitor other fields

LRScheduler now allows you to monitor vars other than train_loss.
The class now takes a 'monitor' argument (like Checkpoint). If this is
a string, this value from the history is passed to step. If it is a
callable, the value returned by calling this callable with net is is
passed to step.
Moreover, some minor clean ups.

@ottonemo pls review again.


Add join path functionality as part of the FileSystemAdapter

New join function. Ideally, this would be similar to path.join and would take care of using the correct separator in each platform. This would remove the need to write code like this: https://github.com/jamiebrynes7/obsidian-todoist-plugin/blob/cf4f1e0e9d452e24b642168610d0d20b218514ee/src/utils.ts#L54

If you're operating within Obsidian's Vault and Adapter API, then you should use normalizePath to normalize your paths, which will convert them into Obsidian's preferred format (always prefer /, remove duplicate //, strip first and last /).
https://github.com/obsidianmd/obsidian-api/blob/bbd5525cba2e0aefc27c87b378805c155ae8d5b1/obsidian.d.ts#L1863
If you're operating beyond the adapter API, then you are on your own, and should use NodeJS's API (because you'll have to use require('fs') anyway).


problem with codelyzer in @angular 2.1.1 (tslint errors)

tslint errors in npm run build.prod || tslint task enabled. The problem comes from codelyzer (const _ = compiler.compiler_private; --> templateParser.ts). There is a reference to a private method of @angular/compiler that may has changed in new version of angular (2.1.1).

Thanks for reporting this issue. I will try to resolve it by the beginning of the next week.

It's addressed by this PR https://github.com/mgechev/codelyzer/pull/124. I will push it to npm once the PR has been approved and merged. Again, thanks for reporting the problem!

tslint errors in npm run build.prod. The problem comes from codelyzer (templateParser.ts):
var TemplateParser = _.TemplateParser;
TypeError: Cannot read property 'TemplateParser' of undefined

This is fixed in the latest version of codelyzer, remove the node_modules/codelyzer directory and run npm i again.

@mgechev, the problem occured in the last release v2.0.1, but when I cloned the repository the problem didn't appear. Thanks for your answer!


gbm, assayNames errors in dataman2017.Rmd

Two errors are present that break the code in the "Working with TCGA mutation data" section.
When defining the gbm object in dataman2017.Rmd, there are errors. The gbm object is still defined, but I am not sure it is successfully updated.
>gbm = updateObject(gbm)
>gbm
A MultiAssayExperiment object of 12 listed
 experiments with user-defined names and respective classes.
 Containing an Error in vapply(object, FUN = function(obj) { : values must be length 1,
 but FUN(X[[3]]) result is length 0
Error during wrapup: cannot get a slot ("slots") from an object of type "NULL"

This may be related to a downstream error in assayNames. :
> mut = experiments(gbm)[["Mutations"]]
> head(assayNames(mut))
Error in (function (classes, fdef, mtable)  :
  unable to find an inherited method for function 'assayNames' for signature '"RangedRaggedAssay"'

Later components of the TCGA code rely on mut and cannot be performed due to current errors.

Can you send me the sessionInfo() of the session you are working with?  I
think there is also a problem with ldblock::stack1kg that
will necessitate update to that package.
On Thu, Aug 15, 2019 at 7:09 PM gillsignals<EMAIL_ADDRESS>wrote:

Two errors are present that break the code in the "Working with TCGA
mutation data" section.
When defining the gbm object in dataman2017.Rmd, there are errors. The gbm
object is still defined, but I am not sure it is successfully updated.

gbm = updateObject(gbm)
gbm
A MultiAssayExperiment object of 12 listed
experiments with user-defined names and respective classes.
Containing an Error in vapply(object, FUN = function(obj) { : values must be length 1,
but FUN(X[[3]]) result is length 0
Error during wrapup: cannot get a slot ("slots") from an object of type "NULL"

This may be related to a downstream error in assayNames. :

mut = experiments(gbm)[["Mutations"]]
head(assayNames(mut))
Error in (function (classes, fdef, mtable)  :
unable to find an inherited method for function 'assayNames' for signature '"RangedRaggedAssay"'

Later components of the TCGA code rely on mut and cannot be performed due
to current errors.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/genomicsclass/labs/issues/75?email_source=notifications&email_token=ABDI5QQASTFJU6MRD5OR3RTQEXOZHA5CNFSM4IMCS5LKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HFRGNCA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABDI5QUNMZXUNKALNWOMPITQEXOZHANCNFSM4IMCS5LA
.

--
The information in this e-mail is intended only for the person to whom it
is
addressed. If you believe this e-mail was sent to you in error and the
e-mail
contains patient information, please contact the Partners Compliance
HelpLine at
http://www.partners.org/complianceline
http://www.partners.org/complianceline . If the e-mail was sent to you in
error
but does not contain patient information, please contact the sender
and properly
dispose of the e-mail.

Apologies for the omission - it was the same sessionInfo from issue 73 where I reported the issue to ldblock::stack1kg.

These observations are correct.  The solution is to introduce curatedTCGAData package and rewrite the GBM-oriented elements.  I will do this in the next few days.

I have introduced dataman2019.Rmd in github and in the book pages.  It tests successfully
on several systems.  If you are able to verify please close this issue @gillsignals
Thanks!

This fixes the issue with gbm. Thanks!


Page refresh not working by default

Problem Description
After navigating to page no 2. When I render a new set of data ,its showing only page no 2.. By defaults its not showing page no 1.
Code Snippet(s) or Codepen (http://codepen.io/tannerlinsley/pen/QpeZBa?editors=0010)
Steps to Reproduce

Render a data set 1 and navigate to page 2
Render a data set 2 or apply filter, now page no 1 is not showing only page 2 documents are showing
In order to acheive this, Suppose if I set page={0} as props pagination is not working.

System Information

Browser & Browser Version:
Node Version:
OS Version:
NPM Version:
Yarn Version:

Please provide an example (using the codepen above) that reproduces this issue.


Visualising Pseudo and Real LiDAR

Hello!
Thank you for your work and the release of your code.
I am trying to visualise both pseudo and real LiDAR as you have shown on your paper and supplementary materials. But I do not know what kind of transformation I should apply such that both align.
From your paper I got the hint that "Such a point cloud can be transformed
into any cyclopean coordinate frame given a reference viewpoint and viewing direction. We refer to the resulting point
cloud as pseudo-LiDAR signal." is what I am missing, but I have no idea how to perform this.
Could you please clarify on how to perform this task?
Thanks!

For some reason, with MiDAS if using the project_depth function doesn't align properly. But with project_disparity it does.
I guess I thought it was a depth prediction network.


Add empty image name validation

fixes #581
Signed-off-by: anmolbabu<EMAIL_ADDRESS>

@surajnarwade @mik-dass @ashetty1 Please review...
Would be glad to know if there's any developer workflow doc that helps me know procedure to verify this PR. Thanks in advance..
My first PR in golang after a couple of years.
So, please bear with me :)

This function should have tests that validate that it works as expected.

This function should have tests that validate that it works as expected.

Ah, now I remembered that test might be already in #478. Isn't that right @ashetty1 ?
@anmolbabu can you just verify that your PR fixes tests in #478?

@ashetty1 I am facing https://paste.fedoraproject.org/paste/KO9REaHURPzNT72zFaXmrA and my git log is https://paste.fedoraproject.org/paste/daO2mbeNhZ9CA2bOWcvDTg . Do I need to pull any other PRs in addition? Please let me know if I am missing something
Cc: @kadel

@anmolbabu
When you create a PR, please add a descriptive message to the commit message as well as the GitHub description. Explaining what is happening, steps to reproduce (if any) and what it fixes.

Yeah, there's something wrong with your vendor. Try to git checkout vendor so it resets and/or just delete it and git checkout vendor so it's recreated.

@cdrage I tried to Verify the PR with https://github.com/redhat-developer/odo/pull/478 and followed the steps you suggested as in https://gist.github.com/anmolbabu/957c8538cad2943e18eb87ce56d3796f (Note: I pulled https://github.com/redhat-developer/odo/pull/478 in its current rebased state as I ran into issues pulling it over latest master)
But I see the errrors as in https://gist.github.com/anmolbabu/8804dc428d61b6c65b114dffb1262ccd (however, I don't seem to find any issue in tests with respect to occlient.go which this PR modifies)
Cc: @kadel @cdrage @ashetty1

@anmolbabu It looks like you have source code in $GOPATH/src/github.com/skyrings/odo it has to be in $GOPATH/src/github.com/redhat-developer/odo

@kadel Aah my bad :( thanks for pointing. This worked

Verified the Pr to be working with latest https://github.com/redhat-developer/odo/pull/478 ..

LGTM

@kadel @ashetty1 @surajnarwade @mik-dass Please review