BUG: power_divergence is raising on master when it does not in 1.6 or earlier

My issue is about a bug appearing in the unreleased SciPy  1.7.0.dev0+9b9f2e8. This is appearing in the statsmodels pip-pre run.
Reproducing code example:

from numpy import array
from scipy import stats

f_obs = array([44, 74, 48, 24,  8,  2])
f_exp = array([43.93623589, 71.60431015, 52.20297275, 23.22015199,  7.16316534,
        1.59334208])
chi2 = stats.chisquare(f_obs , f_exp )

Error message:
>               raise ValueError(msg)
E  ValueError: For each axis slice, the sum of the observed frequencies must agree with the sum of the expected
E frequencies to a relative tolerance of 1e-08, but the percent differences are:
E  0.0014010692380163618

Scipy/Numpy/Python version information:

The full log of the run showing the error in power_divergence:
statsmodels-pip-pre-log.txt

The full log of the run showing the error in power_divergence:
statsmodels-pip-pre-log.txt

blame 5fb232730b41b60a79f822db7fd47909dd5f6947

blame 5fb232730b41b60a79f822db7fd47909dd5f6947

xref #13193

xref #13193

Check the sums of your observed and expected arrays:
In [136]: f_obs = array([44, 74, 48, 24,  8,  2])
     ...: f_exp = array([43.93623589, 71.60431015, 52.20297275, 23.22015199,  7.16316534,
     ...:         1.59334208])

In [137]: f_obs.sum()
Out[137]: 200

In [138]: f_exp.sum()
Out[138]:<PHONE_NUMBER>0000002

They are not the same.  This check was added in https://github.com/scipy/scipy/pull/13193.  For meaningful results, the sums should be the same.  The addition of the check is, in effect, a bug fix, and it will prevent users from getting questionable results from data where the sums are not the same.

Check the sums of your observed and expected arrays:
In [136]: f_obs = array([44, 74, 48, 24,  8,  2])
     ...: f_exp = array([43.93623589, 71.60431015, 52.20297275, 23.22015199,  7.16316534,
     ...:         1.59334208])

In [137]: f_obs.sum()
Out[137]: 200

In [138]: f_exp.sum()
Out[138]:<PHONE_NUMBER>0000002

They are not the same.  This check was added in https://github.com/scipy/scipy/pull/13193.  For meaningful results, the sums should be the same.  The addition of the check is, in effect, a bug fix, and it will prevent users from getting questionable results from data where the sums are not the same.

The addition of the check is, in effect, a bug fix, and it will prevent users from getting questionable results from data where the sums are not the same.

I don't see anything in the definition of Pearson's test statistic that requires the that actual and expected number are the same.  In large samples when the observed differ from the expected it will eventually always reject.
https://en.wikipedia.org/wiki/Pearson's_chi-squared_test
This fix appears to be wrong at least for the Pearson test (chisquare) which lead to this error being detected.

The addition of the check is, in effect, a bug fix, and it will prevent users from getting questionable results from data where the sums are not the same.

I don't see anything in the definition of Pearson's test statistic that requires the that actual and expected number are the same.  In large samples when the observed differ from the expected it will eventually always reject.
https://en.wikipedia.org/wiki/Pearson's_chi-squared_test
This fix appears to be wrong at least for the Pearson test (chisquare) which lead to this error being detected.

@bashtage at that article, I see:

In this context, the frequencies of both theoretical and empirical distributions are unnormalised counts, and for a chi-squared test the total sample sizes N of both these distributions (sums of all cells of the corresponding contingency tables) have to be the same.

Is there a different context in which the unnormalized counts do not have to be the same for the test to make sense?
@sam-data-guy you brought this up in gh-12282. Thoughts on this?

@bashtage at that article, I see:

In this context, the frequencies of both theoretical and empirical distributions are unnormalised counts, and for a chi-squared test the total sample sizes N of both these distributions (sums of all cells of the corresponding contingency tables) have to be the same.

Is there a different context in which the unnormalized counts do not have to be the same for the test to make sense?
@sam-data-guy you brought this up in gh-12282. Thoughts on this?

I don't think so.  The whole point of comparing observed and expected
totals is that they represent different alternatives under the assumption
that the frequencies sum to the same.
First of all, if you go to the description of the chi square test (
https://en.wikipedia.org/wiki/Chi-squared_test), under "Pearson chi squared
test", it mentions that the sum of the observed x_i frequencies and m_i
have to be equal.  Similarly, the chisqure test here calls the
power_divergence function, which also says "Also, the sum of the observed
and expected frequencies must be the same for the test to be valid;
power_divergence raises an error if the sums do not agree within a
relative tolerance of 1e-8."  As line 6353 of
https://github.com/scipy/scipy/blob/master/scipy/stats/stats.py shows, it
does the check for tolerance mentioned above.  I'm not sure whether the
feature to power_divergence was added after my note.
So if the code works as expected, the above check on the relative_diff in
power_divergence should stop the error.  If I wasn't getting it originally,
does that mean that the check on the tolerance was added afterwards?
On Fri, Jan 22, 2021 at 8:59 AM Matt Haberland<EMAIL_ADDRESS>wrote:

@bashtage https://github.com/bashtage at that article, I see:
In this context, the frequencies of both theoretical and empirical
distributions are unnormalised counts, and for a chi-squared test the total
sample sizes N of both these distributions (sums of all cells of the
corresponding contingency tables) have to be the same.
Is there a different context in which the unnormalized counts do not have
to be the same for the test to make sense?
@sam-data-guy https://github.com/sam-data-guy you brought this up in
gh-12282 https://github.com/scipy/scipy/issues/12282. Thoughts on this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-765180892, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDLVIP74TX7JVWMY7LTS3EO6HANCNFSM4VZL2FNQ
.

I don't think so.  The whole point of comparing observed and expected
totals is that they represent different alternatives under the assumption
that the frequencies sum to the same.
First of all, if you go to the description of the chi square test (
https://en.wikipedia.org/wiki/Chi-squared_test), under "Pearson chi squared
test", it mentions that the sum of the observed x_i frequencies and m_i
have to be equal.  Similarly, the chisqure test here calls the
power_divergence function, which also says "Also, the sum of the observed
and expected frequencies must be the same for the test to be valid;
power_divergence raises an error if the sums do not agree within a
relative tolerance of 1e-8."  As line 6353 of
https://github.com/scipy/scipy/blob/master/scipy/stats/stats.py shows, it
does the check for tolerance mentioned above.  I'm not sure whether the
feature to power_divergence was added after my note.
So if the code works as expected, the above check on the relative_diff in
power_divergence should stop the error.  If I wasn't getting it originally,
does that mean that the check on the tolerance was added afterwards?
On Fri, Jan 22, 2021 at 8:59 AM Matt Haberland<EMAIL_ADDRESS>wrote:

@bashtage https://github.com/bashtage at that article, I see:
In this context, the frequencies of both theoretical and empirical
distributions are unnormalised counts, and for a chi-squared test the total
sample sizes N of both these distributions (sums of all cells of the
corresponding contingency tables) have to be the same.
Is there a different context in which the unnormalized counts do not have
to be the same for the test to make sense?
@sam-data-guy https://github.com/sam-data-guy you brought this up in
gh-12282 https://github.com/scipy/scipy/issues/12282. Thoughts on this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-765180892, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDLVIP74TX7JVWMY7LTS3EO6HANCNFSM4VZL2FNQ
.

If I wasn't getting it originally, does that mean that the check on the tolerance was added afterwards?

Yes, we added the check on the tolerance in response to your issue gh-12282.
If we're still in agreement that this is the right thing to do, we should add that language about the tolerance to chisquare

If I wasn't getting it originally, does that mean that the check on the tolerance was added afterwards?

Yes, we added the check on the tolerance in response to your issue gh-12282.
If we're still in agreement that this is the right thing to do, we should add that language about the tolerance to chisquare

Sounds like a good idea.
On Mon, Jan 25, 2021 at 7:55 AM Matt Haberland<EMAIL_ADDRESS>wrote:

If I wasn't getting it originally, does that mean that the check on the
tolerance was added afterwards?
Yes, we added the check on the tolerance in response to your issue
gh-12282 https://github.com/scipy/scipy/issues/12282.
If we're still in agreement that this is the right thing to do, we should
add that language about the tolerance to chisquare
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-766562392, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDPVOTL5YGKNMB5FNGLS3UBURANCNFSM4VZL2FNQ
.

Sounds like a good idea.
On Mon, Jan 25, 2021 at 7:55 AM Matt Haberland<EMAIL_ADDRESS>wrote:

If I wasn't getting it originally, does that mean that the check on the
tolerance was added afterwards?
Yes, we added the check on the tolerance in response to your issue
gh-12282 https://github.com/scipy/scipy/issues/12282.
If we're still in agreement that this is the right thing to do, we should
add that language about the tolerance to chisquare
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-766562392, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDPVOTL5YGKNMB5FNGLS3UBURANCNFSM4VZL2FNQ
.

"Also, the sum of the observed and expected frequencies must be the same for the test to be valid;

The problem with this statement is that validity is only something that one can assert under the null, not the alternative. This doesn't require that the number of observations is identical when the null is false.

do you still think this behavior is wrong, or do you think it is more appropriate to update the test in statsmodels?

I think the tolerance check is fundamentally wrong, at least as an Exception. A warning that the data likely doesn't satisfy something the user intended seems like a much more reasonable approach since determining criteria for "validity" are only relevant under the null hypothesis, where this could not be the case.

I would not suggest altering the users' inputs either.  Just a warning that the inputs do not satisfy the usual condition that they should sum to the same within some tolerance.

" The problem with this statement is that validity is only something that
one can assert under the null, not the alternative."
Your statement doesn't make sense to me. Validity of inputs is something
that has to do with the test, not whether the null or alternative
hypotheses are true.  Validity has to do with the requirements/assumptions
of the test, not with how likely the values are to occu.  For instance, all
the observed and expected values have to be non-negative as well.  This is
an input requirement.  It's true that one or the other may be true, but
inputs need to be valid in order to conduct the test and return a result
that makes sense.  The chi square test determines something about how
likely the observed frequencies are to have have happened given the
expected ones.  As I showed before, if the observed are rescaled by a
constant, the resulting p-value is different.  If you check at
https://en.wikipedia.org/wiki/Chi-squared_test, where x_i are the observed
and m_i are expected, they have to sum to the same.  That is simply a
requirement of the test.
On Wed, Feb 24, 2021 at 3:15 PM Kevin Sheppard<EMAIL_ADDRESS>wrote:

I would not suggest altering the users' inputs either. Just a warning that
the inputs do not satisfy the usual condition that they should sum to the
same within some tolerance.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-785066695, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDIREYBKZFW37LTWCHDTAT3XTANCNFSM4VZL2FNQ
.

Your statement doesn't make sense to me. Validity of inputs is something that has to do with the test, not whether the null or alternative hypotheses are true.

This is not true in frequentist hypothesis testing (in general).  The hypothesis testing procedure, including the sampling distribution, has its properties determined when the null hypothesis is true.  In almost all cases that use an asymptotic distribution (as is the case here), the behavior under the alternative is not specified other than a statement that the statistic diverges when the null is not true (i.e., the test is consistent) as the sample size increases.

Validity has to do with the requirements/assumptions of the test, not with how likely the values are to occu.

The requirements of the test are determined when the null is true, and so only need to hold when the null holds.

The chi square test determines something about how likely the observed frequencies are to have have happened given the expected ones.

I agree with this, and it only has a chi-square distribution when both the same sizes and probabilities of each category are equal.  If either of these two conditions are not satisfied, then the statistic does not have a chi-square (which is perfectly fine and expected)

As I showed before, if the observed are rescaled by a constant, the resulting p-value is different.

Of course. These are different points under the alternative, and so should not have the same p-value.

That is simply a requirement of the test.

It is a requirement under the null. If when null is false, they don't have to be the same.

" It is a requirement under the null. If when null is false, they don't
have to be the same."  ---Again, this statement doesn't make sense.  The
function is conducting the frequentist statistical test.  The property we
are talking about, that is, that the values have to sum to the same, is
about what are the valid inputs.  Yes, of course the distribution of values
in the observed does not have to follow the distribution specified by the
null.  But it DOES have to have valid values to compare to what would be
true under the null.  You might as well say it can have a different number
of entries (which it can't) and say it doesn't have to be the same
distribution.  When you say the distribution can differ from the null, this
is in terms of the underlying proportions in each category differing from
those expected (that is, the null).  But the totals have to be the same.
On Wed, Feb 24, 2021 at 4:13 PM Kevin Sheppard<EMAIL_ADDRESS>wrote:

Your statement doesn't make sense to me. Validity of inputs is something
that has to do with the test, not whether the null or alternative
hypotheses are true.
This is not true in frequentist hypothesis testing (in general). The
hypothesis testing procedure, including the sampling distribution, has its
properties determined when the null hypothesis is true. In almost all cases
that use an asymptotic distribution (as is the case here), the behavior
under the alternative is not specified other than a statement that the
statistic diverges when the null is not true (i.e., the test is consistent)
as the sample size increases.
Validity has to do with the requirements/assumptions of the test, not with
how likely the values are to occu.
The requirements of the test are determined when the null is true, and so
only need to hold when the null holds.
The chi square test determines something about how likely the observed
frequencies are to have have happened given the expected ones.
I agree with this, and it only has a chi-square distribution when both the
same sizes and probabilities of each category are equal. If either of these
two conditions are not satisfied, then the statistic does not have a
chi-square (which is perfectly fine and expected)
As I showed before, if the observed are rescaled by a constant, the
resulting p-value is different.
Of course. These are different points under the alternative, and so should
not have the same p-value.
That is simply a requirement of the test.
It is a requirement under the null. If when null is false, they don't have
to be the same.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-785103528, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDJL2TQXSOWCEAWORLDTAUCPZANCNFSM4VZL2FNQ
.

Again, this statement doesn't make sense.  The
function is conducting the frequentist statistical test.  The property we
are talking about, that is, that the values have to sum to the same, is
about what are the valid inputs.

The test is whether two sequences are equal.  That is it.

But it DOES have to have valid values to compare to what would be
true under the null.  You might as well say it can have a different number
of entries (which it can't) and say it doesn't have to be the same
distribution.

If it has a different number of entries then presumable the p-value should be 0 since the null cannot be true.

When you say the distribution can differ from the null, this
is in terms of the underlying proportions in each category differing from
those expected (that is, the null).

The Pearson test is in a joint test that the number of observations is the same and the probabilities are identical.  If you take a sequence where p_i is the same for both O and E but the number of N_O/N_E -> lambda != 1 then the test statistic diverges.  If you set N_O/N_E = 1 and let p_O_i != p_E_i for some i, then the test diverges.  It is consistent against either violation.  It only has a chi-square distribution when both N_O/N_E=1 and p_O_i = p_E_i for all i. This is precisely the reason why it should be allowed to have N_O != N_E.

In the traditional interpretation of the test it compares distributions, but the computation just compares counts.
E,g, in the failing test case in statsmodels I was comparing expected versus truncated counts, where the truncation probability was 1e-4 or something like that.
I was just being lazy when writing the unit test, but the null hypothesis was not rejected, the truncated counts where still close enough to expected counts.
The main point is that either an exception or a warning prevents user error.
A few days ago, I made a mistake with numpy multinomial using cdf instead of pmf, and because of the exception I found the mistake right away.

" If it has a different number of entries then presumable the p-value
should be 0 since the null cannot be true."
No, again.  If you give two inputs that are incompatible from the point of
view of the test, and you return a p-value, this implies that the test was
performed correctly (i.e., with compatible inputs) and that the p-value
actually means the value 0.  If the inputs are incompatible, the test
cannot be conducted.  A p-value of 0 implies a probability of 0, which is
not the correct thing to return.  This is particularly true because you
ALSO return a test statistic.  Now, you can't say that the test statistic
has any meaning if the inputs are incompatible, and therefore the p-value
calculated from it is meaningless and not 0-value; for instance, you can
have two different (illegal) test statistics which would have the same
p-value of 0 (because the inputs are incompatible), which is nonsensical
since two nonequal statistics can't (exactly) the same p-value in this
case.  So the p-value is not a real probability.
Just curious, it seems to me like you guys are still debating what to even
do about this---Kevin seems to think it works fine.  What is still the
debate?
On Wed, Feb 24, 2021 at 4:43 PM Josef Perktold<EMAIL_ADDRESS>wrote:

In the traditional interpretation of the test it compares distributions,
but the computation just compares counts.
E,g, in the failing test case in statsmodels I was comparing expected
versus truncated counts, where the truncation probability was 1e-4 or
something like that.
I was just being lazy when writing the unit test, but the null hypothesis
was not rejected, the truncated counts where still close enough to expected
counts.
The main point is that either an exception or a warning prevents user
error.
A few days ago, I made a mistake with numpy multinomial using cdf instead
of pmf, and because of the exception I found the mistake right away.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-785123728, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDPAREL5IO2JJEWB6UTTAUF77ANCNFSM4VZL2FNQ
.

I'm closing this. I think the issue is settled.
A tight tolerance prevents us from ignoring negligible (1e-5) terms and so it is more work.
But I had again a case where I used the wrong variable, and with the exception I found the mistake much faster.
I guess almost all cases where the counts don't add up to the same number are either sloppy (at larger tolerance) or user mistakes, so the exception is useful. (even if rejection of the null hypothesis could be justified by unequal count sums)

Folks, for instance, for this stats.chisquare([214598,241153],[227877,227877]), both vectors sum up to 455754, but I get this error:
For each axis slice, the sum of the observed frequencies must agree with the sum of the expected frequencies to a relative tolerance of 1e-08, but the percent differences are:
6.582541782683966e-06

Please find a way, as that's a bug, not a feature!

Actually the first sums to 455751, the other sums to 455754, hence the
error.
On Mon, Feb 7, 2022 at 4:07 PM Karim Naufal @.***>
wrote:

Folks, for instance, for this
stats.chisquare([214598,241153],[227877,227877]), both vectors sum up to
455754, but I get this error:
For each axis slice, the sum of the observed frequencies must agree with the sum of the expected frequencies to a relative tolerance of 1e-08, but the percent differences are:
6.582541782683966e-06
Please find a way, as that's a bug, not a feature!
—
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/13362#issuecomment-1031504917, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL2ANDKHQ2TNF2HLB765ZBTUZ7GYVANCNFSM4VZL2FNQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

Folks, for instance, for this stats.chisquare([214598,241153],[227877,227877]), both vectors sum up to 455754, but I get this error:
For each axis slice, the sum of the observed frequencies must agree with the sum of the expected frequencies to a relative tolerance of 1e-08, but the percent differences are:
6.582541782683966e-06

Please find a way, as that's a bug, not a feature!

Actually the first sums to 455751, the other sums to 455754, hence the
error.

Indeed, I do not know how that happened, because doubled checked 🤯, you are right, thanks for catching it.

Please consider opening a PR to fix the referenced package, instead. Please see the discussion in gh-12282, which demonstrates that the chisquare test does not provide a meaningful p-value when the observed and expected number of observations do not match.

What is said in that discussion is not in general correct. It's wrong in the context of non parametric statistics. Look at page 143 of (Elements of Simulation, Byron J.T. Morgan) ( https://books.google.cz/books?id=EIbxfCGfzgcC&lpg=PP1&pg=PA143#v=onepage&q&f=false ) where the expected and realized counts don't sum to the same thing.

@kvak he said

If it has a different number of entries then presumable the p-value should be 0 since the null cannot be true

I can get behind that. Is this what you want the behavior of chisquare to be? It was not before this error was raised.

@mdhaber  not really. The null can never be true, but anyway the problem is not with the number of entries, it's with the sum of the entries.

OK, could you also reply to the question above it?

In the meantime, can you tell me the null hypothesis of the gap_test there? Is it that digits are IID samples from a discrete uniform on [0, 1] (i.e. Bernoulli trials with $p=0.5$)? I tried generating samples from that null hypothesis, and the distribution of test p-values was not uniform.

A guess based on a quick code check
The skidmarks.gap_test function truncates the array of expected observations.
So, AFAICS, egaps should not add up to one
    egaps = [l * (exp ** ii) for ii in range(1, len(ogaps) + 1)]
    chi, pval = chisquare(np.array(ogaps), np.array(egaps))

In statsmodels I had a similar problem. I truncated expected counts eg. for poisson, which was negligible before the change in scipy and raised after for some cases.
My fix, AFAIR, was to add the missing probability to the last count, which also makes sense for chisquare test if truncation is even of a nonnegligible amount.
Also chisquare test requires that expected count in each cell is large enough. So relying on tiny cells is not good for pvalues either.

I kind of like the exception. The transition as a bugfix was a bit abrupt.
However, it not only prevents bugs but also sloppy coding (even if those are in some cases negligible)

A guess based on a quick code check
The skidmarks.gap_test function truncates the array of expected observations. So, AFAICS, egaps should not add up to one
    egaps = [l * (exp ** ii) for ii in range(1, len(ogaps) + 1)]
    chi, pval = chisquare(np.array(ogaps), np.array(egaps))

In statsmodels I had a similar problem. I truncated expected counts eg. for poisson, which was negligible before the change in scipy and raised after for some cases. My fix, AFAIR, was to add the missing probability to the last count, which also makes sense for chisquare test if truncation is even of a nonnegligible amount.
Also chisquare test requires that expected count in each cell is large enough. So relying on tiny cells is not good for pvalues either.

I can only speak for the gap test in skidmarks. This is how I solved it internally by patching the code. But that's not a solution. The original function was giving the same result as the book example. That way it won't. Tho it will "Klose enuf" on that example, whose to say it won't be wrong on some other book example. And then how do you ascertain what  implementation is correct?

I kind of like the exception. The transition as a bugfix was a bit abrupt.
However, it not only prevents bugs but also sloppy coding (even if those are in some cases negligible)

sure, always a good motivation, but at what cost? Now we have a function that won't return the correct (hand calculated) values
from the example on the package's demo page. Perhaps, on this occasion, the desire for preventing sloppy coding has gone a bit too far? Maybe a warning would have hit that sweet middle ground?

Your implementation is just incorrect. Even in the book that you cite, it deals with the truncation. I also think you are missing a (1-exp) term. See the section on the Gap test in Knuth's Seminumerical Algorithms, probably the most authoritative source, for the correct formulae.


Don't call FIRConfiguration setLoggerLevel: before FIRApp exists.

Description
Don't call FIRConfiguration setLoggerLevel: before FIRApp exists.
Instead, cache the value, and call setLoggerLevel later, after the iOS FIRApp instance is created.
This should be a safer fix to prevent FIRApp from being automatically initialized when logging occurs too early in the Unity SDK, which is causing a crash on iOS 15 devices in certain cases (in particular in the Firebase Unity SDK).

Testing

Describe how you've tested these changes. Link any manually triggered Integration tests or CPP binary SDK Packaging Github Action workflows, if applicable.

@a-maurice to manually test in Firebase Unity SDK.

Type of Change
Place an x the applicable box:

[x] Bug fix. Add the issue # below if applicable.
[ ] New feature. A non-breaking change which adds functionality.
[ ] Other, such as a build process or documentation change.

Notes

Bug fixes and feature changes require an update to the Release Notes section of release_build_files/readme.md.
Read the contribution guidelines CONTRIBUTING.md.
Changes to the public API require an internal API review. If you'd like to help us make Firebase APIs better, please propose your change in a feature request so that we can discuss it together.

@jonsimantov Can this possibly fix https://github.com/firebase/quickstart-unity/issues/1198 and https://github.com/firebase/firebase-unity-sdk/issues/86?
If not, can you please update when is this going to be fixed?

@jonsimantov Can this possibly fix firebase/quickstart-unity#1198 and firebase/firebase-unity-sdk#86? If not, can you please update when is this going to be fixed?

I don't believe it's related to that bug. We are aware of the Remote Config issue and are working on it, and I hope to have an update soon.

That's great Jon. Thanks for the update.


shipit.config should be prioritized for remoteCopy command.

Based on #83.

@mochja just a small fix and I merge it

@neoziro :shipit:

Seems like bad practice to have global options override method-specific options?
The feature to allow it to use shipit.config is good, but if you actually specify the options when calling the remoteCopy method I would expect them to override any values set in a global config.
If you agree, the test should be changed to the following expectations: ?
it('should support options specified in shipit.config', function () {
  shipit.config = {
    ignores: ['foo'],
    rsync: ['--bar']
  };

  shipit.remoteCopy('src', 'dest', {
    direction: 'remoteToLocal',
    rsync: '--foo'
  });

  expect(shipit.pool.copy).to.be.calledWith('src', 'dest', {
    direction: 'remoteToLocal',
    ignores: ['foo'],
    rsync: ['--foo']
  });
});

@grEvenX yes for sure, global are the defaults, and in method we can override them, be careful of mutability!

@mochja Can you update the PR, perhaps it'll actually get merged ;)

@grEvenX Yes, I can update it.
The reason why I did it this way was that it would not need additional changes to shipit-deploy.
How would like you to handle the new behavior now ? This approach would introduce BC break if you didn't had rsync options defined with --del, wouldn't it ?


PCO: Setup an example Node.js application with OpenTelemetry that posts to a Tracing UI

e.g. express server posting to Jaeger

Internal Notion doc: https://www.notion.so/prismaio/Tracing-support-f70ea804221941178849b8bc2365522e

Is there an externally available version of that notion doc?


docs: Add network cache

https://github.com/Road-of-CODEr/interview/pull/15

https://github.com/Road-of-CODEr/interview/pull/15 https://github.com/Road-of-CODEr/interview/pull/17


See darkside.proto for details.
Requirements:

[x] Construct "valid" synthetic empty blocks for darkwalletd, as the genblocks.go tool does
[x] Accepts a count, the number of blocks to generate
[x] Accepts an integer for the starting height (the height of the first block in the series)
[x] Accepts a "nonce" which can be used to make this block's hash unique (even among blocks of the same height)
[x] Adds these blocks to the staging area

The return value is always success.

This is done, ready to review and attempted use by Kevin and Pacu. In branch for PR https://github.com/zcash/lightwalletd/pull/250, not yet master.


Fix a few FIXMEs

Codecov Report

Merging #162 into master will decrease coverage by 0.07%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master     #162      +/-   ##
==========================================
- Coverage   89.09%   89.02%   -0.08%
==========================================
  Files          53       53
  Lines        2503     2505       +2
==========================================
  Hits         2230     2230
- Misses        273      275       +2

Impacted Files
Coverage Δ

tests/test_eigenvectors.cc
96.42% <ø> (ø)
:arrow_up:

source/dealii/dealii_matrix_free_operator.cc
60.41% <0%> (-2.63%)
:arrow_down:

source/dealii/amge_host.cc
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Update libgit2

This'll probably require a major version bump of both the -sys and wrapper crate

Currently motivated by https://github.com/rust-lang/cargo/issues/3042#issuecomment-251159702 as this may help Cargo segfaulting on FreeBSD


playback of multiple sequences, playlists

Original ticket:
https://sourceforge.net/p/djv/feature-requests/5/

hey,
looks like the .ifl support is missing from DJV2 , is that intentional ?
That was handy to play several image sequences next to each other.
Thanks !

Hi sozap, sorry for the late reply, somehow I missed your post. IFL has not been ported to the new version, I actually didn't think anyone used it, you are the first person to mention it. I hadn't been planning to port it to the new version, instead at some point I hope to add support for OpenTimelineIO which supports a number of different editorial formats.
Out of curiosity how do you generate your IFL files?

Some additional ideas for features:
https://github.com/darbyjohnston/DJV/issues/188

Hi Darby, indeed .IFL is kind of limited. Anyway that was handy to play a few shots next to each-other. A playlist system would be better, even more if it's in a easy to write format and especially if you can play images sequence with sound.
IFL files were written using a python script.

Being able to save and load playlists of multiple files in a timeline is a very important feature.  If there is a place to vote for this I would!

We are considering at least partly replacing a certain big commercial image seq player in our pipeline - and would very much like to add DJV support to our playback system (animation studio with maybe 30 users). But since we do animated features, being able to play multiple shots in a sequence (and not have to wait for an encode of all shots to one video file) is an absolute must. OTIO support sounds fantastic. but all we need to actually start using DJV in production is just something simple like playing a bunch of movs, one after the other.

We are considering at least partly replacing a certain big commercial image seq player in our pipeline - and would very much like to add DJV support to our playback system (animation studio with maybe 30 users). But since we do animated features, being able to play multiple shots in a sequence (and not have to wait for an encode of all shots to one video file) is an absolute must. OTIO support sounds fantastic. but all we need to actually start using DJV in production is just something simple like playing a bunch of movs, one after the other.

@jojurgens I'm currently working on rewriting the "playback engine" to support playback of multiple movies, and the OTIO support is an integral part of that. I'm actually doing the work in a separate project which I will merge back into DJV when it's ready, if you are interested here's the link:
https://github.com/darbyjohnston/tlRender
For your use case, are you envisioning some kind of UI in DJV for creating the playlist?

We have our own inhouse PyQt based production management system that builds playlists dynamically, so in our particular case, gui support isn't a number one priority. Though in the long run, we would love to see PyQt/PySide support so that we can make our own guis
I've looked briefly at tlRender and it looks really promising. Is there a WIndows build available anywhere?

Great, in that case having your production management system create an .otio file for the playlist should be relatively easy.
At some point I would like to add PyQt/PySide support to tlRender for exactly what you mentioned, allowing people to build custom UIs for media playback. I already have some C++ Qt widgets for that purpose and hopefully exposing them to PyQt/PySide isn't that difficult.
Unfortunately there aren't any pre-built binaries available yet, but building from source is relatively straightforward.


org-roam-node-finddoesn't show all completion (ivy) when font is too big and screen is split

What did you expect to happen?
When I run org-roam-node-find (roam2) with the font set to the size of up to about 13, all the possible completions should be correctly displayed.
What actually happened?
This is what happens when the font is smaller. It correctly displays the nodes:

If I increase the font to about 14, the completions are cropped (only the first characters are displayed):

Describe your attempts to resolve the issue
Changing font sizes works, by I don't like working with small fonts. Also tested with org-roam settings disabled, and with everything else commented.
Steps to reproduce

Split the current view into two vertical windows
org-roam-node-find (the issue presents itself with basically any other org-roam command
See if nodes are correctly displayed.

System Information
https://pastebin.com/GBgbG4K3

This seems to be the same as issue #2066. Judging by the tags in your first screenshot, it's still not correct (unless you set org-roam-node-display-template to display them with a very large right padding). You would notice the problem in the first setting as well if you have longer titles.

I seem to have found the issue. Doom sets org-roam-node-display-template as such:
(setq #("${doom-hierarchy:*} ${doom-type:12} ${doom-tags:42}" 20 35
  (face font-lock-keyword-face)
  36 51
  (face org-tag)))

Changing is back to the original value seems to fix the issue: (setq org-roam-node-display-template "${title}").

I suspect this is an upstream bug with org-roam's variable length specifier (*). It might be cached somewhere, or may simply not be reading the frame width correctly.
I'm a bit swamped atm, so it'll be some time until I can look into this yet. PRs are welcome to monkey patch the issue (but not revert org-roam-node-display-template's value), or to bump the package if it's been fixed upstream.


[DXCDT-78] Update client struct

Improve Addons definition
Improve Mobile definition

Description

References

Testing

[ ] This change adds test coverage for new/changed/fixed functionality

Checklist

[x] I have read and agreed to the terms within the Auth0 Code of Conduct.
[x] I have read the Auth0 General Contribution Guidelines.
[ ] I have reviewed my own code beforehand.
[ ] I have added documentation for new/changed functionality in this PR.
[ ] All active GitHub checks for tests, formatting, and security are passing.
[ ] The correct base branch is being used, if not main.

Codecov Report

Merging #36 (a25b008) into main (7d73f02) will decrease coverage by 0.89%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #36      +/-   ##
==========================================
- Coverage   31.14%   30.25%   -0.90%
==========================================
  Files          34       34
  Lines        5506     5668     +162
==========================================
  Hits         1715     1715
- Misses       3637     3799     +162
  Partials      154      154

Impacted Files
Coverage Δ

management/client.go
85.96% <ø> (ø)

management/management.gen.go
8.53% <0.00%> (-0.37%)
: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 7d73f02...a25b008. Read the comment docs.


Change AccountController/Logout to be HttpPost

Will also need to re-add the check on the validation cookie.


After setting the variant interpretation,  I can't close the panel.

Crazy, never noticed this! Nice catch @tonydisera !


[need info] about usage

I have 2 queries

Can I use it with Prism?

To be more specific, I want to implement a ListView in which I want to load more items when the user has scrolled down to the last item of the ListView. Can I achieve this with this control?

I'm asking this because someone from Xamarin Developers group at Facebook suggested me this control for the 2nd purpose...
Anyway I highly appreciate the effort. Thanks.

Can I use it with Prism?

Yes, it has no external dependencies.

2.

Yes, it's its primary use-case. See this: https://github.com/luberda-molinet/FFImageLoading#features
also check properties like "Delay" (image loading delay)


Indirect checkpoints - Advantages lists a disadvantage

This section of the docs are not very clear. It first states Indirect checkpoints offer the following advantages: and then lists An online transactional workload on a database configured for indirect checkpoints can experience performance degradation.

Indirect checkpoints
Indirect checkpoints, introduced in SQL Server 2012 (11.x), provide a configurable database-level alternative to automatic checkpoints. This can be configured by specifying the target recovery time database configuration option. For more information, see Change the Target Recovery Time of a Database (SQL Server). In the event of a system crash, indirect checkpoints provide potentially faster, more predictable recovery time than automatic checkpoints. Indirect checkpoints offer the following advantages:
An online transactional workload on a database configured for indirect checkpoints can experience performance degradation. Indirect checkpoints ensure that the number of dirty pages are below a certain threshold so the database recovery completes within the target recovery time.

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

ID: 89bca058-bde3-c76a-793a-dc344751d853
Version Independent ID: 1f682f41-3a2d-66d6-47f1-bd5c2b4ca873
Content: Database Checkpoints (SQL Server) - SQL Server
Content Source: docs/relational-databases/logs/database-checkpoints-sql-server.md
Product: sql
Technology: supportability
GitHub Login: @MashaMSFT
Microsoft Alias: mathoma

#reassign:rwestMSFT

@jpomfret Thanks so much for your feedback. You'll see an updated version of this article in the next day or so.

Thanks @rwestMSFT! I had a feeling you might be the one to fix this 🙂 Appreciate it!


Issue with QThread

Version
0.6.6rc6 Python: 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] Executable: C:\Users\Elite\AppData\Local\Programs\Python\Python37\python.exe OS: Windows Arch: x86_64
I installed Nuitka through PIP.
I found an issue with QThread, I am using PyQT5.
I used nuitka-hints.py to compile my python codes.
The program works fine at the beginning until I start using QThread.
It seems to be freezing the UI, but the thread continues to run.
UI will be responsive once the thread finishes.
My assumption would be Nuitka not supporting QThread, is this the case?
For additional info, I was able to run the the QThread with cx_freeze/pyinstaller/or through python interpreter without freezing the UI.
What could be wrong?

Here are the snippets, this what starts the thread:
    def createWorkerThread(self):
        self.worker = WorkerObject()
        self.worker_thread = QThread()
        self.worker.queue = {}

        self.worker.KMap = self.dialog.ui.keyMap.keySequence().toString()
        self.worker.KAttack = self.dialog.ui.keyAttack.keySequence().toString()
        self.worker.KInteract = self.dialog.ui.keyInteract.keySequence().toString()
        self.worker.KJournal = self.dialog.ui.keyJournal.keySequence().toString()
        self.worker.KSwap = self.dialog.ui.keySwap.keySequence().toString()
        self.worker.KCard = self.dialog.ui.keyCardDuel.keySequence().toString()

        self.worker.deckStandard = str(self.dialog.ui.deckStandard.currentText())
        self.worker.deck3StarWar = str(self.dialog.ui.deck3StarWar.currentText())

        # Setup the worker object and the worker_thread.
        self.worker.moveToThread(self.worker_thread)
        self.worker_thread.start()

And this is the worker
class WorkerObject(QObject):
    signalStatus = pyqtSignal(bool)
    signalLog = pyqtSignal(str)
    signalQueue = pyqtSignal(int, int)

    # 0 = idle
    # 1 = processing
    # 2 = done

    def __init__(self, parent=None):
        super(self.__class__, self).__init__(parent)
        self.isRunning = False
        self.KMap = None
        self.KAttack = None
        self.KInteract = None
        self.KJournal = None
        self.KSwap = None
        self.KCard = None

        self.deckStandard = None
        self.deck3StarWar = None

    def stop(self):
        self.isRunning = False

    def log(self, text):
        self.signalLog.emit(str(text))

    @pyqtSlot()
    def startWork(self):

        self.isRunning = True
        self.signalStatus.emit(True)

        sleep(10)

        self.signalStatus.emit(False)
        self.log("Done!")
        return

When in sleep state, the UI simply stopped being responsive. This does not happen in the pyhthon intreperter itself or the cx-freeze like I mentioned. What am I missing?

@Mikami382 - can you please give me the (or some) complete script? I would like to check if a different option for using the qt-plugins would help.
Of course you could also try compiling without hinted compilation while using exactly the same parameters as you saw hinting generated ... except: instead of --enable-plugin=qt-plugins=sensible please use --enable-plugin=qt-plugins=all.
It is worth a try ...
Background: Qt comes with a lot of stuff. Option sensible represents a commonly used subset of it. So far, hinted compilation does not try to analyze the detail usage profile of the script - but it would certainly be possible. And I could replace the sensible option by something else when encountering things like QThread.

Yes of course, I attached it in the following post (please understand that I may delete this later)
Pardon my terrible logics/writings, it is my personal project. I am studying python.
Scripts.zip
Do let me know if you need anything else!

ok, please allow me some time.
I am busy for the rest of the day (Venezuela time) ...

Started trying your scripts. Was a bit frightened that elevated user access is required to execute it ...
Then I am being asked for a license number?
You are aware of how to correctly detect being compiled by Nuitka:
compiled = globals().get("__compiled__", False)
if compiled:
    print(
        "Running compiled (Nuitka v%i.%i.%i-%s)"
        % (compiled.major, compiled.minor, compiled.micro, compiled.releaselevel)
    )

Yes, it is an auto click program (macro), to be able to click the target program, it requires admin access.
And about the license, you can just add return 1 on checkLicense  before anything..
And thank for you for letting me know about that, I was so focused on making it work on Nuitka first before anything else..
Were you able to identify/fix the issue?

Thanks for the infos.
No, I was hesitant re what may happen if I do the wrong things ;-)

After you get past through the license check, just add any task to Queue Tasks tab and click Start.
The QThread should start immediately and sleep for 10 seconds (Line 433), this is where it freezes everything completely until the the thread stops.
It is working fine on other compilers (cx-freeze pyinstaller) but not here. The main reason why I really wanted to use Nuitka is because it is (relatively) harder to decompile compared from the others (machine codes).
Please help me get this working x)

Unfortunately, this did not make any difference.
I seem to remember that Qt threading has been some kind of issue here earlier - maybe you should search the issue database for qthread ...
A weird thing with your script:
When the main script ends, that does not end everything it has triggered off: other windows are still showing up, etc.
This of course means, that get-hints.py never gets to read all the logfiles created by all subprocesses. It will hence create an incomplete consolidated JSON file ... Is there no way to wait in the main task until all subs have finished?

Could you elaborate what you mean by "other windows are still showing up?" It only has one window GUI as far as I remember..

Trying to catch everything in one screen:

Ah, that may be because when you dont have admin access, the script makes you to "re-run" the script with admin access, so first script (without admin access) exits and the second "re-run" one opens with UAC popup.
I think the solution for this would be temporarily add return True to is_admin() function before anything else is executed in that method. So it doesnt have to re-run the script.

Ah correct, that made it.
But the blocking issue is still unresolved ...

I guess there's no way to use Nuitka with QThread for now..

I'm afraid you are right.

There are still problems with QThread right now?

Last time I discussed with them, they were not aware of any issues. I suggest to re-open a new issue, or to use PySide2 or PySide6 where I know such issues do not exist.

PyQT5 version 5.15.6 appears to still only run QThreads on the main thread after compiling with Nuitka even if using the qt plugins provided by Nuitka. Is there a timeline on having this issue fixed?

Like I said, since they are not aware of the issue, I would say never. Your best bet is PySide2 or PySide6: https://nuitka.net/pages/pyside2.html
I doubt there will be updates for PyQt5 though. For PySide2 I solved the issue myself. You can of course do the same for PyQt5 if you are very interested, but since PySide2 is compatible, the cheapest path would be to switch.

Yeah I switched over my whole project to PySide2 to realize that the version was too new and I couldn't use the PySide2 plugin.  I guess I will give PySide6 a try here soon. It honestly isn't a game ender to use PyInstaller. Nuitka just had more potential for what I need.

What do you mean, PySide2 being too new? Also, curious, where do you see the potential?

Yes, I wasn't aware of any update of PySide2 after that, actually I was pretty sure there won't be any. I guess, I need to update the version check then, thanks for your feedback. Seems you want very important things from Nuitka, and I can see only it deliver on that, but what price would you associate with that goals of yours?

I appreciate you responding and glad I was able to inform you of the PySide2 update.

Not sure why it wasn't clear enough, but the message is this:

Nuitka-Plugins:WARNING: pyside2: This PySide2 version only partially supported through workarounds, full support: https://nuitka.net/pages/pyside2.html

It is partially supported. I will update the page however, it is through workarounds applied by the plugin. I spent (too much) time on making some things work with wrapper functions, but that only goes so far. The patches for PySide2 are only in the Nuitka commercial wheels. The page is very unclear about it, also PySide6 is more of a thing now.


TypeError: 'NoneType' object is not iterable in discovery

I have recently upgraded to Release version 0.17 using pip upgrade
pip install soco --upgrade
After upgrade, the example play_local_files.py throws NoneType is not iterable error in discover method. When no Sonos is live on the network previously it returned None when calling discover.by_name api. But after upgrading to new release, instead returning None, its throws the error in soco library
Error log
user@mypc:~/Music$python play_local_files.py MySonos
Running as python 2
 Will use the following settings:
 Zone: MySonos
 IP of this machine: <IP_ADDRESS>
 Use port: 8000
Traceback (most recent call last):
  File "play_local_files.py", line 159, in <module>
    main()
  File "play_local_files.py", line 126, in main
    zone = by_name(args.zone)
  File "/usr/local/lib/python2.7/dist-packages/soco/discovery.py", line 226, in by_name
    for device in discover():
TypeError: 'NoneType' object is not iterable

I am on python 2.7 and the soco installation information is below
user@mypc:~/Music$pip show soco
Name: soco
Version: 0.17
Location: /usr/local/lib/python2.7/dist-packages
Requires: requests, xmltodict

Hi @nmxprime
Did you upgrade your speakers as well. discovery was changed for version 0.18, to accommodate a change in the Sonos API. But the change in SoCo is backwards incompatible, as outlined in the release notes: http://docs.python-soco.com/en/latest/releases/0.17.html)
Regards Kenneth

I have the same issue on Mac. Python 3.7.4, Soco 0.17, and Sonos Controller 10.3.

So it's been a while with no answer from @nmxprime, so I will close for now. Fell free to reopen if the issue persists.
@jasontaylor190 if you still have the problem please open a separate issue.


SQLite attempt to write a readonly database

Context

I'm just getting started with a POC/dummy app to see how Zappa works, and I wanted to go fast and keep the SQLite DB despite it not being recommended for production grade apps.
Doesn't seem like it's possible to write into the DB though
Python 3.6.8
Django==2.1.7
jet-django==0.4.8
zappa==0.47.1
Actual Behavior

Trying to save a record from the Jet Django UI, get a 500 error from Zappa API
500 {"detail":"Server Error"}
[1551123210488] [ERROR] 2019-02-25T19:33:30.485Z a3f52261-cf99-44b0-a8c6-8fe127805e93 Jet view exception
Traceback (most recent call last):
  File "/var/task/django/db/backends/utils.py", line 85, in _execute
  return self.cursor.execute(sql, params)
  File "/var/task/django/db/backends/sqlite3/base.py", line 298, in execute
  return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: attempt to write a readonly database

I tried to chmod 777 db.sqlite3 and zappa update but didn't change anything.

Possible Fix

I guess it's a limitation of SQLite? But if it's fixable it'd be nice for getting started/trying things out.
Steps to Reproduce

Deploy Zappa app with sqlite
Try to perform a DB update (I tried through Jet Admin API)

Your Environment

Zappa version used: 0.47.1
Operating System and Python version: Mac OS Mojave
The output of pip freeze:
pip3 freeze
argcomplete==1.9.3
boto3==1.9.101
botocore==1.12.101
certifi==2018.11.29
cfn-flip==1.1.0.post1
chardet==3.0.4
Click==7.0
Django==2.1.7
docutils==0.14
durationpy==0.5
future==0.16.0
hjson==3.0.1
idna==2.8
jet-django==0.4.8
jmespath==0.9.3
kappa==0.6.0
lambda-packages==0.20.0
placebo==0.9.0
python-dateutil==2.6.1
python-slugify==1.2.4
pytz==2018.9
PyYAML==3.13
requests==2.21.0
s3transfer==0.2.0
six==1.12.0
toml==0.10.0
tqdm==4.19.1
troposphere==2.4.5
Unidecode==1.0.23
urllib3==1.24.1
Werkzeug==0.14.1
wsgi-request-logger==0.4.6
zappa==0.47.1

You should try to set sqlite db path under /tmp, which is a writeable for a lambda function. Please be aware that lamba invocations might run on different machines and you might have different instances of sqlite. Maybe an option would be to use aurora serverless.
This is not an issue related to zappa.

I tried moving the db to a newly created tmp folder but same behaviour. :/
I'm thinking about Aurora Serverless as well for production-grade app, the sqlite is just to try things out first, since I'm doing R&D with Zappa/Jet Django and other tools to see if they're reliable;

You need to place sqlite in existing root tmp folder, something like /tmp/sqlite.db. That's the only writable folder in aws lambda execution environment.
See https://aws.amazon.com/lambda/faqs/:

Aurora serverless is great for dev environment because you can configure it to shut down when there is no activity so you will not pay for anything when your app is idle and when you will have a proper MySQL compatible database that is truly persistent between lambda invocations and deployments. Cons using Aurora serverless:

higher costs for Aurora serverless
slower start up times when your app becomes active again
your lambda needs to be placed in a VPC :(

But if you need to play with sqlite you will be able to use the /tmp/ folder.

@madalinoprea I basically created a tmp folder and moved the DB there, then ran zappa update, but I'm not sure if that will actually deploy the DB in the lambda tmp folder.

Anyway, it doesn't work, so I assume that's not the correct way to do it.
I wanted to avoid all the config like Aurora, VPC and alike, but it's really well documented in https://edgarroman.github.io/zappa-django-guide/walk_database/ so i'll give it a try I guess!

Sorry @Vadorequest but I was trying to suggest to place sqlite under /tmp by changing Django settings.
For example, settings.py should include something like this:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': '/tmp/sqlite.db',
    }
}

Ah... Makes sense!
I've configured AWS Aurora serverless since then, and those cold start are really slow (30 sec to wake up the DB when paused), using the DB directly in the project is not possible for a production environment so I tried S3 but failed for some reason.
I don't know if I'll give it another try, but maybe this very simple setup aimed at testing things out could be documented in the README? would help other getting started faster with a proof of concept. :)

@Vadorequest , Are you able to solve the issue for the SQLite DB? What changes have you made to resolve this? Can you give a snapshot of the settings.py file and the folder structure created to resolve this?

Yes, I was able to use SQLite with Zappa on AWS. But the DB was uploaded inside the lamda and not on S3 with my setup. I stopped this project so I don't remember exact details, but I think the DB was in readonly mode and didn't succeed storing it on S3. I eventually used Aurora on AWS and SQLite for local development.
Here is the code, but I don't think it'll help much:
if ENV == 'development':
  # Use sqlite for local development
  DATABASES = {
    'default': {
      'ENGINE': 'django.db.backends.sqlite3',
      'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    # 'default': {
    #   'ENGINE': 'django.db.backends.mysql',
    #   'NAME': 'tfp_development',  # Doesn't allow dash
    #   'USER': 'root',
    #   'PASSWORD': 'pass',
    #   'HOST': '<IP_ADDRESS>',
    #   'PORT': '3306',
    # }
  }
elif ENV == 'staging':
  # Use AWS RDS Aurora Serverless for AWS Staging environment
  DATABASES = {
    # 'default': {
    #   'ENGINE': 'zappa_django_utils.db.backends.s3sqlite',  # Uses zappa_django_utils
    #   'NAME': 'db.sqlite3',
    #   'BUCKET': 'tfp-backoffice-sqlite-db',
    # },
    'default': {
      'ENGINE': 'django.db.backends.mysql',
      'NAME': 'tfp_backoffice_test',  # Doesn't allow dash
      'USER': 'backoffice_test',
      'PASSWORD': 'backoffice_test',
      'HOST': 'cluster-aurora-serverless-tfp-backoffice-test.cluster-cujbasbnpgcg.eu-west-1.rds.amazonaws.com',
      'PORT': '3306',
    }
  }
else:
  raise ImproperlyConfigured('No DATABASES configured for ENV "{ENV}"'.format(ENV=ENV))

@Vadorequest , Thank you very much for your solution. I am trying to to deploy the same application from local machine with SQLite DB to AWS lambda unfortunately while logging into Django Admin its throwing an error saying that the DB is readonly. So my question is was the SQLite DB successful on Lambda for you or did you had the same issue readonly? In case it was successful do you remember if you have changed the settings.py as suggested and created a /tmp/sqlite.db structure?

It was read-only too. You must upload the dB on s3 in order to pull from
s3, write data inside it and replace it on s3. Look for packages that does
this, like s3 Django sqlite, I was unable to do it but didn't try much
On Fri, Apr 5, 2019, 14:43 raamshivajigoulikar<EMAIL_ADDRESS>wrote:

@Vadorequest https://github.com/Vadorequest , Thank you very much for
your solution. I am trying to to deploy the same application from local
machine with SQLite DB to AWS lambda unfortunately while logging into
Django Admin its throwing an error saying that the DB is readonly. So my
question is was the SQLite DB successful on Lambda for you or did you had
the same issue readonly? In case it was successful do you remember if you
have changed the settings.py as suggested and created a /tmp/sqlite.db
structure?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Miserlou/Zappa/issues/1785#issuecomment-480261603,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADoY4l76gQAOWPveLTABzNImWAa0X-J4ks5vd0T3gaJpZM4bQr9S
.

@raamshivajigoulikar Did you manage to solve this? I am having the same issue.

The only solution to use sqlite db for AWS lambda is to serve sqlite db from S3 bucket.
So pip install django-s3-sqlite and properly configured database settings as mentioned in instructions and remember to place _sqlite.so binary in project root directory as mentioned in documentation.


Platform name typo

Platform Rigetti 16Q Aspen-1  has trailing space
(I wasn't sure where to raise this issue, please feel free to move to the appropriate repo)

Thank you, @karlaspuldaro ! This is definitely a worthwhile issue to raise, and one that we are adamantly attempting to improve over on Metriq.  Thank you again for putting up an issue for this, this is great!


Migrade the website on FLOSS alternative?

Libera currently provides it's website on GitHub (non-free service).
Consider using https://codeberg.org (arguably supperrior FLOSS alternative providing gitea) and it's https://codeberg.page/

This is not the right place to discuss this.

What is the right place then? O.o

Consider using https://codeberg.org (arguably supperrior FLOSS alternative providing gitea)

You can argue anything, even that the moon is made of green cheese. Do people agree with you? Which metrics are you using -- how do you define "superior"?
Here is one example set of definitions in which codeberg is distinctively NOT superior: https://forgeperf.org/

You can argue anything, even that the moon is made of green cheese. Do people agree with you? Which metrics are you using -- how do you define "superior"? @eli-schwartz

Four freedom complying service provided by libre service provider with a structure to allow public review and public engagement in the project including voting rights.
Other than that i find it to satisfy my needs for development way better than GitHub as i can work on integration of features to make my life easier that are not possible on GitHub for various reasons such as https://github.com/github/feedback/discussions/2843
Also you can self-host and the gitea upstream is working on federation of the instances as they are currently "just" decentralized e.g. git.fsfe.org use in the wild
Other providers i would recommend are:

https://git.dotya.ml
https://git.disroot.org
https://sr.ht

Here is one example set of definitions in which codeberg is distinctively NOT superior: forgeperf.org @eli-schwartz

Those results seems very subjective to me assuming that it claims that "sourcehut is the most efficient" while giving them only (assumed) 2 POST requests with a size of 32 KiB compared to Codeberg handling 19 requests of 669 KiB to claim that it's less efficient and accesible?

So here we get to the heart of the matter. You're badgering libera.chat to choose a platform on which to upload their git repos and ticketing system, based on whether the hosting platform is enabling "public review and public engagement", apparently because you want it to e.g. be accessible over Tor.
Because no FOSS communities ever used github before, due to the argument against github being so clearly obvious that everyone knows it per default and the only thing left is to debate which platform to use instead.
...
Actually no, there isn't much if anything to gain by moving from github to a less-capable and slower github clone. The fundamental issues with github aren't due to the closed development model of the website.

Also you can self-host and the gitea upstream is working on federation

... is not an argument for hosting on codeberg rather than setting up git.libera.chat

Those results seems very subjective to me assuming that it claims that "sourcehut is the most efficient" while giving them only (assumed) 2 POST requests with a size of 32 KiB compared to Codeberg handling 19 requests of 669 KiB to claim that it's less efficient and accesible?

Ok? Feel free to submit a bug report to https://github.com/GoogleChrome/lighthouse telling them their entire basic approach to everything is completely "very stupid" because you want to measure website performance, by "efficiency per kb" instead of, well, performance.
The point remains -- github is the second-best website in terms of performant user interaction and not sucking down bandwidth, after the website with an ethos of "clean/barebones simplicity, be responsive on 15 year old devices or CLI lynx and no JS ever".
I'd say this is a pretty good criteria for choosing a software forge for a project that is not run by the GNU/FSF and doesn't believe it's a moral outrage to use a website without source code or whatever.
At least "you should be self-sufficient and self-host" is a generally understandable and sympathetic argument (and all the more power to people who are empowered by gitea to self-host). But as far as I can tell, nowhere here was self-hosting suggested...
It's not clear to me, what purpose this ticket serves other than generally raising awareness of moral outrage against github.

As it has been mentioned before, this is not the right place to discuss this. Locking.


k value in the kl distance equation of 3D data in 3d_autoencoderkl_tutorial.py

If the dimension k=3 for three dimensional data, then the following -1 should be -3/2?
line 259: kl_loss = 0.5 * torch.sum(z_mu.pow(2) + z_sigma.pow(2) - torch.log(z_sigma.pow(2)) - 1, dim=[1, 2, 3, 4])

Thanks for your reply!
Sorry, it’s probably my misunderstanding. Now I think it's correct.


test: Added tests for travis_yml check and made a correction in check

JIRA: https://openedx.atlassian.net/browse/BOM-2569

FYI: This was reverted in https://github.com/edx/edx-repo-health/pull/196


Add simple setup.py and systemd timer

Ah I didn't know that was in the pull request. Doh. Will try to fix.

Okay the PKGBUILD is out. That was mainly for me on my system. The intent was to keep it on my own fork and not put it in this pull request. Sorry about that. Should be ready to merge now.

I noticed a problem while trying to set up a timer using systemd on Ubuntu 15.10:
systemctl --user enable --start himawaripy.timer commands returns systemctl: unrecognized option '--start'. Do you know what might have caused it?
$ systemctl --version
systemd 225
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN

My setup.py was better in this way :
Mine :
~/pkg/himawaripy-git   master ●  pacman -Ql himawaripy-git
himawaripy-git /usr/
himawaripy-git /usr/bin/
himawaripy-git /usr/bin/himawaripy
Yours :
~/pkg/himawaripy-git   dev ●  pacman -Ql himawaripy-git
himawaripy-git /usr/
himawaripy-git /usr/bin/
himawaripy-git /usr/bin/himawaripy
himawaripy-git /usr/bin/himawaripy.py
himawaripy-git /usr/bin/utils.py
My only had one entrypoint into /usr/bin, I dislike this implementation, and I think II'll kept my setup.py in AUR package until this will not be fixed or someone convince me.

See https://github.com/boramalper/himawaripy/issues/44 to debate if you want to.


Pressing Ctrl+C doesn't stop resource provisioning or wait for it to complete

For example, during the prepare stage, RunThreaded is used to launch parallel threads that create networks or VMs. If Ctrl+C is pressed, the main thread that is executing RunThreaded will jump out and get caught by the bare except (https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/blob/master/perfkitbenchmarker/pkb.py#L403), but the background threads will continue to provision resources while the main thread goes on to try to clean them up at the same time.

Fixed by #926


TRANSIT as a travel mode doesn't change the map unless marker is moved

TRANSIT does not work right away, I'm currently using a scope variable to define the travel mode and I have a function that changes it to different types, walking and biking works but changes to TRANSIT doesn't change the map. I've noticed that if I move one the markers slightly after changing it to TRANSIT it works then, do I need to somehow reload the map after changing the travel mode or there another way to fix this?

@jmona789 thanks for reporting this, but i do not think this is related to this module, but it is related to Google Maps.


ci: make seperate container for checkmk_server

server only supports a smaller more defined set of distro's.
agent works on more (if not everyone you can think of i'd assume).
untested, and will definetily not work fully yet.
because checkmk_agent converge now doesnt automatigally has checkmk_servers variables (which it never shouldve had praxis-wise)
i need to figure out what to set checkmk_site_url to, i.e. in what way can the agent container talk to the server container and what may i need to additionally configure in molecule.yml for that to work

Pull Request Checklist

[ ] I am a nice guy

[ ] This pull request and its commits address only a single concern

[ ] Documentation has been altered or extended appropriately

[ ] I have followed JonasPammer's Ansible Role Development Guidelines

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

the concern of this PR is completed, CI still fails for RedHat roles for another reason (gpg); lgtm


Enum rework

cc @sdroege @EPashkin

Looks good, but cairo_content_t seems seems still needed (or CairoContent renamed back)
In this way cairo-sys don't need glib dependency in Cargo.toml?

I've put back all *_t aliases.

Maybe leave enums in sys with values otherwise sys crate will be less usable?

I prefer to move enums outside of it and just keep aliases. It's more consistent with other gtk-rs crates this way.

(And for failing crates, I'll have to update the corresponding parts by hand.)

Not all other gtk-rs crates have enums both in sys and normal.

True but the missing __Unknown field really bothered me. What do you think of it @sdroege?

Usually we have #repr[C] enum in sys and rust enum with __Unknown in main crate.

.. as you already created rust enums to main you can just restore enums in sys and IMHO it will be good.

Which crate has enums in sys? Didn't find one yet (looked into gtk and gdk only for the moment...)

@GuillaumeGomez Yes, I was wrong.
We use c_int type with constants instead enum in sys.

.. but do it in cairo-rs-sys will be IMHO too bothersome.

@GuillaumeGomez Thanks.
IMHO only last is remove [dependencies.glib] and [dependencies.gobject-sys] in sys.

I'll check if nothing needs them in cairo-sys and if not, I'll remove them.

IMHO only last is remove [dependencies.glib] and [dependencies.gobject-sys] in sys.

glib-sys is still needed for all the get_type() functions in the -sys crate at least. gobject-sys might be unneeded


Support using a separate benchmarks repo for benchmarks

For repositories like ocaml/ocaml, we would like the benchmarks to be maintained potentially by a bigger/different set of users, than the ocaml/ocaml maintainers. This commit adds support for an additional configuration variable that lets us clone an additional repository and run benchmarks from within it.
NOTE: No new benchmark runs would be triggered by any changes to the benchmarks repository, with this setup.
This is a simplistic PR that attempts to implement functionality similar to #370 without the UI hackery.

Wow indeed this is a very elegant solution! Bravo!
I'll test it myself, and if everything runs fine I'll merge :)


Improve parsing of complex author strings

Some names with complex author strings don’t get parsed properly, resulting in part of the author string being interpreted as an epithet.  I have seen this happen if the following declarations are included in the author string: non|nec|fide|vide|ms
Examples:
names string > gnparser FullCanonical
Eulima excellens Verkrüzen fide Paetel, 1887 > Eulima excellens fide
Amathia tricornis Busk ms in Chimonides, 1987 > Amathia tricornis ms
Crisia eburneodenticulata Smitt ms in Busk, 1875 > Crisia eburneodenticulata ms
Procamallanus (Spirocamallanus) soodi Lakshmi & Kumari, 2001 nec (Gupta & Masood, 1988) > Procamallanus soodi nec
Membranipora minuscula Canu, 1911 non Hincks, 1882 > Membranipora minuscula non
Hornera radians Defrance, 1821 non (Lamarck, 1816) > Hornera radians non
Hornera verrucosa Reuss, 1851 non Reuss, 1848 > Hornera verrucosa non
Crisina excavata (d'Orbigny, 1853) non (d'Orbigny, 1853) > Crisina excavata non
Proboscina subechinata Canu & Bassler, 1920 non d'Orbigny, 1853 > Proboscina subechinata non
Diaperoecia rugosa Canu & Bassler, 1920 non Osburn, 1940 > Diaperoecia rugosa non
Plagioecia parvipora (Canu & Bassler, 1929) non Canu, 1922 > Plagioecia parvipora non
Diastopora papyracea (d'Orbigny, 1853) non d'Orbigny, 1851 > Diastopora papyracea non
Mesenteripora foliacea (d'Orbigny, 1852) non (Lamouroux, 1821) > Mesenteripora foliacea non
Crisisina carinata (R√∂mer, 1840) non (Reuss, 1846) > Crisisina carinata non
Berenicea undata Canu & Bassler, 1920 non Canu, 1931 > Berenicea undata non
Berenicea stipata Canu & Bassler, 1920 non Canu, 1917 > Berenicea stipata non
Multicrescis mamillosa Canu & Bassler, 1926 non (R√∂mer, 1840) > Multicrescis mamillosa non
Calloporella lamellaris (Bekker, 1921) non (Modzalevskaya, 1955) > Calloporella lamellaris non
Homotrypa similis Foord, 1883 non Caley, 1936 > Homotrypa similis non
Monticulipora affinis Poƒçta, 1902 non (Ulrich, 1890) > Monticulipora affinis non
Stenopora permiana Yang, 1958 non (Bassler, 1929) > Stenopora permiana non
Stenopora meekana (Girty, 1907) non Ulrich, 1890 > Stenopora meekana non
Meliceritites transversa Canu & Bassler, 1926 non (d'Orbigny, 1852) > Meliceritites transversa non
Antedon longicirra (AH Clark, 1912) non Carpenter, 1888 > Antedon longicirra non
Porina reussi Meneghini in De Amicis, 1885 vide Neviani (1900) > Porina reussi vide
As far as I know non, nec, ms, fide, or vide are not legitimate epithets for any species or subspecies. Catalogue of Life has a few ciliates with “non” as the infraspecific epithet, but the GSD that provides these names has all kind of other data quality problems, so I think these epithets are probably also artifacts due to similar parsing errors in the past.

@KatjaSchulz, do I understand correctly that 'Aus bus Beck in Ken',  'Aus bus Beck ms in Ken', 'Aus bus Beck ex Ken' are all variants of the same?

Yes, I think these can be variants of the same name, albeit with slight differences in meaning. They all indicate that the author of the name (Beck) is not the author of the work in which the name was published. The ms (or sometimes also MS) apparently indicates that the name originated in an unpublished manuscript, e.g., here's the Chimonides, 1987 reference for "Amathia tricornis Busk ms in Chimonides, 1987": https://www.biodiversitylibrary.org/page/2301924

Looks perfect, thanks!


Hotel Booking Website Template

Hello I am participant at GSSOC and I really want to work on this project

[ ] Feature Request

Hotel booking website template can be added to the website

I want to contribute in this gssoc project.


Datastore selection for SQL / JPQL console

datastore selection for SQL / JPQL
CSV export of SQL / JPQL query diagnose file

Coverage remained the same at 75.806% when pulling f209432ea38b851b1aad8b915768a1b465dab605 on datastore-selection-for-sql-jpql into cbf8b832d09288ae5e94bfa114fd4126edd29353 on master.


update nom

nom's dependency on an older version of lexical-core is breaking builds due to the stabilization of BITS in 1.53. Plus it should be updated anyways.

I'm a little confused as to where the breakage is happening. Is the breakage happening in a package you maintain? Since sqlformat is just a library, it doesn't commit the Cargo.lock file, so your project can use any version of nom from the 6.x branch. You can run cargo update -p nom in your project directory and cargo will bump nom in your project to the latest on the 6.x branch.

Yeah, sorry, someone else pointed out the issue and I opened a PR. sqlformat wasn't actually the issue, but it doesn't hurt to update nom anyways.

Feel free to reopen if you're still having problems, but I'm going to close this for now. Thanks.


Add placeholder for a pluralized "points" word, user definable

Not intending to implement at this time.

@fsvreddit Thanks. Does the version update automatically?


Doesn't even remotely work in IE8

Looks like it's not dealing well with nested section tags? That sounds weird and might not be the actual reason, but it's the first error I see in IE8's parsing.

I was including HTML5 shim to fix IE issues, but was including it in the wrong spot. I haven't tested it myself, but I think it should be fixed now.

It works great now, well "IE" great. Which means the different font weights don't work, so it's all "normal" weight, but at least the layout and embedded type works now.

font-style doesn't work either, so italic is faux-italic from the 'normal' style.


Remove Active/Recovered Stats

This will require a sizeable layout change to make the page appealing without these stats.

These are areas to change.

Possibly replace "Recovered" stat with vaccines administered.


Mergers should have three inputs and one output

The number of inputs for mergers is incorrect. There should be three inputs and one output. Currently there are only two inputs and one output.
See the wiki for an explanation of how mergers work.

Hello, mergers only share their name with the in-game ones and it's not the intent to work the same (just as link don't work as conveyor belts or pipes). It's just an organisational node that can be used to merge two inputs link into one. If you want to merge three, you can (at least for now) chain two mergers together.
Each input of the splitter can have its own rate depending on what is plugged on the other side of the link.


k8s ingress controller example

The readme is pretty sparse, but I figure more elaboration could happen as part of the blog post.
Note: This example suffers from the service port vs pod port issue in 0.9.1. As a workaround, all service and pod ports are named http.

Sweeeeet.  As I understand it, you should be able to specify either named or numbered ports in the ingress resource.  The only issue arrises if a service defines a port with port != targetPort.  In that case, the ingress resource must use the targetPort number instead of the port number.

Ah yeah you're right, I didn't fully understand this issue. I can clean the ports up a bit.

@klingerf I did some more research on this. It's possible to use either deployments or daemonsets (each w/ tradeoffs), and I've seen plenty examples of each. The k8s github has examples of both: https://github.com/kubernetes/ingress/tree/master/examples/deployment https://github.com/kubernetes/ingress/tree/master/examples/daemonset
NGINX & Traefik recommend deployments/rcs, but not clear if that's an artifact of daemonsets being a newer resource type.
Is it the seals that are confusing? I can switch to some version of hello world if that would help things. My intent was to have lots of services to route to. (similar to veggies I guess, I could port that over maybe?)

@esbie That all makes sense. I think the current approach you have of running it as a deployment instead of a daemonset makes sense, and also makes sense then to put it in a separate directory, like you did. So I say go for it! Most of my comments were more longer term ideas about how to keep all of the configs in this repo manageable going forward.

Going to merge this today with the understanding that it'll need to be reworked for blog post.


Passing a <Link> to a client component as props creates an error.

Description
Trying to pass a <Link> to a client component as props create the following error:
Functions cannot be passed directly to Client Components unless you explicitly expose it by marking it with "use server".
This is a common patern when using the Material UI components.
Mandatory reproduction URL (CodeSandbox or GitHub repository)
https://github.com/ClementDreptin/next-intl-link
Reproduction description
Steps to reproduce:

Clone the reproduction repository
Install the dependencies with npm install
Start the development server with npm run dev
Go to localhost:3000 to see the error
Checkout the fix branch to see a working version

Expected behaviour
The MUI link being displayed without any errors.

The fixed shown in the repository converts the <Link> component to a client component which seems reasonable considering the <Link> component from next itself is a client component. I don't know if it's a solution you would approve though.

Thanks for the report! This is outside the scope of next-intl as we don't modify the bundling of Next.js. Adding a wrapping component that is marked with 'use client'; is the solution.
E.g.:
'use client';

import NextIntlLink from 'next-intl/link';
import { Link as MuiLink } from '@/mui/material';

export default function Link(props) {
  return (
    <MuiLink
      component={NextIntlLink}
      {...props}
    />
  );
}


Comments in twitter

Are the comments in twitter deliberately disabled or not included, as clicking on post do not load comments

I didn't review Twitter support in AndStatus for a long time.
Maybe some kind of "comments" is not supported.
You can try to select "Open conversation" in the tweet's context menu.
After the "Conversation" screen opens press "Sync with the Internet" button on the top.

Normal comments made under tweets, just like in other, where a user send a tweets and others comments under it, not retweet

As I remember, the "Conversation" consists of "Replies" to the initial Tweet, not of "Comments" on it. This could be only changes in terminology, or "Comments" are really a new kind of "Tweets" that I didn't know about...

Well the replies/comments are not showing can you look into it?

I looked up AndStatus code, and I see that "GET_CONVERSATION" feature is not implemented for Twitter, so you see several messages of the conversation only if they were downloaded e.g. via Home timeline.
I don't have near future plans to extend Twitter support... You could try to do that?!

Have little or no knowledge about it, well thanks for your effort


Event Request - EmailEditor, OnValidate To/Cc/Bcc

We need to perform customized validation of email addresses (To/Cc/Bcc) when input in the Email Editor (Page 13).
As currently designed it is not possible to intercept the input address prior to use.
Request for Integration Events in the OnValidate trigger for those fields
e.g.,
ToField::OnValidate trigger
trigger OnValidate()
begin
OnValidateRecipient(Enum::"Email Recipient Type"::"To", ToRecipient);
EmailMessage.SetRecipients(Enum::"Email Recipient Type"::"To", ToRecipient);
end;
[IntegrationEvent(true, ture)]
procedure OnValidateRecipient(sender: Page "Email Dialog"; RecipientType: Enum::"Email Recipient Type"; var Recipient: Text);
begin
end;

Hey @quadfin
Thanks for submitting this request.
Is there a particular reason to not want validation to run in other cases (e.g. sending an email in the background)?
Isn't it better to raise an event in ValidateRecipients from codeunit "Email Message Impl." where email addresses are already split?
Also, since your request affects only System Application, how do you feel about creating a pull request of your own? :)

Hi Maria,
In this particular case I wish to provide feedback to the user at the point of data entry - so raising the event in the email message codeunit is 'too late' for the functionality targeted.  However your point is noted, there are other features that could be enabled by a more general event.
And your other point is noted -- show me..
OK, I will create a pull and a prototype.
Will do asap.

Awesome, @quadfin
We'll be waiting for your PR. Meanwhile, I will close this issue.
In case you have questions, feel free to ask them!


Casting to same type fails

Casting a primitive to its own type should be a no-op, but currently fails:
$ echo {}  | zq -t "put a=<IP_ADDRESS> | cut a=a:ip" -
bad cast

(This may not fail for all primitive types, but does at least for addr, time, and duration)

Not only is it still broken as of current Zed commit 7db68a5, but a community user has bumped into it as well during beta testing. I'm putting this one nearer the top of our list for consideration of the next issues to take on after the v0.25.0 goes GA.
$ zq -version
Version: v0.29.0-513-g7db68a51

$ echo {} | zq 'put a:=<IP_ADDRESS> | a:=ip(a)' -
bad cast
{a:<IP_ADDRESS>}


Visiting /apps on Android sometimes takes you to the "Linux desktop" subpage

In Chrome on Android.  Heard about this at the PyCon booth.

I think we fixed this recently.  Thanks for flagging it.


Needs to allow 'Return' key to trigger the login

Done using the form tag with a return false to prevent the page refreshing


the js access v3 guide is really rubbish, are you try run it overall process ?

the js access v3 guide is really rubbish, are you try run it overall process ?
the guide really terriable!!!!
where try swap and add, is always not success!!!!!
https://docs.uniswap.org/sdk/guides/liquidity/swap-and-add

Hey @meitianxiaoyixiao - thanks for your comment. Do you have any suggestions on how we could improve the documentation? The docs website is open-source https://github.com/Uniswap/docs, we would love if you submitted a PR with improvements!


hand entering data

Theoretically, I should be able to find a seed by hand entering data, in a very hacky method. I just want to know where in the code the numbers are used in the calculations, how to differentiate them and if there are any more data besides location, like type or orientation, that needs to be entered.
(I'm halfway through advanced java so I understand 75 percent of this and I'm looking through the files, however i probably just need to spend more time to be sure what im thinking is correct)

I'll just read the files closely


it only show a fixed stance even if other stance would be better on farming

https://pastebin.com/64Cy0TwV (to be friendly to the pastebin server, it will expire in a month)
playing slow challenge, climbed to z110, then do farming on the perfect SMC garden map lv110 in D as zfarm shows, then being killed after slaying 10+ enemies.
after shifting to X stance on the same map, trimps stay alive during the whole breed cycle, killing each enemy within <1000ms.

what's more, in your calculation health and block are not affected by formation.

Health and block are definitely affected by formation. The only issue here is that zFarm does not know about the Slow challenge. Without Slow, it would indeed be optimal to farm z110 in D, as zFarm recommends.


Fail early when building dependent projects

Is your feature request related to a problem? Please describe.
Say, there are 4 projects in a mono-repo: prj1, prj2 (depending on prj1), prj3 (depending on prj1), prj4 (depending on prj2, prj3).
Currently, afaict, from my real world mono-repo, prj1 is built, then prj2 and prj3, then prj4 - even if prj1 fails to build! Even more, it seems, that the cached file information prevents another build (such that "-r" needs to be used).
Describe the solution you'd like
yarn.build should fail as soon as possible. If there are some projects built in parallel those should not be stopped of course:
prj1 fails - no other prj will be built
prj2 fails - prj1 had been built before, proj3 will be built, prj4 will not be built
Cache information will only be written for projects that have been built successfully.
Describe alternatives you've considered
none
Additional context
none

Thanks for this report, I had noticed some similar behaviour. I think I've fixed this in the next release, including preventing dependencies from being built of a failed build.
yarn build --bail didn't work correctly, has been fixed, and is now the default.
yarn build --continue-on-error will allow the previous behaviour.


Can't Install in Laravel 10

Laravel Version: 10.48.22
PHP Version: 8.2.0

Description
I was trying to install in laravel 10. But it creates issues while installing

Steps To Reproduce
composer create-project --prefer-dist laravel/laravel demo10 10.*
cd demo10
composer require jerome/fetch-php

Noted! I'll release a patch for this. Apologies for the inconveniences!

Noted! I'll release a patch for this. Apologies for the inconveniences!

No worry . Waiting for the release

@arif98741 just letting you know I've attempted a patch for this issue in v1.1.1. Let me know if it has fixed it.

@arif98741 just to give you an update, I'm still investigating this issue. I can reproduce it but still trying to figure out how to fix this. Any assistance will be greatly appreciated! 😁

@arif98741 I think I've managed to fix it. I have not made a new release but I have made a re-release of v1.1.1. Would appreciate some feedback on this please? 🙂

Ok. Let me check that pre release

It's successfully installed in laravel 10 without any issue 🔥

Closing this issue, but will re-open if someone else has the same issue even after the fix.


Fix for intermittent tenant registry loading issue

Jira: https://wso2.org/jira/browse/REGISTRY-3932
related fix for the same issue: https://github.com/wso2/carbon-governance/pull/288

@daneshk @cnapagoda Please review.


⚠ Bofrost.be has degraded performance

In f7baabf, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1200 ms

Resolved: Bofrost.be performance has improved in db0dfc6 after 6 minutes.


PI use Application.Current.GetService().DispatcherQueue

Dev Home version
No response
Windows build number
No response
Other software
No response
Steps to reproduce the bug
krschau yesterday
This is going to be null when not running on the UI thread (which this isn't guaranteed to be doing). Use
var dispatcherQueue = Application.Current.GetService();
or
var dispatcherQueue = Application.Current.GetService().DispatcherQueue;
like here https://github.com/microsoft/devhome/pull/2934
(I'm not actually sure if one is preferred... @nieubank?)
Expected result
No response
Actual result

Included System Information
No response
Included Extensions Information
No response

Won't fix.


Fix write ACL attribute

Problem
PR #13756 altered write ACL function so it has too many outstanding iterators
at a time.
Change overview
Scope the added iterator so it doesn't interfere with the other one.
Testing

Wrote ACLs on two fabrics using all-clusters-app with REPL on Linux.

/rebase

/rebase


Issue with TuMangaOnline source

There’s an issue with the TuMangaOnline source, it says that you may be disconnected or there’s a problem with the source, when you go to the website there’s nothing wrong with it. Could you please fix it? This is for the Spanish speakers please.

does this always happen for you? which manga? the source works fine for me

does this always happen for you? which manga? the source works fine for me

Hi! Ive been trying with different mangas and it only happens when it is a Manhwa, when doing it in the website it actually use other domain than the website domain at the moment you enter to a chapter, so maybe it crashes the app.

if you could give a specific example of one that would be helpful

Yeah, like “Jinx”, when I select the chapter it doesn’t let me read it. If you need the example of the website I can send it too. @Skittyblock

if you could give a specific example of one that would be helpful


Pagination for all-transactions does not work well

https://safe-transaction-gnosis-chain.safe.global/api/v1/safes/0xeda046C9f8fd29636Bb621892718B9754F244b97/all-transactions/?limit=17&offset=0&executed=true&trusted=true does not return the number of elements set by limit. It looks like it's related to caching of the endpoint

Looks good to me, I can see that the expected number of transactions are being returned now when setting a limit 😄


Refactor: Extract RunArguments type for clarity

Hi @Ivan-Mikitenko, thanks for your contribution! Could you please describe what issue your PR is solving? It's not that we are opposed to having more type information in the codebase, it's actually needed, however each and every change should be motivated: Tact is a long-term project and we won't documented decisions to make it easier for future contributors to help with Tact's implementation.
(We don't have a contributing guide yet, but it's on our TODO list: #186)


Temporary CI fixes due to FStarLang/FStar#3615

Since Ubuntu 23.10 is EOL, and 24.04 does not work with F* CI, the latter was reverted to Ubuntu 22.04, see FStarLang/FStar#3615
This PR adapts to this change.

Thanks Tahina!


ForwardAccumulator fails with experimental_run_functions_eagerly(True)

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): macos Catalina
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below):  2.2.0rc4
Python version: 3.7.5
Bazel version (if compiling from source): n/a
GCC/Compiler version (if compiling from source): n/a
CUDA/cuDNN version: n/a
GPU model and memory: n/a

Describe the current behavior
Running the examples in tf.ForwardAccumulator docs fail with RecursionError: maximum recursion depth exceeded when running with tf.config.experimental_run_functions_eagerly(True).
Describe the expected behavior
Running the examples in tf.ForwardAccumulator docs with tf.config.experimental_run_functions_eagerly(True) work the same way as when running with tf.config.experimental_run_functions_eagerly(False).
Standalone code to reproduce the issue
This is the standard example from https://www.tensorflow.org/api_docs/python/tf/autodiff/ForwardAccumulator, with just the experimental_run_functions_eagerly(True) call added.
import tensorflow as tf

tf.config.experimental_run_functions_eagerly(True)

v = tf.Variable([1., 2.])
with tf.autodiff.ForwardAccumulator(
    v,
    # The "vector" in Hessian-vector product.
    tf.constant([1., 0.])) as acc:
  with tf.GradientTape() as tape:
    y = tf.reduce_sum(v ** 3.)
  backward = tape.gradient(y, v)
backward  # gradient from backprop

acc.jvp(backward)  # forward-over-backward Hessian-vector product

Other info / logs Include any logs or source code that would be helpful to
diagnose the problem. If including tracebacks, please include the full
traceback. Large logs and files should be attached.
...
    self._push_tape()
  File "/Users/hartikainen/conda/envs/policy-evaluation/lib/python3.7/site-packages/tensorflow/python/eager/backprop.py", line 849, in _push_tape
    watch_accessed_variables=self._watch_accessed_variables)
  File "/Users/hartikainen/conda/envs/policy-evaluation/lib/python3.7/site-packages/tensorflow/python/eager/tape.py", line 48, in push_new_tape
    return Tape(tape)
RecursionError: maximum recursion depth exceeded

@hartikainen
I have tried in colab with TF 2.1.0, 2.2-rc4 and i am able to reproduce the issue.With tf.config.experimental_run_functions_eagerly(True) i am able to reproduce the issue.However with
tf.config.experimental_run_functions_eagerly(False) i am not seeing any issue.Please, find the gist here.Thanks!

Yep, that's what I see too: fails with tf.config.experimental_run_functions_eagerly(True) and works with tf.config.experimental_run_functions_eagerly(False). Sorry if that was not clear from the title and description.

Thank you for the report. I'll opt that forwardprop utility function out of run_functions_eagerly. The change should land in a few hours.


update pulumi editions docs page

overview
pulumi product editions should be updated to align with the pricing page
design details

~[ ] update headings, individual, and team instead of community and other~
[ ] improve redirection to creating a new org and tell users why
[ ] add relevant content to align with pricing page

this was updated in the last release


Write a Ruby program to find average of digits of a number

Description
Write a Ruby program to find average of digits of a number
Average of digits of a number is the sum of all digits divided by the number of digits.
Input  : 123
Output : 2

How to contribute

Save the solution in program/FindAverageOfDigitsOfANumber.rb file
Add FindAverageOfDigitsOfANumber.rb file in find-average-of-digits-of-a-number folder

!assign

Hey @Fukurokudzu, this issue is already assigned to @anandfresh !!!
Please choose another issue.
Thanks for your interest in contributing to this project.


Thread paniked

I got an error (see screen shot)
I am using Win 10 x64 22H2 (19045.3803), Fliiper firmware Unleashed 069e
and actual fap from Flipper Lab (v 1.0) with Last backend from here:
https://github.com/vollukas/flipper-pc-monitor-backend/releases

Do you have AMD or Nvidia GPU? Seems like a problem with reading values from nvidia driver.. I haven't touched anything GPU related in my fork so I guess this problem should be also present in old build here on this repo..
Try updating your Nvidia driver, but if you have AMD GPU then it's a bug in code.. there was a fix for AMD crashing before but it might not be complete

After various tests, I have come to understand the cause. In my environment, I tested with the following setups:
(main pc)
Win11 x64 RTX 3060 x2: Error occurred.
Win11 x64 RTX 3060: It worked.
(sub pc)
Win10 x64 GTX 1080 with GTX 1650: Error occurred.
Win10 x64 GTX 1650: It worked.
Win10 x64 GTX 1080: It worked.
From these results, what can be said is that
the operating conditions require an Nvidia graphics card,
and it seems to work only when the graphics setup is not multi-GPU


Frontend

Frontend doesn't load when I drag it into my main file can anyone help?

Im hav ing the same issue

likewise

Have you got a fix?