[SPARK-24341][SQL] Support only IN subqueries with the same number of items per row

What changes were proposed in this pull request?
Using struct types in subqueries with the IN clause can generate invalid plans in RewritePredicateSubquery. Indeed, we are not handling clearly the cases when the outer value is a struct or the output of the inner subquery is a struct.
The PR aims to make Spark's behavior the same as the one of the other RDBMS - namely Oracle and Postgres behavior were checked. So we consider valid only queries having the same number of fields in the outer value and in the subquery. This means that:

(a, b) IN (select c, d from ...) is a valid query;
(a, b) IN (select (c, d) from ...) throws an AnalysisException, as in the subquery we have only one field of type struct while in the outer value we have 2 fields;
a IN (select (c, d) from ...) - where a is a struct - is a valid query.

How was this patch tested?
Added UT

cc @cloud-fan @dilipbiswal @gatorsmile @juliuszsompolski: it is currently a WIP since I think the UTs have to be formalized a bit better. But I wanted to share with you this in order to understand if you agree on the strategy of this PR. I'd really appreciate any feedback. Thanks.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/3478/
Test PASSed.

@mgaido91 can you link the correct JIRA? This one does not seem to be the correct one.

thanks @hvanhovell, sorry for the error. I changed to the right one.

I think that the way the columns are defined in the subquery should define the semantics.
E.g.:
(a, b) IN (select c, d from ...) - unpack (a, b) and treat it as a multi column comparison as in current semantics.
(a, b) IN (select (c, d) from ..) - keep it packed and treat it as a single column IN.
(a, b, c) IN (select (d, e), f from ..) or similar combinations - catch it in analysis as ambiguous
(a, b, c) IN (select (d, e), f, g from ..) - but this is valid as long as a matches the type of (d, e)

@juliuszsompolski I see your point and I can say it is an acceptable solution. Though it has some problems I think. If we follow this path, we are saying that: (a, b) IN (select c, d from ...) has a different result from (a, b) IN (select (c, d) from ..) and (a, b) IN ((1, 2)). We can probably argument that they are different things so they can lead to different results, but this is no very intuitive for a user.
I'd prefer, in this case, having a rule about how we behave and follow that, throwing an AnalysisException otherwise. This is also the behavior of other RDBMS (I checked Oracle and Postgres):

(a, b) IN (select c, d from ...) unpacks them;
(a, b) IN (select (c, d) from ..) throws an AnalysisException

So I would suggest going on with this approach, which could solve also other issues like SPARK-24395 since they would be considered as invalid.
cc @hvanhovell what do you think?

@mgaido91 BTW: In SPARK-24395 I would consider the cases to still be valid, because I believe there is no other syntactic way to do a multi-column IN/NOT IN with list of literals.
The question is whether it should be treated as structs, or unpacked?
If like structs, then the current behavior is correct, I think.

@juliuszsompolski yes, you're right, sorry, SPARK-24395 uses literal and not subqueries, sorry.

Test build #92084 has started for PR 21403 at commit df7d3ee.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/316/
Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/4210/
Test PASSed.

Merged build finished. Test PASSed.

Test build #92085 has finished for PR 21403 at commit c9a36e0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class In(values: Seq[Expression], list: Seq[Expression]) extends Predicate

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92085/
Test FAILed.

Test build #92084 has finished for PR 21403 at commit df7d3ee.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92084/
Test PASSed.

I updated the PR according to the previous discussion.
@hvanhovell @juliuszsompolski may you please take a look at it now? Thanks.

I agree with the proposed behavior, but I'm a little worried about hacking the existig In expression to implement it.
I took a look at postgres, a = b is equal to a.i = b.i and a.j = b.j if a and b are both struct type with same number of fields with same type. If we make Spark's equal operator follow this semantic, it can make this PR simpler.

@cloud-fan thank for looking at this. I don't think that "hack" can be removed. Let me show an example when I think we cannot avoid that change.
Imagine this query:
select 1 from (select (1, 'a') as col1) tab1 where col1 in (select 1, 'a')

Without changing the way In is built this is equivalent to:
select 1 from (select 1 as col1, 'a' as col2) tab1 where (col1, col2) in (select 1, 'a')

But the first query is invalid, as the outer value has one element an the subquery has 2 output fields, while the second query is valid. So the only way I found in order to avoid problem like this is changing In as done in this PR.

OK I see the point now.
a IN (select (c, d) from ...) is valid but (i, j) IN (select (c, d) from ...) is not. This is a little weird because a is semantically same with (i, j) if a is struct type with 2 fields i and j. It sounds like we want to treat (...) specially in the context of IN expression.
Can you give some similar examples in other databases?

yes @cloud-fan , you're 100% right, we want to treat (...) differently when it is in front of IN.
Here you are the previous example in Postgres:
mgaido=# select 1 from (select (1, 'a') as col1) tab1 where col1 in (select 1, 'a');
ERROR:  subquery has too many columns
LINE 1: ... 1 from (select (1, 'a') as col1) tab1 where col1 in (select...

mgaido=# select 1 from (select 1 as col1, 'a' as col2) tab1 where (col1, col2) in (select 1, 'a');
 ?column?
----------
        1
(1 row)

In Oracle/MySQL you cannot create structs using (...) but you have to define a custom data type for structs, so this situation is prevented to happen.

Test build #92524 has started for PR 21403 at commit 268307f.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/617/
Test PASSed.

Test build #92524 has finished for PR 21403 at commit 268307f.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class InValues(children: Seq[Expression]) extends Expression
case class In(value: Expression, list: Seq[Expression]) extends Predicate

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92524/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/648/
Test PASSed.

Test build #92581 has started for PR 21403 at commit d3e39ed.

Test build #92581 has finished for PR 21403 at commit d3e39ed.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92581/
Test PASSed.

anymore comments @cloud-fan @hvanhovell @juliuszsompolski ?

kindly ping @cloud-fan @hvanhovell @juliuszsompolski

Test build #93106 has started for PR 21403 at commit a5771b8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1010/
Test PASSed.

Test build #93106 has finished for PR 21403 at commit a5771b8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93106/
Test PASSed.

Looks good to me, though I'm not very familiar with analyzer.
@cloud-fan, @hvanhovell ?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1273/
Test PASSed.

Test build #93497 has started for PR 21403 at commit c0ad1e3.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1274/
Test PASSed.

Test build #93498 has started for PR 21403 at commit 60b57d2.

Test build #93496 has finished for PR 21403 at commit 7c898a5.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93496/
Test FAILed.

Test build #93498 has finished for PR 21403 at commit 60b57d2.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93498/
Test FAILed.

Test build #93497 has finished for PR 21403 at commit c0ad1e3.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test build #93508 has started for PR 21403 at commit 22f77ae.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1282/
Test PASSed.

cc @maryannxue Review this?

Test build #93508 has finished for PR 21403 at commit 22f77ae.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93508/
Test FAILed.

I think the behavior definition is good and clear. But just a question on the implementation: is it necessary to introduce a new class InValues? or we could simply make In has it's first child "value" as Seq[Expression] type?

@maryannxue that is feasible too and indeed it was the original implementation I did, I switched to this approach according to this discussion: the goal was to avoid to change the In signature and the parsing logic in the many places.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1306/
Test PASSed.

Test build #93539 has started for PR 21403 at commit 0412829.

Test build #93539 has finished for PR 21403 at commit 0412829.

This patch passes all tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93539/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93543/
Test PASSed.

@mgaido91 I see. But by using Seq[Expression] in In, can we hopefully remove ResolveInValues. I wouldn't mind changing the parser if it's necessary and if it saves work elsewhere. Having such a temporary expression which doesn't mean anything more than a wrapper of Seq[Expression] doesn't look like a very clean approach to me.

@maryannxue as I said my initial proposal was like that. I think that this has the advantage of avoiding some code duplication as the same logic which is added in ResolveInValues has to be spread over all the places where a In is build and avoiding to change the In signature, so that if a user is using In directly in his/her code we don't break it. On the other side, I agree with you that the approach having a Seq[Expression] is cleaner IMO (that's why it was my original proposal). @cloud-fan @gatorsmile what do you think about this?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1356/
Test PASSed.

Test build #93599 has started for PR 21403 at commit f5fa2c4.

case class In(value: Expression, list: Seq[Expression]) is an internal class. We do not expect user applications rely on the internal data structure. If they did, they should understand the class will not be stable.
The suggestion of @maryannxue is better, IMO.

Test build #93599 has finished for PR 21403 at commit f5fa2c4.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93599/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1405/
Test PASSed.

Test build #93670 has started for PR 21403 at commit 571b273.

Test build #93670 has finished for PR 21403 at commit 571b273.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class In(values: Seq[Expression], list: Seq[Expression]) extends Predicate

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93670/
Test PASSed.

any more comments on this @cloud-fan @gatorsmile @maryannxue ?

Test build #93783 has started for PR 21403 at commit 423e93e.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1485/
Test PASSed.

Test build #93783 has finished for PR 21403 at commit 423e93e.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
trait BarrierTaskContext extends TaskContext
class BarrierTaskInfo(val address: String)
class RDDBarrier[T: ClassTag](rdd: RDD[T])
case class WorkerOffer(
case class Shuffle(child: Expression, randomSeed: Option[Long] = None)
case class ReplicateRows(children: Seq[Expression]) extends Generator with CodegenFallback
trait AnalysisHelper extends QueryPlan[LogicalPlan]
case class Intersect(
case class Except(
case class RandomIndicesGenerator(randomSeed: Long)

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93783/
Test PASSed.

@cloud-fan the problem is that the change is not only for the case when IN is followed by a listquery. The change is needed also in the other case. And the reason why this change is needed is to detect the difference between these 2 queries:

select 1 from (select (1, 'a') as col1) tab1 where col1 in (select 1, 'a') or equivalently select 1 from (select (1, 'a') as col1) tab1 where col1 in ((1, 'a'))
select 1 from (select 1 as col1, 'a' as col2) tab1 where (col1, col2) in (select 1, 'a') or equivalently select 1 from (select 1 as col1, 'a' as col2) tab1 where (col1, col2) in ((1, 'a'))

In particular, queries 1 are invalid as they are comparing one value column with 2 column in the inner query/list of constants; while queries 2 are valid as they are comparing 2 columns on both sides. I hope this clarifies that introducing a specific InListQuery couldn't solve the problem.

It's not public so we can change it, but I believe some advanced users use these internal classes and we should keep these classes unchanged as possible as we can.

I agree with you on this point, that is why I initially changed my proposal from Seq[Expression] to introducing the new InValuesexpression. Though also this might break existing user code as there is an extra expression they wouln't expect. So I think both solutions are equivalent. The only thing we cn do about this point is wait for 3.0 to have this in if we consider this a breaking change.

The example of non-sub-query looks weird. If where col1 in ((1, 'a')) can't work, what is the right query if we do have a struct type column?

no, sorry, you're right. In the case when it is not a subquery, it is safe to treat them as the same. I got confused checking the result of other DBs as they are all behaving differently in that scenario. I will try and follow your suggestion about creating a new InSubquery expression then, in orer to handle that case where all DBs behave consistently and it is more clear which the behavior should be. Sorry for the mistake. Thanks.

Had a related discussion with @marmbrus a few months ago. He also does not like reusing IN expression for subquery processing. I think it makes sense to introduce InSubquery expressions for subqueries.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1655/
Test PASSed.

Merged build finished. Test PASSed.

Test build #93999 has started for PR 21403 at commit 0f00a06.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1657/
Test PASSed.

Test build #94001 has started for PR 21403 at commit 53e3d96.

Test build #94001 has finished for PR 21403 at commit 53e3d96.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94001/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93999/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1754/
Test PASSed.

Test build #94129 has started for PR 21403 at commit 45a91fc.

Test build #94129 has finished for PR 21403 at commit 45a91fc.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94129/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1765/
Test PASSed.

Test build #94156 has started for PR 21403 at commit cb3467b.

Test build #94156 has finished for PR 21403 at commit cb3467b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class Exists(
case class InSubquery(values: Seq[Expression],

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94156/
Test FAILed.

Test build #94178 has started for PR 21403 at commit a6114a6.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1777/
Test PASSed.

Test build #94178 has finished for PR 21403 at commit a6114a6.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class InSubquery(values: Seq[Expression], query: ListQuery)
case class ListQuery(
case class Exists(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94178/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1793/
Test PASSed.

Test build #94202 has started for PR 21403 at commit a6114a6.

Test build #94202 has finished for PR 21403 at commit a6114a6.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class InSubquery(values: Seq[Expression], query: ListQuery)
case class ListQuery(
case class Exists(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94202/
Test FAILed.

Test build #94269 has started for PR 21403 at commit eb1dfb7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1836/
Test PASSed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94269/
Test FAILed.

retest this please

Test build #94281 has started for PR 21403 at commit eb1dfb7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1843/
Test PASSed.

Test build #94281 has finished for PR 21403 at commit eb1dfb7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94281/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1852/
Test PASSed.

Test build #94292 has started for PR 21403 at commit eb1dfb7.

LGTM, merging to master!

@cloud-fan, no, it introduces a behavior change when structs are involved. The two queries here would fail before this query, while the version written like this would work (and after the PR doesn't work instead):
select count(*) from struct_tab where record in (select a2, b2 from tab_b);
select count(*) from struct_tab where record not in (select a2, b2 from tab_b);

Since before the PR any struct before the IN operator behaves like having (f1, f2, ...), while after the PR a struct there is considered as a field.

ah i see. Can you add it to the migration guide? We need to tell users what will break after upgrading to 2.4 and why.

@cloud-fan sure, I'll create a followup PR, thanks.

oh, I see @cloud-fan. But, IIUC, the other one is not used anymore. The only reference was removed by 4ce970d71488c7de6025ef925f75b8b92a5a6a79. I'll submit a PR to remove it if you agree.

sure, feel free to open a PR first.


[-] MO : dashproducts -> add description

Hi,
Thank you for your PR and contribution.
Best regards


Folders in Database Tasks Tab are collapsing in case of task deletion

When grouping is enabled for DB tasks, then folders in Database Tasks Tab are collapsing in case of task deletion:

(transferred from the EE bug tracker)

The same is true for the addition.

Fixed.

verified


Return errors instead of throwing them

Motivations:

Allows for better type inference
Facilitates pattern matching
Cleaner code through elimination of try/catch logic
Throwing exceptions are generally regarded as an antipattern
Traceability can be kept by using the cause property of Error

Hi @Peruibeloko,
Thanks for raising this point about error handling!
While I appreciate your perspective on exceptions as an anti-pattern, I see them as a valid tool in many scenarios, especially for handling truly exceptional situations (like runtime errors).
That said, I acknowledge that returning errors can improve code clarity in certain cases. I'm not planning on making a wholesale change to the error handling right now, but I'm definitely open to exploring a hybrid approach in the future. This might involve returning errors for more predictable scenarios and reserving exceptions for truly unexpected issues.
Would you be willing to share some specific examples from your experience where you've found returning errors to be a particularly effective approach? This would help me understand your use case better.

Absolutely @Pinta365! Thanks for the attention :)
My current use case is perhaps one of the most common: Issuing and verifying JWTs for Bearer Authentication. The suggestion stems from my current setup which relies on using the aud field for storing the user email.
Since the signing keys are unique to each user (a possibly unfortunate design choice), I need to first verify the integrity of the JWT, before retrieving the user email from the aud field.
Unsafely parsing the JWT to check for its integrity may be avoided in my specific case, but its nonetheless a pretty common thing to do (I suppose :P) in order to quickly reject any invalid requests, before attempting to fully verify the message, which might pose workload implications.
All this really boils down to preference, as you said yourself, and could easily be circumvented by wrapping the exception handling inside an unthrow function, which either returns the result of a successful invokation, or the error itself (which can be type checked using generics). I've been able to implement such workaround, and it works quite well! But I'd like to propose the discussion either way :) (Reference)
I'm also open to help implementing said 'mixed' approach, which reminds me of Carson Gross' take on APIs


Clean up source, fix duplication bug.

Update to latest CraftBukkit namespaces.
Fix a duplication bug where players could duplicate items through anvils.
Clean up the source a bit; change player names in the task Hashtable to UUIDs.

Code was re-written


[UI] Implement "as part of the community " section

Implement the first section directly after the hero section
figma url

Can I work on this

Yes please

I Can make it please give it to me. i am working on it.

I Can make it please give it to me. i am working on it.

You can work on it no problem


appear property on transition object not working

i just noticed the appear property on the transition object doesn't seem to work. and is missing in the docs.
is it not implemented or only missing in the docs and i'm doing something wrong and that makes it not work.
export default {
  transition: {
      appear: true,
      css: false,
      mode: 'out-in',
      enter (el, done) {
       done()
      }
  }
}

This question is available on Nuxt.js community (#c487)

It's normal since the appear transition is never called when server-rendered.
See my comment about it.

ugh, i missed your comment about that, when going through related issues.
it kind of feels like ssr is holding back some important features for the client side, still hoping for a global ssr: false to avoid these problems.
thank you!

Yes but keep in mind that ssr: false will have an "empty" HTML, so no advantage for SEO.

i know, maybe utilizing prerender-spa-plugin when ssr: is set to false is an idea. but that probably kind of opens a box of new issues.
anyway you don't really take advantage of real ssr when using nuxt genereate anyway do you?
– thats my point in that case

When you call nuxt generate actually, it generated the pages like server-rendered, so it's perfect for SEO and performances since it can be hosted on a CDN.
If you go to https://nuxtjs.org an look at the source code, the HTML is generated and it uses nuxt generate (it's actually hosted on surge.sh)

yeah as long as you're working without alot of js heavy dom manipulation thats great. but as soon as you use a few modules to enhance the ux its becoming a pain in the ass and makes the generate feature which is supposed to be a major asset less valueable.
hope the constructive feedback is ok - some ppl might use nuxt for its generate feature in the first place so we gotta look at it from that perspective in order to make it valueable.

What kind of modules do you use for heavy dom manipulation?
I'm open to constructive feedback :)

well "heavy" might be a rather relative term, and i'm not able to give you a big list of modules causing troubles, since im not a experienced  nuxt.js user yet, but so far I had to look for workarounds for almost every module, which is fine, but kills the advantage you're supposed to get by using nuxt. hope you get my point – theres a solution for everything i'm just feeling ssr causes problems when building with client side and static hosting in mind.
is used to following modules and experienced issues regarding ssr
vue-lory (no workarround yet)
vue-google-maps
smooth-scrolling
vue-sticky

@Atinux actually, it would be great to have a possibility to use appear even with SSR enabled. I mean, it's probably not about Nuxt but about Vue itself, but nevertheless. One possible solution could be deliberately changing page's key attribute in browser only (maybe in nuxt's root element's mounted method?).

@gbezyuk indeed it's more a Vue feature directly. But since Vue.js does not change the DOM when the page is server-rendered, it's impossible to call the appear transition.
But you can do the appear transition yourself with Nuxt.js 😄
Look at my demo: https://ordinary-glider.glitch.me/
And the code: https://glitch.com/edit/#!/ordinary-glider

hey @Atinux what if you are using javascript hooks? I'm trying to acces the current transition through
window.$nuxt.nuxt.transitions[0].enter()
but it's throwing an error saying "done is not a function". Could you tell us please where the transition of the current route is stored, so that we can call enter() of current route onNuxtReady?

Hey Atinux, is there a way to use the appear transition or onNuxtReady() with the transition object and GSAP? I note that transition object options only seem to fire when traversing between pages of the app, and not on initial page load.


Fix an lib error while building with CUDA9.1

Some header files in CUDA9.1 was moved into dir cuda/include/crt causing when building with CUDA9.1 headers like math_functions.hpp could no long be loaded.  Adding the directory into BUILD file fixs the issue.

Can one of the admins verify this patch?

I signed it!

Jenkins, test this please.

@nluehr This looks to be a breaking change coming to us from CUDA side. Is there a documentation, recommended action for this?

Also, This is a PR to the release branch. We do not accept any PRs to the release branch, please send this change against master first.

Can one of the admins verify this patch?


Explore different ways to select and weight subpoints

In conversation with @temospena about this, could be really interesting and publishable.

let's write a paper on this, using London data!

https://github.com/acteng/overview/issues/14 is one idea in this direction. From local knowledge / intuition, I want to weight a small convenience store differently than a Tesco superstore in the UK for grocery destination. If I have a bit of info on the income level from census about the person in consideration, I might even weight Waitrose / fancy non-chain organic shop / Lidl / Morrisons differently. Anyone know any datasets about number of visits to different types of shops, or specific shops?
https://github.com/acteng/overview/issues/13 is the equivalent for origins. Besides some of the possible sources listed, I would also consult Polly from Colouring Cities to get ideas


Helen ss175 control freecad output

This pull request was made to fix issues mentioned on PR 42

Hi Martin,
The following 3 commits are the ones that you have not already reviewed somewhere else and the are all that needs to be review. Everything in this PR has been done as a response to a comment somewhere so none of it is original code.

fixing csv that the user has access to
fixed the necessary requests on PR42
Added comment to sphere cut out


Run build task on Travis CI

Travis runs npm test by default but not build script. Github tests
were runing build and then test and passing where as Travis was failing
because build script had not been run.

@katstevens I'm not sure about using a Makefile for this repo. It's easy enough to look at the scripts in package.json to see what's available.
ideally, it should just be build, test, release-to-branch & publish.


Finish sending out Terms notification

Picking up from https://github.com/gratipay/gratipay.com/pull/4232#issuecomment-271026845 ...

[ ] Update the participants query to only select those who have signed in (session_expires) or show up in payments or exchanges within the past 180 days.
[ ] Mail all of them, tracking bounces in SQS.
[ ] Manually retrieve bad addresses from the queue—within 14 days!—and drop them to unverified in the database.
[x] Reticket proper bounce handling with a webhook back to https://gratipay.com/: #4284.

Reticketed https://github.com/gratipay/gratipay.com/issues/4284 for automated bounce processing.

I'm thinking through how to constrain the list of participants we're mailing. What we want to avoid is blasting everyone because we want an excuse to blast everyone (turning this ToS notice into a marketing message, essentially). This fellow thinks that it is enough to have a notice on the website for a certain period of time (though he also says we should require ourselves to notify users in this way; cf. https://github.com/gratipay/inside.gratipay.com/issues/926). I suppose that means we can constrain the email blast to a list of more truly active users.

If we determine, in our sole discretion, that a change to these Terms is material, we will notify you of the change through the Service or by emailing you at the address associated with your account.

I never noticed that "material" clause there before. I guess that means you can only notify people who are active, because otherwise it doesn't apply to them?

@mattbk in slack:

I think Gratipay as a whole errs a little too much on the side of "never email users." What's the harm? If a "inactive" user receives an email, they'll either a) trash it, b) get mad they received it, and continue being inactive, or c) visit the site and see what's up. Don't the benefits of (c) outweigh the potential downsides of (b)?
From my reading, it seems like "selling" (even if it's just a TOS notification) to people who are already users is much easier than selling to people who have never been users before. These are people who have already signed up, maybe entered credit card information, or are otherwise invested.

When I get an email from a company I haven't interacted with in two years, I consider it an annoying interruption. It makes me think less of the company. "Sheesh. Don't you know I don't care about you?"

Don't the benefits of (c) outweigh the potential downsides of (b)?

I guess for me I feel like they don't, is what I'm saying. 😞
Let's see how many participants we're talking about ...
As written, we're looking at ~5500 ...

I find 4645 distinct participants in the exchanges table from all time.

That's select * from (select distinct on (participant) participant, count(*) from exchanges group by participant order by participant) _ order by count desc;.

I find 529 active in the past 180 days.
gratipay::MAROON=> select count(*) from (select distinct on (participant) participant, count(*) from exchanges where timestamp > now() - '180 days'::interval group by participant order by participant) _ order by count desc;
┌───────┐
│ count │
├───────┤
│   529 │
└───────┘
(1 row)

So ... 10%.

I'm really comfortable emailing that set of users with the terms notice. I think mailing the full 5500 is more risk than it's worth. We don't want to be spammers. 😞

@mattbk Can you live with mailing our 529 recently active users?

Actually, though, how many of those recent exchangers do we have email addresses for?

Answer: 406.
SELECT * FROM (
    SELECT p.username
         , p.email_address
         , ( SELECT count(*)
               FROM exchanges
              WHERE participant=p.username
                AND timestamp > now() - '180 days'::interval
            ) AS nexchanges
      FROM participants p
     WHERE email_address is not null
       AND claimed_time  is not null
       AND is_closed     is not true
       AND is_suspicious is not true
) _ WHERE nexchanges > 0 ORDER BY nexchanges desc;

I feel really good about mailing this list.

Yes.

Okay! I've added a commit to refactor a nearby test suite per https://github.com/gratipay/gratipay.com/pull/4266#discussion_r95221517, and another to constrain the list of participants we're mailing to (with tests). Code is ready for review, @mattbk @nobodxbodon!

I'll hold on reviewing till tests pass.

Rebased and test suite (hopefully) cleaned up.

Green! :-)

@mattbk Eeeeeeee! Merge? :)

Back to you, @nobodxbodon ...

Check 'em, friends. :-)

[ ] @whit537
[ ] @nobodxbodon
[ ] @mattbk

Meh, overlaps with GitHub's (over-engineered) UI for approval.
I am good to go, @nobodxbodon! :-)

💃

Picking up in https://github.com/gratipay/inside.gratipay.com/issues/972 ...


Wordpress sample stack end-to-end setup

Related to #572
What seems to be the problem?

As part of #572, we want to set up a wordpress stack to use as a sample of using a controller in a stack. When we're setting that up, there will be some chunk of work which is some initial setup and configuration, and isn't related to the functionality.
What could Crossplane do to help?
This is probably part of the user story tracked by #638, but for ease of work-tracking I am splitting the setup work into its own deliverable.
However, this could also be used to do some initial exploration and experimentation around what the stack development workflow might look like.
What does this look like when it's done?

We have a repo which has all the boilerplate done for developing a stack
The stack repo should have solutions for everything needed for developing the stack:

Bundling
Publishing locally
Installing locally
Uninstalling locally

The stack should have some minimal functionality which can be used to validate that everything works end-to-end. This could be something as simple as watching a custom resource type and printing something out when it's found

Fixed in https://github.com/crossplaneio/sample-stack-wordpress/pull/2


A few questions

Your script is great, it's exactly what I was looking for!
I have a few questions:

How can you define .OnEvent('Escape', (gui) => gui. Destroy()) for example for Notify.Show('The quick brown fox jumps over the lazy dog.',,,,, 'dur=4 pos=tc')
?
I saw that you use rounding corners, I would be very grateful if you could explain to me how to do this, for example in my script there is
MyMsg := Gui('+AlwaysOnTop -Caption +Disabled -SysMenu +Owner +Border'), MyMsg.SetFont('s11',"Segoe UI Semibold")
MyMsg.BackColor := '0xfffcde'
MyMsg.AddText 'Center', 'MY MSG'
MyMsg.Show

Could you please write me a script that will round the corners of MyMsg GUI?
Many thanks!

@H5820121 I've posted a response on the forum.

Thank you, the scripts you gave are great!
Does Notify.ahk have an option like DrawBorderRound(hwnd, color)?
בתאריך יום ב׳, 9 בספט׳ 2024 ב-22:15 מאת XMCQCX <
@.***>:

@H5820121 https://github.com/H5820121 I've posted a response on the
forum.
—
Reply to this email directly, view it on GitHub
https://github.com/XMCQCX/Notify_Class/issues/6#issuecomment-2338890268,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZFMFTH2WLR6J43EF4S4KJLZVXXUDAVCNFSM6AAAAABN2MFUXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZYHA4TAMRWHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@H5820121 No, it's not in the current version (1.6.0). It's included in my test version and will likely be in the next version if I manage to release it. Subscribe to the repo to be notified when new versions are released.

I wish good luck!, we are all looking forward to it.
בתאריך יום ב׳, 9 בספט׳ 2024 ב-23:38 מאת XMCQCX <
@.***>:

@H5820121 https://github.com/H5820121 No, it's not in the current
version (1.6.0). It's included in my test version and will likely be in the
next version if I manage to release it. Subscribe to the repo to be
notified when new versions are released.
—
Reply to this email directly, view it on GitHub
https://github.com/XMCQCX/Notify_Class/issues/6#issuecomment-2339042649,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZFMFTEWEQWHGEBF6G36CALZVYBK3AVCNFSM6AAAAABN2MFUXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZZGA2DENRUHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@XMCQCX
@nperovic has developed a script that applies to the GUI the effects of
WIN11 Acrylic and Mika
https://github.com/nperovic/GuiEnhancerKit/issues/4#issuecomment-2348173995
Maybe you can use this in the new version for Notify.ahk.
Thanks!
בתאריך יום ב׳, 9 בספט׳ 2024 ב-23:38 מאת XMCQCX <
@.***>:

@H5820121 https://github.com/H5820121 No, it's not in the current
version (1.6.0). It's included in my test version and will likely be in the
next version if I manage to release it. Subscribe to the repo to be
notified when new versions are released.
—
Reply to this email directly, view it on GitHub
https://github.com/XMCQCX/Notify_Class/issues/6#issuecomment-2339042649,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZFMFTEWEQWHGEBF6G36CALZVYBK3AVCNFSM6AAAAABN2MFUXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZZGA2DENRUHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@H5820121 Thanks for letting me know. That seems interesting. I’ll check it out.

@XMCQCX
I saw you were using animation.
I have  AHK GUI for example myGui := Gui("-Caption").
I rounded its corners by FrameShadow(myGui.hwnd)
How can I make to it an FADE 225 or 250 animation?
I would be very grateful if you could write me a AHK V2 script for this.
Thank you!
בתאריך יום ב׳, 9 בספט׳ 2024 ב-22:15 מאת XMCQCX <
@.***>:

@H5820121 https://github.com/H5820121 I've posted a response on the
forum.
—
Reply to this email directly, view it on GitHub
https://github.com/XMCQCX/Notify_Class/issues/6#issuecomment-2338890268,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZFMFTH2WLR6J43EF4S4KJLZVXXUDAVCNFSM6AAAAABN2MFUXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZYHA4TAMRWHA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Removed inline style for cartain cases.

On responsive website, sometimes, sidebar elements will be fixed content, like using off-canvas layout navigation.
This mobile style will be like this,
.sidebar {
  position:fixed;
}
@mdeia ~~~~~~{
  /*Mobile*/
  .sidebar {
    position:fixed;
  }
}

I think those inline styles for setting (like "border-box", "overflow" ) should be moved into style.css and toggle class by some trigger. Or reset proper initial styles.
I removed a style "position:relative" from javascript code anyway.

Good news, you can now solve this by overriding the defaultPosition option in v1.7.0.


Crash on block 0

Started syncing witti from scratch, w genesis state, shut down node before any peers found.
Re-start and found this error, which crashed and exited:
2020-06-24 20:14:11  [CHAIN]            info: Found finalized state at slot 0, starting chain from there
2020-06-24 20:14:11  [NODE]             info: Starting eth2 beacon node - LODESTAR!
2020-06-24 20:14:11  [METRICS]          info: Starting metrics HTTP server on port 5000
2020-06-24 20:14:11  [DB]               info: Connected to LevelDB database at .witti/beacon/chain-db
2020-06-24 20:14:12  [CHAIN]            info: Chain started, waiting blocks and attestations
2020-06-24 20:14:12  [CHAIN]            info: Found last known finalized state at epoch #0 root 0x0000000000000000000000000000000000000000000000000000000000000000
2020-06-24 20:14:12  [CHAIN]            info: Found 1 nonfinalized blocks in database from slot 0 to 0
AssertionError: Expect false == true
    at assert (/home/cayman/Code/lodestar/packages/lodestar-utils/lib/assert.js:18:11)
    at ArrayDagLMDGHOST.headNode (/home/cayman/Code/lodestar/packages/lodestar/lib/chain/forkChoice/arrayDag/lmdGhost.js:371:31)
    at ArrayDagLMDGHOST.head (/home/cayman/Code/lodestar/packages/lodestar/lib/chain/forkChoice/arrayDag/lmdGhost.js:363:15)
    at ArrayDagLMDGHOST.headBlockRoot (/home/cayman/Code/lodestar/packages/lodestar/lib/chain/forkChoice/arrayDag/lmdGhost.js:381:23)
    at BeaconChain.restoreHeadState (/home/cayman/Code/lodestar/packages/lodestar/lib/chain/chain.js:289:68)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async BeaconChain.start (/home/cayman/Code/lodestar/packages/lodestar/lib/chain/chain.js:169:5)
    at async BeaconNode.start (/home/cayman/Code/lodestar/packages/lodestar/lib/node/nodejs.js:157:5)
    at async Object.run [as handler] (/home/cayman/Code/lodestar/packages/lodestar-cli/lib/lodecli/cmds/beacon/cmds/run/run.js:77:3)

i'm not sure if the OP error that @wemeetagain posted is still happening, but i'm getting a different error in the same spot:
`(node:13312) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
2020-07-06 18:20:00  [CHAIN]            info: Found finalized state at slot 0, starting chain from there
2020-07-06 18:20:00  [NODE]             info: Starting eth2 beacon node - LODESTAR!
2020-07-06 18:20:00  [METRICS]          info: Starting metrics HTTP server on port 5000
2020-07-06 18:20:00  [DB]               info: Connected to LevelDB database at .altona/beacon/chain-db
2020-07-06 18:20:00  [CHAIN]            info: Chain started, waiting blocks and attestations
2020-07-06 18:20:00  [CHAIN]            info: Found last known finalized state at epoch #0 root 0x0000000000000000000000000000000000000000000000000000000000000000
2020-07-06 18:20:00  [CHAIN]            info: Found 1 nonfinalized blocks in database from slot 0 to 0
✖ Error: Justified checkpoint does not exist
at Object.true (/home/seraph/work/ChainSafe/lodestar/packages/lodestar-utils/lib/assert.js:16:13)
at ArrayDagLMDGHOST.headNode (/home/seraph/work/ChainSafe/lodestar/packages/lodestar/lib/chain/forkChoice/arrayDag/lmdGhost.js:373:31)
at ArrayDagLMDGHOST.head (/home/seraph/work/ChainSafe/lodestar/packages/lodestar/lib/chain/forkChoice/arrayDag/lmdGhost.js:365:15)
at ArrayDagLMDGHOST.headBlockRoot (/home/seraph/work/ChainSafe/lodestar/packages/lodestar/lib/chain/forkChoice/arrayDag/lmdGhost.js:383:23)
at BeaconChain.restoreHeadState (/home/seraph/work/ChainSafe/lodestar/packages/lodestar/lib/chain/chain.js:291:68)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async BeaconChain.start (/home/seraph/work/ChainSafe/lodestar/packages/lodestar/lib/chain/chain.js:162:5)
at async BeaconNode.start (/home/seraph/work/ChainSafe/lodestar/packages/lodestar/lib/node/nodejs.js:157:5)
at async Object.run [as handler] (/home/seraph/work/ChainSafe/lodestar/packages/lodestar-cli/lib/cmds/beacon/cmds/run/run.js:77:3)
`

should be resolved by #1078


fix

classifiers.pl does not exist anymore

@asilx I think you removed it when you did the WEKA integration


Feat: use environment variable to specify the state backend

What would you like to be added?
Use environment variable to specify the state backend, not the --backend-type and --backend-config of kusion preview and kusion apply.
Why is this needed?
The state backend should be assigned to platform engineers, which have two ways to modify the configuration, the first is environment configuration, and the second is environment variables. Use the latter way, environment variables, to do the state backend configuration.

Whether to put state backend into the environment config


Add device TargetToken auth

Adds support for the TargetToken auth header.
This can be set up in 3 modes (or disabled altogether, which is the default):
setup - Setup mode is for setting up or migrating from an existing solution (such as hawkbit).  Setup mode will auto register all devices that poll, and attach the auth token they poll with to their device information in the database.
lax - Lax mode will handle auth tokens on devices that have them set, and will error if those devices don't send a valid token, but devices that were set up without a token will not require one.
strict - Strict mode requires a token for every device.  All devices will encounter errors if they submit invalid tokens, and new devices are not registered via the DDI endpoints.  All devices must be set up via the /device PUT endpoint, and all devices must have authentication tokens.
Fixes: #175

I think there should be some tests for this, especially because we at Husqvarna won't be using this.

I think there should be some tests for this, especially because we at Husqvarna won't be using the feature.

Biggest issue here is that it doesn't seem like we can dynamically update the config.  Might need a separate PR to attach it to the app, then it can be used via request.app.config or maybe request.app.goosebit_conf

Tests are broken because it won't let me instantiate a new app for this test file (need a new one to alter the config).  No idea how to fix this.

Great to have progress here. Unfortunately, could not yet look at the code - should have time on the weekend.
Conceptually I had a few thoughts

It should be extensible to support certificate authentication as well (will be required by us)
Cannot see the value that lax gives
Ability to disable authentication is helpful to get something up and running quickly
Devices that fail to authenticate should be logged as warnings. Alternative is to create them but assign them the state unauthenticated. Would simplify spotting problematic gateways but would allow to make a DoS attack by creating massive amounts of devices. A middle ground would be to limit the amount of unauthenticated devices - not sure if this is a good idea.
setup seems convenient. Still not sure if it should be supported though Idea is to use this mode only temporarily. But this means that a mechanism has to be built anyways to pre-populate devices. So why not do it right from the start?

What about the following settings

Allow un-authenticated devices (only use in test installations)
Allow device authentication by certificate (through reverse proxy)
Allow device authentication by security token

As for the behavior: if "allow un-authenticated" is enabled, still fail if reverse-proxy header / token doesn't match.

Cannot see the value that lax gives

Lax mode performs exactly like Allow un-authenticated mode as you mention above, its just a lot shorter for having in a config.

setup seems convenient. Still not sure if it should be supported though Idea is to use this mode only temporarily. But this means that a mechanism has to be built anyways to pre-populate devices. So why not do it right from the start?

Confused what you mean here?  Setup is basically for migration from other services, if you are already using hawkbit and don't want to have to find the UUID and auth token for every device, setup is just to make sure there are no errors doing initial device setup.

Allow un-authenticated devices (only use in test installations)

Allow device authentication by certificate (through reverse proxy)

Allow device authentication by security token

This is extremely close to what I have.  Lax is allow unauthenticated, and strict is allow via token.  The only change I would make to allow the suggested configuration is add a sub-config for strict that allows you to configure the proxy headers, which is really only one option, the key used to validate the cert.  This is relatively easy to extend into, and I don't fully understand how you guys are doing it, thus I left it out.

As for the behavior: if "allow un-authenticated" is enabled, still fail if reverse-proxy header / token doesn't match.

Lax already does this, if the token is set for a device and that token is wrong when the device makes a request, it will fail.

setup seems convenient. Still not sure if it should be supported though Idea is to use this mode only temporarily. But this means that a mechanism has to be built anyways to pre-populate devices. So why not do it right from the start?

Confused what you mean here? Setup is basically for migration from other services, if you are already using hawkbit and don't want to have to find the UUID and auth token for every device, setup is just to make sure there are no errors doing initial device

It works if one has a fix population in the market and those are all online as well. Then you can use setup mode for a few days and switch to strict.
Where it does not work: devices somewhere in a sales channel and can come online at any point in time (over the next few years)
Where it does not safe much effort: device still being manufactured. Would then require to create script to add newly produced device tokens to gooseBit. Having that script implemented would then also allow to load the old devices as well.

It works if one has a fix population in the market and those are all online as well. Then you can use setup mode for a few days and switch to strict.
Where it does not work: devices somewhere in a sales channel and can come online at any point in time (over the next few years)
Where it does not safe much effort: device still being manufactured. Would then require to create script to add newly produced device tokens to gooseBit. Having that script implemented would then also allow to load the old devices as well.

Agreed, but in most cases if you were previously using hawkbit you will have at least a few devices deployed, and will need to write that script anyway.  Setup just gives us a small advantage over other services for initial setup, so unless you think there is a big reason not to include it, I can't see any reason we wouldn't just allow it, right?


[stable/kapacitor] Add owners file and add common used envVars to examples

What this PR does / why we need it:

Add owners file
Bump version from 1.1.2 to 1.1.3
Add common used envVars to examples

Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

can we get @jackzampolin's attention on this one?

/assign
/ok-to-test
/lgtm


  THIS SOFTWARE MAY BE REDISTRIBUTED TO OTHERS ONLY BY EFFECTIVELY USING THIS OR ANOTHER EQUIVALENT DISCLAIMER IN ADDITION TO ANY OTHER REQUIRED LICENSE TERMS.

closes  #1172


Failed to resolve entry for package "bits-ui", cannot start a dev server [svelte 5]

Describe the bug
I went through the install of bits-ui & related packages via shadcn/svelte, was able to work with it just fine on that device. After cloning and running npm i on another device no errors when installing pacakges. After loading up a dev server via vite dev, I get the following error.
I've rm'd all node_modules, reinstalled, still no luck. Due to the fact it worked on one device/env and not another, it might be a problem on my side, but I have no clue how that would be since this is a relatively clean envrionment.
Reproduction
https://github.com/Cattn/ccrnet
Logs
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x2)
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x3)
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x4)
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x5)
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x6)
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x7)
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x8)
9:24:52 PM [vite] Pre-transform error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package (x9)
9:24:52 PM [vite] Error when evaluating SSR module /src/lib/components/Topbar.svelte:
|- Error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package
    at packageEntryFailure (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46637:15)
    at resolvePackageEntry (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46632:5)
    at tryNodeResolve (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46450:16)
    at ResolveIdContext.resolveId (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46200:19)
    at PluginContainer.resolveId (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:49015:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async TransformPluginContext.resolve (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:49175:15)
    at async normalizeUrl (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:64034:26)
    at async file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:64173:39
    at async Promise.all (index 0)

9:24:52 PM [vite] Error when evaluating SSR module /src/routes/+layout.svelte:
|- Error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package
    at packageEntryFailure (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46637:15)
    at resolvePackageEntry (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46632:5)
    at tryNodeResolve (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46450:16)
    at ResolveIdContext.resolveId (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46200:19)
    at PluginContainer.resolveId (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:49015:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async TransformPluginContext.resolve (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:49175:15)
    at async normalizeUrl (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:64034:26)
    at async file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:64173:39
    at async Promise.all (index 0)

Error: Failed to resolve entry for package "bits-ui". The package may have incorrect main/module/exports specified in its package.json: No known conditions for "." specifier in "bits-ui" package
    at packageEntryFailure (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46637:15)
    at resolvePackageEntry (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46632:5)
    at tryNodeResolve (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46450:16)
    at ResolveIdContext.resolveId (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:46200:19)
    at PluginContainer.resolveId (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:49015:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async TransformPluginContext.resolve (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:49175:15)
    at async normalizeUrl (file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:64034:26)
    at async file:///C:/Users/cattn/AppData/Roaming/nvm/v20.18.0/node_modules/vite/dist/node/chunks/dep-CB_7IfJ-.js:64173:39
    at async Promise.all (index 0) {
  code: 'ERR_RESOLVE_PACKAGE_ENTRY_FAIL',
  plugin: 'vite:import-analysis',
  id: 'C:/Users/cattn/Documents/GitHub/ccrnet/src/lib/components/ui/dropdown-menu/index.ts',
  pluginCode: 'import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui";\n' +
    'import CheckboxItem from "./dropdown-menu-checkbox-item.svelte";\n' +
    'import Content from "./dropdown-menu-content.svelte";\n' +
    'import GroupHeading from "./dropdown-menu-group-heading.svelte";\n' +
    'import Item from "./dropdown-menu-item.svelte";\n' +
    'import Label from "./dropdown-menu-label.svelte";\n' +
    'import RadioItem from "./dropdown-menu-radio-item.svelte";\n' +
    'import Separator from "./dropdown-menu-separator.svelte";\n' +
    'import Shortcut from "./dropdown-menu-shortcut.svelte";\n' +
    'import SubContent from "./dropdown-menu-sub-content.svelte";\n' +
    'import SubTrigger from "./dropdown-menu-sub-trigger.svelte";\n' +
    'const Sub = DropdownMenuPrimitive.Sub;\n' +
    'const Root = DropdownMenuPrimitive.Root;\n' +
    'const Trigger = DropdownMenuPrimitive.Trigger;\n' +
    'const Group = DropdownMenuPrimitive.Group;\n' +
    'const RadioGroup = DropdownMenuPrimitive.RadioGroup;\n' +
    'export {\n' +
    '  CheckboxItem,\n' +
    '  Content,\n' +
    '  Root as DropdownMenu,\n' +
    '  CheckboxItem as DropdownMenuCheckboxItem,\n' +
    '  Content as DropdownMenuContent,\n' +
    '  Group as DropdownMenuGroup,\n' +
    '  GroupHeading as DropdownMenuGroupHeading,\n' +
    '  Item as DropdownMenuItem,\n' +
    '  Label as DropdownMenuLabel,\n' +
    '  RadioGroup as DropdownMenuRadioGroup,\n' +
    '  RadioItem as DropdownMenuRadioItem,\n' +
    '  Separator as DropdownMenuSeparator,\n' +
    '  Shortcut as DropdownMenuShortcut,\n' +
    '  Sub as DropdownMenuSub,\n' +
    '  SubContent as DropdownMenuSubContent,\n' +
    '  SubTrigger as DropdownMenuSubTrigger,\n' +
    '  Trigger as DropdownMenuTrigger,\n' +
    '  Group,\n' +
    '  GroupHeading,\n' +
    '  Item,\n' +
    '  Label,\n' +
    '  RadioGroup,\n' +
    '  RadioItem,\n' +
    '  Root,\n' +
    '  Separator,\n' +
    '  Shortcut,\n' +
    '  Sub,\n' +
    '  SubContent,\n' +
    '  SubTrigger,\n' +
    '  Trigger\n' +
    '};\n'
}

System Info
System:
    OS: Windows 11 10.0.22631
    CPU: (16) x64 AMD Ryzen 7 7800X3D 8-Core Processor
    Memory: 18.48 GB / 31.12 GB
  Binaries:
    Node: 20.18.0 - C:\Program Files\nodejs\node.EXE
    npm: 10.8.2 - C:\Program Files\nodejs\npm.CMD
    pnpm: 9.4.0 - ~\AppData\Local\pnpm\pnpm.EXE
  Browsers:
    Edge: Chromium (127.0.2651.74)
    Internet Explorer: 11.0.22621.3527
  npmPackages:
    @sveltejs/kit: ^2.9.0 => 2.11.1
    bits-ui: ^1.0.0-next.71 => 1.0.0-next.71
    svelte: ^5.0.0 => 5.11.2

Severity
blocking all usage of bits-ui

I just cloned your repo and am not able to reproduce this.


[VMValidator] Stop using update_to_latest_ledger to retrieve account state

Motivation
The new API will be faster.
Have you read the Contributing Guidelines on pull requests?
No.
Test Plan
CI.
Related PRs
None.

@bors-libra r=dmitri-perelman

:pushpin: Commit af880e0 has been approved by dmitri-perelman

:hourglass: Testing commit af880e0e3c17c405490ed4bca0adc085352766ac with merge 5558fbce8ae725739d08e5295f8bb847bbefe976...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: dmitri-perelman
Pushing 5558fbce8ae725739d08e5295f8bb847bbefe976 to master...


sse communication sequence doc

doc and diagrams to explain sse communication
solution to https://github.com/duo-labs/sharedsignals/issues/54

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix Coverity reports of uninitialized scalar variable

Fixes most current reports on Coverity Scan of uninitialized scalar variable
(CWE-457): https://cwe.mitre.org/data/definitions/457.html
These happen most of the time (in our code) when instanciating structs
without a constructor, and later returning the instance.
I've added constructors with (as far as I could tell) meaningful default
values to mitigate that.

I've added constructors with (as far as I could tell) meaningful default
values to mitigate that.

After discussion with @reduz I've gone for a less intrusive version to avoid double initialization in performance-critical code (e.g. OAHashMap or InputEvent).


Update to celestia-node 0.17.1

we will wait for the next version of celestia-node. There seem to be nothing that would impact us in 0.17.1


"Failed to set up" after upgrading from 1.5.0 to 1.6.1

System Specs
HA Core: 2024.10.1
HA Supervisor: 2024.10.0
HA Operating System: 13.1
Ha Frontend: 20241002.2
Context
I upgraded from v1.5.0 to v1.6.1 today. My network and devices are still shown in the Integration but no data is available. I see the following:

Logs on Integration Startup
This error originated from a custom integration.

Logger: custom_components.eero
Source: helpers/update_coordinator.py:354
integration: eero (documentation, issues)
First occurred: 4:03:09 PM (1 occurrences)
Last logged: 4:03:09 PM

Unexpected error fetching Eero (Chase Home Assistant) data
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 354, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 271, in _async_update_data
    return await self.update_method()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/__init__.py", line 195, in async_update_data
    return await hass.async_add_executor_job(api.update, conf_networks)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/api/__init__.py", line 227, in update
    network_data = self.call(method=METHOD_GET, url=network_url)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/api/__init__.py", line 89, in call
    response = self.refresh(lambda:
               ^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/api/__init__.py", line 180, in refresh
    text = json.loads(response.text)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Logger: homeassistant.config_entries
Source: config_entries.py:594
First occurred: 4:03:09 PM (1 occurrences)
Last logged: 4:03:09 PM

Error setting up entry Chase Home Assistant for eero
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/__init__.py", line 320, in async_setup_entry
    if any([eero.is_eero_beacon for network in coordinator.data.networks for eero in network.eeros]):
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'networks'

Additional Logs
I also tried "Add Hub" option and after entering my email address, I get the following errors:
This error originated from a custom integration.

Logger: custom_components.eero.api
Source: custom_components/eero/api/__init__.py:168
integration: eero (documentation, issues)
First occurred: 4:18:24 PM (1 occurrences)
Last logged: 4:18:24 PM

Parsing response was unsuccessful with status code: 401

Logger: aiohttp.server
Source: /usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py:448
First occurred: 4:18:24 PM (1 occurrences)
Last logged: 4:18:24 PM

Error handling request
Traceback (most recent call last):
  File "/config/custom_components/eero/config_flow.py", line 70, in async_step_user
    self.response = await self.hass.async_add_executor_job(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/api/__init__.py", line 139, in login
    response = self.call(
               ^^^^^^^^^^
  File "/config/custom_components/eero/api/__init__.py", line 100, in call
    response = self.parse_response(response=response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/api/__init__.py", line 170, in parse_response
    raise EeroException(
custom_components.eero.api.EeroException

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 477, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 559, in _handle
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 85, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
    return await method(view, request, data, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 370, in async_configure
    result = await self._async_configure(flow_id, user_input)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 417, in _async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 520, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/config_flow.py", line 74, in async_step_user
    _LOGGER.error(f"Status: {exception.status_code}, Error Message: {exception.error_message}")
                             ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'EeroException' object has no attribute 'status_code'

Just to show my Office Eero device is still in Home Assistant but no data is available.

Downgrading to v1.5.0 allows integration to function as expected

I'm having the same issue in v 1.6.2

Same issue with v1.6.2
Logger: homeassistant.config_entries
Source: config_entries.py:594
First occurred: 8:48:14 AM (1 occurrences)
Last logged: 8:48:14 AM

Error setting up entry Eero HOME for eero
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/eero/__init__.py", line 320, in async_setup_entry
    if any([eero.is_eero_beacon for network in coordinator.data.networks for eero in network.eeros]):
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'networks'

Redownloaded versions 1.6.1, 1.6.0 and 1.5.0 and got the same error.
Whilst on 1.5.0, I did a "configure" on the device, went through the configuration flow and it loaded correctly after that.
I then did a whole heap of upgrading/downgrading/reloconfiguring/reloading. After an upgrade to 1.6.2, running the config flow and 2 reloads, it appears to have loaded successfully. Susequent reloads work fine, but when HA is restarted, the error returns. After multiple reloads it eventually works successfully, until the next time that HA is restarted.

is this dead?

is this dead?

v1.6.2 is working for me now.

I still havce the issue, with multiple reloads fixing it eventually, until the next time that HA is restarted. Then need to do multiple reloads and it eventually works.
I don't think this should closed.

An update has been released which address this error from above.

AttributeError: 'EeroException' object has no attribute 'status_code'

The root cause of the other (more frequent error) is unclear. I'm reopening this issue to keep it on the to-do list as I have time.

AttributeError: 'NoneType' object has no attribute 'networks'

Can confirm with the new version that I am still getting the AttributeError: 'NoneType' object has no attribute 'networks' error. I know that is expected, but just thought I would let the thread know.


feat: timeout for context and core deployments

Description of Changes
Added DeployWithTimeout method, to timeout deployments to 30 minutes. If a deployment times out, an error is displayed to the user asking them to view their cloudformation stack.
Description of how you validated changes

Reduced timeout time to 10 seconds, and ran agc account activate:

$ agc account activate
2021-11-04T10:16:31-07:00 𝒊  Activating AGC with bucket '' and VPC ''
Activating account... [____________________________________________________________________________________________________________________________________________________________________________________________]9.8s2021-11-04T10:16:42-07:00 ✘   error="deployment taking longer then expected. please review stack deployment in cloudformation"
Error: an error occurred invoking 'account activate'
with variables: {bucketName: vpcId:}
caused by: deployment taking longer then expected. please review stack deployment in cloudformation

Ran make to run tests
Validated changes don't mess with deployment by running account activate and context deploy, then running workflow

Checklist

[x] If this change would make any existing documentation invalid, I have included those updates within this PR
[x] I have added unit tests that prove my fix is effective or that my feature works
[x] I have linted my code before raising the PR
[x] Title of this Pull Request follows Conventional Commits standard: https://www.conventionalcommits.org/en/v1.0.0/

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

After reviewing this code and Elliot's PR I think we're going to have conflicts since Elliot's PR (#139) rewrites a lot of the code you're modifying. Since merging the two will require a rewrite regardless, I'm thinking we should reimagine the timeouts here.
Quick idea - leverage context.WithTimeout (see example here) by passing it into the context manager
e.g.
ctx := context.WithTimeout(context.Background, 30 * time.Minutes)
o.cdkClient.DeployApp(ctx, cdkAppPath, environmentVars)

This obviously needs to be reconciled with Elliot's PR, so maybe work with him to determine the best way forward.

I think we should use standard means for timeouts. e.g. context.WithTimeout(...)


Process Phoenix for activity restart

Instead of prompting everytime to restart the  app we can use process Phoenix https://github.com/JakeWharton/ProcessPhoenix

Yep, but probably developer/qa wants to enable/disable multiple things in Developer Settings and only then restart the app.
Though I'm okay with "Restart app" button in Developer Settings :)

Yeah I also had this use case where I wanted to selectively switch off
cache for certain apis, I tend to put a button on top in the debug drawer
which relaunches the activity using process Phoenix underneath makes the
whole thing faster
On 08-Dec-2015 12:13 pm, "Artem Zinnatullin"<EMAIL_ADDRESS>wrote:

Yep, but probably developer/qa wants to enable/disable multiple things in
Developer Settings and only then restart the app.
Though I'm okay with "Restart app" button in Developer Settings :)
—
Reply to this email directly or view it on GitHub
https://github.com/artem-zinnatullin/qualitymatters/issues/58#issuecomment-162790640
.

Closed by #152.


tests: Add kernel/sched/deadline test for EDF validation

Simple test for CONFIG_SCHED_DEADLINE.  It creates a bunch of threads
at randome deadlines but within the same priority, and validates that
they run in the correct order.
Signed-off-by: Andy Ross<EMAIL_ADDRESS>

Codecov Report

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

@@            Coverage Diff             @@
##           master    #9809      +/-   ##
==========================================
+ Coverage   52.24%   52.27%   +0.02%
==========================================
  Files         212      212
  Lines       25951    25965      +14
  Branches     5593     5596       +3
==========================================
+ Hits        13557    13572      +15
+ Misses      10159    10157       -2
- Partials     2235     2236       +1

Impacted Files
Coverage Δ

kernel/thread.c
94.32% <0%> (+0.04%)
:arrow_up:

kernel/sched.c
91.24% <0%> (+0.05%)
:arrow_up:

subsys/random/rand32_timer.c
100% <0%> (+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 d3bdc85...c73f110. Read the comment docs.


Use factory implementation

Work on switching top level code to use factory
switch to factory usage
fix lint

Codecov Report

Merging #55 (0f35896) into master (c3da071) will decrease coverage by 8.13%.
The diff coverage is 4.16%.

@@            Coverage Diff             @@
##           master      #55      +/-   ##
==========================================
- Coverage   63.09%   54.95%   -8.14%
==========================================
  Files          42       43       +1
  Lines        3322     3328       +6
==========================================
- Hits         2096     1829     -267
- Misses       1226     1499     +273

Impacted Files
Coverage Δ

magic_vlsi/src/lib.rs
57.84% <0.00%> (-7.24%)
:arrow_down:

sram22/src/bitcells/mod.rs
0.00% <0.00%> (ø)

sram22/src/cells/gates/inv/dec.rs
0.00% <0.00%> (ø)

sram22/src/cells/gates/inv/single_height.rs
0.00% <0.00%> (-100.00%)
:arrow_down:

sram22/src/factory/mod.rs
0.00% <0.00%> (-65.28%)
:arrow_down:

sram22/src/lib.rs
23.80% <0.00%> (+7.46%)
:arrow_up:

sram22/src/main.rs
0.00% <0.00%> (ø)

sram22/src/precharge/layout.rs
0.00% <0.00%> (ø)

sram22/src/predecode/mod.rs
56.06% <0.00%> (-2.67%)
:arrow_down:

sram22/src/cells/gates/nand/single_height.rs
96.26% <75.00%> (-3.05%)
:arrow_down:

... and 5 more

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


fix: multiple dependencies files accepted by repo structure check

The PR fixes reported issue with regards to multiple DEPENDENCIES files presence in repository structure. With the fix quality check accepts now the case where there is more files with DEPENDENCIES prefix, i.e. DEPENDENCIES_FRONTEND, DEPENDENCIES_BACKEND.
Fixes https://github.com/eclipse-tractusx/sig-infra/issues/230
Updates https://github.com/eclipse-tractusx/sig-infra/issues/93
Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

We tested it but this doesn't fix the problem.

Hi @mhellmeier,
how did you test it? I guess we missed to update the default version of the quality-check binary used by the action. The fix is included in 0.7.0, but the action default is still 0.6.0. Did you overwrite the version?
I just fixed the default, so in case you did not overwrite, please test it again.
I think we need to come up with a better process for "fix -> release -> bump version default in action". Right now there are still too many manual steps, that we can forget about :)


Numba 0.60.0 breaks with SHAP and Numpy

Reporting a bug
Today, we noticed that Numba 0.60.0 produces an import error when used with SHAP 0.44 and NumPy 1.24.1 in Python 3.9.
  File "/miniconda3/lib/python3.9/site-packages/shap/__init__.py", line 1, in <module>
    from ._explanation import Cohorts, Explanation
  File "/miniconda3/lib/python3.9/site-packages/shap/_explanation.py", line 13, in <module>
    from .utils._exceptions import DimensionError
  File "/miniconda3/lib/python3.9/site-packages/shap/utils/__init__.py", line 1, in <module>
    from ._clustering import (
  File "/miniconda3/lib/python3.9/site-packages/shap/utils/_clustering.py", line 8, in <module>
    from numba import njit
  File "/miniconda3/lib/python3.9/site-packages/numba/__init__.py", line 92, in <module>
    from numba.core.decorators import (cfunc, jit, njit, stencil,
  File "/miniconda3/lib/python3.9/site-packages/numba/core/decorators.py", line 12, in <module>
    from numba.stencils.stencil import stencil
  File "/miniconda3/lib/python3.9/site-packages/numba/stencils/stencil.py", line 11, in <module>
    from numba.core import types, typing, utils, ir, config, ir_utils, registry
  File "/miniconda3/lib/python3.9/site-packages/numba/core/registry.py", line 6, in <module>
    from numba.core import utils, typing, dispatcher, cpu
  File "/miniconda3/lib/python3.9/site-packages/numba/core/dispatcher.py", line 14, in <module>
    from numba.core import (
  File "/miniconda3/lib/python3.9/site-packages/numba/core/compiler.py", line 6, in <module>
    from numba.core import (utils, errors, interpreter, bytecode, postproc, config,
  File "/miniconda3/lib/python3.9/site-packages/numba/core/cpu.py", line 9, in <module>
    from numba.core import (utils, types, config, cgutils, callconv, codegen,
  File "/miniconda3/lib/python3.9/site-packages/numba/core/codegen.py", line 15, in <module>
    from numba.core.runtime.nrtopt import remove_redundant_nrt_refct
  File "/miniconda3/lib/python3.9/site-packages/numba/core/runtime/__init__.py", line 1, in <module>
    from .nrt import rtsys
  File "/miniconda3/lib/python3.9/site-packages/numba/core/runtime/nrt.py", line 10, in <module>
    from numba.core.runtime import _nrt_python as _nrt

After testing, we downgraded Numba to version 0.58.1, and the issue was resolved.
It seems there is a compatibility issue between Numba 0.60.0 and the other libraries mentioned.

Hi @Madot10, do you have a reproducer? Or what OS are you using? I just tried this on macos arm and I could import shap without any issue:
$ pixi run python
Python 3.9.20 | packaged by conda-forge | (main, Sep 30 2024, 17:48:00)
[Clang 17.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import shap
>>> import numba
>>> import numpy
>>> shap.__version__
'0.44.0'
>>> numba.__version__
'0.60.0'
>>> numpy.__version__
'1.24.1'

Hi @guilhermeleobas!
We're running linux in an AWS' pre-build docker image:
Downloading shap-0.44.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata

Downloading numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

We also notice:

Numba 0.60.0 uses llvmlite-0.43.0
Numba 0.58.1 uses llvmlite-0.41.1

I still cannot reproduce this on Linux. Just importing shap for you fails?

@Madot10, to help us investigate this:

can you send us the full traceback?
can you send us the list of packages in the environment from conda list --explicit?

I had something similar and the root cause is Numba only works with certain version of Numpy while my Python 3.11 has Numpy 2.1.2.