Create balance check entries in the uptodate-status table/page

It would be nice to have a button that generates the beancount entries required to "promote" accounts from their current uptodate-status to the best uptodate-status (green), and copies it into the clipboard, so the user can paste it into their source and edit as required. This is helpful when the user has just updated their accounts, and sees that the balances correspond with their institution, and wants an easy way to mark all or many accounts as green (known-good).
The text copied would look like:
2015-12-23 balance Assets:Bank:Duck-Bank 27 USD
2015-12-23 balance Liabilities:Duck-Card -7 USD
...

where 27 USD and -7 USD are the current balances in the accounts. A line has to be created for each commodity in each account.
The button could be close to the table that summarizes the uptodate-statuses.

@redstreet Please try if this does what it should :-)

Nice, thank you! This addresses the case of generating these entries for single accounts. Feedback:

it would be even more valuable to have a button or something that would generate and copy all non-green balance entries to the clipboard, in the order displayed in the table, all at once. The real value here is to "green" many accounts with minimal effort (presumably after the user  looks at all the institutions and knows the numbers match)

the green dots seem to behave weirdly: the first time I click on the dot, nothing is copied. But if I click on a yellow, then back on a green, it copies. Should the green dots have this functionality at all? (I'm leaning towards not)

I'm curious: have you found this feature useful if you used it?

One other major point: there needs to be a current balance column in the table. Else, it's not easy to tell whether or not an account needs to be upgraded to green. I can see the balance appears on hovering, but that's too painful to use if I have lots of accounts that need attention.

Thanks @redstreet for testing and feedback!

it would be even more valuable to have a button or something that would generate and copy all non-green balance entries to the clipboard, in the order displayed in the table, all at once. The real value here is to "green" many accounts with minimal effort (presumably after the user looks at all the institutions and knows the numbers match)

I added that feature (e1547662f245d932309d25350204553e44cf6d6f). It copies all balance directives for none-green accounts, and there is a tooltip to preview the text. It is generated in the order that is the default-order (if you change the order via clicking the table header the new ordering is not taken into account).

the green dots seem to behave weirdly: the first time I click on the dot, nothing is copied. But if I click on a yellow, then back on a green, it copies. Should the green dots have this functionality at all? (I'm leaning towards not)

Which browser are you using?

I'm curious: have you found this feature useful if you used it?

I haven't had the opportunity to test it with my personal workflow yet, but I think - especially with the new button - that this could become very time-saving.

One other major point: there needs to be a current balance column in the table. Else, it's not easy to tell whether or not an account needs to be upgraded to green. I can see the balance appears on hovering, but that's too painful to use if I have lots of accounts that need attention.

Added that in e1547662f245d932309d25350204553e44cf6d6f as well.

Thank you - this works beautifully! :)
I'm using Chrome on Win7. Since the green dots don't copy any more (which is good), I don't see the issue any more. A small related issue: the "known good" hover text includes the "Click here to copy" text, which should be removed, right?

Since the green dots don't copy any more (which is good), I don't see the issue any more. A small related issue: the "known good" hover text includes the "Click here to copy" text, which should be removed, right?

No, this sounds like a bug! I did not remove the functionality for the "known good"s, but it seems that it just does not work in your browser. I need to look into that, and fix it if I can reproduce it.

Okay, I can try to pinpoint the exact behavior tomorrow if that will help, and also try on a different browser, and get back to you.

Awesome, thanks!

Works fine on IE and on a fresh Chrome profile, so I'll chalk this one up to something with my browser plugins/cache etc.
One issue: accounts that have been closed have a blank after "Click here to copy:" and do not copy anything. The behavior is correct, but the "Click here to copy:" text should be removed.
The "Statistics" page now takes a while to load, understandably. It's not terrible, but if at all there's some low hanging fruit here, it would be great to fix.
Otherwise, good to go, thanks for this!

One issue: accounts that have been closed have a blank after "Click here to copy:" and do not copy anything. The behavior is correct, but the "Click here to copy:" text should be removed.

Fixed in 18fee41


Write Callback Block on Queue vs on Write

I'm pulling comment from @helje5 from #28 over into this issue, because that issue is getting cluttered.

The worse aspect is that this calls the done-cb before the queued write has actually finished! This needs to be passed along the stream, that's the whole point.

My reason for not doing this was two-fold:

I was concerned about side-effects from passing the completion blocks into the Socket code, either in the form of memory leaks or in the form of deadlocks.
I don't see a case where it matters. The best this code can do is to hold onto the CB until after the socket write() completes.  But, as the documentation for write(2) explicitly says "A successful return from write() does not make any guarantee that data has been committed," holding onto the CB that long doesn't provide any more reliability or information that if it was called where it is now.

There's no guarantee the connection won't be closed before the bytes that were queued will be written to the socket, but there's no guarantee they're going to make it to the far end of the TCP connection either.
So why does it matter whether the callback happens after the bytes are queued for write() or once write() had completed? The guarantee (or lack thereof) is the same either way.  By Occam's Razor then, I think the simpler design is better.
I might well be missing something here.  If so, I'd love to know what it is.
Thanks

You don't need a done-CB at all if it doesn't provide 'done' functionality. What purpose does it solve in the current setup, none at all - just drop it then ;-)
The reason we added the CB to Johannes original proposal was to add support for proper back pressure handling. Which is somewhat necessary for async based servers ...
P.S.: When talking about sockets, refer to man 2 send, not write. The does not make any guarantee that data has been committed refers to filesystem buffers that may not have been flushed to disk. The semantics of write to a socket are different.

The reason we added the CB to Johannes original proposal was to add support for proper back pressure handling. Which is somewhat necessary for async based servers ...

I need to understand better how this would work, because even if I waited to call the CB until after send(), I'm don't understand how that would help.  Is there documentation or a book or something you can point me to?
The first indication of congestion we would get (I think) is that the send() call would return fewer bytes sent than requested (in which case we spin up a DispatchSourceWrite to handle the retry).  In that case, would the CB just be held until the DispatchSourceWrite was done? Or should there be a "partially written" value for the callback?  And then what would the application do with that information?
I'm happy to fix this (or review Pull Requests), but I'm not clear on what would need to happen.

P.S.: When talking about sockets, refer to man 2 send, not write. ...

You are, of course, correct - sorry. That's what I get for writing up bug while I'm watching a hurricane make landfall live on my TV. (I'm in a safe part of Texas, but I have family along the coast that I'm worried about, so I wasn't fully engaged with what I was writing. My apologies.).

You want information on back pressure? I suppose it is kinda self explaining by its water analogy :-) You can only put more stuff in when you take stuff out. Well, the basic idea is that you suspend a stream of input data until the output stream is ready to take on more data (usually w/ adding additional buffers). Otherwise you can quickly spool up much more data than the backend can actually process (in a timely manner or before running out of buffer memory).
Resources, hm. I like the Stream tutorial, it may explain it, but is a good resource on async-io in any case.
Doing a quick G search this also seems to explain it: Node Backpressuring in Streams, that also kinda looks good: Some thoughts on asynchronous API design.
As a very basic example, say you are piping data from a DispatchIO source to the HTTP server output stream. It may look something like this (not working code):
source.onData { data in
  source.suspend()
  httpResponse.write(data) {
    source.resume()
  }
}

(as mentioned you would usually use buffers, if you have a lot of time, feel free to browse to the Noze.io implementation of GCD based streams ;-) )

So the idea is just that the application has the opportunity to pause until after socket().send()has completed?
Ok, so let me think out loud here:

So the pathological case is that we have a server with a really large receive bandwith and a small send bandwidth (which is opposite what you'd normally expect, but possible). And the server is accepting a chunk from the client on the big pipe, and then processing it somehow, and then queuing it to be sent back to the client on the small pipe.

So with the current implementation, chunks would be added to the WriteQueue much faster than they could be sent to the client (the proverbial Leaky Bucket), and so the WriteQueue would just continue to grow until failure (for example, until available RAM was exhausted).

But if the CB waited until after socket().send() was done, then receiving from the client could be paused and each processed chunk would wait for the network socket to have buffer space available.  This would mean that things would be added to the queue only at roughly the same rate that they were taken off, preventing the queue from growing without bound.

If I've got that right, it makes sense to me, and it's worth risking potential memory leaks to support.
I'll take a pass at this and see what I can do.
Thanks for the feedback.  I hasn't thought the scenario all the way through.

So the pathological case is that we have a server with a really large receive bandwith and a small send bandwidth

Yeah, this is a very common scenario, the most obvious example just serving a plain file (though this has other optimisations). The outbound is not always but quite often slower than the producer (the application, back office db/cache server etc).

Status update: I did a naïve implementation of this at https://github.com/carlbrown/http/commit/5d503a3e9166956fdd4cd7774b8aa3fadb236432 and it didn't work - I got duplicated bytes in the output, so the completionBlock was getting called more than once.
I started trying to troubleshoot it, but I kept needing to make (temporary, debugging, mostly logging) changes to BlueSocket, and its complicated design was slowing me way down, so I switched gears and ripped it out, leading to #39  (to be clear - I don't think BlueSocket is the problem, it was just making it more difficult for me to find the problem than I was willing to tolerate).
Once #39 is merged, I'll revisit this.


added command to post random wombat picture

Depends on http://codehard.be/wombats/ being deployed on the server @woutermeuwis, just as a heads up for when you would run this in develop


Multiple systems on the same Jaeger interface

Is it possible to use the same Jaeger to trace number of different systems and separate them by system name?

What do you mean by "separate by system"?
If system means service, yes you can select different services on the start page.

This is not something in the open source due to the way Jaeger handles the backend. At Logz.io we implemented multitenancy inside our multitenancy which allows for this on our service. We however do not let Jaeger manage the OpenSearch indicies since we handle that and it facilities this feature. We also have a picker that allows you to move between these subaccounts (can be used for applications or envionments).

Sounds like a question about multi-tenancy, which is covered in #3427


Archi doesn't like spaces/blanks in unique IDs imported from a CSV

They import and save just fine but Archi won't reload them a second time when you try to open the .archimate file.
Here's a couple examples:

Here's the error message:

Michael Herman (Toronto)

See my answer to issue #142


Can't stop propagation

It's not possible to use event parameter for stopping propagation in onClick handler. Have a look here. I guess the reason of the problem here - the event is already disposed after setState
BTW, I'm not sure why <a href="" is used here, but if the ShowMore component is used inside something big component that's wrapped by the link (e.g. some ProductCard or etc), React shows a warning

@byTimo Thank you for this bug report.
Bug fix is applied in react-show-more-text version 1.6.2

Unfortunately, that changes fix only the React warning, but the problem is still here. As I mentioned before if I call event.stopPropagation using provided onClick handler, it won't work because the callback in the this.setState function is called after React dispose the event. Look at this again - try to expand the text without alert
By the way, why do you think that span is the best element for this situation. I'd like to use button here, because, actually, it's a button :)


Provide CommonJS module export

Currently it breaks with NextJS.
Since NextJS is prerendered serverside, and it uses Nodejs which uses commonjs exports instead, the export default breaks it (expects module.exports = foo)
To fix this, maybe it could be compiled into separate files or into UMD (Universal module definition) by something like rollup

Hi @kevin51jiang, good point here. We'll integrate these changes in an upcoming release. Thanks for suggesting!


Nil pointer dereference issue

https://sentry.io/organizations/dapperlabs/issues/3622376497/?project=6398442&query=is%3Aunresolved+is%3Afor_review+assigned_or_suggested%3A[me%2C+none]&sort=inbox
https://sentry.io/organizations/dapperlabs/issues/3622688121/?project=6398442&query=is%3Aunresolved+is%3Afor_review+assigned_or_suggested%3A[me%2C+none]&sort=inbox


[BUG]Auto attaching volumes with incompatible engine result in endless attaching/detaching loop

Describe the bug
Allow attaching volumes with incompatible engine result in endless attaching/detaching loop.
We shouldn't allow attaching volumes if the engine is incompatible.
To Reproduce
It was reproduced in a user environment. The following step should reproduce it but haven't verified yet.
Steps to reproduce the behavior:

Start Longhorn v0.7.0
Create a volume and attach it to the node A.
Upgrade to v0.8.0
Reboot the node A. Auto recovery mechanism will try to reattach the volume

Result:
Endless attaching/detaching loop.
Expected behavior
Volume should be kept detached until it is updated to use a compatible image.
Log
time="2020-03-11T20:45:53Z" level=warning msg="Engine of volume pvc-95458f84-5f92-11ea-977a-005056a2d833 dead unexpectedly, reattach the volume"
time="2020-03-11T20:45:53Z" level=warning msg="Instance pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062 is state error, error message: exit status 1"
time="2020-03-11T20:45:53Z" level=warning msg="Instance pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062 crashed on Instance Manager instance-manager-e-e48fa285 at elastic-worker1, try to get log"
time="2020-03-11T20:45:53Z" level=info msg="Event(v1.ObjectReference{Kind:\"Volume\", Namespace:\"longhorn-system\", Name:\"pvc-95458f84-5f92-11ea-977a-005056a2d833\", UID:\"9554b69b-5f92-11ea-8954-005056a2eb48\", APIVersion:\"longhorn.io/v1beta1\", ResourceVersion:\"35943582\", FieldPath:\"\"}): type: 'Warning' reason: 'DetachedUnexpectly' Engine of volume pvc-95458f84-5f92-11ea-977a-005056a2d833 dead unexpectedly, reattach the volume"
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:51:33Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:51:38Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:51:40Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:51:43Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:51:48Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:51:57Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:01Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:09Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:12Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:17Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:20Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:24Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:27Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:33Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:49Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:55Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:52:59Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:03Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:05Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:10Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:13Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:16Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:19Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:23Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:26Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:29Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:33Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:36Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:39Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:42Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:46Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:49Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:52Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:55Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:53:59Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:02Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:06Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:09Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:12Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:15Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:19Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:22Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:25Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-005056a2d833-e-385b6062: time=\"2020-03-11T17:54:28Z\" level=fatal msg=\"Error running controller command: Failed to find frontend: tgt-blockdev.\""
time="2020-03-11T20:45:53Z" level=warning msg="pvc-95458f84-5f92-11ea-977a-00.

Environment:

Longhorn version: v0.8.0

why upgrade from 0.7.0 to 0.8.0 the longhornio/longhorn-engine:v0.7.0 status change to incompatible? how to upgrade volume's engine to 0.8.0?

@Maxwell1987 please follow offline engine upgrade steps to upgrade engine. https://longhorn.io/docs/install/upgrades/#offline-upgrade

Validation: PASSED


Bump identity governance version to 1.8.47

$Subject

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5541095253

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5541095253
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5541811866

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5541811866
Status: success


Guidance on artistic QR codes

I love the QR codes generated by ArtQRCode, but would like to customize them further, so that I could have a unique one for every user.
qr-code-monkey, for example, lets you customize body, eye frame, and eye shape, each with a bunch of options:

Combining these in all possible ways would yield thousands of barcode types, and I'd like QRCoder to be able to do that.
Is this something that's achievable with QRCoder, or is there a straightforward way to enhance the code to accomplish it?
(I don't want to use qr-code-monkey itself because it seems to work exclusively as a web service, with uptime and volume guarantees that don't seem adequate for my needs. Direct rendering in my .NET project seems much more reliable.)

Also allow icons in all Coders (including ArtQRCode), please

I like this idea !


Added File dropdown and Export item to export output text to file

Thank you for your contribution! I will take a look at it soon and if it looks good i will merge the pull request.

Looks very good, thank you.
Merging this now.


Rat King Resprite

About the PR
Changed the rat king sprite, as the older one was all over the place
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

tweak: Changed the rat king sprite, boss says!

The old sprite shows its age, but I'm not a fan of this new one either. The tan-colored hands and legs look very strange. The large tooth also looks very cartoony and not very good. Lastly, the overall body shape is still very stiff and feels not very organic looking.

the hands and legs are more reminiscent of real rats and add a bit of variety to the whole body, the large tooth is pretty much the same as the old one with small changes, don't see the issue with it looking a little silly given the nature of the lad, and I like the body being stiff like it is in the original, since it looks sort of mutated in a way like I'd assume this large rat is

I think this looks pretty good.

I think it's quite good

I think its an improvement over the old sprite, gives the rat king a bit more character. I do think however that the pink color on the hands and feet is to bright and should be toned down and not as bright as the ears. The rats themselves have a darker pink on their feet.

I based the palette off the original colors, but if it would look good with darker pink I can do that

into content with ye


Add coliship product code in shipping methods

Be able to set a Coliship Product Code on Shipping Method form :

This one will be use if it's set during the export.
If not, the old default value COLD still be returned.

Thank you @maximehuran !


support use pinia in electron main process

What problem is this solving
use pinia in electron main process like https://www.npmjs.com/package/@kasvith/electron-vuex

Interesting, this should definitely be an external plugin, not something inside's Pinia. The simplest form of it would be to share the pinia.state among electron processes and then everything would work.
Maybe being able to do
const pinia = createPinia()
pinia.state = useProcessSharedRef({})

is enough. The real challenge is creating useProcessSharedRef() (probably worth having a better name too). Looking at the repo, this file should be a good place where to start: https://github.com/kasvith/electron-vuex/blob/main/src/createSharedState.js. If that doesn't work, a pinia plugin that keeps the store's state in sync could also do
I won't work on this myself as I don't use electron so feel free to create something and link it here.

Thanks for your answer. I don‘t know how to proxy action. In electron-vuex can override dispatch function, but in pinia every action used without dispatch function. https://github.com/kasvith/electron-vuex/blob/main/src/createSharedMutations.js#L45


QR code not successfully scanned on mobile device

When I scan the generated QR code with my mobile device, Whatsapp informs me that it is not possible to add new devices. However I am able to successfully add my browser/laptop. Most likely there is something wrong with the generated QR code.
Is this a known issue and can this be fixed so Whatsapp is useable again from HASS?

Hello, I don't know if it is correct, but it worked for me!!! I made a fork in which I changed the Bailys version and other values that referred to this repository, uninstalled everything and reinstalled from my fork, it worked correctly although it only sends plain text and photos from cameras without problems.

what is the solution for this ? How can I connect with whatsapp without mobile ?

I remove the add-on from this repo and added Pablo Arrieta's repo as a repository for HACS and then installed WhatsApp integration from there. Then I was able to scan the QR code to configure WhatsApp integration

Pablo Arrieta's repo

where can I find this ?

If you are on HASS Supervised then go to the add-on section, add the repository https://github.com/pabloarrieta2022/ha-addons and restart Home Assistant to pick up the change. Then WhatsApp should be available for install

thanks mate

This repo does not provide a working QR code to link your WhatsApp. Using the repository from Pablo Arrieta does produce a working QR code so use that one instead.


Hide selected / unselected cells

If we want to unhide them, then we'll either need

something like #26, a list of the clusters in the UI, so the user has something to select, even when they are hidden
or just "unhide all"

Related to #1487


Readme transfer for sort and search

The current readme contains only search and sort algo description.
Transfer into  corresponding directories.
Like Competitive_Programming/Sorting/Sorting_Readme.md
Competitive_Programming/Searching/Searching_Readme.md

So it's like you want a separate README In the Sorting directory and a separate one in the Searching directory?

yes @rahulkumaran

I'd like to take this issue up, if it's fine with you


Envpool's Async PPO

This PR prototypes a PPO that works with Envpool's Async API, which produces ppo_atari_envpool_async_jax.py.  I tried to do everything I could to ensure the implementation is okay, but its losses (black lines) look slightly off than the sync PPO baseline (red lines) below: notice the entropy curve especially looked much higher.

To further investigate this, I tried to see if envpool's Async API is the issue. To achieve this, I created two FakeAsyncEnvs  with the same API as envpool's async API interface. The first FakeAsyncEnvs uses the envpool's synchronous under the hood (ppo_atari_envpool_fake_async_jax.py), and the second uses gym's atari env under the hood (ppo_atari_gym_fake_async_jax.py).  And they result in the same loss curves (purple and dark red curves) as the synchronous version.
@mavenlin @Trinkle23897 could you look at if my FakeAsyncEnvs are correct? if they are, it probably means there is a bug with envpool's async API...
https://github.com/vwxyzjn/envpool-xla-cleanrl/blob/f1db556c5708f66f6ec943fad606538eca800836/ppo_atari_envpool_fake_async_jax.py#L92-L147
https://github.com/vwxyzjn/envpool-xla-cleanrl/blob/f1db556c5708f66f6ec943fad606538eca800836/ppo_atari_gym_fake_async_jax.py#L123-L175

Turns out the bug is that I made the assumption that in envpool's async API different batches would have distinct ids. For example, if num_envs = 8, batch_size = 4, I assume the env_ids in two batches would look like
[0,2,7,4], [1, 3, 6, 5] # distinct IDs in different batches

but in reality, envpool's async API will return whichever returns the fastest, so it's possible to have duplicate IDs in different batches, like
[0,2,7,4], [1, 0, 6, 5] # some duplicate IDs in different batches

This means doing 1 step in env 3 is more slower than doing 2 steps in env 0, which could happen.
I built a ppo_atari_envpool_soft_async_jax.py to ensure duplicate IDs do not happen.


Update homework_2.sql

Edited Homework 2 by adding the Queries in.
What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Added queries
What did you learn from the changes you have made?
How to write SQL queries. the where and from statement
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Yes
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
Not too much
How were these changes tested?
On DB SQLite
A reference to a related issue in your repository (if applicable)
Checklist

[- ] I can confirm that my changes are working as intended

You have unfortunately made a pull request to the wrong repo. You shouldn't be making a pull request to uoft-dsi/sql, but rather your own forked sql repo. Please read the instructions on your onboarding Assignment Submission Guide more carefully.


Normalize library naming between cmake and autoconf

installed libraries should follow the following basic pattern:
(-> indicates a symlink)
libFoo.so -> libFoo-LIB_SUFFIX.so
libFoo-LIB_SUFFIX.so -> libFoo-LIB_SUFFIX.so.MAJ_SO_VERSION
libFoo-LIB_SUFFIX.so.MAJ_SO_VERSION ->
libFoo-LIB_SUFFIX.so.FULL_SO_VERSION
so with a concrete example of 2.3 lib w/ so version of 24
libFoo.so -> libFoo-2_3.so
libFoo-2_3.so -> libFoo-2_3.so.24
libFoo-2_3.so.24 -> libFoo-2_3.so.24.0.0
libFoo-2_3.so.<IP_ADDRESS> <--- actual file
(there may be slight variations in the link destinations based on
differences in libtool and cmake, but the file names available should
all be there)
Signed-off-by: Kimball Thurston<EMAIL_ADDRESS>

@cary-ilm - in which document should we declare this naming scheme?

Since it relates to building and installing and the various compiler
options, I think it should go in INSTALL.md.
On Wed, Jul 24, 2019 at 6:53 AM Kimball Thurston<EMAIL_ADDRESS>wrote:

@cary-ilm https://github.com/cary-ilm - in which document should we
declare this naming scheme?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openexr/openexr/pull/490?email_source=notifications&email_token=AFC3DGKFLVVUFG2DX5Q6RT3QBBNF3A5CNFSM4IGQJQ5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2WM62A#issuecomment-514641768,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFC3DGMR3DED2UH2D5KFJLTQBBNF3ANCNFSM4IGQJQ5A
.

--
Cary Phillips | R&D Supervisor | ILM | San Francisco


Mask

There is no mask in your google drive folder. It's black images.

Same here. Blank images.

After you read the image and plot them in MATLAB or Python. It will show up.


Fix seedable sampler logic and expound docs

TL;DR the chunk for modifying the seedable sampler/adding it needs to be done after the new dataloader has been made. Otherwise we just modify the one we're getting rid of 😓
Closes https://github.com/huggingface/accelerate/issues/2333
Original: tensor([ 6, 15, 22,  2, 10, 19,  3, 18, 12, 23, 21, 20,  7, 11, 16,  0,  4, 12,
         7, 22,  9,  6,  5, 20, 10, 23,  1, 11, 17,  2, 14, 15, 11, 19, 13, 17,
         8, 14,  1, 10,  3, 15, 18, 12, 22, 16, 21,  5], device='cuda:0')

New: tensor([ 8, 12, 11, 19,  7,  1, 10,  2, 23, 20, 18,  9, 17, 13, 22,  3, 21,  6,
        19,  3,  2,  5,  1, 13, 14, 15, 11,  7, 18, 10,  4, 20,  7,  5,  0, 21,
        23,  8, 10,  1, 17,  6, 11, 13, 18,  2, 12, 20], device='cuda:0')

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


remove TLSv1 and TLSv1.1 from apache config

Build triggered. sha1 is merged.

Build started sha1 is merged.

Build finished.

retry

retest

Build triggered. sha1 is merged.

Build started sha1 is merged.

Build finished.

retest

Build triggered. sha1 is merged.

Build started sha1 is merged.

Build finished.


[2.9] Feature flagging of ZStd Compressor Type

Description
This change would enable us to feature flag the Zstd compressor type. Reference for this change can be found over here
Related #9422
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks for doing the work @sarthakaggarwal97!


Reset instead of deleting achData

cc: @marcaaron related to https://github.com/Expensify/App/pull/5828
Details
Sets basic ACHData, including currentStep, in case the user deletes their VBA and then immediately goes to add another.
Previously we'd just wipe out the reimbursementAccount onyx key so we'd get an error when trying to call API.BankAccount_SetupWithdrawal because currentStep was missing.
Fixed Issues
$ https://github.com/Expensify/App/issues/6246
Tests
Same as QA steps
QA Steps

Go to any Workspace and select Connect bank account
Add a bank account following VBA flow
After the bank account is validated - tap disconnect bank account
Go to any Workspace and select Connect bank account
Continue VBA flow
After entering chase bank credentials select saving accounts
Confirm you're successfully routed to the company step after selecting the savings account

Tested On

[x] Web
[ ] Mobile Web
[ ] Desktop
[x] iOS
[x] Android

Screenshots

Web
https://user-images.githubusercontent.com/16747822/140581050-bf7bc992-921a-4b4e-9554-f2e7415f2125.mp4
Mobile Web

Desktop

iOS
https://user-images.githubusercontent.com/16747822/140584147-396e84d3-a32f-4aea-afb5-9e1a218c6e9b.mov
Android
https://user-images.githubusercontent.com/16747822/140584159-a9408005-69d0-42df-bc52-1ea17b420446.mp4

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Cherry-picked to staging by @francoisl in version: 1.1.14-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to staging by @marcaaron in version: 1.1.14-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @Jag96 in version: 1.1.14-4 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @AndrewGable in version: 1.1.15-15 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


changed version, link checker must fail

You may disregard these recommendations if you used the Edit on GitHub button from dvc.org to improve a doc in place.

❗ Please read the guidelines in the Contributing to the Documentation list if you make any substantial changes to the documentation or JS engine.
🐛 Please make sure to mention Fix #issue (if applicable) in the description of the PR. This causes GitHub to close it automatically when the PR is merged.
Please choose to allow us to edit your branch when creating the PR.
Thank you for the contribution - we'll try to review it as soon as possible. 🙏

The download links in the deployment are not checked by the link checker.

It can't find these links:

@shcheklein @jorgeorpinel @efiop

Because the link checker works on .md files. 💡 😆
I think something works on the deployment might be better for generated links like these. WDYT? @shcheklein @jorgeorpinel

I think something works on the deployment might be better for generated links like these.

@iesahin could you clarify please :) ?
@julieg18 has been working on CI/CD check specifically for the download button links here https://github.com/iterative/dvc.org/issues/2579 https://github.com/iterative/dvc.org/pull/2660 - it's not done yet though

@iesahin could you clarify please :) ?

Does the link checker work on .md files? I thought so. My mistake. :)

Sounds like we can close this, please reopen otherwise. Thanks


Make it possible to define a bounding box for the component map

There are good use cases for a fixed map that displays data, but is not zoomable. This would make the components a bit closer to illustrations.

Related to #40. Should be able to tackle both at the same time. This particular setting would probably best be an option added to the component map, along with an option to set the center point and zoom level.

This exposes an API for setting center and zoom level. We can do bounds if we want as well, but the functionality is more or less equivalent and possibly more accessible. In the component context:
map.getOptions().centerCoordinates([50, 0]);
map.getOptions().zoomLevel(6);


Support for partial grid re-rendering

In doing some performance analysis of Hypergrid, one of the issues I saw was that during the paintLoopFunction, the entire visible portion of the grid is being re-rendered.  It be more efficient if the grid could support partial re-rendering.  For example in my use case I have 15 columns and 3 of those columns are updating rapidly.  It would be much more efficient if, as data was changing, I could only re-render those cells which have changed.  Is this feasible?

Noah, Thanks for the suggestion. We have discussed this before, but maybe
now is time. We will review again and let you know the outcome. Jonathan
On Mon, Oct 31, 2016 at 9:28 AM, Noah Taylor<EMAIL_ADDRESS>wrote:

In doing some performance analysis of Hypergrid, one of the issues I saw
was that during the paintLoopFunction, the entire visible portion of the
grid is being re-rendered. It be more efficient if the grid could support
partial re-rendering. For example in my use case I have 15 columns and 3 of
those columns are updating rapidly. It would be much more efficient if, as
data was changing, I could only re-render those cells which have changed.
Is this feasible?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/openfin/fin-hypergrid/issues/375, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFt_EIeicMqgGEfhmXXcRc9zG4FGcGtYks5q5ez5gaJpZM4KlAob
.

--
Jonathan Eiten
Senior Developer | OpenFin
201-674-1457
<EMAIL_ADDRESS>Build Once. Deploy Instantly. Run Natively.
www.openfin.co | @openfintech
Skype: jonaverse
Twitter: @JonathanEiten
LinkedIn: http://www.linkedin.com/in/jonathaneiten
http://www.linkedin.com/in/jonathaneiten

Cool, I think that would be a big benefit to the library.  I'm sure my FPS would increase dramatically.  From my user perspective here are a few thoughts:
-In an ideal world hypergrid would be smart enough to do partial re-rendering on it's own.  That is when the datamodel is updated in between calls to paint the grid would know which cells have been updated and then trigger  a re-render of those cells exclusively.  However, this would certainly need to be balanced with the fact that rendering can also be triggered with scroll events, arrow keys, and mouse moves.  Just thinking off the top of my head it might have to work something like if there haven't been any of the mentioned events then do partial re-render otherwise do a full re-render.
-Alternatively the api could support a way of triggering a partial re-rendering of cells.  For example if I could supply a list of cells that I want re-rendered and the grid would do it.  This would be ok but put more onus on the client to figure out which cells need to be re-rendered.  Generally, if I am updating the grid I just call into grid.behavior.dataModel.modifyRowById() with a mod hash.  I don't necessarily know what the grid coordinates are and whether or not they are visible.  Not to say I couldn't figure them out but it would be more complicated.
Noah

@noahtaylor We have an implementation planned for our next release

@Dwaynekj @joneit Did incremental re-rendering get implemented?  Is that what repaintCell is for?  Seems that the paint loop is still re-rendering every cell in the viewport.

@mgsloan Which rendering strategy are you using here https://github.com/fin-hypergrid/core/blob/master/src/defaults.js#L1013

@Dwaynekj Ah, thanks for the info!  Sorry for the noise, I've just realized that our hypergrid branch is pretty ancient, version 0.2.  Should probably upgrade, but there's a fair amount of changes atop it.


  PLEASE DON'T ASK FOR WORKAROUNDS OR TIMELINES - THIS IS FREE SOURCE CODE
Please check all of the platforms you are having the issue on (if platform is not listed, it is not supported)

[ ] iOS
[x] Android
[ ] UWP

PLATFORMS THAT YOU CANNOT FILE ISSUES ON RIGHT NOW: Tizen, watchOS, tvOS, macOS
Feature Library
beta components are not fully done - issues MUST include full reproducible sample and stacktrace or they will be closed without explanation!!!

[ ] Core
[ ] Locations
[ ] HTTP Transfers
[x] Notifications
[ ] Push
[ ] Push - Azure Notification Hub
[ ] Push - Firebase (beta)
[ ] Sensors
[ ] AppCenter Logging Integration
[ ] Location Sync (beta)
[ ] Photo Sync (alpha)
[ ] BluetoothLE (beta)
[ ] Beacons (beta)
[ ] SQLite Integration

Version of Library
Shiny.Notifications <IP_ADDRESS>5
Version of OS(s) listed above with issue
Android 7.0 Phone with App Targeting Android 10 Q
Steps to Reproduce

Target Android 10
Build App
Attempt to show a notification

Expected Behavior
Notification shows
Actual Behavior
An exeption is generated with stack trace
NotificationManager.DoNotify (Builder builder, Notification notification)
d:/a/1/s/src/Shiny.Notifications/Platforms/Android/NotificationManager.cs, line 196
Java.Lang.ClassNotFoundException: Didn't find class "android.app.NotificationChannel" on path: DexPathList

This is resolved for the next major release


Fix typo in path for runtime ca certs binding example.

Summary

Fix minor typo in documentation.
Use Cases

Checklist

[ ] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[x] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

Hey there @paveljandejsek I have no problem with this change but you will need to sign the CLA

@ForestEckhardt thanks, hopefully signed correctly now


python3Packages.bootstrapped-pip: unreproducible vendored pyc

Building this package twice does not produce the bit-by-bit identical result each time, making it harder to detect CI breaches. You can read more about this at https://reproducible-builds.org/ .
Steps To Reproduce
nix-build '<nixpkgs>' -A python3Packages.bootstrapped-pip --check --keep-failed

You can use diffoscope to analyze the differences in the output of the two builds.
To view the build log of the build that produced the artifact in the binary cache:
nix-store --read-log $(nix-instantiate '<nixpkgs>' -A python3Packages.bootstrapped-pip)

Additional context
Tested on e8a0af93710b18a99c9450301ea47403c3ebb238
https://arnout.engelen.eu/nixos-iso-minimal-r13y-bak2/diff/4a36df4e811067c93892ce2a9180e0d03fbf8fce0dee5cbf673c572c46fb945c-e92d419c5d63d62173b44c10301dcfc7dce60e1d5c63eee57231ee92c20e62e9.html
All single-character differences, swapping d and f.
I cannot reproduce the problem with python311Packages.bootstrapped-pip, so perhaps (like with #188978) we should simply wait until Python 3.11 is released and use that instead.

A later run (https://arnout.engelen.eu/nixos-iso-minimal-r13y/diff/7078cc35d0a86b63420310121b8c13b99f6e1503c51b8d9c0ea51056eb9995cb-d186e65f389bce4c0e33a539908207833d76b2b392e86165d2c7ec2cc44417d8.html) also has a different timestamp and checksum for vendored .exe files

Python 3.11 was released Oct. 24, 2022 but it looks like we're still using 3.10 as the default  python3.

Python 3.11 was released Oct. 24, 2022 but it looks like we're still using 3.10 as the default python3.

Correct, following the update schedule (https://nixos.org/manual/nixpkgs/unstable/#python-cpython-update-schedule) we can expect the update 'real soon now' :)

Closed via #263294.


chanfitness: Rate limit in memory events based on peer flap rate

This PR adds rate limiting to peers that we are currently tracking online/offline events for. This change prevents constantly flapping peers from filling up our memory with an endless set of online/offline events. It is preparatory work for #4165, addressing our in memory resource consumption before we proceed to write these events to disk. The rate limiting logic used is very simple, we just place peers in buckets based on the number of times they have flapped. This can easily be switched out in future, but we start simple. To add a tangible output to this PR, we display flap rate in listchannels.
A new bucket is added to track peer flap count across restarts so that we maintain our rate limiting when lnd is restarted.
This bucket will be extended to include uptime events.
[peers-bucket]
    [peer-pubkey]
        [flap-count-key]
       +[events-bucket]

This PR includes some refactoring to cleanup spacing/testing in the original implementation, and to update the system to store events per peer. While working on this, it became clear that having all of our peer level information stored in one place is a better design for our requirements (do not need to double store online events when we have two channels with a peer, flap count is consistently stored). If we need to extend this system to have channel level, we can still do so by having event logs for each channel within our peer log.

Changes since last review here, other pushes are rebases.


Sync with newer database schema

Description

Sync with newer database schema
Ability to display old Advisor records
Ability to display old consumer errors
Unit tests updated as needed

An example of output
7:57AM DBG Started
7:57AM INF DB connection configuration driverName=postgres
7:57AM INF List of old reports begin
7:57AM INF Old report age=427 cluster=5d5892d3-1f74-4ccf-91af-548dfc9767aa lastChecked=2020-04-02T09:00:05Z reported=2022-04-27T08:53:00Z
7:57AM INF Old report age=427 cluster=6d5892d3-1f74-4ccf-91af-548dfc9767aa lastChecked=2020-04-02T09:00:05Z reported=2022-04-27T08:54:36Z
7:57AM INF Old report age=427 cluster=7d5892d3-1f74-4ccf-91af-548dfc9767aa lastChecked=2020-04-02T09:00:05Z reported=2022-04-27T08:56:20Z
7:57AM INF Old report age=427 cluster=8d5892d3-1f74-4ccf-91af-548dfc9767aa lastChecked=2020-04-02T09:00:05Z reported=2022-04-27T08:56:34Z
7:57AM INF Old report age=427 cluster=9d5892d3-1f74-4ccf-91af-548dfc9767ac lastChecked=2020-04-02T09:00:05Z reported=2022-04-27T08:56:41Z
7:57AM INF List of old reports end reports count=5
7:57AM INF List of old Advisor ratings begin
7:57AM INF List of old Advisor ratings end ratings count=0
7:57AM INF List of old consumer errors begin
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=10 offset=100 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=11 offset=101 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=12 offset=102 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=13 offset=103 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=10 offset=104 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=11 offset=105 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=20 offset=106 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=20 offset=107 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=20 offset=108 partition=1 topic=test-topic
7:57AM INF Old consumer error age=1275 consumed=2020-01-01T00:00:00Z key=20 offset=109 partition=1 topic=test-topic
7:57AM INF List of old consumer errors end errors count=10
7:57AM DBG Finished

Type of change

New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
Refactor (refactoring code, removing useless files)
Unit tests (no changes in the code)
Documentation update

Testing steps
To be checked on CI.
Checklist

[ ] make before_commit passes
[ ] updated documentation wherever necessary
[ ] added or modified tests if necessary
[ ] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report
Patch coverage: 45.37% and project coverage change: -2.84 :warning:

Comparison is base (46e4302) 51.28% compared to head (6b48eb4) 48.45%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #221      +/-   ##
==========================================
- Coverage   51.28%   48.45%   -2.84%
==========================================
  Files           3        3
  Lines         468      549      +81
==========================================
+ Hits          240      266      +26
- Misses        211      261      +50
- Partials       17       22       +5

Impacted Files
Coverage Δ

storage.go
61.68% <45.37%> (-10.56%)
:arrow_down:

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


NOT FOR CHECK IN : An experimental pull request for making preview-dart-2 the default

An experimental pull request to see what hapens when we turn preview-dart-2 flag on by default.

@a-siva I'm closing this since dart 2 is enabled by default now.  Feel free to re-open if needed.


Interaction only starts when clicking on top of InteractivePawns

Since left mouse click event is on ui_accept's action list, this would trigger the interaction. I created a check to see if the mouse is close to the pawn when the event occurs. The distance can be tweaked to make it easier to click on top of the pawn if the game is running on a mobile device, for instance. Tested with both mouse and touch screen.
Closes #156

Fixed manually in 90abed7b4331e1cb579d71745e4d6dcd7c4a90cc
You shouldn't use a radius: we have areas on the NPCs so that you can interact even if you're not next to the NPC, this should work with touch as well. Also no need to check for touch events as we emulate touch from mouse


Updated the services cards in index.html

Fixes:  #1451
Description
I have updated the services card in the index.html. Initially the button too was getting rotated, hence clicking the button was impossible. I have fixed that
Type of PR

[ ] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _____

Screenshots / videos (if applicable)
Before:
https://github.com/user-attachments/assets/26f76e63-5b0b-4e2f-9469-5d85cda2ce31
After :
https://github.com/user-attachments/assets/39e23114-a00a-4665-8d0f-1ebaff38d325
Checklist:

[x] I have made this change from my own.
[x] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

@Declan1704 Your pull request has been successfully merged! Don't stop here—continue contributing by addressing more issues and aiming to become a top contributor. You can also contribute in my another Repository BuddyTrail which is also under Hacktoberfest
Great contribution to HACKTOBERFEST'24! 🎉


Add typescript and eslint

Adds typescript and eslint. Targeted to the design branch, which will hold all redesign updates until they are ready to merge.
The following dependencies are untyped: @onflow/fcl, @onflow/util-encode-key, @onflow/types, sha3

Great, thanks for reviewing @gregsantos !


Last update label, issue #10 ❔

Issue #10 done in this pull request
Last update label can be turned off completely from settings if user doesn't like that feature
Here's an screenshot:

I'm quite confused with the terminology used in the variable names. Do "last update", "last movement", "last change" and "last event" and "latest parcel event" all refer to the same thing? If they do, they should all be use the same terminology. I'm going to pick "last event date" as the basis of the review comments. It sounds the most descriptive to me.

I won't merge this but updated latest code from master here and corrected conflicts.

I'm quite confused with the terminology used in the variable names. Do "last update", "last movement", "last change" and "last event" and "latest parcel event" all refer to the same thing? If they do, they should all be use the same terminology. I'm going to pick "last event date" as the basis of the review comments. It sounds the most descriptive to me.
Edit: @norkator please don't merge yet, I'm reviewing.

Last update means when application updated / looked successfully parcel details from courier server
Last change looks to be checking latest timestamp when parcel had something going on at carrier's side.

Now that I am thinking we should remove that old "when got successful answer from server timestamp" and replace it fully with last change (parcel event)

@norkator Fine for me. Can't we just set showing the last status update by default? I've put an setting there so user can switch it on or off

So set the switch preference by default to true? And if no status is available, then last refreshed date will be shown.

@norkator Fine for me. Can't we just set showing the last status update by default? I've put an setting there so user can switch it on or off

Yes we can do that way too, it's already on by default: android:defaultValue="true"

Ok. I suggest let's keep it there, in my case I have a parcel that has no events but found in carrier's system.
Let the app show last status update. When it's not available, last update will be shown.
What's your opinion @norkator?

Yeah, I start merging pull requests today to get ready for next update.


MergeJS cannot highlight differences

I have the problem with highlight differences as picture below:

After click to expend we will see highlight as picture below:

And here is snippet code:

Thank you!

I can not reproduce this problem in the merge view demo. Could you set up an HTML page that makes it easy to get the problem to occur (and include instructions on what to do to make it happen)?

When I try to reproduce this problem I notice that it occur when we have more text with litter the differences. One html page was prepare but I cannot attach in here. How to I provide it for you?

You could put it on gist.github.com and link to it.

It is available at: https://gist.github.com/thienan93/b6ea740ad7a89d014f3d. Hope that it will help you find the root cause for the problem. Thanks

Thanks. That helped. Attached patch seems to fix this.


For #313, fix schema issues when read from compatible proto definitions

For https://github.com/scalapb/sparksql-scalapb/issues/313,
fix schema issues when read from compatible proto definitions

Thanks for filing the issue, writing the PR and including the tests. Really appreciated! :100:


Support of Nullable types in MySQL tables

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en
For changelog. Remove if this is non-significant change.
Category (leave one):

New Feature

Currently, ClickHouse is not able to read null from mysql tables (every null are converted into the default value for each column types). I try to add this.
Moreover, I need to extend the integration tests for adding this feature, but I did not figure yet how they work.

Clarification: it was already supported for MySQL table engine if you specify Nullable types explicitly.
See https://github.com/yandex/ClickHouse/pull/3362#issuecomment-429184331
This pull request adds support for Nullable types in mysql table function (type inference from mysql tables).
I'd like to put this feature under setting (with enabled value by default).

@edonin Could you please add a setting external_tables_use_nulls?

So, you are totally right :
This pull request adds support for Nullable types in mysql table function (type inference from mysql tables).
A new setting has been added called 'external_tables_use_nulls' (enable by default)  for disabling this null management (currently used only in mysql function).
TODO: integration tests

Ok.
But I will rename the setting because I just realized that "external tables" can be confused with "external data for query processing".


"Send to interactive" doesn't work with unicode on Windows

Send the following line from ionide to fsi (Alt+Enter)
"Üü" |> Seq.toArray |> Array.map int  |> printfn "%A"

and I get:
Microsoft (R) F# Interactive, Version <IP_ADDRESS> for F# 4.6
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
...
> "��" |> Seq.toArray |> Array.map int  |> printfn "%A";;
[|65533; 65533|]
val it : unit = ()

as you can see both characters are treated as the same. this does not seem to b a fsi bug because the fsi already gets both as the same.

the same happens when I paste the line directly from clipboard into the F# Interactive terminal

Same here. Stumbled across this right now.
When I revert to Ionide 4.1, the issue doesn't occur (with Ionide 4.1, FSI 4.5 is loaded instead of 4.7 / 4.6).

Related:
https://github.com/dotnet/fsharp/issues/7733

Any news on this one?

Even with F# 5 and net 5.0, this is still a problem out of the box.
But with this configuration it works!
  "FSharp.fsiExtraParameters": [
    "--fsi-server-input-codepage:28591",
    "--fsi-server-output-codepage:65001"
  ]

It works with both fsi.exe and dotnet fsi.


Create Searching-algorithm.md

Added searching algo
📥 Pull Request
Description
Searching Algorithms are methods used to find a specific value or condition within a collection of data. They are fundamental in computer science and software development, enabling efficient data retrieval from various data structures.
Fixes # (issue number)
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Okay
On Sun, 13 Oct, 2024, 8:03 pm Ajay Dhangar, @.***>
wrote:

@.**** requested changes on this pull request.
Please read our Contribution Guidelines and our previous document
structure. If you have any questions, please don't hesitate to ask.
In docs/basic-dsa/array/Searching-algorithm.md
https://github.com/ajay-dhangar/algo/pull/578#discussion_r1798374101:

procedure binarySearch(A : sorted list of items, target)

left = 0
right = length(A) - 1
while left <= right do

   mid = (left + right) / 2

   if A[mid] == target then

       return mid

   else if A[mid] < target then

       left = mid + 1

   else

       right = mid - 1

end while
return -1
+end procedure

replace your code
procedure binarySearch(A : sorted list of items, target)
left = 0
right = length(A) - 1
while left <= right do
mid = (left + right) / 2
if A[mid] == target then
return mid
else if A[mid] < target then
left = mid + 1
else
right = mid - 1
end while
return -1
end procedure
with
procedure binarySearch(A : sorted list of items, target)    left = 0    right = length(A) - 1    while left <= right do        mid = (left + right) / 2        if A[mid] == target then            return mid        else if A[mid] < target then            left = mid + 1        else            right = mid - 1    end while    return -1end procedure
—
Reply to this email directly, view it on GitHub
https://github.com/ajay-dhangar/algo/pull/578#pullrequestreview-2364932439,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BKOHTVW6O3PXQH4H63GBQB3Z3KAEHAVCNFSM6AAAAABP2MLQLKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGNRUHEZTENBTHE
.
You are receiving this because you were assigned.Message ID:
@.***>

Please review #581 since it was accepted and contains same data with
replacement that you are asking for
On Sun, 13 Oct, 2024, 8:11 pm Bhumika Sharma, @.***>
wrote:

Okay
On Sun, 13 Oct, 2024, 8:03 pm Ajay Dhangar, @.***>
wrote:

@.**** requested changes on this pull request.
Please read our Contribution Guidelines and our previous document
structure. If you have any questions, please don't hesitate to ask.
In docs/basic-dsa/array/Searching-algorithm.md
https://github.com/ajay-dhangar/algo/pull/578#discussion_r1798374101:

procedure binarySearch(A : sorted list of items, target)

left = 0
right = length(A) - 1
while left <= right do

   mid = (left + right) / 2

   if A[mid] == target then

       return mid

   else if A[mid] < target then

       left = mid + 1

   else

       right = mid - 1

end while
return -1
+end procedure

replace your code
procedure binarySearch(A : sorted list of items, target)
left = 0
right = length(A) - 1
while left <= right do
mid = (left + right) / 2
if A[mid] == target then
return mid
else if A[mid] < target then
left = mid + 1
else
right = mid - 1
end while
return -1
end procedure
with
procedure binarySearch(A : sorted list of items, target)    left = 0    right = length(A) - 1    while left <= right do        mid = (left + right) / 2        if A[mid] == target then            return mid        else if A[mid] < target then            left = mid + 1        else            right = mid - 1    end while    return -1end procedure
—
Reply to this email directly, view it on GitHub
https://github.com/ajay-dhangar/algo/pull/578#pullrequestreview-2364932439,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BKOHTVW6O3PXQH4H63GBQB3Z3KAEHAVCNFSM6AAAAABP2MLQLKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGNRUHEZTENBTHE
.
You are receiving this because you were assigned.Message ID:
@.***>


[Suggestion] STM bot listing improvement (regarding inventory privacy settings)

It would be ideal if ASF checked to see if your inventory is private,  and if so, don't list on https://asf.justarchi.net/STM,  since others using that site won't be able to search you for duplicate 1:1 trades.  That is in addition to the trade token being required for non-friend trades.

That part relies on website, not user reporting. It should be website checking inventories and making appropriate marks, but ASF can pre-filter those as well, so leaving it on wishlist.

Done in https://github.com/JustArchi/ArchiSteamFarm/commit/89a36beeaeba0df5fc97a9cd17df4926cce532f0
There is still backend website part that will be verifying whether client doesn't lie, but pre-processing is already here and will be active since next stable ASF, which will also disable reporting of older ASF clients, effectively removing them from listing.


67 revamping my plans popup

Added a new PlansList component instead of putting it in the AHeader component.
Made the PlansList a menu instead of a dialog for better usability
Added the ability to delete individual plans. Confirmation buttons appear when you try to delete a plan. A notification toast will show when you delete a plan.
Added the ability to delete all plans. A confirmation pops up when you try to delete all the plans.
Added a button to change a plan name, however, I have disabled the feature since there are issues with how store handles names. Those issues will require refactoring portions of the code.
The current plan will have an active state in the menu.

Looks good to me!


Fix a bug of AUTH_FAILURE in RouterServerTestFramework

Need to override callback onCompletion to continue the chain.
Need help from @cgtz to enhance the framework for the case of chain stop in the middle.

Codecov Report

Merging #1006 into master will increase coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1006      +/-   ##
============================================
+ Coverage     68.27%   68.33%   +0.06%
- Complexity     4678     4680       +2
============================================
  Files           378      378
  Lines         29701    29701
  Branches       3771     3771
============================================
+ Hits          20278    20297      +19
+ Misses         8410     8395      -15
+ Partials       1013     1009       -4

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/com.github.ambry.router/PutOperation.java
90.33% <0%> (+0.19%)
83% <0%> (+1%)
:arrow_up:

.../main/java/com.github.ambry.router/PutManager.java
87.82% <0%> (+0.64%)
26% <0%> (ø)
:arrow_down:

...in/java/com.github.ambry.store/BlobStoreStats.java
70.88% <0%> (+1.43%)
82% <0%> (+2%)
:arrow_up:

...b.ambry.network/BlockingChannelConnectionPool.java
65.65% <0%> (+2.17%)
8% <0%> (ø)
:arrow_down:

...java/com.github.ambry.store/CompactionManager.java
89.4% <0%> (+2.64%)
19% <0%> (ø)
:arrow_down:

.../main/java/com.github.ambry.router/EncryptJob.java
97.36% <0%> (+5.26%)
5% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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

Did you verify that the chain continues past the auth failure check now?

Addressed @cgtz 's comments. Also add assert to make sure operations.size() is 0 in the end of the tests.
If there is IOException in blobId creation:
java.io.IOException: exception......

	at com.github.ambry.server.RouterServerTestFramework.startGetBlobAuthorizationFailTest(RouterServerTestFramework.java:368)
	at com.github.ambry.server.RouterServerTestFramework.continueChain(RouterServerTestFramework.java:509)
	at com.github.ambry.server.RouterServerTestFramework.startAwaitCreation(RouterServerTestFramework.java:457)
	at com.github.ambry.server.RouterServerTestFramework.continueChain(RouterServerTestFramework.java:503)
	at com.github.ambry.server.RouterServerTestFramework.access$300(RouterServerTestFramework.java:65)

If error code AuthorizationFailure doesn't match:

java.lang.AssertionError: Blob should have failed in operation: getBlobAuthorizationFail-failureExpected-0

	at org.junit.Assert.fail(Assert.java:91)
	at com.github.ambry.server.RouterServerTestFramework$TestFuture.checkExpectedRouterErrorCode(RouterServerTestFramework.java:664)
	at com.github.ambry.server.RouterServerTestFramework$6.check(RouterServerTestFramework.java:391)
	at com.github.ambry.server.RouterServerTestFramework.checkOperationChains(RouterServerTestFramework.java:133)

If chain stops in the middle:
java.lang.AssertionError: opChain stops in the middle.
Expected :0
Actual   :8
 <Click to see difference>

	at org.junit.Assert.fail(Assert.java:91)
	at org.junit.Assert.failNotEquals(Assert.java:645)
	at org.junit.Assert.assertEquals(Assert.java:126)
	at org.junit.Assert.assertEquals(Assert.java:470)
	at com.github.ambry.server.RouterServerTestFramework.checkOperationChains(RouterServerTestFramework.java:136)
	at com.github.ambry.server.RouterServerPlaintextTest.largeBlobTest(RouterServerPlaintextTest.java:246)```


Support parsing async/await

async/await is at Stage 3 at TC39, and implementation is in progress or complete in four major browsers spec. async and await are both contextual keywords with rather complicated syntax; see the spec for details. There are fairly complete test262 tests which get at the details of the syntax. @aslushnikov

Duplicate of #309 / #381 / ...


Deprecate SpringBootStreamHandler in favor of FunctionInvoker.

SpringBootStreamHandler is not mentioned in docs as a way to configure AWS lambdas. Additionally it extends deprecated AbstractSpringFunctionAdapterInitializer. Docs guide users to use FunctionInvoker instead.
Seems that SpringBootStreamHandler should be deprecated together with other handlers in favor of FunctionInvoker.
The one missing functionality I see is handling function that takes InputStream, that SpringBootStreamHandler supported and FunctionInvoker does not.
If this change makes sense, SpringBootStreamHandler should be also removed from the "Build file setup" for Gradle section in reference docs.

Resolved, thank you!


Command run packagemanifests throws nasty error if run with the wrong directory

Bug Report

What did you do?
Ran run packagemanifests with the directory of the operator instead of the packagemanifest. operator-sdk run packagemanifests ./test-operator --version 0.0.1 --namespace test-operator
What did you expect to see?
A message stating that it could not detect a packagemanifest or some other nice error.
What did you see instead? Under which circumstances?
$ operator-sdk run packagemanifests ./test-operator --version 0.0.1 --namespace test-operator
INFO[0000] Running operator from directory ./test-operator
FATA[0000] Failed to run operator: error initializing operator manager: [could not decode contents of file test-operator/Dockerfile into package: error unmarshaling JSON: while decoding JSON: json: cannot
unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file test-operator/Makefile into package: error unmarshaling JSON: while decoding JSON: json: cannot
unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file test-operator/api/v1/groupversion_info.go into package: error converting YAML to JSON: yaml: line 29:
mapping values are not allowed in this context, could not decode contents of file test-operator/api/v1/test2_types.go into package: error converting YAML to JSON: yaml: line 24: mapping values are not
allowed in this context, could not decode contents of file test-operator/api/v1/test_types.go into package: error converting YAML to JSON: yaml: line 24: mapping values are not allowed in this context, could
not decode contents of file test-operator/api/v1/zz_generated.deepcopy.go into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type
manifests.PackageManifest, could not decode contents of file test-operator/bin/manager into package: error converting YAML to JSON: yaml: control characters are not allowed, could not decode contents of
 file test-operator/config/scorecard/patches/basic.config.yaml into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal array into Go value of type manifests.PackageManifest,
could not decode contents of file test-operator/config/scorecard/patches/olm.config.yaml into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal array into Go value of type
manifests.PackageManifest, could not decode contents of file test-operator/controllers/suite_test.go into package: error converting YAML to JSON: yaml: line 57: mapping values are not allowed in this
context, could not decode contents of file test-operator/controllers/test2_controller.go into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type
manifests.PackageManifest, could not decode contents of file test-operator/controllers/test_controller.go into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go
value of type manifests.PackageManifest, could not decode contents of file test-operator/go.mod into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value
of type manifests.PackageManifest, could not decode contents of file test-operator/go.sum into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type
manifests.PackageManifest, could not decode contents of file test-operator/hack/boilerplate.go.txt into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value
of type manifests.PackageManifest, could not decode contents of file test-operator/main.go into package: error converting YAML to JSON: yaml: line 59: mapping values are not allowed in this context]

Environment

operator-sdk version: v1.0.0-alpha.2-16-g8bca0209 commit: "8bca020931136d196ae5f4135c1d70738a501135"

go version: 1.13.11

Kubernetes version information: v1.18.2

Kubernetes cluster kind: kind cluster

Are you writing your operator in ansible, helm, or go? go

Possible Solution

Additional context
operator-sdk run packagemanifests ./test-operator/packagemanifests  --version 0.0.1 --namespace test-operator

@jmrodri : I tried investigating this issue.

When run from the directory of the operator, run packagemanifests gives the following error:

➜  memcached-operator: operator-sdk run packagemanifests --version 0.0.1 --namespace=memcached-operator-system --timeout 4m0s
FATA[0000] Failed to run packagemanifests: create catalog: error creating catalog source: no matches for kind "CatalogSource" in version "operators.coreos.com/v1alpha1"

And when run from anywhere else in the directory where packagemanifests are not located, the following error is produced:
➜  example-inc: operator-sdk run packagemanifests --version 0.0.1 --namespace=memcached-operator-system --timeout 4m0s
FATA[0000] Failed to run packagemanifests: load package manifests: invalid file: <nil>

Is this fine, or do you suggest we improve the error messages in these scenarios ?

Just tried doing this again with a fresh operator.
operator-sdk version
operator-sdk version: "v1.1.0-16-g33e37efc", commit: "33e37efc921bab5cd6b5c84eb68a604d733e06ff", kubernetes version: "v1.18.8", go version: "go1.13.11 linux/amd64", GOOS: "linux", GOARCH: "amd64"

operator-sdk run packagemanifests ./packman-operator/ --version 0.0.1
FATA[0000] Failed to run packagemanifests: load package manifests: [could not decode contents of file packman-operator/Dockerfile into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/Makefile into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/api/v1/groupversion_info.go into package: error converting YAML to JSON: yaml: line 29: mapping values are not allowed in this context, could not decode contents of file packman-operator/api/v1/test_types.go into package: error converting YAML to JSON: yaml: line 24: mapping values are not allowed in this context, could not decode contents of file packman-operator/api/v1/zz_generated.deepcopy.go into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/bin/manager into package: error converting YAML to JSON: yaml: control characters are not allowed, could not decode contents of file packman-operator/config/scorecard/patches/basic.config.yaml into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal array into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/config/scorecard/patches/olm.config.yaml into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal array into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/controllers/suite_test.go into package: error converting YAML to JSON: yaml: line 57: mapping values are not allowed in this context, could not decode contents of file packman-operator/controllers/test_controller.go into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/go.mod into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/go.sum into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/hack/boilerplate.go.txt into package: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type manifests.PackageManifest, could not decode contents of file packman-operator/main.go into package: error converting YAML to JSON: yaml: line 59: mapping values are not allowed in this context]

When run in the operator's directory giving it the packagemanifests directory, it seems to work just fine:
# operator-sdk run packagemanifests ./packagemanifests/ --version 0.0.1
INFO[0000] Creating packman-operator registry
INFO[0000]   Creating ConfigMap "default/packman-operator-registry-manifests-0-0-1"
INFO[0000]   Creating ConfigMap "default/packman-operator-registry-manifests-package"
INFO[0000]   Creating Deployment "default/packman-operator-registry-server"
INFO[0000]   Creating Service "default/packman-operator-registry-server"
INFO[0000] Waiting for Deployment "default/packman-operator-registry-server" rollout to complete
INFO[0000]   Waiting for Deployment "default/packman-operator-registry-server" to rollout: 0 out of 1 new replicas have been updated
INFO[0001]   Waiting for Deployment "default/packman-operator-registry-server" to rollout: 0 of 1 updated replicas are available
INFO[0007]   Deployment "default/packman-operator-registry-server" successfully rolled out
INFO[0007] Created CatalogSource: packman-operator-catalog
INFO[0007] OperatorGroup "operator-sdk-og" created
INFO[0007] Created Subscription: packman-operator-v0-0-1-sub
INFO[0010] Approved InstallPlan install-pkx9n for the Subscription: packman-operator-v0-0-1-sub
INFO[0010] Waiting for ClusterServiceVersion "default/packman-operator.v0.0.1" to reach 'Succeeded' phase
INFO[0010]   Waiting for ClusterServiceVersion "default/packman-operator.v0.0.1" to appear
INFO[0014]   Found ClusterServiceVersion "default/packman-operator.v0.0.1" phase: Pending
INFO[0015]   Found ClusterServiceVersion "default/packman-operator.v0.0.1" phase: Installing

After digging into the code a bit more this doesn't seem to be a problem with the SDK itself. The problem exists in the operator-framework/api packagemanifestloader.
https://github.com/operator-framework/api/blob/master/pkg/manifests/packagemanifestloader.go#L29-L40
It looks like it collects the files and dirs in the given directory and tries to walk them. So if you give it the directory of your operator project, it finds a Dockerfile and other things it does not expect.  This explains the error we show to the user.

Closing this as bundles are going to be the future format for operators with OLM, I don't think we should fix this.


python3.pkgs.qiling: init at 1.2.3

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 120006 at 81511c97 run on x86_64-linux 1

4 packages built successfully:

python38Packages.python-registry
python38Packages.qiling
python39Packages.python-registry
python39Packages.qiling

2 suggestions:

warning: no-python-tests
Test runner could not discover any test cases: ‘Ran 0 tests in 0.000s’
Near pkgs/development/python-modules/python-registry/default.nix:22:0:
   |
22 |     description = "Pure Python parser for Windows Registry hives";
   | ^

warning: python-include-tests
Consider adding a checkPhase for tests, or if not feasible, pythonImportsCheck.
Near pkgs/development/python-modules/qiling/default.nix:36:0:
   |
36 |     description = "Qiling Advanced Binary Emulation Framework";
   | ^

qiling is broken on aarch64 because capstone does not support it (it creates a manylinux2014-x86_64 wheel).

qiling is broken on aarch64 because capstone does not support it (it creates a manylinux2014-x86_64 wheel).

Can you mark capstone broken on aarch64?

Sure can!


Add add command to Developer Guide

Update DG with add command
Add relevant PMUL files and images

Codecov Report

Merging #105 (40e425b) into master (a0133a7) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #105   +/-   ##
=========================================
  Coverage     73.16%   73.16%
  Complexity      445      445
=========================================
  Files            76       76
  Lines          1323     1323
  Branches        140      140
=========================================
  Hits            968      968
  Misses          321      321
  Partials         34       34

Continue to review full report at Codecov.

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


Multiple sizes for the avatar component

Feature request 🚀

[x] I will create Pull Request
[x] It's just a suggestion

Expected

Add a size prop to the avatar component

Examples
These would have similar sizes to Vercel's avatar component, but will not use numbers. Its API would be more similar to Chakra UI's avatar sizes API.
What the solution would look like
<Avatar size="lg" />

Possible sizes:
size: "xl" | "lg" | "sm"

I'm open to adding more sizes, and discussing what the width and height values for each one should be.
Others (Optional)

You could just manually set the w and h props on the avatar

If you use past ver,You can view in past.Geist use size system.But break to 2.x it removed it.I don't think add prop size is useful.After ver 2.0 I think you can use scale system is better. By the way,you can see the release:)

The scale prop works well for me in increasing the size of the Avatar Component.


Option to change language used

Description of the new feature / enhancement
It would be nice to have the ability to change the language PowerToys uses (if it's already in the app, I never found it). As it is, PowerToys uses Windows language.
Scenario when this would be used?
I'm french Canadian and when I'm using a PC with a french Windows, PowerToys is also in french... I'm used to work with english and I'd like to be able to switch the language PowerToys uses.
Supporting information
No response

/dup #7670


Insert works on IsarLink, but doesn't update data

So a plain simple example of IsarLink/IsarLinks example I stumbled recently. While inserting data in db with relations student with assigned teacher, the update part doesn't work as flawlessly as insert. The subject stays the same "Math", and did not update to "Physics" in DB.
Did I forgot something or do I need to do putSync for every nested IsarLink in Object, which is weird because insert works fine?
Also I get student from DB with updated teacher ID, so there's is a reference which row should be updated in DB. If there's no workaround then it just seems I have to create Dao object for every table I have in DB, and do putSync manually for every object in relation.
@collection
class Teacher {
  Id? id;
  late String subject;
}

@collection
class Student {
  Id? id;
  late String name;
  final teacher = IsarLink<Teacher>();
}

void main() async {
  final isar = await Isar.open([StudentSchema, TeacherSchema], inspector: true);

  final mathTeacher = Teacher()..subject = 'Math';

  final linda = Student()
    ..name = 'Linda'
    ..teacher.value = mathTeacher;

  final studentId = isar.writeTxnSync(() => isar.students.putSync(linda));
  final updatedStudent = isar.students.getSync(studentId)!;

  updatedStudent.name = "Anna";
  final teacher = updatedStudent.teacher.value!;
  teacher.subject = "Physics";
  updatedStudent.teacher.value = teacher;

  final studentId2 = isar.writeTxnSync(() => isar.students.putSync(updatedStudent));
  print(studentId2);
}

@ebelevics you need to save the isarlink(teacher).
Add this:
updatedStudent.teacher.saveSync();

Alright I'll try again in example and separate project. Thanks, will give feedback.

Remember to put that line of code inside a synchronous transaction

...
  updatedStudent.name = "Anna";
  final teacher = updatedStudent.teacher.value!;
  teacher.subject = "Physics";
  updatedStudent.teacher.value = teacher;

  final studentId2 = isar.writeTxnSync(() {
    updatedStudent.teacher.saveSync();
    isar.students.putSync(updatedStudent);
  });
...

Well tried doing this, but the value is still the same ("Math")

Remove this from the transaction.
isar.students.putSync(updatedStudent);

Try this --->
final updatedStudent = isar.students.getSync(studentId)!;
updatedStudent.name = "Anna";
await updatedStudent.teacher.load();
final teacher = updatedStudent.teacher.value!;
teacher.subject = "Physics";
updatedStudent.teacher.value = teacher;
final studentId2 = isar.writeTxnSync(() {
updatedStudent.teacher.saveSync();
isar.students.putSync(updatedStudent);
});

Tried it, nope same result ("Math"). Doesn't it work properly for you?
  updatedStudent.name = "Anna";

  await updatedStudent.teacher.load();
  final teacher = updatedStudent.teacher.value!;
  teacher.subject = "Physics";
  updatedStudent.teacher.value = teacher;

  final studentId2 = isar.writeTxnSync(() {
    updatedStudent.teacher.saveSync();
    isar.students.putSync(updatedStudent);
  });

  final updatedStudent2 = isar.students.getSync(studentId)!;
  await updatedStudent2.teacher.load();

The only thing that does work is:
  final studentId2 = isar.writeTxnSync(() {
    isar.teachers.putSync(teacher);
    isar.students.putSync(updatedStudent);
  });

But then I'll have to create separate DAO for every collection. And even then I came to issue not enabling merge isar.write if there's nested isar.write:
  final studentId2 = isar.writeTxnSync(() {
    isar.students.putSync(updatedStudent);
    teacherDaoPut(isar, teacher);
  });

  final updatedStudent2 = isar.students.getSync(studentId)!;
  await updatedStudent2.teacher.load();
}

void teacherDaoPut(Isar isar, Teacher teacher) {
  isar.writeTxnSync(() {
    isar.teachers.putSync(teacher);
  });
}

Switched DB to Realm as there these things just work. Closed as this issue now is irrelevant.


release binaries

Do you plan on releasing binaries for different operating systems and submit them to OS package managers down the line?

bump @atgreen

What systems / platforms are you interested in?  I am hoping to add it to Fedora at least.

My ask would be to cover as many as possible since more people could use ocicle right away. The Nyxt project does this well.
Nix, Guix, MacOS, and Windows come to mind here.
What do you think?

Since on home brew no need for Mac, but Windows would be very very worthwhile to have an executable and installer. In the linux world a simple git clone and setup as is now should be enough.

Disagree. The effort should be equal for all, so if we can have it available for the most popular distros, then we should.


Wrong example in README

var Horseman = require('node-horseman');
var horseman = new Horseman();

horseman
    .open('http://en.wikipedia.org/wiki/Headless_Horseman')
    .evaluate(function(ms, done){
        var start = Date.now();
        setTimeout(function() {
            done(null, Date.now() - start);
            // ^ Can pass an Error as first argument,
            // making evaluate action reject its Promise in Node.
            // Second argument is what the Promise will resolve to.
        }, ms);
    }, 1000)
    .then(function(actualMs){
        console.log('––––––––––––––––––––––––––>', actualMs);
    })
    .close();

version is 2.8.2
alexeysh:path alexey$ DEBUG=horseman node  t.js
  horseman .setup() creating phantom instance on 12406 +0ms
  horseman .open http://en.wikipedia.org/wiki/Headless_Horseman +9ms
  horseman phantom created. +736ms
  horseman page created +22ms
  horseman phantomjs onLoadFinished triggered. +2s
  horseman .open: http://en.wikipedia.org/wiki/Headless_Horseman - status: success +0ms
  horseman jQuery not injected - already exists on page +11ms
––––––––––––––––––––––––––> null
  horseman .close(). +6ms

I thought that console.log(actualMs); should display something like 1000. What I'm doing wrong?
Thanks

Support for async .evaluate() is added in v3. Please see here for the v2.8.2 Readme.


camelCase idAttribute not working with relationships

Under http://bookshelfjs.org/#Model-idAttribute the docs say that the idAttribute should refer to the name of the attribute following parse(). In my case, my parse() function converts the snake case database columns to camel case attributes.
However, when using the camel case attribute name for the idAttribute, I find that relationships attempt to query using the idAttribute as the target ID column name (targetIdAttribute). For example:
SELECT "xyz"."user_type".* FROM "xyz"."user_type" WHERE "xyz"."user_type"."userTypeId" in ($1)

So, my question is, should the idAttribute be the database column name (to make relationships work), or the model attribute name (as the docs suggest)? If the former, then the docs should be updated, and if the latter, this could be a bug with the way relationship join queries are formed.

How are you defining your relationships? Can you proved the exact code that is causing that incorrect query?

And also the version of Bookshelf you're using pls, @LordSputnik.

I've added some minimal code which reproduces the issue at: https://gist.github.com/LordSputnik/2ce27c6f260685b74eef
This is with bookshelf 0.8.2, according to the package.json in node_modules/bookshelf

So my memory isn't that great apparently. This one's a duplicate. #397, #665 and #642 are all related.

Apologies for the duplicate, I normally check well but this time only glanced through the first page!

I'm having this problem with .save(). I'm using CamelCase, and I have to do model.set("file_oid", model.get("fileOid"));, with idAttribute: "file_oid".
What's the plan for this? (this setup works, but if I don't set up the second attribute (which then gets overwritten when converting back to underscores

Any update on this?

Any updates? I have similar problem :cry:


Differentiate between setup and cleanup requests and requests for the actual test

This would help people better understand what tests are doing.

We are in the process of closing this GitHub repository.  This issue has been moved to the CSPP team ADO backlog list for consideration.


[it] tutorials/customization/basics

Migrate https://github.com/tensorflow/docs/pull/1379 by @mcaci
CLA verified in that PR

I have reviewed @codeadmin-peritiae comments and I agree with them, I don't know @lamberta if you can make these changes or if I should open a new PR with them (thanks already for the migration of the PR :smile: )

I created PR #192 to introduce the page and the needed changes