[SPARK-29213][SQL] Make it consistent when get notnull output and generate null checks in FilterExec

What changes were proposed in this pull request?
Currently the behavior of getting output and generating null checks in FilterExec is different. Thus some nullable attribute could be treated as not nullable by mistake.
In FilterExec.ouput, an attribute is marked as nullable or not by finding its exprId in notNullAttributes:
a.nullable && notNullAttributes.contains(a.exprId)

But in FilterExec.doConsume,  a nullCheck is generated or not for a predicate is decided by whether there is semantic equal not null predicate:
      val nullChecks = c.references.map { r =>
        val idx = notNullPreds.indexWhere { n => n.asInstanceOf[IsNotNull].child.semanticEquals(r)}
        if (idx != -1 && !generatedIsNotNullChecks(idx)) {
          generatedIsNotNullChecks(idx) = true
          // Use the child's output. The nullability is what the child produced.
          genPredicate(notNullPreds(idx), input, child.output)
        } else {
          ""
        }
      }.mkString("\n").trim

NPE will happen when run the SQL below:
sql("create table table1(x string)")
sql("create table table2(x bigint)")
sql("create table table3(x string)")
sql("insert into table2 select null as x")
sql(
  """
    |select t1.x
    |from (
    |    select x from table1) t1
    |left join (
    |    select x from (
    |        select x from table2
    |        union all
    |        select substr(x,5) x from table3
    |    ) a
    |    where length(x)>0
    |) t3
    |on t1.x=t3.x
  """.stripMargin).collect()

NPE Exception:
java.lang.NullPointerException
    at org.apache.spark.sql.catalyst.expressions.GeneratedClass$GeneratedIteratorForCodegenStage2.processNext(generated.java:40)
    at org.apache.spark.sql.execution.BufferedRowIterator.hasNext(BufferedRowIterator.java:43)
    at org.apache.spark.sql.execution.WholeStageCodegenExec$$anon$1.hasNext(WholeStageCodegenExec.scala:726)
    at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:458)
    at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:135)
    at org.apache.spark.shuffle.ShuffleWriteProcessor.write(ShuffleWriteProcessor.scala:59)
    at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:94)
    at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:52)
    at org.apache.spark.scheduler.Task.run(Task.scala:127)
    at org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$3(Executor.scala:449)
    at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1377)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:452)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

the generated code:
== Subtree 4 / 5 ==
*(2) Project [cast(x#7L as string) AS x#9]
+- *(2) Filter ((length(cast(x#7L as string)) > 0) AND isnotnull(cast(x#7L as string)))
   +- Scan hive default.table2 [x#7L], HiveTableRelation `default`.`table2`, org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, [x#7L]

Generated code:
/* 001 */ public Object generate(Object[] references) {
/* 002 */   return new GeneratedIteratorForCodegenStage2(references);
/* 003 */ }
/* 004 */
/* 005 */ // codegenStageId=2
/* 006 */ final class GeneratedIteratorForCodegenStage2 extends org.apache.spark.sql.execution.BufferedRowIterator {
/* 007 */   private Object[] references;
/* 008 */   private scala.collection.Iterator[] inputs;
/* 009 */   private scala.collection.Iterator inputadapter_input_0;
/* 010 */   private org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter[] filter_mutableStateArray_0 = new org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter[2];
/* 011 */
/* 012 */   public GeneratedIteratorForCodegenStage2(Object[] references) {
/* 013 */     this.references = references;
/* 014 */   }
/* 015 */
/* 016 */   public void init(int index, scala.collection.Iterator[] inputs) {
/* 017 */     partitionIndex = index;
/* 018 */     this.inputs = inputs;
/* 019 */     inputadapter_input_0 = inputs[0];
/* 020 */     filter_mutableStateArray_0[0] = new org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter(1, 0);
/* 021 */     filter_mutableStateArray_0[1] = new org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter(1, 32);
/* 022 */
/* 023 */   }
/* 024 */
/* 025 */   protected void processNext() throws java.io.IOException {
/* 026 */     while ( inputadapter_input_0.hasNext()) {
/* 027 */       InternalRow inputadapter_row_0 = (InternalRow) inputadapter_input_0.next();
/* 028 */
/* 029 */       do {
/* 030 */         boolean inputadapter_isNull_0 = inputadapter_row_0.isNullAt(0);
/* 031 */         long inputadapter_value_0 = inputadapter_isNull_0 ?
/* 032 */         -1L : (inputadapter_row_0.getLong(0));
/* 033 */
/* 034 */         boolean filter_isNull_2 = inputadapter_isNull_0;
/* 035 */         UTF8String filter_value_2 = null;
/* 036 */         if (!inputadapter_isNull_0) {
/* 037 */           filter_value_2 = UTF8String.fromString(String.valueOf(inputadapter_value_0));
/* 038 */         }
/* 039 */         int filter_value_1 = -1;
/* 040 */         filter_value_1 = (filter_value_2).numChars();
/* 041 */
/* 042 */         boolean filter_value_0 = false;
/* 043 */         filter_value_0 = filter_value_1 > 0;
/* 044 */         if (!filter_value_0) continue;
/* 045 */
/* 046 */         boolean filter_isNull_6 = inputadapter_isNull_0;
/* 047 */         UTF8String filter_value_6 = null;
/* 048 */         if (!inputadapter_isNull_0) {
/* 049 */           filter_value_6 = UTF8String.fromString(String.valueOf(inputadapter_value_0));
/* 050 */         }
/* 051 */         if (!(!filter_isNull_6)) continue;
/* 052 */
/* 053 */         ((org.apache.spark.sql.execution.metric.SQLMetric) references[0] /* numOutputRows */).add(1);
/* 054 */
/* 055 */         boolean project_isNull_0 = false;
/* 056 */         UTF8String project_value_0 = null;
/* 057 */         if (!false) {
/* 058 */           project_value_0 = UTF8String.fromString(String.valueOf(inputadapter_value_0));
/* 059 */         }
/* 060 */         filter_mutableStateArray_0[1].reset();
/* 061 */
/* 062 */         filter_mutableStateArray_0[1].zeroOutNullBytes();
/* 063 */
/* 064 */         if (project_isNull_0) {
/* 065 */           filter_mutableStateArray_0[1].setNullAt(0);
/* 066 */         } else {
/* 067 */           filter_mutableStateArray_0[1].write(0, project_value_0);
/* 068 */         }
/* 069 */         append((filter_mutableStateArray_0[1].getRow()));
/* 070 */
/* 071 */       } while(false);
/* 072 */       if (shouldStop()) return;
/* 073 */     }
/* 074 */   }
/* 075 */
/* 076 */ }

This PR proposes to use semantic comparison both in FilterExec.output and FilterExec.doConsume for nullable attribute.
With this PR, the generated code snippet is below:
== Subtree 2 / 5 ==
*(3) Project [substring(x#8, 5,<PHONE_NUMBER>) AS x#5]
+- *(3) Filter ((length(substring(x#8, 5,<PHONE_NUMBER>)) > 0) AND isnotnull(substring(x#8, 5,<PHONE_NUMBER>)))
   +- Scan hive default.table3 [x#8], HiveTableRelation `default`.`table3`, org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, [x#8]

Generated code:
/* 001 */ public Object generate(Object[] references) {
/* 002 */   return new GeneratedIteratorForCodegenStage3(references);
/* 003 */ }
/* 004 */
/* 005 */ // codegenStageId=3
/* 006 */ final class GeneratedIteratorForCodegenStage3 extends org.apache.spark.sql.execution.BufferedRowIterator {
/* 007 */   private Object[] references;
/* 008 */   private scala.collection.Iterator[] inputs;
/* 009 */   private scala.collection.Iterator inputadapter_input_0;
/* 010 */   private org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter[] filter_mutableStateArray_0 = new org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter[2];
/* 011 */
/* 012 */   public GeneratedIteratorForCodegenStage3(Object[] references) {
/* 013 */     this.references = references;
/* 014 */   }
/* 015 */
/* 016 */   public void init(int index, scala.collection.Iterator[] inputs) {
/* 017 */     partitionIndex = index;
/* 018 */     this.inputs = inputs;
/* 019 */     inputadapter_input_0 = inputs[0];
/* 020 */     filter_mutableStateArray_0[0] = new org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter(1, 32);
/* 021 */     filter_mutableStateArray_0[1] = new org.apache.spark.sql.catalyst.expressions.codegen.UnsafeRowWriter(1, 32);
/* 022 */
/* 023 */   }
/* 024 */
/* 025 */   protected void processNext() throws java.io.IOException {
/* 026 */     while ( inputadapter_input_0.hasNext()) {
/* 027 */       InternalRow inputadapter_row_0 = (InternalRow) inputadapter_input_0.next();
/* 028 */
/* 029 */       do {
/* 030 */         boolean inputadapter_isNull_0 = inputadapter_row_0.isNullAt(0);
/* 031 */         UTF8String inputadapter_value_0 = inputadapter_isNull_0 ?
/* 032 */         null : (inputadapter_row_0.getUTF8String(0));
/* 033 */
/* 034 */         boolean filter_isNull_0 = true;
/* 035 */         boolean filter_value_0 = false;
/* 036 */         boolean filter_isNull_2 = true;
/* 037 */         UTF8String filter_value_2 = null;
/* 038 */
/* 039 */         if (!inputadapter_isNull_0) {
/* 040 */           filter_isNull_2 = false; // resultCode could change nullability.
/* 041 */           filter_value_2 = inputadapter_value_0.substringSQL(5,<PHONE_NUMBER>);
/* 042 */
/* 043 */         }
/* 044 */         boolean filter_isNull_1 = filter_isNull_2;
/* 045 */         int filter_value_1 = -1;
/* 046 */
/* 047 */         if (!filter_isNull_2) {
/* 048 */           filter_value_1 = (filter_value_2).numChars();
/* 049 */         }
/* 050 */         if (!filter_isNull_1) {
/* 051 */           filter_isNull_0 = false; // resultCode could change nullability.
/* 052 */           filter_value_0 = filter_value_1 > 0;
/* 053 */
/* 054 */         }
/* 055 */         if (filter_isNull_0 || !filter_value_0) continue;
/* 056 */         boolean filter_isNull_8 = true;
/* 057 */         UTF8String filter_value_8 = null;
/* 058 */
/* 059 */         if (!inputadapter_isNull_0) {
/* 060 */           filter_isNull_8 = false; // resultCode could change nullability.
/* 061 */           filter_value_8 = inputadapter_value_0.substringSQL(5,<PHONE_NUMBER>);
/* 062 */
/* 063 */         }
/* 064 */         if (!(!filter_isNull_8)) continue;
/* 065 */
/* 066 */         ((org.apache.spark.sql.execution.metric.SQLMetric) references[0] /* numOutputRows */).add(1);
/* 067 */
/* 068 */         boolean project_isNull_0 = true;
/* 069 */         UTF8String project_value_0 = null;
/* 070 */
/* 071 */         if (!inputadapter_isNull_0) {
/* 072 */           project_isNull_0 = false; // resultCode could change nullability.
/* 073 */           project_value_0 = inputadapter_value_0.substringSQL(5,<PHONE_NUMBER>);
/* 074 */
/* 075 */         }
/* 076 */         filter_mutableStateArray_0[1].reset();
/* 077 */
/* 078 */         filter_mutableStateArray_0[1].zeroOutNullBytes();
/* 079 */
/* 080 */         if (project_isNull_0) {
/* 081 */           filter_mutableStateArray_0[1].setNullAt(0);
/* 082 */         } else {
/* 083 */           filter_mutableStateArray_0[1].write(0, project_value_0);
/* 084 */         }
/* 085 */         append((filter_mutableStateArray_0[1].getRow()));
/* 086 */
/* 087 */       } while(false);
/* 088 */       if (shouldStop()) return;
/* 089 */     }
/* 090 */   }
/* 091 */
/* 092 */ }

Why are the changes needed?
Fix NPE bug in FilterExec.
Does this PR introduce any user-facing change?
no
How was this patch tested?
new UT

Can one of the admins verify this patch?

@viirya @cloud-fan  gentle ping, would you like to review this, thank you. :)

Can one of the admins verify this patch?

ok to test

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-K8s/16306/
Test PASSed.

Test build #111232 has finished for PR 25902 at commit 7e54ccb.

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/111232/
Test FAILed.

Test build #111255 has started for PR 25902 at commit af0fb3f.

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-K8s/16324/
Test PASSed.

@cloud-fan @viirya
Sorry, my earlier description and  fix is not good enough .
The real problem is here:
nullcheck will not be generated for (length(cast(x#7L as string)) > 0) because
(length(cast(x#7L as string)) > 0)  and isnotnull(cast(x#7L as string)) are not semantic equal when  generating code for Filter ((length(cast(x#7L as string)) > 0) AND isnotnull(cast(x#7L as string))).
At the same time, filter output  attribute x#7L is marked as not nullable. Nullability will not be checked when generating code for x#7L.
So NPE is thrown  when reading null data in generated code of  (length(cast(x#7L as string)) > 0) .
To fix this, I think we can filter attributes both in notNullPreds and  otherPreds when get notNullAttributes:
  private val notNullAttributes = notNullPreds.flatMap(_.references).distinct.map(_.exprId)
    .diff(otherPreds.flatMap(_.references).distinct.map(_.exprId))

Test build #111256 has started for PR 25902 at commit bc0a688.

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-K8s/16325/
Test PASSed.

Test build #111255 has finished for PR 25902 at commit af0fb3f.

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/111255/
Test FAILed.

Test build #111256 has finished for PR 25902 at commit bc0a688.

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/111256/
Test FAILed.

I think the problem is because the child of IsNotNull is not a reference. So when we look at the IsNotNull that can filter null values for a non-IsNotNull predicate, we fail to look at it up:
val idx = notNullPreds.indexWhere { n => n.asInstanceOf[IsNotNull].child.semanticEquals(r)}

Doesn't the easiest fix look:
val idx = notNullPreds.indexWhere { n =>
  n.asInstanceOf[IsNotNull].child.references.contains(r)
}

@viirya your proposal works, but is a little against the original design goal. Think about IsNotNull(a + b + c + d ..) and Substring(a).
When codegen Substring(a), with your proposal, we will codegen IsNotNull(a + b + c + d ..) first, which loads more columns and may cause perf regression.
I have a slightly different proposal: when codegen Substring(a), check if there is a IsNotNull(a) predicate. If there is, codegen it first. If not, and a is a not-nullable attribute, then generate a IsNotNull(a) and codegen it first.

Ah, I see. You are correct. Your proposal sounds good.

@cloud-fan

I have a slightly different proposal: when codegen Substring(a), check if there is a IsNotNull(a) predicate. If there is, codegen it first. If not, and a is a not-nullable attribute, then generate a IsNotNull(a) and codegen it first.

Substring(a) a could be an expression. If we have predicates like Substring(Substring(a)) and IsNotNulll(Substring(a)),  we could codegen IsNotNulll(Substring(a)) for null check first?

@wangshuo128 you are right that we can improve the algorithm further, and we can do it once the bug is fixed. For now let's fix the bug without introducing a regression.
That said, for any predicate (not IsNotNull), find all its references (e.g. a and b), and check if there are corresponding IsNotNull predicates (e.g. IsNotNull(a) and IsNotNull(b)). If a reference has a corresponding IsNotNull predicate, codegen it first. Otherwise, generate a new IsNotNull predicate for it and codegen it, if the reference is a not-nullable attribute.

For now let's fix the bug without introducing a regression.

Ok, I'll try to fix this bug first.

Test build #111341 has started for PR 25902 at commit 5555731.

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-K8s/16388/
Test PASSed.

Test build #111341 has finished for PR 25902 at commit 5555731.

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/111341/
Test FAILed.

Sorry, @JoshRosen , do you mind I use your code to move test from sql/hive to sql/core ?

Sorry, @JoshRosen , do you mind I use your code to move test from sql/hive to sql/core ?

Yes, please feel free to use that! This bug is somewhat hard to reproduce in unit tests because filter pushdown to data source scans will prevent the FilterExec code from processing the null-containing input rows. In d1658bbffb07d2b0c5f3aabc9362b397a2c0aeb8 I worked round that by using typed Dataset operations to create black-box operators through which the optimizer cannot push filters.
(I'm following this PR because I'm interested in other aspects of IsNotNull optimizations; I have some notes on this particular code in #24765, something of a backburner project as I learn more about this code)

Test build #111377 has started for PR 25902 at commit 5272097.

Yes, please feel free to use that!

@JoshRosen Thanks a lot!

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-K8s/16420/
Test PASSed.

Test build #111378 has started for PR 25902 at commit fcada1c.

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-K8s/16421/
Test PASSed.

Test build #111377 has finished for PR 25902 at commit 5272097.

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/111377/
Test PASSed.

Test build #111378 has finished for PR 25902 at commit fcada1c.

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/111378/
Test PASSed.

Test build #111393 has started for PR 25902 at commit f33d34c.

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-K8s/16434/
Test PASSed.

Test build #111393 has finished for PR 25902 at commit f33d34c.

This patch fails due to an unknown error code, -9.
This patch does not merge cleanly.
This patch adds no public classes.

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/111393/
Test FAILed.

@wangshuo128 Can you resolve the conflict first?

@cloud-fan
Would you like to take another look if you have time? :)
BTW, need I cherry-pick #25925 to resolve the conflicts?

@wangshuo128 Can you resolve the conflict first?

Ok

Test build #111460 has started for PR 25902 at commit 124ad87.

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-K8s/16494/
Test PASSed.

Test build #111460 has finished for PR 25902 at commit 124ad87.

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/111460/
Test PASSed.

thanks, merging to master/2.4!

Thanks!


Button: change button to an ion-button component

This will make it easier for users to have their own custom buttons instead of overriding our styles.

<a button> becomes <a ion-button>
<button> becomes <button ion-button>

@brandyscarney, wouldn't it be cleaner and more consistent to have a <ion-button> element instead of a <button ion-button> like
<ion-button>
  Right Icon
  <ion-icon name="star"></ion-icon>
</ion-button>

This may render a <button ion-button> behind the scenes.

Hey @mpaland, thanks for the suggestion! The short answer is that using an attribute selector rather than an element selector allows us to gain all of the advantages of the native <button> and <a> elements, rather than passing all of the native functionality down and being difficult to maintain. This is something we have decided to do in line with the material team's implementation. They have put together a great document explaining the various reasons for this: https://docs.google.com/document/d/1m8IxhKu5qI8xwjePVGZMbRve3MTW9M8odgcPiuAZfoM/preview?pref=2&pli=1#

Brandy, thanx for pointing this out. Kara's doc makes your decision pretty clear. IMHO not 100% nice - but necessary.


Requesting Bluetooth permissions always returns "denied"

Bug
Requesting Bluetooth permissions always returns "denied" on an iPad mini 2 running iOS 12.4.6 (the highest iOS version currently available for this device). The user is never prompted for permissions.
Environment info
react-native info output:
System:
    OS: macOS 10.15.4
    CPU: (8) x64 Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
    Memory: 1.40 GB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 12.14.1 - /usr/local/bin/node
    Yarn: Not Found
    npm: 6.14.4 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.9.1 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 13.4, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
    Android SDK:
      API Levels: 23, 25, 26, 28, 29
      Build Tools: 25.0.0, 26.0.2, 28.0.3, 29.0.2
      System Images: android-28 | Intel x86 Atom_64, android-29 | Google APIs Intel x86 Atom, android-29 | Google Play Intel x86 Atom
      Android NDK: Not Found
  IDEs:
    Android Studio: 3.6 AI-192.7<IP_ADDRESS>08749
    Xcode: 11.4/11E146 - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_222 - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.11.0 => 16.11.0
    react-native: 0.62.2 => 0.62.2
  npmGlobalPackages:
    *react-native*: Not Found

Library version: 2.1.4
Steps To Reproduce

Request Bluetooth permissions
The returned result is "denied"

Describe what you expected to happen:

Request Bluetooth permissions
The user is prompted to grant Bluetooth permissions
The returned response is either "granted" or "blocked"

Reproducible sample code
request(PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL).then(result => {
    console.warn(result)
})

My workaround is to check the iOS version before making the request (since Bluetooth permissions were not required prior to iOS 13), but it seems like this is something that should be handled internally by the library.
if (Platform.OS == "ios" && parseInt(Platform.Version, 10) > 12) {
    request(PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL).then(result => {
        console.warn(result)
    })
} else {
    console.warn("Permissions not required.")
}

@daveyjones Hi. Are you trying to request Bluetooth Peripheral or Bluetooth permission in general?
On iOS <= 12, the second one doesn't exist (see CBManager documentation, it's a new API on iOS 13+), so we have to use CBPeripheralManager, which will return denied if you don't add the capability:

Which correspond to:

@zoontek Thanks for the response! This is good to know.


configures the global style

What problem does this feature solve?
rspack configures global styles, such as webpack plugin: style-resources-loader.
What does the proposed API of configuration look like?
rules: [{
   test: /\.less$/,
   use: ['style-loader', 'css-loader', 'less-loader', {
       loader: 'style-resources-loader',
       options: {
           patterns: path.resolve(__dirname, 'path/to/less/variables/*.less'),
           injector: 'append'
       }
   }]
}]

I don't understand what you described. Could you add more context?

The current legacy project is based on<EMAIL_ADDRESS>version, I will define all css variables in a file (src/styles/common/var.less),
You only need to import this file once to use the css variable directly in all files, no need to import it in every file that needs to be used.
vue.config.js:
//vue.config.js
const path = require('path');
const resolve = dir => path. join(__dirname, dir);

module.exports = {
   ...
   pluginOptions: {
     'style-resources-loader': {
       preProcessor: 'less',
       patterns: [resolve('src/styles/common/var.less')],
     },
   },
   ...
}

var.less:
@red: #ee0a24;
@white: #fff;
// font variable
@font-color-gray: @gray-deep;
@font-size-xs: 20px;
@font-size-small: 24px;
@font-size-normal: 28px;
@font-size-lg: 32px;

use:
<style lang="less" scoped>
// After configuring style-resources-loader, there is no need to introduce css global variables like this @import<EMAIL_ADDRESS>.title {
   font-size: @font-size-lg;
}
</style>

/The current legacy project is based on<EMAIL_ADDRESS>version, I will define all css variables in a file (src/styles/common/var.less), You only need to import this file once to use the css variable directly in all files, no need to import it in every file that needs to be used.
vue.config.js:
//vue.config.js
const path = require('path');
const resolve = dir => path. join(__dirname, dir);

module.exports = {
   ...
   pluginOptions: {
     'style-resources-loader': {
       preProcessor: 'less',
       patterns: [resolve('src/styles/common/var.less')],
     },
   },
   ...
}

var.less:
@red: #ee0a24;
@white: #fff;
// font variable
@font-color-gray: @gray-deep;
@font-size-xs: 20px;
@font-size-small: 24px;
@font-size-normal: 28px;
@font-size-lg: 32px;

use:
<style lang="less" scoped>
// After configuring style-resources-loader, there is no need to introduce css global variables like this @import<EMAIL_ADDRESS>.title {
   font-size: @font-size-lg;
}
</style>

@hyf0

Ahh this is like sass resource loader.
They have global var or mixin they dont want to import into ever style file to use, but instead want to configure injector to inject mixin or variable file import into each style file processed.
I used to do this with sass using
https://github.com/shakacode/sass-resources-loader

@fengyun2  Is the problem solved ?


Allow parsing of String into int for command line flags

@jreichhold could you please address the concerns raised here?

This is already fixed in head. Closing


Updated to work with the new input pipeline

Simply updated the "compare.py" along with the commit: davidsandberg@f63a660

Thanks!


Readout error mitigation counts

Informations

Qiskit Ignis version: 0.2.0
Python version: 3.6.9
Operating system: Ubuntu

What is the current behavior?
The readout error mitigation filter returns counts in binary like format, e.g.
000: 10.123, 001: 234.01, 010: 20.233

When saving such results using pickle and loading them again, the validation raises an issue because it is expecting hex format.
Steps to reproduce the problem

execute circuit with cals for readout error mitigation to get a result back.
Apply the readout filter to the non calibration result to get a new result mitigated_result.
Merge this result back into the original result by doing

mitigated_result = filter.apply(non_cal)
for res in mitigated_result.results:
    res.header.name = 'mitigated_' + res.header.name
    result.results.append(res)

Saved the whole business in a pickle file.
Attempt to load the pickle file. Validation will raise an error.

What is the expected behavior?
The pickle file should load.
Suggested solutions
Have the readout error mitigation module return counts in hex format.

Code to reproduce
# Import general libraries (needed for functions)
import numpy as np

# Import Qiskit classes
import qiskit
from qiskit import QuantumRegister, QuantumCircuit, ClassicalRegister, Aer
from qiskit.providers.aer import noise

# Import measurement calibration functions
from qiskit.ignis.mitigation.measurement import (complete_meas_cal, CompleteMeasFitter, MeasurementFilter)

# Generate the calibration circuits
qr = QuantumRegister(5)
qubit_list = [2,3,4]
meas_calibs, state_labels = complete_meas_cal(qubit_list=qubit_list, qr=qr, circlabel='mcal')

# Generate a noise model for the 5 qubits
noise_model = noise.NoiseModel()
for qi in range(5):
    read_err = noise.errors.readout_error.ReadoutError([[0.9, 0.1],[0.25,0.75]])
    noise_model.add_readout_error(read_err, [qi])

# Execute the calibration circuits
backend = qiskit.Aer.get_backend('qasm_simulator')
job = qiskit.execute(meas_calibs, backend=backend, shots=1000, noise_model=noise_model)
cal_results = job.result()
meas_fitter = CompleteMeasFitter(cal_results, state_labels, qubit_list=qubit_list, circlabel='mcal')

# Make a 3Q GHZ state
cr = ClassicalRegister(3)
ghz = QuantumCircuit(qr, cr)
ghz.h(qr[2])
ghz.cx(qr[2], qr[3])
ghz.cx(qr[3], qr[4])
ghz.measure(qr[2],cr[0])
ghz.measure(qr[3],cr[1])
ghz.measure(qr[4],cr[2])

job = qiskit.execute([ghz], backend=backend, shots=5000, noise_model=noise_model)
results = job.result()

mitigated_results = meas_fitter.filter.apply(results)

Then showing
mitigated_results

and
results

Will reveal that the counts are in a different format. The mitigated counts will be in binary format while the original result will display hex.

@chriseclectic Should we convert the binary counts into hex when creating the mitigated result?

At the moment the Result object internally stores counts in hex format, as this is what is in the result schema spec. They are only converted to bit-strings when you call the get_counts method. So I suppose for the filter updating the result object it should use the same format (hex) so the output is still a schema valid result.
In principle hex counts could be converted to any base strings (via going to int then custom dit-string) if we allow more than 2-outcome measurements in the future, but the dimension information would have to come from header/config or somewhere.

Closing since this no longer seems to be an issue as of Qiskit 0.19


Reporter is missing when user completes issue save in Jira (cloud only)

There is an issue when a task has unsupported custom fields and the user must navigate to Jira to finish saving their issue.
In this case, once the user navigates to Jira, the reporter field is empty instead of being set to the current user.
This happens on Jira Cloud only. Server instances to not seem affected.
I don't believe that this is a regression from Jira 2.4
Steps:

Configure a Jira project such that an unsupported custom field is mandatory (ex: Radio button)
Connect test user from Mattermost
Create a Jira issue from a post
Add detail in the modal and save
Click the link that is created to complete issue creation in Jira

Observed When you navigate to Jira, the Reporter field is empty.

@DHaussermann I tried to reproduce this issue but I was unable to do so, the reported field was getting set to the current user once we complete creating the issue on Jira.
Post with the link:

Completing issue on Jira:

Reporter asigned:

I did notice that on the issue completing page the reported field was not visible, that might have caused the confusion. Or the issue might have been fixed with some other PR.
Closing for now. Please feel free to re-open it if I missed something and the issue is still reproducible.


Ignore default namespace for attribute prefixes

Attribute prefixes should ignore the current default namespace, see
https://stackoverflow.com/questions/3312390/xml-default-namespaces-for-unqualified-attribute-names
I've made a quick implementation by adding a bool to the related methods and setting it to true when dealing with attributes, but I feel this is somewhat dirty, if you have any preferences please let me know.

but I feel this is somewhat dirty

Yeah, boolean arguments always give me that feeling too! However, I think it's the right thing to do to get the fix and test in. Can always see if a better solution raises its head later.


Extract sentences from HTML page

Parse text from HTML code of Web page;
Split text into sentences.

Done


[FEATURE] show raw input/response within tasks

Is your feature request related to a problem? Please describe.
I was experiencing some uncertainty when making calls to my expensive GPT4 model w.r.t. the actual prompts I was sending to it. You might want to disable this for memory purposes but I think it would be good to have the formatted prompts available or accessible somewhere during pipeline/project iteration.
Describe the solution you'd like
An optional flag to show raw_output and/or raw_input
Describe alternatives you've considered
N.A.
Additional context
N.A.

There is an add_raw_output flag that since 1.2.0 is going to have a default value of True. This will add a raw_output in the distilabel_metadata dictionary.
For the raw_input, we can do the same, add a add_raw_input flag.


how to bind json object to value of ngModel

hii
i want to set [model] in formly to a json which a value of a input field corresponds to a object rather than a string value.
for example
self.formModel[settingItem.Key] =     {
'Value': settingItem.Value,
'rid': settingItem['@rid']
};
and applied [model]= self.formModel.keyName

Not entirely clear what you're after.  What's the type of the input field?  Can you create an plunker to demonstrate in Angular what you're trying to do (without trying to do it in formly)?
At worst you could create a custom control component that implements ControlValueAccessor and then a custom field component that integrates your custom control with formly.
Guide to implementing ControlValueAccessor:
https://blog.thoughtram.io/angular/2016/07/27/custom-form-controls-in-angular-2.html
You can create a custom field component exactly like you see in the ui-bootstrap module (instead of binding formControl to input, you would bind the formControl to your custom control component):
https://github.com/formly-js/ng-formly/blob/master/src/ui-bootstrap/types/input.ts#L7

Thanks for the response,I want to know how can i implement "valueProp"
For Ex:
{
key: 'roles',
type: 'input',
templateOptions: {
label: 'Roles',
options: {id: 1, title : "Administrator"},
valueProp: 'id',
labelProp: 'title'
}
}
the above options are supported in "angular-formly" but don't know how to implement it in ng2-formly.

The only built-in types I'm aware of that use labelProp/valueProp are the select type:
https://github.com/formly-js/ng-formly/blob/master/src/ui-bootstrap/types/select.ts#L34
This is similar to angular-formly (example):
https://github.com/formly-js/angular-formly-templates-bootstrap/blob/master/src/types/select.js#L26
Neither library's built-in (bootstrap) input type uses labelProp/valueProp.


Added support for python3

Switched to using argparse to get command line arguments.
Fix some formatting issues to comply with the PEP8 python
style guide.

CLA is valid!

Thanks, Dwight. This should apply cleanly to https://github.com/google/end-to-end (the upstream of this repo). Would you mind signing the Google CLA and opening it there?
I think it's best to keep the build files and crypto library parts of Google/Yahoo End to End as similar as possible for now.

I'm happy to merge this pro tem, pending some more substantial changes to build system. (Which is unacceptably slow right now.) So: LGTM and merged.

This breaks the testserver for me. Is it just my python environment?


why is that?

I can't add icloud to file management, please help. It's not listed in the cloud storage section.

This is the repo for the website, not the app. Please open the issue again in https://github.com/files-community/files.


setting notification "background tracking ENABLED"

setting notification "background tracking ENABLED" is it possible to prevent this notification from appearing or generating? the "startForeground: false" serves only in foreground but in Background I still do not see how it can be prevented from appearing

check the README: notificationsEnabled: Enable/disable local notifications when tracking and syncing locations


Toggle Button

Goals

[ ] Add & update variants in Figma.
[ ] Create ToggleButton.
Create ToggleButtonGroup.
[ ] Add ToggleButton to Storybook.
[ ] Update Zeroheight.

Research
Requirements

Materials:

Focus and pressed states may reinforce that toggles are part of a group. For example, when one button segment is focused, focus may be displayed simultaneously on the rest of the segment.
Have at least three toggle buttons in a group.
Label buttons with text or an icon.
The following combinations are recommended:
-- Multiple and unselected
-- Exclusive and unselected
-- Exclusive only

Variants:

Exclusive selection - With exclusive selection, selecting one option deselects any other. Exclusive selection does not enforce that a button must be active.

Multiple selection - Multiple selection allows for logically-grouped options, to have multiple options selected.

Vertical buttons.

Enforce value set - If you want to enforce that at least one button must be active.

Custom - customise the component.

With Menu

In TopBar.

Text only.

Icon only.

Text & icon.

Accessibility:

ARIA - ToggleButtonGroup has role="group". You should provide an accessible label with aria-label="label", aria-labelledby="id" or <label>. ToggleButton sets aria-pressed="<bool>" according to the button state.You should label each button with aria-label.
Keyboard - Navigate between buttons with the tab key. The button behaviour follows standard keyboard semantics.

Practice:

https://www.smashingmagazine.com/2017/09/building-inclusive-toggle-buttons/
https://www.w3.org/TR/wai-aria-1.1/#switch
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed
https://joshcollinsworth.com/blog/accessible-toggle-buttons
https://inclusive-components.design/toggle-button/

Additional info:

https://medium.com/tap-to-dismiss/a-better-segmented-control-9e662de2ef57

Research
Requirements

Materials:

Focus and pressed states may reinforce that toggles are part of a group. For example, when one button segment is focused, focus may be displayed simultaneously on the rest of the segment.
Have at least three toggle buttons in a group.
Label buttons with text or an icon.
The following combinations are recommended:
-- Multiple and unselected
-- Exclusive and unselected
-- Exclusive only

Variants:

Exclusive selection - With exclusive selection, selecting one option deselects any other. Exclusive selection does not enforce that a button must be active.

Multiple selection - Multiple selection allows for logically-grouped options, to have multiple options selected.

Vertical buttons.

Enforce value set - If you want to enforce that at least one button must be active.

Custom - customise the component.

With Menu

In TopBar.

Text only.

Icon only.

Text & icon.

Accessibility:

ARIA - ToggleButtonGroup has role="group". You should provide an accessible label with aria-label="label", aria-labelledby="id" or <label>. ToggleButton sets aria-pressed="<bool>" according to the button state.You should label each button with aria-label.
Keyboard - Navigate between buttons with the tab key. The button behaviour follows standard keyboard semantics.

Practice:

https://www.smashingmagazine.com/2017/09/building-inclusive-toggle-buttons/
https://www.w3.org/TR/wai-aria-1.1/#switch
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed
https://joshcollinsworth.com/blog/accessible-toggle-buttons
https://inclusive-components.design/toggle-button/

Released in<EMAIL_ADDRESS>


Fix examples/others/rlgl_standalone.c compilation issue

After seeing the lastest revision on the wiki's Working-on-GNU-Linux, tried compiling all examples and indeed encountered an error:
~$ cd test/
~/test$ ls
raylib-master.zip
~/test$ unzip raylib-master.zip
[...]
~/test$ cd raylib-master/src/
~/test/raylib-master/src$ make PLATFORM=PLATFORM_DESKTOP
[...]
ar rcs ../src/libraylib.a rcore.o rshapes.o rtextures.o rtext.o utils.o rglfw.o rmodels.o raudio.o
raylib static library generated (libraylib.a) in ../src!
~/test/raylib-master/src$ cd ../examples/
~/test/raylib-master/examples$ make PLATFORM=PLATFORM_DESKTOP
[...]
others/rlgl_standalone.c:70:10: fatal error: GLFW/glfw3.h: No such file or directory
   70 | #include "GLFW/glfw3.h"         // Windows/Context and inputs management
      |          ^~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:571: others/rlgl_standalone] Error 1

This error can be addressed by adding -I$(RAYLIB_PATH)/src/external/glfw/include to the INCLUDE_PATHS of the all and others recipes if USE_EXTERNAL_GLFW is set to FALSE on the examples Makefile (R265-R267).
IMHO this would be preferable than requiring the users to get libglfw3 and libglfw3-dev since raylib already packs its version of GLFW and users can still set USE_EXTERNAL_GLFW to TRUE if required.
Tested these proposed changes successfully on PLATFORM_DESKTOP on Linux (Linux Mint 21.1 x86_64).
Edit: added line marks.

@ubkp Nice! Thanks for the review!

@raysan5 Can I revert the latest revision of the wiki's Working-on-GNU-Linux to remove libglfw3 and libglfw3-dev from the required libs?

Can I revert the latest revision of the wiki's Working-on-GNU-Linux to remove libglfw3 and libglfw3-dev from the required libs?

Sure!


Move Request ctor impl to the request.cpp file instead of http.cpp

We already have a request.cpp file, so all method implementations for the Request object belong there, rather than in the common http.cpp.
These constructors were moved from the http.hpp header file to source here: https://github.com/Azure/azure-sdk-for-cpp/pull/1741

My only comment here is that this change slightly changes code generation - when you move code out of a header, it means that you depend on LTCG to inline constructor implementations rather than letting the optimizer do the work.
That may make a difference, especially for simple constructors.

This PR is moving the implementation to the correct cpp file. It was already in a cpp file before (not hpp), just the wrong one.

Doh - didn't realize it was http.cpp. Sigh.


Lab 31 Observations

Module: Create resource template for Azure Cosmos DB for NoSQL
all Bicep related course pages
Seems worth mentioning that Account, Database, Container after resource is just a name, not a command or directive.
Lab/Demo: 31
Task: all tasks with code snippets
Consider adding the Type icon (the green T) to the values in the table as well.
Sometimes typing something yourself makes remembering easier (but having an easy way to get to those class names, date values, … would be great).
Task: Create Azure Cosmos DB for NoSQL resources using Azure Resource Manager templates
Step: 22
Consider using a throughput RU/s value other than the default of 400 (e.g. 450, 500, …).
Task: Create Azure Cosmos DB for NoSQL resources using Bicep templates
Step: 3 & 7
The code snippet in step 3 is not az-cli linter friendly.
Running az-cli issues a warning no-loc-expr-outside-params about using resourceGroup().location instead of a parameter.
Step: 14
Consider using a throughput RU/s value other than the default of 400 (e.g. 450, 500, …).
See also Step 22 when using ARM templates

Reviewing suggestions

notes: Step 22 - We will consider that change for a future version of the lab.  While I believe you are suggesting that would help the learners understand we can change the default RU value, for the purpose of this lab it might not bring the desired effect since all we are trying to teach is how use ARM templates and Bicep files.
Steps 3 & 7, good catch, added parameter to bicep script to prevent warning message.
Step 14 - Please review my previous comment.

I must admit, that “Step 22” and “Step 14” was more of a general idea through out the labs (and lab 31 was just the – pardon – “lucky loser” ;-) ).
It just helps to discern various databases, containers and what not, when them all have their own RU/s.


docs: use v1.1.1 in the readme

What
Use 1.1.1 (not 1.0.0) in the README guides for installing this.
Why

Given the bug in 1.0.0 (fixed in 1.1.0) where it removed all pre-existing plugins (and thus their installed versions of your tools), as per:

https://github.com/asdf-community/asdf-plugin-manager/pull/14

To avoid others experiencing this too. 😅

Thanks @MPV, much appreciated :bow:


Smt rw tac: Added the import to Smt.Reconstruction.Certifying

This is looking good! Two comments about the last commit (please make a PR before pushing to main, so its easier to review):

Its not necessary to do replaceMainGoal [mv] at the end of evalSMTRw. The goal is already closed when you do mv'.refl
The variable m inside both for-loops in smtRw does not need to be mutable

Also, in smtRw you could iterate through arrays instead of indices to avoid unsafe operations, like:
  for innerArr in arr do
    let m := innerArr.size
    if m > 1 then
      for j in [: m-1] do
        let r ← mv'.rewrite (← mv'.getType) (mkAppN assoc #[innerArr[m-j-2]!]) true
        mv' ← mv'.replaceTargetEq r.eNew r.eqProof

This is looking good! Two comments about the last commit (please make a PR before pushing to main, so its easier to review):

It's not necessary to do replaceMainGoal [mv] at the end of evalSMTRw. The goal is already closed when you do mv'.refl
The variable m inside both for-loops in smtRw does not need to be mutable

Oh thanks. This is nicer.

Also, in smtRw you could iterate through arrays instead of indices to avoid unsafe operations, like:
  for innerArr in arr do
    let m := innerArr.size
    if m > 1 then
      for j in [: m-1] do
        let r ← mv'.rewrite (← mv'.getType) (mkAppN assoc #[innerArr[m-j-2]!]) true
        mv' ← mv'.replaceTargetEq r.eNew r.eqProof

You could also iterate through the Exprs in innerArr.reverse instead of the indices. It looks like you are always skipping the last element of each array? if j = 0 then m - j - 2 = m - 2, whereas the last element is at position m - 1

Yes. I am skipping the last element deliberately. This is also why I iterated over indices instead,


Update pt.json

Please accept this pull request.
I updated, corrected and reviewed the Portuguese translation.
I used the word "View" for Views (as the V in MVC) because it is more appropriate than "Visão" ... Portuguese speakers often use the original English term for technical words.
The strings on lines 48, 110 and some others may need to be reviewed later because I may not have understood the context correctly.

Thank you @igorkb !


A11y_VisualStudioCodeClient_Editor_ Screen reader: Voiceover is announcing same information for both the suggestions for exclamation mark(!)

GitHub Tags:
#A11yMAS; #A11yTCS; #A11ySev2; #Device; #Visual Studio Code Client; #BM-VisualStudioCodeClient-MAC-Oct2022; WCAG1.3.1; #Voiceover; #Screenreader.
Environment and OS details:
Visual Studio Code Insiders
Screen reader: Voiceover
Repro Steps:

Open Visual studio code editor
Create a HTML file.
Type (!) exclamation mark .
Suggestions will appear.
Turn on Voiceover
Verify that Voiceover is announcing same information for both the suggestions for exclamation mark(!).

Actual Result:
Voiceover is announcing same information for both the suggestions for exclamation mark(!).
Expected Result:
Voiceover should announce information related to the suggestion. Voiceover should not announce the same information for both the suggestions.
Attachment:

Reference bug: https://github.com/Microsoft/vscode/issues/164700#issue-1423847755

GithubBug:#Regressed:04-17-23
Logged IRT bug against VoiceOver.


Shell integration zsh hooks don't load on macOS/Linux sometimes

Testing #141339
I get this error in the terminal, on Linux using zsh
/snap/code-insiders/917/usr/share/code-insiders/resources/app/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-zsh.sh: 50: /snap/code-insiders/917/usr/share/code-insiders/resources/app/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-zsh.sh: Syntax error: word unexpected (expecting ")")

$ zsh --version
zsh --version
zsh 5.4.2 (x86_64-ubuntu-linux-gnu)

Can repro with plain zsh installed via apt

It's a shame but let's defer, we can call out that there's a known issue with zsh in the release notes.

There's also some issue @rzhao271 was hitting which seems related to using macOS' default zsh, not the homebrew install https://github.com/microsoft/vscode/issues/140784#issuecomment-1023558494

I had the same problem with under Linux (with oh-my-zsh, don't know if this relevant).
The following changes to the integration shell script helped:
Add as first line: #!/bin/zsh
Added at line 49:
typeset -a precmd_functions preexec_functions
Change line 50 and 51 to:
precmd_functions+=(precmd)
preexec_functions+=(preexec)

@gmessow-cxomni thanks for the info, I'm relatively new to zsh scripting so this should be handy

Spent some time looking into this and here's my understanding of what's happening. We launch zsh with shell integration using:
zsh -c '"${execInstallFolder}/out/vs/workbench/contrib/terminal/browser/media/shellIntegration.zsh"; zsh -i'

Since -c is used, autoload, add-zsh-hook, etc. aren't available which is messing everything up. I don't know why results are inconsistent across machines but that's the theory, so the fix would be to move to something closer to what bash does where we source rc/profile within the shell integration script.

Can't verify, due to https://github.com/microsoft/vscode/issues/143389

Added verification steps needed to deter people from trying until it's fixed (hopefully today or tomorrow: https://github.com/microsoft/vscode/issues/143629)

Ready to verify after today's insiders goes out


On a floating window, only the last value in the exact configuration of resizeparams is valid.

Hyprland Version
 System/Version info
Hyprland, built from branch main at commit 9bad62b85f179ad2c95c6e7f734768ef060a604b dirty (layershell: release all mouse buttons before focus on new ls (5219)).
Date: Fri Mar 22 09:28:50 2024
Tag: v0.37.1-39-g9bad62b8

flags: (if any)

System Information:
System name: Linux
Node name: archlinux
Release: 6.8.1-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sat, 16 Mar 2024 17:15:35 +0000

GPU information:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104 [GeForce GTX 1070 Ti] [10de:1b82] (rev a1) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Bug or Regression?
Bug
Description
hyprctl dispatch resizeactive resizeparams exact 70% 50% act like
hyprctl dispatch resizeactive resizeparams exact 50% 50%
How to reproduce
Open a floating terminal and exec ``hyprctl dispatch resizeactive resizeparams exact 70% 50%`
Crash reports, logs, images, videos
No response

likely dupe of https://github.com/hyprwm/Hyprland/issues/5261


Unexpected ready event emitted after logout

Today we observed some unexpected ready event emitted after the logout event, after digging into the code, here are the analysis:
We have multiple components here, using alias as below:
Puppet: underlying puppet
Hostie: hostie server puppet
Timeline:
Puppet: Login event
Hostie: Login event
Puppet: Ready event
Hostie: Ready event (also store the ready event payload, check here)
Puppet: Logout event
Hostie: Logout event
Puppet: Scan event
Hostie: Scan event
Puppet: Login event
Hostie: Login event
Hostie: Ready event (triggered by this logic)
So we need to prevent this wrong ready event to be triggered

Store ready payload code:
https://github.com/wechaty/wechaty-puppet-hostie/blob/293ff4372308b763cb9191087f2fc2c34315e6c1/src/server/puppet-implementation.ts#L96

Trigger ready event after login code:
https://github.com/wechaty/wechaty-puppet-hostie/blob/293ff4372308b763cb9191087f2fc2c34315e6c1/src/server/puppet-implementation.ts#L97-L100


Consider adding a WebAssembly interpreter as a host

Adding a WebAssembly interpreter, that supports the component model, for example the reference implementation wasmtime as a script host will allow using a bunch of languages for scripting (currently JavaScript, Python, Go) and quickly compiled and hot-reloaded rust.
WASM interface definition format also looks like a good fit to describe the scraped bevy API.
Downsides are:

the wasmtime dependency is quite large (45 seconds of compilation in an empty project from scratch on my ryzen 9 machine)

put it behind a feature flag or
seek for an alternative leaner implementation

the wasm component model, that includes the WIT seems to still being stabilized

Does this sound like a good idea to explore?
Thank you for developing this!

Hey @Sorseg!
Web assembly is definitely something I am interested in experimenting with. I haven't considered the idea of interpreting it!
I think this is definitely the approach I see as most compatible with this lib. Only issue I sea is think we'd need to wait for the rust wasm interpreter to support the component model, but please correct me if I am wrong.
I am not familiar enough with WASM to tell if  an effective script API would be plausible within vanilla WASM.
I would also wait for the Trait system overhaul PR to merge (should be a few weeks) before developing this as it will make any sort of new integrations a million times simpler.

I've spent quite some time on wit recently, and the main issue I've run into is that it doesn’t allow data structures to be nested in themselves, similar to how in Rust an enum containing itself in one variant (like JSON lists containing JSON values, which can also be lists) would result in an infinitely sized type. However, Rust has a workaround by using Box<_>, there's no such thing in wit.
Also, there’s currently no implementation for components in the browser environment, which can be a problem or not, depending on the project. The Bytecode Alliance only supplies a converter from components to npm modules, which is kinda unusable for Rust projects.


Lift the remaining transaction snark logic into a common source

Remaining: check account, protocol state predicates,and the checks in apply_body

remaining Check_account_precondition and Check_protocol_state_precondition

most of the zkapp transaction application logic is now lifted into a common source


Edit display name for ingestion pipeline doesn't work

Affected module
UI
Describe the bug
Edit display name for ingestion pipeline doesn't work
https://user-images.githubusercontent.com/39544459/199406571-7a4eac24-8ca5-48a6-8fe5-167ff183dbb4.mov

name of ingestion pipeline can not be changed and editing the displayName might create confusion between pipeline name visible on UI and DAG name available on airflow will be different so it's better if we disable editing the name!


Add ability to pass a chart number as an argument

Requested to add ability to pass a chart number as an argument when launching the app

Added argument parsing and processing of a single chart number argument.  To use, launch the application like this:
node make X where X is the specific chart number to process.  For example,
node make 53 will process the Wichita chart.
It is up to the user to know which chart number corresponds to a specific chart.  See the list in settings.json to cross reference the chart numbers with their chart names.


Undo/Redo gets covered by the name box in image editor

Undo/Redo feels more important than a full-size name box. Can we start squishing the name box before hiding the undo/redo?

Agreed; make the name box responsive. Please loop design in for a recommendation.


Context

The problem

Proposed solution

Alternative solutions

Additional context

The description does not contain any information.
If you have an issue or any question, we're happy to help. 🙂


Change various (confusing to user) message to be DEBUG only

Perhaps the message("Using PICO_EXAMPLES_PATH from environment ('${PICO_EXAMPLES_PATH}')") chunk in docs/CMakeLists.txt should be moved inside the if(PICO_BUILD_DOCS) clause?

The DEBUG level was added in CMake 3.15, so with 3.14 it looks even more confusing:
DEBUGPICO_GCC_TRIPLE defaulted to arm-none-eabi
...
DEBUGIncluding custom CMake file [redacted]/pico-sdk/src/common/pico_base/generate_config_header.cmake
DEBUGELF2UF2 will need to be built

Should the minimum required version be bumped?

ah good catch can you please open an issue


feat(copyright): update copyright to new organization

Signed-off-by: Felipe Zipitria<EMAIL_ADDRESS>We postponed this change for some time, but the copyright needs to be updated.

Thank you.
Would you mind covering the following two files too?

crs-setup.conf.example
README.md

Done.

Looks good from my perspective. Feel free to merge @lifeforms.

@lifeforms Can you review and merge if all is good?

Thank you, this is great.


ATS9870 issues

Here I copied the remaining issues of pull request #66
1

can you make a docstring describing what form coupling, channel_range, impedance, and bwlimit should have?
And if there's a docstring, the whole first part of this method (and acquire too) could be rewritten:
def config(self, **kwargs):
    for k, v in kwargs.items():
        if isinstance(v, (list, tuple)):
            for i, vi in enumerate(v):
                self.parameters[k + str(i + 1)]._set(vi)
        else:
            self.parameters[k]._set(v)

2

not a big deal, but I much prefer implied continuation from parentheses instead of backslashes

3

success (spelling mistake in our variable)

4

this pattern:
return_code = self._ATS9870_dll.Alazarxxxxx(self._handle, ...)
self._result_handler(error_code=return_code, error_source='Alazarxxxxx')

gets a little tedious. What about something like this instead of _result_handler:
def call_dll(self, func_name, *args):
    func = getattr(self._ATS9870_dll, func_name)
    return_code = func(self._handle, *args)
    if error_code != self._success:
        # TODO (C) log error
        # include the args (the beginning anyway) so you don't need the special case
        # of one or more args in the error_source, and you get more info to debug with
        argrepr = repr(args)
        if len(argrepr) > 100:
            argrepr = argrepr[:96] + '...)'
        # put error_code in a class attribute so we're not constantly re-evaluating the dict
        if error_code not in self._error_codes:
            raise KeyError('unknown error {} from function {} with args: {}'.format(
                error_code, func_name, argrepr))
        raise Exception('error {}: {} from function {} with args: {}'.format(
            error_code, self._error_codes[error_code], func_name, argrepr))

I could even imagine including a kwarg updates=['clock_source', 'sample_rate', 'clock_edge', 'decimation'] that would create the _set_updated() calls that also consistently trail this pattern.
Also, it's maybe a matter of style, but I wouldn't call the unknown error a KeyError because the error itself isn't that the key is missing, that's just the reason you don't have more info to give the user about it. I'd probably call them both RuntimeError

@jenshnielsen, is this issue still relevant?

no, that part of the alazar driver code is different now and follows the _call_dll suggestion.


The LiPo batteries are 3.7V; the demo boards I have are 7-12V input voltage

The Arduino Uno board I was going to use to lay out the circuit has an input voltage of 7 to 12V, and it operates on 5V logic. The solar panels I have are 6V, and feed into a charging system for 3.7V LiPo batteries.
Although I will want to use a smaller Arduino nano board for the final product, it still remains to be seen if a 3.3V board can accept a 3.7V input voltage.
Second, the sensors and other components will either operate at 3.3V or at 5V, not both. Must check each sensor individually.

tested it; yes, the Arduino pro mini can work from 3.7V.

I can't program the Arduino Pro Mini 3.3V right now- it requires an FDTI cable that works at 3.3V. I have a cable that works at 5V and doesn't seem compatible. I thought I had worked with this 3.3V board in the past; maybe I have the correct cable lying around somewhere? Other solution: get the sparkfun FTDI breakout board.


Black: Roll back requiring there be no newline after a field's annotation

Pull Request Description
Black: Roll back requiring there be no newline after a field's annotation. Alternatively, require that there be a newline after a field's annotation.
As discussed previously, my perspective is that if one code style isn't clearly better than alternatives, the best approach is to let the devs decide. We don't need all aspects of code style to be 100% conforming in all ways, and taking away freedom unnecessarily from devs makes devs sad.

Future Release Comment
Fixes:

Roll back requiring there be no newline after a field's annotation

Can you give an example to what this allows?

P.S you should find my old email that lets you run the formatting command on commit, it will save you a lot of headaches

Sure, makes sense.


how to use NavigationBar with composedestinations

https://composedestinations.rafaelcosta.xyz/common-use-cases/bottom-bar-navigation
Search on closed issues before opening a new one

Dea @raamcosta ,
I hope this message finds you well. I wanted to take a moment to address a concern that has been brought to my attention. It appears that there might have been instances where new issues were opened without prior consideration of closed ones. While I understand that sometimes mistakes happen or situations evolve, I'd like to emphasize the importance of searching through closed issues before creating new ones.
Each closed issue represents valuable insights, solutions, and discussions that our team has invested time and effort into. By revisiting these closed issues, we not only prevent duplication of efforts but also have the opportunity to build upon past experiences and find answers that could be relevant to the current challenges we are facing.
Opening new issues without checking the closed ones can lead to a fragmented workflow, unnecessary repetition, and the risk of overlooking potentially effective solutions. It can also make it difficult for the team to track progress and maintain a clear overview of our tasks.
I want to stress that this reminder is not meant to discourage proactive problem-solving or the initiation of meaningful discussions. Rather, it's a plea to maximize the collective wisdom of our team and ensure that our efforts are as efficient and streamlined as possible.
In the end, our goal is to collaborate effectively and achieve the best possible outcomes. Let's work together to make the most of our shared knowledge and create an environment where each issue is carefully considered in light of past resolutions.
Thank you for taking the time to read this message. Your dedication to our team's success is truly appreciated.
Best regards


Is "Strenght" Deliberate?

The word "strenght" is usually spelled "strength."  Is the use of this alternate spelling intentional?
For example, the .WithStrenghten() and the PasswordHasherStrenght.Interactive in:
    services.UpgradePasswordSecurity()
                    .WithStrenghten(PasswordHasherStrenght.Interactive)
                    .UseArgon2<IdentityUser>();

No, definetely isn't intentional.


core API

Why has keymaster been removed?

Nothing refers to it

Thanks for the explanation. I dropped the commit.

I am done for today.
Please review, and merge if ok.

Will do, thanks


Move tests logging serve failure to error on it in processor_test, config_test

Search for "TODO: it may be worth validating this scenario. #47" in the source code.
For example:
https://github.com/abcxyz/lumberjack/pull/36/files#diff-e6a5da49af5dca721e705f73a5260e07efcad17ca1a0f49dbd9ec5f044d70f0dR329
https://github.com/abcxyz/lumberjack/pull/36/files#diff-3a18f21fa58cf985b8d8a3f69b25141aa98520c24fe8c1433005851913323855R282
These were gaps found during linting that now at least check err, though we don't do anything with it at this time

This was fixed


Cannot find socket address in classic AFD conditions

[Enter feedback here]
Hi team,
As mentioned in documents, we could use socket address in classic AFD conditions.
https://docs.microsoft.com/en-gb/azure/frontdoor/rules-match-conditions?WT.mc_id=Portal-Microsoft_Azure_Frontdoor&tabs=portal&pivots=front-door-classic#remote-address

But we cannot see the "socket address " on portal.

If we use standard, we could see socket address.

Do we support socket address in rule match conditions on classic AFD?
Thanks for your help.

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

ID: 2facf12e-6b67-28b6-3504-08ae493f6e39
Version Independent ID: bf977608-7c02-674d-6421-649b2d09bc19
Content: Configure Azure Front Door rules match conditions
Content Source: articles/frontdoor/rules-match-conditions.md
Service: frontdoor
GitHub Login: @duongau
Microsoft Alias: duau

@AHopeGao , thank you for your query. We'll investigate this and get back to you shortly!

HI @GitaraniSharma-MSFT
Thanks for your reply. May i know if there any update?

@AHopeGao , apologies for the delay in response. I'm still awaiting an update from the backend team. Will keep you posted.

@AHopeGao , apologies for the delay in response. I just received an update from the Azure Front Door Product Group team that "Socket Address" match condition is not available for Azure Front Door Classic and is only available for AFD Standard/Premium. I have updated the doc accordingly. It will reflect soon.

Hi @GitaraniSharma-MSFT ,
Thanks for your update, very appreciate for your help.


Setperms to a rank

I want to set perms to a rank for Guest Rank i want to set perms rules.ui.

You can do this from the ranks.yml file


where to download the pretrained model

Hi
I want to run evaluation with following command
evaluation.evalrank("$RUN_PATH/coco_scan/model_best.pth.tar", data_path="$DATA_PATH", split="test")
where can i download this pretrained model  "model_best.pth.tar"?
Thanks a lot!

hi,  I want to download this pretrained model "model_best.pth.tar" too , do you have now?

Hi
I want to run evaluation with following command
evaluation.evalrank("$RUN_PATH/coco_scan/model_best.pth.tar", data_path="$DATA_PATH", split="test")
where can i download this pretrained model "model_best.pth.tar"?
Thanks a lot!

hi,  I want to download this pretrained model "model_best.pth.tar" too , do you have now?


Remove tree rooting in calculateUnifrac

This PR changes calculateUnifrac so it doesn't change tree(root tree) before calculating unifrac distance.

calculateUnifrac works both for rows and columns. However, the implementation could be much simpler (now the same steps are done twice (once for rows and once for columns.
Can you modify the code so that you get first the functions and then run the steps only once. Similarly to this https://github.com/microbiome/mia/blob/c17fa9f70f556458247dda22112b14c9889efd3b/R/agglomerate.R#L452


Hosting multiple sites in a single cluster

It would be useful to be able to host multiple user sites within a single Moodle deployment. This would not be a truly multi-tenant solution as there would be shared database server etc. However, different front ends to the system would provide different Moodle sites.

For the current VMSS-based architecture, I think we could consider utilizing Apache's virtual host feature. For example, the /moodle file share is divided into /moodle/www.site1.edu, /moodle/www.site2.edu, ..., and each /moodle/{FQDN} has /moodle/{FQDN}/html, /moodle/{FQDN}/certs, /moodle/{FQDN}/moodledata, and each /moodle/{FQDN}/html is copied locally to individual VM instances, and the configure Apache for multiple virtual hosts. Since adding additional domains will probably happen post-deployment, we'll need to add supporting scripts in the controller.  This may mix up multiple sites' traffic into one VMSS cluster, which might be undesirable, and we might expedite containerized architecture to avoid that with a dedicated container replica set for each site.

Marking this as milestone v1.5.1, to see its feasibility and recommendation(s) of possible solutions. We should also consider combining this with the containerization work (#73).


Create a gym-like environment to specify an experimental design and expected results

Investigate pebble for synchronization: https://pypi.org/project/Pebble/


Update Micrometer Tracing to 1.4.0-M2

Closed via https://github.com/spring-projects/spring-pulsar/commit/14cf303f54d649d1f0aacbb7f0c9c81e419bcb11


Error when installing the package with laravel 11 with carbon version 3

Hi, after installing laravel 11 which comes with carbon in version 3.0, and later tablar and installing takielias/tablar-kit:"^11", it gives an error:
composer require takielias/tablar-kit:"^11"
./composer.json has been updated
Running composer update takielias/tablar-kit
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

   Problem 1
     - Root composer.json requires takielias/tablar-kit ^11 -> satisfiable by takielias/tablar-kit[11.0, 11.1].
     - takielias/tablar-kit[11.0, ..., 11.1] require nesbot/carbon ^2.38 -> found nesbot/carbon[2.38.0, ..., 2.72.3] but the package is fixed to 3.1.1 ( lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

If you run composer require takielias/tablar-kit:"^11" -W, it downgrades carbon, symfony.
Running composer update takielias/tablar-kit --with-all-dependencies
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 2 updates, 1 removal
   - Removing symfony/clock (v7.0.5)
   - Downgrading nesbot/carbon (3.1.1 => 2.72.3)
   - Downgrading symfony/translation (v7.0.4 => v6.4.4)
   - Locking takielias/tablar-kit (11.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 2 updates, 1 removal
   - Downloading takielias/tablar-kit (11.1)
   - Removing symfony/clock (v7.0.5)
   - Downgrading symfony/translation (v7.0.4 => v6.4.4): Extracting archive
   - Downgrading nesbot/carbon (3.1.1 => 2.72.3): Extracting archive
   - Installing takielias/tablar-kit (11.1): Extracting archive
Generating optimized autoload files

@pedrosalpr It's fixed. Could you please retry?


Use global imagePullPolicy

Signed-off-by: clyang82<EMAIL_ADDRESS>

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: clyang82
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: morvencao
If they are not already assigned, you can assign the PR to them by writing /assign @morvencao in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

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

Can you make this to https://github.com/istio/installer?

Can you make this to https://github.com/istio/installer?

Sure. I saw there is a branch release-1.2 in https://github.com/istio/installer. The new installer is available for release-1.2. right?

@clyang82 yes, for 1.2 we will offer both. istio/installer will be as an alpha, in 1.3 we are targeting it as the only installer

@clyang82 to clarify, just submit it to master and we will backport it to 1.2 for you, we have a bot that cherry-picks

@clyang82 yes, for 1.2 we will offer both. istio/installer will be as an alpha, in 1.3 we are targeting it as the only installer

Thanks for your information. so I think this PR should go into istio (stable) and istio/installer (alpha). WDYT?

I think this should go to release branch(release-1.2), too.

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

Needs approval from an approver in each of these files:

install/OWNERS [sdake]

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


Implement IDEA plugin

with Jetpack Compose https://blog.jetbrains.com/kotlin/2021/02/jetpack-compose-for-desktop-milestone-3-released/ implement UI for IDEA plugin

https://github.com/JetBrains/compose-jb/tree/master/examples/intelliJPlugin


Publish to a single connection ID

Am I forced to subscribe the connection on OPEN to a Grip-Channel meant for only one connection before I can send a message via the /publish endpoint?
What if I could publish to a special c:<id> channel that maps to a single connection (without being forced to manually subscribe the connection to it first, of course)? :)

Correct. For publishing to specific connections, you could subscribe using the connection ID as the channel, but this is not done automatically.

Is there not a way to send a websocket text/message to a specific connection id? I can send a message to one particular connection id when responding on the REP spec, but not though any kind of control spec, is that correct?

That's correct. Control endpoints can send messages only to channels.
One thing you can do by connection ID is refresh. Then the backend can respond with any messages, including control messages.


yea i can't download the atom.exe file for windows 10

Prerequisites

[ ] Can you reproduce the problem in safe mode?
[x] Are you running the latest version of Atom?
[x] Did you check the debugging guide?
[x] Did you check the FAQs on Discuss?
[x] Are you reporting to the correct repository?
[x] Did you perform a cursory search to see if your bug or enhancement is already reported?

For more information on how to write a good bug report or enhancement request, see the CONTRIBUTING guide.
Description
[Description of the bug or feature]
Steps to Reproduce

[First Step]
[Second Step]
[and so on...]

Expected behavior: [What you expected to happen]
Actual behavior: [What actually happened]
Versions
You can get this information from executing atom --version and apm --version at the command line. Also, please include the OS and what version of the OS you're running.

This belongs on the atom/atom.io repository.  Please open an issue there and describe in detail the steps you are taking to try to download Atom.


only execute nodes that changed

execute nodes that changed
and nodes downstream of those nodes
"changed" means

procedure lines changed
this includes added, deleted, moved, disabled, printed, selected
any input boxes changed
a "changed" flag is created, any input box "blur" event will set it to true

if global variables changed, execute everything

fixed, up to a point
using numeric index


ARROW-5061: [Release] Improve 03-binary performance

Use jq in local
Ensure making variables for "for" function local for parallel processing

+1
I've used this change for 0.13.0-rc4.


Codemod excessive inline comments

After running @rehearsal/cli#migrate from latest master, against a given project the following input/output results. Note the output is trimmed in the example below, however the actual file the "@ts-ignore @rehearsal ..." comments are repeated over 8000 times:
input:
export default class Foo extends Service {
  constructor() {
    super(...arguments);
  }

  fooMethod(size) {
    const nextBreakpointIndex =
      orderedBreakpoints.indexOf(
        orderedBreakpoints.find(([key]) => key === size)
      ) + 1;
    if (nextBreakpointIndex < orderedBreakpoints.length) {
      return this.viewportWidth >= orderedBreakpoints[nextBreakpointIndex][1];
    }
    // If this point is reached, searching for the max breakpoint
    return false;
  }
}

output:
export default class Foo extends Service {
  constructor() {
    super(...arguments);
  }

  fooMethod(size) {
    const nextBreakpointIndex =
      orderedBreakpoints.indexOf(
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
        orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
        orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
        orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
        orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
        orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
        orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
        orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
        orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
        /* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
                  orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
                  orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
          /* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
          /* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
                  orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
                  orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
          /* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
          /* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
                  orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
                  orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
          /* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
          /* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
                  orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
                  orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
/* @ts-ignore @rehearsal TODO TS2345: Argument of type 'string, unknown] | undefined' is not assignable to parameter of type 'string, unknown'. Consider verifying both types, using type assertion: '(
        orderedBreakpoints.find(([key]) => key === size) as string)', or using type guard: 'if (
        orderedBreakpoints.find(([key]) => key === size) instanceof string) { ... }'. */
  }
}

Seems I know the issue... @ts-ignore, the same as @reheaesal works only when placed on the exact line above the issue. Let's discuss the solution.


chore: release master

:robot: I have created a release beep boop
configs: 1.16.0
1.16.0 (2023-06-02)
Features

test release wtf (038df16)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wholesome-ghoul/allaround-configs/releases/tag/configs-v1.16.0 :sunflower:


Smarter schema caching

Cache checks whether the cache is younger then the input spec, and, in case errata is used, whether it's younger then errata.
Doesn't check if the cache was created using errata or not.
It creates uses cached version when the cache has errata and it\s not provided in the current run, and vice-versa

parsing yaml takes the most time, so take SHA1 of the files before parsing them and store it with the cache


Multilanguage case: improper language url and correspondent tab when editing a module item

When editing a module item in admin panel -> the form fields from the first language are displayed ("default-language" in quarx.php), but the last language tab is highlighted and the correspondent language url is not being loaded

I'll need a bigger description of this, can you provide example urls and some screenshots possibly. Its hard to isolate exactly what isnt working correctly for you.

I provide steps and screenshot with problem encountered:

i have set in app.php 'locale' => 'fr', and 'fallback_locale' => 'en', & in quarx.php the following:

    'auto-translate' => true,
    'default-language' => 'fr',
    'languages' => [
        'fr' => 'français',
        'en' => 'english',
    ],

i create a page 'test-page' and then, after submit i am on the same page, on edit case;
after submit the url has no lang param regarding the actual language i am positioned on (it's just quarx/pages/{id}/edit with no language) and the highlighted language tab is always the last one, in my case 'english';
on create and update if a write some content, it will be saved for first language, 'french' in my case, although english tab is active; if i don't specifically click a language tab, the url will not appear with corresponding lang param '?lang=fr' and the corresponding lang tab is not highlighted;

Awesome, thanks, replicating this setup - I'm getting the same issue, I'll see what I can fix today

K, solved it, there were a couple issues. Will be pushing update today

Thank you !

I still see the same behavior !

What version do you have in the bottom corner? and did you replace your resources/views/vendor/quarx views?

I updated the dependencies just today and i have the last Quarx version 2.3.21. I don't really know what exactly to move and where, can you give more info on this pls ?

yes, i should have published the vendor by running 'php artisan vendor:publish' that replaces resources/views/vendor/quarx with the ones from project_name/vendor/yab/quarx/src/Views;
it now works for default quarx modules, but i can mention that after creating a new module, the language tabs from custom module edit in admin panel are still loaded the same (because of Quarx::config('quarx.languages')) instead of config('quarx.languages'))):

            @foreach(config('quarx.languages', Quarx::config('quarx.languages')) as $short => $language)

                    id.'/edit?lang='.$short) }}">{{ ucfirst($language) }}

            @endforeach

id.'/edit?lang='.$short) }}">{{ ucfirst($language) }}

@endforeach```

This should be accurate. I have not yet made a means of setting modules as multilingual but its on my todo list.

You will also need to make sure your module uses `Yab\Quarx\Traits\Translatable` also check out the BlogRepository and look at the update method to make sure you're saving the languages


Add 1.30 E2E for tinkerbell

Issue #, if available:
Add 1.30 E2E tests for tinkerbell. Tested by running the quicks tests against my local branch and here are the results. TestTinkerbellKubernetes130Ubuntu2004To2204Upgrade failed on booting the hardware and can be ignored as the other two tests passed which indicate that the new test framework functions added for 1.30 work as expected.
Description of changes:
Testing (if applicable):
Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Add average display on review list

What do you think about adding something like this?

Love it!
I'm guessing its still work in progress?

Love it!
I'm guessing its still work in progress?

Yeah it probably needs styled better. Open to any suggestions!

On 20 Jan 2021, at 19:36, Sam Poyigi<EMAIL_ADDRESS>wrote:

Love it!
I'm guessing its still work in progress?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Yeah it probably needs styled better. Open to any suggestions!

On 20 Jan 2021, at 19:36, Sam Poyigi<EMAIL_ADDRESS>wrote:

Love it!
I'm guessing its still work in progress?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

No no, the styling is good. Just the rating text.. Instead of numbers you can use the actual rating text (Good.. Bad) And I'll put the HTML in a separate partial and call it from the list partial.

No no, the styling is good. Just the rating text.. Instead of numbers you can use the actual rating text (Good.. Bad) And I'll put the HTML in a separate partial and call it from the list partial.

No problem - both done

No problem - both done

Was just reviewing this again and I thought why not just use a pie chart instead of the progress bar? Since we're adding a new feature might be nice to make it look cool too ;)

Yep sure. Just use Chart.js from the dashboard views?

On 2 Feb 2021, at 14:03, Sam Poyigi<EMAIL_ADDRESS>wrote:
Was just reviewing this again and I thought why not just use a pie chart instead of the progress bar? Since we're adding a new feature might be nice to make it look cool too ;)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/tastyigniter/ti-ext-local/pull/37#issuecomment-771655545, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAMVOZETUGQVONSHQW7LCLS5AAZ3ANCNFSM4WKE7EWA.

Ok that should be there now - just lifted the colours from dashboard for them - that probably needs looked at as there are only 3 so I've cycled over them. Never sure what colours to use to be honest.

Made some changes

Looks good :)

On 17 Feb 2021, at 00:20, Sam Poyigi<EMAIL_ADDRESS>wrote:

Made some changes
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


how to store data

options:

add results from the phenoDisco run, TL, SVM classification to a new object called hl and add to pRolocdata? Then load using the function data? The bad side of this is we have then multiple datasets in pRolocdata containing the same quantitation information
add results as columns to hyperLOPIT2015. I would rather not do this as the fData gets bigger and then there are many similar columns
add .rda or other file type to extdata in pRolocdata and load using dir function with appropriate read function? I think this is the best option?

@lgatto  or other suggestions?

Yes, I prefer to add rds files in pRolocdata/inst/extdata and then read then with x <- readRDS(...). But we don't need to store full MSnSet; just the relevant vector/factor or optimisation results is enough. These objects should be names bpw-...rds and then documented in the README file under the Bioconductor pRoloc workflow section.


address several recent jenkins plugin security advisories; address CL…

…I remoting warning
fixes https://github.com/openshift/jenkins/issues/334
also addresses some previous security advisories, as well as the CLI remoting warning (disabling in line with our disabling of sshd in the past)

lgtm [merge]


C Parser generates incomplete gdt if there's mismatched pragma region

Describe the bug
C Parser generates an incomplete gdt archive if the source code contains mismatched #pragma region/#pragma endregion directives. Ghidra doesn't show any errors. Ghidra should ignore #pragma region/#pragma endregion directives, because they are VS-only and they have no effect on compilation.
To Reproduce
Steps to reproduce the behavior:

Save guidTest.prf.txt to parserprofile folder. Update the MSVC version number in the include directories to match your VS version. (But make sure you are using Windows SDK 10.0.22621. Earlier SDK may not reproduce this issue.)
Parse guidTest.prf in CParser. The message says the parsing is successful.
In Data Type Manager, close all other archives, and then click Open File Archive -> Load guidTest.gdt
In Data Type Manager, search for PNDIS_OID, _NDIS_REQUEST_TYPE,  and HttpIsHostHstsEnabled. They do not exist in guidTest.gdt, but do exist in guidTest.gdt_CParser.out

If you parse the generated guidTest.gdt_CParser.out itself, you still get an incomplete gdt. Now remove all lines starting with #pragma region and #pragma endregion from guidTest.gdt_CParser.out. Parse this file again. This time, the generated gdt is complete.
Expected behavior
The CParser should either report an error, or fully parse the headers.
Attachments
guidTest.gdt_CParser.out.txt (To reduce size, I removed empty lines and lines starting with ///)
Environment (please complete the following information):

OS: Windows 11
Java Version: JDK 17
Ghidra Version: 10.3 PUBLIC
Ghidra Origin: official

Additional context
This impacts parsing VisualStudio22_64.prf

@emteere After some trial and errors, I figured out the real cause is #pragma region mismatch, rather than GUID definitions. Parsing this file, guidTest.gdt_region_removed.out.txt (all #pragma region/#pragma endregion removed), generates the expected gdt.

Thanks for looking into it a bit more.
I looked at it today, hoping to get a fix into the next patch.  I discovered it is related to the pragma as you found, but is simply that the parser doesn't parse ',' unless the ',' is inside of '()'.  I should have a fix in soon for you.


Fix oversize icons

If icon images are larger than the available icon space, the icon will not be correctly resized, and will have the edges cut off.

Thank you for your contribution.
Unfortunately using .icon as a file path is only intended for the most basic of use cases. This is why auto is used. I know there are valid cases for contain or over, or even specific sizes, but that would be too much to configure from the data itself.
If you need fine control over how icons are applied and sized - use .icon as a class. That way you have full control over what is displayed and how, you could also use media queries, etc.


[spawn_husky_model-11] process has died

I'm using ROS melodic on Ubuntu 18.04, when I tried to run "roslaunch husky_gazebo husky_playpen.launch" it came to this:
process[twist_mux-8]: started with pid [12240]
process[joy_teleop/joy_node-9]: started with pid [12245]
process[joy_teleop/teleop_twist_joy-10]: started with pid [12246]
process[spawn_husky_model-11]: started with pid [12259]
[ INFO] [1610949124.634990174]: [twist_marker_server] Initialized.
[ERROR] [1610949124.743112672]: Couldn't open joystick /dev/input/ps4. Will retry every second.
[ INFO] [1610949125.614141518]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1610949125.622572884]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1610949125.873377953]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1610949125.880720975]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[ INFO] [1610949127.609498685]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ WARN] [1610949127.837361231, 1298.480000000]: Failed to meet update rate! Took 1298.4800000000000182
[ WARN] [1610949127.842768658, 1298.480000000]: Failed to meet update rate! Took 1298.4600000000000364
[ERROR] [1610949127.843784, 1298.480000]: Spawn service failed. Exiting.
[ INFO] [1610949127.869738958, 1298.480000000]: Physics dynamic reconfigure ready.
Warning [parser_urdf.cc:1115] multiple inconsistent  exists due to fixed joint reduction overwriting previous value [true] with [false].
[spawn_husky_model-11] process has died [pid 12259, exit code 1, cmd /opt/ros/melodic/lib/gazebo_ros/spawn_model -x 0.0 -y 0.0 -z 0.0 -Y 0.0 -unpause -urdf -param robot_description -model / __name:=spawn_husky_model _log:=/home/lenovo/.ros/log/493e7c14-5951-11eb-a21f-5800e3fb5677/spawn_husky_model-11.log].
log file: /home/lenovo/.ros/log/493e7c14-5951-11eb-a21f-5800e3fb5677/spawn_husky_model-11*.log
Topic [///joint_cmd] is not valid.
Service [///joint_cmd_req] is not valid.
[ INFO] [1610949128.722222104, 1298.480000000]: Laser Plugin: Using the 'robotNamespace' param: '/'
[ INFO] [1610949128.722541211, 1298.480000000]: Starting Laser Plugin (ns = /)
[ INFO] [1610949128.725888586, 1298.480000000]: Laser Plugin (ns = /)  <tf_prefix>, set to ""
[ INFO] [1610949128.842654002, 1298.480000000]: Loading gazebo_ros_control plugin
[ INFO] [1610949128.843214413, 1298.480000000]: Starting gazebo_ros_control plugin in namespace: /
[ INFO] [1610949128.844822519, 1298.480000000]: gazebo_ros_control plugin is waiting for model URDF in parameter [robot_description] on the ROS param server.
[ERROR] [1610949129.000507040, 1298.480000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/front_left_wheel
[ERROR] [1610949129.009983169, 1298.480000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/front_right_wheel
[ERROR] [1610949129.012222156, 1298.480000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/rear_left_wheel
[ERROR] [1610949129.013984752, 1298.480000000]: No p gain specified for pid.  Namespace: /gazebo_ros_control/pid_gains/rear_right_wheel
I can't find any issue or tutorial mentioned this problem, so I'm hoping help

I'm assuming that since you closed this issue you've found the solution yourself?

I'm assuming that since you closed this issue you've found the solution yourself?

I'm assuming that since you closed this issue you've found the solution yourself?

Unfortunately no. I closed it because I found it turned to the question "
Controller Spawner couldn't find the expected controller_manager ROS interface. "

I'm assuming that since you closed this issue you've found the solution yourself?

Unfortunately no. I closed it because I found it turned to the question "
Controller Spawner couldn't find the expected controller_manager ROS interface. "


feat: update user_events to send messages

Update the user_events collection structure

It is best to introduce a new collection to hold chat messages. Because user events is supposed to store events such as user_created, user_deleted, etc.