"Excessive number of pending callbacks: 501" in dev mode

When the arrive confetti component unmounts, an error is logged in the console:

Warning: Please report: Excessive number of pending callbacks: 501. Some pending callbacks that might have leaked by never being called from native code:

This doesn't appear to impact production mode.  Issues have been reported in react-native-reanimated and react-native libraries.

Same here

Same here

Same here

Same here

I'm having this issue as well.

I have also been getting it. I think it is related to the fact the animation is still running(When it's over it doesn't print the warning), maybe we need a direct ref method to stop the animation?


Don't call sudo when we're already root

It's possible to execute actions inside a Docker container using (container:) - and it's possible (and I'd wager common) to already be root there and not have sudo available

@karolba this looks like a great addition
Can you please add it as part of the inputs? I prefer not to break the app for users who want it to keep it running as it is. So if someone specifically wants to remove the sudo they can use a new input skipsudo: true and then it will act as you did.
If you update your PR to that, I will definitely merge it and release a new version 🙏🏻

@unfor19 Sure! Although: I don't think it's neccessary - I only skip sudo here if the user is already root and using sudo wouldn't change anything - especially because you have --preserve-env here.
If you think this needs to be in inputs anyway after reconsidering, then I'll add it there

@karolba sorry for the delay again, if you add the skipsudo as I wrote I will definitely add it. I just don't want to break anything to existing users.


Fix 82: Scope of types for named values in attributes

Moving to OOB, see https://github.com/Microsoft/visualfsharp/pull/437

I've verified the fix at gist https://gist.github.com/vladima/4f1b6c248ec21ff45fa1 described here: https://github.com/Microsoft/visualfsharp/pull/437#issuecomment-102571556 by hand.
csc /target:library program.cs
fsc.exe -a ProvidedTypes.fs mirror.fs

then compare
path-to-new-fsharp\fsc.exe -r mirror.dll -o client.exe -r:System.ServiceModel.dll client.fs

path-to-old-fsharp\fsc.exe -r mirror.dll -o client2.exe -r:System.ServiceModel.dll client.fs

For this modified client.fs below.  The first client.exe succeeds and prints "Sign", the second fails with an exception
module Client

type T = Top.Repro.C
T.Run()

let attrs = typeof<T>.GetMethod("Run").GetCustomAttributes(false)
let attr = attrs.[0] :?> System.ServiceModel.FaultContractAttribute

printfn "%A" (attr.ProtectionLevel.ToString())

@latkin yes, could you please add this as a test when you integrate.  Thanks...!!!

When I try the test scenario, it works in F# 3.1, pre-fix 4.0, and post-fix 4.0.
C:\Users\latkin
> csc /target:library .\library.cs
Microsoft (R) Visual C# Compiler version 12.0.31010.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

C:\Users\latkin
>  & 'C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\Fsc.exe' -a  .\providedtypes.fs .\mirror.fs
Microsoft (R) F# Compiler version 12.0.40226.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

C:\Users\latkin
> & 'C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\Fsi.exe' .\client.fsx
In run
done

library.cs  (note - needed to mark C 'public' or else all F# versions had runtime crash)
using System;
using System.Net.Security;
using System.ServiceModel;

public class C {
    [FaultContract(typeof(Exception), ProtectionLevel = ProtectionLevel.Sign)]
    public static void Run() { Console.WriteLine("In run");}
}

mirror.fs
// compile as: fsc --target:library ProvidedTypes.fsi ProvidedTypes.fs Mirror.fs
namespace Repro

open System.IO
open System.Reflection
open ProviderImplementation.ProvidedTypes
open Microsoft.FSharp.Core.CompilerServices

[<assembly : TypeProviderAssembly>]
do()

[<TypeProvider>]
type Mirror() as this =
    inherit TypeProviderForNamespaces()
    let thisAssembly = typeof<Mirror>.Assembly
    let topType = ProvidedTypeDefinition(thisAssembly, "Top", "Repro", Some typeof<obj>, IsErased = true)
    let csAssembly =
        let location = Path.GetDirectoryName(thisAssembly.Location)
        System.Reflection.Assembly.LoadFrom(Path.Combine(location, "library.dll"))
    do topType.AddAssemblyTypesAsNestedTypesDelayed(fun() -> csAssembly)
    do this.AddNamespace("Top", [topType])

client.fsx
#r "./mirror.dll"
#r "System.ServiceModel.dll"

type T = Top.Repro.C
T.Run()
printfn "done"

Mmm ok repro only occurs in the context of an exe, it doesn't repro in FSI.


Main button shadow also rotates

Hi,
When the button rotates, the shadow also rotates. This is not the material expected behavior.
Best,
Iftach

Locate this file react-native-action-button/ActionButton.js
Line around 127 comment below line
//if(!this.props.hideShadow) animatedViewStyle.push(styles.btnShadow);
Modify line around 40 to bellow
return [styles.btnShadow, styles.actionBarItem, this.getButtonSize()];

@dhruba-sarma cheers!

@mastermoo This comes back in 2.0.13 for some reason

It seems that while the fix provided by @dhruba-sarma solves the rotating problem on iOS, it also removes the shadow on the main button in Android entirely.

One of the commits in the PR I referenced above should fix this issue.


Document how to purge the HTTP cache when deploying the design

It'd be useful to document that you can do curl -XPURGE https://warehouse.python.org/.../ when the design has been deployed to see the changes if they have been cached by Fastly.

Another option we could maybe do here is tag all of the pages with which template(s) they depend on and whenever a deployment happens, do an automatic purge of any pages that had their templates changed. That will be more effort than just documenting the curl -XPURGE thing though.


Notification Types

Balta,
Very usefull class.
Wouldn't be nice to have 3 types of notifications (Success, Alert, Error) so we could use the list of notifications to alert to end-users?

Notification Type could be Optional.
By default, ERROR type is set if not provided.
Review Invalid() Method to filter Error Type olny.

Great question! Today Notification class is sealed preventing you to extend it! On version 2, Ill remove sealed modifier and youll be able to create your own notifications, for example:
public class Warning : Notification

As Warning is child of notification you can upcast it!


[Bug]: Latest Cohere models need an input_type

What happened?
When using the latest Cohere embedding models (e.g. embed-english-v3.0), I get the following error when I try to .add:
/usr/local/lib/python3.10/dist-packages/cohere/client.py in _check_response(self, json_response, headers, status_code)
885             logger.warning(headers["X-API-Warning"])
886         if "message" in json_response:  # has errors
--> 887             raise CohereAPIError(
888                 message=json_response["message"],
889                 http_status=status_code,
CohereAPIError: invalid request: valid input_type must be provided with the provided model
This is due to the input_type string now required (please see below from https://docs.cohere.com/reference/embed), which is critical for correct matching. I suggest you hard code the "search_document" string.
input_type
string
Specifies the type of input you're giving to the model. Not required for older versions of the embedding models (i.e. anything lower than v3), but is required for more recent versions (i.e. anything bigger than v2).
"search_document": Use this when you encode documents for embeddings that you store in a vector database for search use-cases.
"search_query": Use this when you query your vector DB to find relevant documents.
"classification": Use this when you use the embeddings as an input to a text classifier.
"clustering": Use this when you want to cluster the embeddings.
Please note that you will probably need to change the .query function as well (I suggest you hard-code the "search_query" string)
Versions
Latest
Relevant log output
No response

@laserman2000 thanks for flagging this! Would you be open to help out by opening a PR?

I'm a little confused why cohere needs this. The best I could find was https://txt.cohere.com/introducing-embed-v3/ (search for "Why Is the Input Type Needed?"). But I agree @laserman2000 we should just hardcode "search_document" in.


API: raw.filter() design mode: firwn vs firwin2

I find it surprising, is it intended?
After I apply the filter, let's say:
raw.filter(0.5, None)

when I plot the raw with remove_dc=False I can see big offsets between channels. My expectation was that 0.5 highpass filter will remove the DC, but it doesn't.

My expectation was that 0.5 highpass filter will remove the DC, but it doesn't.

Mathematically this implies that raw[:][0].mean(-1) is non-zero. Is that the case?

when I plot the raw with remove_dc=False I can see big offsets between channels.

Keep in mind what you describe here is different from removing DC of the whole signal. remove_dc removes the DC within each plotted time segment, which the filter is not guaranteed to do. If it doesn't make this clear in the docstring, we should update it.
If you want to attenuate the low frequencies further, you need a steeper transition band than the default (which will be 0.5 in this case).
Can you check to see if this is all true?

If you want to attenuate the low frequencies further, you need a steeper transition band than the default (which will be 0.5 in this case).

Indeed, this is what we also observed for the biomag demo. Our transition band may not be steep enough for the highpass filter ...

Our transition band may not be steep enough for the highpass filter ...

Depends on the tradeoffs you want to make. FYI the 0.5 Hz the filter is already going to be ~13 seconds long, and using a tighter transition band will make it longer. I tried to design the filters to follow the recommendations from the most recent discussions on the issue, at least.

Ok, I get the thing with plot remove_dc removing the within-window mean - I thought that it removes the overall dc - but I didn't read the docs on this carefully so the problem may be in the user not the docs :)
Still,  even with 0.5 Hz transition band I expected to get stronger attenuation of the slowest drifts.
But inspecting filter properties with plot_filter reveals that the attenuation is not that great.

Setting a transition bandwidth of 0.2 for example fixes the issue.

I'm just wondering that maybe the default transition bandwidth should be smaller than lowpass freq. I remember I never had such a surprise in eeglab, even using the new filters written by Widmann (I don't remember his default for low transition bandwidth though).

I never had such a surprise in eeglab, even using the new filters written
by Widmann (I don't remember his default for low transition bandwidth
though)
Can you investigate their default behavior? You can check docs, and filter
an impulse for example.

Yes, I'll take a look.

Just out of curiosity, why use FIR by default?
IIR can much more easily achieve steep transition bands and I don't see much disadvantage in offline filtering, where you can do forward-backward.

Oh, I found the comprehensive and interesting discussion at http://martinos.org/mne/stable/auto_tutorials/plot_background_filtering.html
Not sure about the arguments of Widmann et al. though - for example, numerical stability of IIR filters is a non-issue in my experience, as long as the filter order is kept reasonable.

for example, numerical stability of IIR filters is a non-issue in my experience, as long as the filter order is kept reasonable.

Yeah, with second-order sections the fear of filter instability isn't so bad, even for higher-order IIR filters. But one thing to keep in mind is that, in addition to instability issues (i.e., high-order filters blowing up), even IIR filters that don't blow up will propagate errors differently from how FIR filters do. Recursive operations can tend to magnify numerical errors.
Also, in Parks and Burress, they point out that in practice, an IIR filter is effectively equivalent to some FIR filter, because beyond some number of samples the numerical noise effectively truncates the impulse response. Given this length (whatever it is), you can build a FIR filter with better tradeoffs, and more options / control over those tradeoffs, a defined stop-band, etc.

The default implementation of pop_eegfiltnew - the current default eeglab filter seems to be v. similar.
The main difference seems to be that eeglab's FIR is not applied forward-backward but applied only once and then the signal is shifted by the filters group delay.
in eeglabs filter the transitions bandwidth is defined as:
df = min([max([maxDf * 0.25, 2]) maxDf]);

where maxDf is equal to lower edge for highpass (so 0.5 in my case).
So the transition band is the same as in mne.
Filter order is set like this:
filtorder = 3.3 / (df / EEG.srate); % Hamming window
filtorder = ceil(filtorder / 2) * 2; % Filter order must be even.

so it is 6.6 seconds with 0.5 Hz highpass (if I remember correctly that is the same as in mne too).
Filter frequency respose looks like this:

additionally, some info that is displayed on screen:
pop_eegfiltnew() - performing 1651 point highpass filtering.
pop_eegfiltnew() - transition band width: 0.5 Hz
pop_eegfiltnew() - passband edge(s): 0.5 Hz
pop_eegfiltnew() - cutoff frequency(ies) (-6 dB): 0.25 Hz
pop_eegfiltnew() - filtering the data (zero-phase)

The main difference is that I do not get any offsets when I plot the signal after filtering in eeglab.

The main difference seems to be that eeglab's FIR is not applied forward-backward but applied only once and then the signal is shifted by the filters group delay.

Ours is not applied forward-backward by default either. phase='zero' does this shift, phase='zero-double' does a forward-backward equivalent (though under the hood it convolves the FIR filter with its time reversal, and compensates for the delay of this combined filter).

so it is 6.6 seconds with 0.5 Hz highpass (if I remember correctly that is the same as in mne too).

I think ours might be double that... one of us could be off by a factor of 2.
Is our filter length approximately 3301?

The main difference is that I do not get any offsets when I plot the signal after filtering in eeglab.

This means there is something different in the design, and thus more to figure out.
What does our plot_filter look like?

Ours is not applied forward-backward by default either. phase='zero' does this shift, phase='zero-double' does a forward-backward equivalent (though under the hood it convolves the FIR filter with its time reversal, and compensates for the delay of this combined filter).

Oh, I meant phase='zero-double', I thought it is the default, thanks for correcting.

I think ours might be double that... one of us could be off by a factor of 2.
Is our filter length approximately 3301?

yes, you are right, this is what is printed when I do raw.plot(0.5, None):
Setting up high-pass filter at 0.5 Hz
l_trans_bandwidth chosen to be 0.5 Hz
Filter length of 3300 samples (13.200 sec) selected

What does our plot_filter look like?

I've pasted mne's plot filter a few posts above.

I've pasted mne's plot filter a few posts above.

Yes but with log x-axis. Can you do linear x-axis / make it more comparable?

Ah, sure, here it is:

I can export filter coefs from eeglab later today and plot on the same figure if it helps.

Sure. From the plot it is clear they are doing something different with the filter design.
We basically delegate directly to scipy.signal.firwin2 by passing the stop-band (value 0) and pass-band (value 1) edges as given by the user. Because of the windowing this makes the responses a bit smoother than you'd want. I think EEGLAB also uses the MATLAB equivalent of firwin2, which means they must adjust those bounds somehow... we'll have to investigate further. Thanks for looking into this @mmagnuski.

(I can hopefully help look into it next week unless you beat me to it.)

Okay it looks like the difference is between using firwin (what EEGLAB effectively uses) and firwin2 (what we have used forever) to design the filters. It looks like the firwin/EEGLAB way does give better suppression for the equivalent window length (EEGLAB is buried beneath the "firwin" curve):

I hate to do this, but we might want another parameter design='firwin' | 'firwin2', and change the default via deprecation to firwin. But maybe we should do this after the upcoming (imminent) release so we can test it out thoroughly.

+1 to do this after the imminent release

+1 too, thanks @Eric89GXL for getting to the bottom of this.

Amazing! @jaeilepp we should update the biomag demo now to reflect this. It was a bit weird to earlier explain that we were not using the defaults for the highpass filter

Just wanted to say thanks for fixing this - with the old firwin2, ICA does not work, i.e. it produces strange components. firwin fixed this and I now get components almost identical to the ones calculated with EEGLAB. A pity that this won't be the default until 0.16 - could/should we add a warning message for ICA users to make sure to use firwin?

could/should we add a warning message for ICA users to make sure to use
firwin?
How/where would you want to do this?

How/where would you want to do this?

Either a short note to the deprecation warning (e.g. "Note that firwin2 produces rather shallow filters that might cause adverse effects in applications where e.g. steep high-pass filters are required, such as in preprocessing signals with a 1 Hz highpass filter for ICA fitting.").
Or put such a statement as a note in the filter docs. Or both. Had I known that MNE was using firwin2 earlier, this would have saved me at least 1 day of work (if not more) that it took me to find out why my ICs look so weird.

That sounds reasonable to me. Can you make a PR to add notes where you think it would help?

Done, please see #4461.


The system cannot find the path specified.

Trying to run this lesson on the Windows 8,
>scope-chains-closures causes:
The system cannot find the path specified.

Hmm, intersting. I've not tested it on Windows before.
In what shell environment are you running it (git-bash, mingw, etc)?

Just from windows command line. You want to say, that this lesson is platform dependent?

Hmm, tried to run it from module directory as node runner.js - and it seems to work fine.

I see. It creates scope-chains-closures.cmd with the following content
@IF EXIST "%~dp0\/bin/sh.exe" (   "%~dp0\/bin/sh.exe"  "%~dp0\node_modules\scope-chains-closures\runner.js" %* ) ELSE (   @SETLOCAL   @SET PATHEXT=%PATHEXT:;.JS;=;%   /bin/sh  "%~dp0\node_modules\scope-chains-closures\runner.js" %* )
sh.exe cannot, obviously be found

It, indeed, fixes the problem on windows:
https://github.com/andruhon/scope-chains-closures/commit/3a3f437c4eadce54d9686f829fc8353370c4cce5
So the hack described on http://sambal.org/?p=1014 gives with one hand, but takes crossplatformity with another. You, probably, need some workaround to make it work on windows with this hack.
Do you actually need this hack for this lesson? I think that this lesson supposed to be installed by newbies globally and npm will create sh file on installation. So, i think it is quite unlikely that someone will run it directly from shell.

Hi,
I've also had the same problem:
https://github.com/nodeschool/discussions/issues/1189

Thanks for investigating the issue everyone, I really appreciate the help. #4 fixed the issue, and it's now published in v1.0.3. Run npm install -g scope-chains-closures to update.


CPack usage

How do you think about to reuse the software "CPack"?

I strongly want to stay out of the library / pack / distribution business. Closing pending a strong and specific use case.

Would it be nice to distribute also this software by any of the supported package formats?

I don't mind if someone does the work to add functionality to the CMake script. I just don't want to have the responsibility of dealing with building / testing / being responsible for binary distributions. This project is focused on source code.


How to show different data-field in the 'completed' tab

As part of monitoring I'd love to see results of individual jobs. I imagine this must be possible by somehow altering what is shown in the data-field as part of the 'completed' tab.
How would I instruct bull to show custom data?
for ref:

hello, was on the same page as you. Trying to look at how to show the result.

hey, I can look into this implementing this feature! thanks for the suggestion!

hello @vcapretz I'm starting to use bull-board for a futur project and I'd like to be able to see this.
Can we help in any ways to help with that ?
Thanks

hey @gabrielstuff, sorry for the late reply, is your issue similar to #68?
I'm looking into that now because apparently to get more data we need a separate call, so I wondering if I should just go ahead and do it for every job or make it on a need to fetch basis, like a button requesting it or something.

btw, we changed things quite a bit in the alpha versions we have now, so hopefully, it's easier to contribute to the repo too 😄
for new fields to be shown what needs to be done is:

add it in the src/ui/components/constants.ts file
describe how it looks like in src/ui/components/Job.tsx
fix typings that might break
profit?

Hello @vcapretz thanks pretty clear. Are you working on it ? May I start ?

I did not start working on it 😅 feel free to do so and I will gladly assist you in the PR and getting it released, thank you!

@gebrits I will close it for now, if v1 doesn't solves it for you feel free to reopen the issue


Gulp + Browserify + Uglify + SourceMaps

I am using the recipe provided at gulp/docs/recipes/browserify-uglify-sourcemap.md however I can not get sourcemaps working with Browserify.
The sourcemaps that are generated do work however they take me from the uglified JS to the browserified JS. I want my source maps to take me to individual source files not my single browserified file.
I am not sure if this is how the recipe is meant to work. However from the description I got the impression that I'd be able to map from my minified JS to individual source files...

Support questions should be directed to StackOverflow.


Your library have problem when it is used inside the Django-Admin as Inline ( admin.TabularInline ), only detects initial drop-zones

Your library have problem when it is used inside the Django-Admin as Inline ( admin.TabularInline. etc) objects. New object that have FilerImage shows the drop-zone, but it does not work, it only works if i save the page first or i add this script:

with that script, it can suddenly receive file through drag and drop, BUT despite the success info, it actually fails, it does not send the data. But when i tried it again, it suddenly works. Basically the problems seems to be the drop-zone only "get" the initial drop-zones, dynamic drop-zones that are added are not "detected".
How do i fix this? thanks

It's fixed in #981

how do i use the fix? Thanks

thanks! i got it


Neovide will not run on NixOS

Describe the bug
I have installed Neovide through nixpkgs, and when I try to start it, it gives me this error:
Ignored client type property: "methods"
Ignored client type property: "attributes"
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

thread 'main' panicked at 'Could not create surface', src/renderer/rendered_window.rs:40:6
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

To Reproduce
Steps to reproduce the behavior:

nix-env -iA nixos.neovide
neovide

Expected behavior
Neovide begins running and opens a window.
Desktop (please complete the following information):

OS: NixOS unstable
Neovide Version: 0.7.0
Neovim Version:  0.5.0

Additional context
I have seen lots of people mentioning similar scenarios to this all over, and I was wondering if this issue varies case-by-case or if there had been any progress made on getting Neovide to work on nixos.

https://github.com/NixOS/nixpkgs/pull/127506 will fix the current issue.

if you think it's a nixos issue, you should report it there. I've just merged a neovide update in nixpkgs so you can try that instead, I know the recent neovide (~this week) fixed most of my issues, which were similar to what yo u faced. I think this can be closed.


Provide a way for users to see definitions for variable options (e.g., tool tip, hover state, etc)

We discussed implementing an alternate to hover state and tool tips. Potentially adding 'what does this mean?' next to the main variable options that would take the user to a separate tab with explanations for the variable options.


Double click "back" button

Description
Let's say I traverse the web in the following order
/  ->  /about -> /projects

Then my history stack will be
 ................
| /projects      |
| /about         |
| /              |
|................|

When I double-click the "back" button, the domain returns the / exactly, but the web returns to /about instead of returning to the / route, which causes wrong route mapping.
Actual style
If I double-click the "back" button, the web should return to the correct route.
Pre-observing

I have page transitions on each page, just wondering if it causes any problems with "back" :thinking:
Initially, there was a bug in Github pages with SPA (and React Router), which I got a 404 Github page every time clicking a "back" button. I solved it with this SPA with Github pages. Perhaps, it prevents me from going back rapidly. :thinking:

After the latest update the exit page transition was removed, hence this issue was resolved.


✨ LibSort difference, union, intersection

Kinda like set operations, but inputs and outputs are all sorted.
Does not need to check that inputs are sorted.
All operations must be O(n).
Anyone game, comment below.
Include variants for for uint, address, int.
Testing on address and int variants optional.
The tests would be interesting.  Thank you ChatGPT.
Anyway, just write it in assembly as much as possible.

Try the follow ChatGPT commands:
Write me a Solidity method to return the union of two sorted arrays.
Write me a Solidity method to return the difference between two sorted arrays.
Write me a Solidity method to return the intersection between two sorted arrays.

@Vectorized I am on it.


Use temporal formatter in the toArray() generator

Resolve conflicts in https://github.com/propelorm/Propel2/pull/1470

Codecov Report

Merging #1696 (8a88bcb) into master (a422bdd) will decrease coverage by 2.73%.
The diff coverage is 97.05%.

@@             Coverage Diff              @@
##             master    #1696      +/-   ##
============================================
- Coverage     88.15%   85.42%   -2.74%
- Complexity     7636     7653      +17
============================================
  Files           258      258
  Lines         21849    21874      +25
============================================
- Hits          19262    18686     -576
- Misses         2587     3188     +601

Flag
Coverage Δ
Complexity Δ

5-max
85.42% <97.05%> (-2.74%)
0.00 <12.00> (ø)

7.4
85.42% <97.05%> (-2.74%)
0.00 <12.00> (ø)

agnostic
73.35% <52.94%> (-0.04%)
0.00 <12.00> (ø)

mysql
?
?

pgsql
?
?

sqlite
68.14% <97.05%> (+0.04%)
0.00 <12.00> (ø)

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

Impacted Files
Coverage Δ
Complexity Δ

src/Propel/Runtime/ActiveQuery/ModelCriteria.php
94.75% <93.75%> (-0.17%)
283.00 <5.00> (+10.00)
:arrow_down:

src/Propel/Generator/Builder/Om/ObjectBuilder.php
93.88% <100.00%> (-0.51%)
627.00 <0.00> (ø)

...rc/Propel/Generator/Builder/Om/TableMapBuilder.php
95.37% <100.00%> (-0.08%)
159.00 <5.00> (+5.00)
:arrow_down:

src/Propel/Runtime/ActiveQuery/Criteria.php
89.24% <100.00%> (-0.74%)
347.00 <2.00> (+2.00)
:arrow_down:

src/Propel/Generator/Reverse/PgsqlSchemaParser.php
0.00% <0.00%> (-87.21%)
71.00% <0.00%> (ø%)

src/Propel/Generator/Reverse/MysqlSchemaParser.php
0.00% <0.00%> (-85.72%)
74.00% <0.00%> (ø%)

src/Propel/Runtime/Adapter/Pdo/PgsqlAdapter.php
2.59% <0.00%> (-55.85%)
34.00% <0.00%> (ø%)

src/Propel/Runtime/Adapter/Pdo/MysqlAdapter.php
41.30% <0.00%> (-36.96%)
23.00% <0.00%> (ø%)

.../Propel/Generator/Reverse/AbstractSchemaParser.php
50.00% <0.00%> (-22.50%)
20.00% <0.00%> (ø%)

src/Propel/Generator/Platform/PgsqlPlatform.php
82.50% <0.00%> (-15.00%)
123.00% <0.00%> (ø%)

... and 17 more

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 09dfb2f...8a88bcb. Read the comment docs.

Codecov Report

Merging #1696 (8a88bcb) into master (a422bdd) will decrease coverage by 2.73%.
The diff coverage is 97.05%.

@@             Coverage Diff              @@
##             master    #1696      +/-   ##
============================================
- Coverage     88.15%   85.42%   -2.74%
- Complexity     7636     7653      +17
============================================
  Files           258      258
  Lines         21849    21874      +25
============================================
- Hits          19262    18686     -576
- Misses         2587     3188     +601

Flag
Coverage Δ
Complexity Δ

5-max
85.42% <97.05%> (-2.74%)
0.00 <12.00> (ø)

7.4
85.42% <97.05%> (-2.74%)
0.00 <12.00> (ø)

agnostic
73.35% <52.94%> (-0.04%)
0.00 <12.00> (ø)

mysql
?
?

pgsql
?
?

sqlite
68.14% <97.05%> (+0.04%)
0.00 <12.00> (ø)

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

Impacted Files
Coverage Δ
Complexity Δ

src/Propel/Runtime/ActiveQuery/ModelCriteria.php
94.75% <93.75%> (-0.17%)
283.00 <5.00> (+10.00)
:arrow_down:

src/Propel/Generator/Builder/Om/ObjectBuilder.php
93.88% <100.00%> (-0.51%)
627.00 <0.00> (ø)

...rc/Propel/Generator/Builder/Om/TableMapBuilder.php
95.37% <100.00%> (-0.08%)
159.00 <5.00> (+5.00)
:arrow_down:

src/Propel/Runtime/ActiveQuery/Criteria.php
89.24% <100.00%> (-0.74%)
347.00 <2.00> (+2.00)
:arrow_down:

src/Propel/Generator/Reverse/PgsqlSchemaParser.php
0.00% <0.00%> (-87.21%)
71.00% <0.00%> (ø%)

src/Propel/Generator/Reverse/MysqlSchemaParser.php
0.00% <0.00%> (-85.72%)
74.00% <0.00%> (ø%)

src/Propel/Runtime/Adapter/Pdo/PgsqlAdapter.php
2.59% <0.00%> (-55.85%)
34.00% <0.00%> (ø%)

src/Propel/Runtime/Adapter/Pdo/MysqlAdapter.php
41.30% <0.00%> (-36.96%)
23.00% <0.00%> (ø%)

.../Propel/Generator/Reverse/AbstractSchemaParser.php
50.00% <0.00%> (-22.50%)
20.00% <0.00%> (ø%)

src/Propel/Generator/Platform/PgsqlPlatform.php
82.50% <0.00%> (-15.00%)
123.00% <0.00%> (ø%)

... and 17 more

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 09dfb2f...8a88bcb. Read the comment docs.

Based on initial 3 approvals I will merge this now.

Based on initial 3 approvals I will merge this now.


log.level setting is ignored

This version of prometheus seems to ignore log.level settings.
eg: Running prometheus-2.28.1-gmp.4 with below test config:
$ cat test.yaml
global:
  scrape_interval: 2s
scrape_configs:
- job_name: 'test_job'
  static_configs:
  - targets: ['non-exist-host:9090']

$ ./prometheus --log.level=error --config.file=./test.yaml
ts=2022-03-10T05:27:52.806Z caller=log.go:124 component="scrape manager" scrape_pool=test_job level=debug target=http://non-exist-host:9090/metrics msg="Scrape failed" err="Get \"http://non-exist-host:9090/metrics\": dial tcp: lookup non-exist-host on <IP_ADDRESS>:53: no such host"
ts=2022-03-10T05:27:54.600Z caller=log.go:124 component="scrape manager" scrape_pool=test_job level=debug target=http://non-exist-host:9090/metrics msg="Scrape failed" err="Get \"http://non-exist-host:9090/metrics\": dial tcp: lookup non-exist-host on <IP_ADDRESS>:53: no such host"
...
<keeps repeating every scrape interval>

Even though --log.level=error is used when running prometheus, it still logs debug messages: ... scrape_pool=test_job level=debug ...
If I use the official prometheus-2.28.1:
$ ./prometheus --log.level=error --config.file=./test.yaml

I don't see any debug logs.

I was confused first because I couldn't reproduce this in general for various debug log lines.
Causing that particular log line to trigger however, has the same issue for me.
Turns out apparently in our code the import path got renamed from github.com/go-kit/log/level to github.com/go-kit/kit/log/level`. Presmuably by some tool. So while the code is largely the same, this one isn't configured by the flags.
We'll fix this with the next release. Thanks for bringing this up.

Thanks and I do see bunch of matches:
$ grep -r go-kit/kit/log prometheus-2.28.1-gmp.4/
prometheus-2.28.1-gmp.4/scrape/scrape.go:	"github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/scrape/scrape.go:	"github.com/go-kit/kit/log/level"
prometheus-2.28.1-gmp.4/vendor/github.com/go-kit/kit/log/README.md:	kitlog "github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/github.com/go-kit/kit/log/README.md:Log levels are supported via the [level package](https://godoc.org/github.com/go-kit/kit/log/level).
prometheus-2.28.1-gmp.4/vendor/github.com/go-kit/kit/log/README.md:like improvements to [the leveled logger](https://godoc.org/github.com/go-kit/kit/log/level),
prometheus-2.28.1-gmp.4/vendor/github.com/go-kit/kit/log/README.md:- Be composable with [contextual loggers](https://godoc.org/github.com/go-kit/kit/log#With),
prometheus-2.28.1-gmp.4/vendor/github.com/go-kit/kit/log/README.md:- Not break the behavior of [log.Caller](https://godoc.org/github.com/go-kit/kit/log#Caller) in any wrapped contextual loggers, and
prometheus-2.28.1-gmp.4/vendor/github.com/go-kit/kit/log/level/level.go:import "github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/github.com/GoogleCloudPlatform/prometheus-engine/pkg/lease/lease.go:	"github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/github.com/GoogleCloudPlatform/prometheus-engine/pkg/export/setup/setup.go:	"github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/github.com/GoogleCloudPlatform/prometheus-engine/pkg/export/export.go:	"github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/github.com/GoogleCloudPlatform/prometheus-engine/pkg/export/export.go:	"github.com/go-kit/kit/log/level"
prometheus-2.28.1-gmp.4/vendor/github.com/GoogleCloudPlatform/prometheus-engine/pkg/export/series_cache.go:	"github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/github.com/GoogleCloudPlatform/prometheus-engine/pkg/export/series_cache.go:	"github.com/go-kit/kit/log/level"
prometheus-2.28.1-gmp.4/vendor/k8s.io/klog/README.md:in projects that use the [go-kit logger](https://godoc.org/github.com/go-kit/kit/log).
prometheus-2.28.1-gmp.4/vendor/k8s.io/klog/.errcheck_excludes:(github.com/go-kit/kit/log.Logger).Log
prometheus-2.28.1-gmp.4/vendor/k8s.io/klog/v2/klog.go:	"github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/k8s.io/klog/v2/klog.go:	"github.com/go-kit/kit/log/level"
prometheus-2.28.1-gmp.4/vendor/k8s.io/klog/klog.go:	"github.com/go-kit/kit/log"
prometheus-2.28.1-gmp.4/vendor/k8s.io/klog/klog.go:	"github.com/go-kit/kit/log/level"
prometheus-2.28.1-gmp.4/vendor/modules.txt:github.com/go-kit/kit/log
prometheus-2.28.1-gmp.4/vendor/modules.txt:github.com/go-kit/kit/log/level
prometheus-2.28.1-gmp.4/cmd/prometheus/main.go:	kitloglevel "github.com/go-kit/kit/log/level"
prometheus-2.28.1-gmp.4/.golangci.yml:      # - github.com/go-kit/kit/log: "Use github.com/go-kit/log instead of github.com/go-kit/kit/log"

We fixed the occurrence you mentioned for the next release, which is probably the main one with spam potential. We will change the one in our prometheus-engine dependency for the release after that.
The other ones you see there are beyond our control and Prometheus appears to do some shimming to handle that case.

That works, thanks!

I downloaded prometheus-2.28.1-gmp.5 and the log.level is working now. The ./prometheus --version still shows 2.28.1-gmp.4 probably because VERSION file didn't get updated.

Even though I set --log.level=error, I still see "info" logs every 10 min, not spamming but it shows log.level setting is not honored by gcm_exporter:
Mar 12 06:39:05 rls-a prometheus[2079932]: ts=2022-03-12T06:39:05.700Z caller=log.go:124 component=gcm_exporter level=info msg="garbage collection completed" took=155.996µs seriesPurged=0

I tried
find . -type f | xargs sed -i 's,go-kit/kit/log,go-kit/log,g'`

and rebuilt it, now gcm_exporter component honors log.level

Thanks for digging into this. The adjustment of dependencies in our prometheus-engine repo did not make it into the recent release. We'll update there and then with the next release, this will apply to the Prometheus binary as well.


typescript: workaround older es5 environments [phab:D1353]

Created by evmar at 2017-02-21 22:12:36:
for-of doesn't work on iterators in ES5 environments.
Work around this by adding a toArray helper.

zarko accepted this revision at 2017-02-21 22:27:01

zarko closed via commit 9e5b076177e8b45a79b086f8dd7f57e0689dd49a at 2017-02-21 22:28:13


fix: ci

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@91e6ff5). Click here to learn what that means.
 Consider uploading reports for the commit 66603b0 to get more accurate results

Additional details and impacted files
@@          Coverage Diff           @@
##             main     #19   +/-   ##
======================================
  Coverage        ?   8.91%
======================================
  Files           ?      82
  Lines           ?   12422
  Branches        ?       0
======================================
  Hits            ?    1108
  Misses          ?   11146
  Partials        ?     168

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

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


Auth.SignInAsync() - the SDK will not show the sign-in UI again

@amchew I am using Xamarin Forms.  In my iOS app it is prompting me with the sign-on UI every time I call Auth.SignInAsync.  It is behaving as expected in my Android app.  What am I missing in my iOS app?

Hi @rodbassatgatech, thanks for letting us know! We'll get back shortly. Apologies for missing this.

Hi @rodbassatgatech, we believe that you're seeing this error because there may be something missing in your Entitlements.plist file for build type and device for Debug/Release and iPhones/iPhone simulator combinations. May I check if you have done this step: https://docs.microsoft.com/en-us/appcenter/sdk/auth/xamarin#add-keychain-sharing-capability for all the Debug/Release and iPhones/iPhone simulator combinations?

Yes, that was it.  I had different settings for build/device combinations.  Thanks @amchew

No worries! :)


Fix instance label logic

In two places (AllocatorServiceImpl and ServiceDiscoveryServiceImpl),
we were using the label table instead of the label field on
instances, which is the source of truth. This lead to a race condition
where labels that allocation needed were not present.
Remove setlabels action. This was not backpopulating the
instance.labels field, which is the source of truth and we decided we
did not want to support it anymore.

LGTM, unless there are TFs

Looks like test_set_container_labels should be removed from v1 as well.


Completed download speed feature

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[x] Read adding new extractor tutorial
[x] Read youtube-dl coding conventions and adjusted the code to meet them
[x] Covered the code with tests (note that PRs without tests will be REJECTED)
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[ ] New extractor
[x] New feature

Description of your pull request and other information
calculating and adding the download speed to the last line of the youtube-dl output. Addressing issue # 31122 (https://github.com/ytdl-org/youtube-dl/issues/31122)
from this:
[download] 100% of x.xxMiB in yy:yy
to this:
[download] 100% of x.xxMiB in yy:yy at zzzKiB/s

Draft: Waiting on test cases. Test cases should be added to this before merging.


Ask for localization of docs

I think if we can localize these docs into other languages. So that even non-native English speaker (like me XD) can also help for supporting this project.
I can help to translate those into Chinese and Japanese.

I like the idea, but it would require a good bit of collaboration. Quisquous is able to ensure that people making changes to the English docs are saying exactly what they intend for the docs to say. (I know for myself there have been several times where I have reworded something but it was a mistake, and quisquous pointed that out at review.) None of our non-English contributors have that same level of familiarity with the project, and I'm relatively sure quisquous doesn't know all the languages represented here.
The other problem I can see is that there is no way to ensure that everyone who does doc translations would be able to do the translation quickly when the English docs are updated. And what do we do if there is just a minor update? It would get very hard, very fast, to ensure that all the docs in all languages say the same thing.
I'm not trying to say we should not do this, just that we have to be deliberate about how we approach it.

Well, I agree, I know that is hard to translate documents and keep it accurate. I did some translating work so I can understand.
But there're actually some fancy tools like GitLocalize, can help us to translate these docs, even on a minor update. I don't think it is impossible.
So maybe we can try to translate one version, for example into Chinese, since cactbot was popular in the Chinese server?

That's a good point about sizes of communities. Doing this specifically for one language, and noting that it clearly is an experiment, seems reasonable. Of course quisquous would have to sign off on that, but I understand your point better now.

Sorry for not responding to this sooner, I've been busy and haven't really had the time to think through everything.  I think translated docs will definitely make things more accessible for sure.  Let me take a look at GitLocalize and get back to you.


[SPARK-43413][SQL][FOLLOWUP] Show a directional message in ListQuery nullability assertion

What changes were proposed in this pull request?
In case the assert for the call to ListQuery.nullable is hit, mention in the assert error message the conf flag that can be used to disable the assert. Follow-up to https://github.com/apache/spark/pull/41094#discussion_r1195438179
Why are the changes needed?
Improve error message.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Unit tests

Thanks for comments, updated

Merged to master~


Can't see "last survey day" when zoomed in on hiking map.

When zoomed in at the route planner for hiking, the map "hangs" when trying to select "Date last survey" radio button. I can't see the nodes and links anymore and also cannot move the map.
This problem does not happen on the map for cycling.
I tried it both with Firefox and Chromium on the same computer.
Let me know if I need to provide additional information.

When going to the "analyzer" section of the website, I see "Sorry, cannot connect to server at this moment, please try again later. (502 - Bad Gateway)". Perhaps that's related to eachother. Might be a temporary problem.

Issue is gone. Might have been a temporary error.

@hgcvm thanks for reporting this problem
What you observed is correct: the server application was down for about 3 hours on Sunday (OutOfMemoryError). The "Date last survey" function needs information from the server and as such could not work properly during that time. However, the route planner should handle this situation more gracefully.  The planner should not hang but report server unavailability instead.
By the way: experimental.knooppuntnet.nl/be were still functional.
Following stack trace was generated in the browser:
TypeError: this.mapService.surveyDateInfo() is null
  at surveyColor(webpack:/src/app/components/ol/style/survey-date-style.ts:17:36)
  at nodeColor(webpack:/src/app/components/ol/style/main-map-node-style.ts:102:36)
  at determineLargeNodeStyle(webpack:/src/app/components/ol/style/main-map-node-style.ts:57:24)
  at determineNodeMainStyle(webpack:/src/app/components/ol/style/main-map-node-style.ts:48:20)
  at nodeStyle(webpack:/src/app/components/ol/style/main-map-node-style.ts:29:24)


[Bug]: inter-token latency is lower than TPOT in serving benchmark result

Your current environment
v0.5.2. vLLM env is not an issue so I will just skip the collection process
🐛 Describe the bug
I am running benchmark tests and notice one potential problem.
Seems the inter-token latency is lower than TPOT. Basically, inter-token latency takes TTFT into the consideration and should be higher than TPOT. However the data shows different result. I have not looked at the code yet and I will try to figure this out
root@fb5250e2ae4c:/workspace# python3 vllm/benchmarks/benchmark_serving.py     --backend vllm     --dataset-name sharegpt     --dataset-path ./ShareGPT_V3_unfiltered_cleaned_split.json     --model meta-llama/Llama-2-7b-chat-hf     --num-prompts 200     --endpoint /v1/completions     --tokenizer meta-llama/Llama-2-7b-chat-hf     --save-result     2>&1 | tee benchmark_serving.txt
Namespace(backend='vllm', base_url=None, host='localhost', port=8000, endpoint='/v1/completions', dataset=None, dataset_name='sharegpt', dataset_path='./ShareGPT_V3_unfiltered_cleaned_split.json', model='meta-llama/Llama-2-7b-chat-hf', tokenizer='meta-llama/Llama-2-7b-chat-hf', best_of=1, use_beam_search=False, num_prompts=200, sharegpt_output_len=None, sonnet_input_len=550, sonnet_output_len=150, sonnet_prefix_len=200, random_input_len=1024, random_output_len=128, random_range_ratio=1.0, request_rate=inf, seed=0, trust_remote_code=False, disable_tqdm=False, save_result=True, metadata=None, result_dir=None, result_filename=None)
Starting initial single prompt test run...
Initial test run completed. Starting main benchmark run...
Traffic request rate: inf
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 200/200 [01:12<00:00,  2.74it/s]s
============ Serving Benchmark Result ============
Successful requests:                     200
Benchmark duration (s):                  72.96
Total input tokens:                      49490
Total generated tokens:                  41078
Request throughput (req/s):              2.74
Input token throughput (tok/s):          678.34
Output token throughput (tok/s):         563.04
---------------Time to First Token----------------
Mean TTFT (ms):                          3594.18
Median TTFT (ms):                        3685.95
P99 TTFT (ms):                           7361.98
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          186.90
Median TPOT (ms):                        121.63
P99 TPOT (ms):                           966.47
---------------Inter-token Latency----------------
Mean ITL (ms):                           121.20
Median ITL (ms):                         92.91
P99 ITL (ms):                            310.89
==================================================

Observed similar results on my experiments. It seems like TPOT is calculated with the final "[Done]" latency included, as shown here. Would like some more explanation on the difference between these metrics.

Can confirm on my exps, especially for marlin24 model, ITL is much lower than TPOT, while TPOT for marlin24 is much higher than norm GPTQ model with marlin kernel.

check code here:  https://github.com/vllm-project/vllm/blob/a2469127db6144eedb38d0b505287c0044e4ce06/benchmarks/benchmark_serving.py#L271
the output len of TPOT calculation is based on tokenized len instead of real output token number from model, if the output is wrong, then output len is less than real output token number significantly, in norm case, they are close, if these 2 output lens are same, then TPOT is equal to ILT.

inter-token latency takes TTFT

@Jeffwan This is no longer the case and has been fixed by #7372.
The reason why we use separate calculations for TPOT is that sometimes ITL is not a reliable measure for the actual decoding performance. This is because sometimes multiple tokens can be bundled in one server-side event for certain backends/mechanism. Therefore we use the TPOT = (end-to-end latency - TTFT)/len(generated output token ids) as a proxy.

IMHO the way we are defining ITL here is not very useful and potentially confusing. I think we should report only TTFT and TPOT (in other cases ITL is a synonym for TPOT).
It's mostly irrelevant if we return n tokens per SSE, since if it takes e.g. 100ms to return 5 tokens you can just make use of one every 20ms after you receive them. The initial cost of waiting for all 5 is already captured in the TTFT time.

IMHO the way we are defining ITL here is not very useful and potentially confusing. I think we should report only TTFT and TPOT (in other cases ITL is a synonym for TPOT).
It's mostly irrelevant if we return n tokens per SSE, since if it takes e.g. 100ms to return 5 tokens you can just make use of one every 20ms after you receive them. The initial cost of waiting for all 5 is already captured in the TTFT time.

@njhill That's very true - @tlrmchlsmth and I agreed on adding this metric into the benchmark previously when vLLM strictly follows 1 token per SSE protocol. I do think ITL is still valid to keep if we go back to follow that protocol in the future, just so we can get a sense of how the distribution of all decoding operations in certain setup looks like.

@njhill, @ywang96 what do you think about renaming ITL (inter-packet latency?), and hiding it behind an option?
I think it's still a good QoS metric to keep track of, as jittery output generation is going to be a worse user experience than output tokens generated at a constant rate, and the fact that we currently return N tokens per multistep rather than one token at a time is a tradeoff that's worth exposing in our benchmarking scripts.  I agree that this is definitely confusing and less important than TPOT

I understand that the current naming of ITL might be causing some confusion. However, interpreting ITL as the inter-packet latency seems to contradict the problem mentioned here. If ITL measured here represents inter-packet latency, the TPOT should always be less than or equal to ITL, with equality occurring only in cases where single-step postprocessing is applied. This issue suggests the opposite, which is ITL is reported as smaller than TPOT, which indicates there may be a misunderstanding or an underlying issue worth investigating further in the benchmark script.

Actually maybe the variance rather than the mean which would make more sense for this purpose...

I see what you meant about it being captured in the TTFT now -- didn't understand that before but I agree that makes sense. BTW, isn't it partially captured in the TPOT as well, since you might wait an extra few steps after your final token?
I can throw up a PR to do the name change, and we can discuss further in there. Sounds good?

Thanks @tlrmchlsmth

isn't it partially captured in the TPOT as well, since you might wait an extra few steps after your final token?

Yes that's true, but I guess for larger numbers of tokens the amortized difference per token would be quite small.


How to "unset" boolean attributes using observables?

It's great that one can do DOM.div(; some_attr = o::Observable) in general. The problem is that with boolean attributes, every value sets it, so changing the observable does not do anything.
It may be better to have some special struct to unset it, say a struct UnsetAttribute end such that if  some_attr=UnsetAttribute(), then the attribute is not set. WebIO uses nothing for this, but in Hyperscript that means "set the attribute with no value".

closed in #35


async callback functions

I have a question re. the hiredis async library.   In particular the callback function associated with a redisAsyncCommand command.   I am doing the following in my application.
// Get a redis async connection
_redidContext =   redisAsyncConnect(“<IP_ADDRESS>”)
//Executes a redis “subscribe” command and specifies a callback function “subCallback” defined //elsewhere in the application
Status =   redisAsyncCommand(_redisContext, subCallback, (char*)”sub”, command.c_str());
I'm using the libEvent library to listen for messages published to a redis channel.  When they occur the callback function is executed.  My main question is "Does the callback function run in a separate thread or does it execute within the main thread of execution?"  My concern is that hiredis or libevent will create a new thread for this callback that executes concurrently with the application's main execution thread. Thus introducing possible concurrent processing problems.
The hiredis readme.md file reads Note: A redisAsyncContext is not thread-safe.   Maybe you could explain in a little more detail what is meant by this statement. But my understanding of this is if you have a multi-threaded application you cannot use a single  redis connection with more than one thread and be assured exclusive access at any one time to redis data by a single thread of execution.   My application is single threaded so I don’t expect this is a concern for me.   But maybe you could you confirm this for me?
Thank you,   Paul Barry

I haven't done much work with async hiredis but it is my understanding that everything will run on one thread unless you explicitely create the event loop in a different thread.
Take for example, this quick and dirty program:
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <hiredis/hiredis.h>
#include <hiredis/async.h>
#include <hiredis/adapters/libevent.h>

void subscribeCallback(redisAsyncContext *c, void *r, void *privdata) {
    redisReply *reply = r;
    if (reply && reply->type == REDIS_REPLY_ARRAY) {
        for (int i = 0; i < reply->elements; i++) {
            printf("reply->element[i] = ");
            switch (reply->element[i]->type) {
                case REDIS_REPLY_STRING:
                    printf("%s\n", reply->element[i]->str);
                    break;
                case REDIS_REPLY_INTEGER:
                    printf("%lld\n", reply->element[i]->integer);
                    break;
                default:
                    printf("OTHER TYPE (not handled)\n");
            }
        }
    }
}

int main (int argc, char **argv) {
    signal(SIGPIPE, SIG_IGN);
    struct event_base *base = event_base_new();

    printf("Our PID is: %d\n", getpid());

    redisAsyncContext *c = redisAsyncConnect("<IP_ADDRESS>", 6379);

    redisLibeventAttach(c,base);
    redisAsyncCommand(c, subscribeCallback, NULL, "SUBSCRIBE %s", "foo");
    event_base_dispatch(base);
    return 0;
}

This works to print published messages, and I only see a single thread:
➜  examples git:(master) ✗ ./asyncsubscribe
Our PID is: 696
reply->element[i] = subscribe
reply->element[i] = foo
reply->element[i] = 1

➜  ~ ps huH 696
mike       696  0.0  0.0  11180  1036 pts/4    S+   10:02   0:00 ./asyncsubscribe
➜  ~ ls /proc/696/task
696

thanks,
So the pid for the main thread is 696.  I don't see how this shows that the callback executes within the same thread though.  Shouldn't you also execute getpid() within the callback function to see if it's the same?

The PID and TID (thread id) are the same in main() and subscribeCallback().  You can check for yourself with this modified example.
Our PID is: 5751, TID: 5751
Callback PID: 5751, TID: 5751
reply->element[i] = subscribe
reply->element[i] = foo
reply->element[i] = 1

It would be highly inefficient for libevent to spawn a new thread per callback invocation.  That would defeat the whole purpose of an event loop! :smile:


Azure Databricks whitelist clarification

The document contains the phrase "All outbound and inbound traffic between the subnets and the Azure Databricks control plane must be whitelisted" but when we look into the "Whitelisting subnet traffic" table, there's no rule for allowing outbound traffic from the subnets to the Azure Databricks control plane. To me it seems that either the sentence is not completely accurate or something is missing in the table.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7f55990e-6e66-1568-a4ba-308bc8fec852
Version Independent ID: 66fd0a29-0db2-62e4-5285-2d19fab9680c
Content: Deploy Azure Databricks in your virtual network (Preview)
Content Source: articles/azure-databricks/vnet-injection.md
Service: azure-databricks
GitHub Login: @mamccrea
Microsoft Alias: mamccrea

@nunocenteno I have conferred with my colleague in networking, @TravisCragg-MSFT .  You are correct.  I will reach out to the product group  and/or author.  Thank you for bringing this to our attention, @nunocenteno .

@nunocenteno Thanks for the feedback! I have assigned the issue to the content author to review further and update the document as appropriate.

Hi @nunocenteno - thank you for  your feedback. The following table shows the outbound rules that need to be applied. I will update the doc to make it more clear.

#please-close

@nunocenteno We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


ENH: adds Redis support for fast in memory cache

Adds butler.memory, a Redis cache with fast in memory access.

Also adds butler.memory.lock.

Redis came from the large dataset encountered by @BhargavaA, the lock came from issues   of @sumeetsk.


Connections through HTTPS proxies with h2 alpn frequently stall

What version of V2Ray are you using?
V2Ray 4.44.0 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.17.3 linux/amd64)
What's your scenario of using V2Ray?
HTTPS (Secure Web Proxy / HTTP with TLS) proxy configured as outbound, with "security": "tls" streamSettings.
The proxy has TLS h2 apln support.
What problems have you encountered?
The connections via this proxy frequently stall. It's very unstable, 1/3 connection attempts either stall or fail.
When this proxy switched in http/1.1-only mode by adding "alpn": ["http/1.1"] to "tlsSettings", everything works fine without stalls.
There is somewhat similar but not exactly the same bug in curl, listed as KNOWN_BUG: https://github.com/curl/curl/issues/6936
This has nothing to do with v2ray, but it may give some hints.
How to reproduce

You'll need a HTTP(S) proxy with h2 support. h2 support could be provided by nghttpx.
Configure outbound with "protocol": "http", "streamSettings": {"security": "tls"}
Execute multiple requests over inbound in a row. It doesn't matter whether the requests go to HTTP or HTTPS website (unlike curl's bug), also h2 support for the destination does not matter.

What's your expectation?
v2ray correctly works with h2 tls http proxy servers.
Please attach your configuration here
Client configuration:
{
  "log": {
    "loglevel": "debug"
  },
  "inbounds": [{
    "port": 1080,
    "listen": "<IP_ADDRESS>",
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": false,
      "ip": "<IP_ADDRESS>"
    },
    "sniffing": {
      "enabled": true,
      "destOverride": ["http", "tls"]
    }
  }],
  "outbounds": [
  {
    "protocol": "http",
    "settings": {
      "servers": [{
        "address": "proxy-server.com",
        "port": 443,
        "users": [
          {
            "user": "xxxxxxxxxx",
            "pass": "xxxxxxxxxx"
          }
        ]
      }]
    },
    "streamSettings": {
      "security": "tls",
      "tlsSettings": {
        //"alpn": ["http/1.1"],
        "allowInsecure": true
      }
    }
  }
  ]
}

Please attach error logs here
Client error log:
V2Ray 4.44.0 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.17.3 linux/amd64)
A unified platform for anti-censorship.
2021/12/21 21:44:54 [Info] main/jsonem: Reading config: ./test.json
2021/12/21 21:44:54 [Debug] app/log: Logger started
2021/12/21 21:44:54 [Debug] app/proxyman/inbound: creating stream worker on <IP_ADDRESS>:1080
2021/12/21 21:44:54 [Info] transport/internet/tcp: listening TCP on <IP_ADDRESS>:1080
2021/12/21 21:44:54 [Warning] V2Ray 4.44.0 started
2021/12/21 21:44:55 [Info] [3480259294] proxy/socks: TCP Connect request to tcp:ifconfig.co:80
2021/12/21 21:44:55 [Info] [3480259294] app/dispatcher: sniffed domain: ifconfig.co
2021/12/21 21:44:55 [Info] [3480259294] app/dispatcher: default route for tcp:ifconfig.co:80
2021/12/21 21:44:55 tcp:<IP_ADDRESS>:51676 accepted tcp:ifconfig.co:80
2021/12/21 21:44:55 [Info] [3480259294] transport/internet/tcp: dialing TCP to tcp:proxy-server.com:443
2021/12/21 21:45:20 [Info] [3480259294] app/proxyman/outbound: failed to process outbound traffic > proxy/http: connection ends > context canceled
2021/12/21 21:45:20 [Info] [3480259294] app/proxyman/inbound: connection ends > proxy/socks: connection ends > context canceled

$ curl --proxy socks5h://<IP_ADDRESS>:1080 http://ifconfig.co
curl: (52) Empty reply from server

Note the timings. The proxy server is 100% stable and working (this is a commercial proxy, not v2ray, I don't know exact software), there's no issues when using http/1.1 alpn or empty "alpn": []. This is not due to traffic filtering/censorship.

Please reopen.

@ValdikSS For most of implementation, there is no websocket over http2.
Even Chrome says it ships websocket over http2, it doesn't at all.
(You can use wireshark to check, websocket in chrome only send http/1.1 with alpn.)

@liudongmiao, this is not a websocket, this is a HTTP(S) proxy.


Evanesco Network

Grant Application Checklist

[x] The application-template.md has been copied, renamed ( "project_name.md") and updated.
[x] A BTC address for the payment of the milestones is provided inside the application.
[x] The software of the project will be released under the Apache license version 2.0 as specified in the terms and conditions.
[x] The total funding amount of the project is below CHF 30k at the time of submission.

@eva-networks After reading your application, I still don't have a clear picture of what you want to develop. Also, why do you want to implement your own p2p library? There's an implementation already existing in Rust.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: adahanaresh:x: eva-networksYou have signed the CLA already but the status is still pending? Let us recheck it.

In this grant, we would implement a library which support the privacy network protocol, named P2Private, we rename it for the libpp2p is more missleading. With the protocol lib, the substrate node would perform like a private p2p servers and we create a client for user could test it on a limit-range test net. And also more details added so people may understand the development more easier.

Thanks for the open grants application. In general I’m willing to go ahead with it, but could you integrate unit-tests and an article/documentation according to the template: https://github.com/w3f/Open-Grants-Program/blob/master/applications/application-template.md

@Noc2  Thanks for notification, and the two sections have been added in application.

@BenWhiteJam thank you for your interest:

are you planning to send all the packages from a single request through the same hop topology or will they get split up into different routes?

After the connect created ,all packages would go through the same route, and the topology would be changed according to the arguments setup in the handshark action, if the requester want to thansfer lots of  packages, it would keep a long overdue, if request just want to send a short message, the topology would set to invalid in a shorter time.

what will be the IP seen by the request server? The last hop?

The request use a string id to identify others. If request hope to connect a specify peer, it should ask a access point node and then a Tor-like message tunnel would create between the two peers. so peers just know the IP of  adjacent points.

Hey @eva-networks, care to share a quick status update on your progress with the grant?

Hello @alxs, and  sorry for the later update on eva`s grant.

The Rust version privacy protocol client has completed the final self-test;
Create a Grant test network and the self-test almost completed, will formally submit the two milestones soon after the documents are ready.
Will launch test activities soon in our community.

Now all code open-source in https://github.com/Evanesco-Labs/WhiteNoise.rs  and https://github.com/Evanesco-Labs/WhiteNoise-For-Substrate

Thanks @eva-networks, looking forward to your delivery!


Unable to set 'Host' header

Unable to set 'Host' header
Expected outcome
What should happen?
Actual outcome
What happened?
Versions
App: 10.0.12
Platform: 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36
Steps to reproduce

This is fixed in Desktop application. Please, install new version from https://install.advancedrestclient.com/

Since Chrome apps are scheduled to be removed from Chrome very soon I will not fix this issue.


spotify crashes: libGL.so.1 missing symbol drmGetDevices2

Issue description
Spotify crashes on start because libGL is missing a symbol
Steps to reproduce
$ spotify
/home/gilligan/.nix-profile/bin/spotify: /nix/store/pklsbgqx7h471k4qf1asq353iqsqmbi2-spotify-<IP_ADDRESS>.g15edf1ec-94/lib/spotify/libssl.so.1.0.0: no version information available (required by /home/gilligan/.nix-profile/bin/spotify)
/home/gilligan/.nix-profile/bin/spotify: /nix/store/pklsbgqx7h471k4qf1asq353iqsqmbi2-spotify-<IP_ADDRESS>.g15edf1ec-94/lib/spotify/libcrypto.so.1.0.0: no version information available (required by /home/gilligan/.nix-profile/bin/spotify)
/home/gilligan/.nix-profile/bin/spotify: /nix/store/f5vcin9z7gi1q5y3i7r6c4gipiypsssl-curl-7.52.1/lib/libcurl.so.4: no version information available (required by /home/gilligan/.nix-profile/bin/spotify)
/home/gilligan/.nix-profile/bin/spotify: symbol lookup error: /run/opengl-driver/lib/libGL.so.1: undefined symbol: drmGetDevices2

Technical details

System: 17.09pre108553.0011f9065a (Hummingbird)
Nix version: 1.11.9
Nixpkgs version: 17.09pre108553.0011f9065a
Sandboxing enabled: no

This isn't limited to spotify - thunderbild also failed to start. I cannot update this now since I need to work.

This can most likely be worked around by updating the failing packages to your nixos version.  Handling impurities is just difficult.  Ref: https://github.com/NixOS/nixpkgs/issues/16779

@vcunat I'm sorry - i totally didn't notice that I had a different version installed in my user environment ;/
I wonder if it made sense to mention this in the issue reporting template? I can't be only one falling into this trap? Also I think this is not the first time I made this mistake..

NixOS/Nixpkgs tries hard to allow mixing different versions, but dependencies of impurely supplied libraries (such as libGL) are a tough nut.  We hope to overcome GPU-related ones via glvnd in future...


Allow config server to coalesce property sources

I wanted to see about the possibly of allowing the config server to coalesce property sources with the proper overrides. Say, for example, I wanted to configure global defaults and have them overridden by application-specific properties.
I make a request to /sample-app/local and get the following json payload:
{
    "name": "sample-app",
    "profiles": [
        "local"
    ],
    "label": "master",
    "propertySources": [
        {
            "name": "sample-app-local.yml",
            "source": {
                "port": "443"
            }
        }, {
            "name": "application.yml",
            "source": {
                "host": "imap.gmail.com",
                "port": "993"
            }
        }
    ]
}

On the client-side, I now have to build a properties map from the above resulting in the following properties:
host=imap.gmail.com
port=443

Instead of the client having to handle coalescing properties, can we have the config server serve them up with the proper overrides?
For example, something like this would be ideal, especially for clients that are not Spring applications and therefore do not implement spring-cloud-config-client:
{
    "name": "sample-app",
    "profiles": [
        "local"
    ],
    "label": "master",
    "propertySources": [
        {
            "name": "sample-app-local.yml",
            "source": {
                "port": "443"
            }
        }, {
            "name": "application.yml",
            "source": {
                "host": "imap.gmail.com",
                "port": "993"
            }
        }
    ],
    "coalesced": {
        "host": "imap.gmail.com",
        "port": "443"
    }
}

I'm operating under the assumption that when a key exists in both application.yml and sample-app-local.yml (port in the above example), that only those keys will be overridden and the global host key will still be part of the final "coalesced" configuration.

Two things, the config-client plugs those properties into the Spring Environment which gives you that exact thing. Also the config server has other api's that also coalesce and format.  From https://github.com/spring-cloud/spring-cloud-config/blob/master/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/EnvironmentController.java#L111-L178
They aren't documented really well and don't allow - in name or profile.
/{name}-{profiles}.properties
/{label}/{name}-{profiles}.properties
{name}-{profiles}.json
/{label}/{name}-{profiles}.json
/{name}-{profiles}.yml
/{name}-{profiles}.yaml
/{label}/{name}-{profiles}.yml
/{label}/{name}-{profiles}.yaml

Excellent, thanks for the prompt response @spencergibb


A pair of runtime::ttmetal CQExecutor buffer map improvements (#408)

Prevent duplicate Buffers from being created inside CreateBufferCommand handler by checking for existence in buffers umap.
Change to use buffers.erase() in DeallocateBufferCommand to actually remove the entry from buffers umap. Buffer will still be destroyed because it goes out of scope.
Neither of these help with the original segfault in this ticket but these were found through visual observation.

Heads up - @nsmithtt, I pushed commit just now to include a quick-and-dirty hack in ttmetal.h's createBufferFromTensorRef() (the OG source of headaches for this ticket) that avoids the segfault by "correcting" the address stroed in tt-metal's BUFFER_MAP, that I hope can be merged to hold us over until proper fix gets made in metal and intregrated here (which I worry might take a week or more). I made it in such a way that it would be harmless if the metal fix + uplift happens to show up unexpectedly and it's not removed, although I will definitely keep my finger on the pulse and not forget about this.   Original failing test added back to CI too.

CI failing with:
python: /__w/tt-mlir/tt-mlir/runtime/include/tt/runtime/types.h:51: T &tt::runtime::detail::RuntimeCheckedObjectImpl::as(DeviceRuntime) [T = std::vector<tt::tt_metal::Device *>]: Assertion `associatedRuntime == expectedRuntime && "Associated runtime does not match expected runtime of cast"' failed.

CI failing with:
python: /__w/tt-mlir/tt-mlir/runtime/include/tt/runtime/types.h:51: T &tt::runtime::detail::RuntimeCheckedObjectImpl::as(DeviceRuntime) [T = std::vector<tt::tt_metal::Device *>]: Assertion `associatedRuntime == expectedRuntime && "Associated runtime does not match expected runtime of cast"' failed.

Yeah... From offline chat with @jnie-TT and @tapspatel looks like ttrt-run is mixing ttnn and ttmetal binaries together but it's not being handled properly, I will have to keep test excluded for now I think, and open issue for ttrt change/fix with details.  Going to remove test change from this PR now if that helps to approve it.

Taking a look at the mixing runtimes issue: https://github.com/tenstorrent/tt-mlir/issues/563

fix merged: 19c54072584ae3ba0c5be20c536b3a82c1e42cab

Since Taps fixed mixing test issue , I'll add passing test back and try again with above fix and merge if good. @nsmithtt any other concerns here before you can approve?


Thanks.  In case anyone else is having this problem, there is apparently a conflict between the expressif ESP32 board libraries and the ESP8266 community ones.  Removing the latter fixed the problem.  I haven't dug into it deep enough to be more specific.

Thanks.  In case anyone else is having this problem, there is apparently a conflict between the expressif ESP32 board libraries and the ESP8266 community ones.  Removing the latter fixed the problem.  I haven't dug into it deep enough to be more specific.
Originally posted by @buteomont in https://github.com/nkolban/esp32-snippets/issues/253#issuecomment-462196655

I tried this but couldn't fix it
i'm getting the error
C:\Users\Rakshiiii\Documents\Arduino\libraries\AsyncTCP-master\src/AsyncTCP.h:26:10: fatal error: sdkconfig.h: No such file or directory
26 | #include "sdkconfig.h"
I installed the library from git repository of me-no-dev.
could you please help me out.
Some insights from you @me-no-dev would also be really great.


[dynamodb2] Support include projection on indexes

Adds support for INCLUDE projections for DynamoDB indexes, per https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Projection.html

Coverage decreased (-0.2%) to 94.05% when pulling 72d67199ba83e4ee6ed5a496d80b3065ce3ebcd6 on garrettheel:dynamodb2-support-include-projection-index into 5a2cbf1ecad4f56e75adcd2f177abed79bd7698c on spulec:master.

@bblommers apologies, CI took so long to begin that I lost track of this. I've pushed up a fix for the linter


Support GridClient types

a higher level on the grid needs to be implemented
Huly®: CRYST-470

Grid Machines Module supported


VS Code : Unable to deploy workflow from VS code to logic app.

Describe the Bug with repro steps

Create a new Logic App Project
Add a workflow to your local project
Open the workflow.json file in designer and author a new workflow
a. Add http request Trigger
b. Add a compose action here with custom text
c. Add a ServiceBus action. From the add new paramter dropdown add content and add random text in JSON format like {"a":"b"}
d. Add a send email action with the body being the output of the compose action (step b)
e. Add a new connection to your email action
f. Add http response action
Press F5 to build and run your project
Run the workflow
a. Open overview page. Right + Click on workflow.json file and "Overview"
b. Copy call back URL from the overview page
c. Send the http request POST via Postman and wait for the response
Refresh the overview page and your should see your local run
Open the monitoring view for your run from the overview page
Verify the run details and action inputs and output
Deploy to Azure
Enter the deploying logic app name
We need to get the next page to enter other details after entering the name.
Enter name of deploying logic app and details of logic app, deployment should be success.

Expected : Enter name of deploying logic app and details of logic app, deployment should be success.
Actual : Unable to deploy workflow from VS code to logic app getting this error
" 5:07:41 PM: Error: Error in creating access policy for connection in reference - 'office365-2'. Error: Error in getting connection - /subscriptions/@appsetting('WORKFLOWS_SUBSCRIPTION_ID')/resourceGroups/@appsetting('WORKFLOWS_RESOURCE_GROUP_NAME')/providers/Microsoft.Web/connections/office365-8. Error: The provided subscription identifier '@appsetting('WORKFLOWS_SUBSCRIPTION_ID')' is malformed or invalid.".
What type of Logic App Is this happening in?
Standard (VSCode)
Are you using Preview Designer or GA Designer
Preview
Workflow JSON
No response
Screenshots or Videos

Browser
VS Code
Additional context
Artifacts details:

VS Code extension:   vscode-azurelogicapps-2.18.0.vsix
NuGet package:  https://artprodeussu2.artifacts.visualstudio.com/A41bf5486-7392-4b7a-a7e3-a735c767e3b3/b32aa71e-8ed2-41b2-9d77-5bc261222004/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL21zYXp1cmUvcHJvamVjdElkL2IzMmFhNzFlLThlZDItNDFiMi05ZDc3LTViYzI2MTIyMjAwNC9idWlsZElkLzczNTE1ODYzL2FydGlmYWN0TmFtZS9kcm9wX2J1aWxkX0J1aWxkQXJ0aWZhY3RzX1dpbmRvd3M1/content?format=file&subPath=%2FMicrosoft.Azure.Workflows.WebJobs.Extension.1.23.1.nupkg
Extension Bundle (CDN URL): https://cdnforlogicappsv2.blob.core.windows.net/logicapps-vendortesting
Extension Bundle (Direct Download): https://cdnforlogicappsv2.blob.core.windows.net/logicapps-vendortesting/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Workflows/1.23.1/Microsoft.Azure.Functions.ExtensionBundle.Workflows.1.23.1_any-any.zip

Issue Repro in the latest request
Artifacts details:
1.VS Code extension:   vscode-azurelogicapps-2.18.1.vsix
2.NuGet package: https://artprodeussu2.artifacts.visualstudio.com/A41bf5486-7392-4b7a-a7e3-a735c767e3b3/b32aa71e-8ed2-41b2-9d77-5bc261222004/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL21zYXp1cmUvcHJvamVjdElkL2IzMmFhNzFlLThlZDItNDFiMi05ZDc3LTViYzI2MTIyMjAwNC9idWlsZElkLzczNTE1ODYzL2FydGlmYWN0TmFtZS9kcm9wX2J1aWxkX0J1aWxkQXJ0aWZhY3RzX1dpbmRvd3M1/content?format=file&subPath=%2FMicrosoft.Azure.Workflows.WebJobs.Extension.1.23.1.nupkg
3.Extension Bundle (CDN URL): https://cdnforlogicappsv2.blob.core.windows.net/logicapps-vendortesting
4.Extension Bundle (Direct Download): https://cdnforlogicappsv2.blob.core.windows.net/logicapps-vendortesting/ExtensionBundles/Microsoft.Azure.Functions.ExtensionBundle.Workflows/1.23.1/Microsoft.Azure.Functions.ExtensionBundle.Workflows.1.23.1_any-any.zip

I was able to repro this issue, I will update it once I fix it


Don't save active interpreter in kernel finder

For #11530

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] Has a news entry file (remember to thank yourself!).
[ ] Appropriate comments and documentation strings in the code.
[ ] Has sufficient logging.
[ ] Has telemetry for enhancements.
[x] Unit tests & system/integration tests are added/updated.
[ ] Test plan is updated as appropriate.
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).
[ ] The wiki is updated with any design decisions/details.

Hmm, some old commits are showing up in log again for some reason. Think I need to rebase my fork.

Codecov Report

Merging #11531 into master will decrease coverage by 0.02%.
The diff coverage is 71.42%.

@@            Coverage Diff             @@
##           master   #11531      +/-   ##
==========================================
- Coverage   60.46%   60.43%   -0.03%
==========================================
  Files         618      618
  Lines       33776    33774       -2
  Branches     4764     4763       -1
==========================================
- Hits        20421    20413       -8
- Misses      12347    12351       +4
- Partials     1008     1010       +2

Impacted Files
Coverage Δ

...client/datascience/kernel-launcher/kernelFinder.ts
63.96% <71.42%> (-0.64%)
:arrow_down:

src/datascience-ui/react-common/arePathsSame.ts
75.00% <0.00%> (-12.50%)
:arrow_down:

src/client/common/utils/platform.ts
64.70% <0.00%> (-11.77%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.66% <0.00%> (-2.23%)
:arrow_down:

src/client/datascience/debugLocationTracker.ts
76.56% <0.00%> (-1.57%)
:arrow_down:

src/client/common/process/proc.ts
14.49% <0.00%> (-0.73%)
:arrow_down:

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 87dd3d6...170850d. Read the comment docs.

Windows test failure is timeout


[ELE-533] Alert Suppression on test not suppressing

Describe the bug
When setting up an alert_suppression on a test , after getting one alert, before the suppression interval passes, another alert is sent.
To Reproduce
Steps to reproduce the behavior:

create a yaml config for the test as in appendix
run dbt and trigger a test failure
run edr - first alert gets sent
before suppression interval passed, run dbt and fail the test again, and run edr
See alert sent

Expected behavior
alert should have been suppressed
Additional context
raised in support https://elementary-community.slack.com/archives/C02CTC89LAX/p1678899661417579
example schema.yml file provided by user in slack (notice the model has multiple tests and only one is supposed to be suppressed)
version: 2

models:
  - name: users
    description: >
      bla
    tests:
      - elementary.volume_anomalies:
          tags: [ 'elementary' ]
          meta:
            description: "Monitor table row count"
          config:
            severity: warn
      - elementary.volume_anomalies:
          timestamp_column: 'signup_timestamp'
          meta:
            description: "Monitor number of signups based on signup date"
            alerts_config:
              alert_suppression_interval: 24
          tags: ['elementary']
          where_expression: "signup_timestamp is not null"
    columns:
      - name: blended_user_id

ELE-533

This was solved with Itamar in this slack thread.


Add support for Korea holidays

Copied from HongKong Holidays for Lunar calculation function.

Added Tests for each holidays
Works until 2099.

정말 감사합니다. 왜 우리나라만 없는가 했는데. 이렇게 직접 만들어주셨네요.
thx for your workday component code dr-prodigy, I wish Korean workday merge asap. : )

Hi, merged to beta branch. Thank you very much for your support!
dr-p

@1kko @dr-prodigy
Korean lunar calendar is differ from Chinese one.
Followings are the lists of differences between 1950 and 2050:
Lunar date: 1-1
Korea: 1916-02-04, China: 1916-02-03
Korea: 1944-01-26, China: 1944-01-25
Korea: 1954-02-04, China: 1954-02-03
Korea: 1958-02-19, China: 1958-02-18
Korea: 1966-01-22, China: 1966-01-21
Korea: 1988-02-18, China: 1988-02-17
Korea: 1997-02-08, China: 1997-02-07
Korea: 2027-02-07, China: 2027-02-06
Korea: 2028-01-27, China: 2028-01-26
Lunar date: 4-8
Korea: 1931-05-25, China: 1931-05-24
Korea: 1968-05-05, China: 1968-05-04
Korea: 2001-05-01, China: 2001-04-30
Korea: 2012-05-28, China: 2012-04-28
Korea: 2023-05-27, China: 2023-05-26
Lunar date: 8-15
Korea: 1942-09-25, China: 1942-09-24
Korea: 1978-09-17, China: 1978-09-16
Korea: 2040-09-21, China: 2040-09-20
And this is the script for generating:
`
from korean_lunar_calendar import KoreanLunarCalendar
from lunardate import LunarDate
for (m, d) in [(1, 1), (4, 8), (8, 15)]:
print('Lunar date: {}-{}'.format(m, d))
for y in range(1900, 2050):
calendar = KoreanLunarCalendar()
calendar.setLunarDate(y, m, d, False)
d1 = calendar.SolarIsoFormat()
    dd = LunarDate(y, m, d).toSolarDate()
    d2 = dd.strftime('%Y-%m-%d')

    if d1 != d2:
        print ('Korea: {}, China: {}'.format(d1, d2))`

@dr-prodigy Hi, I was wondering if I could import external library in this case. https://github.com/usingsky/korean_lunar_calendar_py/blob/master/korean_lunar_calendar/korean_lunar_calendar.py
Or should I just copy the part of code from the library?
Of course, I would ask for permission in latter case.

@chongdae
Thank you for your information.
I asked permission to have copy some part of his code from korean_lunar_calendar.
https://github.com/usingsky/korean_lunar_calendar_py/issues/2#issue-582166904
I made update to my repository meanwhile.
https://github.com/1kko/python-holidays
After getting the permission, I'll make push request to beta branch.

@1kko
Exceptioally, alternative holidays are also applied for Children's day in 2025 and 2044.
Buddha's day overlaps with Children's day.
May 6 become holidays in both cases.

Hey there @1kko of course, please go on and add import to that library! Especially because it seems very light and well designed.
I'll surely be glad to merge your work.. thank you very much, cheers!
dr-p

@chongdae Thank you for reporting. I'll try to fix it in next few weeks.

@chongdae I fixed Alternative Children's Day at #300
https://github.com/dr-prodigy/python-holidays/pull/300/commits/7088375b845de6c3af1dc18d681051bbf4d38ebd


Remove deprecated Error::description and Error::cause

Error::description has been documented as soft-deprecated since 1.27.0 (17 months ago). It is going to be hard-deprecated soon. Error::cause has been documented as deprecated from Error::cause has already been deprecated since 1.33.0.
This PR:

Removes an implementation of description
Removes an usage of description
Transforms cause into source

Related PR: https://github.com/rust-lang/rust/pull/66919

Thanks! Sorry for the long delay.


reformat reader.tsx

Think to reformat reader.tsx
in particularly with redux

planned in April with 1.5 release.
Issue too wide I'm closing it.


Update alpine base image into our docker images

The alpine base image that we use has security vulnerability:
newrelic/infrastructure-k8s:2.12.0 (alpine 3.15.4)
Total: 1 (CRITICAL: 1)
+----------+------------------+----------+-------------------+---------------+---------------------------------------+
| LIBRARY  | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION |                 TITLE                 |
+----------+------------------+----------+-------------------+---------------+---------------------------------------+
| freetype | CVE-2022-27404   | CRITICAL | 2.11.1-r0         | 2.11.1-r1     | FreeType: Buffer Overflow             |
|          |                  |          |                   |               | -->avd.aquasec.com/nvd/cve-2022-27404 |
+----------+------------------+----------+-------------------+---------------+---------------------------------------+

I cannot see any critical vulnerability in the infra-agent alpine image:
[root@rocky tmp]# trivy image newrelic/infrastructure
2022-05-12T09:12:00.866Z	INFO	Detected OS: alpine
2022-05-12T09:12:00.866Z	INFO	Detecting Alpine vulnerabilities...
2022-05-12T09:12:00.869Z	INFO	Number of language-specific files: 5
2022-05-12T09:12:00.869Z	INFO	Detecting gobinary vulnerabilities...

newrelic/infrastructure (alpine 3.15.4)
=======================================
Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)

Is freetype included while building newrelic/infrastructure-k8s ?


How disable logger in ws?

[11:37:03] INFO [binance_client_protocol]         binance_client_protocol.py:40
Received Ping from server
[11:37:03] INFO [binance_client_protocol]         binance_client_protocol.py:42
Responded Pong to server
[11:37:04] INFO [binance_client_protocol] Server  binance_client_protocol.py:16
connected
[11:37:04] INFO [binance_client_protocol] Sending binance_client_protocol.py:18
message to Server: b'{"method": "SUBSCRIBE",
"params": ["fttusdt@kline_1h"], "id": 123}'
[11:37:04] INFO [binance_socket_manager]           binance_socket_manager.py:42
Connection with URL: wss://fstream.binance.com/ws
[11:37:04] INFO [binance_client_factory] Start to  binance_client_factory.py:23
connect....

how disable info logs in ws?

It's not skip the INFO logs, however you could set the log level to WARNING to skip.

It turned out that it is possible, but the solution is not the best and there is duplication of messages.
class CustomLogHandler(logging.Handler):
    def emit(self, record):
        if 'binance_' not in record.filename:
            print(self.format(record))
....
self.log.addHandler(CustomLogHandler())


feat: add a spinner to the auto import alert

the message that's displayed when a repo auto import is running for the first time.
Closes #345

The spinner is quite subtle on the right, maybe we could add a Loader variant to the Alert component, like this?

@emilyvandewalle yep you're right - a Loader variant to the Alert component would be great here. In fact, I was thinking that the Alert component should let the icon be any DOM element (or React component) vs relying the variant to drive that. So maybe the default is set according to the variant, but it can be overridden by an icon prop. What do you think @german-mergestat?
I will open a ticket in block

This PR: https://github.com/mergestat/blocks/pull/78 should enabled this

Latest commit refactors to look like this:

@emilyvandewalle @german-mergestat


Log the magic bytes if an image fails to load

Often, on the raylib discord server, people try to load things like jpg renamed to png, which obviously doesn't work. Adding this log will allow easier identification of when this is happening.

Would it not be better to check if the extension is PNG and the magic bytes are not correct and tell the user the file is not a PNG? That would be a more direct error messages for people who are not well versed in the data format for images.

LoadImage handles more than just PNG, so I'd have to get a list of magic bytes for all file formats to compare, which is more effort

you can show what you show now for non PNG use cases. I think this PNG thing is common now, so putting a little effort into making a better message for that one case will provide a lot of help. It does not have to be perfect for every file type, but doing something for common cases would be good.

I'm afraid I'm not adding this trace, users should be owners of the external data provided to the library, also, logging it would imply logging all loaded files for consistency.


feat: add album/artist filtering to run command

I reckon this closes #15

Heh, so, when I wrote this code I thought "huh, is_none_or is cool and expressive! Why on earth did I not use this in the past?". Well, that might be because it was stabilized rather recently. I can update the code to run on an older Rust compiler, but since this is an application binary and not a library crate, I wonder what you think about bumping the MSRV to 1.82.0?

I also think it's worth setting an explicit MSRV and ensuring that CI consistently builds with this, as you can see the Windows build passed because it's just installing stable (and thus 1.83.0)

Yeah that's a good idea. Also funny that I started work on this myself a bit ago but got distracted for a while lol. Thanks for picking it up.

As someone who's life is a fractal of endless distractions, I can 100% relate ;)
I'll push some more commits to this PR to do the needful toolchain updates in CI imminently.

I'm a total Nix n00b but I managed to faceroll the keyboard far enough to run the Determinate installer and do a nix flake update, which hopefully gets the build passing in CI as it did locally. And it 100% totally will, since that's kinda the point of Nix, right? xD


socker.leave BUG!!

when i use socket.leave i will see the => io.sockets.adapter
it's sids and rooms still remain
i think it should be remove

ex; i use socket.leave(roomname)
rooms:
{ '1': { glWpN73i15LcIfgXAAAA: true },
glWpN73i15LcIfgXAAAA: [ glWpN73i15LcIfgXAAAA: true ],
MCgNc6Na7BW2I9F_AAAB: [] }, <= still have
sids:
{ glWpN73i15LcIfgXAAAA: { '1': true, glWpN73i15LcIfgXAAAA: true },
MCgNc6Na7BW2I9F_AAAB: {} },<= still have
when MCgNc6Na7BW2I9F_AAAB is close chrome, it still here ......
should remove when leave
delete io.sockets.adapter.sids[socket.id]
delete io.sockets.adapter.rooms[socket.id]

Should be cleaned after a recent-ish patch: https://github.com/Automattic/socket.io-adapter/blob/e66ea47c80539d6b9d9dac636e8edae9075f4486/index.js#L66

thank you!


Custom help response

Create a custom help command/help output for the bot. The embed should be cleaner than the default and color coded.

Can you assign this to me I would love to work

@fisher60 Can you check this. So that I can create a PR

Oh wow you work fast, haha. That looks awesome.

What else should be Added. Any requirements?

Realistically the goal for this issue was just to get something that was not painful to look at. You went above and beyond. Feel free to add anything you think is useful for the command.

Yah exactly, I taught this is looks clean and neat. I just want to confirm that I didn't miss any command of the bot. So that I can PR for a check and then can be Merged

Pretty sure that is all of them, go ahead and open a PR.

I have Created a PR. have a look and approve it.


Fail to reproduce multiple videos on Android

When multiple videos are added (more than 3 in my experience) just one video is reproduced while the others stay paused. Anyone knows how to address that?

@MateusZitelli can you explain what you mean by "reproduced"

Ops, false cognates mistake. When I say "reproduced" I mean played. The problem happens when I have multiple players on the same view playing different videos.

So this is because of linux decoder, which may should really only be used for 1 video at a time... any more and your risking issues like this. Just a limitation of the platform as far as I am aware (someone please let me know if my info is outdated, I lean more to iOS dev personally). To do something more would require a VERY custom FFMpeg + OpenGL renderer setup

sorry to open this but I want to add something to this topic. This might not be OS related as it reproduces both devices and emulators.
I also run into the issue were I created multiple player on screen but only one player was able to play content. Pressing play on one player would pause the other.
Turns out this was because audio focus was preventing multiple audio source to play in the same time, even when I had all of my player muted!  Adding disableFocus={true} fixes the issue , now all players can run in the same time!

Thanks for this @mirceaciu !!