删除 kube-ovn-controller leader 节点多集群互联会出现网络不通的问题

版本：kube-ovn 1.6.2
docker：Server Version: 19.03.14
kubernetes：v1.20.2
集群1子网：<IP_ADDRESS>/16，ovn-ic configmap 为：
# cat ovn-ic-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: ovn-ic-config
  namespace: kube-system
data:
  enable-ic: "true"
  az-name: "az1"                # 集群 AZ 名，多个集群之间不能重复
  ic-db-host: "<IP_ADDRESS>"    # 集群互联控制器所在节点地址
  ic-nb-port: "6645"            # 集群互联控制器 nb 端口，默认为 6645
  ic-sb-port: "6646"            # 集群互联控制器 sb 端口，默认为 6646
  gw-nodes: "<IP_ADDRESS>,<IP_ADDRESS>"            # 网关节点 node 名
  auto-route: "true"            # 是否自动发布路由，设置为 false 时可以手动进行配置

集群2子网：<IP_ADDRESS>/16，ovn-ic configmap 为：
# cat ovn-ic-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: ovn-ic-config
  namespace: kube-system
data:
  enable-ic: "true"
  az-name: "az2"                # 集群 AZ 名，多个集群之间不能重复
  ic-db-host: "<IP_ADDRESS>"    # 集群互联控制器所在节点地址
  ic-nb-port: "6645"            # 集群互联控制器 nb 端口，默认为 6645
  ic-sb-port: "6646"            # 集群互联控制器 sb 端口，默认为 6646
  gw-nodes: "<IP_ADDRESS>,<IP_ADDRESS>"            # 网关节点 node 名
  auto-route: "true"            # 是否自动发布路由，设置为 false 时可以手动进行配置

ovn-ic-db 启动方式：
docker run --name=ovn-ic-db -d --network=host -v /etc/ovn/:/etc/ovn -v /var/run/ovn:/var/run/ovn -v /var/log/ovn:/var/log/ovn kubeovn/kube-ovn:v1.6.2 bash start-ic-db.sh

测试操作方式如下：
现有 k8s 集群有 3 个 kube-ovn-controller
# kubectl get pod -n kube-system
NAME                                         READY   STATUS    RESTARTS   AGE
coredns-5787695b7f-lvj9l                     1/1     Running   0          18h
dashboard-metrics-scraper-79c5968bdc-9cqh7   1/1     Running   0          18h
kube-ovn-cni-9k2jt                           1/1     Running   10         4h57m
kube-ovn-cni-hcvm5                           1/1     Running   6          47h
kube-ovn-cni-whwff                           1/1     Running   2          47h
kube-ovn-controller-7f8b58bf8c-289q2         1/1     Running   0          14m
kube-ovn-controller-7f8b58bf8c-7rjj5         1/1     Running   0          76m
kube-ovn-controller-7f8b58bf8c-wfg4p         1/1     Running   0          12m
kube-ovn-pinger-bq9lv                        1/1     Running   0          18h
kube-ovn-pinger-kxxxs                        1/1     Running   3          29h
kube-ovn-pinger-rpzq9                        1/1     Running   2          29h
kubernetes-dashboard-c4c6566d6-b29w2         1/1     Running   2          18h
metrics-server-b7cff9c67-x5622               1/1     Running   3          47h
node-local-dns-cd5ht                         1/1     Running   0          18h
node-local-dns-dzvmt                         1/1     Running   0          18h
node-local-dns-vxljk                         1/1     Running   1          18h
ovn-central-fcc88f7c8-2n5s4                  2/2     Running   7          47h
ovn-central-fcc88f7c8-p6cnr                  2/2     Running   8          29h
ovn-central-fcc88f7c8-pphgh                  2/2     Running   3          47h
ovs-ovn-nqzkq                                1/1     Running   3          47h
ovs-ovn-qhmw7                                1/1     Running   5          47h
ovs-ovn-v88hz                                1/1     Running   7          47h

可以看到现在的 kube-ovn-controller leader 是 kube-ovn-controller-7f8b58bf8c-7rjj5
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-289q2
I0429 07:55:13.060260       1 election.go:54] waiting for becoming a leader
I0429 07:55:18.060389       1 election.go:54] waiting for becoming a leader
I0429 07:55:23.060511       1 election.go:54] waiting for becoming a leader
I0429 07:55:28.060648       1 election.go:54] waiting for becoming a leader
I0429 07:55:33.060729       1 election.go:54] waiting for becoming a leader
I0429 07:55:38.060841       1 election.go:54] waiting for becoming a leader
I0429 07:55:43.060970       1 election.go:54] waiting for becoming a leader
I0429 07:55:48.061106       1 election.go:54] waiting for becoming a leader
I0429 07:55:53.061232       1 election.go:54] waiting for becoming a leader
I0429 07:55:58.061361       1 election.go:54] waiting for becoming a leader
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-7rjj5
I0429 07:43:35.077255       1 endpoint.go:97] update endpoint kube-system/kube-dns-upstream
I0429 07:43:35.078814       1 endpoint.go:97] update endpoint kube-system/kube-ovn-pinger
I0429 07:43:35.080249       1 endpoint.go:97] update endpoint kube-system/kubernetes-dashboard
I0429 07:43:35.082189       1 endpoint.go:97] update endpoint kube-system/ovn-northd
I0429 07:43:35.104718       1 ovn-ic.go:60] start to establish ovn-ic
I0429 07:43:35.215679       1 ovn-ic.go:67] finish establishing ovn-ic
I0429 07:55:23.287071       1 ovn-ic.go:37] start to remove ovn-ic
I0429 07:55:23.419022       1 ovn-ic.go:48] finish removing ovn-ic
I0429 07:55:30.436058       1 ovn-ic.go:60] start to establish ovn-ic
I0429 07:55:30.528045       1 ovn-ic.go:67] finish establishing ovn-ic
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-wfg4p
I0429 07:55:26.995572       1 election.go:54] waiting for becoming a leader
I0429 07:55:31.995697       1 election.go:54] waiting for becoming a leader
I0429 07:55:36.995813       1 election.go:54] waiting for becoming a leader
I0429 07:55:41.995934       1 election.go:54] waiting for becoming a leader
I0429 07:55:46.996050       1 election.go:54] waiting for becoming a leader
I0429 07:55:51.996170       1 election.go:54] waiting for becoming a leader
I0429 07:55:56.996282       1 election.go:54] waiting for becoming a leader
I0429 07:56:01.996400       1 election.go:54] waiting for becoming a leader
I0429 07:56:06.996530       1 election.go:54] waiting for becoming a leader
I0429 07:56:11.996650       1 election.go:54] waiting for becoming a leader

现在多集群互联可以连通
# kubectl exec -it net-tools-new -- ping -c 4 <IP_ADDRESS>| while read pong; do echo $(date): $pong; done
Thu Apr 29 15:57:06 CST 2021: PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
Thu Apr 29 15:57:06 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=62 time=1.67 ms
Thu Apr 29 15:57:07 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=62 time=0.643 ms
Thu Apr 29 15:57:08 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=62 time=0.351 ms
Thu Apr 29 15:57:09 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=62 time=0.345 ms
Thu Apr 29 15:57:09 CST 2021:
Thu Apr 29 15:57:09 CST 2021: --- <IP_ADDRESS> ping statistics ---
Thu Apr 29 15:57:09 CST 2021: 4 packets transmitted, 4 received, 0% packet loss, time 3042ms
Thu Apr 29 15:57:09 CST 2021: rtt min/avg/max/mdev = 0.345/0.751/1.665/0.541 ms

删除一个 kube-ovn-controller 非 leader 节点，多集群互联还是可以连通
# date;kubectl -n kube-system delete pod kube-ovn-controller-7f8b58bf8c-wfg4p
Thu Apr 29 15:57:29 CST 2021
pod "kube-ovn-controller-7f8b58bf8c-wfg4p" deleted
# kubectl get pod -n kube-system
NAME                                         READY   STATUS    RESTARTS   AGE
coredns-5787695b7f-lvj9l                     1/1     Running   0          18h
dashboard-metrics-scraper-79c5968bdc-9cqh7   1/1     Running   0          18h
kube-ovn-cni-9k2jt                           1/1     Running   10         5h
kube-ovn-cni-hcvm5                           1/1     Running   6          47h
kube-ovn-cni-whwff                           1/1     Running   2          47h
kube-ovn-controller-7f8b58bf8c-289q2         1/1     Running   0          17m
kube-ovn-controller-7f8b58bf8c-7rjj5         1/1     Running   0          79m
kube-ovn-controller-7f8b58bf8c-f8t6q         1/1     Running   0          42s
kube-ovn-pinger-bq9lv                        1/1     Running   0          18h
kube-ovn-pinger-kxxxs                        1/1     Running   3          29h
kube-ovn-pinger-rpzq9                        1/1     Running   2          29h
kubernetes-dashboard-c4c6566d6-b29w2         1/1     Running   2          18h
metrics-server-b7cff9c67-x5622               1/1     Running   3          47h
node-local-dns-cd5ht                         1/1     Running   0          18h
node-local-dns-dzvmt                         1/1     Running   0          18h
node-local-dns-vxljk                         1/1     Running   1          18h
ovn-central-fcc88f7c8-2n5s4                  2/2     Running   7          47h
ovn-central-fcc88f7c8-p6cnr                  2/2     Running   8          29h
ovn-central-fcc88f7c8-pphgh                  2/2     Running   3          47h
ovs-ovn-nqzkq                                1/1     Running   3          47h
ovs-ovn-qhmw7                                1/1     Running   5          47h
ovs-ovn-v88hz                                1/1     Running   7          47h
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-289q2
I0429 07:57:38.063816       1 election.go:54] waiting for becoming a leader
I0429 07:57:43.063938       1 election.go:54] waiting for becoming a leader
I0429 07:57:48.064071       1 election.go:54] waiting for becoming a leader
I0429 07:57:53.064190       1 election.go:54] waiting for becoming a leader
I0429 07:57:58.064313       1 election.go:54] waiting for becoming a leader
I0429 07:58:03.064442       1 election.go:54] waiting for becoming a leader
I0429 07:58:08.064567       1 election.go:54] waiting for becoming a leader
I0429 07:58:13.064699       1 election.go:54] waiting for becoming a leader
I0429 07:58:18.064816       1 election.go:54] waiting for becoming a leader
I0429 07:58:23.064912       1 election.go:54] waiting for becoming a leader
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-7rjj5
I0429 07:43:35.082189       1 endpoint.go:97] update endpoint kube-system/ovn-northd
I0429 07:43:35.104718       1 ovn-ic.go:60] start to establish ovn-ic
I0429 07:43:35.215679       1 ovn-ic.go:67] finish establishing ovn-ic
I0429 07:55:23.287071       1 ovn-ic.go:37] start to remove ovn-ic
I0429 07:55:23.419022       1 ovn-ic.go:48] finish removing ovn-ic
I0429 07:55:30.436058       1 ovn-ic.go:60] start to establish ovn-ic
I0429 07:55:30.528045       1 ovn-ic.go:67] finish establishing ovn-ic
I0429 07:57:30.022003       1 endpoint.go:97] update endpoint kube-system/kube-ovn-controller
I0429 07:58:06.148992       1 endpoint.go:97] update endpoint kube-system/kube-ovn-controller
I0429 07:58:08.802351       1 endpoint.go:97] update endpoint kube-system/kube-ovn-controller
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-f8t6q
I0429 07:58:07.150451       1 config.go:166] config is  &{BindAddress: OvnNbAddr:tcp:[<IP_ADDRESS>]:6641 OvnSbAddr:tcp:[<IP_ADDRESS>]:6642 OvnTimeout:30 KubeConfigFile: KubeClient:0xc0001c7ce0 KubeOvnClient:0xc000080b70 DefaultLogicalSwitch:ovn-default DefaultCIDR:<IP_ADDRESS>/16 DefaultGateway:<IP_ADDRESS> DefaultExcludeIps:<IP_ADDRESS> ClusterRouter:ovn-cluster NodeSwitch:join NodeSwitchCIDR:<IP_ADDRESS>/16 NodeSwitchGateway:<IP_ADDRESS> ClusterTcpLoadBalancer:cluster-tcp-loadbalancer ClusterUdpLoadBalancer:cluster-udp-loadbalancer ClusterTcpSessionLoadBalancer:cluster-tcp-session-loadbalancer ClusterUdpSessionLoadBalancer:cluster-udp-session-loadbalancer PodName:kube-ovn-controller-7f8b58bf8c-f8t6q PodNamespace:kube-system WorkerNum:3 PprofPort:10660 NetworkType:geneve DefaultProviderName:provider DefaultHostInterface: DefaultVlanName:ovn-vlan DefaultVlanRange:1,4095 DefaultVlanID:100}
I0429 07:58:07.155069       1 controller.go:282] Starting OVN controller
I0429 07:58:07.155110       1 election.go:54] waiting for becoming a leader
I0429 07:58:07.155131       1 leaderelection.go:243] attempting to acquire leader lease kube-system/ovn-config...
I0429 07:58:07.168536       1 election.go:99] new leader elected: kube-ovn-controller-7f8b58bf8c-7rjj5
I0429 07:58:12.155175       1 election.go:54] waiting for becoming a leader
I0429 07:58:17.155286       1 election.go:54] waiting for becoming a leader
I0429 07:58:22.155398       1 election.go:54] waiting for becoming a leader
I0429 07:58:27.155500       1 election.go:54] waiting for becoming a leader
I0429 07:58:32.155608       1 election.go:54] waiting for becoming a leader
# kubectl exec -it net-tools-new -- ping -c 4 <IP_ADDRESS>| while read pong; do echo $(date): $pong; done
Thu Apr 29 15:58:39 CST 2021: PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
Thu Apr 29 15:58:39 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=62 time=0.889 ms
Thu Apr 29 15:58:40 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=62 time=0.329 ms
Thu Apr 29 15:58:41 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=62 time=0.310 ms
Thu Apr 29 15:58:42 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=62 time=0.371 ms
Thu Apr 29 15:58:42 CST 2021:
Thu Apr 29 15:58:42 CST 2021: --- <IP_ADDRESS> ping statistics ---
Thu Apr 29 15:58:42 CST 2021: 4 packets transmitted, 4 received, 0% packet loss, time 3051ms
Thu Apr 29 15:58:42 CST 2021: rtt min/avg/max/mdev = 0.310/0.474/0.889/0.240 ms

删除一个 kube-ovn-controller leader 节点，多集群互联不能连通
# date;kubectl -n kube-system delete pod kube-ovn-controller-7f8b58bf8c-7rjj5
Thu Apr 29 15:59:06 CST 2021
pod "kube-ovn-controller-7f8b58bf8c-7rjj5" deleted
#
#
# kubectl get pod -n kube-system
NAME                                         READY   STATUS    RESTARTS   AGE
coredns-5787695b7f-lvj9l                     1/1     Running   0          18h
dashboard-metrics-scraper-79c5968bdc-9cqh7   1/1     Running   0          18h
kube-ovn-cni-9k2jt                           1/1     Running   10         5h1m
kube-ovn-cni-hcvm5                           1/1     Running   6          47h
kube-ovn-cni-whwff                           1/1     Running   2          47h
kube-ovn-controller-7f8b58bf8c-289q2         1/1     Running   0          18m
kube-ovn-controller-7f8b58bf8c-f8t6q         1/1     Running   0          117s
kube-ovn-controller-7f8b58bf8c-xv2jq         1/1     Running   0          21s
kube-ovn-pinger-bq9lv                        1/1     Running   0          18h
kube-ovn-pinger-kxxxs                        1/1     Running   3          29h
kube-ovn-pinger-rpzq9                        1/1     Running   2          29h
kubernetes-dashboard-c4c6566d6-b29w2         1/1     Running   2          18h
metrics-server-b7cff9c67-x5622               1/1     Running   3          47h
node-local-dns-cd5ht                         1/1     Running   0          18h
node-local-dns-dzvmt                         1/1     Running   0          18h
node-local-dns-vxljk                         1/1     Running   1          18h
ovn-central-fcc88f7c8-2n5s4                  2/2     Running   7          47h
ovn-central-fcc88f7c8-p6cnr                  2/2     Running   8          29h
ovn-central-fcc88f7c8-pphgh                  2/2     Running   3          47h
ovs-ovn-nqzkq                                1/1     Running   3          47h
ovs-ovn-qhmw7                                1/1     Running   5          47h
ovs-ovn-v88hz                                1/1     Running   7          47h
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-289q2
I0429 07:58:53.065622       1 election.go:54] waiting for becoming a leader
I0429 07:58:58.065745       1 election.go:54] waiting for becoming a leader
I0429 07:59:03.065870       1 election.go:54] waiting for becoming a leader
I0429 07:59:08.065992       1 election.go:54] waiting for becoming a leader
I0429 07:59:13.066120       1 election.go:54] waiting for becoming a leader
I0429 07:59:18.066247       1 election.go:54] waiting for becoming a leader
I0429 07:59:23.066371       1 election.go:54] waiting for becoming a leader
I0429 07:59:26.151573       1 election.go:99] new leader elected: kube-ovn-controller-7f8b58bf8c-f8t6q
I0429 07:59:28.066495       1 election.go:54] waiting for becoming a leader
I0429 07:59:33.066550       1 election.go:54] waiting for becoming a leader
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-f8t6q
I0429 07:59:36.392714       1 endpoint.go:97] update endpoint kube-system/ovn-northd
I0429 07:59:36.392990       1 endpoint.go:97] update endpoint kube-system/ovn-sb
I0429 07:59:36.395074       1 endpoint.go:97] update endpoint default/kubernetes
I0429 07:59:36.395164       1 endpoint.go:97] update endpoint default/redis-cluster-operator-metrics
I0429 07:59:36.395271       1 endpoint.go:97] update endpoint kube-system/kube-ovn-monitor
I0429 07:59:36.397966       1 endpoint.go:97] update endpoint kube-system/node-local-dns
I0429 07:59:36.397987       1 endpoint.go:97] update endpoint kube-system/kube-ovn-cni
I0429 07:59:36.398320       1 endpoint.go:97] update endpoint kube-system/metrics-server
I0429 07:59:36.427920       1 ovn-ic.go:60] start to establish ovn-ic
I0429 07:59:36.542771       1 ovn-ic.go:67] finish establishing ovn-ic
# kubectl -n kube-system logs --tail=10 kube-ovn-controller-7f8b58bf8c-xv2jq
I0429 07:59:20.684878       1 controller.go:282] Starting OVN controller
I0429 07:59:20.684915       1 election.go:54] waiting for becoming a leader
I0429 07:59:20.684933       1 leaderelection.go:243] attempting to acquire leader lease kube-system/ovn-config...
I0429 07:59:20.694211       1 election.go:99] new leader elected: kube-ovn-controller-7f8b58bf8c-7rjj5
I0429 07:59:24.151554       1 election.go:99] new leader elected: kube-ovn-controller-7f8b58bf8c-f8t6q
I0429 07:59:25.684970       1 election.go:54] waiting for becoming a leader
I0429 07:59:30.685077       1 election.go:54] waiting for becoming a leader
I0429 07:59:35.685177       1 election.go:54] waiting for becoming a leader
I0429 07:59:40.685279       1 election.go:54] waiting for becoming a leader
I0429 07:59:45.685386       1 election.go:54] waiting for becoming a leader
# kubectl exec -it net-tools-new -- ping -c 4 <IP_ADDRESS>| while read pong; do echo $(date): $pong; done
Thu Apr 29 15:59:54 CST 2021: PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
Thu Apr 29 15:59:55 CST 2021:
Thu Apr 29 15:59:55 CST 2021:
Thu Apr 29 15:59:56 CST 2021:
Thu Apr 29 16:00:00 CST 2021:
Thu Apr 29 16:00:03 CST 2021: ^C
Thu Apr 29 16:00:03 CST 2021: --- <IP_ADDRESS> ping statistics ---
Thu Apr 29 16:00:03 CST 2021: 4 packets transmitted, 0 received, 100% packet loss, time 3063ms
Thu Apr 29 16:00:03 CST 2021:
command terminated with exit code 1
#

重新 delete 和 create  ovn-ic-config 后，多集群互联又可以连通了
# cat ovn-ic-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: ovn-ic-config
  namespace: kube-system
data:
  enable-ic: "true"
  az-name: "az1"                # 集群 AZ 名，多个集群之间不能重复
  ic-db-host: "<IP_ADDRESS>"    # 集群互联控制器所在节点地址
  ic-nb-port: "6645"            # 集群互联控制器 nb 端口，默认为 6645
  ic-sb-port: "6646"            # 集群互联控制器 sb 端口，默认为 6646
  gw-nodes: "<IP_ADDRESS>,<IP_ADDRESS>"            # 网关节点 node 名
  auto-route: "true"            # 是否自动发布路由，设置为 false 时可以手动进行配置

# kubectl delete -f ovn-ic-config.yaml
configmap "ovn-ic-config" deleted
# kubectl create -f ovn-ic-config.yaml
configmap/ovn-ic-config created

# kubectl exec -it net-tools-new -- ping -c 4 <IP_ADDRESS>| while read pong; do echo $(date): $pong; done
Thu Apr 29 16:00:53 CST 2021: PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
Thu Apr 29 16:00:53 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=62 time=0.822 ms
Thu Apr 29 16:00:54 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=62 time=0.448 ms
Thu Apr 29 16:00:55 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=62 time=0.515 ms
Thu Apr 29 16:00:56 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=62 time=0.417 ms
Thu Apr 29 16:00:56 CST 2021:
Thu Apr 29 16:00:56 CST 2021: --- <IP_ADDRESS> ping statistics ---
Thu Apr 29 16:00:56 CST 2021: 4 packets transmitted, 4 received, 0% packet loss, time 3039ms
Thu Apr 29 16:00:56 CST 2021: rtt min/avg/max/mdev = 0.417/0.550/0.822/0.160 ms

ovn-ic-db 的日志如下
# docker logs ovn-ic-db
 * Starting ovsdb-ic_nb
 * Starting ovsdb-ic_sb
 * OVN IC-Northbound DB is running
 * OVN IC-Southbound DB is running
2021-04-29T06:47:50.856Z|00001|vlog|INFO|opened log file /var/log/ovn/ovsdb-server-ic-nb.log
2021-04-29T06:47:50.859Z|00002|ovsdb_server|INFO|ovsdb-server (Open vSwitch) 2.15.1
2021-04-29T06:47:50.867Z|00003|jsonrpc|WARN|unix#0: receive error: Connection reset by peer
2021-04-29T06:47:50.867Z|00004|reconnect|WARN|unix#0: connection dropped (Connection reset by peer)
2021-04-29T06:47:50.975Z|00005|jsonrpc|WARN|unix#1: receive error: Connection reset by peer
2021-04-29T06:47:50.975Z|00006|reconnect|WARN|unix#1: connection dropped (Connection reset by peer)
2021-04-29T06:47:50.978Z|00007|jsonrpc|WARN|unix#2: receive error: Connection reset by peer
2021-04-29T06:47:50.978Z|00008|reconnect|WARN|unix#2: connection dropped (Connection reset by peer)
2021-04-29T06:48:00.866Z|00009|memory|INFO|6180 kB peak resident set size after 10.0 seconds
2021-04-29T06:48:00.866Z|00010|memory|INFO|cells:31 monitors:0
2021-04-29T06:48:44.614Z|00011|jsonrpc|WARN|tcp:<IP_ADDRESS>:52716: receive error: Connection reset by peer
2021-04-29T06:48:44.614Z|00012|reconnect|WARN|tcp:<IP_ADDRESS>:52716: connection dropped (Connection reset by peer)
2021-04-29T06:49:07.240Z|00013|jsonrpc|WARN|tcp:<IP_ADDRESS>:45762: receive error: Connection reset by peer
2021-04-29T06:49:07.240Z|00014|reconnect|WARN|tcp:<IP_ADDRESS>:45762: connection dropped (Connection reset by peer)
2021-04-29T06:49:15.613Z|00015|jsonrpc|WARN|tcp:<IP_ADDRESS>:45852: receive error: Connection reset by peer
2021-04-29T06:49:15.613Z|00016|reconnect|WARN|tcp:<IP_ADDRESS>:45852: connection dropped (Connection reset by peer)
2021-04-29T07:43:35.215Z|00017|jsonrpc|WARN|tcp:<IP_ADDRESS>:53272: receive error: Connection reset by peer
2021-04-29T07:43:35.215Z|00018|reconnect|WARN|tcp:<IP_ADDRESS>:53272: connection dropped (Connection reset by peer)
2021-04-29T07:55:30.543Z|00019|jsonrpc|WARN|tcp:<IP_ADDRESS>:36080: receive error: Connection reset by peer
2021-04-29T07:55:30.543Z|00020|reconnect|WARN|tcp:<IP_ADDRESS>:36080: connection dropped (Connection reset by peer)
2021-04-29T07:59:36.503Z|00021|jsonrpc|WARN|tcp:<IP_ADDRESS>:43432: receive error: Connection reset by peer
2021-04-29T07:59:36.503Z|00022|reconnect|WARN|tcp:<IP_ADDRESS>:43432: connection dropped (Connection reset by peer)
2021-04-29T08:00:48.759Z|00023|jsonrpc|WARN|tcp:<IP_ADDRESS>:44214: receive error: Connection reset by peer
2021-04-29T08:00:48.759Z|00024|reconnect|WARN|tcp:<IP_ADDRESS>:44214: connection dropped (Connection reset by peer)

我们也遇到了同样的问题，请问哪位大神有解决方案不？

可以试一下在 ic-gateway 节点的 ovs-ovn 里执行 /usr/share/ovn/scripts/ovn-ctl restart_controller  看看能不能恢复

尝试了下，似乎还是不行
# kubectl get pod -n kube-system -o wide
NAME                                         READY   STATUS    RESTARTS   AGE     IP            NODE         NOMINATED NODE   READINESS GATES
coredns-5787695b7f-lvj9l                     1/1     Running   0          42h     <IP_ADDRESS>   <IP_ADDRESS>    <none>           <none>
csi-lvm-plugin-6lbd7                         2/2     Running   0          23h     <IP_ADDRESS>    <IP_ADDRESS>   <none>           <none>
csi-lvm-plugin-dzbpw                         2/2     Running   0          23h     <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
csi-lvm-plugin-q6gtk                         2/2     Running   0          23h     <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
csi-lvm-provisioner-0                        1/1     Running   0          23h     <IP_ADDRESS>   <IP_ADDRESS>   <none>           <none>
csi-lvm-resizer-0                            1/1     Running   0          23h     <IP_ADDRESS>    <IP_ADDRESS>   <none>           <none>
dashboard-metrics-scraper-79c5968bdc-9cqh7   1/1     Running   1          42h     <IP_ADDRESS>   <IP_ADDRESS>    <none>           <none>
kube-ovn-cni-9k2jt                           1/1     Running   10         29h     <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
kube-ovn-cni-hcvm5                           1/1     Running   6          2d23h   <IP_ADDRESS>    <IP_ADDRESS>   <none>           <none>
kube-ovn-cni-whwff                           1/1     Running   2          2d23h   <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
kube-ovn-controller-7f8b58bf8c-7gz5m         1/1     Running   0          3m25s   <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
kube-ovn-controller-7f8b58bf8c-vjff7         1/1     Running   0          23h     <IP_ADDRESS>    <IP_ADDRESS>   <none>           <none>
kube-ovn-controller-7f8b58bf8c-xv2jq         1/1     Running   0          24h     <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
kube-ovn-pinger-bq9lv                        1/1     Running   1          42h     <IP_ADDRESS>   <IP_ADDRESS>    <none>           <none>
kube-ovn-pinger-kxxxs                        1/1     Running   4          2d5h    <IP_ADDRESS>   <IP_ADDRESS>   <none>           <none>
kube-ovn-pinger-rpzq9                        1/1     Running   3          2d5h    <IP_ADDRESS>    <IP_ADDRESS>    <none>           <none>
kubernetes-dashboard-c4c6566d6-b29w2         1/1     Running   3          42h     <IP_ADDRESS>   <IP_ADDRESS>    <none>           <none>
metrics-server-b7cff9c67-x5622               1/1     Running   4          2d23h   <IP_ADDRESS>    <IP_ADDRESS>    <none>           <none>
node-local-dns-cd5ht                         1/1     Running   0          42h     <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
node-local-dns-dzvmt                         1/1     Running   0          42h     <IP_ADDRESS>    <IP_ADDRESS>   <none>           <none>
node-local-dns-vxljk                         1/1     Running   1          42h     <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
ovn-central-fcc88f7c8-2n5s4                  2/2     Running   7          2d23h   <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
ovn-central-fcc88f7c8-p6cnr                  2/2     Running   8          2d5h    <IP_ADDRESS>    <IP_ADDRESS>   <none>           <none>
ovn-central-fcc88f7c8-pphgh                  2/2     Running   3          2d23h   <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
ovs-ovn-nqzkq                                1/1     Running   3          2d23h   <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
ovs-ovn-qhmw7                                1/1     Running   5          2d23h   <IP_ADDRESS>     <IP_ADDRESS>    <none>           <none>
ovs-ovn-v88hz                                1/1     Running   7          2d23h   <IP_ADDRESS>    <IP_ADDRESS>   <none>           <none>

# kubectl exec -it net-tools-new -- ping -c 4 <IP_ADDRESS>| while read pong; do echo $(date): $pong; done
Fri Apr 30 16:21:07 CST 2021: PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
Fri Apr 30 16:21:09 CST 2021:
Fri Apr 30 16:21:09 CST 2021:
Fri Apr 30 16:21:09 CST 2021:
Fri Apr 30 16:21:10 CST 2021:
Fri Apr 30 16:21:11 CST 2021: ^C
Fri Apr 30 16:21:11 CST 2021: --- <IP_ADDRESS> ping statistics ---
Fri Apr 30 16:21:11 CST 2021: 4 packets transmitted, 0 received, 100% packet loss, time 3073ms
Fri Apr 30 16:21:11 CST 2021:
command terminated with exit code 1

ovs-ovn-v88hz 位于 ic-gateway 所在节点 <IP_ADDRESS>
# kubectl -n kube-system exec ovs-ovn-v88hz -- /usr/share/ovn/scripts/ovn-ctl restart_controller
2021-04-30T08:21:22Z|00001|unixctl|WARN|failed to connect to /var/run/ovn/ovn-controller.4339.ctl
ovs-appctl: cannot connect to "/var/run/ovn/ovn-controller.4339.ctl" (No such file or directory)
2021-04-30T08:21:22Z|00001|unixctl|WARN|failed to connect to /var/run/ovn/ovn-controller.4339.ctl
ovs-appctl: cannot connect to "/var/run/ovn/ovn-controller.4339.ctl" (No such file or directory)
 * Exiting ovn-controller (4339)
 * Killing ovn-controller (4339)
 * Starting ovn-controller

# kubectl exec -it net-tools-new -- ping -c 4 <IP_ADDRESS>| while read pong; do echo $(date): $pong; done
Fri Apr 30 16:21:29 CST 2021: PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
Fri Apr 30 16:21:42 CST 2021:
Fri Apr 30 16:21:42 CST 2021: --- <IP_ADDRESS> ping statistics ---
Fri Apr 30 16:21:42 CST 2021: 4 packets transmitted, 0 received, 100% packet loss, time 3060ms
Fri Apr 30 16:21:42 CST 2021:
command terminated with exit code 1

# kubectl delete -f ovn-ic-config.yaml
configmap "ovn-ic-config" deleted
# kubectl create -f ovn-ic-config.yaml
configmap/ovn-ic-config created

# kubectl exec -it net-tools-new -- ping -c 4 <IP_ADDRESS>| while read pong; do echo $(date): $pong; done
Fri Apr 30 16:23:35 CST 2021: PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
Fri Apr 30 16:23:35 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=62 time=1.09 ms
Fri Apr 30 16:23:36 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=62 time=0.907 ms
Fri Apr 30 16:23:37 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=62 time=0.528 ms
Fri Apr 30 16:23:38 CST 2021: 64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=62 time=0.891 ms
Fri Apr 30 16:23:38 CST 2021:
Fri Apr 30 16:23:38 CST 2021: --- <IP_ADDRESS> ping statistics ---
Fri Apr 30 16:23:38 CST 2021: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Fri Apr 30 16:23:38 CST 2021: rtt min/avg/max/mdev = 0.528/0.854/1.092/0.204 ms

@ackfin @wurong1420 可以试一下用 kubeovn/kube-ovn:v1.6.2-x86 镜像更新一下 kube-ovn-controller，解决了这个问题


Add @dcloudio/types to allowed dependencies

Required for:
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64519
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64523

Maybe @sandersn can weigh in, but this doesn’t seem necessary. The PRs you linked simply replace the entire contents of what was on DefinitelyTyped with a reference to @dcloudio/types. Users should simply use @dcloudio/types directly instead of going through an empty proxy package of @types/html5plus or @types/uni-app.

Maybe @sandersn can weigh in, but this doesn’t seem necessary. The PRs you linked simply replace the entire contents of what was on DefinitelyTyped with a reference to @dcloudio/types. Users should simply use @dcloudio/types directly instead of going through an empty proxy package of @types/html5plus or @types/uni-app.

We have some old users who have been using @types/html5plus or @types/uni-app, we can't notify them to use @dcloudio/types, in order to allow users to continue to use, so we want to be consistent, thanks.
@andrewbranch @sandersn


Update documentation to reflect HTML5 limitations.

Closes #34993

Don't merge yet, need one more fix :(

Ready, sorry about the spam

@akien-mga @NathanLovato I was wondering, looking at how it's displayed in the editor/website, should I move the note to the brief description? Or is the brief description supposed to be just one line?
Just because when you open the class you get the brief description, but since properties/methods/signals are before the full description the user will probably not see it right away, unless they look for the full description.

I've been thinking for a while that the location of the full description is too far down, and should be moved up.

Thanks!


Invitation request

Name
Code With Mercy
Discord Username (if applicable) E.g John#412
Mercyharbo#2268
Questions & suggestions?
I’d like to join the community

Thanks for raising an issue to join this community. 🤩 Now check your Email for the invitation.


Raycaster breaks inputs or forms bindings

Steps

Add an input type file, or submit, for example
https://github.com/alexx855/angular-test-atft/blob/master/src/app/app.component.html

Actual Result
Inputs does not work or biding, having similar issues with angular form radio bindings.
Expected Result
To work as normal

will be fixed in atft:1.4.22 soon


Fixed a couple of CONTRIBUTING.md typos

"i.e." roughly means "that is" (I think of it as "in essence"); "e.g." roughly means "for example" (I think of it as "example given").
Missing exclamation mark at the end. You've got to have the right level of oomph!

Typo PRs are the best PRs 💓 Thanks for fixing it!


Allow comparing NamedShape to None

Fixes #8416
The description of jax.jit says Static arguments should be hashable, meaning both __hash__ and __eq__ are implemented, and immutable. but currently, we don't allow comparing NamedShape and None. Despite that, it seems that we can still jit a function that takes either NamedShape or None static arguments.
Unfortunately, CI occasionally performs such comparison (NamedShape vs None):
>     return _bernoulli(key, p, shape)  # type: ignore
E     ValueError: static arguments should be comparable using __eq__.The following error was raised during a call to '_bernoulli' when comparing two objects of types <class 'jax.core.NamedShape'> and <class 'NoneType'>. The error was:
E     TypeError: NamedShape doesn't support comparisons with <class 'NoneType'>
E
E     At:
E       /opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/jax/core.py(1642): __eq__
E       /opt/hostedtoolcache/Python/3.7.12/x64/lib/python3.7/site-packages/jax/_src/random.py(705): bernoulli

in jax.random.bernoulli. We can bypass the error by restarting the CI but it is a bit annoying (the errors have been happening for a few months).

Sorry for the slow response!
But shouldn't we just return False after the two isinstance checks? That is, if other is not a NamedShape nor a tuple, then self is certainly not equal to it?

Makes sense to me. That will match tuple behavior :)
class A():
  pass

(() == A()) is False


Allow trailing , in import lists.

Example:
use a::{b, c, d,};

should compile but it doesn't because of the , after d.

Re-opening to follow-up with adding tests @eureka-cpu

@adlerjohn currently out and about, if you don't get to it before tonight I'll add them


MWPW-153922 - knowledge base overview date filter

Resolves: MWPW-153922

created a common component, PartnerCardsWithDateFilter (since both components , partner news and knowledge base have date filter)
dafault cardsPerPage for knowledge base is 12
NewsCard is moved to separated file
formatDate method moved to utils
fixed basic eslint errors

LINKS:
Before:

https://stage--dx-partners--adobecom.hlx.page/technologypartners/drafts/dragana/knowledge-overview
https://stage--dx-partners--adobecom.hlx.page/solutionpartners/drafts/dragana/partner-news

After:

https://mwpw-153922-knowledge-date-filter--dx-partners--adobecom.hlx.page/technologypartners/drafts/dragana/knowledge-overview
https://mwpw-153922-knowledge-date-filter--dx-partners--adobecom.hlx.page/solutionpartners/drafts/dragana/partner-news

Codecov Report
Attention: Patch coverage is 71.52778% with 123 lines in your changes missing coverage. Please review.

Project coverage is 84.77%. Comparing base (ffe9db9) to head (c6a8055).

Files
Patch %
Lines

eds/components/PartnerCardsWithDateFilter.js
67.46%
68 Missing :warning:

eds/components/PartnerCards.js
54.45%
46 Missing :warning:

eds/components/NewsCard.js
88.63%
5 Missing :warning:

...s/knowledge-base-overview/KnowledgeBaseOverview.js
80.00%
3 Missing :warning:

eds/blocks/partner-news/PartnerNews.js
88.88%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##            stage      #43      +/-   ##
==========================================
+ Coverage   84.12%   84.77%   +0.65%
==========================================
  Files           8       10       +2
  Lines        2532     2555      +23
==========================================
+ Hits         2130     2166      +36
+ Misses        402      389      -13

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@draganatrajkovic by default the mobile filters show +1 for filters applied, would expect there to be none to be shown since 'show all' is selected by default

@draganatrajkovic there seems to be something slightly off in the rendering of the count in the mobile view. Would expect the count to align with those of the other filters

@draganatrajkovic by default the mobile filters show +1 for filters applied, would expect there to be no count shown since 'show all' is selected by default

@draganatrajkovic by default the mobile filters show +1 for filters applied, would expect there to be no count shown since 'show all' is selected by default

right! i will check which part of the refactoring causes this small bug. thank you

@draganatrajkovic there seems to be something slightly off in the rendering of the count in the mobile view. Would expect the count to align with those of the other filters

@draganatrajkovic by default the mobile filters show +1 for filters applied, would expect there to be no count shown since 'show all' is selected by default

The changes are pushed, please take a look @richardhand-fortedigital


Videos recorded on Android do not play on Iphone / Ipad

Videos recorded with the camera plugin on android devices do not run on iphones / ipads with the video_player plugin, nor directly in the browser.  Tested with IOS 13.
flutter doctor -v output
[√] Flutter (Channel stable, v1.12.13+hotfix.7, on Microsoft Windows [Version 10.0.17134.1], locale pt-BR)
    • Flutter version 1.12.13+hotfix.7 at C:\flutter
    • Framework revision 9f5ff2306b (5 days ago), 2020-01-26 22:38:26 -0800
    • Engine revision a67792536c
    • Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at C:\Users\Jupp\AppData\Local\Android\Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = C:\Users\Jupp\AppData\Local\Android\Sdk
    • ANDROID_SDK_ROOT = C:\Users\Jupp\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] IntelliJ IDEA Community Edition (version 2019.2)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2.3
    • Flutter plugin version 42.2.2
    • Dart plugin version 192.7761

[√] VS Code (version 1.41.1)
    • VS Code at C:\Users\Jupp\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.6.0

[√] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

• No issues found!

Hi @juppdes
Do you mean not video_camera (there isn't such on pub.dev) but camera plugin, right?

Hi @VladyslavBondarenko.. sorry.. i wanted to refer to the camera plugin in case of video recording and the video_player plugin in playback (not video_camera).

Hi @VladyslavBondarenko.. sorry.. i wanted to refer to the camera plugin in case of video recording and the video_player plugin in playback (not video_camera). I fixed the issue.

Could you share how you fix the issue ?

Hi @juppdes, could you please provide a minimal reproducible code.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


bug: aws s3 buckets for log delivery cannot use customer managed keys

Describe the bug
https://aquasecurity.github.io/tfsec/v1.18.0/checks/aws/s3/encryption-customer-key/
When configuring an S3 bucket for log delivery, with encryption, a customer managed key cannot be used.

If default encryption is enabled on the target bucket, AES256 (SSE-S3) must be selected as the encryption key.
https://aws.amazon.com/premiumsupport/knowledge-center/s3-server-access-log-not-delivered/

To Reproduce
tfsec fails with aws-s3-encryption-customer-key on the configuration:
resource "aws_s3_bucket" "logs" {
  bucket        = "my-logs"
  force_destroy = false
}

resource "aws_s3_bucket_acl" "logs" {
  bucket = aws_s3_bucket.logs.id
  acl    = "log-delivery-write"
}

resource "aws_s3_bucket_server_side_encryption_configuration" "logs" {
  bucket = aws_s3_bucket.logs.bucket

  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm     = "AES256"
    }
  }
}

Expected behavior
When an S3 bucket has the log-delivery-write acl, it should ignore the customer managed key (much in the same way that it ignores the fact that the logs bucket doesn't have logging enabled)
Screenshots/Output

System Info

tfsec version: v1.21.2
terraform version: v1.2.1
OS: MacOS

Additional context
Enforcing the use of a Customer Key for logging buckets actually creates potentially insecure configuration, as the logs will not be delivered (although the infrastructure will still launch without errors or warnings)

Ta @owenrumney 👍


Removing Overwrite Object for Better Code Quality

resolves #30368

API change check
API changes are not detected in this pull request.


Incorrect peer dependency with yarn reported

Bug report
Summary
Installing the lib yields this warning:
warning " ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>
Environment info
react-native info output:
$ npx react-native info
info Fetching system and libraries information...
System:
    OS: Windows 10 10.0.18363
    CPU: (12) x64 Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz
    Memory: 37.34 GB / 63.76 GB
  Binaries:
    Node: 13.9.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.4 - C:\Program Files\nodejs\yarn.CMD
    npm: 6.13.7 - C:\Program Files\nodejs\npm.CMD
    Watchman: Not Found
  SDKs:
    Android SDK: Not Found
  IDEs:
    Android Studio: Version  <IP_ADDRESS> AI-192.7<IP_ADDRESS>41897
  Languages:
    Java: 11.0.6 - C:\Users\xxx\AppData\Local\Programs\AdoptOpenJDK\bin\javac.EXE
    Python: Not Found
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.11.0 => 16.11.0
    react-native: 0.62.2 => 0.62.2
  npmGlobalPackages:
    *react-native*: Not Found

Library version: 2.1.6
Steps to reproduce

yarn add react-native-localize

Describe what you expected to happen:

Package should install without this warning.
It can still print the peer dep warning for

warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>

Upps, filed for the wrong package!


Fix disregard of commonmarkOptions parameter

without this change, the commonmarkOptions parameter documented here has no effect.
I assumed that all options on this page should be exposed and updated the example accordingly.

👍


Use all 64 bits in fork_version

This was brought up by @protolambda. We are inconsistent on the handling of fork_version:

We define it as a uint64.
We use it as a uint32 when doing fork_version * 2**32 + domain_type.

I think it would be cleaner if the final signing logic used hash(message_hash + bytes8(fork_version) + byte1(domain)) as opposed to hash(message_hash + bytes8(domain)).

Defined fork_version as a uint64 for consistency of 64-bit types everywhere, but clearly only intend to use it up to 32bits.
To be clear, you are suggesting changing the bls functions to accept fork_version, domain rather than just domain?

you are suggesting changing the bls functions to accept fork_version, domain rather than just domain?

Right, but ideally there's something cleaner.

A clean solution (idea taken from @vbuterin) is to define fork_version as a byte[4]. It also makes more sense semantically because we're not doing no arithmetic on it. We can also define domain_type as a byte[4], which again makes more sense semantically. We then replace return fork_version * 2**32 + domain_type with return fork_version + domain_type.


perf issues retrieving suggestions when filtering by control/control tag with a lot of data

Describe the bug
customer reported: https://getchef.zendesk.com/agent/tickets/25621
"In the compliance tab, when trying to filter on either Controls or Control Tag, the suggestion list takes a very long time to populate in our environment. If you first filter the node list to a very small number, then the list populates quicker. We do not have this issue for other filters.(roles, platform, profiles)"
To Reproduce
Steps to reproduce the behavior:

load a bunch of data (inspec reports)
try to get suggestions on a control or control tag
notice timeout or excessively long time to retrieve suggestions

Expected behavior
can retrieve suggestions in a timely manner!
Additional context

NOTE: this bugfix has a hard deadline: july 27th merge to be able to get the fix out to the customer in time


Change dashes to underscores in Ansible group names

Ansible 2.10 will deprecate illegal chars in group names.
We have dashes (-) in ours, so we need to fix this!

WARNING! This is a breaking change


Add save/load feature with pickle

Additional flag allow_pickle must be set True to avoid accidental misuse. Raise some Error if the flag is False and state "The pickle module is not secure. Only unpickle data you trust.\nIt is possible to construct malicious pickle data which will execute arbitrary code during unpickling. Never unpickle data that could have come from an untrusted source, or that could have been tampered with.\nWith trusted data source, set allow_pickle to True at the initialization of XYZTileFile."
ref https://docs.python.org/3/library/pickle.html

Negate XYZHttpPickle for security reasons.


Set margin of SolidBottomSheet.

How can I set margin of SolidBottomSheet?
However, I have set margin of widget that is inside body. That is working.
But showing white color in margin area of body.
See following screenshot.

bottomSheet: SolidBottomSheet(
          draggableBody: true,
          minHeight: 20.vertical,
          maxHeight: 50.vertical,
          toggleVisibilityOnTap: false,
          canUserSwipe: true,
          showOnAppear: false,
          headerBar: null,
          body: MyBottomSheet()),

class MyBottomSheet extends StatelessWidget {
  BorderRadius get _radius {
    return BorderRadius.only(
      topRight: Radius.circular(4.horizontal),
      topLeft: Radius.circular(4.horizontal),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.symmetric(horizontal: 5.horizontal),
      height: 50.vertical,
      decoration: BoxDecoration(
          color: AppColors.red.withOpacity(0.2),
          borderRadius: _radius),
    );
  }
}

You see this color because I didn't set it as transparent... For now try to add the margin to the SolidBottomSheet itself instead of adding it into you body widget. I will try to set the background color of the body as transparent asap.

Thank you for quick reply.
As you said to add margin in SolidBottomSheet. But I did not find property for that.
There are only these properties available. (See below screenshot)

If you could update this repository for this change, I will appreciate it.
Also, please acknowledge in this ticket once you update.

Wrap the SolidBottomSheet with a padding widget. Maybe this helps you

Nope, that is not working.

Any update on this ticket?

Here you can find a potential solution https://github.com/dbenitez-bcn/solid_bottom_sheet/issues/29#issuecomment-898885655


fix: do not create infra resources when missing translated listeners

What type of PR is this?

What this PR does / why we need it:
Validate Infra listeners before running createOrUpdate func
Which issue(s) this PR fixes:

Fixes https://github.com/envoyproxy/gateway/issues/3044

/retest

/retest


Change dependency on curve25519-dalek-ng to curve25519-dalek

Closes https://github.com/zkcrypto/bulletproofs/issues/15
@cathieyun
The major version has to be bumped because importing both Bulletproofs & curve25519-dalek-ng after this change will result in conflicts.
I ran both the tests and benches:
cargo test
cargo bench

I also tested that importing Bulletproofs 5.0.0 & curve25519-dalek 4.1.1 compiles successfully (some changes may need to be done, depending on how curve25519-dalek is used.

LGTM, thanks for putting this PR together.

Thanks for reviewing @cathieyun !


Implement public API for getting options from each validation.

HI there! Great work you've been doing. Thanks!
I haven't found a public API for getting the original options passed to each validation. I would like to use them in association with certain HTML attributes. Here is an example of what I would like to do:
{{input value=model.email
        required=model.validations.attrs.email.validations.presence
        maxlength=model.validations.attrs.email.validations.length.max}}

I am using the v-get helper. I wrote the example that way trying to make myself clearer.
Anyway, I think that such API would be useful.

Hi @phcoliveira! Thanks for pointing this use case out to me. Let me take some time to think about the best way to support this :smile_cat:

Ill have a release out tonight

Tagged and released with v2.2.0


Feat price history

[x] Add db packages
[x] Add migrations and seeds
[x] Add price repo
[x] Add history server
[x] Refactor realtime impl to avoid db dependency
[x] Create monorepo structure
[x] Update github actions + ci to use monorepo
[ ] Add update history server
[ ] Add tests

closed in favor of https://github.com/GaloyMoney/price/pull/19


DGJ-1280 add Department ID to employee lookup

Adding Department ID so we can more accurately describe a user's organization for reporting.

This works great for the endpoint used in SL form. If you want to include the Department ID in the employee data that is fetched automatically in all forms, endpoint employee-data/me, please add the properties to employee_data.py Model.

This works great for the endpoint used in SL form. If you want to include the Department ID in the employee data that is fetched automatically in all forms, endpoint employee-data/me, please add the properties to employee_data.py Model.

@iman I guess for this ticket we do not need to include dept in employee demographic data that fetched on /me url.


fix(CSI-241): fix unmountWithOptions to use map key rather than options.String()

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#317  👈
#316
#314
#313
#312
#311
#315
#299
#310
dev

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @sergeyberezansky and the rest of your teammates on  Graphite


add  Atom One Dark Syntax Theme

thank you for the awesome-vscode！I once used Atom edit, i like it very much,but some time it's very slow!!! so, now i use vscode instead of Atom。I think the Atom One Dark Theme is very nice!!!

Thanks! Indeed one of the best themes


fix(readers): Fix non-ASCII JSON Reader bug

Description
Includes ensure_ascii=False in JSONReader in order to handle non-ASCII inputs properly
Fixes #7084
Type of Change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
It has been tested that this JSON file
[
  {
    "text": "Для интересующихся:  прогнал natasha через тесты factRuEval-2016 (первая дорожка, сущности типа персона, организация, гео) и получил более-менее приемлимые результаты (при loc=locorg, overall P=0.81, R=0.52, F1=0.6348)Можно всё это повторить, совершенно бесплатно, без смс и регистрации: https://gist.github.com/dveselov/af9bc55b4be16fe1fe92d4b5347f1027",
    "time": "21.12.2016 04:05:54 UTC+04:00",
    "author": "Dima Veselov"
  }
]

is ingested and the text is loaded/rendered properly as follows (without the \\u indicating raw bytes)

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Added new unit/integration tests
[ ] Added new notebook (that tests end-to-end)
[x] I stared at the code and made sure it makes sense
(Since the test corresponds to ASCII related issues which are visual in nature and cannot be equality-checked, I'm not sure how to add a new unit test/notebook here)

Suggested Checklist:

[x] I have performed a self-review of my own code
[ ] 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
[ ] 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

can this be a toggle option in the __init__? want to make sure that users have some control here

In that case, shall we call this parameter also as ensure_ascii and propagate it from __init__? Like so:
def __init__(
        self, levels_back: Optional[int] = None, collapse_length: Optional[int] = None, ensure_ascii: Optional[bool] = False
    ) -> None:
...
json.dumps(data, indent=0, ensure_ascii=ensure_ascii)

json.dumps(data, ensure_ascii=ensure_ascii)


Create Login.html

TASK #6 : front end of Login page.

Please send screenshots!

Send a new pull request by thoroughly testing your changes. If you have sent a PR and I have asked to fix some issues, edit the same PR and don't create new ones. For now, I am closing this PR also. Create a fresh PR properly by testing your changes and commits.


GenericContainer runs in endless loop, when image does not exist

When using GenericContainer with an image, that does not exist on dockerhup (which happened to me because of a typo), then there is a endless loop in GenericContainer.java:244. It would be better to print a clear error message in this case.
To workaround https://github.com/docker/docker/issues/10708 one could retry N times before printing an error.

Thanks for raising this - I'll have a look. I thought the image pull was wrapped in a loop with a max number of retries, but it seems I missed this.


Error: export 'GeneratePassword' (imported as 'GeneratePassword') was not found in 'js-generate-password' (module has no exports)

I writed as document, but why has error?
Error: export 'GeneratePassword' (imported as 'GeneratePassword') was not found in 'js-generate-password' (module has no exports)
My code:
import { GeneratePassword } from 'js-generate-password'
this.password = GeneratePassword({ 			length: this.lengthWord, 			numbers: this.isCheckedNumbers, 			uppercase: this.isCheckedUppercase, 			lowercase: this.isCheckedLowercase, 			symbols: this.isCheckedSymbols, 			exclude: '', 			minLengthLowercase: 1, 			minLengthUppercase: 1, 			minLengthNumbers: 1, 			minLengthSymbols: 0, 		})

sorry, if you are using lite version plz import from generate-password-lite.
seems there is a mistake in documentation

import { GeneratePassword } from 'generate-password-lite'
I will install generate-password-lite and still has above errror.

Do you use which way to import?
1.
import { GeneratePassword } from "generate-password-lite";
2.
const { GeneratePassword } = "generate-password-lite";

Can confirm this error is encountered when using Node 20.11.1
SyntaxError: The requested module 'js-generate-password' does not provide an export named 'GeneratePassword'
    at ModuleJob._instantiate (node:internal/modules/esm/module_job:132:21)
   at async ModuleJob.run (node:internal/modules/esm/module_job:214:5)
   at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
   at async loadESM (node:internal/process/esm_loader:28:7)
   at async handleMainPromise (node:internal/modules/run_main:113:12)

Node.js v20.11.1

I am having the same error while trying to import the module...
Node.js v20.11.1


gdx-backend-android-1.11.0.jar corrupted

The following message appears when I did ./gradlew clean test on my project after upgrading libgdx to 1.11.0:
Execution failed for task ':gdx-android:compileFreeDebugKotlin'.
> Error while evaluating property 'filteredArgumentsMap' of task ':gdx-android:compileFreeDebugKotlin'
   > Could not resolve all files for configuration ':gdx-android:freeDebugCompileClasspath'.
      > Failed to transform gdx-backend-android-1.11.0.jar (com.badlogicgames.gdx:gdx-backend-android:1.11.0) to match attributes {artifactType=android-classes-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.version=7, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-api}.
         > Could not find gdx-backend-android-1.11.0.jar (com.badlogicgames.gdx:gdx-backend-android:1.11.0).
           Searched in the following locations:
               https://plugins.gradle.org/m2/com/badlogicgames/gdx/gdx-backend-android/1.11.0/gdx-backend-android-1.11.0.jar

I did try to remove ~/.gradle and ~/.m2 and rebuild the project but got the same error message. Therefore I suspect that the jar itself is corrupted.

I don't really target Android, so I could be way off, but a snippet of that error contains org.gradle.jvm.version=7 . This looks very similar to a Gradle error that can happen to LWJGL3 projects that are using JVM version 7, and I'm wondering if the Android backend may have been built with compatibility for 8 (like LWJGL3).

Hi @tommyettinger, unfortunately it doesn't help. Actually, my compatibility java version for android has always been 11 (latest android gradle plugin support that):
    compileOptions {
        sourceCompatibility(JavaVersion.VERSION_11)
        targetCompatibility(JavaVersion.VERSION_11)
    }

And it works well for 1.10.0, that's why I suspect that something is wrong in the jar files at the maven repository.

I'm not sure what could be wrong with the JAR files that I just downloaded as well and successfully built with...
Oh.
It's only searching one repo for the backend, which it definitely won't find at gradlePluginPortal(). It seems to only check:
               https://plugins.gradle.org/m2/com/badlogicgames/gdx/gdx-backend-android/1.11.0/gdx-backend-android-1.11.0.jar

Which is Gradle's plugin distribution site, and only hosts Gradle plugins (not libGDX). Can you paste any repositories sections of your root and Android build.gradle files?

Here is my repositories
allprojects {
    repositories {
        gradlePluginPortal()
        mavenLocal()
        mavenCentral()
        google()
        maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") }
        maven { url = uri("https://oss.sonatype.org/content/repositories/releases/") }
    }
}

In principle, it should search in mavenCentral()

I don't think gradlePluginPortal() is needed at all for the allprojects repositories. It should only be needed by the buildscript repositories, and might not even be needed there. I've had all kinds of weird issues with Gradle checking only one repository and abruptly stopping its search, though mostly that happens when it has found part of a dependency in mavenLocal(), but not enough. I'd try removing or commenting out gradlePluginPortal() there, then if that doesn't work, removing mavenLocal() too.

For what it's worth, gdx-setup puts gradlePluginPortal() after mavenCentral(), which I reckon should attempt to download from Maven/gdx-backend-android-1.11.0.jar instead. I'm unsure why Gradle/gdx-backend-android-1.10.0.jar is a perfectly valid download but Gradle/gdx-backend-android-1.11.0.jar isn't. Mine seems happy regardless of order, but something's probably cached now.

Thanks a lot. It now working after removing gradlePluginPortal() from allprojects, putting gradlePluginPortal() after mavenCentral() also works too. I will change the title and close this issue.


Live

Docs Build status updates of commit b475e5d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-iotcore/Downloads.md
:white_check_mark:Succeeded

windows-iotcore/GetStarted.md
:white_check_mark:Succeeded

windows-iotcore/Resources.md
:white_check_mark:Succeeded

windows-iotcore/learn-about-hardware/HardwareCompatList.md
:white_check_mark:Succeeded

windows-iotcore/learn-about-hardware/SoCsAndCustomBoards.md
:white_check_mark:Succeeded

windows-iotcore/learn-about-hardware/iotnxp.md
:white_check_mark:Succeeded

windows-iotcore/tutorials/quickstarter/PrototypeBoards.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Error: MissingPluginException(No implementation found for method start on channel flutter_braintree.drop_in)

I want to add PayPal payment with braintree but i keep getting this error and i cannot solve it, any help please?

Have you tried completely restarting the app instead of using hot reload? Also note that the plugin does not support any platform other than iOS and Android.


Per-test coverage?

Is it possible to gather per-test coverage? Perhaps via a plugin?
Is there any way to get started with this, and is it even possible?

Running a single test with coverage should give you that.
Since most coverage tools I have used hook into nodes require lifecycle to instrument the code and accumulate numbers over the entire process runtime, I don't think you have many other ways to go

@Munter the problem is that that is slow.
The reason I want to do this, is to be able to see what tests ran through a specific line of code, so that I can (from GIT change information) run only affected tests.
I want to make a Mocha plugin that does this.
I suppose Istanbul is being used to instrument the code and provide coverage?
And if so, could I somehow make a Mocha plugin that ran before and after each test, reading the coverage information and resetting it between runs?
Obviously this wouldn't work in parallel, but that's fine for me.

Mocha itself doesn't deal with code coverage, so the choice of coverage tool is yours. I use Istanbul myself.
I guess you could write a reporter that could output coverage per test if it was possible to access the coverage tool at runtime and have it dump a report of its current line statement counts and reset all its counters before proceeding. That would keep you in the same process and only run expensive instrumentation once. I'm not aware of any such runtime API's though, and all of this seems out of scope for Mocha itself as well

@Munter thank you for the clarification. Can you link to relevant parts of the documentation on how to make such a reporter? I haven't been able to find anything.

The easiest way to create a new reporter is probably to extend the base reporter and have a look at what some of the other reporters do with the events they receive: https://github.com/mochajs/mocha/blob/master/lib/reporters/spec.js

Thank you so much @Munter. One last thing before I close this issue.

Do you have TypeScript typings for the reporters?
And how do I extend the "base.js" reporter from the outside? What is the import path? const base = require('mocha/base')?

We do not have typescript typings. But we have spent considerable time on JSDoc annotations, which I know vscode is pretty good at picking up on, so that might be of some help
I think the import path would be require('mocha/lib/reporters/base'), since I don't recall us moving files around or aliasing themin any way

It seems fine to close.

It seems fine to close.


Delete _event_actions.html.haml~HEAD

I'm pretty sure this file does nothing and was accidentally committed

Wrong repo, meant to do https://github.com/codebar/planner/pull/1173/files lol


Remove double encoding in MathML via Unicode MathML spaces

We used to have a complex mechanic for escaping strings, marking them as needsEscape = false, and then not escaping those strings (for combining strings in \operatorname).  But this doesn't really work with rendering directly to a node, as document.createTextNode can't be stopped from escaping.
I've thus removed this mechanic, which required the following changes:

Switch MathML "smart space" encoding to use Unicode instead of &LongNames; (which weren't working with render for the same reason).
Hack our HTML/MathML serializer to not use String.trim, which wrecks havoc with emitted Unicode spaces.

Now toText() doesn't escape, so strings concatenate in unescaped form, and toHTML() only does the necessary escaping.  Thus fix #1782.
This PR replaces #1793.

Codecov Report

Merging #1813 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1813      +/-   ##
==========================================
- Coverage   94.58%   94.58%   -0.01%
==========================================
  Files          80       80
  Lines        4655     4654       -1
  Branches      809      808       -1
==========================================
- Hits         4403     4402       -1
  Misses        227      227
  Partials       25       25

Flag
Coverage Δ

#screenshotter
88.81% <58.33%> (-0.03%)
:arrow_down:

#test
86.61% <100%> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

src/utils.js
93.1% <ø> (ø)
:arrow_up:

src/functions/operatorname.js
94.73% <100%> (ø)
:arrow_up:

src/mathMLTree.js
98.27% <100%> (-0.03%)
:arrow_down:

Continue to review full report at Codecov.

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


xfuse_create_share() called before xfuse_init()

Running xrdp 0.9.2 on CentOS/RHEL 7.3, we occasionally see coredumps of chansrv, always when logging in.
Investigation of these coredumps shows a SEGV in xfuse_create_share(), where the new xinode is inserted into the inode_table. At this point, g_xrdp_fs is uninitialized so it seems that xfuse_init() has not yet been called.
(gdb) print g_xrdp_fs
$1 = {inode_table = 0x0, max_entries = 0, num_entries = 1, next_node = 1}

This patch caters for this situation by creating the inode table if required during xfuse_create_share()
My local testing shows chansrv to be more robust with this patch. Is there maybe a preferable way to handle this situation, like calling xfuse_init() from elsewhere?

I understand the cause of the issue but I'm not sure why your patch solves the issue.
Your change makes xfuse_init_xrdp_fs() inside xfuse_init() will be not allways called, right?

Hi metalefty
Apologies for the braces. I've found and read the coding standard now.
As regards your other comment, the change inside xfuse_init() was made to cater for the situation where xfuse_init_xrdp_fs() is called before xfuse_init().  In this situation, xfuse_init() will eventually be called, and we don't want to initialise the inode table again.
I agree my intent could be clearer however, so I've cleaned up the patch a bit. I've place the guard against being called twice inside xfuse_init_xrdp_fs() now, and simply called the function unconditionally from both places where it's needed. The original code in xfuse_init() is now untouched.
Is that clearer now, or have I misunderstood your question?

+1

Now the fix looks pretty clearer.
Let's make the commit message clearer next. This PR has two point, right?

make sure inode table be initialized
add a guard not to initialize twice

You can squash the commits into one commit and edit commit message before the PR merged.

How's that?

This will help you. https://www.devroom.io/2011/07/05/git-squash-your-latests-commits-into-one/

Apologies metalefty - bad terminology on my part in my comment. I've done the squash already, and all I really wanted was a quick sanity check. Nice link though.

I also apologize you. I didn't aware you've done squash. It seems pretty good. Ready to merge.


PHP 8 warning in CnpXmlMapper.php

Starting in PHP 8, a warning is emitted when a required method parameter follows an optional method parameter.  In running some unit testing, I found that this situation exists in the CnpXmlMapper::request method.
Suggested change:
public function request($request,$hash_config=NULL,$useSimpleXml)
to
public function request($request,$hash_config=NULL,$useSimpleXml=FALSE)
I opened a pull request, but could not add any reviewers: https://github.com/Vantiv/cnp-sdk-for-php/pull/34

Are there plans to fix this bug and merge this PR? This is causing a deprecation error with PHP 8.1


Fix slider bug when start is not 0

Address issue #8496
Line 141: pctOfBar should take account of start value
Line 278: value should have start offset.

Hi @briantan888 this looks good.  Can you set up a unit test for this case in test/javascript/components/slider.js?  You can use the tests in test/javascript/components/toggler.js as an example of how these can be structures.  See:  https://github.com/zurb/foundation-sites/blob/develop/test/javascript/components/toggler.js
Thanks!

@kball  I have no idea how to test the case asynchronously as bug manifest itself interactively.


Panic on generate when supplying an output filename

In running generate by hand to compare latest config against my version in use, encountered the following error.
$ k2cli generate config.yaml.generated
config.yaml.generatedPulling image 'quay.io/samsung_cnct/k2:latest' ██████████ Complete
Error response from daemon: invalid bind mount spec ".:.": invalid volume specification: '.:.': invalid mount config for type "volume": invalid mount path: '.' mount path must be absolute
panic: Error response from daemon: invalid bind mount spec ".:.": invalid volume specification: '.:.': invalid mount config for type "volume": invalid mount path: '.' mount path must be absolute

goroutine 1 [running]:
github.com/samsung-cnct/k2cli/cmd.containerAction(0xc4202c7b20, 0x1724040, 0xc4201eb140, 0xc4202d33b0, 0x3, 0x3, 0x0, 0x0, 0x0, 0x0, ...)
	/home/jjulian/.local/go/src/github.com/samsung-cnct/k2cli/cmd/container_helpers.go:497 +0x3a3
github.com/samsung-cnct/k2cli/cmd.runFunc(0x175a5e0, 0xc420279240, 0x1, 0x1)
	/home/jjulian/.local/go/src/github.com/samsung-cnct/k2cli/cmd/generate.go:98 +0x2e1
github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra.(*Command).execute(0x175a5e0, 0xc4202791c0, 0x1, 0x1, 0x175a5e0, 0xc4202791c0)
	/home/jjulian/.local/go/src/github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra/command.go:636 +0x231
github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1759f80, 0x100467c, 0xc420072058, 0x0)
	/home/jjulian/.local/go/src/github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra/command.go:722 +0x339
github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra.(*Command).Execute(0x1759f80, 0x0, 0x47)
	/home/jjulian/.local/go/src/github.com/samsung-cnct/k2cli/vendor/github.com/spf13/cobra/command.go:681 +0x2b
github.com/samsung-cnct/k2cli/cmd.Execute()
	/home/jjulian/.local/go/src/github.com/samsung-cnct/k2cli/cmd/root.go:65 +0x31
main.main()
	/home/jjulian/.local/go/src/_/home/jjulian/dev/k2cli/main.go:23 +0x22

Note that running simple k2cli generate without a target name succeeds.

$ k2cli version
1.0.7-stable+git.sha.d7454e05aab6b0a3078b660fb44497dfa25a853a

This is a duplicate of another bug:  https://github.com/samsung-cnct/k2cli/issues/107

@coffeepac - sorry for the overhead, forgot about my own issue.  thanks for closing this.


Getting an error when authentication type is ManagedServiceIdentity

I'm getting an error:
 "The API connection reference name salesforce-2 has invalid authentication type ManagedServiceIdentity. Only 'Raw' or 'ActiveDirectoryOAuth' authentication type is allowed in local developer environment".

My connections.json file looks like:
  "managedApiConnections": {
    "salesforce-2": {
      "api": {
        "id": "@appsetting('sfdc_api_id')"
      },
      "authentication": {
        "type": "ManagedServiceIdentity"
      },
      "connection": {
        "id": "@appsetting('sfdc_connection_id')"
      },
      "connectionRuntimeUrl": "@appsetting('sfdc_connection_runtime_url')"
    }
  }

I believe in the LogicAppUnit framework the method ReplaceManagedApiConnectionUrlsWithMockServer in the class ConnectionsWrapper.cs should also change the field authentication type to 'Raw' if it says 'ManagedServiceIdentity'. Or is there another way to resolve the error I am seeing?

Hi @rodolfoortiz , thank you for posting this issue.
When developing Standard Logic Apps, the usual approach is to configure the authentication type for each Managed API Connection in the connections.json file to Raw or ActiveDirectoryOAuth. This allows the connections to correctly authenticate with Azure when the workflow is run locally.  The ManagedServiceIdentity auth type is only used when the workflows are deployed to an Azure environment, since the Logic App can then use its own managed identity to authenticate with the Managed API Connector's token store. This is described in the Microsoft documentation. And this is why you are seeing this error being raised by the Logi App workflow engine:
Workflow 'xxxxx' validation and creation failed. Error: 'The API connection reference name 'xxxx' has invalid authentication type 'ManagedServiceIdentity'. Only 'Raw' or 'ActiveDirectoryOAuth' authentication type is allowed in local developer environment.'

I'm interested to understand why you are running Logic apps locally with the authentication type set to ManagedServiceIdentity?  Does this even work when you run the workflow locally?
The LogicAppUnit testing framework assumes that the authentication type in the connections.json file is set to a valid value, either Raw or ActiveDirectoryOAuth. Running a workflow via a unit test still runs the workflow in the Logic App workflow engine and so you will see these validation errors if the authentication type is not set to a valid value.


Text Issues

Hello, I think this library is very easy to use, but when I use the text in it, I pass in a Chinese string. The exported CAD cannot display Chinese. Does it not support Chinese? How can I solve this problem? Thank [you](url

)

Yest it does, but you must make sure that the font of the TextStyle actually supports them. Not all fonts contain Chinese characters.


Transaction pool, log memory use

Add a debug log to the transaction pool to show memory use after updates. It shows the reachable words, and the number of words per transaction.
Once we have a sense of the memory usage, we should delete this log, because it takes some time to traverse the OCaml memory blocks.

Run a qa-net without snark wokers? transactions will stop getting included in blocks after sometime and fill up the pool

I've run experiments to get the data needed. See #6562.


Can't update to Fresh 1.4: error: Relative import path "preact" not prefixed with / or ./ or ../

Run deno run -A -r https://fresh.deno.dev/update .,  I got this error and update not working.
error: Relative import path "preact" not prefixed with / or ./ or ../
    at https://deno.land/x/fresh@1.4.0/src/server/mod.ts:2:35

Production
Clone https://github.com/laststance/blog and run deno run -A -r https://fresh.deno.dev/update ..
Environment
deno 1.36.0 (release, x86_64-apple-darwin)
v8 <IP_ADDRESS>
typescript 5.1.6

Thanks for reporting this. I'll push a patch release.
Fixed by https://github.com/denoland/fresh/pull/1642

@marvinhagemeister Thanks! Now it works!


Cartoon Effect

Greetings sir,
I observed by the project repository that project aims for Image related manipulations.
I'd love to contribute to the repository.
Please can we add the cartoon effect as well in the option of effects with necessary process libraries like tqdm and OpenCV.
@smaranjitghose Can we please held onto this contribution?

Sure! Have a look at the White Box Cartoonization technique

Hey! @smaranjitghose
Can I work on this issue?
I am contributing as a part of DWOC

Hey! @smaranjitghose
Can I work on this issue?
I am contributing as a part of DWOC

Hey! @smaranjitghose
Can I work on this issue?
I am contributing as a part of DWOC

Sure. Have a look at the White Box Cartoonization paper and repo

Hey! @smaranjitghose
Can I work on this issue?
I am contributing as a part of DWOC

Sure. Have a look at the White Box Cartoonization paper and repo


Fixed #26323 -- TransactionManagementError is raised when autocommit …

…is false.

I guess you may need to restore set_autocommit(True) at the end of the test (use a try/finally) to fix the test failures.

This breaks the transactional integrity constraints which Django's transaction management is designed to enforce. See the ticket for details.


How to disable the text effect when init?

When my view first loaded, I want to set some value for the label without effect animation.
How to make it?
self.upNumTxt.text = "init val"
Any suggestions ? Thx

You can temporarily set morphingDuration to 0.001 and reverse to the default value 0.6 once you need the animation.
I should add an morphingEnabled property in the next release.

thx.

Please checkout the latest release(0.0.9) and try the morphingEnabled property.

Well done. :+1:


AST Parse @supported decorators and add supported information for each provider to the docs.

Extension of #336 . Now that every provider has the @supported decorator, we need to pull the information into the docs and intellisense syntax highlighting

We'll hold off on the intellisense highlighting - this could be done in an IDE extension instead.


Area of 2D shapes - circle, square, triangle, rectangle, oval

Enter calculator name -
2D Area calculator
Describe calculator functionality -
it will calculate the area of 2D shapes
Under which category you wish to place it -

[ ] Computer Science
[x] Mathematics
[ ] Physics
[ ] Chemistry
[ ] Biology
[ ] Finance
[ ] Scientific
[ ] Health
[ ] Sports
[x] Let project owner decide
[ ] Suggest a new category - (Answer here)

Kindly assign this issue to me @SarthakKeshari

kindly assign this issue to me @SarthakKeshari

Hey @Sk783,
Assigned.
You may contribute your code under the folder path -
Hacktoberfest2023\calc_for_everything\calculators\src\mathematical\areaOf2DShapes
Issue completion deadline - 12th Oct 8:00:00 am IST
NOTE - In case the issue completion deadline is not met, the issue will be assigned to a new participant

Hey @PrachiDev11,
Glad to see your eagerness for contributing 🤩. We are following first come first serve. If deadline is not met, then only it can be assigned to a new participant.
For now, kindly look into any open issues or you may even create one. 🥳
Happy contributing🎉


ssh_keys: save each remote's backup file name separately in a dict for u...

...ndo
Signed-off-by: Dan Mick<EMAIL_ADDRESS>

tested with three remotes this time.

Refer to this link for build results (access rights to CI server needed):
http://jenkins.ceph.com//job/teuthology-pull-requests/1388/
Tests passed for this pull request.


Javascripts are not rendering from html page.

Hello Team,
The following is the nginx conf that I am using. I have used self hosted prerender. The java scripts are not rendering:

server {
listen 443;
root /usr/share/nginx/html;
server_name test.fame.live;
error_log /var/log/nginx/test.fame.live-error.log;
access_log /var/log/nginx/test.livfame.com.access.log;
#error_log /var/log/nginx/m.livfame.com.error.log debug;
charset        utf-8;
add_header Strict-Transport-Security "max-age=10886400; includeSubDomains; preload";
ssl on;
ssl_prefer_server_ciphers on;
ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !kEDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/nginx/ssl/start_fame_live.crt;
#ssl_trusted_certificate /etc/nginx/ssl/intermediate.crt;
ssl_certificate_key /etc/nginx/ssl/start_fame_live.key;
ssl_session_cache shared:ssl_session_cache:100m;
ssl_session_timeout 10m;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/nginx/ssl/trustchain.crt;
    resolver <IP_ADDRESS>;

    location /nginx_status {
      stub_status on;
      access_log   off;
    }

location / {
  try_files $uri $uri/ /index.html;
            expires    1h;
            add_header Cache-Control "public";
            #add_header Vary Accept-Encoding;
}

Change YOUR_TOKEN to your prerender token and uncomment that line if you want to cache urls and view crawl stats
Change example.com (server_name) to your website url
Change /path/to/your/root to the correct value
location @prerender {
    #proxy_set_header X-Prerender-Token YOUR_TOKEN;

    set $prerender 0;
    if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
        set $prerender 1;
    }
    if ($args ~ "_escaped_fragment_") {
        set $prerender 1;
    }
    if ($http_user_agent ~ "Prerender") {
        set $prerender 0;
    }
    if ($uri ~* "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|svg|eot)") {
        set $prerender 0;
    }

    #resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
    resolver <IP_ADDRESS>;

    if ($prerender = 1) {

        #setting prerender as a variable forces DNS resolution since nginx caches IPs and doesnt play well with load balancing
        set $prerender "localhost:3000";
        rewrite .* /$scheme://$host$request_uri? break;
        proxy_pass http://$prerender;
    }
    if ($prerender = 0) {
        rewrite .* /index.html break;
    }
}

}

You need to use the @prerender location.
Try:
try_files @prerender $uri $uri/ /index.html;
or
try_files $uri @prerender $uri/ /index.html;
If those don't work, try moving all of the config inside the @prerender location above the try_files to see if it will execute first. Feel free to email<EMAIL_ADDRESS>if you want us to help you get the middleware config set up.

I have tried all these methods. But nothing is helping out.


delete spurious tags from repo

At some point, it looks like this repo acquired copies of all the old (unscoped) tags from the original solorepos. We've got good+scoped tags like SES-v0.5.0, but we also have bad+unscoped tags like 0.5.0.
The chore is to identify and delete all of these tags. The command to run is git push origin :0.5.0, for all tags that we identify as spurious.  These will be the tags without a projectname+hyphen prefix. All of the spurious tags should point to commits for which there is also a non-spurious tag, and it might be good to check that before deleting.

Oh also, after we delete these from the github repo, all contributors should check their local trees and delete them there too, to reduce the chances of these tags getting pushed back up again in the future. I think there are options/flavors for a bare git push to push all tags, in addition to branch heads, and I suspect it's one of these that caused those unscoped tags to show up on github.

I've deleted these tags from the github repo. @kriskowal @erights @michaelfig @jfparadis please run the following commands locally to remove them from your own machines:
for t in `git tag |grep '^0'`; do git tag -d $t; done
for t in `git tag |grep '^v0'`; do git tag -d $t; done
for t in `git tag |grep '^v1'`; do git tag -d $t; done
for t in `git tag |grep '^v2'`; do git tag -d $t; done

I think git fetch origin --prune --prune-tags will work if your version of git supports it.

These are gone from github, if I see them pop up again I'll figure out who to hassle about leftovers in their local trees.


Overriding source does not override branch refs

What version of Go (go version) and dep (git describe --tags) are you using?
go version go1.8.3 linux/amd64
v0.3.0-162-gf134697

What dep command did you run?
dep ensure
The relevant part of the Gopkg.toml:
[[override]]
  name = "github.com/whyrusleeping/go-smux-multistream"
  source = "https://github.com/marten-seemann/go-smux-multistream.git"
  branch = "master"

and Gopkg.lock:
[[projects]]
  branch = "master"
  name = "github.com/whyrusleeping/go-smux-multistream"
  packages = ["."]
  revision = "a8f6f9a46f04c6c944000c59a0d06a767e75ae3a"
  source = "https://github.com/marten-seemann/go-smux-multistream.git"

What did you expect to see?
I expected the master branch to reference the master from the alternative source.
master on the primary: a8f6f9a46f04c6c944000c59a0d06a767e75ae3a
master on the override: 6fafe570892b47db67ae32c4d4eebcdaa206f309
What did you see instead?
The master still references the same commit.

I can understand this behaviour but then the name source is bit misleading, a mirror would fit it a bit better. If it is on purpose behaviour please improve the docs to reflect that.

In general, dep ensure populates your vendor directory with the revisions specified in your Gopkg.lock. a8f6f9a46f04c6c944000c59a0d06a767e75ae3a is a valid revision on that fork, so dep didn't change the revision.
If you want to update to the latest revision on master of your fork, use dep ensure -update.

Thanks, I didn't think about that.


Receiving "Ambiguous reference to member 'progress'" with download

When following the progress example, only modifying it for download I'm receiving this compiler error in regard to request.rx.progress() using Swift 3.0 and Xcode 8. The example for upload seems to work fine. I feel like this may be because UploadRequest inherits DataRequest but DownloadRequest inherits Request. I could possibly test this theory and send a PR if other eyes deem that the case.
Quick example:
_ = download(try! RxAlamofire.urlRequest(.get, stringURL), destination: destination)
    .flatMap { $0.rx.progress() }

Hi @digitaltoad ,
this should be solved now.


Update index.md

Fixing typo

Well, that came out of "left" field! 👀

Ah, @fatherofinvention would you mind updating the PR to reference the develop branch? :)
Otherwise, LGTM

Thanks! :)


else binding breaks value.bind for inputs and textareas

I'm submitting a bug report

Library Version:
aurelia-binding 1.3.0

Please tell us about your environment:

Operating System:
Windows 7

Node Version:
v8.6.0

NPM Version:
5.4.2

JSPM OR Webpack AND Version
webpack 2.5.0

Browser:
Chrome 61.0.3163.100

Language:
TypeScript 2.2 & JS

Current behavior:
If I use else on an <input> or <textarea> element, then the value.bind doesn't work.
gist.run here: https://gist.run/?id=e8bb52d515be789f1e4da4efeb3c079c
Expected/desired behavior:

What is the expected behavior?
I would expect that the else doesn't stop me from using value.bind on an element.

As a workaround I can use if.bind="test" and if.bind="!test" on respective elements, but this defeats the purpose of having else.

What is the motivation / use case for changing the behavior?
To make it consistent with the behaviour before else was available, i.e. the same as using if.bind.

Edit: updated incorrect gist url. This one shows the issue.

I'll have a look, whoever has control over this repo can assign to me.

@thinkOfaNumber your issue looks like a duplicate of aurelia/templating-resources#322 (that's where if and else actually are).
It was fixed but your repro uses a previous version.
Please try with<EMAIL_ADDRESS>If it still doesn't work I'll have a closer look.

Yep that seems to have done it, awesome, thanks! Sorry I thought we were on the latest version of everything. Time for an audit!


fix(package): update serverless to version 1.10.1

Closes #163
https://greenkeeper.io/

Closed in favour of #168


File > Revert File should be disabled for untitled schemes

Because that is a no-op.

//cc @isidorn for how I use context keys, I gave it a brief test and it seems to work fine

This looks good.
However I am not 100% sure @alexdima supports A or (B and C)
I believe some time ago for this to work it must have been decomposed into (A or B) and ( A or C)

The distribution is done in code in ContextKeyExpr.and, so this should work fine. This distribution was introduced via https://github.com/microsoft/vscode/commit/350a3c69f5bf38c58bfcf6ffe4da0faa7a8fd591

File > Revert File is still enabled for untitled schemes

It looks like the ResourceContextKey cannot really be used globally.

@bpasero yeah, that one depends on the explorer focus. I should have caught this earlier...


[BUG] - /requests/find - User is prompted to help when viewing their own request

Describe the bug
On Build1, a user can switch from PIN to CAV. When the same user enters a request for help, then switches to a CAV, clicking on the request for help they submitted will prompt them to help. Clicking on Help (username), the modal will just be dismissed.
To Reproduce
Steps to reproduce the behavior:

Create account
as a PIN, create a request for help
In the menu, choose "Switch to Volunteer"
Go to the map and select the request for help that was created in Step 2
Notice the pop up prompts the user to help himself.

Expected behavior
When viewing their own request, user should not be given the option to help himself. There could possibly be a button that would lead them to their Open Requests screen? Or a button that says "View Open Requests"
Screenshots

Desktop (please complete the following information):
Windows 10
Chrome
R4H version - Build 1
Additional context
Will be entering an issue regarding the option to switch between PIN and CAV being present, as it's not supposed to be for the MVP

ZenHub Information
This information is updated automatically. To modify it, please use ZenHub.

Created a request, then switched to Volunteer, and my Request was not present on the Map, or in the Open Request field.
Closing the ticket


frankie_edits_pickled_data

Description
Bypasses the need to load in the large json files by loading the Trace objects in from pickle files (tests/test_data/tr_before.pkl and tests/test_data/tr_after.pkl)
Supports #21
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Testing

[X] Testing is done automatically and codecov shows test coverage
[ ] This cannot be tested automatically

Documentation checklist

[ ] I have updated all documentation in the code where necessary.
[ ] I have checked spelling in all (new) comments and documentation.
[ ] I have added a note to RELEASE.md if relevant (new feature, breaking change, or notable bug fix).

Pickling the Trace object alone will probably not be sufficient because subsequent operations still depend on the original trace data:
======================================================================
ERROR: test_run_qc (tests.test_herg_qc.TestHergQC.test_run_qc)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/.../pcpostprocess/tests/test_herg_qc.py", line 57, in test_run_qc
    before = tr_before.get_trace_sweeps(sweeps)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/.../pcpostprocess/venv/lib/python3.12/site-packages/syncropatch_export/trace.py", line 169, in get_trace_sweeps
    with open(os.path.join(self.filepath, trace_file), 'r') as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'tests/test_data/13112023_MW2_FF/staircaseramp (2)_2kHz_15.01.07/Tracedata_000.dat'

A first step might be to remove unused traces from the test data. Currently, only the 180M of trace data highlighted below is used in tests:
[456M]  13112023_MW2_FF
├── [ 46M]  StaircaseInStaircaseramp (2)_2kHz_15.01.51
├── [ 46M]  StaircaseInStaircaseramp (2)_2kHz_15.12.17
├── [1.7K]  export_config.py
├── [ 91M]  staircaseramp (2)_2kHz_15.01.07    <-- trace before
├── [ 91M]  staircaseramp (2)_2kHz_15.06.53
├── [ 91M]  staircaseramp (2)_2kHz_15.11.33    <-- trace after
└── [ 91M]  staircaseramp (2)_2kHz_15.17.19


Create a dedicated landing page for onboarding new contributors to the Jenkins community.

What feature do you want to see added?
I propose the creation of a dedicated landing page to streamline the onboarding process for new contributors to Jenkins.
This page would:
Provide clear and concise information about contributing to Jenkins, including opportunities in documentation, coding, and community support.
Feature an intuitive layout and design, following Jenkins branding guidelines.
Include resources such as:
A step-by-step guide to start contributing.
Links to beginner-friendly tasks like "Good First Issues."
Contact points for community support (e.g., Gitter, mailing lists).
Encourage user interaction through CTAs like "Start Contributing" or "Join a Special Interest Group."
Upstream changes
The following existing resources and repositories may be relevant for this request:
Jenkins Branding Guidelines: https://www.jenkins.io/project/brand-guide/
This ensures the new landing page aligns with Jenkins' visual and content guidelines.
Jenkins Website GitHub Repository: https://github.com/jenkins-infra/jenkins.io
The source code for the Jenkins website where the landing page can be developed and integrated.
Jenkins Community Documentation: https://www.jenkins.io/doc/
Existing contributor guides and community documentation can be referenced or linked.

hello maam @hustler0109 Can i work on this issue really want to do it.Can you assignmed me this please!

the branding guidelines page is not  working it is showing error @hustler0109

HI @biru-codeastromer, I am not sure if we have decided to go ahead with such a feature, so please hold on until further discussions from key members of the Jenkins community before pursuing this any further.

@hustler0109 We already have a dedicated page for the intended purpose at https://www.jenkins.io/participate/.

Anyway this is not the correct repo to discuss such a matter.

@krisstern okay sir thanks for helping me out to know it is already sorted,i was finding a new issue to addressed...thanks for confirming!


better error message on bad vid.ly redirects

Coverage remained the same at 86.058% when pulling f3584aaae55767bdeab2e7b828d19c4b77ca8c37 on peterbe:better-error-message-on-bad-vidly-redirects into c6fbda063957b773eccfe75c7e08baad37c25d68 on mozilla:master.


Unable to use exclude_management_event_sources in event_selector

Found a bug? Maybe our Slack Community can help.

Describe the Bug
Unable to use exclude_management_event_sources in event_selector
Expected Behavior
We should be able to use something like
event_selector = [{
exclude_management_event_sources = ["kms.amazonaws.com","rdsdata.amazonaws.com"]
include_management_events        = true
read_write_type                  = "WriteOnly"
}
]
But looks like  exclude_management_event_sources is not implemented
Check https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudtrail#exclude_management_event_sources

@Hitesh-Agrawal i've done a PR to fix this (and its owrking in our env). I just need a review on this or however these are getting merged in.


Avoid a requirement for /dev/disk/by-uuid

This doesn't exist on systems which do not use udev (e.g. LinuxKit which uses
mdev).
Signed-off-by: Ian Campbell<EMAIL_ADDRESS>There seem to be no go bindings to libblkid, although we could cgo it, but blkid seems widespread enough to rely on (although blkid in busybox is unsufficient, it needs to be the full util-linux variant to support the options we need).

@ijc LGTM overall, but want to discuss more about https://github.com/kubernetes-incubator/cri-containerd/pull/292#discussion_r141134621 before merging. :)

Closing in favour of a fix on the LinuxKit side, although while hacking on that I did also come up with #297 which I think is worthwhile.

@ijc That code was added recently. Maybe the cadvisor code itself is making wrong assumption. Let me chat with the team and update there.

@ijc I talked with @yguo0905 who added this code in cadvisor recently.
I think we may not be making right assumption, I'll file an cadvisor issue for the mdev/udev thing.
However, it takes time to properly fix cadvisor and patch Kubernetes. Before that, we may have to do some hack in LinuxKit to work around it.

@ijc And I'm fine with this PR then. Let's reopen and merge it.

I've now (https://github.com/linuxkit/linuxkit/pull/2545) added support for by-uuid to LinuxKit. TBH I don't consider that a hack or a workaround, that interface is a standard part of the Linux API these days IMHO for mapping UUID->device, although iterating over it to provide the inverse device->UUID mapping doesn't seem ideal it should work
I think Alpine uses mdev by default (although it does have the eudev fork of udev available too). I'm not sure but I wouldn't be surprised if Gentoo supported mdev at least as an option (likewise other "from source" or "from scratch" type distros). Other than that I would expect mdev to mainly be found in the embedded world.


[ESC-1429, ESC-1163] Migrate to Play 3.0, Update sbt-auto-build

PR looks good to me but can you please address the PR bot comments as well 👍


Record and display optional Twitter handle for event

[x] Update new event form
[x] Add validation
[ ] Display in list

The Twitter handle is now being saved (optionally). Not using it anywhere yet.