Weave still exists ip conflict

weave version:
[root@c1v41 containers]# docker images |grep weave
cargo.caicloud.io/caicloud/weave-npc                                      git-c1023eaf184c    f6c2948496b4        2 weeks ago         58.08 MB
cargo.caicloudprivatetest.com/caicloud/weave-npc                          git-c1023eaf184c    f6c2948496b4        2 weeks ago         58.08 MB
cargo.caicloud.io/caicloud/weave-kube                                     git-c1023eaf184c    c20e4e8d6139        2 weeks ago         153.2 MB
cargo.caicloudprivatetest.com/caicloud/weave-kube                         git-c1023eaf184c    c20e4e8d6139        2 weeks ago         153.2

Note:
caicloud weave version 'git-c1023eaf184c' is built from source code, and different from upstream  version 'git-c1023eaf184c' (https://hub.docker.com/r/weaveworks/weave-kube/tags/). In order to run weave-net on a cluster which owns more than 30 nodes, so we have made changes in two places:

Add --conn-limit=0 to weaver in prog/weave-kube/launch.sh

exec /home/weave/weaver $EXTRA_ARGS --port=6783 $BRIDGE_OPTIONS \
     --http-addr=$HTTP_ADDR --status-addr=$STATUS_ADDR --docker-api='' --no-dns \
     --ipalloc-range=$IPALLOC_RANGE $NICKNAME_ARG \
     --ipalloc-init $IPALLOC_INIT \
     --conn-limit=0 \
     "$@" \
     $KUBE_PEERS

Change emptyDir to hostPath in weave-daemonset.yaml

volumes:
        - name: weavedb
#          emptyDir: {}
          hostPath:
            path: /var/lib/weave/weavedb

After running several days, we got ip conflict as follows:
[root@c1v41 containers]# kubectl get pods --all-namespaces -o wide | awk '{ print $7 }' | sort | uniq -D | uniq | grep -v 192\.168\.16\.
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
[root@c1v41 containers]# kubectl get pods --all-namespaces -o wide | grep <IP_ADDRESS>
kube-system    monitoring-server-g9lsy                                     1/1       Running            5          16d       <IP_ADDRESS>   kube-node-30
test           nginx-701339712-4h28c                                       1/1       Running            0          1d        <IP_ADDRESS>   kube-node-31
[root@c1v41 containers]# kubectl get pods --all-namespaces -o wide | grep <IP_ADDRESS>
kube-system    kube-push-v0.0.1-z8ljg                                      1/1       Running            7          16d       <IP_ADDRESS>   kube-node-30
test           nginx-701339712-7fbrp                                       1/1       Running            0          1d        <IP_ADDRESS>   kube-node-31

os version:
[root@c1v41 containers]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

[root@c1v41 containers]# uname -a
Linux c1v41 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

kubernetes version（base version is 1.5.1）:
[root@c1v41 containers]# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+v0.12.0", GitCommit:"6165e9be6b30423f0aa28f311317fa1a3ff471c5", GitTreeState:"clean", BuildDate:"2017-02-06T04:13:22Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1+v0.12.0", GitCommit:"6165e9be6b30423f0aa28f311317fa1a3ff471c5", GitTreeState:"clean", BuildDate:"2017-02-06T04:13:22Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}

I found some ERRO in container log:
{"log":"ERRO: 2017/02/09 04:11:46.096591 Captured frame from MAC (66:e7:bd:e1:7e:90) to (d6:e0:51:9c:56:1d) associated with another peer 52:a5:4d:b1:ce:ec(c5v181)\n","stream":"stderr","time":"2017-02-09T04:11:46.097186576Z"}
...
{"log":"ERRO: 2017/02/09 04:41:46.123563 Captured frame from MAC (da:b0:b9:91:f4:4e) to (d6:e0:51:9c:56:1d) associated with another peer 52:da:60:70:1b:1b(c3v132)\n","stream":"stderr","time":"2017-02-09T04:41:46.124424719Z"}
...
{"log":"ERRO: 2017/02/07 10:22:20.879742 Captured frame from MAC (66:fd:64:f8:f9:a4) to (be:37:93:4a:5c:23) associated with another peer 1a:20:98:cd:d8:0e(c1v53)\n","stream":"stderr","time":"2017-02-07T10:22:20.880842891Z"}

@keontang can you send us the whole log from weave-npc please?  It has every pod coming and going and all the states, so we can diagnose.

In the end, all the weave pod went to  ipset error:
{"log":"INFO: 2017/02/09 11:08:15.939601 adding entry <IP_ADDRESS> to weave-iuZcey(5DeXbzgRFs8Szo]\u003c@p\n","stream":"stderr","time":"2017-02-09T11:08:15.939673524Z"}
{"log":"FATA: 2017/02/09 11:08:15.942743 add pod: ipset [add weave-iuZcey(5DeXbzgRFs8Szo]\u003c@p <IP_ADDRESS>] failed: ipset v6.29: Element cannot be added to the set: it's already added\n","stream":"stderr","time":"2017-02-09T11:08:15.942837631Z"}
{"log":": exit status 1\n","stream":"stderr","time":"2017-02-09T11:08:15.942863673Z"}

weave version:
cargo.caicloudprivatetest.com/caicloud/weave-npc                          git-c1023eaf184c    f6c2948496b4        2 weeks ago         58.08 MB
cargo.caicloud.io/caicloud/weave-kube                                     git-c1023eaf184c    c20e4e8d6139        2 weeks ago         153.2

weave-npc.log.txt
weave.log.txt

Thanks for the logs. Two pods have the same IP address, which is fatal for any network.
In the weave-npc file we see the pods with the same address are:
fluentd-elasticsearch-v0.0.1-rgz1p on node kube-node-46, started at 2017-02-09T10:14:36Z
monitoring-server-g9lsy on node kube-node-30, started at 2017-02-06T09:09:26Z
The fluentd one started most recently; can you get the logs from the weave container on that node at that time?
Also, could you run curl <IP_ADDRESS>:6784/status/ipam on the nodes kube-node-30 and kube-node-46, please? (host IPs <IP_ADDRESS> and <IP_ADDRESS>)

[root@c7v204 ~]# curl <IP_ADDRESS>:6784/status/ipam
52:04:05:93:cd:7c(c7v204)                   65 IPs (01.6% of total) (5 active)
e6:8a:74:f6:b7:76(c8v219)                   39 IPs (01.0% of total)
a6:5a:bc:63:b2:6c(c7v205)                   29 IPs (00.7% of total)
fe:c0:ce:e7:9f:66(c3v131)                   48 IPs (01.2% of total)
a6:ed:76:88:26:ed(c3v129)                   57 IPs (01.4% of total)
3a:32:fe:1f:1a:9d(c7v203)                   60 IPs (01.5% of total)
6e:0e:37:1e:92:e5(c1v42)                    12 IPs (00.3% of total)
e2:82:11:86:76:21(c6v198)                   36 IPs (00.9% of total)
ae:ff:2f:68:8e:f6(c2v74)                    24 IPs (00.6% of total)
02:54:7c:69:aa:e2(c2v76)                    30 IPs (00.7% of total)
0e:38:e4:22:76:a1(c1v43)                    34 IPs (00.8% of total)
0e:f0:e5:56:d5:28(c3v133)                   49 IPs (01.2% of total)
5a:a1:d5:b2:89:68(c3v127)                   72 IPs (01.8% of total)
a2:32:a6:af:75:f9(c4v149)                   53 IPs (01.3% of total)
f2:88:f6:10:7c:7c(c3v109)                   62 IPs (01.5% of total)
d2:34:2b:c5:5d:54(c2v75)                    36 IPs (00.9% of total)
3a:63:b5:d4:18:00(c3v110)                   60 IPs (01.5% of total)
c6:35:ef:bb:7d:f6(c1v56)                    48 IPs (01.2% of total)
46:5f:f3:ac:a3:0e(c7v201)                   55 IPs (01.3% of total)
5e:e4:03:38:33:57(c3v128)                   65 IPs (01.6% of total)
26:16:84:40:8b:e8(c8v220)                   60 IPs (01.5% of total)
b2:33:44:9d:ef:d5(c4v141)                   59 IPs (01.4% of total)
06:dd:38:b8:25:99(c2v81)                    39 IPs (01.0% of total)
46:5b:a0:d9:a5:da(c1v45)                    36 IPs (00.9% of total)
be:2a:c1:9c:d7:7a(c2v86)                    36 IPs (00.9% of total)
7e:9a:3f:4b:a7:15(c8v221)                   62 IPs (01.5% of total)
82:71:9b:b3:12:76(c1v52)                    21 IPs (00.5% of total)
12:fb:e4:9f:c9:87(c1v46)                    28 IPs (00.7% of total)
3e:00:56:79:ab:4a(c2v89)                    28 IPs (00.7% of total)
ba:bf:70:15:8a:9e(c7v202)                   64 IPs (01.6% of total)
ca:69:1b:c5:ab:f7(c3v106)                   55 IPs (01.3% of total)
d6:9c:11:47:7e:98(c7v209)                   59 IPs (01.4% of total)
a6:6d:a6:7c:2c:1e(c4v139)                   50 IPs (01.2% of total)
62:9b:5a:d7:03:45(c3v107)                   60 IPs (01.5% of total)
0a:0a:0a:01:9f:e0(c2v83)                    36 IPs (00.9% of total)
6a:f6:97:f9:20:f4(c4v147)                   66 IPs (01.6% of total)
b2:75:23:28:02:c6(c2v78)                    35 IPs (00.9% of total)
de:46:05:9f:ca:5f(c8v225)                   65 IPs (01.6% of total)
02:0c:da:ac:62:ef(c5v177)                   62 IPs (01.5% of total)
ee:44:3e:da:b6:a7(c8v218)                   59 IPs (01.4% of total)
a6:2c:39:fa:3a:aa(c7v206)                   59 IPs (01.4% of total)
42:6c:18:84:ef:a9(c5v176)                   63 IPs (01.5% of total)
4e:6e:d8:96:00:6a(c3v111)                   59 IPs (01.4% of total)
5e:c5:6e:fb:89:c6(c8v217)                   56 IPs (01.4% of total)
62:95:eb:1e:dd:1b(c5v180)                   57 IPs (01.4% of total)
16:60:8c:99:04:9b(c6v197)                   28 IPs (00.7% of total)
4e:d8:a1:5f:60:64(c3v105)                   36 IPs (00.9% of total)
62:8b:89:36:07:ae(c2v79)                    36 IPs (00.9% of total)
0a:89:b6:08:45:96(c2v82)                    30 IPs (00.7% of total)
06:1b:4d:f9:f5:83(c4v150)                   62 IPs (01.5% of total)
12:40:af:39:5e:09(c3v126)                   44 IPs (01.1% of total)
8e:0a:e2:b1:b6:27(c4v140)                   60 IPs (01.5% of total)
36:7e:4e:4a:bf:e7(c3v108)                   51 IPs (01.2% of total)
be:6a:86:70:d8:df(c1v41)                    20 IPs (00.5% of total)
82:79:4a:87:04:ef(c6v196)                   36 IPs (00.9% of total)
52:da:60:70:1b:1b(c3v132)                   58 IPs (01.4% of total)
7a:f9:aa:29:ff:61(c1v54)                    36 IPs (00.9% of total)
6a:44:3b:6e:0c:c3(c4v137)                   55 IPs (01.3% of total)
5e:ca:94:72:2d:94(c2v88)                    29 IPs (00.7% of total)
06:2a:6c:b9:8f:c9(c3v130)                   24 IPs (00.6% of total)
26:d1:42:2b:cb:23(c1v44)                    28 IPs (00.7% of total)
ae:b3:41:33:03:30(c4v142)                   54 IPs (01.3% of total)
1a:20:98:cd:d8:0e(c1v53)                    36 IPs (00.9% of total)
a6:b2:d3:eb:94:64(c6v194)                   29 IPs (00.7% of total)
5a:f3:52:dc:20:f8(c4v145)                   49 IPs (01.2% of total)
72:6b:fe:83:28:d9(c8v224)                   66 IPs (01.6% of total)
f6:98:a3:ff:5f:4a(c1v50)                    32 IPs (00.8% of total)
0a:dd:ed:0c:68:b9(c4v148)                   56 IPs (01.4% of total)
32:94:da:84:f8:0e(c4v138)                   60 IPs (01.5% of total)
c6:20:85:96:cc:df(c6v195)                   58 IPs (01.4% of total)
9e:e2:3e:4c:ee:6f(c2v85)                    36 IPs (00.9% of total)
3e:4c:ba:fe:82:ff(c5v182)                   52 IPs (01.3% of total)
7e:66:50:34:3d:3b(c1v51)                    23 IPs (00.6% of total)
06:15:97:42:65:3c(c1v47)                    48 IPs (01.2% of total)
d2:35:26:4e:e6:ed(c4v146)                   60 IPs (01.5% of total)
26:d2:84:c9:67:87(c4v144)                   50 IPs (01.2% of total)
ee:72:7f:62:df:30(c5v179)                   51 IPs (01.2% of total)
fa:e7:da:9f:11:a3(c1v55)                    23 IPs (00.6% of total)
9e:2c:9f:09:85:78(c2v87)                    28 IPs (00.7% of total)
ce:45:25:3c:be:96(c6v193)                   64 IPs (01.6% of total)
e6:77:d3:30:a0:00(c2v77)                    21 IPs (00.5% of total)
8e:b7:57:f4:13:38(c8v222)                   68 IPs (01.7% of total)
22:1c:82:fe:97:ed(c2v73)                    12 IPs (00.3% of total)
52:a5:4d:b1:ce:ec(c5v181)                   57 IPs (01.4% of total)
1a:87:0c:c9:86:de(c2v84)                    20 IPs (00.5% of total)
52:41:bd:2b:6f:1f(c7v208)                   37 IPs (00.9% of total)
6a:10:55:4a:19:c9(c1v48)                    36 IPs (00.9% of total)
66:f2:67:42:25:63(c6v192)                   26 IPs (00.6% of total)
86:6d:33:15:1c:ef(c5v178)                   45 IPs (01.1% of total)
fa:23:d6:0f:41:75(c4v151)                   58 IPs (01.4% of total)

[root@c7v205 ~]# curl <IP_ADDRESS>:6784/status/ipam
a6:5a:bc:63:b2:6c(c7v205)                   29 IPs (00.7% of total) (7 active)
26:d2:84:c9:67:87(c4v144)                   50 IPs (01.2% of total)
3e:00:56:79:ab:4a(c2v89)                    28 IPs (00.7% of total)
c6:35:ef:bb:7d:f6(c1v56)                    48 IPs (01.2% of total)
5a:f3:52:dc:20:f8(c4v145)                   49 IPs (01.2% of total)
1a:87:0c:c9:86:de(c2v84)                    20 IPs (00.5% of total)
5e:e4:03:38:33:57(c3v128)                   65 IPs (01.6% of total)
26:d1:42:2b:cb:23(c1v44)                    28 IPs (00.7% of total)
62:95:eb:1e:dd:1b(c5v180)                   57 IPs (01.4% of total)
de:46:05:9f:ca:5f(c8v225)                   65 IPs (01.6% of total)
0e:f0:e5:56:d5:28(c3v133)                   49 IPs (01.2% of total)
0a:dd:ed:0c:68:b9(c4v148)                   56 IPs (01.4% of total)
12:40:af:39:5e:09(c3v126)                   44 IPs (01.1% of total)
6e:0e:37:1e:92:e5(c1v42)                    12 IPs (00.3% of total)
8e:b7:57:f4:13:38(c8v222)                   68 IPs (01.7% of total)
12:fb:e4:9f:c9:87(c1v46)                    28 IPs (00.7% of total)
a6:b2:d3:eb:94:64(c6v194)                   29 IPs (00.7% of total)
52:04:05:93:cd:7c(c7v204)                   65 IPs (01.6% of total)
ee:44:3e:da:b6:a7(c8v218)                   59 IPs (01.4% of total)
46:5f:f3:ac:a3:0e(c7v201)                   55 IPs (01.3% of total)
52:a5:4d:b1:ce:ec(c5v181)                   57 IPs (01.4% of total)
e2:82:11:86:76:21(c6v198)                   36 IPs (00.9% of total)
5e:c5:6e:fb:89:c6(c8v217)                   56 IPs (01.4% of total)
ca:69:1b:c5:ab:f7(c3v106)                   55 IPs (01.3% of total)
6a:10:55:4a:19:c9(c1v48)                    36 IPs (00.9% of total)
82:71:9b:b3:12:76(c1v52)                    21 IPs (00.5% of total)
1a:20:98:cd:d8:0e(c1v53)                    36 IPs (00.9% of total)
d2:34:2b:c5:5d:54(c2v75)                    36 IPs (00.9% of total)
fa:e7:da:9f:11:a3(c1v55)                    23 IPs (00.6% of total)
fa:23:d6:0f:41:75(c4v151)                   58 IPs (01.4% of total)
0a:89:b6:08:45:96(c2v82)                    30 IPs (00.7% of total)
02:54:7c:69:aa:e2(c2v76)                    30 IPs (00.7% of total)
06:dd:38:b8:25:99(c2v81)                    39 IPs (01.0% of total)
c6:20:85:96:cc:df(c6v195)                   58 IPs (01.4% of total)
6a:44:3b:6e:0c:c3(c4v137)                   55 IPs (01.3% of total)
7e:66:50:34:3d:3b(c1v51)                    23 IPs (00.6% of total)
a6:2c:39:fa:3a:aa(c7v206)                   59 IPs (01.4% of total)
a6:ed:76:88:26:ed(c3v129)                   57 IPs (01.4% of total)
06:2a:6c:b9:8f:c9(c3v130)                   24 IPs (00.6% of total)
e6:77:d3:30:a0:00(c2v77)                    21 IPs (00.5% of total)
9e:2c:9f:09:85:78(c2v87)                    28 IPs (00.7% of total)
ce:45:25:3c:be:96(c6v193)                   64 IPs (01.6% of total)
4e:6e:d8:96:00:6a(c3v111)                   59 IPs (01.4% of total)
d6:9c:11:47:7e:98(c7v209)                   59 IPs (01.4% of total)
06:1b:4d:f9:f5:83(c4v150)                   62 IPs (01.5% of total)
d2:35:26:4e:e6:ed(c4v146)                   60 IPs (01.5% of total)
3a:32:fe:1f:1a:9d(c7v203)                   60 IPs (01.5% of total)
62:8b:89:36:07:ae(c2v79)                    36 IPs (00.9% of total)
6a:f6:97:f9:20:f4(c4v147)                   66 IPs (01.6% of total)
ba:bf:70:15:8a:9e(c7v202)                   64 IPs (01.6% of total)
66:f2:67:42:25:63(c6v192)                   26 IPs (00.6% of total)
3a:63:b5:d4:18:00(c3v110)                   60 IPs (01.5% of total)
a2:32:a6:af:75:f9(c4v149)                   53 IPs (01.3% of total)
82:79:4a:87:04:ef(c6v196)                   36 IPs (00.9% of total)
a6:6d:a6:7c:2c:1e(c4v139)                   50 IPs (01.2% of total)
0e:38:e4:22:76:a1(c1v43)                    34 IPs (00.8% of total)
9e:e2:3e:4c:ee:6f(c2v85)                    36 IPs (00.9% of total)
4e:d8:a1:5f:60:64(c3v105)                   36 IPs (00.9% of total)
52:da:60:70:1b:1b(c3v132)                   58 IPs (01.4% of total)
7a:f9:aa:29:ff:61(c1v54)                    36 IPs (00.9% of total)
be:6a:86:70:d8:df(c1v41)                    20 IPs (00.5% of total)
8e:0a:e2:b1:b6:27(c4v140)                   60 IPs (01.5% of total)
52:41:bd:2b:6f:1f(c7v208)                   37 IPs (00.9% of total)
06:15:97:42:65:3c(c1v47)                    48 IPs (01.2% of total)
46:5b:a0:d9:a5:da(c1v45)                    36 IPs (00.9% of total)
7e:9a:3f:4b:a7:15(c8v221)                   62 IPs (01.5% of total)
e6:8a:74:f6:b7:76(c8v219)                   39 IPs (01.0% of total)
26:16:84:40:8b:e8(c8v220)                   60 IPs (01.5% of total)
5a:a1:d5:b2:89:68(c3v127)                   72 IPs (01.8% of total)
72:6b:fe:83:28:d9(c8v224)                   66 IPs (01.6% of total)
f2:88:f6:10:7c:7c(c3v109)                   62 IPs (01.5% of total)
5e:ca:94:72:2d:94(c2v88)                    29 IPs (00.7% of total)
b2:75:23:28:02:c6(c2v78)                    35 IPs (00.9% of total)
36:7e:4e:4a:bf:e7(c3v108)                   51 IPs (01.2% of total)
16:60:8c:99:04:9b(c6v197)                   28 IPs (00.7% of total)
b2:33:44:9d:ef:d5(c4v141)                   59 IPs (01.4% of total)
3e:4c:ba:fe:82:ff(c5v182)                   52 IPs (01.3% of total)
22:1c:82:fe:97:ed(c2v73)                    12 IPs (00.3% of total)
be:2a:c1:9c:d7:7a(c2v86)                    36 IPs (00.9% of total)
02:0c:da:ac:62:ef(c5v177)                   62 IPs (01.5% of total)
32:94:da:84:f8:0e(c4v138)                   60 IPs (01.5% of total)
42:6c:18:84:ef:a9(c5v176)                   63 IPs (01.5% of total)
0a:0a:0a:01:9f:e0(c2v83)                    36 IPs (00.9% of total)
86:6d:33:15:1c:ef(c5v178)                   45 IPs (01.1% of total)
fe:c0:ce:e7:9f:66(c3v131)                   48 IPs (01.2% of total)
ae:ff:2f:68:8e:f6(c2v74)                    24 IPs (00.6% of total)
ee:72:7f:62:df:30(c5v179)                   51 IPs (01.2% of total)
f6:98:a3:ff:5f:4a(c1v50)                    32 IPs (00.8% of total)
ae:b3:41:33:03:30(c4v142)                   54 IPs (01.3% of total)
62:9b:5a:d7:03:45(c3v107)                   60 IPs (01.5% of total)

kube-node-46.weave-npc.log.txt
kube-node-46.weave-net.log.txt

I apologise, I appear to have misread last time; the correct version is:
In the weave-npc file we see the pods with the same address are:
fluentd-elasticsearch-v0.0.1-rgz1p on node kube-node-31, started at 2017-02-09T10:14:36Z
monitoring-server-g9lsy on node kube-node-30, started at 2017-02-06T09:09:26Z
I should have asked for 31 not 46.
If you do have the logs from kube-node-31 at 2017-02-09T10:14:36Z, that would be of interest.
Also, weave status ipam is a summary; I should have requested the full detail via weave report - note this is very detailed indeed.  But if there is an issue via the persistence mechanism it should show up in any discrepancy between nodes 30 and 31, so please could you run weave report on those and upload the output.

The environment is no longer there. Sorry.

@keontang If you hit the same problem again, please re-open the issue. Thanks.


Compressed image files

conscheme image files contain bytecode and an inefficiently encoded table of constants. When compressing this file with gzip the file size is reduced to one third. We need to keep one of these image files in the git repository so that people don't need another Scheme installed to compile conscheme, and compression would make that more practical.
The deserializer vm/deserialize.go needs to recognize gzip'd files and open them with a Decompressor from compress/gzip. A new primitive Scheme procedure must be implemented: open-gzip-output-port. It takes two parameter: a binary output port and a compression level given as an integer. It uses NewWriterLevel from compress/gzip to create a new output port object using the Writer from the old output port.

This wouldn't do anything useful since git already compresses files.


Token-viewer: missing "try again" button on partial error

The overall token-display succeeds but there should be a Try-Again button for the multimedia like there is for other failures.

Fixed by #57.


iOS impossible to set location permission to always

I followed the manual to every tiny bit, but all I get is use Allow When Use App permission.
What am I doing wrong? Any ideas?
Thanks!

I have the same problem

https://github.com/zoontek/react-native-permissions/issues/521#issuecomment-777629554
But, on first load it do not ask for permission always when go to home screen (background) - only when app is killed and then to background.


[Enhancement] Prettier JSON formatting

Insomnia Version: 6.6.2
Operating System: Windows 10

Details
Would be nice if something like prettier can be used for JSON pretty print. Some heuristics like line length can make the JSON printing a lot more nicer IMO.
Compare the present pretty print with the one produced by prettier:

present
prettier

This is a tricky one because the formatter needs to support Nunjucks tags.
Insomnia currently uses a custom formatter which treats Nunjucks tags, variables, and comments as literal values. https://github.com/getinsomnia/insomnia/blob/57bf6c2df28c34c57f2b5626e1b9fc07d59b6005/packages/insomnia-prettify/src/json.js
Something like PrettierJS would fail to parse the following JSON:
{
  "foo": {{ myVar }}
}

We could add support for more compact formatting to the existing formatting code but it would require adding some fairly complex functionality to allow the tokenization loop to look ahead to see how long an array or object is going to be before writing the whitespace characters.


fix(blockGasLimit): Adding an additional limit to lanes for gas limits

Closed in favor of other PR


read_umi_tools leads to full RAM

Hi,
I have 128 GB RAM and it runs full if I try to use read_umi_tools() on a count matrix created by:
umi_tools count --extract-umi-method=tag --umi-tag UB  --per-gene --gene-tag=XT --assigned-status-tag=XS --per-cell --cell-tag CB -I <file> -S <file>_counts.tsv.gz

resulting in a condensed matrix <file.tsv.gz> with 24816054 entrys:
gene	cell	count
ENSMUSG00000000001	AAACCTGAGCTGCAAG	1
ENSMUSG00000000001	AAACCTGAGTAGGTGC	1
ENSMUSG00000000001	AAACGGGAGCACAGGT	1
ENSMUSG00000000001	AAACGGGGTCTAGTCA	1
ENSMUSG00000000001	AAACGGGGTGTGGTTT	2
ENSMUSG00000000001	AAAGATGCATCCTAGA	1
ENSMUSG00000000001	AAAGATGGTCTACCTC	1
ENSMUSG00000000001	AAAGCAAGTTCAGACT	1
ENSMUSG00000000001	AAAGTAGCAGTAAGCG	1
ENSMUSG00000000001	AAAGTAGCATTATCTC	3
ENSMUSG00000000001	AAAGTAGGTAAATACG	2
ENSMUSG00000000001	AAATGCCCAAGTTAAG	1
ENSMUSG00000000001	AAATGCCTCCGGGTGT	1
ENSMUSG00000000001	AAATGCCTCTTACCGC	1
ENSMUSG00000000001	AACACGTCAATCGAAA	1
ENSMUSG00000000001	AACACGTCAATGACCT	1
ENSMUSG00000000001	AACCATGGTTATCCGA	1
.......

If I try to run read_umi_tools(<file.tsv.gz>), my RAM climbs up to 128 GB and the command does not finish.
Best regards,
Benedikt

Moved to anndata since that's where read_umi_tools is defined.
Yeah, that function looks pretty inefficient. Also does not seem to have a test...
Could you try this:
import pandas as pd
import anndata as ad
from scipy import sparse

def read_umi_tools(filename, dtype=None) -> ad.AnnData:
    """\
    Read a gzipped condensed count matrix from umi_tools.

    Parameters
    ----------
    filename
        File name to read from.
    """
    table = pd.read_table(
        filename,
        dtype={"gene": "category", "cell": "category"}
    )

    X = sparse.csr_matrix(
        (table["count"], (table["cell"].cat.codes, table["gene"].cat.codes))
    )
    obs = pd.DataFrame(index=table["cell"].cat.categories)
    var = pd.DataFrame(index=table["gene"].cat.categories)

    if dtype is None:
        dtype = X.dtype

    return ad.AnnData(X=X, obs=obs, var=var, dtype=dtype)

I think it should be much more efficient.
How many cells are you expecting?

Thank you very much,

Great, glad that worked out.
Do you happen to know if UMI-Tools files will always have gene, cell, and count as the column names?

According to this  tutorial is seems like it, but I am rather new to this field.

Yeah, doesn't look like it would happen any other way AFAICT.
Thanks for the info and bug report!


New regex generator

fixes #133
the new generator works by creating a random ascii string and trying to compile it. if it compiles successfully, its emitted.
this works but has some drawbacks:

this can be very slow
if 25 strings fail to compile in a row, the generator raises
it does not check unicode regexes

in my testing, a spectest with one regex to generate took 300-700ms, and i have not seen it actually generate 25 invalid strings in a row
an alternative implementation which knew regex syntax would be faster and not have the filter drawback, but it would also be significantly more complex and would need to be updated to match erlang's :re in case it ever changed

Version 0.12.1 has been released which includes this PR! :muscle:


[Feature] : Need empty project scaffolding

Feature description
I need an empty project scaffolding on top of which I can implement my own device, without use examples/..app../..platform.. folder structure. Or please give documentation about use connectedhomeip as static/shared library and related headers. Also, please consider using different build system than Ninja (as Cmake for example).
Platform
all
Platform Version(s)
No response
Anything else?
No response

fyi: there are several CMake-based platforms in Matter that integrate Matter's build system (based on GN) using CMake's ExternalProject feature. You may take a look at config/common/cmake directory that contains CMake helper functions for exactly that.

Do you have any exmple?

mbed, nrfconnect, telinkandopeniotplatforms use it. Search formatter_build(` in the repository and you will find the usage examples.


feat: dynamic branch on init if using default main which does not exist

This PR adds the ability for the user to interactively select the branch they want to use if they are using the default main and that does not actually exist (during xata init)
If there are no branches for a database an error will be returned (not sure how one would get to this state).
Closes #1095

I'll review the code this afternoon, @kostasb can you give a functional review since you opened the issue?

Functionally works well!

Merge it whenever you want. Thanks for the changes 😉


Create index.d.ts

Create an index.d.ts to help developers using Typescript.
There is a typedef at @types/leaflet-fullscreen but that is minimal. This version is complete and having it in the repo puts control back in the hands of the original devs.

I rolled up all of the PRs into this one repo - since there does not seem to be very much maintenance activity on this repo  :

created index.d.ts
changed icon to svg and added to CSS (as per #102  and #103 )
added #100


compilation terminated

when I am using the following command , I am getting compilation terminated
swift iverilog_build.swift

parse.cc:465:10: fatal error: parse.hh: No such file or directory
465 | #include "parse.hh"
|          ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:245: parse.o] Error 1

Compiling IcarusVerilog has always been a bit hit or miss. Is there a reason you're not using Ubuntu 20.04?


autonomous mavic

The issue is with the method ComputeMonoplotting(). It aims to compute the world coordinates from the image coordinates of the fire. It gets the image coordinates of the fire and return its world coordinates. If its works in some situations, the robot goes sometimes away the fire instead of going in, or not close enough; due to wrong given world coordinates. The method is based on http://sar.kangwon.ac.kr/etc/rs_note/rsnote/cp9/cp9-6.htm taken from https://stackoverflow.com/questions/68195056/finding-the-real-world-coordinates-of-an-object-from-a-camera

Thank you, the code looks better. What about my original comments:

I believe we should not remove the spot robot from the simulation.
Also, there are only two drones, can't we have 4?

Thank you. I believe we should improve this simulation with the following:

[ ] Don't display the camera overlays.
[ ] Fix the depth fighting problem with the Mavic platforms (move them slightly higher).
[ ] Fix the 'D' key control for the Spot robot.
[ ] Restart random fires repeatedly so that we can see the Mavic robots in action more than once.
[ ] Make a small movie showing the Mavic robots fighting fires.

Thank you. I believe we should improve this simulation with the following:
* [x]  Don't display the camera overlays.

* [x]  Fix the depth fighting problem with the Mavic platforms (move them slightly higher).

* [x]  Fix the 'D' key control for the Spot robot.

* [x]  Restart random fires repeatedly so that we can see the Mavic robots in action more than once.

* [x]  Make a small movie showing the Mavic robots fighting fires.

I fixed the different issues and added a video to the Readme


Service Worker Issue

Plugin complains with
Uncaught DataCloneError: Failed to execute 'postMessage' on 'Worker': An object could not be cloned. @sass.js:151

if included file is empty

Thank you for the report :+1: Fixed.

:)


ESLint should use "--stdin" for temporary files

I recently started using ESLint on a project I work on. To manage the first influx of errors ESLint throws, I wanted to have an integration in neovim (running HEAD) that makes it easy for me to comb through all files and fix the error.
 As soon as any other event except BufEnter or BufWritePost ist triggered I get this in the location window:
some_file_name_that_exists.js|| File ignored by default.  Use a negated ignore pattern (like "--ignore-pattern '!<relative/path/to/filename>'") to override.

After this, location window and the red crosses in the main editor window are gone. :w the file fixes the problem until the next time I trigger an event that is not save or open.
It works flawlessly if I configure it like this:
autocmd BufWritePost,BufEnter * Neomake

NeomakeInfo
Neomake debug information
Async support: 1
Current filetype: javascript.jsx
Windows: 0
[shell, shellcmdflag, shellslash]:['/bin/bash', '-c', 0]
Enabled makers
For the current filetype ("javascript.jsx", used with :Neomake):

eslint

args: ['-f', 'compact']
auto_enabled: 0
cwd: '%:p:h'
errorformat: '%E%f: line %l, col %c, Error - %m,%W%f: line %l, col %c, Warning - %m,%-G,%-G%*\d problems%#'
exe: '/private/path/node_modules/.bin/eslint'
NOTE: you can define g:neomake_javascript_jsx_enabled_makers to configure it (or b:neomake_javascript_jsx_enabled_makers).

Default maker settings:

output_stream: 'both'
remove_invalid_entries: 0
buffer_output: 1

For the project (used with :Neomake!):
None.
NOTE: you can define g:neomake_enabled_makers to configure it.
Settings
New-style (dict, overrides old-style)
g:neomake: {
  'automake': {
    'ignore_filetypes': ['startify'],
    'events': {
      'BufWritePost': {
        'delay': 0,
      },
      'InsertLeave': {},
      'BufWinEnter': {},
      'TextChanged': {},
    },
  },
  'automake_delay': 500,
}
b:neomake: unset

Old-style
g:neomake_javascript_enabled_makers = ['eslint']
g:neomake_javascript_eslint_exe = '/private/path/node_modules/.bin/eslint'
g:neomake_javascript_jsx_enabled_makers = ['eslint']
g:neomake_javascript_jsx_eslint_exe = '/private/path/node_modules/.bin/eslint'
g:neomake_place_signs = 1
g:neomake_ruby_enabled_makers = ['mri', 'rubocop']

makeprg=make
:version
NVIM v0.2.3-688-g9e9e4431c
Build type: Release
LuaJIT 2.0.5
Compilation: /usr/local/Homebrew/Library/Homebrew/shims/super/clang -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -I/tmp/neovim-20180212-5190-14wjv43/build/config -I/tmp/neovim-20180212-5190-14wjv43/src -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/opt/gettext/include -I/usr/include -I/tmp/neovim-20180212-5190-14wjv43/build/src/nvim/auto -I/tmp/neovim-20180212-5190-14wjv43/build/include
Compiled by<EMAIL_ADDRESS>
Features: +acl +iconv +jemalloc +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/Cellar/neovim/HEAD-9e9e443_1/share/nvim"

Run :checkhealth for more info

:messages
Copied Neomake info to clipboard ("+).

Looks like an issue with temporary files - sadly logs are missing.
I think we could use "--ignore-pattern '!$tempfilename" to fix this.

better: --stdin and --stdin-filename (hopefully skipping the ignoring then).

Adding the requested log file @blueyed
neomake.log

Is there way to fix it right now?

@polodrawsshowing
As said above the maker should use the said options, i.e. its args need to get adjusted.
See other makers using --stdin or similar already.


Restructure Java staging clients

The new structure will make the CI depend on the local proto and grpc clients instead of depending on Maven.
The new structure looks like:

root

generated

java

settings.gradle
gradle wrapper
build.gradle
gapic-* clients
proto-* clients

build.gradle

grpc-* clients

build.gradle

In the root pom, the dependency configuration looks like this: (Use error reporting as an example)
project(':generated:java:gapic-google-cloud-error-reporting-v1beta1') {
  dependencies {
    compile project(':generated:java:proto-google-cloud-error-reporting-v1beta1')
    testCompile project(':generated:java:grpc-google-cloud-error-reporting-v1beta1')
  }
}

Can the gradle specific stuff live in generated/java and not in the shared area?

@lukesneeringer  I have moved the java stuff under generated/java and created an issue to move PHP stuff under generated/php. PTAL.

@shinfan Thanks. :-)

@garrettjonesgoogle PTAL

@garrettjonesgoogle PTAL

LGTM after tests pass


Cannot Update my AndroidManifest File on Export

Tested versions
Godot 4.2.1
System information
Windows 11
Issue description
GooglePlay ask me to update my Android Manifest file adding this line:
com.google.android.gms.permission.AD_ID but cannot getting updated. I have made the change in editor and also directly on Manifest, but when I reupload to GoogleStore it saids it doesn't have the permission. Help?

Steps to reproduce
Add Android to project, export AAB File and try to upload to Google Store.
Minimal reproduction project (MRP)

Hi @cutydina the above steps work for me (4.2.1/Windows 11) - and I can see the permission inside the exported AAB's AndroidManifest.
Is your screenshot of AndroidManifest from the project, or from the AAB exported file?


Cannot center after rewrite

Hi, thanks for the plugin it's really awesome!
I was migrating my config to the new one, and i love my commands centered, i've read the docs and replicated the half page up/down, but i can't make it work.
this is my current config:
{
    "declancm/cinnamon.nvim",
    config = function()
      require("cinnamon").setup {
        keymaps = { extra = true }, -- Enable the 'extra' keymaps
      }
      local scroll = require("cinnamon").scroll

      -- Centered scrolling:
      vim.keymap.set("n", "<C-U>", scroll("<C-U>zz", {}))
      vim.keymap.set("n", "<C-D>", scroll "<C-D>zz")
    end,
  }

But i get this error:

Tried wrapping the function in function () ... end, the error goes away but the scrolling isn't centered.
If i can bring any additional information let me know :)

Okay wrapping it in a function such as:
      local cinnamon = require "cinnamon"
      -- Centered scrolling:
      vim.keymap.set("n", "<C-u>", function()
        cinnamon.scroll "<C-u>zz"
      end)
      vim.keymap.set({ "n", "x" }, "<C-d>", function()
        cinnamon.scroll "<C-d>zz"
      end)

Does seem to work!
I might have tried it to fast previously

Great! Your last code snippet also works for me. I should add a better config example especially for people who had used the centering option previously

Oh actually yes the examples need to be wrapped in a function oops


issue #14 Optimize production build

Removes comments from the production build reducing the size of the dist files by over 50%.
Fixes #14

Codecov Report

Merging #17 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #17   +/-   ##
=======================================
  Coverage   24.13%   24.13%
=======================================
  Files           2        2
  Lines          58       58
  Branches        6        6
=======================================
  Hits           14       14
  Misses         38       38
  Partials        6        6

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 3b54130...b7ac524. Read the comment docs.


Fix metrics typos

looks like a copy/paste error

This is approved and passing CI so I'm gonna merge it.


Fix acceptance tests

This is incomplete, see the last commit message for details. Sharing here in case anyone has time to dig into it.

The error during setup is completely unexpected. I'm not sure where that came from.

So it looks like on Ubuntu there is an initial user account: an admin user is created with the password in /var/lib/jenkins/secrets/initialAdminPassword. Probably because on Debian a service is started automatically while on RPM it isn't. However, the entire test suite depends on anonymous admin access. I'm leaning to merging this now.

I did some testing on Ubuntu 20.04. We do pass the systemd override:
# /etc/systemd/system/jenkins.service.d/puppet-overrides.conf
[Service]
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false"

However, then:
# systemctl status jenkins.service
● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/jenkins.service.d
             └─puppet-overrides.conf
     Active: active (running) since Mon 2022-05-16 11:35:10 UTC; 23min ago
   Main PID: 9526 (java)
      Tasks: 38 (limit: 1066)
     Memory: 284.3M
     CGroup: /system.slice/jenkins.service
             └─9526 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080

Note how it is not respected. I then modified it and did a daemon-reload and it was there. I then suspected the problem is with Debian starting the daemon by default on installation (apt install jenkins) and then Puppet comes in and configures things. However, after a fresh install I tried a simple systemctl restart jenkins and it was insufficient. I needed an explicit systemctl daemon-reload. Then a restart did pick it up. I think I've seen this before with systemd on Ubuntu 20.04: it didn't pick up that /etc/systemd/system/jenkins.service.d was created.
I did notice a refresh from the drop in to the service was missing. After adding that I see:
# systemctl status jenkins.service
Warning: The unit file, source configuration file or drop-ins of jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
● jenkins.service - Jenkins Continuous Integration Server
     Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-05-16 12:22:19 UTC; 28s ago
   Main PID: 9541 (java)
      Tasks: 48 (limit: 1066)
     Memory: 230.9M
     CGroup: /system.slice/jenkins.service
             └─9541 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080

So now it is detecting it at least. Question is why Puppet isn't detecting this. It does run /usr/bin/systemctl show --property=NeedDaemonReload -- jenkins as can be seen from the debug logs:
  Notice: /Stage[main]/Jenkins::Config/Systemd::Dropin_file[puppet-overrides.conf]/File[/etc/systemd/system/jenkins.service.d]/ensure: created
  Debug: /Stage[main]/Jenkins::Config/Systemd::Dropin_file[puppet-overrides.conf]/File[/etc/systemd/system/jenkins.service.d]: The container Systemd::Dropin_file[puppet-overrides.conf] will propagate my refresh event
  Notice: /Stage[main]/Jenkins::Config/Systemd::Dropin_file[puppet-overrides.conf]/File[/etc/systemd/system/jenkins.service.d/puppet-overrides.conf]/ensure: defined content as '{md5}dbb7a53b475d1a75b951997319ba96cb'
  Info: /Stage[main]/Jenkins::Config/Systemd::Dropin_file[puppet-overrides.conf]/File[/etc/systemd/system/jenkins.service.d/puppet-overrides.conf]: Scheduling refresh of Service[jenkins]
  Debug: /Stage[main]/Jenkins::Config/Systemd::Dropin_file[puppet-overrides.conf]/File[/etc/systemd/system/jenkins.service.d/puppet-overrides.conf]: The container Systemd::Dropin_file[puppet-overrides.conf] will propagate my refresh event
  Debug: Systemd::Dropin_file[puppet-overrides.conf]: The container Class[Jenkins::Config] will propagate my refresh event
  Debug: Class[Jenkins::Config]: The container Stage[main] will propagate my refresh event
  Info: Class[Jenkins::Service]: Scheduling refresh of Service[jenkins]
  Debug: Executing: '/usr/bin/systemctl is-active -- jenkins'
  Debug: Executing: '/usr/bin/systemctl is-enabled -- jenkins'
  Debug: Executing: '/usr/bin/systemctl is-active -- jenkins'
  Debug: Executing: '/usr/bin/systemctl show --property=NeedDaemonReload -- jenkins'
  Debug: Executing: '/usr/bin/systemctl restart -- jenkins'
  Notice: /Service[jenkins]: Triggered 'refresh' from 2 events

Could this be a race condition? As I said: I'm pretty sure I've seen this before on Ubuntu 20.04 but I'm not sure where to look further.
Even when we do fix this I suspect we'll run in the problem that the daemon is started before the override is created. For that a possible solution might be systemd.preset to disable auto start, allowing Puppet to configure things before it comes up.
tl;dr: I do think this is a regression I introduced and probably blocks releasing a new module version.

So I pushed the notify fix. This doesn't solve it, but it's a bugfix nonetheless.

Could this be a race condition? As I said: I'm pretty sure I've seen this before on Ubuntu 20.04 but I'm not sure where to look further.

The test confirms that it's not an issue on Ubuntu 18.04 and 20.04 isn't in metadata.json as supported, so we can consider that issue out of scope for now. The acceptance tests do find the issue on 20.04 so it'll be found when it is added.

The CentOS 7 failure looks like an intermittent network error:
  Error: /Stage[main]/Main/Jenkins::Plugin[apache-httpcomponents-client-4-api]/Archive[apache-httpcomponents-client-4-api.hpi]/ensure: change from 'absent' to 'present' failed: Execution of '/opt/puppetlabs/puppet/bin/curl https://updates.jenkins.io/latest/apache-httpcomponents-client-4-api.hpi -o /tmp/apache-httpcomponents-client-4-api.hpi_20220516-12838-g3hwbh -fsSLg --max-redirs 5' returned 28: curl: (28) Failed to connect to get.jenkins.io port 443: Connection timed out

Why Ubuntu isn't idempotent in downgrades is a mystery now. I'm not sure where those plugins come from.

Why Ubuntu isn't idempotent in downgrades is a mystery now. I'm not sure where those plugins come from.

I think I solved that by increasing the version number of the jquery3-api plugin.

It is :green_apple:, quick merge it before it breaks again ;)


duckdb CLI help text identifies itself as sqlite

First, thank you for this wonderful tool.
A minor thing, but maybe appropriate to change?
$ ~/apps/bin/duckdb --help
Usage: ~/apps/bin/duckdb [OPTIONS] FILENAME [SQL]
FILENAME is the name of an SQLite database. A new database is created
if the file does not previously exist.
OPTIONS include:

-version             show SQLite version

Ah this is because we "borrowed" the CLI pretty much as-is from SQLite. But you're right that could be fixed.


Add support for LDAP email attribute when creating harbor user

Currently if harbor is configured using ldap (auth_mode = ldap_auth)  user emails are listed as<EMAIL_ADDRESS>in the Harbor UI > Administration > Users.

The relevant code seems to be this spot from /src/ui/auth/ldap/ldap.go ...
	if u.Email == "" {
		if strings.Contains(u.Username, "@") {
			u.Email = u.Username
		} else {
			u.Email = u.Username +<EMAIL_ADDRESS>		}
	}

It would be nice if there was a configuration option to pull an email from an LDAP attribute. For instance, in harbor.cfg there could be "ldap_email_attr = mail". When set, ldap.go would check if the user had an attribute "mail" in LDAP and, if so, set the users harbor email to that.

I now see that it tries to pull in emails from this spot in the SearchUser function
			case "mail":
				u.Email = val
			case "email":
				u.Email = val

It could still be nice to specify a custom email attribute, though.


chore(main): release 0.10.1

:robot: I have created a release beep boop
0.10.1 (2024-08-08)
Bug Fixes

k8s: remove hostpath storage and replace with pv using node affinity and FileSystem volumeMode with local path (299f7ac)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/briancaffey/agents-of-inference/releases/tag/v0.10.1 :sunflower:


file from path apparently not working

I was getting this error:
python ci.py
[File(name=spotify.csv)]
AI:  I'm sorry, but it seems there was a misunderstanding. I can't directly access files uploaded by users. Could you please provide the data in a different way? For example, you could paste a small sample of the data here, or provide a link to the file if it's hosted online.

the file actually exists, I was trying putting full path also but nothing works.
buttt if I put iris.csv dataset is working
is there a issue with chunks or file sizing maybe?
from codeinterpreterapi import CodeInterpreterSession, File
The code is actually the same as readme example
async def main():
    # context manager for auto start/stop of the session
    async with CodeInterpreterSession() as session:
        #define the user request
        user_request = 'Analize this dataset and plot insights'
        file_list = ["horse_racing.csv"]

        files = [File.from_path(file) for file in file_list]
        print(files)
        # generate the response
        response = await session.generate_response(
            user_request, files=files
        )

        # output to the user
        print("AI: ", response.content)
        for file in response.files:
            file.show_image()

if __name__ == "__main__":
    import asyncio

    asyncio.run(main())

I think there is an issue with the path so maybe you can try to put in the full path instead of just the file name.
And do it with VERBOSE=True to see more background info to understand the problem :)

Wierd! I just delete the pycache folder and works again  ¯_(ツ)_/¯


Writing a framework to write server connectors for ballerina

Ballerina only supports HTTP as a server side transport. But we need to bring in more and server side transports going forward (e.g. Websocket, JMS, File, HTTP2, etc.). Existing HTTP server side transport is implemented as a listener transport. We should implement a proper framework to write server side connectors to the ballerina.

We've now has server connector framework.


ensure mock reward model has new blacklist functions or crashes

This is just so that when running a mock validator with --neuron.mock_reward_models the validator doesn't die.

That's amazing, this was one item in my todo list, thank for you implementing that 🙏🏽

Of course!  Ended up just running into it doing some sanity testing.


Initial PPP implementation

Initial implementation for Point-to-point protocol (PPP). It implements LCP, IPCP and IPV6CP modules. See these RFCs for details.

LCP : https://tools.ietf.org/html/rfc1661
HDLC : https://tools.ietf.org/html/rfc1662
IPCP : https://tools.ietf.org/html/rfc1332
IPV6CP : https://tools.ietf.org/html/rfc5072

This is still work-in-progress and following things need more TLC:

[ ] Authentication support missing
[x] ~IPCP issues fixed~
[ ] LCP non-default option negotiation
[ ] MRU/MTU handling not yet done

This PR contains some extra patches listed below that are part of other PRs, these can be safely ignored in the review:

~drivers: console: Add support for log level option~
net: pkt: Add net_pkt_write_le16() helper
net: pkt: Add net_pkt_read_le16() helper

Fixes #14034

Resolved merge conflicts

First version that works properly against Linux pppd with IPv4 and IPv6.

rebased against latest master
added support for sending Echo-Request and receiving Echo-Reply from net-shell

There is just (well it is not a small change) the logic of config_info_* functions and ppp_send_pkt: that has to be reworked so net_pkt is allocated first so all its API can be used instead of the net_buf one.
Whit that done, I think it will be good to go.

This is in the TODO list (also marked in the code), but as this is a bigger change, I want to postpone this a bit and to be done as a bug fix.

Updated according to comments.

@dbkinder I added a commit "doc: net: ppp: Add PPP documentation " after you had reviewed the code. Perhaps you want to check it too.

Fixed merge conflict.

Fixed merge conflict

Fixed the sanitychecker errors.

Resolved merge conflicts.


refactor: make lodash a devDependency

I attempted to run tests on my Mac, but was unable, so I am starting this PR in hopes of starting the discussion of removing lodash as a hard dependency from this library.  lodash has been left as a devDependency, however.
Please let me know what you guys think!
#813
#924

Nice! I'll be using this fork, thanks for that.

@joshuapaling
The repo of this project is unmaintained more than a year, and we had build new version https://www.npmjs.com/package/@react-google-maps/api
We had rewrite it to TypeScript, and updating it frequently: https://github.com/JustFly1984/react-google-maps-api/tree/master/packages/react-google-maps-api
You can enjoy autocomplete.
You can see our docs: https://react-google-maps-api-docs.netlify.com/
Also a lot of examples: https://react-google-maps-api-gatsby-demo.netlify.com/ https://github.com/JustFly1984/react-google-maps-api/tree/master/packages/react-google-maps-api-gatsby-example/src/examples
The bundle size is much smaller: https://bundlephobia.com/result?p=<EMAIL_ADDRESS>Enjoy!


set up basic calendar and schedule

explore options, maybe have a shared google calendar? somehow we want this to be dynamic

Finish calendar and schedule


refactor: fix sortable grid

:x: Build TheIdServer 1.0.0-fix-sortgrid1-0064 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/d2df851e6b by @aguacongas)

:x: Build TheIdServer 1.0.0-fix-sortgrid1-0065 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/a790cbb750 by @aguacongas)

:white_check_mark: Build TheIdServer 1.0.0-fix-sortgrid1-0066 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/de0d729ee6 by @aguacongas)


ReactiveDemo hack around VS xaml designer issue with inherits from generic classes

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Update ReactiveDemo sample
What is the current behavior? (You can also link to an open issue here)
ReactiveDemo sample solution does not build. After adding missing dependencies, Views cannot be opened in designer.
What is the new behavior (if this is a feature change)?
In ReactiveDemo sample:
NugetDetailsView.xaml can be opened in Design view.
Fixes missing references to PresentationCore, PresentationFramework and WindowsBase.
What might this PR break?
Nothting. Just wonder now if missing dependencies are not actually missing. I mainly work in VS for Windows, but I don't know how the sample hs to be used to target e.g. Xamarin.
Please check if the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Other information:

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

Hi @Nilox  thanks for the contribution. Due to being part of the .NET Foundation we require every contributor to do legal paperwork. Also the Reference updates to the csproj make sense, the deriving of the control the way you did it is not necessarily the standard way to use the ReactiveUserControl so I would just remove that for the moment.

That designer is so flakey. Bain of a lot of people's existance.


Demo project test fails

Looks like an issue with FB_REFERENCE_IMAGE_DIR. I thought there was an issue on my end in my project but it looks like the demo project doesn't work (with the latest version of CocoaPods).
2015-05-17 22:43:57.424 FBSnapshotTestCaseDemo[14107:6951453] Application windows are expected to have a root view controller at the end of application launch
Test Suite 'All tests' started at 2015-05-18 02:43:57 +0000
Test Suite 'FBSnapshotTestCaseDemoTests.xctest' started at 2015-05-18 02:43:57 +0000
Test Suite 'FBSnapshotTestCaseDemoTests' started at 2015-05-18 02:43:57 +0000
Test Case '-[FBSnapshotTestCaseDemoTests testExample]' started.
/Users/stevemoser/Downloads/ios-snapshot-test-case-master/FBSnapshotTestCaseDemo/FBSnapshotTestCaseDemoTests/FBSnapshotTestCaseDemoTests.m:32: error: -[FBSnapshotTestCaseDemoTests testExample] : ((comparisonSuccess__) is true) failed - Snapshot comparison failed: Error Domain=FBSnapshotTestControllerErrorDomain Code=1 "Unable to load reference image." UserInfo=0x7f858842ede0 {NSLocalizedFailureReason=Reference image not found. You need to run the test in record mode, NSLocalizedDescription=Unable to load reference image<EMAIL_ADDRESS>Test Case '-[FBSnapshotTestCaseDemoTests testExample]' failed (0.002 seconds).
Test Suite 'FBSnapshotTestCaseDemoTests' failed at 2015-05-18 02:43:57 +0000.
Executed 1 test, with 1 failure (0 unexpected) in 0.002 (0.005) seconds
Test Suite 'FBSnapshotTestCaseDemoTests.xctest' failed at 2015-05-18 02:43:57 +0000.
Executed 1 test, with 1 failure (0 unexpected) in 0.002 (0.005) seconds
Test Suite 'All tests' failed at 2015-05-18 02:43:57 +0000.
Executed 1 test, with 1 failure (0 unexpected) in 0.002 (0.006) seconds

Hi,
Thanks for your message,

Regarding the example project, did you follow the initial instructions (https://github.com/facebook/ios-snapshot-test-case) on defining FB_REFERENCE_IMAGE_DIR in GCC_PREPROCESSOR_DEFINITIONS?

Regarding your project, it might be the breaking change and you will need to rename your ReferenceImages to ReferenceImages_32.

Let me know.

I see this error as well. I believe the demo project used to get it's definition of FB_REFERENCE_IMAGE_DIR from the default value in FBSnapshotTestCase.h. However, the error message is showing an un-preprocessed path - so maybe something has changed regarding how cocoapods are preprocessed. Luckily we can provide a cocoapods-friendly, default value for FB_REFERENCE_IMAGE_DIR via the podspec. I've also added the demo project to CI so we can detect these errors sooner.

It works! :+1:


v1.0 documentation list

I have had a long list locally, but it makes more sense to have it open for everyone to add to.
GH Docs:

[ ] Deployment on K8s, AWS, locally
[ ] Contributor guide
[ ] Release notes
[ ] Roadmap
[ ] scraper demo?
[ ] pipeline spec guide
[ ] document stat tracking

Quickstart guide:

[ ] GOPATH common errors

[ ] pachctl mounting/connection

[ ] fruit stand video tutorial

[ ] grep pipeline needs "image" specified, even though it uses default ubuntu. Users are getting confused about how to connect other containerized analysis.

[ ] update mount command (see #339)

[ ] FAQ

[ ] Git for data paradigm and terminology document

[ ] Architecture overview

[ ] Expand help messages:

[ ] pachctl putfile -- help message outdated

[ ] Docs for delete/overwrite behavior (described in #303)

Website:

[ ] Front page copy

[ ] About Us

[ ] Use cases

[ ] remove/fix "deploy on AWS" --> GCE

[ ] Support page and docs

[ ] Explainer video

[ ] In the news

[ ] News letter sign up

[ ] Follow/star buttons

[ ] Migrate blog?

[ ] Check all docs/site for correct links

We need to be explicit about the version of kubernetes/kubectl that we are supporting.  See #327

Turns out we are already explicit about kubectl version in SETUP.md but we should probably mention it before the one-liner (the first thing you see on readme.md) ?

And we need to update how we run / mount FUSE. I'm doing it w sudo, but our docs don't use sudo. Again, see #327

Writing this down so we don't forget --- we also discussed going a 'Pachyderm Design Principles' or goals page, where we'd discuss:

Reproducibility
Incrementality
Collaboration
Data Provenance


Error running dump() on a JLD (HDF5) file containing a DataFrame

From julia-users thread
Am I doing something wrong?  I get the same error in 0.3.8.
I notice that there is a method with signature
read(::HDF5.HDF5Dataset, ::Type{Array{HDF5.HDF5Compound,N}})
but not
read(::HDF5.HDF5Dataset, ::Type{HDF5.HDF5Compound})

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "help()" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.0-dev+4825 (2015-05-14 00:12 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit ff35d98 (4 days old master)
|__/                   |  x86_64-w64-mingw32

julia> using DataFrames

julia> df = DataFrame(A = 1:4, B = ["M", "F", "F", "M"])
4x2 DataFrames.DataFrame
| Row | A | B   |
|-----|---|-----|
| 1   | 1 | "M" |
| 2   | 2 | "F" |
| 3   | 3 | "F" |
| 4   | 4 | "M" |

julia> using HDF5, JLD

julia> file = jldopen("df.jld", "w")
Julia data file version 0.1.0: df.jld

julia> file["df"] = df
4x2 DataFrames.DataFrame
| Row | A | B   |
|-----|---|-----|
| 1   | 1 | "M" |
| 2   | 2 | "F" |
| 3   | 3 | "F" |
| 4   | 4 | "M" |

julia> close(file)

julia> file = jldopen("df.jld", "r")
Julia data file version 0.1.0: df.jld

julia> dump(file)
JLD.JldFile
  plain: HDF5.HDF5File len 4
    _refs: HDF5.HDF5Group len 16
      00000001: HDF5Dataset (2,) : [HDF5.HDF5ReferenceObj(0x00000000000015d8),HDF5.HDF5ReferenceObj(0x0000000000002e70)]
      00000002: HDF5Dataset () : ERROR: MethodError: `read` has no method matching read(::HDF5.HDF5Dataset, ::Type{HDF5.HDF5Compound})
Closest candidates are:
  read{T}(::IO, ::Type{T}, ::Int64, ::Int64...)
  read{T}(::IO, ::Type{T}, ::Integer, ::Integer...)
  read{T}(::Base.AsyncStream, ::Type{T}, ::Tuple{Vararg{Int64}})
  ...
 in dump at C:\Users\s2sajs\.julia\v0.4\HDF5\src\plain.jl:995
 in dump at C:\Users\s2sajs\.julia\v0.4\HDF5\src\plain.jl:1008 (repeats 2 times)

 in xdump at show.jl:762
 in dump at show.jl:882
 in anonymous at show.jl:888
 in with_output_limit at show.jl:1220
 in dump at show.jl:888

Fixed by @AndyGreenwell. Thanks for the report.

@timholy, would you mind tagging a new bugfix release that includes this?

Will try. Travis is darn slow today. I've tagged something like 4 packages today, and cumulatively it has literally taken all day (starting at 5am or so) to get through the tests. (Been waiting on this one https://github.com/JuliaLang/METADATA.jl/pull/2618 for 3 hours now.)


Module installs for major DSpace upgrade to DSpace 6_x

As part of the upgrade efforts done by ilri, the installed modules on the DSpace5 version (https://github.com/ilri/DSpace/pull/407) had to be upgrade as well.
This consolidated merge request contains the upgraded version of Atmire's module installs for

CUA: Content and Usage Analysis module
MQM: Metadata Quality Module
L&R: Listings & Reports

@alanorth Please refer to the related ticket for additional info on build properties information related to these modules

Thank you, @jonas-atmire! Looks clean. I will consult the ticket for the information and test this in the next few days.

Can we get the documentation for  Metadata Quality Module.I have for both CUA and  L&R.

@alanorth We've updated the CUA to upgrade to use Font Awesome 5
Note that this is handled in the actual CUA code, so there are no actual 'visible' changes apart from the change to the cua.version.number in the main pom -> The maven build will retrieve the last code.
Since the only change in the actual DSpace code is this version number, there should not be any problems merging this change to other related branches that are used during development

Thank you @jonas-atmire. I updated pom.xml and built successfully, but have an error during ant update. I will share the full error on the Atmire tracker.

Thank you, Jonas. I don't need the CSS fix now that version RC2 uses FontAwesome classes instead of Unicode hex values. The FontAwesome SVG + JS works for those classes now.

Merged into 6_x-prod manually.


AutoValue ForeignKey Android example

Is there some example, how to implement on Android relationships with Autovalue without @JoinColumn annotation?

Hi this would be similar just the annotations would be slightly different (using the requery annotations instead of the JPA ones). Example:
@Entity
@AutoValue
public abstract class Phone {

    public static Phone create(int id, String phoneNumber, boolean normalized, int ownerId) {
        return new AutoValue_Phone(id, phoneNumber, normalized, ownerId);
    }

    @Key @Generated
    public abstract int getId();
    public abstract String getPhoneNumber();
    public abstract boolean isNormalized();

    @ForeignKey(references = Person.class)
    public abstract int getOwnerId();
}

Hope that helps

Should be any reference defined from Person.class to Phone.class?

In this case no it's not needed as in that example there is a many-to-one relationship effectively between phone numbers and the person it belongs to.

Nice, thank you!

Sure this was added under the section Immutable Types

how would this work with one to many or many to many?
like person has multiple phone numbers? Or with something like a User object and Message object. Message object has both a sender and a list of receivers and the User object has a list of send Messages and a list of received Messages.
@Entity
@AutoValue
public abstract class Person {
    @Key @Generated
    public abstract int getId();

    public abstract String getName();
    public abstract Date getBirthday();
    public abstract int getAge();
    public abstract List<Phone> phoneNumbers();
}

I think with one to many or many to many that this isn't possible as it breaks the immutability of types generated by autovalue.

I'm using Requery + AutoValue, and I've hacked my way into using relations. Basically what i wanted was to have all my classes that are used across the app be immutable and using AutoValue. So I used regular mutable classes for requery, which I then convert to AutoValue after reading from DB, and convert them to regular classes when writing them to the DB.
For example, my AutoValue class:
@AutoValue
public abstract class Session {

    public abstract String id();

    public abstract List<DeviceData> deviceData();

    public abstract long timestamp();

    public static Builder builder() {
        return new AutoValue_Session.Builder();
    }

    @AutoValue.Builder
    public abstract static class Builder {

        public abstract Builder setDeviceData(List<DeviceData> deviceData);

        public abstract Builder setId(String id);

        public abstract Builder setTimestamp(long timestamp);

        public abstract Subsession build();
    }
}

And my Entity class:
@Table(name = "Session")
@Entity
public class SessionSM implements Persistable {

    @Key
    String id;

    @OneToMany
    List<DeviceDataSM> deviceData;

    long timestamp;

    public Session toAutoValue() {
        return Session.builder()
                .setId(id)
                .setDeviceData(SMUtils.convertDeviceData(deviceData))
                .setTimestamp(timestamp)
                .build();
    }

    public static SubsessionSM toEntity(Subsession session) {
        SubsessionSMEntity entity = new SubsessionSM2Entity();
        entity.setId(subsession.id());
        entity.setTimestamp(subsession.timestamp());
        entity.getDeviceData().addAll(SMUtils.convertDeviceDataSM(session.deviceData(), entity));
        return entity;
    }
}

Then when reading from the DB:
public Observable<List<Session>> getSessions() {
    return entityStore.select(SessionSM.class).get().observable()
            .map(SessionSM::toAutoValue)
            .buffer(20);
}

And writing to the DB:
public Completable setSubsessions(List<Subsession> sessions) {
    List<SessionSM> sessionSMEntities = new ArrayList<>();
    for (Session session : sessions) {
        sessionSMEntities.add(SessionSM.toEntity(session));
    }
    return entityStore.upsert(sessionSMEntities).toCompletable();
}

Still not sure why this isn't possible directly with Requery. It's not like it would be impossible to do... you could just read the values from the DB when instantiating the AutoValue object, instead of reading them on-demand, right? Not the best thing for performance, but it would get the job done.
And if you really wanted on-demand loading, you could implement it, the List's inside of AutoValue classes can still be changed since they themselves aren't immutable (but that really defeats the purpose of an immutable structure, so preloading the data would probably be better).
IMO, not having this supported is a real drawback, since you can't really have any nesting in your entities, you can only use primitive types...

This is somewhat related to eager fetching. The reason this isn't supported is that while it would work ok in your example, in many other cases those eagerly loaded objects may also have relations as well. In which case you end up possibly having to load an extremely large number of objects just from loading one.
I am looking at ways to improve the usage of immutable types with relations. One possible feature would detach the relations from the entity object and put them on something like a generated repository class and allow you to load them separately. You can do this now just using the query API but this would reduce boilerplate around that.


Can't Copy the manga through Migrate.

Steps to reproduce

Select a manga from Library.
Click on three dots, then Migrate.
Select the Source and necessary options. (I have untick the delete downloaded option but still it deleted all Chapters.)
Then select the manga from the Source.
Try copying it from three dots besides the manga. (Didn't work)
Tried the Copy Icon. Instead of copying it Migrated the Manga.

Expected behavior
Code problem maybe?
Actual behavior
The process works fine in Yokai (Tachij2k forked version) but in komikku it didn't work.
So, please try to fix it and the delete the chapters option also.
Crash logs
Here's a Screen recording.
Komikku version
Beta r9149
Android version
Android 11
Device
Realme 7i
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] If this is an issue with an official extension, I should be opening an issue in the extensions repository.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version 1.10.5.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

You should describe the "Actual behavior" more clearly. Is it:

Untick "Delete downloaded" but it still deletes downloaded chapters
Use the Copy icon but it migrates instead of copy.

Anything else?

You should describe the "Actual behavior" more clearly. Is it:

Untick "Delete downloaded" but it still deletes downloaded chapters
Use the Copy icon but it migrates instead of copy.

Anything else?

Nope, that's it.


composable lenses

API changes
Before:                                     After:

- lens                                      - lens
- lensProp                                  - lensProp
- lensIndex                                 - lensIndex
- lensOn                                    - view
- composeL                                  - set
- pipeL                                     - over

Creating lenses
var nameLens =                              var nameLens =
R.lens(R.prop('name'), R.assoc('name'));    R.lens(R.prop('name'), R.assoc('name'));

R.lens takes the same arguments as before, but returns a different value. In the new API one never interacts directly with the return value, one simply provides it as an argument to R.view, R.set, or R.over.
The helper functions R.lensProp and R.lensIndex remain unchanged:
var addressLens = R.lensProp('address');    var addressLens = R.lensProp('address');
var headLens = R.lensIndex(0);              var headLens = R.lensIndex(0);

Lenses are now just functions, so R.composeL and R.pipeL are no longer necessary:
var streetLens =                            var streetLens =
R.composeL(headLens, addressLens);          R.compose(addressLens, headLens);

Note that R.compose reads left-to-right here. It's way too late for me to reason about this. :)
The following examples will use this data structure:
var alice = {
  name: 'Alice Jones',
  address: ['22 Walnut St', 'San Francisco', 'CA']
};

view
nameLens(alice);                            R.view(nameLens, alice);
// => 'Alice Jones'                         // => 'Alice Jones'

streetLens(alice);                          R.view(streetLens, alice);
// => '22 Walnut St'                        // => '22 Walnut St'

set
nameLens.set('Alice Smith', alice);         R.set(nameLens, 'Alice Smith', alice);
// => { name: 'Alice Smith'                 // => { name: 'Alice Smith'
//    , address: [ '22 Walnut St'           //    , address: [ '22 Walnut St'
//               , 'San Francisco'          //               , 'San Francisco'
//               , 'CA' ] }                 //               , 'CA' ] }

over
streetLens.map(R.toUpper, alice);           R.over(streetLens, R.toUpper, alice);
// => { name: 'Alice Jones'                 // => { name: 'Alice Jones'
//    , address: [ '22 WALNUT ST'           //    , address: [ '22 WALNUT ST'
//               , 'San Francisco'          //               , 'San Francisco'
//               , 'CA' ] }                 //               , 'CA' ] }

This API feels more in keeping with the rest of the library (returning a function with two functions attached is rather odd). Also, removing the need for special composition functions is very nice indeed.
I'm opening this pull request for discussion. If we decide we like this change I'll spend some time writing documentation and figuring out the type signatures!
Many thanks to @tel for walking me through the various approaches to creating lenses. The existence of this pull request suggests I absorbed at least some of the information. ;)
/cc @joneshf, Master of Lenses

Fascinating stuff.
It's gong to take a while for all this to sink in.  The really obvious good side would be the ability to remove composeL and pipeL.  @buzzdecafe would have to be happy about reducing the number of composes we have.
But the downside is just as obvious: creating a lens currently is very straightforward   The new version would be much less clear unless we reintroduced some helper function for it.
I agree that the API is more in keeping with the rest of Ramda, but only so long as we don't have to introduce some helper function.  But this means I'm torn in two directions.
I will look at it later in the day when I'm in front of a computer.

:cow2: :cow2: :cow2: :cow2: :cow2: :cow2: :cow2: :cow2:

:tophat: This looks great! :tophat:
I don't think the complexity will be an issue, given basic building blocks like lensIndex and lensProp still exist. I do wonder whether it would benefit from moving into its own ramda-lenses repo though, allowing for more lens-related functions.

We could also include a helper function that just takes getter and setter functions to produce a lens, such as:
var lens = curry(function (getter, setter, f, s) {
  return map(partialRight(setter, s), f(getter(s)));
});

var headLens = lens(nth(0), update(0));

view(headLens, ['a', 'b', 'c']); // 'a'
over(headLens, toUpper, ['alice', 'bob']); // [ 'ALICE', 'bob' ]
set(headLens, 'Alice', ['a', 'b', 'c']); // [ 'Alice', 'b', 'c' ]

:+1:
But I agree that lens still needs to exist, since writing these things by hand is hard enough with a type checker at your back. It's even harder without.

We could also include a helper function that just takes getter and setter functions to produce a lens,

:heart: this idea, although this made me chuckle to myself:

curry(function (getter, setter, f, s) {

_curry4 anyone? I'm not gonna do it ....

Thanks for providing a definition of lens, @scott-christopher! I've updated this pull request to include it, along with updated lensProp and lensIndex implementations. I've also updated this pull request's description.
The next step is to work out the type signatures. I've included placeholders in the form @sig $0 -> $1 -> $2 -> $3 to facilitate in-line suggestions. Any thoughts? :)

Any chance of getting prisms in here? Does Ramda have a position on sum types?

like this? https://github.com/paldepind/union-type

Any chance of getting prisms in here?

I'd like a chance to digest these ideas first, honestly.  This signature is far more complex than anything else we have in Ramda, and, while I can understand it while reading the code, it fade very quickly.  I think we need to decide just how complex we want our signatures to get.
Don't get me wrong.  I like this.  But I don't think we should do this in a hurry.

The types could be simplified a little for the purpose of documentation, if the ability to modify the types is ignored (e.g. Lens' in Kmett's library):
@type Lens s a = Functor f => (a -> f a) -> s -> f s

@sig lens :: (s -> a) -> ((a, s) -> s) -> Lens s a

@sig view :: Lens s a -> s -> a
@sig set  :: Lens s a -> a -> s -> s
@sig over :: Lens s a -> (a -> a) -> s -> s

The types could be simplified a little for the purpose of documentation.

I actually think this is a great deal of simplification.  This puts them in the realm of the fairly easily comprehensible, at least to my foggy brain.  I like it a lot!  Especially because we are usually dealing with JS types that don't vary at the granular a level.

Of course, the difficulty with the "type-fixed" types is that they don't hint at the fact that over((x) => x.length) is valid. Since this is documentation instead of an actual type checker maybe we could include more specific and more general types? This is often what lens itself does to make the types more digestible.

For instance, this very general operator (%%~) is decorated by 4 more specific types in its documentation.

@buzzdecafe That's one technique, yup. Here's another: https://github.com/puffnfresh/daggy.
In order to implement Prisms we'll need some kind of defined interface for sum types, though. This could be chosen carefully to be compatible with many different kinds of sum types, perhaps.

R.update will become sugar for R.set, and R.adjust sugar for R.over:
var lens = R.lensIndex(1);

R.update(1, 11, [0, 1, 2]);
R.set(lens, 11, [0, 1, 2]);

R.adjust(R.add(10), 1, [0, 1, 2]);
R.over(lens, R.add(10), [0, 1, 2]);

I like the symmetry between R.set and R.over; R.update and R.adjust take the index in different positions.
Lenses have the advantage of being composable. I suggest we deprecate R.update and R.adjust to avoid having similarly named functions (R.set and R.update) which serve the same role. (If we decide to keep these functions they should be sugar for their respective lens functions, and the argument order of R.adjust should be updated to match.)

Yeah, those can be seen as specializations of the use of lenses!

Also, to continue my train of thought from earlier about prisms, here's the best way I know to talk about how lens and prism relate.
You can see the (simple, non-type-changing) type Lens s a as containing values which are "proofs" that the types s and (r, a) are equivalent for some choice of r
Lens s a ===> s ~ exists r . (r, a)

If it's alright, I'll actually write it in this way to denote that tuples are products
Lens s a ===> s ~ exists r . r * a

On the other hand, this is only one way that a type s can be decomposed—into two pieces. The other way is to decompose s into two "options" via a sum.
 Either r a

So while Lenses abstract access into types across product boundaries, Prisms abstract access through "variants" or "options". This concept is not very well established in Javascript, though, so it's hard to say what we're talking about.

So as an example, we might have a prism, an interesting one, odds :: Prism Int Int which "pulls out" the option integers have to being either odd or even. Then over odds (+1) is a function which only "fires" when its target is odd. And, interestingly, turns all numbers even.

If this gets merged we need to invent a new name for the removed set https://github.com/ramda/ramda/pull/1181.

For the interested, here's an (untested) Javascript implementation of "pure profunctor" lenses which make the duality between lenses and prisms much, much more apparent.
https://gist.github.com/tel/9aca29952f3d1e9d9b04

Yes, we'll need to come up with a new name for your set function, @paldepind. You should open a pull request to reinstate that function when you have some time. We can discuss name options on that thread.
@tel, I think I'll need some help on Gitter to understand your gist. I'm certainly intrigued.

@davidchambers For updating objects I think evolve is a much nicer solution than lenses. @CrossEye said it very well:

This doesn't show that there's something wrong with lenses, but the isomorphism between the input structure and the change shows there's something really right with evolve.

Lenses are nice but not without problems. See Lens is unidiomatic Haskell and Why I don’t like the lens library. I'm sad to see that lenses are now (maybe accidentally) hijacking the name we had chosen for the recursive merge.

What's meant by

the isomorphism between the input structure and the change

?

Also, I'd take those articles with grains of salt. In each case, the complaint is largely against the lens library itself and not lenses as a concept. A deeper complaint tends to be that lens likes to act like a rewrite of the Prelude core libraries. This is very true as lenses form a new mechanism for abstracting data access and nearly everything can be rewritten in this style. Often people dislike this "complete rewrite" for compatibility concerns (thus being "unidiomatic").

Huh, evolve is interesting but is a little tangential to lenses. It merges both an update and a focus forming a DSL for writing functions (o -> o), but lenses pull this into two pieces being completely concerned with the "locations of focus" and not the transformation.

Also, I'd take those articles with grains of salt. In each case, the complaint is largely against the lens library itself and not lenses as a concept.

Yes. Indeed some of the arguments are like that. But not all.
But with the old set and current evolve we get something that looks a bit more like Elms record syntax (and let me point out that Elm was created after Haskell, and lenses solves just one of Haskell several problems with records).
{ bill | name <- "Nye", age <- 27 }

Huh, evolve is interesting but is a little tangential to lenses. It merges both an update and a focus forming a DSL for writing functions (o -> o), but lenses pull this into two pieces being completely concerned with the "locations of focus" and not the transformation.

You can put it like that. But in many cases evolve can express updates in a more concise form that better mirrors the object to transform. I also think most JavaScript programmers would find such a function more natural to work with.
This for instance would not be quite as readable with lenses:
var fn = R.evolve({age: R.inc, name: R.toUpper, parent: {name: R.toUpper}};
fn({age: 12, name: 'Simon', parent: {name: 'Knud'}};

Don't get me wrong. This is certainly an improvement over our old lens API but they are not silver bullets.

Oh, to be clear, I'm not exactly arguing to promote any particular side. I'm happy talking about lens theory as I have been, but I'm hesitant to actually put a horse into the race. ;)
My concern with evolve is not whether or not it is more concise and readable than lenses—it may very well be—but simply that it is doing something slightly different. The Elm update syntax is also in this boat. In each case an "update" is a "location" along with a "transformation" and the two are inextricable. A lens is merely a location.
I'd be interested in seeing citations to arguments against lenses themselves. Again, not to say that I believe none exist nor to suggest that if none exist that the concept is therefore the best... but just because I honestly haven't seen very many!

As a side note, I also want to suggest that lenses should not be thought of as "solutions to Haskell's record issues". Haskell certainly has those, but lenses just solve it more or less on accident.
To me that statement comes most clear in seeing that Lenses and Prisms are essentially equally important and while Lenses apply directly to records, Prisms have almost nothing to do with them.

As a side note, I also want to suggest that lenses should not be thought of as "solutions to Haskell's record issues". Haskell certainly has those, but lenses just solve it more or less on accident.

Can you elaborate on that? I've always thought fixing that was one of the primary motivations besides lenses (I'm not surprised to be wrong though, I really don't know that much on the subject).

I think the problems with records drove the development and popularity of lenses, but the concept that actually landed doesn't have too, too much to do with records. I'd even argue that lenses by themselves don't much solve the record problem (although lenses along with typeclasses get most of the way).
A lens just represents a "product-like" focus while a prism represents a "sum-like" focus. Since records are elaborate products, lenses are related to the fields of records.
Generally, however, lenslike things form an elaborate theory of "focus" and "selection" which is pretty unique all along. The nicest thing about lens is that it took the time to suss out much of the algebra of "focuses"—how they combine and separate and form a cogent language. This discovery (mirrored by similar "lens" discoveries in database theory) is pretty much the core of what I like about lenses generally. The lens library itself is just one implementation and the van Laarhoven style just one mechanism of implementation (which works very nicely in reflecting the natural subtyping hierarchy available).

detail: set would fail in environments < ES5. So we can either ditch support for older environments or come up with a new name.

I've added descriptions and the simplified type signatures suggested by @scott-christopher above. This pull request is now ready to be reviewed and—hopefully—merged!

I will look it over this weekend.

i like this PR a lot. My only caveats:

I don't like using the name set, which IMO is broader than just lens-y applications. I don't have any name much better, though. tweak? alter?
Likewise, view might be better named with something that indicates its dependence on lens, e.g. zoom

I don't like using the name set, which IMO is broader than just lens-y applications.

Lens-y applications seem very broad to me. I struggle to think of something one could set without a lens one could not set with a lens.

view might be better named with something that indicates its dependence on lens, e.g. zoom

Depending on one's background, view may in fact suggest a lens dependence, as this name is used in the Haskell lens package.
There's value in using the established names. Let's do so unless we have both a compelling reason not to and a satisfactory alternative.

:herb:
I do have one caveat.  I think we need to, sometime soon, figure out how to describe types.  We've had need for an Ordered type for sigs and we definitely need a Lens type that we can describe.  My guess is that our best bet will simply be to include another file parallel to ReadMe.md in the docs directory with type descriptions and figure out how to get JSDoc to link to it appropriately.
But however we do it, I think this is becoming critical.  The Lens type is too complex to just assume people are going to get it from some simple sigs.

It's fairly unlikely people will "get" lenses from types of any kind. This took the Haskell community years to internalize even with more than just types.

@tel: My point, though, was that we have not had to describe types.  With the exception of the transducers details, the parameters to all of our functions, and their outputs have been easy to understand.  Although this PR include a @typedef tag to separate out the definition of Lens (is there already some way to render that?) we should now have some section of our documentation that gives additional details for these.
Lenses will be a big change for Ramda.  Generally there's no place where it's necessary to call one function to get the required input into another.  Here, while it's not technically required, it's damned close.  The only raison d'être for the new lens function is to create input into other functions, and it's very unlikely to that users will create lenses except by calling lens.  So I think we really need decent documentation of what that Lens thingy is.

:tada: Thank you all for your contributions to this pull request, especially @tel, for your explanations.

Excited to see it landed! And no problem—feel free to reach out any time as well.


X button does nothing

Small issue but the X button at the top of the window to close it does not close it. This is usually due to a mis-parametered UI::Begin()
In addition to this, I don't see any way to close this window besides toggling the plugin entirely which is not ideal

Fixed in https://github.com/nicoell/tm-editor-route/commit/fc0ddcf58166496cea056266cefb61f08b248bc3
Change will be available in v0.9.2 Beta


Draft: Issue 7 davkau add era release pipeline

Closed. Solve via https://github.com/IngenicsDigital/easy-release-automation/pull/19


From structs to classes

Context
All the models in xcodeproj are defined as structs. Although immutability has some advantages like thread safety it makes it forces us to come up with it forces us to extend the interfaces with methods to provide mutated copies of the models with the changes.
You can read more from this issue https://github.com/carambalabs/xcodeproj/issues/43#issuecomment-324315852 that @Daltron reported.
Proposal
Move the project models to classes and clean up the interfaces removing the methods that are not necessary anymore.

Totally agree going down this path! 👍 👍 👍

Another benefit of this is that some PBXObjects could inherit from some abstract base classes and remove a whole bunch of duplicated code

Using this now in XcodeGen, it seems it might be better to have BuildSettings stay a struct. Now that I look at it though, could BuildSettings just be an alias for [String: Any]?

Yes it's much better. BuildSettings doesn't add much value to the dictionary.


Want to remove the suffix "日" when using DateFormat('d') in 'ja_JP'.

Is your feature request related to a problem? Please describe.
When Intl.defaultFormat = 'ja_JP and use DateFormat('d').
The result contain "日" .
Describe the solution you'd like
I don't think I need the "日".
Describe alternatives you've considered
I couldn't think of an alternative, but if I want to put a"日" on it, use a custom format.
 If you disagree, consider filing a bug with the CLDR repository here.

We found it quite difficult to make this fix. So I thought it would be easier to solve this problem by overwriting the defaultLocale as follows when the Locale of the device is ja_JP.
Intl.defaultLocale = 'en_US';

You could also use initializeDateFormattingCustom to define and import custom formatting data.

I don't know the function! thanks!!


Refactornew

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 4 committers have signed the CLA.:x: restyled-io[bot]:x: bubonicfred:x: restyled-commits:x: deepsource-autofix[bot]You have signed the CLA already but the status is still pending? Let us recheck it.


Project Sustainability

You would need more maintainers for this to work. It looks nice but lacks enough maintainers to ensure the long term relevance and updatedness of the project. How do you intend to tackle this? You interested in having developers on board with you?

Why not make this a django app that can be installed using pip?

Hi @Whizfactor,
sorry for my delayed reply.
I think your suggestion about having more maintainers and developers is a great idea. As I mentioned in the project readme file, I am completely open to collaboration to improve the project.


How to use dnn_gender_classifier_v1.dat in Python?

Hello, @davisking !
How to load the dnn_gender_classifier_v1.dat in Python ?
I can't find alternative for C++ deserialize in Python.

@davisking can you take a look at https://github.com/mowshon/age-and-gender
I don't have good skill in C++, but did my best for running this code on python.

Nice, I've seen that you open images  directly from the path. You can get some inspiration from this example to make it work with PIL images or numpy arrays directly.
https://github.com/arrufat/wallyfinder

@arrufat wow! I realy need this! Thank you!

@mowshon I'm really glad to see that the models I've released can find a usage... I am working on improving the model for enhancing gender detection for certain ethnic groups that are apparently under-represented in the original database.


[sc-888] - Feature/Refactor Card

Short summary
The Card component was refactored to use React Bootstrap.
The Card declaration will be the same as before, using sub-components wrapped by a main Card component.
The Card allows the user to set colors using the bg and text props, so no dark theme styles were added at this time. They will be added once we get the final designs from Scott.

Test steps

Check out the Card component on Storybook and test out the different variants and colors.

[sc-888]


linking package causes error when build

Hello,
I created a project
react-native init test
After this run this command
npm install react-native-image-picker@latest --save
react-native link

Here is the error...

C:\Users\ozer\Desktop\rn\test33\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerPackage.java:34: error: method does not override or implement a method from a supertype
@Override
^
:react-native-image-picker:compileReleaseJavaWithJavac FAILED
1 error
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':react-native-image-picker:compileReleaseJavaWithJavac'.

Compilation failed; see the compiler error output for details.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Also guys, I get this error all packages just not to this..

react-native-cli: 2.0.1
react-native: 0.47.1

I do everything, tried all solution ways. But still same errors... I can't link projects, always gives error.

Hey, thanks for reporting this issue!
It looks like your description is missing some necessary information, or the list of reproduction steps is not complete. Can you please add all the details specified in the template? This is necessary for people to be able to understand and reproduce the issue being reported.
I am going to close this, but feel free to open a new issue with the additional information provided. Thanks!

@ozergul react-native-image-picker needs to update a method for android, more specifically:
@Override

at https://github.com/react-community/react-native-image-picker/blob/develop/android/src/main/java/com/imagepicker/ImagePickerPackage.java#L29
needs to be removed to support backward compatibillity

@Amurmurmur same error.

@ozergul Make sure to make a clean build. and reset react-native packager.

gradlew clean
react-native start

runned these command but same error..


Invoice Create Sample is not updated with oAuth  2 code

Invoice Create Sample is not updated with oAuth  2 code
Link :
https://github.com/intuit/QuickBooks-V3-PHP-SDK/blob/master/src/_Samples/InvoiceCreate.php

Hello,
Did you found a way to create an invoice ?
Thanks for reply.

Yes, this was my code ::
`<?php
public function createInvoice($invoiceID, $customerRef, $lines, $options)
{
$this->loadAccessToken();
    $tmpObj = new \QbMain();
    $dataService = $this->getDataserviceObj();

    $defaultItemID = $options["itemID"];

    $invArr = [];
    $invArr["DocNumber"] = $options["invoiceNumber"];
    $invArr["TxnDate"] = date("d:m:Y");
    $invArr["CustomerRef"] = ["value" => $customerRef];
    $invArr["CustomerMemo"] = ["value" => "test"];

    foreach ($lines as $line) {
        $lineItemID = $line["itemID"] ?  $line["itemID"] : $defaultItemID;
        $line["serviceDate"] = ($line["serviceDate"] == "") ? date("Y-m-d", strtotime("now")) : $line["serviceDate"];
        $line["quantity"] = ($line["quantity"] == "") ? 0 : $line["quantity"];
        $line["unitPrice"] = ($line["unitPrice"] == "") ? "0.00" : $line["unitPrice"];

        $invLine["Amount"] = $line["amount"];
        $invLine["DetailType"] = "SalesItemLineDetail";
        $invLine["LineNum"] = $line["lineNumber"];
        $invLine["Description"] = $line["description"];
        $invLine["SalesItemLineDetail"] = [
            "ItemRef" => [
                "value" => $lineItemID
            ],
            "ServiceDate" => $line["serviceDate"],
            "Qty" => $line["quantity"],
            "UnitPrice" => $line["unitPrice"]
        ];

        $invArr["Line"][] = $invLine;
    }
    $theResourceObj = Invoice::create($invArr);
    $resultingObj = $dataService->Add($theResourceObj);
    $invoiceNumber = $resultingObj->DocNumber;
    $tmpObj->__destruct();
    return $invoiceNumber;
}`

A big thank you!
I was just having a problem with the personalized invoice number. The error I have talk about company.
Thank you for confirming that it was working.

@vaibhavkumar-sf  thank you!


Concatenate Multiple Scenes

Hi,
Amazing work with Manim, loving it.
I was just wondering if there is a way to automatically concatenate multiple scenes into a single video.
I've seen that there are scripts like this: 'active_projects/ode/all_part1_scenes.py' which list a number of scenes:
SCENES_IN_ORDER = [     WhenChangeIsEasier,     VectorFieldTest,     IntroducePendulum,     MultiplePendulumsOverlayed,     ...
And if you running it allows you to select which scenes to run in order, but then the output of these scenes is single video files. Is there a way to specify that I want the scenes I selected to appear in order in a single movie?
Thank you,
Federico

Not at the moment, but you can use ffmpeg

I can really recomend the new release of the videosoftweare kdenlive:
https://kdenlive.org/en/2019/04/kdenlive-19-04-released/
I use it to put scenes together and the best: when you have a microphone it is super easy to do voice dubbing

That's great, thank you both!

I also wrote a jupyter tool to connect scenes:
The best of it:
You can go from video scene to video scene with mouse clicks:

Here is the code:
https://github.com/kolibril13/jupyter_video_presentation


Ensure compatibility with serve, chat and download with 8b model (Nvidia)

Goal:
Ensure compatibility with serve, chat and download with 8b model (Nvidia)
Acceptance Criteria:

You can do the basic workflow with an 8b model - full config support for 8b
Assess conversion to gguf with llama cpp for 8b model

@jaideepr97 to work with @Maxusmusti


perf: ad_hoc_data: Speed up matrix exponentiation

Summary
While executing the code in the tutorial, I found that the ad hoc data generation is rather slow. When I profiled the function, I found that the matrix exponentiation took the majority of the time. I also found that the matrix to be exponentiated is always in diagonal form. And so this PR exploits the special case.
The time it takes to generate the samples goes down from ~16 s to ~2 s.
I used this code to compare the output of latest main and this PR. They have the same output
TRAIN_DATA, TRAIN_LABELS, TEST_DATA, TEST_LABELS = ad_hoc_data(
    training_size=20, test_size=5, n=2, gap=0.3, one_hot=False
)

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

I had already signed the CLA when opening a PR in qiskit-terra.

I had already signed the CLA when opening a PR in qiskit-terra.

First off, thanks for the contribution. Next, I think, these are different CLAs and you have to sign it if you wish to contribute.

OK I have signed the CLA for this repo.

Reason CI is failing is that the import scipy is no longer required

pylint -rn qiskit_machine_learning test tools
************* Module qiskit_machine_learning.datasets.ad_hoc
qiskit_machine_learning/datasets/ad_hoc.py:21:0: W0611: Unused import scipy (unused-import)

The scipy import has been removed. Also, rebased.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.09%) to 87.529%

Files with Coverage Reduction
New Missed Lines
%

qiskit_machine_learning/datasets/gaussian.py
3
37.11%

Totals

Change from base Build<PHONE_NUMBER>:
-0.09%

Covered Lines:
3025

Relevant Lines:
3456

💛  - Coveralls


New version: credit card failure on the client side doesn't show an error message

for example if you use 4242 4242 4242 it puts the red border on but it does not show a message

Fixed at some point during #95.