Spark 2: Connection to Hive Metastore doesn't work

The connection to the Hive Metastore from Spark does not work. We can see this by doing a simple SHOW DATABASES in pyspark shell:
spark.sql('SHOW DATABASES')

With Spark 2, we have the following error:
py4j.protocol.Py4JJavaError: An error occurred while calling o37.sql.
...
Caused by: java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration
	at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:661)
	at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:586)
	at org.apache.spark.sql.hive.client.HiveClientImpl.newState(HiveClientImpl.scala:180)
	at org.apache.spark.sql.hive.client.HiveClientImpl.<init>(HiveClientImpl.scala:114)
	... 41 more
Caused by: java.lang.ClassNotFoundException: org.apache.tez.dag.api.TezConfiguration
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1.doLoadClass(IsolatedClientLoader.scala:221)
	at org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1.loadClass(IsolatedClientLoader.scala:210)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 45 more

Based on the warnings printed at instantiation of the pyspark shell for Spark 2, it seems that the Hive properties in hive-site.xml are not compatible with Hive 1.x (which is used by Spark 2):
2022-08-02 11:44:14,100 WARN conf.HiveConf: HiveConf of name hive.metastore.uri.selection does not exist
2022-08-02 11:44:14,101 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.path does not exist
2022-08-02 11:44:14,101 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.password does not exist
2022-08-02 11:44:14,101 WARN conf.HiveConf: HiveConf of name hive.metastore.use.SSL does not exist
2022-08-02 11:45:27,448 WARN conf.HiveConf: HiveConf of name hive.metastore.hmshandler.retry.attempts does not exist
2022-08-02 11:45:27,449 WARN conf.HiveConf: HiveConf of name hive.metastore.authentication does not exist

I think the error is coming both from incompatible hive-site.xml properties and missing Tez jars.

Same Issue .. pyspark command is not well configured via a template.
Please check the spark-shell template for example that is well configured in order to use the specific hive-site.xml that we generated for spark

Same Issue .. pyspark command is not well configured via a template. Please check the spark-shell template for example that is well configured in order to use the specific hive-site.xml that we generated for spark

Pyspark uses the same template as spark-shell and the issue is also present with spark-shell.

same thing with spark2:
usera@mehdi-edge-01 ~]$ spark-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2022-08-02 15:19:08,158 WARN conf.HiveConf: HiveConf of name hive.metastore.uri.selection does not exist
2022-08-02 15:19:08,159 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.path does not exist
2022-08-02 15:19:08,159 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.password does not exist
2022-08-02 15:19:08,159 WARN conf.HiveConf: HiveConf of name hive.metastore.use.SSL does not exist
2022-08-02 15:19:08,186 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
Spark context Web UI available at http://mehdi-edge-01.novalocal:4040
Spark context available as 'sc' (master = yarn, app id = application_1659344321529_0025).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.3.5-TDP-0.1.0-SNAPSHOT
      /_/

Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_332)
Type in expressions to have them evaluated.
Type :help for more information.

scala> spark.sql("show databases").show()
Hive Session ID = 2ffa958a-89e5-4413-8dd9-1317cc13f160
+------------+
|databaseName|
+------------+
|     default|
+------------+

scala>

this message : Caused by: java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration means that you are using the hive-site.xml of hive-site.xml of hive components and not the spark one

can you please share your ls /etc/spark/conf content please ? and cat /etc/spark/conf/hive-site.xml?

Yes I don't know why in my setup Spark reads a different hive-site.xml than the one in /etc/spark/conf. I will try to figure it out.

Good Luck @Nuttymoon :) don't hesitate .. but we should open an issue about pyspark and commands that are not configured via a template ..

Good Luck @Nuttymoon :) don't hesitate .. but we should open an issue about pyspark and commands that are not configured via a template ..

Thanks! Pyspark is not the problem, it has the same template:
cat /usr/bin/pyspark
#!/usr/bin/env bash

export SPARK_CONF_DIR=/etc/spark/conf

/opt/tdp/spark/bin/pyspark "$@"

Ok I have pinpointed the issue. It happens when a Hive Server 2 is present on the edge. Changing the issue name.

@Nuttymoon Do you have any idea why the issue is happened only when HS2 is on edge? The HS2 on the edge is a normal position.

Indeed, when i try to execute this command from hive-s2 node, i had the same issue.
A workaround, for debugging and not to apply in production, consists on moving /etc/hive to another directory, and it avoids this issue.

Unfortunately, this does not fix the issue when a Hive Server 2 is installed on the edge.
Caused by: java.lang.IllegalArgumentException: java.io.IOException: Configuration problem with provider path.
	at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:459)
	at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:224)
	at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.<init>(SessionHiveMetaStoreClient.java:94)
	... 80 more
Caused by: java.io.IOException: Configuration problem with provider path.
	at org.apache.hadoop.conf.Configuration.getPasswordFromCredentialProviders(Configuration.java:2363)
	at org.apache.hadoop.conf.Configuration.getPassword(Configuration.java:2282)
	at org.apache.hadoop.hive.metastore.conf.MetastoreConf.getPassword(MetastoreConf.java:1537)
	at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:452)
	... 82 more
Caused by: java.io.FileNotFoundException: /etc/hive/conf.s2/hive.jceks (Permission denied)

I have found a solution anyways. Opening PR in a bit.

From a master node with hive_s2 and hive_metasore
[root@mehdi-master-02 cloudadm]# ls /etc/hive/
conf.ms  conf.ms.1659018142  conf.ms.1659344346  conf.s2  conf.s2.1659018130  conf.s2.1659344338
[root@mehdi-master-02 cloudadm]# systemctl status hive*
● hive-metastore.service - HiveMetastore
   Loaded: loaded (/usr/lib/systemd/system/hive-metastore.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-08-01 10:59:16 CEST; 1 day 23h ago
 Main PID: 3780 (java)
   CGroup: /system.slice/hive-metastore.service
           └─3780 /usr/lib/jvm/jre-1.8.0-openjdk/bin/java -Dproc_jar -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=true -Dcom...

Aug 01 10:59:16 mehdi-master-02.novalocal systemd[1]: Started HiveMetastore.

● hive-server2.service - Hiveserver2
   Loaded: loaded (/usr/lib/systemd/system/hive-server2.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-08-01 10:59:30 CEST; 1 day 23h ago
 Main PID: 4518 (java)
   CGroup: /system.slice/hive-server2.service
           └─4518 /usr/lib/jvm/jre-1.8.0-openjdk/bin/java -Dproc_jar -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=true -Dcom...

Aug 01 10:59:30 mehdi-master-02.novalocal systemd[1]: Started Hiveserver2.

with hive.execution.engine :
[root@mehdi-master-02 cloudadm]# cat /etc/spark/conf/hive-site.xml
<configuration>
    <property>
    <name>hive.metastore.uris</name>
    <value>thrift://mehdi-master-01.novalocal:9083,thrift://mehdi-master-02.novalocal:9083</value>
  </property>
    <property>
    <name>hive.metastore.uri.selection</name>
    <value>RANDOM</value>
  </property>
    <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/spark</value>
  </property>
    <property>
    <name>hive.metastore.client.connect.retry.delay</name>
    <value>5</value>
  </property>
    <property>
    <name>hive.metastore.client.socket.timeout</name>
    <value>1800</value>
  </property>
    <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
  </property>
    <property>
    <name>hive.server2.thrift.port</name>
    <value>10016</value>
  </property>
    <property>
    <name>hive.server2.transport.mode</name>
    <value>http</value>
  </property>
    <property>
    <name>hive.metastore.sasl.enabled</name>
    <value>true</value>
  </property>
    <property>
    <name>hadoop.security.authentication</name>
    <value>kerberos</value>
  </property>
    <property>
    <name>hive.metastore.use.SSL</name>
    <value>true</value>
  </property>
    <property>
    <name>hive.metastore.truststore.path</name>
    <value>/etc/ssl/certs/truststore.jks</value>
  </property>
    <property>
    <name>hive.metastore.truststore.password</name>
    <value>Truststore123!</value>
  </property>
    <property>
    <name>hive.metastore.kerberos.principal</name>
<EMAIL_ADDRESS>  </property>
    <property>
    <name>hive.metastore.execute.setugi</name>
    <value>true</value>
  </property>
    <property>
    <name>hadoop.rpc.protection</name>
    <value>AUTHENTICATION</value>
  </property>
    <property>
    <name>hive.execution.engine</name>
    <value>spark</value>
  </property>
  </configuration>
[root@mehdi-master-02 cloudadm]# spark-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2022-08-03 10:56:48,945 WARN conf.HiveConf: HiveConf of name hive.metastore.uri.selection does not exist
2022-08-03 10:56:48,945 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.path does not exist
2022-08-03 10:56:48,945 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.password does not exist
2022-08-03 10:56:48,945 WARN conf.HiveConf: HiveConf of name hive.metastore.use.SSL does not exist
2022-08-03 10:56:48,978 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
Spark context Web UI available at http://mehdi-master-02.novalocal:4040
Spark context available as 'sc' (master = yarn, app id = application_1659344321529_0060).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.3.5-TDP-0.1.0-SNAPSHOT
      /_/

Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_332)
Type in expressions to have them evaluated.
Type :help for more information.

scala> spark.sql("show databases").show()
2022-08-03 10:57:16,992 WARN conf.HiveConf: HiveConf of name hive.metastore.hmshandler.retry.attempts does not exist
2022-08-03 10:57:16,992 WARN conf.HiveConf: HiveConf of name hive.metastore.authentication does not exist
Hive Session ID = bd528c92-46a5-49e5-baa5-75704cfb6336
+------------+
|databaseName|
+------------+
|     default|
+------------+

Without hive.execution.engine :
[root@mehdi-master-02 cloudadm]# vi /etc/spark/conf/hive-site.xml
[root@mehdi-master-02 cloudadm]# cat /etc/spark/conf/hive-site.xml
<configuration>
    <property>
    <name>hive.metastore.uris</name>
    <value>thrift://mehdi-master-01.novalocal:9083,thrift://mehdi-master-02.novalocal:9083</value>
  </property>
    <property>
    <name>hive.metastore.uri.selection</name>
    <value>RANDOM</value>
  </property>
    <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/spark</value>
  </property>
    <property>
    <name>hive.metastore.client.connect.retry.delay</name>
    <value>5</value>
  </property>
    <property>
    <name>hive.metastore.client.socket.timeout</name>
    <value>1800</value>
  </property>
    <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
  </property>
    <property>
    <name>hive.server2.thrift.port</name>
    <value>10016</value>
  </property>
    <property>
    <name>hive.server2.transport.mode</name>
    <value>http</value>
  </property>
    <property>
    <name>hive.metastore.sasl.enabled</name>
    <value>true</value>
  </property>
    <property>
    <name>hadoop.security.authentication</name>
    <value>kerberos</value>
  </property>
    <property>
    <name>hive.metastore.use.SSL</name>
    <value>true</value>
  </property>
    <property>
    <name>hive.metastore.truststore.path</name>
    <value>/etc/ssl/certs/truststore.jks</value>
  </property>
    <property>
    <name>hive.metastore.truststore.password</name>
    <value>Truststore123!</value>
  </property>
    <property>
    <name>hive.metastore.kerberos.principal</name>
<EMAIL_ADDRESS>  </property>
    <property>
    <name>hive.metastore.execute.setugi</name>
    <value>true</value>
  </property>
    <property>
    <name>hadoop.rpc.protection</name>
    <value>AUTHENTICATION</value>
  </property>
  </configuration>
[root@mehdi-master-02 cloudadm]#
[root@mehdi-master-02 cloudadm]# spark-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
2022-08-03 10:59:37,428 WARN conf.HiveConf: HiveConf of name hive.metastore.uri.selection does not exist
2022-08-03 10:59:37,429 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.path does not exist
2022-08-03 10:59:37,429 WARN conf.HiveConf: HiveConf of name hive.metastore.truststore.password does not exist
2022-08-03 10:59:37,429 WARN conf.HiveConf: HiveConf of name hive.metastore.use.SSL does not exist
2022-08-03 10:59:37,454 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
Spark context Web UI available at http://mehdi-master-02.novalocal:4040
Spark context available as 'sc' (master = yarn, app id = application_1659344321529_0062).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.3.5-TDP-0.1.0-SNAPSHOT
      /_/

Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_332)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

scala> spark.sql("show databases").show()
2022-08-03 10:59:58,417 WARN conf.HiveConf: HiveConf of name hive.metastore.hmshandler.retry.attempts does not exist
2022-08-03 10:59:58,417 WARN conf.HiveConf: HiveConf of name hive.metastore.authentication does not exist
Hive Session ID = 9465bc59-6c4f-4fbc-8202-9b92b7e355d0
java.lang.ClassNotFoundException: java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration when creating Hive client using classpath: file:/opt/tdp/hive/lib/hive-common-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-classification-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-upgrade-acid-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-shims-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-shims-common-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/log4j-slf4j-impl-2.10.0.jar, file:/opt/tdp/hive/lib/log4j-api-2.10.0.jar, file:/opt/tdp/hive/lib/log4j-core-2.10.0.jar, file:/opt/tdp/hive/lib/guava-19.0.jar, file:/opt/tdp/hive/lib/commons-lang-2.6.jar, file:/opt/tdp/hive/lib/libthrift-0.9.3.jar, file:/opt/tdp/hive/lib/httpclient-4.5.2.jar, file:/opt/tdp/hive/lib/httpcore-4.4.4.jar, file:/opt/tdp/hive/lib/commons-logging-1.0.4.jar, file:/opt/tdp/hive/lib/commons-codec-1.7.jar, file:/opt/tdp/hive/lib/curator-framework-2.12.0.jar, file:/opt/tdp/hive/lib/curator-client-2.12.0.jar, file:/opt/tdp/hive/lib/zookeeper-3.4.6.jar, file:/opt/tdp/hive/lib/jline-2.12.jar, file:/opt/tdp/hive/lib/netty-3.10.5.Final.jar, file:/opt/tdp/hive/lib/hive-shims-0.23-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/javax.servlet-api-3.1.0.jar, file:/opt/tdp/hive/lib/protobuf-java-2.5.0.jar, file:/opt/tdp/hive/lib/commons-io-2.4.jar, file:/opt/tdp/hive/lib/jettison-1.1.jar, file:/opt/tdp/hive/lib/jaxb-api-2.2.11.jar, file:/opt/tdp/hive/lib/jackson-core-asl-1.9.13.jar, file:/opt/tdp/hive/lib/jackson-mapper-asl-1.9.13.jar, file:/opt/tdp/hive/lib/jackson-annotations-2.10.0.jar, file:/opt/tdp/hive/lib/asm-5.0.1.jar, file:/opt/tdp/hive/lib/commons-compress-1.9.jar, file:/opt/tdp/hive/lib/jetty-util-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/commons-cli-1.2.jar, file:/opt/tdp/hive/lib/jackson-core-2.10.0.jar, file:/opt/tdp/hive/lib/jackson-databind-2.10.0.jar, file:/opt/tdp/hive/lib/commons-math3-3.6.1.jar, file:/opt/tdp/hive/lib/jetty-server-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-http-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-io-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-servlet-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-security-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-webapp-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-xml-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/commons-lang3-3.2.jar, file:/opt/tdp/hive/lib/avro-1.8.2.jar, file:/opt/tdp/hive/lib/paranamer-2.7.jar, file:/opt/tdp/hive/lib/snappy-java-1.1.4.jar, file:/opt/tdp/hive/lib/xz-1.5.jar, file:/opt/tdp/hive/lib/gson-2.2.4.jar, file:/opt/tdp/hive/lib/curator-recipes-2.12.0.jar, file:/opt/tdp/hive/lib/jsr305-3.0.0.jar, file:/opt/tdp/hive/lib/hive-shims-scheduler-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-storage-api-2.7.0.jar, file:/opt/tdp/hive/lib/orc-core-1.5.8.jar, file:/opt/tdp/hive/lib/orc-shims-1.5.8.jar, file:/opt/tdp/hive/lib/aircompressor-0.10.jar, file:/opt/tdp/hive/lib/jetty-rewrite-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-client-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/joda-time-2.9.9.jar, file:/opt/tdp/hive/lib/log4j-1.2-api-2.10.0.jar, file:/opt/tdp/hive/lib/log4j-web-2.10.0.jar, file:/opt/tdp/hive/lib/ant-1.9.1.jar, file:/opt/tdp/hive/lib/ant-launcher-1.9.1.jar, file:/opt/tdp/hive/lib/jpam-1.1.jar, file:/opt/tdp/hive/lib/json-1.8.jar, file:/opt/tdp/hive/lib/metrics-core-3.1.0.jar, file:/opt/tdp/hive/lib/metrics-jvm-3.1.0.jar, file:/opt/tdp/hive/lib/metrics-json-3.1.0.jar, file:/opt/tdp/hive/lib/dropwizard-metrics-hadoop-metrics2-reporter-0.1.2.jar, file:/opt/tdp/hive/lib/javolution-5.5.1.jar, file:/opt/tdp/hive/lib/hive-serde-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-service-rpc-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/libfb303-0.9.3.jar, file:/opt/tdp/hive/lib/arrow-vector-0.8.0.jar, file:/opt/tdp/hive/lib/arrow-format-0.8.0.jar, file:/opt/tdp/hive/lib/flatbuffers-1.2.0-3f79e055.jar, file:/opt/tdp/hive/lib/arrow-memory-0.8.0.jar, file:/opt/tdp/hive/lib/netty-buffer-4.1.17.Final.jar, file:/opt/tdp/hive/lib/netty-common-4.1.17.Final.jar, file:/opt/tdp/hive/lib/hppc-0.7.2.jar, file:/opt/tdp/hive/lib/opencsv-2.3.jar, file:/opt/tdp/hive/lib/parquet-hadoop-bundle-1.10.0.jar, file:/opt/tdp/hive/lib/hive-metastore-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-standalone-metastore-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/bonecp-0.8.0.RELEASE.jar, file:/opt/tdp/hive/lib/HikariCP-2.6.1.jar, file:/opt/tdp/hive/lib/commons-dbcp-1.4.jar, file:/opt/tdp/hive/lib/commons-pool-1.5.4.jar, file:/opt/tdp/hive/lib/antlr-runtime-3.5.2.jar, file:/opt/tdp/hive/lib/derby-<IP_ADDRESS>.jar, file:/opt/tdp/hive/lib/datanucleus-api-jdo-4.2.4.jar, file:/opt/tdp/hive/lib/datanucleus-core-4.1.17.jar, file:/opt/tdp/hive/lib/datanucleus-rdbms-4.1.19.jar, file:/opt/tdp/hive/lib/javax.jdo-3.2.0-m3.jar, file:/opt/tdp/hive/lib/transaction-api-1.1.jar, file:/opt/tdp/hive/lib/sqlline-1.3.0.jar, file:/opt/tdp/hive/lib/hbase-client-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-shaded-protobuf-1.0.1.jar, file:/opt/tdp/hive/lib/hbase-common-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-shaded-miscellaneous-1.0.1.jar, file:/opt/tdp/hive/lib/commons-collections4-4.1.jar, file:/opt/tdp/hive/lib/htrace-core-3.2.0-incubating.jar, file:/opt/tdp/hive/lib/commons-crypto-1.0.0.jar, file:/opt/tdp/hive/lib/findbugs-annotations-1.3.9-1.jar, file:/opt/tdp/hive/lib/audience-annotations-0.5.0.jar, file:/opt/tdp/hive/lib/hbase-hadoop-compat-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-metrics-api-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-hadoop2-compat-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-metrics-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-protocol-shaded-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-protocol-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-shaded-netty-1.0.1.jar, file:/opt/tdp/hive/lib/jcodings-1.0.18.jar, file:/opt/tdp/hive/lib/joni-2.1.11.jar, file:/opt/tdp/hive/lib/jdo-api-3.0.1.jar, file:/opt/tdp/hive/lib/jta-1.1.jar, file:/opt/tdp/hive/lib/hive-testutils-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/tempus-fugit-1.1.jar, file:/opt/tdp/hive/lib/hive-exec-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-vector-code-gen-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/velocity-1.5.jar, file:/opt/tdp/hive/lib/hive-llap-tez-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-llap-client-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-llap-common-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/ST4-4.0.4.jar, file:/opt/tdp/hive/lib/ivy-2.4.0.jar, file:/opt/tdp/hive/lib/groovy-all-2.4.11.jar, file:/opt/tdp/hive/lib/calcite-core-1.16.0.jar, file:/opt/tdp/hive/lib/calcite-linq4j-1.16.0.jar, file:/opt/tdp/hive/lib/esri-geometry-api-2.0.0.jar, file:/opt/tdp/hive/lib/sketches-core-0.9.0.jar, file:/opt/tdp/hive/lib/memory-0.9.0.jar, file:/opt/tdp/hive/lib/janino-2.7.6.jar, file:/opt/tdp/hive/lib/commons-compiler-2.7.6.jar, file:/opt/tdp/hive/lib/calcite-druid-1.16.0.jar, file:/opt/tdp/hive/lib/avatica-1.11.0.jar, file:/opt/tdp/hive/lib/stax-api-1.0.1.jar, file:/opt/tdp/hive/lib/hive-service-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-llap-server-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/netty-all-4.1.17.Final.jar, file:/opt/tdp/hive/lib/hive-llap-common-3.1.3-TDP-0.1.0-SNAPSHOT-tests.jar, file:/opt/tdp/hive/lib/hbase-server-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-http-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/jersey-server-2.25.1.jar, file:/opt/tdp/hive/lib/jersey-common-2.25.1.jar, file:/opt/tdp/hive/lib/javax.ws.rs-api-2.0.1.jar, file:/opt/tdp/hive/lib/javax.annotation-api-1.2.jar, file:/opt/tdp/hive/lib/jersey-guava-2.25.1.jar, file:/opt/tdp/hive/lib/hk2-api-2.5.0-b32.jar, file:/opt/tdp/hive/lib/hk2-utils-2.5.0-b32.jar, file:/opt/tdp/hive/lib/aopalliance-repackaged-2.5.0-b32.jar, file:/opt/tdp/hive/lib/javax.inject-2.5.0-b32.jar, file:/opt/tdp/hive/lib/hk2-locator-2.5.0-b32.jar, file:/opt/tdp/hive/lib/javassist-3.20.0-GA.jar, file:/opt/tdp/hive/lib/osgi-resource-locator-1.0.1.jar, file:/opt/tdp/hive/lib/jersey-client-2.25.1.jar, file:/opt/tdp/hive/lib/jersey-media-jaxb-2.25.1.jar, file:/opt/tdp/hive/lib/validation-api-1.1.0.Final.jar, file:/opt/tdp/hive/lib/jersey-container-servlet-core-2.25.1.jar, file:/opt/tdp/hive/lib/hbase-procedure-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-common-2.0.0-alpha4-tests.jar, file:/opt/tdp/hive/lib/hbase-replication-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/hbase-prefix-tree-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/javax.servlet.jsp-2.3.2.jar, file:/opt/tdp/hive/lib/javax.servlet.jsp-api-2.3.1.jar, file:/opt/tdp/hive/lib/jamon-runtime-2.3.1.jar, file:/opt/tdp/hive/lib/disruptor-3.3.6.jar, file:/opt/tdp/hive/lib/hbase-mapreduce-2.0.0-alpha4.jar, file:/opt/tdp/hive/lib/jetty-runner-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-plus-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-jndi-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-annotations-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/asm-commons-5.0.1.jar, file:/opt/tdp/hive/lib/asm-tree-5.0.1.jar, file:/opt/tdp/hive/lib/jetty-jaas-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/websocket-server-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/websocket-common-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/websocket-api-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/websocket-client-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/websocket-servlet-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/apache-jsp-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/jetty-schemas-3.1.jar, file:/opt/tdp/hive/lib/ecj-4.4.2.jar, file:/opt/tdp/hive/lib/apache-jstl-9.3.20.v20170531.jar, file:/opt/tdp/hive/lib/taglibs-standard-spec-1.2.5.jar, file:/opt/tdp/hive/lib/taglibs-standard-impl-1.2.5.jar, file:/opt/tdp/hive/lib/hive-jdbc-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-beeline-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/super-csv-2.2.0.jar, file:/opt/tdp/hive/lib/hive-cli-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-contrib-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-hbase-handler-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hbase-hadoop2-compat-2.0.0-alpha4-tests.jar, file:/opt/tdp/hive/lib/hive-druid-handler-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/jackson-dataformat-smile-2.10.0.jar, file:/opt/tdp/hive/lib/druid-hdfs-storage-0.12.0.jar, file:/opt/tdp/hive/lib/mysql-metadata-storage-0.12.0.jar, file:/opt/tdp/hive/lib/postgresql-metadata-storage-0.12.0.jar, file:/opt/tdp/hive/lib/postgresql-9.4.1208.jre7.jar, file:/opt/tdp/hive/lib/hive-jdbc-handler-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-accumulo-handler-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/accumulo-core-1.7.3.jar, file:/opt/tdp/hive/lib/jcommander-1.32.jar, file:/opt/tdp/hive/lib/accumulo-fate-1.7.3.jar, file:/opt/tdp/hive/lib/accumulo-start-1.7.3.jar, file:/opt/tdp/hive/lib/commons-vfs2-2.1.jar, file:/opt/tdp/hive/lib/commons-math-2.1.jar, file:/opt/tdp/hive/lib/accumulo-trace-1.7.3.jar, file:/opt/tdp/hive/lib/hive-llap-ext-client-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-hplsql-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/antlr4-runtime-4.5.jar, file:/opt/tdp/hive/lib/org.abego.treelayout.core-1.0.1.jar, file:/opt/tdp/hive/lib/hive-streaming-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-kryo-registrator-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-hcatalog-core-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/hive-hcatalog-server-extensions-3.1.3-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/postgresql-jdbc.jar, file:/opt/tdp/hive/lib/ranger-hive-plugin-shim-2.0.1-TDP-0.1.0-SNAPSHOT.jar, file:/opt/tdp/hive/lib/ranger-plugin-classloader-2.0.1-TDP-0.1.0-SNAPSHOT.jar
Please make sure that jars for your version of hive and hadoop are included in the paths passed to spark.sql.hive.metastore.jars.
  at org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:270)
  at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:385)
  at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:287)
  at org.apache.spark.sql.hive.HiveExternalCatalog.client$lzycompute(HiveExternalCatalog.scala:66)
  at org.apache.spark.sql.hive.HiveExternalCatalog.client(HiveExternalCatalog.scala:65)
  at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply$mcZ$sp(HiveExternalCatalog.scala:195)
  at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply(HiveExternalCatalog.scala:195)
  at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.apply(HiveExternalCatalog.scala:195)
  at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalog.scala:97)
  at org.apache.spark.sql.hive.HiveExternalCatalog.databaseExists(HiveExternalCatalog.scala:194)
  at org.apache.spark.sql.internal.SharedState.externalCatalog$lzycompute(SharedState.scala:114)
  at org.apache.spark.sql.internal.SharedState.externalCatalog(SharedState.scala:102)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.externalCatalog(HiveSessionStateBuilder.scala:39)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog$lzycompute(HiveSessionStateBuilder.scala:54)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog(HiveSessionStateBuilder.scala:52)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder$$anon$1.<init>(HiveSessionStateBuilder.scala:69)
  at org.apache.spark.sql.hive.HiveSessionStateBuilder.analyzer(HiveSessionStateBuilder.scala:69)
  at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293)
  at org.apache.spark.sql.internal.BaseSessionStateBuilder$$anonfun$build$2.apply(BaseSessionStateBuilder.scala:293)
  at org.apache.spark.sql.internal.SessionState.analyzer$lzycompute(SessionState.scala:79)
  at org.apache.spark.sql.internal.SessionState.analyzer(SessionState.scala:79)
  at org.apache.spark.sql.execution.QueryExecution.analyzed$lzycompute(QueryExecution.scala:57)
  at org.apache.spark.sql.execution.QueryExecution.analyzed(QueryExecution.scala:55)
  at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:47)
  at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:74)
  at org.apache.spark.sql.SparkSession.sql(SparkSession.scala:642)
  ... 49 elided
Caused by: java.lang.reflect.InvocationTargetException: java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
  at org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:264)
  ... 74 more
Caused by: java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration
  at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:661)
  at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:586)
  at org.apache.spark.sql.hive.client.HiveClientImpl.newState(HiveClientImpl.scala:180)
  at org.apache.spark.sql.hive.client.HiveClientImpl.<init>(HiveClientImpl.scala:114)
  ... 79 more
Caused by: java.lang.ClassNotFoundException: org.apache.tez.dag.api.TezConfiguration
  at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
  at org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1.doLoadClass(IsolatedClientLoader.scala:221)
  at org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1.loadClass(IsolatedClientLoader.scala:210)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
  ... 83 more

scala>

@Nuttymoon as you can see in my logs the hive.execution.engine fixed the issue in a node with spark_client and all hive components. i don't understand why you still have it ..

I think it is working because you are running as root and therefore you have the right to read /etc/hive/conf.s2/hive.jceks. If you try running the command as un unprivileged user, you should end up with my error as well.

@Nuttymoon as you can see in my logs the hive.execution.engine fixed the issue in a node with spark_client and all hive components. i don't understand why you still have it ..

I think it is working because you are running as root and therefore you have the right to read /etc/hive/conf.s2/hive.jceks. If you try running the command as un unprivileged user, you should end up with my error as well.

I see it :)


connect to local IP

Hi,
Just wondering if we can use SSHy to access a local IP?
If i enter a local ip eg. <IP_ADDRESS> i get the error "Could no resolve hostname: Please use an external address"
I can ssh from the machine hosting SSHy but cant from SSHy.
Thanks
Phillip

Hi Phillip,
This is an intentional design choice to reduce confusion as its impossible to know where potential users will host their websocket proxy. If your internal IPs are accessible from the websocket proxy you should be able to suppress this error by adding:
return false
To the first line of the check_internal function in index.html
Stuicey


feat: mergeHooks and hooks array

Expose Hookable.mergeHooks and hookable.mergeHooks to merge multiple hook objects into single flattened one
    const hooks1 = {
      foo: fn,
      bar: fn,
      'a:b': fn,
      'a:c': fn
    }
    const hooks2 = {
      foo: fn,
      baz: fn,
      a: {
        b: fn,
        d: fn
      }
    }

const merged = Hookable.mergeHooks(hooks1, hooks2)

It results into:
   {
      foo: [Function (anonymous)],
      bar: [Function (anonymous)],
      'a:b': [Function (anonymous)],
      'a:c': [Function (anonymous)],
      baz: [Function (anonymous)],
      'a:d': [Function (anonymous)]
    }

Codecov Report

Merging #26 into master will increase coverage by 0.19%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #26      +/-   ##
==========================================
+ Coverage   98.71%   98.91%   +0.19%
==========================================
  Files           2        2
  Lines          78       92      +14
  Branches       17       18       +1
==========================================
+ Hits           77       91      +14
  Misses          1        1

Impacted Files
Coverage Δ

src/hookable.ts
98.55% <100.00%> (+0.04%)
:arrow_up:

src/utils.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Training the shape predictor takes too long.

I try to use the dlib python interface to train shape predictor with 95 face landmarks.There are more than 8,000 images in the training data set. I did not change the parameters in train_shape_predictor.py, but changed the dataset. These are printed information
Training with cascade depth: 10
Training with tree depth: 2
Training with 500 trees per cascade level.
Training with nu: 0.05
Training with random seed:
Training with oversampling amount: 300
Training with feature pool size: 400
Training with feature pool region padding: 0
Training with lambda_param: 0.1
Training with 20 split tests.
Fitting trees...
Time remaining: 394.16 hours.
My CP information: cpu e5-2682，48 GB RAM.
Is it feasible to train these data with dlib?

Reduce the oversampling amount.  More generally, read the documentation.  All this stuff is explained in excruciating detail.


Increase lbaas connection limit (3.0.x)

This backports the various commits required to increase the connection limits for load balancers.

LGTM

LGTM

Correct, this is a temporary fix so that we don't need to build new packages. Upstream has this merged, if/when we build new packages we can undo this work here.


Configuring Analytics

Description
To manually test this feature please log into our analytics site in the docs, if you have access, and look through the data points we can collect while testing it out on this staged version.
Setting up Google Analytics and setting up AWS routing.
The routing on AWS was solved, and I have Google Analytics setup to easily take in whatever we'd like to configure it to. And we might not have to do anything extra 😉
If you'd like to look at the analytics please look at this notion page to find any documentation for that.
Type of change

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Change Status

[ ] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[x] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[x] Test A

// testing that App is rendered it("renders App component", () => {   const { container } = render(<App />);   const component = getAllByTestId(container, "App-component");   expect(component.length).toBe(1); });

[x] Test B

// creating a mock function to test if GA initialization was called. import reactGAinitialization from "./config/analytics.js"; jest.mock("./config/analytics.js"); reactGAinitialization.mockImplementation(() => () => null); it("calls reactGAinitialization once", () => {   render(<App />);   expect(reactGAinitialization).toBeCalled(); });
Checklist

(Not applicable)My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[x] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] There are no merge conflicts

Most of the commits are garbage trials on the staging deployment. Please refer to the documentation if you have any questions or commits after this point.
To be ready to merge this request I would love to:

[ ] Make sure we do not want anything configured from the start
[ ] Update AWS env variables once our domain is successfully verified

I think that's pretty much it. Please let me know if you think this will need anything else for our first RC.

I thought it was pretty good

The staged version was pointing to pages to let everyone know that routing was working, and that I could see the analytics were working correctly, because that has to be deployed and not on the development environment.
So today I'll focus on

[ ] Changing where the analytics are pointing to groa.us
[ ] Add Signup and a bounce event

Did you not want to use the posthog you posted? That looked pretty sweet.


 It does this all the time since the new update to the advanced mining gloves. Are you able to fix it so that it will only turn off when you are in fact not mining? Let me know please. Thanks!!

I will look into this and get back to you if I find the problem and a
solution
On Wed, 29 May 2024, 00:17 Mine999999, @.***> wrote:

The advanced mining plugin and the mining plugin flicker off to indicate
no mining even though you haven't stopped. It does this all the time since
the new update to the advanced mining gloves. Are you able to fix it so
that it will only turn off when you are in fact not mining? Let me know
please. Thanks!!
—
Reply to this email directly, view it on GitHub
https://github.com/a-h-designs/Advanced-Mining/issues/5, or unsubscribe
https://github.com/notifications/unsubscribe-auth/APHYVUNXCMKJZ7VGOSIO3PLZEUGABAVCNFSM6AAAAABIN2HQKSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZDEMBWGA4DGMI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi, any update on this? This plugin still flickers showing 'not mining' while actively mining.

I will look into this and get back to you if I find the problem and a solution
…
On Wed, 29 May 2024, 00:17 Mine999999, @.> wrote: The advanced mining plugin and the mining plugin flicker off to indicate no mining even though you haven't stopped. It does this all the time since the new update to the advanced mining gloves. Are you able to fix it so that it will only turn off when you are in fact not mining? Let me know please. Thanks!! — Reply to this email directly, view it on GitHub <#5>, or unsubscribe https://github.com/notifications/unsubscribe-auth/APHYVUNXCMKJZ7VGOSIO3PLZEUGABAVCNFSM6AAAAABIN2HQKSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMZDEMBWGA4DGMI . You are receiving this because you are subscribed to this thread.Message ID: @.>

It’s amethyst that’s needs help. It still flickers off for a split second, then goes back to mining. Are you able to fix this anytime soon please?

I am still trying to find the issue with this, currently I can't find the issue but I'm still trying hard when I'm not working.


data-access.properties file is missing

In the petclinic_db_setup_mysql.txt file, it has been mentioned that for MySQL configuration we need to do the changes in data-access.properties file. I didn't find this file in this repository.
In spring-petclinic/spring-petclinic-microservices-config repository, I can provide MySQL configuration for these services' .yml files like

customers-service.yml
vets-service.yml and
visits-service.yml

Is there any other way so that I can place data-access.properties file at one place in  spring-petclinic/spring-petclinic-microservices-config repository and it will be picked by all 3 services?

I have given the MySQL configuration in spring-petclinic/spring-petclinic-microservices-config repository's application.yml.
Closing the issue.

I will look into it next week, Thanks for PR


twas imputability/variant selection for ctwas

@Chunmingl i'm a bit hesitated about using SQLite as intermediate files for manipulating the summary stats because in my experience, this format is easily corrupted and not very robust. However I"m open to trying it in this context and see if it works better. We don't have a large data-set for the gene-level information anyways so maybe either way it is going to work out.

I am thinking maybe we can have summary info generated for each gene then save it as small size gene-summary file, then if there were re-processed genes for the same data type, (same summary file name) this gene-summary file will get overwritten with the updated information, and we can run another script to summarize all the summary file in a directory into a single meta file.

May I know more about the export script idea that you have mentioned in the meeting?


Fix media image block, image size and acf api fields

Fix Media Size
Fix image block to include caption, sizes and display it as Gutenberg block
Fix to include ACF fields in the API response

@rpeterman-gp or @brandonhundt can you please review and merge this when you have time?


Update search function to use new metadata storage

We need to update the search function so it uses the new metadata storage databases.

Fix this after fixing the ranking issue at #405


[Question] Is it possible to output a property's default value?

Hey there, I'm looking to integrate NTypewriter (source generator) into a new project and so far I'm loving the capabilities. A previous project I worked on used TypeGen and while it was good for simplicity, there was no real control over the templates. I've been able to replicate all of the functionality of TypeGen with NTypewriter, except one big thing (default values) and I'm hoping I'm just missing something/not searching the correct terms.
Basically, given the following C# classes...
using System.Collections.Generic;

public class NameCountClass {
  public string Name { get; set; }
  public int Count { get; set; }
}

public static class StaticClass {
  public static string StaticProperty => "Test";

  public static Dictionary<string, NameCountClass> NameCounts = new Dictionary<string, NameCountClass>() {
    { "a", new NameCountClass() { Name = "A name", Count = 123 } },
    { "b", new NameCountClass() { Name = "B name", Count = 321 } }
  };
}

...is it possible to output the default values in a TS class something like this:
export class StaticClass {
  static StaticProperty: string = "Test";
  static NameCounts: { [key: string]: NameCountClass } = {"a":{"Name":"A name", "Count": 123}, "b":{"Name":"B name", "Count": 321}}
}

Basically, is there a way to access the default values for properties to output them?

Only field constants are supported.
Property's default value, property's getter defined by expression body, object and collection initializers are not currently supported. Mostly because these are C# syntax sugar that do not exist on Roslyn level (symbol/semantic).
But all the objects in NTypewriter code model have ISymbolBase.SourceCode property that gives access to C# syntax that defines a given object, so you can write a custom function that will parse any C# syntax to any TS.

Thanks for the quick reply. Is there any example code I could look at that utilizes that property as you suggest?

There is no example, and as far as I know, no one has ever tried to get access to what you call a property's default value.
The type of ISymbolBase.SourceCode is string, and probably some regular expression would be necessary to extract required informations, but all this can be done on the user side.


Add tests to Pangram

Addresses x-common #222

Thanks!
I was about to create a issue not to forget it, but you did a better job :wink:


allow unicode names

According to the spec, unicode can be appeared in names, but below check prevent that
https://github.com/holidayextras/jsonapi-server/blob/master/lib/jsonApi.js#L57
The unicode world need this feature, could add unicode support?

The spec says:
The following “globally allowed characters” MAY be used anywhere in a member name:
...
U+0080 and above (non-ASCII Unicode characters; not recommended, not URL safe)

So whilst they're not recommended, we could have a config setting that enables engineers to opt-in to say "Yes, these characters aren't URL safe, but I have no choice" and therefore loosen our validation regexp's.
I wonder how things like Swagger and GraphQL deal with unicode characters...


configure for 2016

I would like to add an event for 2016, do I duplicate the content from 2015 and start editing?

I believe this issue has been addressed. The 2016 site is now up and being used. Thanks for raising the issue Jody.


README talks about hiredis 1.2.0 but PyPi has 2.3.2 as latest release?

Can you update your readme please? At the moment I don't understand which version should I use

Sorry, wrong project


The tabview scroll buttons aren't properly aligned

Describe the bug
The scroll buttons in tabview aren't properly aligned.
To Reproduce
Steps to reproduce the behavior:

Launch files-uwp app.

Right click on it and open it in new tab.
Open the vertical tabview flyout.

Expected behavior
The scroll buttons should be centered.
Screenshots

Desktop (please complete the following information):

OS Version : Windows 10 1903 18362.239
App version: v0.12.0

Additional context
Also the the style of button should match the style of rest of buttons in the app.

In this, there shouldn't be any scroll buttons, the expected behavior would be for a tool tip to show the full path or name.

In this case, there shouldn't be any scroll buttons, the expected behavior would be for a tool tip to show the full path or name.

In that case I will implement that, also I am thinking of disabling horizontal scrolling here entirely, since with tooltip it's not needed, also it interferes with vertical scrolling.

I'm on 0.12.0 but don't see that tab flyout - I just have the 3-dots and the search (which doesn't work - clicking on it does nothing). Am I missing something?

I'm on 0.12.0 but don't see that tab flyout - I just have the 3-dots and the search (which doesn't work - clicking on it does nothing). Am I missing something?

You mean you don't have that button?? Have you enabled this:

At least on my <IP_ADDRESS> that toggle isn't in Settings.
Though upon further reading about how this supersedes horizontal tabs along the top, I'd actually want to stay with horizontal 😉 - fewer clicks, less information hidden. This may make sense in an overflow situation with loads of tabs (though that seems like a super edge case), but otherwise definitely a worse UX.

At least on my <IP_ADDRESS> that toggle isn't in Settings.
Though upon further reading about how this supersedes horizontal tabs along the top, I'd actually want to stay with horizontal 😉 - fewer clicks, less information hidden. This may make sense in an overflow situation with loads of tabs (though that seems like a super edge case), but otherwise definitely a worse UX.

The new tab layout is only in the beta builds right now, hovering over the flyout button will automatically expand the flyout so there is no need for extra clicks. We are still exploring the options and we will continue to improve the new experience before rolling out the changes to everyone else.


Update free-courses-en.md

Hacktoberfest notes:

due to volume of submissions, we may not be able to review PRs that do not pass tests and do not have informative titles.
please read our contributing guidelines
be sure to check the output of Travis-CI for linter errors
if this is your first open source contribution, make sure it's not your last!

What does this PR do?
Add Resource(s)
For resources
Description
Adding new free Angular course for beginners
Why is this valuable (or not)?
The course is very complete and has several positive comments.
How do we know it's really free?
It's on YouTube.
For book lists, is it a book? For course lists, is it a course? etc.
It's a course
Checklist:

[x] Not a duplicate
[x] Included author(s) if appropriate
[x] Lists are in alphabetical order
[x] Needed indications added (PDF, access notes, under construction)

For youtube, we prefer "playlist" links and the name of the producer/creator.


Update Turkish tutor to v1.7

Added missing translations
Updated current translations
Fixed orthographical and grammatical errors

Please resolve the conflicts.  Might be that the iso9 encoding causes a problem, you can also email me the new files (in an attachment).

Fixed the encoding problem, but I don't understand why it shows that there are conflicts in both files. What would be the proper way to address these issues?

Well, if it mentions conflicts, there probably are.  Git can be hard to deal with conflicts, unfortunately.

Now I could include the patch without problems, thanks!

Thank you, very happy to contribute!


container ssa: use readiness prob

Instead of accessing the /healthz endpoint we can use kubernetes's
readinessProbe to do this for us and use the standard API instead of the
pod proxy which is less documented. This also simplifies the code.
This will hopefully solve two long outstanding BZs:
https://bugzilla.redhat.com/show_bug.cgi?id=1384629
https://bugzilla.redhat.com/show_bug.cgi?id=1371803

@simon3z @moolitayer @ilackarms please review

Sweet :+1:
After the pod is ready, we'll still use the proxy URL to analyze the image, right? In one of the BZs conclusion was misconfigured proxy (?) - would this help there?

@miq-bot add_label bug

@cben

After the pod is ready, we'll still use the proxy URL to analyze the image, right? In one of the BZs conclusion was misconfigured proxy (?) - would this help there?

Yes, I asked and seems to help with at least one of the mentioned BZs. The problem was that a "transparent" proxy was changing error messages, but now we are not based on error messages in our happy flow. If an error message from Kubernetes/Openshift is being switched then we will catch the exception and quit with the proxy's message, which is the best outcome IMO when we don't get the real message.

@enoodle should we expect the usual ephemeral missing method X for object nil that we get when k8s returns hashes that are missing elements? (what happens when you GET a pod right after creation, will it have containerStatuses?)

@moolitayer Generally we should always have a containerStatus per container [1], if not then there is a problem (even if the pod is just creating). The ready flag is always present [2] so that too is kind of safe.
[1]https://github.com/kubernetes/kubernetes/blob/master/pkg/api/v1/types.go#L2475
[2]https://github.com/kubernetes/kubernetes/blob/master/pkg/api/v1/types.go#L1848

@enoodle BTW I think there is some code in openshift ansible we would be able to throw away in version that have this change. I'm referring to the code adding the pod/proxy * resource to management-infra-admin SA

@ilackarms can give this a try and review?
There is a pending comment but overall LGTM.

i tested this locally and could not load Compute > Containers > Providers tab of the MIQ dashboard. Not sure if this is only my problem, maybe someone else can reproduce? Screenshot attached

@ilackarms This is an unrelated error due to some changes done by the UI team (IIUC). make sure you have https://github.com/ManageIQ/manageiq/pull/14563

@enoodle problem solved; LTGM

@enoodle @roliveri should this be fine/yes?

Sorry, not sure.
@simon3z should this be fine/yes?

@simaishi @roliveri I would like to wait some more time to make sure everything is OK before backporting this to fine. I targeted the BZ to 5.8.1.

@simon3z I'm backporting PRs for 5.8.1 now, please confirm this should now be fine/yes

@miq-bot add_label fine/yes
cc @enoodle @simaishi

Fine backport details:
$ git log -1
commit 4769a2390063743d227386fc963cc9fd1b5e77fa
Author: Richard Oliveri<EMAIL_ADDRESS>Date:   Mon Apr 17 11:12:11 2017 -0400

    Merge pull request #14578 from enoodle/container_ssa_use_readiness_probe

    container ssa: use readiness prob
    (cherry picked from commit 08c3090302d4c7fa747781dc3699e502194adb62)

    https://bugzilla.redhat.com/show_bug.cgi?id=1461558


Added Video Support

I used this script in our site, and we need a requirement of video on popup, so i modified the code the add video support

Thanks for your contribution, that looks like quite a lot of new code. I'm gonna need more time to review it.
Could you please remove dist/ folder from this PR? I take care of releases myself. Also there seem to be linting errors.

Remove unmodified files from pull request

Sorry, you must have misunderstood me. I meant remove dist/ folder changes in this PR, not the whole folder itself.
Just leave src/ changes which are relevant to me. I update dist/ and demo/ myself. Thanks.

Hi @feimosi please check now

Seems fine now. Just unnecessary empty first line in .editorconfig and demo/index.html

I don't understand what is this

It's linter errors. You can see more details here:
https://travis-ci.org/feimosi/baguetteBox.js/jobs/188491776#L188

I fixed the warnings and removed first empty line in .editorconfig file,
thanks for explanation
and this is my first contribution in github

Great, I'll take a look in some free time.
No problem if it's your first contribution. We're here to help :)
Also, you may want to read about git commit --amend, so you don't create so many commits.

thank you
On Thu, Jan 5, 2017 at 1:59 AM, Marek Grzybek<EMAIL_ADDRESS>wrote:

Great, I'll take a look in some free time.
No problem if it's your first contribution. We're here to help :)
Also, you may want to read about git commit --amend, so you don't create
so many commits.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/feimosi/baguetteBox.js/pull/137#issuecomment-270477936,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQHDAmi036Wi0NjvRvYFi7E35MpyVmWYks5rPAExgaJpZM4LY1-q
.

Any update on this @feimosi ?

@rafaelpimpa Sorry, it needs more time from my side because it introduces too many changes and I don't have much time lately.

Hi feimosi my name is Elber and I'm a Baguette.box's maintainer in Drupal.org (please see it: https://www.drupal.org/project/baguettebox) we have an issue with the same target of this pull request (please see it: https://www.drupal.org/project/baguettebox/issues/3261916) for keep working on that issue I need you commit this changes here.
Please don't forget of this comment.
Thank you all.

Wonder if this is still being used on 1.11.1?


Inference support for Neural Shuffle-Exchange network

When target dimensions are not known, use hparams.max_length. max_length should be a power of 2.
Max length can be enforced using hparams.force_max_length=True.
Auto-Regressive decoding not supported at this moment.

Many thanks to @OptimatiumFeles and @dfurrer both!


[Spanish] localize 'Policy as Code (PaC)'

Localize the content/en/policy-as-code.md document to Spanish

Hey @electrocucaracha, I would like to work on it. Can you please assign it to me?


Roman/feature/transaction confirmation

Travis automatic deployment: https://49-pr-ching.surge.sh

Travis automatic deployment: https://49-pr-ching.surge.sh


feat: add events schema for search pills

The type of this PR is: Feature

Addresses FX-4780
Description
Adds events schema for search pill and its chevron icons

PR Checklist (tick all before merging)

[ ] If I've added a new file to the tree I've exported it from the common index.ts
[ ] I've added comments with examples for any new interfaces and ensured that they're in the docs
[ ] No platform-specific terminology has been used outside of click and tap (platform is inferred by the DB storing events)

:rocket: PR was released in v4.128.0 :rocket:


Added WeightedSum layer

I'm not sure what needs to change in doc/ to account for this new layer - @nelson-liu, can you point me to that so that I can add it to the PR?

so to update the docs to reflect your new layer, you're going to broadly have to do the following:

update the API docs
update the sidebar to include this layer

for 1, just edit doc/api_doc/deep_qa.layers.attention.rst. if you follow the same format, you should be good. The ordering doesn't matter within the document.
For 2, you're going to want to edit doc/layers/attention.rst in the same fashion. note that the formatting between the two is slightly different.
to build the docs locally, you're going to want to get the new requirements in requirements.txt and then navigate to doc/ and then run make html. the output should be in _build, and you can go in there and start a python webserver to view it locally.

Does this look ok now?

yes, thanks!


Could not find file "config.h"

I downloaded the master-branch, and try to run a depth example program in Clion, then I got this error message:

librealsense-master/cmake-build-debug/third-party/libusb/libusb/core.c:23:20: fatal error: config.h: No such file or directory #include "config.h"

Before I downloading the whole master-branch, I have tried to run a program to get the distance, and it works, so I don't think my environment is not complete.
Maybe it is a rather beginner problem but I hope could get some helps here

Hi @YuzheHao
Have you tried manually running cmake .. && make? I suspect something is wrong with Clion CMake configuration, you should not be encountering this error when building from source.

Thank you for the answering,
i tried to run cmake .. && make, and I got the following error:

CMake Error at CMakeLists.txt:5 (include):
include could not find load file:
CMake/lrs_options.cmake
CMake Error at CMakeLists.txt:6 (include):
include could not find load file:
CMake/connectivity_check.cmake
CMake Error at CMakeLists.txt:9 (if):
if given arguments:
"OR" "OR"
Unknown arguments specified
-- Configuring incomplete, errors occurred!
See also "/work/yuzhe/docs/librealsense-master/CMakeFiles/CMakeOutput.log".

Do you have any idea how could I check the cmake config of CLion?

Something is strange with the output, step by step, please try:
cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
mkdir build
cd build
cmake ..
make

This should download and build librealsense on your machine

Install this lib for debug:
sudo apt-get install libusb-1.0-0-dev

Something is strange with the output, step by step, please try:
cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
mkdir build
cd build
cmake ..
make

This should download and build librealsense on your machine

Sorry.... I tried this line by line, and it is still telling me "lacking config.h". And this time I ran all these commands in shell rather than in CLion, which makes me confused more....

Hi everyone, I have solved this problem, thank you for your helping.
Later I will summarize the solution and post it here.

To me, running

sudo apt-get install libusb-1.0-0-dev

solved the issue

I'm getting this error during cross compile.
Is there any workaround to compile libusb without installing globally?

$  sudo apt-get install libusb-1.0-0-dev
didn't solve the issue for me
https://pastebin.com/raw/aNeb2KLB

$  sudo apt-get install libusb-1.0-0-dev
didn't solve the issue for me
https://pastebin.com/raw/aNeb2KLB

@monacv try cleaning the build folder and doing cmake && make again
sudo rm -R build mkdir build && cd build cmake .. make


removed unbindInitialValue to allow new values keep watching

When the watcher for initialValue is removed, if the value changes in the scope is not updated, so you get the latest value - 1, and that doesn't work if you are getting the initial value from a service hitting an API.

@ghiden what do you think about this fix?

Thanks for this solution @aoga88 =D
I applied it in my project and everything worked well
@ghiden you should approve this pull request ;-)


Application freeze when resize

Hello,
there is a way for show a wait image during the "resize" operation is performed? i want to add a Wait class for show an image during the resize process but during the resize operation is execute application freeze...
this is my code :
 document.getElementsByName('imLoad')[0].classList.add('loading') ;  // class that show wait image
 this.ng2ImgToolsService.resize([event.target.files[0]], 1200, 1200).subscribe(result => {
        document.getElementsByName('imLoad')[0].classList.remove('loading') ;
    }, error => {
        this[errorbox] = error.reason ;
        document.getElementsByName('imLoad')[0].classList.remove('loading') ;
        console.log(error) ;
        // something went wrong
        // use result.compressedFile or handle specific error cases individually
    }) ;

thanks for any help you'll provide to me :)

Hi @dewolft
there is no "wait image" or loading indicator implemented as this is merely a service. You can easily implement one yourself though.
I think the problem is that you are doing it by manipulating the DOM, which you should really try to avoid in Angular. If you want to add a class to a DOM node for certain rules only then you should use ngClass: https://angular.io/docs/ts/latest/api/common/index/NgClass-directive.html
Which would result in something like this:
 loading:boolean=false;
 [...]
 public resizeImage(event):void{
    this.loading=true;
    this.ng2ImgToolsService.resize([event.target.files[0]], 1200, 1200).subscribe(result => {
       this.loading=false;
      //do something with the result
    }, error => {
        this.loading=false;
        this.errorBox = error.reason ;
        console.error(error) ;
    }) ;
 }

and in your markup add
[ngClass]="{'loading':loading}"
Please let me know if this solves your issue :)

I am also getting same error when try to implement in safari browser:
{
"resizedFile": {},
"reason": {
"line": 20562,
"column": 45,
"sourceURL": "http://<IP_ADDRESS>:4200/1.chunk.js",
"__zone_symbol__currentTask": {
"type": "microTask",
"state": "notScheduled",
"source": "Promise.then",
"zone": "",
"cancelFn": null,
"runCount": 0
}
},
"error": "PICA_ERROR"
}
Any suggestions?

No I didn't solve... image and even CSS element freeze during resize processor. I don't know why.
The example didn't solve problem

OK @dewolft
@bergben Is there any other solution?
Please suggest.

Hey guys,
I'll create a plunkr later today to reproduce this issue.

OK that would be great

A quick update:
I was able to identify the problem. I wasn't aware that the File constructor is not supported for IE and Safari and furthermore it isn't even included in the polyfills.
Anyhow, I am changing my repositories to use the Blob constructor and cast it to a File for full TypeScript support.
I already did that for the resizing, also the "showing a loading indicator" is solved in this plunkr: http://plnkr.co/edit/HRi5rQEDCBZb59a0lcPe
I will release a new version in the next few hours!
Thank you all for reporting this issue and helping to improve this project!

I have just realeased 1.0.4 which should resolve this issue: https://github.com/bergben/ng2-img-tools/releases/tag/1.0.4

Hi @bergben I've tested this your demo http://plnkr.co/edit/HRi5rQEDCBZb59a0lcPe on safari but it still error, this is a apart of error message on javascript console "Resize error:
Object
error: "PICA_ERROR"
reason: Error: macroTask 'HTMLCanvasElement.toBlob': can not transition to 'running', expecting state 'scheduled', was 'scheduling'.
resizedFile: File {name: "awesome-beautiful-wallpaper_124413582_294.jpg", lastModified:<PHONE_NUMBER>000, size: 594655, type: "image/jpeg", slice: function}
Object Prototype"

@thanhngvpt Thanks for testing. I have tested it myself now too, however there seems to be a problem with whatever available polyfill that I use for HTMLCanvasElement.toBlob() and zone.js. I don't have the time to dig further into this issue, also Apple is making it difficult to test for Safari. So neither do I have the patience to test in Virtual machines. Pull requests are welcome.

Hi @bergben  - Just wondering - are you intending on fixing this issue? It breaks on all Safari browsers including IOS which makes it not very useful - I was so close to having the perfect fix to my issue...
Thanks for putting this stuff up its awesome!

@bsmithb2 you can try this https://gist.github.com/thanhngvpt/a7fe3241f2ede28faf62c94052abafef before it fully fixed

@thanhngvpt Thankyou David! I'll give it a shot!

Hi @bsmithb2, did you test the gist? I've hit a wall here, and it would be VERY nice to get this working on Safari / IOS :)
@bergben, any chance of you looking into this in the near future? I reeeeeally appreciate the work you have put into the library!

@daghelge we ended up using code including Exif data transforms. Please see https://gist.github.com/bsmithb2/ded60680b5aef3d6b0c33028c62027d6

It looks like the polyfill JavaScript-Canvas-to-Blob isn't well included.
I tested these pages on IOS :

JavaScript-Canvas-to-Blob test page -> works fine
ng2-img-max Plnkr -> not working when resizing, compress... (PICA_ERROR)
my project using angular-cli -> not working when resizing (Error: Uncaught in promise)

Then for each one, I printed functions toBlob() and dataURLtoBlob() in debug console.

For JavaScript-Canvas-to-Blob test page, functions look the same as they should be (canvas-to-blob.js)
For ng2-img-max Plnkr, they are different, see dataURLtoBlob() below

> dataURLtoBlob.toString()
< function (dataURI) {
                var byteString,
                    arrayBuffer,
                    intArray,
                    i,
                    mimeString,
                    bb;
                if (dataURI.split(',')[0].indexOf('base64') >= 0) {
                    // Convert base64 to raw binary data held in a string:
                    byteString = atob(dataURI.split(',')[1]);
                } else {
                    // Convert base64/URLEncoded data component to raw binary data:
                    byteString = decodeURIComponent(dataURI.split(',')[1]);
                }
                // Write the bytes of the string to an ArrayBuffer:
                arrayBuffer = new ArrayBuffer(byteString.length);
                intArray = new Uint8Array(arrayBuffer);
                for (i = 0; i < byteString.length; i += 1) {
                    intArray[i] = byteString.charCodeAt(i);
                }
                // Separate out the mime component:
                mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
                // Write the ArrayBuffer (or ArrayBufferView) to a blob:
                if (hasBlobConstructor) {
                    return new Blob(
                        [hasArrayBufferViewSupport ? intArray : arrayBuffer],
                        {type: mimeString}
                    );
                }
                bb = new BlobBuilder();
                bb.append(arrayBuffer);
                return bb.getBlob(mimeString);
            }

For my project using angular-cli, toBlob() and dataURLtoBlob() does not exist at all.

To solve it for angular-cli, we may need to import or require JavaScript-Canvas-to-Blob in polyfills.ts.

@dewolft @RathodGirish  @thanhngvpt  @bsmithb2  @daghelge
I have just tested the demo in Safari and it seems to work after modifying the underlying dependency for pica. Could you please give it a try too?


install node-disk-manager daemon set as part of the openebs setup

OpenEBS depends on node-disk-manager and its associated CRDs and other components like node-problem-detector. These needs to be included as part of the openebs-operator/helm installation packages.

NDM now runs as daemon set and installed with Helm charts. Reference OpenEBS Helm charts


How we can get user inforamtion in controller method decoded from @Secourity decorator

@thiagobustamante Thanks for your Awesome work :)
Can you please help me to get the decoded user id
I am done with integration everything is working fine.
    private configureAuthenticator() {
        const JWT_SECRET: string = process.env.ENCRYPT_PWD;
        const jwtConfig: StrategyOptions = {
            jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
            secretOrKey: Buffer.from(JWT_SECRET)
        };
        const strategy = new Strategy(jwtConfig, (payload: any, done: (err: any, user: any) => void) => {
            done(null, payload);
        });
        const authenticator = new PassportAuthenticator(strategy, {
            deserializeUser: (user: string) => JSON.parse(user),
            serializeUser: (user: any) => {
                return JSON.stringify(user);
            }
        });
        Server.registerAuthenticator(authenticator);
        Server.registerAuthenticator(authenticator, TOKEN_KEY.JWT_AUTH);
    }

    @Tags('Auth')
    @Path("getCurrectUser")
    @POST
    @Security('*', TOKEN_KEY.JWT_AUTH)
    public async getCurrectUser(): Promise<any> {
        return "Working";
    }

Here i need to get user id from the deserializeUser (decoded from the jwt) in the getCurrectUser method.

One way would be to collect the request header from the context and then deserialize the token user.
Inside the controller:
@Context
private context: ServiceContext;
Inside the function
this.context.request

thanks
On Mon, Nov 11, 2019, 16:28 alfonsoal1983<EMAIL_ADDRESS>wrote:

One way would be to collect the request header from the context and then
deserialize the token user.
Inside the controller:
@context https://github.com/context
private context: ServiceContext;
Inside the function
this.context.request
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/thiagobustamante/typescript-rest/issues/110?email_source=notifications&email_token=AGGE2USZUACYAJ22UEOC3MTQTE3EZA5CNFSM4IWFP6MKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDWOGHI#issuecomment-552395549,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGGE2UQ4Q77SS6TTEDFYUYTQTE3EZANCNFSM4IWFP6MA
.


packet identifier already used

Try this in https://microsoft.github.io/jacdac-ts/tools/service-editor
# Pressure Button

A button with pressure reading.

        identifier: 0x16e8c679
        extends: button

## Registers

    ro pressure2: u8 @ reading

Reads the current pressure of the button.

Yeah, currently there is no override facility. We need to think what it actually means though - is it allowed to change return types?

I think the problem is that the tool should allocate a new register

I see it’s a reading so that’s the problem?

Yes. You have to allocate registers, @ 0x180 or something

Note that if it's not. the reading register, it will not stream.


Fixed many issues in grapheme walker

I had the Unicode table generator to use a few more tables from the Unicode database, correcting many issues. For example, being a control code from grapheme walking perspective is not the same as the code point belonging to the Cc general category, unlike how our implementation has done it. This fixes Issue 23474 among other unreported issues.
I also had the implementation to consider Emoji sequences and prefixed extension characters, and added tests for those.
Unfortunately, I currently have issues with 32-bit DMD so I could not regenerate the Unicode tables for this PR. This is why it's still draft. I should be able to fix that, but it might be quicker if someone else regenerates the Unicode tables with the generator modifications here - anyone?
See also: Grapheme iteration in the Unicode Standard

Unfortunately, I currently have issues with 32-bit DMD so I could not regenerate the Unicode tables for this PR.

Yeah that is a pretty bad problem we've got there, that I'm not happy with.
Because it ties into the WORD size, I think the solution may end up involving splitting std.uni and allowing you to pass in whatever type you want. But I'm not 100% certain.

Unfortunately, I currently have issues with 32-bit DMD so I could not regenerate the Unicode tables for this PR.

Yeah that is a pretty bad problem we've got there, that I'm not happy with.
Because it ties into the WORD size, I think the solution may end up involving splitting std.uni and allowing you to pass in whatever type you want. But I'm not 100% certain.

16 unrelated commits added. Bad Git usage from me. Ah well, rebasing should fix it.

Why does Github think I'm trying to recommit everything that happened after my original commit but before Rikki's changes? If I run git log master..HEAD, only the five commits of me and Rikki are listed. I also did git rebase master --rebase-merges, then git push, but it says everything is up to date.

use the action "drop" for the unrelated commits when you do your interactive rebase.

The interactive rebase lists only the five commits I want to keep, to begin with.

maybe try git checkout master && git pull then git checkout correctGraphemeWalker && git rebase -i master ?

Already done, with the difference that git rebase -i only works correctly with --rebase-merges, because first of the five commits is older than the master branch with the second commit merging them together among other changes.

okay, sorry for my useless comments and good luck with that.

Thanks for trying anyway.

The only solution I know: reset to before changes. Pull from upstream. Copy
my files over. Force push.
Easy :)
On Sun, Jan 15, 2023, 01:26 Ate Eskola @.***> wrote:

Thanks for trying anyway.
—
Reply to this email directly, view it on GitHub
https://github.com/dlang/phobos/pull/8657#issuecomment-1382726883, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHSL46GN3XIMOFVJBBP7ITWSKLRHANCNFSM6AAAAAATNTTRVE
.
You are receiving this because you commented.Message ID:
@.***>

Finally! I rebased with --rebase-merges, but applying my last-year commit on top of master head. That resulted in some strange rebase conflicts and the last commit being reattributed to me, but I think it works now. Still going to improve readability of GenericDecodeGrapheme so don't merge yet.

@rikkimax Here you go. I totally refactored the whole function. I'm afraid this might hider performance though. By no means I except this to be slow, but function calls just aren't as fast as gotos.

GraphemeState, TransformRes, graphemeTransforms can all go under genericDecodeGrapheme template. They won't need to be private (they should already be).
The one thing I want to see is the TR29 rules listed to which code.  Like this: https://github.com/Project-Sidero/basic_memory/blob/main/source/sidero/base/text/unicode/wordbreak.d#L87
That'll make it easy to scan which rules are currently implemented and confirm that they currently match the spec.
Otherwise, this is looking quite good. I need to remember that you can specify array elements like that because that is a neat trick with graphemeTransforms!

ping @dukc

ping @dukc

Yes, I got the note above. I'm going to add the commentary as Rikki requested, it's just that I tend to be too lazy to get work done other than on Saturdays and holidays.

Nonetheless, done now.

@dkorpel Thanks, fixed. It seems the brace style in Symmetry project is becoming a habit for me.
Also added a changelog entry.


[4.0] Allow SingleValueContainers to decode collections

What's in this pull request?
Cherry-picks #10249 for swift-4.0-branch. Addresses SR-5089.

Explanation: SingleValueDecondingContainers in JSON and Plist previously held the assertion that attempting to decode an array or dictionary from them was a type mismatch (since those represented unkeyed and keyed containers, respectively). This assertion is no longer true, though, since encode<T : Encodable>(_:) and decode<T : Decodable>(_:) allow you to do just that.
This lifts the assertion and adds unit tests to both implementations to ensure this works.

Scope: Affects those using the new Codable API to encode and decode from a single value container.

Radar: rdar://problem/32567981

Risk: Low

Testing: This adds new unit tests to confirm expected behavior.

@swift-ci Please test

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - b676e4063d9c8a3ab72386de502052e37a961633
Test requested by - @itaiferber

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - b676e4063d9c8a3ab72386de502052e37a961633
Test requested by - @itaiferber

@swift-ci Please test

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - b676e4063d9c8a3ab72386de502052e37a961633
Test requested by - @itaiferber

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - b676e4063d9c8a3ab72386de502052e37a961633
Test requested by - @itaiferber

@swift-ci Please test Linux

@itaiferber
func singleValueContainer() throws -> SingleValueDecodingContainer

It seems throws can be removed, since it will never throw an error. Or it is left here for some reason?

@linqingmo throws should remain for compatibility with the protocol; the protocol still should have throws for the cases where a decoder might decide to disambiguate between a "regular array/dictionary" and a keyed/unkeyed container. It also needs to be able to throw in case it's parsing data as it decodes — if the data is discovered to be corrupted, it should be able to fail there.

@itaiferber Thanks.


xSQLServerDatabaseMail: New resource for deploying database mail

This change is

Hi @SQLHorizons, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@SQLHorizons, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

@SQLHorizons You need to resolve the check that failed to be able to get a review on this PR. See the failed test here https://ci.appveyor.com/project/PowerShell/xsqlserver/build/2.0.369.0
Looks like you have the wrong encoding on the module file, if you change the file encoding to UTF-8 I think the test will be happy.
Could you also please change the name of the resource to something that starts with 'MSFT_xSQLServer', like 'MSFT_xSQLServerDatabaseMail'. Only place where the prefix 'MSFT_' should not be used in in the friendly name in the schema.mof file (see other resources for examples).

@SQLHorizons Also make sure all files end with a blank line.

@johlju thank you for your input, made the changes, but still got some work on this as its only good for creating the account from scratch.  I know what I need to do, just got to find the time.

@SQLHorizons It's good work so far! Hope you get the time to finish this soon, I know what you mean about finding time. Let us know if you need any help! We are here for each other! :smile:
Some suggestions after a quick glance of your code

Rename the resource as suggested in previous comment.
Add an Ensure parameter so you can add database mail (Ensure = 'Present') and remove database mail (Ensure = 'Absent').
Look add the helper functions to see if there are function that will help you and improve your code (like Import-SQLPSModule, New-TerminatingError and Connect-SQL).

Helper function is here: https://github.com/PowerShell/xSQLServer/blob/dev/xSQLServerHelper.psm1

Follow the StyleGuideline.md here https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md.
You need to write a test for the resource

Guideline here: https://github.com/johlju/DscResources/blob/master/TestsGuidelines.md
Template here: https://github.com/PowerShell/DscResources/blob/master/TestsGuidelines.md

You can find all the guidelines here: https://github.com/PowerShell/DscResources

@SQLHorizons @johlju I agree this resource needs to be renamed. I like @johlju's suggestion of  'MSFT_xSQLServerDatabaseMail'.

@johlju, @kwirkykat Agreed will see what I can do over the next week, and yes will go with the name suggestion.

@SQLHorizons don't want to rush you in anyway. Just curious if you had gotten some time to start look at this. Let us know if you need any help. :smile:

@johlju sorry been busy with a lot of other stuff lately, am I holding something up?

No, you are not holding anything up. Was just checking status :) And I'm looking forward getting this resource into the module :)

@SQLHorizons Do you have time to finish this one? If you feel that you don't have time, then please tick 'Allow edits from maintainers' to the right here, around Notifications. Then I can help you get this finished.
In the meantime I label this one as abandoned.

@SQLHorizons Great that it was ticked. I can help an see if I can help get this PR thru.
Side note: I can't see if they are ticked, I raised an issue to GitHub and asked for them to add the checkbox, grayed out, for all (or at least maintainers), so that I can see the status and don't have to ask every time. 😄

Codecov Report

Merging #145 into dev will decrease coverage by 2%.
The diff coverage is 1%.

@@         Coverage Diff         @@
##            dev   #145   +/-   ##
===================================
- Coverage    95%    93%   -3%
===================================
  Files        29     30    +1
  Lines      2950   3032   +82
===================================
+ Hits       2831   2832    +1
- Misses      119    200   +81

Closing an reopening to get correct CLA status.

Renamed this resource to align with new naming convention - please suggest other name if someone thinks SqlServerDatabaseMail is not appropriate.
I will try to work on this in the next couple of weeks so we can get this one to the finish line since it been in PR for over a year. 😄 @SQLHorizons was kind enought to tick the Allow edits from maintainers, so I can continue the work in the same PR.
@SQLHorizons if you feel taking over the work at any point, just let me know and I'm happy to hand you the reins.

Reviewed 6 of 11 files at r7.
Review status: 6 of 11 files reviewed at latest revision, 7 unresolved discussions.

README.md, line 144 at r7 (raw file):

database mail

Database Mail (it's a feature name)

README.md, line 829 at r7 (raw file):

### SqlServerDatabaseMail

Resource to manage SQL Server database mail.

Same as previous comment. Throughout.

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 9 at r7 (raw file):

'{0}{1}'

This should be double backslashes.

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 11 at r7 (raw file):

returning current

returning the current...

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 14 at r7 (raw file):

'{1}{2}'

This should be double backslashes.

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 15 at r7 (raw file):

Changing SQL

Changing the SQL...

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 19 at r7 (raw file):

{0}, expected {1}

'{0}', expected '{1}'

Comments from Reviewable

Review status: 3 of 11 files reviewed at latest revision, 7 unresolved discussions.

README.md, line 144 at r7 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

database mail

Database Mail (it's a feature name)

Done

README.md, line 829 at r7 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Same as previous comment. Throughout.

Done

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 9 at r7 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

'{0}{1}'

This should be double backslashes.

Done

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 11 at r7 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

returning current

returning the current...

Done

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 14 at r7 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

'{1}{2}'

This should be double backslashes.

Done

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 15 at r7 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

Changing SQL

Changing the SQL...

Done

DSCResources/MSFT_SqlServerDatabaseMail/en-US/MSFT_SqlServerDatabaseMail.strings.psd1, line 19 at r7 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

{0}, expected {1}

'{0}', expected '{1}'

Done

Comments from Reviewable

Reviewed 3 of 6 files at r8.
Review status: 6 of 11 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

@PlagueHO would you mind reviewing this one for me? I pushed a lot of commits to this PR so would be nice to have someone else look over it. Especially grammar 😉 It's kind of big PR, so no hurry.
I did a quick review (not all files) to find simple mistakes, but it's probably gonna be a lot more. 😄


10 api for student management

Description

This PR aims to add the necessary API for student management.
Linked Issues
This issue

Making tests


Format code and make CI more pedantic

(opened from my fork to see what happens to the GH actions)

Looks like GH workflows don't run when they're modified in a fork, kinda makes sense. https://github.com/ferrous-systems/flamegraph/pull/57 does run them as expected.


Improve dark mode toggle

fixes a bug with firefox caused by stylesheets from addons
fixes storing if dark mode is selected as a cookie
replaces user agent sniffing with feature detection
wraps the whole script with a self invoking function to avoid leaking into the global scope
refactoring to have a more unified coding style

Coverage remained the same at 84.949% when pulling 5b58695e0d1088afe95b765be0c55cb718106f54 on protect-darkmode-from-ff-addons into ee423cc217a0530f70932f962c2e0028f5ab81e8 on develop.


Add FLIP to propose separating reference expressions into two distinct operations

This FLIP proposes to address a common source of confusion among Cadence users by decoupling the two parts of the reference expression: creating the reference and casting it to a type. Under this model, the as operator would only be a casting operator, while references would be created with &v.
Related work to this is https://github.com/onflow/cadence/pull/1566, which bans the use of as! and as? in reference expressions in the parser, as these do not function at runtime.

For contributor use:

[X] Targeted PR against master branch
[X] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[X] Updated relevant documentation
[X] Re-reviewed Files changed in the Github PR explorer
[X] Added appropriate labels

Thanks for writing this up! I agree with your thoughts on auth references; while the ability to downcast certain references is useful, I agree that needing to manually specify this with the auth keyword feels weird somehow, and should ideally be automatically determined by the checker. Changes to auth references would be beyond this scope of this particular FLIP however, but we can return to this topic in the (hopefully near) future. One quick note though, the checker does indeed check auth/non-auth references; this code passes typecheck at runtime:
let x = 3
let y = &x as auth &AnyStruct
let z = y as! &Int

While this code does not:
let x = 3
let y = &x as &AnyStruct
let z = y as! &Int

As for your suggestion for restrictions being used for references, is that meant to be in addition to or as a replacement for the requirement to provide explicit types for resource references.

Hmm, I think the syntax you propose is confusing for a different reason; normally the restricted type syntax T{X, Y} here is only used on types; but your example has it being used on a value MySuperCollection to get a reference to it. This I think is conflating values and types by allowing you to use a type-specific syntax on a value.

Thank you for this proposal Daniel! I like it a lot.
I definitely agree with the motivation. The current syntax of reference expression trips up many developers who are learning Cadence, and even developers who have been writing Cadence code for a while.
Before commenting on the proposal, I wanted to quickly add some context and design rationale.
When we originally designed the referencing feature, we made the following observation:
Unlike in other languages, references in Cadence are mostly used for sharing access to untrusted code.
This is done in tandem with restricted types.
For example, a developer might want to share access to their FT vault resource, typed @FungibleToken.Vault, but restrict access to just the functionality exposed through the FungibleToken.Balance interface,  by creating a reference &FungibleToken.Vault{FungibleToken.Balance}.
As the reference is shared with untrusted code, that code should not have the ability to increase the level of access to the shared resource, e.g. by casting to a less-restricted type like &FungibleToken.Vault.
This is why reference types are non-authorized "by default", and the more powerful variant, authorized (for lack of a better word) references, requires a keyword.
Authorized references are basically references like in other languages, where the owner of the reference has arbitrary access to the target. This is uncommon in smart contracts, and actually a potential for a foot gun, though there are cases where this is useful.
For example, if a developer owns certain objects, for example NFTs in account storage, they might want to access them an perform certain type-specific operations on them:
An account's storage might store an array typed [NonFungibleToken.NFT] – by borrowing using an authorized reference, they can downcast to the concrete NFT type and call a function unique to that type.
In addition, we were worried that creating a reference with a too powerful type would be too easy. This is why the type must always be provided in a reference expression, even if it is the same as the type of the value. It is verbose, what makes the developer be explicit and think about what kind of reference they are creating.
For example, a developer might want to share access to their FT vault resource vault, typed @FungibleToken.Vault. If it were possible to create a reference with just &vault, the developer might accidentally share full access to the reference in cases where they might not intent to.
So far these two design decisions have helped avoid many security problems:  Authorized references are rightfully uncommon, and we have not heard of cases where untrusted code was accidentally given more access than necessary leading to an exploit. I would argue that it worth persevering these two design decisions to some degree.
Now to this proposal in particular:
I am not quite sure if the proposal suggests making a difference between taking a reference to a resource-minded value or a struct-kinded. If it does, I would suggest not special casing any kind and making reference expression work the same for all objects, regardless of the kind. (Maybe this is not suggested and I misunderstood)
I really like the idea of making reference expressions behave similar to empty container literals (empty array [] and empty dictionary {}). For such literals, the type checker infers no type and requires the developer to provide an explicit type annotation. For example, for let array = [] the type checker requires an explicit type annotation,
which can be provided by the developer e.g. through a static type annotation (let array = [] as [Int]),
or e.g. through a type annotation of a variable declaration (let array: [Int] = []).
Making reference expressions behave this way removes a special case from language, and allows developers to translate the intuition they gained from type annotations and static type annotations to any expression, including references.
Regarding the need for an auth & operator in addition to the & operator: This should actually not be necessary. By changing the type checker not to infer a type for the reference expression, a type must be provided. That type may be an authorized type. For example, let ref: auth &S = &s or let ref = &s as auth &S will just work.
The nice side-effect is that this keeps all current code working as before.
I was not quite sure if this could be implemented and how it would affect code, so I opened this draft PR which implements this proposal, and also shows how no new auth & operator is needed:
https://github.com/onflow/cadence/pull/1661
I also want to add that I prefer the proposal's solution over the alternatives that were considered before.

Hmm, I think the syntax you propose is confusing for a different reason; normally the restricted type syntax T{X, Y} here is only used on types; but your example has it being used on a value MySuperCollection to get a reference to it. This I think is conflating values and types by allowing you to use a type-specific syntax on a value.

You are right this is confusing in current situation. But I think it is because we defined things like this.
But isn't the point of getting reference is like this?
I mean if C is composite of type T:
 &C is type of:  &T.  ( here we accept that first &  is operator second one is type specifier ) This is not disturbing our eyes, but actually it has the same problem you pointed out.
so for me :
 &C{X, Y} is type of: &T{X, Y} doesn't feel that wrong. Actually feels more natural.
But to be honest, I don't have strong feeling on this, after reading @turbolent's comment about [], I am in favor of proposed too.
But my point about somehow automatic auth stands, though it is not in the context of this FLIP.
And again thanks for fixing this

The nice side-effect is that this keeps all current code working as before.

@turbolent In theory this means we could release this now right? If it's not a breaking change we wouldn't have to wait until Secure Cadence.

@bluesign I was also confused about it before (mainly because of the casing), but I think I get now what you are proposing, a short-hand syntax for taking a reference with a restricted type? This is a good idea, though maybe it should be a separate FLIP which could be added in addition to this one?

@dsainati1 I looked into this a bit more:
The caveat is that existing correct code keeps working, i.e. which uses the correct syntax &v as &T.
Code which is currently using the invalid (but unfortunately accepted/ignored) operators as? and as!, e.g. &v as! &T or &v as? &T, will get rejected, as the reference itself is missing an explicit type (the casting expression does not suggest a type to the casted expression).
However, we were planning to fix this anyway, so I don't feel like it is a blocker.

I've always been a fan of having just &v for a reference expression, so I'm totally in favour of the proposal.
The only concern I had was the auth references - didn't have any clean solutions/suggestions for that. But I like the idea of getting the 'authorize'-ness from the context (i.e: cast or the contextually expected type), and if the context doesn't have it, then being explicit. It nicely stands with the other semantics of the language.

@bluesign I was also confused about it before (mainly because of the casing), but I think I get now what you are proposing, a short-hand syntax for taking a reference with a restricted type?

@turbolent Yeah it can be very useful.
But my main target was how to prevent accidental resource references ( like in the example of the FLIP ) Currently we are requiring casting. But I feel casting and referencing should be distinct operations. ( Though your comment on empty array convinced me a bit )
So I thought what if referencing requires explicit restriction. then you have to somehow declare explicitly if you want reference without any restrictions. ( as auth keyword WithoutRestrictions keyword will not be much used ). Something like:  &MySuperCollection{WithoutRestrictions}
Mostly I will use something like this:
var receiverRef = &MySuperCollection{FungibleToken.Receiver}
Benefit will be referencing will be totally free of casting and I don't need to declare type.
Also now I can separate referencing and casting.
var receiverRef = &MySuperCollection{FungibleToken.Receiver}
var genericReceiver  = receiverRef as &AnyResource{FungibleToken.Receiver}

The implementation for this is approved (https://github.com/onflow/cadence/pull/1661), should we approve and merge this FLIP as well?

The implementation PR is only provided as a means to evaluate the proposal, so should not influence the decision if the proposal is accepted or not.
As for the approval of the proposal itself, we will discuss it in a meeting on Thursday. As always, feedback is still very welcome

@dsainati1 as discussed, given there has not been any further discussion for a week, we can probably consider this accepted

Nice! @turbolent shall we merge your implementation into Cadence now?


[lit-labs/observers] add base class

Issue: https://github.com/lit/lit/issues/2350
This PR adds a base class to IntersectionController, ResizeController, and MutationController.
Fixed a bug where we accept a ResizeController config and then never use it. Fixed by passing the config to ResizeController.observe which was not previously done.
The rest of this change is only a refactor. Adding a new base class ObserverController.
To support adding the base class some properties needed their visibility changed from private to protected.
Size
With this PR:

File name
Size
Gzipped
Brotli

resize_controller.js
509 B
298 B
247 B

mutation_controller.js
509 B
302 B
244 B

intersection_controller.js
590 B
328 B
268 B

observer_controller.js
534 B
309 B
262 B

Totals (including performance_controller)
3.03 kB
1.68 kB
1.37 kB

On main:

File name
Size
Gzipped
Brotli

resize_controller.js
860 B
427 B
359 B

mutation_controller.js
860 B
436 B
365 B

intersection_controller.js
902 B
445 B
369 B

Totals  (including performance_controller)
3.51 kB
1.76 kB
1.44 kB

Test plan
Tested by ensuring all tests continue passing unchanged.

Lit's ResizeController always call render() twice, before any size changes.
Simplified example - https://lit.dev/playground/#gist=d26a19ef6637e12160c703079e37c9af
When using {skipInitial = true}, does this PR solve that problem?